Merge V8 5.3.332.45.  DO NOT MERGE

Test: Manual

FPIIM-449

Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/AUTHORS b/AUTHORS
index 10d4a35..0618c69 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -63,6 +63,7 @@
 Geoffrey Garside <ggarside@gmail.com>
 Han Choongwoo <cwhan.tunz@gmail.com>
 Hirofumi Mako <mkhrfm@gmail.com>
+Honggyu Kim <nexus226@gmail.com>
 Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
 Isiah Meadows <impinball@gmail.com>
 Jan de Mooij <jandemooij@gmail.com>
@@ -91,6 +92,7 @@
 Milton Chiang <milton.chiang@mediatek.com>
 Myeong-bo Shim <m0609.shim@samsung.com>
 Nicolas Antonius Ernst Leopold Maria Kaiser <nikai@nikai.net>
+Oleksandr Chekhovskyi <oleksandr.chekhovskyi@gmail.com>
 Paolo Giarrusso <p.giarrusso@gmail.com>
 Patrick Gansterer <paroga@paroga.com>
 Peter Varga <pvarga@inf.u-szeged.hu>
diff --git a/Android.d8.mk b/Android.d8.mk
index 24907ab..d0842ec 100644
--- a/Android.d8.mk
+++ b/Android.d8.mk
@@ -47,7 +47,6 @@
 	-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 db80f2b..7d10d33 100644
--- a/Android.libv8.mk
+++ b/Android.libv8.mk
@@ -92,7 +92,6 @@
 	-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 99bf120..7f5232a 100644
--- a/Android.v8common.mk
+++ b/Android.v8common.mk
@@ -52,8 +52,8 @@
 	src/compiler/bytecode-branch-analysis.cc \
 	src/compiler/bytecode-graph-builder.cc \
 	src/compiler.cc \
+	src/compiler/checkpoint-elimination.cc \
 	src/compiler/c-linkage.cc \
-	src/compiler/coalesced-live-ranges.cc \
 	src/compiler/code-assembler.cc \
 	src/compiler/code-generator.cc \
 	src/compiler/common-node-cache.cc \
@@ -75,7 +75,6 @@
 	src/compiler/graph-replay.cc \
 	src/compiler/graph-trimmer.cc \
 	src/compiler/graph-visualizer.cc \
-	src/compiler/greedy-allocator.cc \
 	src/compiler/instruction.cc \
 	src/compiler/instruction-scheduler.cc \
 	src/compiler/instruction-selector.cc \
@@ -111,12 +110,14 @@
 	src/compiler/node-matchers.cc \
 	src/compiler/node-properties.cc \
 	src/compiler/opcodes.cc \
+	src/compiler/operation-typer.cc \
 	src/compiler/operator.cc \
 	src/compiler/operator-properties.cc \
 	src/compiler/osr.cc \
 	src/compiler/pipeline.cc \
 	src/compiler/pipeline-statistics.cc \
 	src/compiler/raw-machine-assembler.cc \
+	src/compiler/redundancy-elimination.cc \
 	src/compiler/register-allocator.cc \
 	src/compiler/register-allocator-verifier.cc \
 	src/compiler/representation-change.cc \
@@ -128,6 +129,7 @@
 	src/compiler/simplified-operator-reducer.cc \
 	src/compiler/source-position.cc \
 	src/compiler/state-values-utils.cc \
+	src/compiler/store-store-elimination.cc \
 	src/compiler/tail-call-optimization.cc \
 	src/compiler/type-hint-analyzer.cc \
 	src/compiler/type-hints.cc \
@@ -181,6 +183,7 @@
 	src/disassembler.cc \
 	src/diy-fp.cc \
 	src/dtoa.cc \
+	src/eh-frame.cc \
 	src/elements.cc \
 	src/elements-kind.cc \
 	src/execution.cc \
@@ -232,10 +235,12 @@
 	src/interpreter/bytecode-array-builder.cc \
 	src/interpreter/bytecode-array-iterator.cc \
 	src/interpreter/bytecode-array-writer.cc \
+	src/interpreter/bytecode-dead-code-optimizer.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/bytecode-register-optimizer.cc \
 	src/interpreter/bytecodes.cc \
 	src/interpreter/constant-array-builder.cc \
 	src/interpreter/control-flow-builders.cc \
@@ -245,6 +250,8 @@
 	src/interpreter/interpreter-intrinsics.cc \
 	src/interpreter/source-position-table.cc \
 	src/isolate.cc \
+	src/json-parser.cc \
+	src/json-stringifier.cc \
 	src/keys.cc \
 	src/layout-descriptor.cc \
 	src/log.cc \
@@ -274,7 +281,7 @@
 	src/profiler/heap-profiler.cc \
 	src/profiler/heap-snapshot-generator.cc \
 	src/profiler/profile-generator.cc \
-	src/profiler/sampler.cc \
+	src/profiler/profiler-listener.cc \
 	src/profiler/sampling-heap-profiler.cc \
 	src/profiler/strings-storage.cc \
 	src/profiler/tick-sample.cc \
@@ -305,7 +312,6 @@
 	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 \
@@ -320,7 +326,6 @@
 	src/runtime/runtime-symbol.cc \
 	src/runtime/runtime-test.cc \
 	src/runtime/runtime-typedarray.cc \
-	src/runtime/runtime-uri.cc \
 	src/safepoint-table.cc \
 	src/snapshot/code-serializer.cc \
 	src/snapshot/deserializer.cc \
@@ -335,7 +340,6 @@
 	src/string-builder.cc \
 	src/string-stream.cc \
 	src/strtod.cc \
-	src/third_party/fdlibm/fdlibm.cc \
 	src/tracing/trace-event.cc \
 	src/transitions.cc \
 	src/type-cache.cc \
@@ -350,13 +354,16 @@
 	src/v8.cc \
 	src/v8threads.cc \
 	src/version.cc \
+	src/wasm/asm-types.cc \
 	src/wasm/asm-wasm-builder.cc \
 	src/wasm/ast-decoder.cc \
 	src/wasm/encoder.cc \
 	src/wasm/module-decoder.cc \
 	src/wasm/switch-logic.cc \
+	src/wasm/wasm-debug.cc \
 	src/wasm/wasm-external-refs.cc \
 	src/wasm/wasm-function-name-table.cc \
+	src/wasm/wasm-interpreter.cc \
 	src/wasm/wasm-js.cc \
 	src/wasm/wasm-module.cc \
 	src/wasm/wasm-opcodes.cc \
@@ -369,7 +376,9 @@
 	src/base/bits.cc \
 	src/base/cpu.cc \
 	src/base/division-by-constant.cc \
+	src/base/file-utils.cc \
 	src/base/functional.cc \
+	src/base/ieee754.cc \
 	src/base/logging.cc \
 	src/base/once.cc \
 	src/base/platform/condition-variable.cc \
@@ -384,6 +393,9 @@
 	src/libplatform/task-queue.cc \
 	src/libplatform/worker-thread.cc
 
+LOCAL_SRC_FILES += \
+	src/libsampler/v8-sampler.cc
+
 v8_local_src_files_arm := \
 	src/arm/assembler-arm.cc \
 	src/arm/builtins-arm.cc \
@@ -572,7 +584,6 @@
 	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 \
@@ -583,7 +594,6 @@
 	src/js/weak-collection.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 \
@@ -598,11 +608,8 @@
 	src/js/macros.py \
 	src/messages.h \
 	src/js/harmony-atomics.js \
-	src/js/harmony-regexp-exec.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/harmony-async-await.js
diff --git a/BUILD.gn b/BUILD.gn
index eec472f..3121dce 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -4,6 +4,7 @@
 
 import("//build/config/android/config.gni")
 import("//build/config/arm.gni")
+import("//build/config/dcheck_always_on.gni")
 import("//build/config/mips.gni")
 import("//build/config/sanitizers/sanitizers.gni")
 
@@ -11,25 +12,13 @@
   import("//build/config/android/rules.gni")
 }
 
-# Because standalone V8 builds are not supported, assume this is part of a
-# Chromium build.
+import("gni/v8.gni")
+import("gni/isolate.gni")
 import("//build_overrides/v8.gni")
 
 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
 
@@ -52,6 +41,9 @@
   # add a dependency on the ICU library.
   v8_enable_i18n_support = true
 
+  # Enable slow dchecks.
+  v8_enable_slow_dchecks = false
+
   # Interpreted regexp engine exists as platform-independent alternative
   # based where the regular expression is compiled to a bytecode.
   v8_interpreted_regexp = false
@@ -74,24 +66,6 @@
 v8_random_seed = "314159265"
 v8_toolset_for_shell = "host"
 
-if (is_msan) {
-  # Running the V8-generated code on an ARM simulator is a powerful hack that
-  # allows the tool to see the memory accesses from JITted code. Without this
-  # flag, JS code causes false positive reports from MSan.
-  v8_target_arch = "arm64"
-} else {
-  v8_target_arch = target_cpu
-}
-
-if (v8_use_snapshot && v8_use_external_startup_data) {
-  snapshot_target = ":v8_external_snapshot"
-} else if (v8_use_snapshot) {
-  snapshot_target = ":v8_snapshot"
-} else {
-  assert(!v8_use_external_startup_data)
-  snapshot_target = ":v8_nosnapshot"
-}
-
 ###############################################################################
 # Configurations
 #
@@ -119,6 +93,11 @@
   include_dirs = [ "include" ]
 }
 
+# This config should be applied to code using the libsampler.
+config("libsampler_config") {
+  include_dirs = [ "include" ]
+}
+
 # This config should only be applied to code using V8 and not any V8 code
 # itself.
 config("external_config") {
@@ -185,8 +164,9 @@
 
   defines = []
   cflags = []
+  ldflags = []
 
-  if (v8_target_arch == "arm") {
+  if (v8_target_cpu == "arm") {
     defines += [ "V8_TARGET_ARCH_ARM" ]
     if (arm_version == 7) {
       defines += [ "CAN_USE_ARMV7_INSTRUCTIONS" ]
@@ -217,12 +197,12 @@
       }
     }
   }
-  if (v8_target_arch == "arm64") {
+  if (v8_target_cpu == "arm64") {
     defines += [ "V8_TARGET_ARCH_ARM64" ]
   }
 
   # TODO(jochen): Add support for mips.
-  if (v8_target_arch == "mipsel") {
+  if (v8_target_cpu == "mipsel") {
     defines += [ "V8_TARGET_ARCH_MIPS" ]
     if (v8_can_use_fpu_instructions) {
       defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
@@ -257,7 +237,7 @@
   }
 
   # TODO(jochen): Add support for mips64.
-  if (v8_target_arch == "mips64el") {
+  if (v8_target_cpu == "mips64el") {
     defines += [ "V8_TARGET_ARCH_MIPS64" ]
     if (v8_can_use_fpu_instructions) {
       defines += [ "CAN_USE_FPU_INSTRUCTIONS" ]
@@ -279,27 +259,33 @@
       defines += [ "_MIPS_ARCH_MIPS64R2" ]
     }
   }
-  if (v8_target_arch == "s390") {
+  if (v8_target_cpu == "s390" || v8_target_cpu == "s390x") {
     defines += [ "V8_TARGET_ARCH_S390" ]
+    if (v8_target_cpu == "s390x") {
+      defines += [ "V8_TARGET_ARCH_S390X" ]
+    }
+    if (host_cpu == "x64" || host_cpu == "x86") {
+      defines += [ "V8_TARGET_ARCH_S390_LE_SIM" ]
+    }
   }
-  if (v8_target_arch == "s390x") {
-    defines += [
-      "V8_TARGET_ARCH_S390",
-      "V8_TARGET_ARCH_S390X",
-    ]
-  }
-  if (v8_target_arch == "x86") {
+  if (v8_target_cpu == "x86") {
     defines += [ "V8_TARGET_ARCH_IA32" ]
+    if (is_win) {
+      # Ensure no surprising artifacts from 80bit double math with x86.
+      cflags += [ "/arch:SSE2" ]
+    }
   }
-  if (v8_target_arch == "x64") {
+  if (v8_target_cpu == "x64") {
     defines += [ "V8_TARGET_ARCH_X64" ]
+    if (is_win) {
+      # Increase the initial stack size. The default is 1MB, this is 2MB. This
+      # applies only to executables and shared libraries produced by V8 since
+      # ldflags are not pushed to dependants.
+      ldflags += [ "/STACK:2097152" ]
+    }
   }
 
-  if (is_win) {
-    defines += [ "WIN32" ]
-    # TODO(jochen): Support v8_enable_prof.
-  }
-
+  # TODO(jochen): Support v8_enable_prof on Windows.
   # TODO(jochen): Add support for compiling with simulators.
 
   if (is_debug) {
@@ -312,31 +298,11 @@
       "DEBUG",
       "TRACE_MAPS",
     ]
-    if (!v8_optimized_debug) {
+    if (v8_enable_slow_dchecks) {
       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" ]
-    }
+  } else if (dcheck_always_on) {
+    defines += [ "DEBUG" ]
   }
 }
 
@@ -365,7 +331,6 @@
     "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",
@@ -377,7 +342,6 @@
     "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",
@@ -427,11 +391,8 @@
     "src/messages.h",
     "src/js/harmony-async-await.js",
     "src/js/harmony-atomics.js",
-    "src/js/harmony-regexp-exec.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",
   ]
@@ -551,8 +512,16 @@
       deps = [
         "//v8",
       ]
-      renaming_sources = v8_external_startup_data_renaming_sources
-      renaming_destinations = v8_external_startup_data_renaming_destinations
+      sources = [
+        "$root_out_dir/natives_blob.bin",
+      ]
+      renaming_sources = [ "$root_out_dir/snapshot_blob.bin" ]
+      if (current_cpu == "arm" || current_cpu == "x86" ||
+          current_cpu == "mipsel") {
+        renaming_destinations = [ "snapshot_blob_32.bin" ]
+      } else {
+        renaming_destinations = [ "snapshot_blob_64.bin" ]
+      }
       disable_compression = true
     }
   }
@@ -615,7 +584,7 @@
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   deps = [
-    ":mksnapshot($snapshot_toolchain)",
+    ":mksnapshot($v8_snapshot_toolchain)",
   ]
 
   script = "tools/run.py"
@@ -625,7 +594,7 @@
   ]
 
   args = [
-    "./" + rebase_path(get_label_info(":mksnapshot($snapshot_toolchain)",
+    "./" + rebase_path(get_label_info(":mksnapshot($v8_snapshot_toolchain)",
                                       "root_out_dir") + "/mksnapshot",
                        root_build_dir),
     "--startup_src",
@@ -652,6 +621,23 @@
 # Source Sets (aka static libraries)
 #
 
+source_set("v8_maybe_snapshot") {
+  if (v8_use_snapshot && v8_use_external_startup_data) {
+    public_deps = [
+      ":v8_external_snapshot",
+    ]
+  } else if (v8_use_snapshot) {
+    public_deps = [
+      ":v8_snapshot",
+    ]
+  } else {
+    assert(!v8_use_external_startup_data)
+    public_deps = [
+      ":v8_nosnapshot",
+    ]
+  }
+}
+
 v8_source_set("v8_nosnapshot") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
@@ -735,8 +721,7 @@
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
   sources = [
-    # TODO(fmeawad): This needs to be updated to support standalone V8 builds.
-    "../base/trace_event/common/trace_event_common.h",
+    "//base/trace_event/common/trace_event_common.h",
     "include/v8-debug.h",
     "include/v8-experimental.h",
     "include/v8-platform.h",
@@ -754,6 +739,7 @@
     "src/allocation-site-scopes.h",
     "src/allocation.cc",
     "src/allocation.h",
+    "src/api-arguments-inl.h",
     "src/api-arguments.cc",
     "src/api-arguments.h",
     "src/api-experimental.cc",
@@ -815,6 +801,7 @@
     "src/char-predicates.cc",
     "src/char-predicates.h",
     "src/checks.h",
+    "src/code-events.h",
     "src/code-factory.cc",
     "src/code-factory.h",
     "src/code-stub-assembler.cc",
@@ -852,8 +839,8 @@
     "src/compiler/bytecode-graph-builder.cc",
     "src/compiler/bytecode-graph-builder.h",
     "src/compiler/c-linkage.cc",
-    "src/compiler/coalesced-live-ranges.cc",
-    "src/compiler/coalesced-live-ranges.h",
+    "src/compiler/checkpoint-elimination.cc",
+    "src/compiler/checkpoint-elimination.h",
     "src/compiler/code-assembler.cc",
     "src/compiler/code-assembler.h",
     "src/compiler/code-generator-impl.h",
@@ -898,8 +885,6 @@
     "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-scheduler.cc",
     "src/compiler/instruction-scheduler.h",
@@ -972,6 +957,8 @@
     "src/compiler/node.h",
     "src/compiler/opcodes.cc",
     "src/compiler/opcodes.h",
+    "src/compiler/operation-typer.cc",
+    "src/compiler/operation-typer.h",
     "src/compiler/operator-properties.cc",
     "src/compiler/operator-properties.h",
     "src/compiler/operator.cc",
@@ -984,6 +971,8 @@
     "src/compiler/pipeline.h",
     "src/compiler/raw-machine-assembler.cc",
     "src/compiler/raw-machine-assembler.h",
+    "src/compiler/redundancy-elimination.cc",
+    "src/compiler/redundancy-elimination.h",
     "src/compiler/register-allocator-verifier.cc",
     "src/compiler/register-allocator-verifier.h",
     "src/compiler/register-allocator.cc",
@@ -1006,6 +995,8 @@
     "src/compiler/source-position.h",
     "src/compiler/state-values-utils.cc",
     "src/compiler/state-values-utils.h",
+    "src/compiler/store-store-elimination.cc",
+    "src/compiler/store-store-elimination.h",
     "src/compiler/tail-call-optimization.cc",
     "src/compiler/tail-call-optimization.h",
     "src/compiler/type-hint-analyzer.cc",
@@ -1122,6 +1113,8 @@
     "src/dtoa.cc",
     "src/dtoa.h",
     "src/effects.h",
+    "src/eh-frame.cc",
+    "src/eh-frame.h",
     "src/elements-kind.cc",
     "src/elements-kind.h",
     "src/elements.cc",
@@ -1172,8 +1165,8 @@
     "src/handles-inl.h",
     "src/handles.cc",
     "src/handles.h",
-    "src/hashmap.h",
     "src/heap-symbols.h",
+    "src/heap/array-buffer-tracker-inl.h",
     "src/heap/array-buffer-tracker.cc",
     "src/heap/array-buffer-tracker.h",
     "src/heap/gc-idle-time-handler.cc",
@@ -1240,14 +1233,19 @@
     "src/interpreter/bytecode-array-iterator.h",
     "src/interpreter/bytecode-array-writer.cc",
     "src/interpreter/bytecode-array-writer.h",
+    "src/interpreter/bytecode-dead-code-optimizer.cc",
+    "src/interpreter/bytecode-dead-code-optimizer.h",
     "src/interpreter/bytecode-generator.cc",
     "src/interpreter/bytecode-generator.h",
+    "src/interpreter/bytecode-label.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-register-optimizer.cc",
+    "src/interpreter/bytecode-register-optimizer.h",
     "src/interpreter/bytecode-traits.h",
     "src/interpreter/bytecodes.cc",
     "src/interpreter/bytecodes.h",
@@ -1268,7 +1266,9 @@
     "src/isolate-inl.h",
     "src/isolate.cc",
     "src/isolate.h",
+    "src/json-parser.cc",
     "src/json-parser.h",
+    "src/json-stringifier.cc",
     "src/json-stringifier.h",
     "src/keys.cc",
     "src/keys.h",
@@ -1342,8 +1342,8 @@
     "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/profiler-listener.cc",
+    "src/profiler/profiler-listener.h",
     "src/profiler/sampling-heap-profiler.cc",
     "src/profiler/sampling-heap-profiler.h",
     "src/profiler/strings-storage.cc",
@@ -1395,7 +1395,6 @@
     "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",
@@ -1410,7 +1409,6 @@
     "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",
@@ -1449,8 +1447,6 @@
     "src/string-stream.h",
     "src/strtod.cc",
     "src/strtod.h",
-    "src/third_party/fdlibm/fdlibm.cc",
-    "src/third_party/fdlibm/fdlibm.h",
     "src/tracing/trace-event.cc",
     "src/tracing/trace-event.h",
     "src/transitions-inl.h",
@@ -1488,6 +1484,8 @@
     "src/version.h",
     "src/vm-state-inl.h",
     "src/vm-state.h",
+    "src/wasm/asm-types.cc",
+    "src/wasm/asm-types.h",
     "src/wasm/asm-wasm-builder.cc",
     "src/wasm/asm-wasm-builder.h",
     "src/wasm/ast-decoder.cc",
@@ -1500,10 +1498,14 @@
     "src/wasm/module-decoder.h",
     "src/wasm/switch-logic.cc",
     "src/wasm/switch-logic.h",
+    "src/wasm/wasm-debug.cc",
+    "src/wasm/wasm-debug.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-interpreter.cc",
+    "src/wasm/wasm-interpreter.h",
     "src/wasm/wasm-js.cc",
     "src/wasm/wasm-js.h",
     "src/wasm/wasm-macro-gen.h",
@@ -1519,7 +1521,7 @@
     "src/zone.h",
   ]
 
-  if (v8_target_arch == "x86") {
+  if (v8_target_cpu == "x86") {
     sources += [
       "src/compiler/ia32/code-generator-ia32.cc",
       "src/compiler/ia32/instruction-codes-ia32.h",
@@ -1557,7 +1559,7 @@
       "src/regexp/ia32/regexp-macro-assembler-ia32.cc",
       "src/regexp/ia32/regexp-macro-assembler-ia32.h",
     ]
-  } else if (v8_target_arch == "x64") {
+  } else if (v8_target_cpu == "x64") {
     sources += [
       "src/compiler/x64/code-generator-x64.cc",
       "src/compiler/x64/instruction-codes-x64.h",
@@ -1595,7 +1597,7 @@
       "src/x64/macro-assembler-x64.cc",
       "src/x64/macro-assembler-x64.h",
     ]
-  } else if (v8_target_arch == "arm") {
+  } else if (v8_target_cpu == "arm") {
     sources += [
       "src/arm/assembler-arm-inl.h",
       "src/arm/assembler-arm.cc",
@@ -1638,7 +1640,7 @@
       "src/regexp/arm/regexp-macro-assembler-arm.cc",
       "src/regexp/arm/regexp-macro-assembler-arm.h",
     ]
-  } else if (v8_target_arch == "arm64") {
+  } else if (v8_target_cpu == "arm64") {
     sources += [
       "src/arm64/assembler-arm64-inl.h",
       "src/arm64/assembler-arm64.cc",
@@ -1694,7 +1696,7 @@
       "src/regexp/arm64/regexp-macro-assembler-arm64.cc",
       "src/regexp/arm64/regexp-macro-assembler-arm64.h",
     ]
-  } else if (v8_target_arch == "mipsel") {
+  } else if (v8_target_cpu == "mipsel") {
     sources += [
       "src/compiler/mips/code-generator-mips.cc",
       "src/compiler/mips/instruction-codes-mips.h",
@@ -1736,7 +1738,7 @@
       "src/regexp/mips/regexp-macro-assembler-mips.cc",
       "src/regexp/mips/regexp-macro-assembler-mips.h",
     ]
-  } else if (v8_target_arch == "mips64el") {
+  } else if (v8_target_cpu == "mips64el") {
     sources += [
       "src/compiler/mips64/code-generator-mips64.cc",
       "src/compiler/mips64/instruction-codes-mips64.h",
@@ -1778,7 +1780,7 @@
       "src/regexp/mips64/regexp-macro-assembler-mips64.cc",
       "src/regexp/mips64/regexp-macro-assembler-mips64.h",
     ]
-  } else if (v8_target_arch == "s390" || v8_target_arch == "s390x") {
+  } else if (v8_target_cpu == "s390" || v8_target_cpu == "s390x") {
     sources += [
       "src/compiler/s390/code-generator-s390.cc",
       "src/compiler/s390/instruction-codes-s390.h",
@@ -1827,6 +1829,7 @@
   defines = []
   deps = [
     ":v8_libbase",
+    ":v8_libsampler",
   ]
 
   if (is_win) {
@@ -1839,14 +1842,6 @@
     if (is_win) {
       deps += [ "//third_party/icu:icudata" ]
     }
-
-    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",
@@ -1888,10 +1883,15 @@
     "src/base/cpu.h",
     "src/base/division-by-constant.cc",
     "src/base/division-by-constant.h",
+    "src/base/file-utils.cc",
+    "src/base/file-utils.h",
     "src/base/flags.h",
     "src/base/format-macros.h",
     "src/base/functional.cc",
     "src/base/functional.h",
+    "src/base/hashmap.h",
+    "src/base/ieee754.cc",
+    "src/base/ieee754.h",
     "src/base/iterator.h",
     "src/base/lazy-instance.h",
     "src/base/logging.cc",
@@ -1989,6 +1989,21 @@
   ]
 }
 
+v8_source_set("v8_libsampler") {
+  sources = [
+    "src/libsampler/v8-sampler.cc",
+    "src/libsampler/v8-sampler.h",
+  ]
+
+  configs = [ ":internal_config_base" ]
+
+  public_configs = [ ":libsampler_config" ]
+
+  deps = [
+    ":v8_libbase",
+  ]
+}
+
 v8_source_set("fuzzer_support") {
   visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
@@ -2000,7 +2015,7 @@
   configs = [ ":internal_config_base" ]
 
   deps = [
-    snapshot_target,
+    ":v8_maybe_snapshot",
   ]
 
   public_deps = [
@@ -2008,25 +2023,27 @@
   ]
 }
 
+v8_source_set("simple_fuzzer") {
+  sources = [
+    "test/fuzzer/fuzzer.cc",
+  ]
+
+  configs = [ ":internal_config_base" ]
+}
+
 ###############################################################################
 # Executables
 #
 
-if (current_toolchain == snapshot_toolchain) {
-  executable("mksnapshot") {
+if (current_toolchain == v8_snapshot_toolchain) {
+  v8_executable("mksnapshot") {
     visibility = [ ":*" ]  # Only targets in this file can depend on this.
 
     sources = [
       "src/snapshot/mksnapshot.cc",
     ]
 
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    configs += [
-      ":internal_config",
-      ":features",
-      ":toolchain",
-    ]
+    configs = [ ":internal_config" ]
 
     deps = [
       ":v8_base",
@@ -2042,24 +2059,50 @@
 # Public targets
 #
 
+want_v8_shell =
+    (current_toolchain == host_toolchain && v8_toolset_for_shell == "host") ||
+    (current_toolchain == v8_snapshot_toolchain &&
+     v8_toolset_for_shell == "host") ||
+    (current_toolchain != host_toolchain && v8_toolset_for_shell == "target")
+
+group("gn_all") {
+  testonly = true
+
+  deps = [
+    ":d8",
+    ":v8_hello_world",
+    ":v8_parser_shell",
+    ":v8_sample_process",
+    ":v8_simple_json_fuzzer",
+    ":v8_simple_parser_fuzzer",
+    ":v8_simple_regexp_fuzzer",
+    ":v8_simple_wasm_asmjs_fuzzer",
+    ":v8_simple_wasm_fuzzer",
+    "test:gn_all",
+    "tools:gn_all",
+  ]
+
+  if (want_v8_shell) {
+    deps += [ ":v8_shell" ]
+  }
+
+  if (v8_test_isolation_mode != "noop") {
+    deps += [ ":d8_run" ]
+  }
+}
+
 if (is_component_build) {
-  component("v8") {
+  v8_component("v8") {
     sources = [
       "src/v8dll-main.cc",
     ]
 
     public_deps = [
       ":v8_base",
-      snapshot_target,
+      ":v8_maybe_snapshot",
     ]
 
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    configs += [
-      ":internal_config",
-      ":features",
-      ":toolchain",
-    ]
+    configs = [ ":internal_config" ]
 
     public_configs = [ ":external_config" ]
   }
@@ -2067,27 +2110,23 @@
   group("v8") {
     public_deps = [
       ":v8_base",
-      snapshot_target,
+      ":v8_maybe_snapshot",
     ]
     public_configs = [ ":external_config" ]
   }
 }
 
-executable("d8") {
+v8_executable("d8") {
   sources = [
     "src/d8.cc",
     "src/d8.h",
   ]
 
-  configs -= [ "//build/config/compiler:chromium_code" ]
-  configs += [ "//build/config/compiler:no_chromium_code" ]
-  configs += [
+  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 = [
@@ -2114,21 +2153,103 @@
   }
 }
 
-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") {
+v8_isolate_run("d8") {
+  deps = [
+    ":d8",
+  ]
+
+  isolate = "//src/d8.isolate"
+}
+
+v8_executable("v8_hello_world") {
+  sources = [
+    "samples/hello-world.cc",
+  ]
+
+  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",
+  ]
+
+  deps = [
+    ":v8",
+    ":v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  if (v8_enable_i18n_support) {
+    deps += [ "//third_party/icu" ]
+  }
+}
+
+v8_executable("v8_sample_process") {
+  sources = [
+    "samples/process.cc",
+  ]
+
+  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",
+  ]
+
+  deps = [
+    ":v8",
+    ":v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  if (v8_enable_i18n_support) {
+    deps += [ "//third_party/icu" ]
+  }
+}
+
+v8_executable("v8_parser_shell") {
+  sources = [
+    "tools/parser-shell.cc",
+    "tools/shell-utils.h",
+  ]
+
+  configs = [
+    ":external_config",
+    ":internal_config_base",
+  ]
+
+  deps = [
+    ":v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  if (is_component_build) {
+    # v8_parser_shell can't be built against a shared library, so we
+    # need to depend on the underlying static target in that case.
+    deps += [ ":v8_maybe_snapshot" ]
+  } else {
+    deps += [ ":v8" ]
+  }
+
+  if (v8_enable_i18n_support) {
+    deps += [ "//third_party/icu" ]
+  }
+}
+
+if (want_v8_shell) {
+  v8_executable("v8_shell") {
     sources = [
       "samples/shell.cc",
     ]
 
-    configs -= [ "//build/config/compiler:chromium_code" ]
-    configs += [ "//build/config/compiler:no_chromium_code" ]
-    configs += [
+    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 = [
@@ -2144,6 +2265,20 @@
   }
 }
 
+template("v8_fuzzer") {
+  name = target_name
+  forward_variables_from(invoker, "*")
+  v8_executable("v8_simple_" + name) {
+    deps = [
+      ":" + name,
+      ":simple_fuzzer",
+      "//build/win:default_exe_manifest",
+    ]
+
+    configs = [ ":external_config" ]
+  }
+}
+
 v8_source_set("json_fuzzer") {
   sources = [
     "test/fuzzer/json.cc",
@@ -2156,6 +2291,9 @@
   configs = [ ":internal_config" ]
 }
 
+v8_fuzzer("json_fuzzer") {
+}
+
 v8_source_set("parser_fuzzer") {
   sources = [
     "test/fuzzer/parser.cc",
@@ -2168,6 +2306,9 @@
   configs = [ ":internal_config" ]
 }
 
+v8_fuzzer("parser_fuzzer") {
+}
+
 v8_source_set("regexp_fuzzer") {
   sources = [
     "test/fuzzer/regexp.cc",
@@ -2180,6 +2321,9 @@
   configs = [ ":internal_config" ]
 }
 
+v8_fuzzer("regexp_fuzzer") {
+}
+
 v8_source_set("wasm_fuzzer") {
   sources = [
     "test/fuzzer/wasm.cc",
@@ -2192,6 +2336,9 @@
   configs = [ ":internal_config" ]
 }
 
+v8_fuzzer("wasm_fuzzer") {
+}
+
 v8_source_set("wasm_asmjs_fuzzer") {
   sources = [
     "test/fuzzer/wasm-asmjs.cc",
@@ -2203,3 +2350,6 @@
 
   configs = [ ":internal_config" ]
 }
+
+v8_fuzzer("wasm_asmjs_fuzzer") {
+}
diff --git a/ChangeLog b/ChangeLog
index 2bd48c0..2245195 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1774 @@
+2016-06-27: Version 5.3.332
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.331
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.330
+
+        [stubs] Implementing CodeStubAssembler::GetOwnProperty() (issue 4911).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.329
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.328
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.327
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.326
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-27: Version 5.3.325
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-26: Version 5.3.324
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-26: Version 5.3.323
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-26: Version 5.3.322
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-26: Version 5.3.321
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-24: Version 5.3.320
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-24: Version 5.3.319
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-24: Version 5.3.318
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-24: Version 5.3.317
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-24: Version 5.3.316
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-23: Version 5.3.315
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-23: Version 5.3.314
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-23: Version 5.3.313
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-23: Version 5.3.312
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.311
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.310
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.309
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.308
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.307
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.306
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.305
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.304
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.303
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.302
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.301
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.300
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.299
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.298
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.297
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.296
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.295
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.294
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.293
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-22: Version 5.3.292
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.291
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.290
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.289
+
+        Reland: change most cases of variable redeclaration from TypeError to
+        SyntaxError (issue 4955).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.288
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.287
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.286
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.285
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.284
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.283
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.282
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.281
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-21: Version 5.3.280
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.279
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.278
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.277
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.276
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.275
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.274
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.273
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.272
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.271
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.270
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.269
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.268
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.267
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.266
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.265
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.264
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.263
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.262
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.261
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.260
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.259
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.258
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-20: Version 5.3.257
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.256
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.255
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.254
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.253
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.252
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.251
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-17: Version 5.3.250
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.249
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.248
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.247
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.246
+
+        [es8] Unstage syntactic tail calls (issue 4915).
+
+        [ic] LoadICState cleanup (Chromium issue 576312).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.245
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.244
+
+        [ic] Remove --new-load-global-ic switch (Chromium issue 576312).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.243
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.242
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-16: Version 5.3.241
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.240
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.239
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.238
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.237
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.236
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.235
+
+        [ic] Enable new LoadGlobalIC machinery (Chromium issue 576312).
+
+        [ic] LoadGlobalIC is now able to cache PropertyCells in the feedback
+        vector (Chromium issue 576312).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.234
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.233
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.232
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.231
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-15: Version 5.3.230
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-14: Version 5.3.229
+
+        [stubs] Ensure that StoreTransitionStub does not bailout after the
+        properties backing store is enlarged (Chromium issue 601420).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-14: Version 5.3.228
+
+        [ic] Split LoadIC into LoadGlobalIC and LoadIC (Chromium issue 576312).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-14: Version 5.3.227
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-14: Version 5.3.226
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.225
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.224
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.223
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.222
+
+        change most cases of variable redeclaration from TypeError to
+        SyntaxError (issue 4955).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.221
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.220
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.219
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.218
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.217
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-13: Version 5.3.216
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-12: Version 5.3.215
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-12: Version 5.3.214
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.213
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.212
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.211
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.210
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.209
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.208
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.207
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.206
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.205
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.204
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.203
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.202
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-10: Version 5.3.201
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.200
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.199
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.198
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.197
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.196
+
+        [ic] [stubs] Remove InlineCacheState field from the code flags (Chromium
+        issue 618701).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.195
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.194
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.193
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.192
+
+        [build] Use icu data file by default (Chromium issue 616033).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.191
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.190
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.189
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-09: Version 5.3.188
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.187
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.186
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.185
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.184
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.183
+
+        [build] Use sysroot for linux compilation with clang (Chromium issues
+        474921, 616032).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.182
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.181
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.180
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.179
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.178
+
+        [icu] Support loading data file from default location (Chromium issue
+        616033).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.177
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.176
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.175
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.174
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.173
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.172
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-08: Version 5.3.171
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.170
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.169
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.168
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.167
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.166
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.165
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.164
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.163
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.162
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.161
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.160
+
+        [runtime] Don't use ElementsTransitionAndStoreStub for transitions that
+        involve instance rewriting (issue 5009, Chromium issue 617524).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.159
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.158
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.157
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.156
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.155
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-07: Version 5.3.154
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.153
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.152
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.151
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.150
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.149
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.148
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.147
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.146
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.145
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.144
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.143
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.142
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.141
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-06: Version 5.3.140
+
+        [build] Use sysroot for linux compilation with clang (Chromium issues
+        474921, 616032).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-05: Version 5.3.139
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-04: Version 5.3.138
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.137
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.136
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.135
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.134
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.133
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.132
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.131
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.130
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.129
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.128
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.127
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.126
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.125
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.124
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.123
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.122
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-03: Version 5.3.121
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.120
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.119
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.118
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.117
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.116
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.115
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.114
+
+        [stubs] Extend HasProperty stub with dictionary-mode, string wrapper and
+        double-elements objects support (issue 2743).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.113
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.112
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.111
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.110
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.109
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.108
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-02: Version 5.3.107
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.106
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.105
+
+        Extend HasProperty stub with dictionary-mode, string wrapper and double-
+        elements objects support (issue 2743).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.104
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.103
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.102
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.101
+
+        [runtime] Ensure that all elements kind transitions are chained to the
+        root map (issue 5009).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.100
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.99
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.98
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.97
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.96
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.95
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.94
+
+        Performance and stability improvements on all platforms.
+
+
+2016-06-01: Version 5.3.93
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.92
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.91
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.90
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.89
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.88
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.87
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.86
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.85
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.84
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-31: Version 5.3.83
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.82
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.81
+
+        [api] Remove deprectated memory allocation callback API (issue 4813).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.80
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.79
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.78
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.77
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.76
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.75
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.74
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.73
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.72
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.71
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.70
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.69
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-30: Version 5.3.68
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-29: Version 5.3.67
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-28: Version 5.3.66
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-28: Version 5.3.65
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.64
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.63
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.62
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.61
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.60
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.59
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.58
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-27: Version 5.3.57
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-26: Version 5.3.56
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-26: Version 5.3.55
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-26: Version 5.3.54
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-26: Version 5.3.53
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.52
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.51
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.50
+
+        TypedArray: Make byteOffset, byteLength, and length configurable (issue
+        4902).
+
+        Make %ThrowTypeError% function(s) strict (issue 4925).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.49
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.48
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.47
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.46
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.45
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.44
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.43
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.42
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.41
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.40
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-25: Version 5.3.39
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.38
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.37
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.36
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.35
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.34
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.33
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.32
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.31
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.30
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.29
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.28
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.27
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.26
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.25
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.24
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.23
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-24: Version 5.3.22
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.21
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.20
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.19
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.18
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.17
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.16
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.15
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.14
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.13
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.12
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.11
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.10
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-23: Version 5.3.9
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-21: Version 5.3.8
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-21: Version 5.3.7
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-21: Version 5.3.6
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-20: Version 5.3.5
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-20: Version 5.3.4
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-20: Version 5.3.3
+
+        Move case conversion with ICU to 'staged' (issues 4476, 4477).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-20: Version 5.3.2
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-20: Version 5.3.1
+
+        Move case conversion with ICU to 'staged' (issues 4476, 4477).
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-19: Version 5.2.371
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-19: Version 5.2.370
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-19: Version 5.2.369
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-19: Version 5.2.368
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.367
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.366
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.365
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.364
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.363
+
+        Performance and stability improvements on all platforms.
+
+
+2016-05-18: Version 5.2.362
+
+        Performance and stability improvements on all platforms.
+
+
 2016-05-18: Version 5.2.361
 
         Performance and stability improvements on all platforms.
diff --git a/DEPS b/DEPS
index dfe214e..b3cf10a 100644
--- a/DEPS
+++ b/DEPS
@@ -8,15 +8,17 @@
 
 deps = {
   "v8/build":
-    Var("git_url") + "/chromium/src/build.git" + "@" + "01ca9403e7d6ba63e9a4b6df1cb5cb8397ff7b92",
+    Var("git_url") + "/chromium/src/build.git" + "@" + "87e063014aa0f343b15f5de495a28e5f8572bf8d",
   "v8/tools/gyp":
-    Var("git_url") + "/external/gyp.git" + "@" + "bce1c7793010574d88d7915e2d55395213ac63d1",
+    Var("git_url") + "/external/gyp.git" + "@" + "35eafcd939515d51d19556c543f9cf97faf75ee6",
   "v8/third_party/icu":
-    Var("git_url") + "/chromium/deps/icu.git" + "@" + "c291cde264469b20ca969ce8832088acb21e0c48",
+    Var("git_url") + "/chromium/deps/icu.git" + "@" + "ffa4b6704cf5cc9fec9485731f24a05b2ba94bca",
   "v8/buildtools":
-    Var("git_url") + "/chromium/buildtools.git" + "@" + "06e80a0e17319868d4a9b13f9bb6a248dc8d8b20",
+    Var("git_url") + "/chromium/buildtools.git" + "@" + "56eaae134648135663c4aa1ed82278572b5f35ef",
   "v8/base/trace_event/common":
     Var("git_url") + "/chromium/src/base/trace_event/common.git" + "@" + "54b8455be9505c2cb0cf5c26bb86739c236471aa",
+  "v8/tools/mb":
+    Var('git_url') + '/chromium/src/tools/mb.git' + '@' + "62e2d060db3b06208f5d6558db03efd140ecd180",
   "v8/tools/swarming_client":
     Var('git_url') + '/external/swarming.client.git' + '@' + "df6e95e7669883c8fe9ef956c69a544154701a49",
   "v8/testing/gtest":
@@ -27,17 +29,17 @@
     Var("git_url") + "/v8/deps/third_party/benchmarks.git" + "@" + "05d7188267b4560491ff9155c5ee13e207ecd65f",
   "v8/test/mozilla/data":
     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/simdjs/data": Var("git_url") + "/external/github.com/tc39/ecmascript_simd.git" + "@" + "baf493985cb9ea7cdbd0d68704860a8156de9556",
   "v8/test/test262/data":
-    Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "9c45e2ac684bae64614d8eb55789cae97323a7e7",
+    Var("git_url") + "/external/github.com/tc39/test262.git" + "@" + "88bc7fe7586f161201c5f14f55c9c489f82b1b67",
   "v8/tools/clang":
-    Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "18b63c680a59a7125514b1e05ca42cdfb89a19c7",
+    Var("git_url") + "/chromium/src/tools/clang.git" + "@" + "2ad431ac7823581e1f39c5b770704e1e1ca6cb32",
 }
 
 deps_os = {
   "android": {
     "v8/third_party/android_tools":
-      Var("git_url") + "/android_tools.git" + "@" + "adfd31794011488cd0fc716b53558b2d8a67af8b",
+      Var("git_url") + "/android_tools.git" + "@" + "5b5f2f60b78198eaef25d442ac60f823142a8a6e",
   },
   "win": {
     "v8/third_party/cygwin":
@@ -45,6 +47,8 @@
   }
 }
 
+recursedeps = [ 'v8/third_party/android_tools' ]
+
 include_rules = [
   # Everybody can use some things.
   "+include",
@@ -190,6 +194,18 @@
     ],
   },
   {
+    # Downloads the current stable linux sysroot to build/linux/ if needed.
+    # This sysroot updates at about the same rate that the chrome build deps
+    # change.
+    'name': 'sysroot',
+    'pattern': '.',
+    'action': [
+        'python',
+        'v8/build/linux/sysroot_scripts/install-sysroot.py',
+        '--running-as-hook',
+    ],
+  },
+  {
     # Update the Windows toolchain if necessary.
     'name': 'win_toolchain',
     'pattern': '.',
diff --git a/LICENSE.fdlibm b/LICENSE.fdlibm
new file mode 100644
index 0000000..b54cb52
--- /dev/null
+++ b/LICENSE.fdlibm
@@ -0,0 +1,6 @@
+Copyright (C) 1993-2004 by Sun Microsystems, Inc. All rights reserved.
+
+Developed at SunSoft, a Sun Microsystems, Inc. business.
+Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice
+is preserved.
diff --git a/MODULE_LICENSE_BSD b/MODULE_LICENSE_BSD
deleted file mode 100644
index e69de29..0000000
--- a/MODULE_LICENSE_BSD
+++ /dev/null
diff --git a/Makefile b/Makefile
index 0f8f93a..ffb5192 100644
--- a/Makefile
+++ b/Makefile
@@ -250,8 +250,9 @@
 
 # Architectures and modes to be compiled. Consider these to be internal
 # variables, don't override them (use the targets instead).
-ARCHES = ia32 x64 x32 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 \
-		 s390 s390x
+ARCHES = ia32 x64 arm arm64 mips mipsel mips64 mips64el x87 ppc ppc64 s390 \
+         s390x
+ARCHES32 = ia32 arm mips mipsel x87 ppc s390
 DEFAULT_ARCHES = ia32 x64 arm
 MODES = release debug optdebug
 DEFAULT_MODES = release debug
@@ -447,6 +448,10 @@
 	        cut -f 2 -d " " | cut -f 1 -d "-" ))
 	$(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH)))
 	$(eval CXX_TARGET_ARCH:=$(subst x86_64,x64,$(CXX_TARGET_ARCH)))
+	$(eval CXX_TARGET_ARCH:=$(subst s390x,s390,$(CXX_TARGET_ARCH)))
+	$(eval CXX_TARGET_ARCH:=$(subst powerpc,ppc,$(CXX_TARGET_ARCH)))
+	$(eval CXX_TARGET_ARCH:=$(subst ppc64,ppc,$(CXX_TARGET_ARCH)))
+	$(eval CXX_TARGET_ARCH:=$(subst ppcle,ppc,$(CXX_TARGET_ARCH)))
 	$(eval V8_TARGET_ARCH:=$(subst .,,$(suffix $(basename $@))))
 	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
 	GYP_GENERATORS=make \
@@ -454,12 +459,14 @@
 	              -Igypfiles/standalone.gypi --depth=. \
 	              -Dv8_target_arch=$(V8_TARGET_ARCH) \
 	              $(if $(findstring $(CXX_TARGET_ARCH),$(V8_TARGET_ARCH)), \
-	              -Dtarget_arch=$(V8_TARGET_ARCH),) \
+	              -Dtarget_arch=$(V8_TARGET_ARCH), \
+	                  $(if $(shell echo $(ARCHES32) | grep $(V8_TARGET_ARCH)), \
+	                  -Dtarget_arch=ia32,)) \
 	              $(if $(findstring optdebug,$@),-Dv8_optimized_debug=1,) \
 	              -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS)
 
 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE)
-	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
+	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH):$(shell pwd)/tools/gyp/pylib:$(PYTHONPATH)" \
 	GYP_GENERATORS=make \
 	tools/gyp/gyp --generator-output="$(OUTDIR)" gypfiles/all.gyp \
 	              -Igypfiles/standalone.gypi --depth=. -S.native $(GYPFLAGS)
diff --git a/Makefile.android b/Makefile.android
index fd5f968..4171521 100644
--- a/Makefile.android
+++ b/Makefile.android
@@ -35,27 +35,18 @@
 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
@@ -66,7 +57,6 @@
 .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)/$@"
@@ -76,7 +66,7 @@
 $(ANDROID_MAKEFILES):
 	GYP_GENERATORS=make-android \
 	GYP_DEFINES="${DEFINES}" \
-	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH)" \
+	PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/gypfiles:$(PYTHONPATH)" \
 	tools/gyp/gyp --generator-output="${OUTDIR}" gypfiles/all.gyp \
 	              -Igypfiles/standalone.gypi --depth=. \
 	              -S$(suffix $(basename $@))$(suffix $@) ${GYPFLAGS}
diff --git a/NOTICE b/NOTICE
deleted file mode 100644
index 678c73f..0000000
--- a/NOTICE
+++ /dev/null
@@ -1,33 +0,0 @@
-Copyright (c) 1994-2006 Sun Microsystems Inc.
-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.
-
-- Redistribution 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 Sun Microsystems or the names of 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.
-
-The original source code covered by the above license above has been
-modified significantly by Google Inc.
-Copyright 2006-2008 the V8 project authors. All rights reserved.
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 60a5fd7..5255ca1 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -223,6 +223,8 @@
       input_api, output_api, source_file_filter=None))
   results.extend(input_api.canned_checks.CheckPatchFormatted(
       input_api, output_api))
+  results.extend(input_api.canned_checks.CheckGenderNeutral(
+      input_api, output_api))
   results.extend(_V8PresubmitChecks(input_api, output_api))
   results.extend(_CheckUnwantedDependencies(input_api, output_api))
   results.extend(
diff --git a/V8_MERGE_REVISION b/V8_MERGE_REVISION
index 9b09eef..e855b52 100644
--- a/V8_MERGE_REVISION
+++ b/V8_MERGE_REVISION
@@ -1,2 +1,2 @@
-v8 5.2.361.47
-https://chromium.googlesource.com/v8/v8/+/5.2.361.47
+v8 5.3.332.45
+https://chromium.googlesource.com/v8/v8/+/5.3.332.45
diff --git a/build/OWNERS b/build/OWNERS
new file mode 100644
index 0000000..122b6e6
--- /dev/null
+++ b/build/OWNERS
@@ -0,0 +1,12 @@
+agrieve@chromium.org
+dpranke@chromium.org
+jbudorick@chromium.org
+jochen@chromium.org
+scottmg@chromium.org
+thakis@chromium.org
+brucedawson@chromium.org
+
+per-file mac_toolchain.py=erikchen@chromium.org
+per-file mac_toolchain.py=justincohen@chromium.org
+per-file package_mac_toolchain.py=erikchen@chromium.org
+per-file package_mac_toolchain.py=justincohen@chromium.org
diff --git a/build/all.gyp b/build/all.gyp
new file mode 100644
index 0000000..7520aab
--- /dev/null
+++ b/build/all.gyp
@@ -0,0 +1,1364 @@
+# Copyright (c) 2012 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.
+
+{
+  'variables': {
+    # A hook that can be overridden in other repositories to add additional
+    # compilation targets to 'All'.
+    'app_targets%': [],
+    # For Android-specific targets.
+    'android_app_targets%': [],
+  },
+  'includes': [
+    '../third_party/openh264/openh264_args.gypi',
+  ],
+  'targets': [
+    {
+      'target_name': 'All',
+      'type': 'none',
+      'xcode_create_dependents_test_runner': 1,
+      'dependencies': [
+        '<@(app_targets)',
+        'some.gyp:*',
+        '../base/base.gyp:*',
+        '../components/components.gyp:*',
+        '../components/components_tests.gyp:*',
+        '../crypto/crypto.gyp:*',
+        '../net/net.gyp:*',
+        '../sdch/sdch.gyp:*',
+        '../sql/sql.gyp:*',
+        '../testing/gmock.gyp:*',
+        '../testing/gtest.gyp:*',
+        '../third_party/boringssl/boringssl.gyp:*',
+        '../third_party/icu/icu.gyp:*',
+        '../third_party/libxml/libxml.gyp:*',
+        '../third_party/sqlite/sqlite.gyp:*',
+        '../third_party/zlib/zlib.gyp:*',
+        '../ui/accessibility/accessibility.gyp:*',
+        '../ui/base/ui_base.gyp:*',
+        '../ui/display/display.gyp:display_unittests',
+        '../ui/snapshot/snapshot.gyp:*',
+        '../url/url.gyp:*',
+      ],
+      'conditions': [
+        ['OS!="ios" and OS!="mac"', {
+          'dependencies': [
+            '../ui/touch_selection/ui_touch_selection.gyp:*',
+          ],
+        }],
+        ['OS=="ios"', {
+          'dependencies': [
+            '../ios/ios.gyp:*',
+            # NOTE: This list of targets is present because
+            # mojo_base.gyp:mojo_base cannot be built on iOS, as
+            # javascript-related targets cause v8 to be built.
+            # TODO(crbug.com/605508): http://crrev.com/1832703002 introduced
+            # a dependency on //third_party/WebKit that cause build failures
+            # when using Xcode version of clang (loading clang plugin fails).
+            # '../mojo/mojo_base.gyp:mojo_common_lib',
+            # '../mojo/mojo_base.gyp:mojo_common_unittests',
+            # '../mojo/mojo_edk.gyp:mojo_system_impl',
+            # '../mojo/mojo_edk_tests.gyp:mojo_public_bindings_unittests',
+            # '../mojo/mojo_edk_tests.gyp:mojo_public_system_unittests',
+            # '../mojo/mojo_edk_tests.gyp:mojo_system_unittests',
+            # '../mojo/mojo_public.gyp:mojo_cpp_bindings',
+            # '../mojo/mojo_public.gyp:mojo_public_test_utils',
+            # '../mojo/mojo_public.gyp:mojo_system',
+            '../google_apis/google_apis.gyp:google_apis_unittests',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+          ],
+        }, { # 'OS!="ios"
+          'dependencies': [
+            '../content/content.gyp:*',
+            '../device/bluetooth/bluetooth.gyp:*',
+            '../device/device_tests.gyp:*',
+          ],
+        }],
+        ['OS=="android"', {
+          'dependencies': [
+            '../content/content_shell_and_tests.gyp:content_shell_apk',
+            '<@(android_app_targets)',
+            'android_builder_tests',
+            '../third_party/catapult/telemetry/telemetry.gyp:*#host',
+            # TODO(nyquist) This should instead by a target for sync when all of
+            # the sync-related code for Android has been upstreamed.
+            # See http://crbug.com/159203
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_javalib',
+          ],
+          'conditions': [
+            ['chromecast==0', {
+              'dependencies': [
+                '../android_webview/android_webview.gyp:android_webview_apk',
+                '../android_webview/android_webview_shell.gyp:system_webview_shell_apk',
+                '../chrome/android/chrome_apk.gyp:chrome_public_apk',
+                '../chrome/android/chrome_apk.gyp:chrome_sync_shell_apk',
+              ],
+            }],
+            ['chromecast==0 and use_webview_internal_framework==0', {
+              'dependencies': [
+                '../android_webview/android_webview.gyp:system_webview_apk',
+              ],
+            }],
+            # TODO: Enable packed relocations for x64. See: b/20532404
+            ['target_arch != "x64"', {
+              'dependencies': [
+                '../third_party/android_platform/relocation_packer.gyp:android_relocation_packer_unittests#host',
+              ],
+            }],
+          ],
+        }, {
+          'dependencies': [
+            # TODO: This should build on Android and the target should move to the list above.
+            '../sync/sync.gyp:*',
+          ],
+          'conditions': [
+            ['OS!="ios"', {
+              'dependencies': [
+                '../content/content_shell_and_tests.gyp:*',
+              ],
+            }],
+          ],
+        }],
+        ['OS!="ios" and OS!="android" and chromecast==0', {
+          'dependencies': [
+            '../third_party/re2/re2.gyp:re2',
+            '../chrome/chrome.gyp:*',
+            '../cc/blink/cc_blink_tests.gyp:*',
+            '../cc/cc_tests.gyp:*',
+            '../device/usb/usb.gyp:*',
+            '../extensions/extensions.gyp:*',
+            '../extensions/extensions_tests.gyp:*',
+            '../gin/gin.gyp:*',
+            '../gpu/gpu.gyp:*',
+            '../gpu/tools/tools.gyp:*',
+            '../ipc/ipc.gyp:*',
+            '../ipc/mojo/ipc_mojo.gyp:*',
+            '../jingle/jingle.gyp:*',
+            '../media/cast/cast.gyp:*',
+            '../media/media.gyp:*',
+            '../media/midi/midi.gyp:*',
+            '../mojo/mojo.gyp:*',
+            '../mojo/mojo_base.gyp:*',
+            '../ppapi/ppapi.gyp:*',
+            '../ppapi/ppapi_internal.gyp:*',
+            '../ppapi/tools/ppapi_tools.gyp:*',
+            '../services/shell/shell.gyp:*',
+            '../skia/skia.gyp:*',
+            '../sync/tools/sync_tools.gyp:*',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+            '../third_party/WebKit/public/all.gyp:*',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:*',
+            '../third_party/codesighs/codesighs.gyp:*',
+            '../third_party/ffmpeg/ffmpeg.gyp:*',
+            '../third_party/iccjpeg/iccjpeg.gyp:*',
+            '../third_party/libpng/libpng.gyp:*',
+            '../third_party/libusb/libusb.gyp:*',
+            '../third_party/libwebp/libwebp.gyp:*',
+            '../third_party/libxslt/libxslt.gyp:*',
+            '../third_party/lzma_sdk/lzma_sdk.gyp:*',
+            '../third_party/mesa/mesa.gyp:*',
+            '../third_party/modp_b64/modp_b64.gyp:*',
+            '../third_party/ots/ots.gyp:*',
+            '../third_party/pdfium/samples/samples.gyp:*',
+            '../third_party/qcms/qcms.gyp:*',
+            '../tools/battor_agent/battor_agent.gyp:*',
+            '../tools/gn/gn.gyp:*',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
+            '../v8/src/v8.gyp:*',
+            '<(libjpeg_gyp_path):*',
+          ],
+        }],
+        ['OS=="win" or OS=="ios" or OS=="linux"', {
+          'dependencies': [
+            '../breakpad/breakpad.gyp:*',
+           ],
+        }],
+        ['OS=="mac"', {
+          'dependencies': [
+            '../sandbox/sandbox.gyp:*',
+            '../third_party/crashpad/crashpad/crashpad.gyp:*',
+            '../third_party/ocmock/ocmock.gyp:*',
+          ],
+          'conditions': [
+            ['enable_ipc_fuzzer==1', {
+              'dependencies': [
+                '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*',
+              ],
+            }],
+          ],
+        }],
+        ['OS=="linux"', {
+          'dependencies': [
+            '../courgette/courgette.gyp:*',
+            '../sandbox/sandbox.gyp:*',
+          ],
+          'conditions': [
+            ['branding=="Chrome"', {
+              'dependencies': [
+                '../chrome/chrome.gyp:linux_packages_<(channel)',
+              ],
+            }],
+            ['enable_ipc_fuzzer==1', {
+              'dependencies': [
+                '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*',
+              ],
+            }],
+            ['use_dbus==1', {
+              'dependencies': [
+                '../dbus/dbus.gyp:*',
+              ],
+            }],
+          ],
+        }],
+        ['chromecast==1', {
+          'dependencies': [
+            '../chromecast/chromecast.gyp:*',
+          ],
+        }],
+        ['use_x11==1', {
+          'dependencies': [
+            '../tools/xdisplaycheck/xdisplaycheck.gyp:*',
+          ],
+        }],
+        ['OS=="win"', {
+          'dependencies': [
+            '../chrome_elf/chrome_elf.gyp:*',
+            '../courgette/courgette.gyp:*',
+            '../rlz/rlz.gyp:*',
+            '../sandbox/sandbox.gyp:*',
+            '<(angle_path)/src/angle.gyp:*',
+            '../third_party/bspatch/bspatch.gyp:*',
+            '../tools/win/static_initializers/static_initializers.gyp:*',
+          ],
+        }],
+        ['toolkit_views==1', {
+          'dependencies': [
+            '../ui/views/controls/webview/webview.gyp:*',
+            '../ui/views/views.gyp:*',
+          ],
+        }],
+        ['use_aura==1', {
+          'dependencies': [
+            '../ash/ash.gyp:*',
+            '../ui/aura/aura.gyp:*',
+            '../ui/aura_extra/aura_extra.gyp:*',
+          ],
+        }],
+        ['remoting==1', {
+          'dependencies': [
+            '../remoting/remoting_all.gyp:remoting_all',
+          ],
+        }],
+        ['OS!="ios"', {
+          'dependencies': [
+            '../third_party/boringssl/boringssl_tests.gyp:*',
+          ],
+        }],
+        ['enable_app_list==1', {
+          'dependencies': [
+            '../ui/app_list/app_list.gyp:*',
+          ],
+        }],
+        ['OS!="android" and OS!="ios"', {
+          'dependencies': [
+            '../google_apis/gcm/gcm.gyp:*',
+          ],
+        }],
+        ['(chromeos==1 or OS=="linux" or OS=="win" or OS=="mac") and chromecast==0', {
+          'dependencies': [
+            '../extensions/shell/app_shell.gyp:*',
+          ],
+        }],
+        ['envoy==1', {
+          'dependencies': [
+            '../envoy/envoy.gyp:*',
+          ],
+        }],
+        ['use_openh264==1', {
+          'dependencies': [
+            '../third_party/openh264/openh264.gyp:*',
+          ],
+        }],
+        ['enable_basic_printing==1 or enable_print_preview==1', {
+          'dependencies': [
+            '../printing/printing.gyp:*',
+          ],
+        }],
+      ],
+    }, # target_name: All
+    {
+      'target_name': 'All_syzygy',
+      'type': 'none',
+      'conditions': [
+        ['OS=="win" and fastbuild==0 and target_arch=="ia32" and '
+            '(syzyasan==1 or syzygy_optimize==1)', {
+          'dependencies': [
+            '../chrome/installer/mini_installer_syzygy.gyp:*',
+          ],
+        }],
+      ],
+    }, # target_name: All_syzygy
+    {
+      # Note: Android uses android_builder_tests below.
+      # TODO: Consider merging that with this target.
+      'target_name': 'chromium_builder_tests',
+      'type': 'none',
+      'dependencies': [
+        '../base/base.gyp:base_unittests',
+        '../components/components_tests.gyp:components_unittests',
+        '../crypto/crypto.gyp:crypto_unittests',
+        '../net/net.gyp:net_unittests',
+        '../skia/skia_tests.gyp:skia_unittests',
+        '../sql/sql.gyp:sql_unittests',
+        '../sync/sync.gyp:sync_unit_tests',
+        '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+        '../ui/display/display.gyp:display_unittests',
+        '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+        '../url/url.gyp:url_unittests',
+      ],
+      'conditions': [
+        ['OS!="ios"', {
+          'dependencies': [
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../url/ipc/url_ipc.gyp:url_ipc_unittests',
+          ],
+        }],
+        ['OS!="ios" and OS!="mac"', {
+          'dependencies': [
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+          ],
+        }],
+        ['OS!="ios" and OS!="android"', {
+          'dependencies': [
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_shell',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../gin/gin.gyp:gin_unittests',
+            '../google_apis/google_apis.gyp:google_apis_unittests',
+            '../gpu/gles2_conform_support/gles2_conform_support.gyp:gles2_conform_support',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/cast/cast.gyp:cast_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../mojo/mojo.gyp:mojo',
+            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+            '../third_party/WebKit/public/all.gyp:all_blink',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+          ],
+        }],
+        ['OS!="ios" and OS!="android" and chromecast==0', {
+          'dependencies': [
+            '../chrome/chrome.gyp:browser_tests',
+            '../chrome/chrome.gyp:chromedriver_tests',
+            '../chrome/chrome.gyp:chromedriver_unittests',
+            '../chrome/chrome.gyp:interactive_ui_tests',
+            '../chrome/chrome.gyp:sync_integration_tests',
+            '../chrome/chrome.gyp:unit_tests',
+            '../extensions/extensions_tests.gyp:extensions_browsertests',
+            '../extensions/extensions_tests.gyp:extensions_unittests',
+          ],
+        }],
+        ['OS=="win"', {
+          'dependencies': [
+            '../chrome/chrome.gyp:installer_util_unittests',
+            '../chrome/chrome.gyp:setup_unittests',
+            # ../chrome/test/mini_installer requires mini_installer.
+            '../chrome/installer/mini_installer.gyp:mini_installer',
+            '../chrome_elf/chrome_elf.gyp:chrome_elf_unittests',
+            '../courgette/courgette.gyp:courgette_unittests',
+            '../sandbox/sandbox.gyp:sbox_integration_tests',
+            '../sandbox/sandbox.gyp:sbox_unittests',
+            '../sandbox/sandbox.gyp:sbox_validation_tests',
+          ],
+          'conditions': [
+            # remoting_host_installation uses lots of non-trivial GYP that tend
+            # to break because of differences between ninja and msbuild. Make
+            # sure this target is built by the builders on the main waterfall.
+            # See http://crbug.com/180600.
+            ['wix_exists == "True" and sas_dll_exists == "True"', {
+              'dependencies': [
+                '../remoting/remoting.gyp:remoting_host_installation',
+              ],
+            }],
+            ['syzyasan==1', {
+              'variables': {
+                # Disable incremental linking for all modules.
+                # 0: inherit, 1: disabled, 2: enabled.
+                'msvs_debug_link_incremental': '1',
+                'msvs_large_module_debug_link_mode': '1',
+                # Disable RTC. Syzygy explicitly doesn't support RTC
+                # instrumented binaries for now.
+                'win_debug_RuntimeChecks': '0',
+              },
+              'defines': [
+                # Disable iterator debugging (huge speed boost).
+                '_HAS_ITERATOR_DEBUGGING=0',
+              ],
+              'msvs_settings': {
+                'VCLinkerTool': {
+                  # Enable profile information (necessary for SyzyAsan
+                  # instrumentation). This is incompatible with incremental
+                  # linking.
+                  'Profile': 'true',
+                },
+              }
+            }],
+            ['component!="shared_library" or target_arch!="ia32"', {
+              'dependencies': [
+                '../chrome/installer/mini_installer.gyp:next_version_mini_installer',
+              ],
+            }],
+          ],
+        }],
+        ['chromeos==1', {
+          'dependencies': [
+            '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_unittests',
+            '../ui/arc/arc.gyp:ui_arc_unittests',
+          ],
+        }],
+        ['OS=="linux"', {
+          'dependencies': [
+            '../sandbox/sandbox.gyp:sandbox_linux_unittests',
+          ],
+        }],
+        ['OS=="linux" and use_dbus==1', {
+          'dependencies': [
+            '../dbus/dbus.gyp:dbus_unittests',
+          ],
+        }],
+        ['OS=="mac"', {
+          'dependencies': [
+            '../ui/message_center/message_center.gyp:*',
+          ],
+        }],
+        ['test_isolation_mode != "noop"', {
+          'dependencies': [
+            'chromium_swarm_tests',
+          ],
+        }],
+        ['OS!="android"', {
+          'dependencies': [
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+          ],
+        }],
+        ['enable_basic_printing==1 or enable_print_preview==1', {
+          'dependencies': [
+            '../printing/printing.gyp:printing_unittests',
+          ],
+        }],
+        ['enable_app_list==1', {
+          'dependencies': [
+            '../ui/app_list/app_list.gyp:app_list_unittests',
+          ],
+        }],
+        ['enable_app_list==1 and use_aura==1', {
+          'dependencies': [
+            '../ui/app_list/presenter/app_list_presenter.gyp:app_list_presenter_unittests',
+          ],
+        }],
+        ['use_aura==1', {
+          'dependencies': [
+            '../ash/ash.gyp:ash_unittests',
+            '../ui/aura/aura.gyp:aura_unittests',
+            '../ui/compositor/compositor.gyp:compositor_unittests',
+          ],
+        }],
+        ['use_aura==1 and chromecast==0', {
+          'dependencies': [
+            '../ui/keyboard/keyboard.gyp:keyboard_unittests',
+            '../ui/views/views.gyp:views_unittests',
+          ],
+        }],
+        ['use_aura==1 or toolkit_views==1', {
+          'dependencies': [
+            '../ui/events/events_unittests.gyp:events_unittests',
+          ],
+        }],
+        ['disable_nacl==0', {
+          'dependencies': [
+            '../components/nacl.gyp:nacl_loader_unittests',
+          ],
+        }],
+        ['disable_nacl==0 and disable_nacl_untrusted==0 and enable_nacl_nonsfi_test==1', {
+          'dependencies': [
+            '../components/nacl.gyp:nacl_helper_nonsfi_unittests',
+          ],
+        }],
+      ],
+    }, # target_name: chromium_builder_tests
+  ],
+  'conditions': [
+    # TODO(GYP): make gn_migration.gypi work unconditionally.
+    ['OS=="mac" or OS=="win" or (OS=="android" and chromecast==0) or (OS=="linux" and target_arch=="x64" and chromecast==0)', {
+      'includes': [
+        'gn_migration.gypi',
+      ],
+    }],
+    ['OS!="ios"', {
+      'targets': [
+        {
+          'target_name': 'blink_tests',
+          'type': 'none',
+          'dependencies': [
+            '../third_party/WebKit/public/all.gyp:all_blink',
+          ],
+          'conditions': [
+            ['OS=="android"', {
+              'dependencies': [
+                '../content/content_shell_and_tests.gyp:content_shell_apk',
+                '../breakpad/breakpad.gyp:dump_syms#host',
+                '../breakpad/breakpad.gyp:minidump_stackwalk#host',
+                '../tools/imagediff/image_diff.gyp:image_diff#host',
+              ],
+            }, {  # OS!="android"
+              'dependencies': [
+                '../content/content_shell_and_tests.gyp:content_shell',
+                '../tools/imagediff/image_diff.gyp:image_diff',
+              ],
+            }],
+            ['OS=="win"', {
+              'dependencies': [
+                '../components/test_runner/test_runner.gyp:layout_test_helper',
+                '../content/content_shell_and_tests.gyp:content_shell_crash_service',
+              ],
+            }],
+            ['OS!="win" and OS!="android"', {
+              'dependencies': [
+                '../breakpad/breakpad.gyp:minidump_stackwalk',
+              ],
+            }],
+            ['OS=="mac"', {
+              'dependencies': [
+                '../components/test_runner/test_runner.gyp:layout_test_helper',
+                '../breakpad/breakpad.gyp:dump_syms#host',
+              ],
+            }],
+            ['OS=="linux"', {
+              'dependencies': [
+                '../breakpad/breakpad.gyp:dump_syms#host',
+              ],
+            }],
+          ],
+        }, # target_name: blink_tests
+      ],
+    }], # OS!=ios
+    ['OS!="ios" and OS!="android" and chromecast==0', {
+      'targets': [
+        {
+          'target_name': 'chromium_builder_nacl_win_integration',
+          'type': 'none',
+          'dependencies': [
+            'chromium_builder_tests',
+          ],
+        }, # target_name: chromium_builder_nacl_win_integration
+        {
+          'target_name': 'chromium_builder_perf',
+          'type': 'none',
+          'dependencies': [
+            '../cc/cc_tests.gyp:cc_perftests',
+            '../chrome/chrome.gyp:chrome',
+            '../chrome/chrome.gyp:load_library_perf_tests',
+            '../chrome/chrome.gyp:performance_browser_tests',
+            '../chrome/chrome.gyp:sync_performance_tests',
+            '../gpu/gpu.gyp:gpu_perftests',
+            '../media/media.gyp:media_perftests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+          ],
+          'conditions': [
+            ['OS!="ios" and OS!="win"', {
+              'dependencies': [
+                '../breakpad/breakpad.gyp:minidump_stackwalk',
+              ],
+            }],
+            ['OS=="linux"', {
+              'dependencies': [
+                '../chrome/chrome.gyp:linux_symbols'
+              ],
+            }],
+            ['OS=="win"', {
+              'dependencies': [
+                '../chrome/installer/mini_installer.gyp:mini_installer',
+                '../gpu/gpu.gyp:angle_perftests',
+              ],
+            }],
+          ],
+        }, # target_name: chromium_builder_perf
+        {
+          'target_name': 'chromium_gpu_builder',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/chrome.gyp:chrome',
+            '../chrome/chrome.gyp:performance_browser_tests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../gpu/gles2_conform_support/gles2_conform_test.gyp:gles2_conform_test',
+            '../gpu/khronos_glcts_support/khronos_glcts_test.gyp:khronos_glcts_test',
+            '../gpu/gpu.gyp:gl_tests',
+            '../gpu/gpu.gyp:angle_unittests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../gpu/gpu.gyp:command_buffer_gles2_tests',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+          ],
+          'conditions': [
+            ['OS!="ios" and OS!="win"', {
+              'dependencies': [
+                '../breakpad/breakpad.gyp:minidump_stackwalk',
+              ],
+            }],
+            ['OS=="linux"', {
+              'dependencies': [
+                '../chrome/chrome.gyp:linux_symbols'
+              ],
+            }],
+          ],
+        }, # target_name: chromium_gpu_builder
+        {
+          'target_name': 'chromium_gpu_debug_builder',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/chrome.gyp:chrome',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../gpu/gles2_conform_support/gles2_conform_test.gyp:gles2_conform_test',
+            '../gpu/khronos_glcts_support/khronos_glcts_test.gyp:khronos_glcts_test',
+            '../gpu/gpu.gyp:gl_tests',
+            '../gpu/gpu.gyp:angle_unittests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../gpu/gpu.gyp:command_buffer_gles2_tests',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+          ],
+          'conditions': [
+            ['OS!="ios" and OS!="win"', {
+              'dependencies': [
+                '../breakpad/breakpad.gyp:minidump_stackwalk',
+              ],
+            }],
+            ['OS=="linux"', {
+              'dependencies': [
+                '../chrome/chrome.gyp:linux_symbols'
+              ],
+            }],
+          ],
+        }, # target_name: chromium_gpu_debug_builder
+        {
+          # This target contains everything we need to run tests on the special
+          # device-equipped WebRTC bots. We have device-requiring tests in
+          # browser_tests and content_browsertests.
+          'target_name': 'chromium_builder_webrtc',
+          'type': 'none',
+          'dependencies': [
+            'chromium_builder_perf',
+            '../chrome/chrome.gyp:browser_tests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../third_party/webrtc/tools/tools.gyp:frame_analyzer',
+            '../third_party/webrtc/tools/tools.gyp:rgba_to_i420_converter',
+          ],
+          'conditions': [
+            ['remoting==1', {
+              'dependencies': [
+                '../remoting/remoting.gyp:*',
+              ],
+            }],
+          ],
+        },  # target_name: chromium_builder_webrtc
+        {
+          'target_name': 'chromium_builder_chromedriver',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/chrome.gyp:chromedriver',
+            '../chrome/chrome.gyp:chromedriver_tests',
+            '../chrome/chrome.gyp:chromedriver_unittests',
+          ],
+        },  # target_name: chromium_builder_chromedriver
+        {
+          'target_name': 'chromium_builder_asan',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/chrome.gyp:chrome',
+
+            # We refer to content_shell directly rather than blink_tests
+            # because we don't want the _unittests binaries.
+            '../content/content_shell_and_tests.gyp:content_shell',
+          ],
+          'conditions': [
+            ['OS!="win"', {
+              'dependencies': [
+                '../net/net.gyp:hpack_fuzz_wrapper',
+                '../net/net.gyp:dns_fuzz_stub',
+                '../skia/skia.gyp:filter_fuzz_stub',
+              ],
+            }],
+            ['enable_ipc_fuzzer==1 and component!="shared_library" and '
+                 '(OS=="linux" or OS=="win" or OS=="mac")', {
+              'dependencies': [
+                '../tools/ipc_fuzzer/ipc_fuzzer.gyp:*',
+              ],
+            }],
+            ['chromeos==0', {
+              'dependencies': [
+                '../v8/samples/samples.gyp:v8_shell#host',
+                '../third_party/pdfium/samples/samples.gyp:pdfium_test',
+              ],
+            }],
+            ['internal_filter_fuzzer==1', {
+              'dependencies': [
+                '../skia/tools/clusterfuzz-data/fuzzers/filter_fuzzer/filter_fuzzer.gyp:filter_fuzzer',
+              ],
+            }], # internal_filter_fuzzer
+            ['clang==1', {
+              'dependencies': [
+                'sanitizers/sanitizers.gyp:llvm-symbolizer',
+              ],
+            }],
+            ['OS=="win" and fastbuild==0 and target_arch=="ia32" and syzyasan==1', {
+              'dependencies': [
+                '../chrome/chrome_syzygy.gyp:chrome_dll_syzygy',
+                '../content/content_shell_and_tests.gyp:content_shell_syzyasan',
+              ],
+              'conditions': [
+                ['chrome_multiple_dll==1', {
+                  'dependencies': [
+                    '../chrome/chrome_syzygy.gyp:chrome_child_dll_syzygy',
+                  ],
+                }],
+              ],
+            }],
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_nacl_sdk',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/chrome.gyp:chrome',
+          ],
+          'conditions': [
+            ['OS=="win"', {
+              'dependencies': [
+                '../chrome/chrome.gyp:chrome_nacl_win64',
+              ]
+            }],
+          ],
+        },  #target_name: chromium_builder_nacl_sdk
+      ],  # targets
+    }], #OS!=ios and OS!=android
+    ['OS=="android"', {
+      'targets': [
+        {
+          # The current list of tests for android.  This is temporary
+          # until the full set supported.
+          #
+          # WARNING:
+          # Do not add targets here without communicating the implications
+          # on tryserver triggers and load.  Discuss with
+          # chrome-infrastructure-team please.
+          'target_name': 'android_builder_tests',
+          'type': 'none',
+          'dependencies': [
+            '../base/android/jni_generator/jni_generator.gyp:jni_generator_tests',
+            '../base/base.gyp:base_unittests',
+            '../breakpad/breakpad.gyp:breakpad_unittests_deps',
+            # Also compile the tools needed to deal with minidumps, they are
+            # needed to run minidump tests upstream.
+            '../breakpad/breakpad.gyp:dump_syms#host',
+            '../breakpad/breakpad.gyp:symupload#host',
+            '../breakpad/breakpad.gyp:minidump_dump#host',
+            '../breakpad/breakpad.gyp:minidump_stackwalk#host',
+            '../build/android/pylib/device/commands/commands.gyp:chromium_commands',
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_perftests_apk',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_junit_tests',
+            '../content/content_shell_and_tests.gyp:chromium_linker_test_apk',
+            '../content/content_shell_and_tests.gyp:content_shell_test_apk',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../gpu/gpu.gyp:gl_tests',
+            '../gpu/gpu.gyp:gpu_perftests_apk',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../media/media.gyp:media_perftests_apk',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests_apk',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../net/net.gyp:net_unittests',
+            '../sandbox/sandbox.gyp:sandbox_linux_unittests_deps',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../sync/sync.gyp:sync_unit_tests',
+            '../testing/android/junit/junit_test.gyp:junit_unit_tests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/WebKit/public/all.gyp:*',
+            '../tools/android/android_tools.gyp:android_tools',
+            '../tools/android/android_tools.gyp:memconsumer',
+            '../tools/android/android_tools.gyp:push_apps_to_background',
+            '../tools/android/findbugs_plugin/findbugs_plugin.gyp:findbugs_plugin_test',
+            '../tools/cygprofile/cygprofile.gyp:cygprofile_unittests',
+            '../ui/android/ui_android.gyp:ui_android_unittests',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/events/events_unittests.gyp:events_unittests',
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+            # Unit test bundles packaged as an apk.
+            '../base/base.gyp:base_unittests_apk',
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests_apk',
+            '../cc/cc_tests.gyp:cc_unittests_apk',
+            '../components/components_tests.gyp:components_browsertests_apk',
+            '../components/components_tests.gyp:components_unittests_apk',
+            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
+            '../content/content_shell_and_tests.gyp:content_unittests_apk',
+            '../gpu/gpu.gyp:command_buffer_gles2_tests_apk',
+            '../gpu/gpu.gyp:gl_tests_apk',
+            '../gpu/gpu.gyp:gpu_unittests_apk',
+            '../ipc/ipc.gyp:ipc_tests_apk',
+            '../media/media.gyp:media_unittests_apk',
+            '../media/media.gyp:video_decode_accelerator_unittest_apk',
+            '../media/midi/midi.gyp:midi_unittests_apk',
+            '../net/net.gyp:net_unittests_apk',
+            '../skia/skia_tests.gyp:skia_unittests_apk',
+            '../sql/sql.gyp:sql_unittests_apk',
+            '../sync/sync.gyp:sync_unit_tests_apk',
+            '../tools/android/heap_profiler/heap_profiler.gyp:heap_profiler_unittests_apk',
+            '../ui/android/ui_android.gyp:ui_android_unittests_apk',
+            '../ui/android/ui_android.gyp:ui_junit_tests',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests_apk',
+            '../ui/events/events_unittests.gyp:events_unittests_apk',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests_apk',
+            '../ui/gl/gl_tests.gyp:gl_unittests_apk',
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests_apk',
+          ],
+          'conditions': [
+            ['chromecast==0', {
+              'dependencies': [
+                '../android_webview/android_webview.gyp:android_webview_unittests',
+                '../chrome/chrome.gyp:unit_tests',
+                # Unit test bundles packaged as an apk.
+                '../android_webview/android_webview.gyp:android_webview_test_apk',
+                '../android_webview/android_webview.gyp:android_webview_unittests_apk',
+                '../android_webview/android_webview_shell.gyp:system_webview_shell_layout_test_apk',
+                '../android_webview/android_webview_shell.gyp:system_webview_shell_page_cycler_apk',
+                '../chrome/android/chrome_apk.gyp:chrome_public_test_apk',
+                '../chrome/android/chrome_apk.gyp:chrome_sync_shell_test_apk',
+                '../chrome/chrome.gyp:chrome_junit_tests',
+                '../chrome/chrome.gyp:chromedriver_webview_shell_apk',
+                '../chrome/chrome.gyp:unit_tests_apk',
+                '../third_party/custom_tabs_client/custom_tabs_client.gyp:custom_tabs_client_example_apk',
+              ],
+            }],
+          ],
+        },
+        {
+          # WebRTC Chromium tests to run on Android.
+          'target_name': 'android_builder_chromium_webrtc',
+          'type': 'none',
+          'dependencies': [
+            '../build/android/pylib/device/commands/commands.gyp:chromium_commands',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../tools/android/android_tools.gyp:android_tools',
+            '../tools/android/android_tools.gyp:memconsumer',
+            '../content/content_shell_and_tests.gyp:content_browsertests_apk',
+          ],
+        },  # target_name: android_builder_chromium_webrtc
+      ], # targets
+    }], # OS="android"
+    ['OS=="mac"', {
+      'targets': [
+        {
+          # Target to build everything plus the dmg.  We don't put the dmg
+          # in the All target because developers really don't need it.
+          'target_name': 'all_and_dmg',
+          'type': 'none',
+          'dependencies': [
+            'All',
+            '../chrome/chrome.gyp:build_app_dmg',
+          ],
+        },
+        # These targets are here so the build bots can use them to build
+        # subsets of a full tree for faster cycle times.
+        {
+          'target_name': 'chromium_builder_dbg',
+          'type': 'none',
+          'dependencies': [
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../chrome/chrome.gyp:browser_tests',
+            '../chrome/chrome.gyp:interactive_ui_tests',
+            '../chrome/chrome.gyp:sync_integration_tests',
+            '../chrome/chrome.gyp:unit_tests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../rlz/rlz.gyp:*',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../sync/sync.gyp:sync_unit_tests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_rel',
+          'type': 'none',
+          'dependencies': [
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../chrome/chrome.gyp:browser_tests',
+            '../chrome/chrome.gyp:performance_browser_tests',
+            '../chrome/chrome.gyp:sync_integration_tests',
+            '../chrome/chrome.gyp:unit_tests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../sync/sync.gyp:sync_unit_tests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_dbg_tsan_mac',
+          'type': 'none',
+          'dependencies': [
+            '../base/base.gyp:base_unittests',
+            '../crypto/crypto.gyp:crypto_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../net/net.gyp:net_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+     ],  # targets
+    }], # OS="mac"
+    ['OS=="win"', {
+      'targets': [
+        # These targets are here so the build bots can use them to build
+        # subsets of a full tree for faster cycle times.
+        {
+          'target_name': 'chromium_builder',
+          'type': 'none',
+          'dependencies': [
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../chrome/chrome.gyp:browser_tests',
+            '../chrome/chrome.gyp:gcapi_test',
+            '../chrome/chrome.gyp:installer_util_unittests',
+            '../chrome/chrome.gyp:interactive_ui_tests',
+            '../chrome/chrome.gyp:performance_browser_tests',
+            '../chrome/chrome.gyp:setup_unittests',
+            '../chrome/chrome.gyp:sync_integration_tests',
+            '../chrome/chrome.gyp:unit_tests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            # ../chrome/test/mini_installer requires mini_installer.
+            '../chrome/installer/mini_installer.gyp:mini_installer',
+            '../courgette/courgette.gyp:courgette_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../sync/sync.gyp:sync_unit_tests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:*',
+            '../third_party/catapult/telemetry/telemetry.gyp:*',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/events/events_unittests.gyp:events_unittests',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+            '../ui/views/views.gyp:views_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_dbg_tsan_win',
+          'type': 'none',
+          'dependencies': [
+            '../base/base.gyp:base_unittests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../crypto/crypto.gyp:crypto_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../net/net.gyp:net_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_lkgr_drmemory_win',
+          'type': 'none',
+          'dependencies': [
+            '../components/test_runner/test_runner.gyp:layout_test_helper',
+            '../content/content_shell_and_tests.gyp:content_shell',
+            '../content/content_shell_and_tests.gyp:content_shell_crash_service',
+          ],
+        },
+        {
+          'target_name': 'chromium_builder_dbg_drmemory_win',
+          'type': 'none',
+          'dependencies': [
+            '../base/base.gyp:base_unittests',
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../chrome/chrome.gyp:browser_tests',
+            '../chrome/chrome.gyp:chrome_app_unittests',
+            '../chrome/chrome.gyp:chromedriver_unittests',
+            '../chrome/chrome.gyp:installer_util_unittests',
+            '../chrome/chrome.gyp:setup_unittests',
+            '../chrome/chrome.gyp:unit_tests',
+            '../chrome_elf/chrome_elf.gyp:chrome_elf_unittests',
+            '../components/components_tests.gyp:components_unittests',
+            '../components/test_runner/test_runner.gyp:layout_test_helper',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_shell',
+            '../content/content_shell_and_tests.gyp:content_shell_crash_service',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../courgette/courgette.gyp:courgette_unittests',
+            '../crypto/crypto.gyp:crypto_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../extensions/extensions_tests.gyp:extensions_browsertests',
+            '../extensions/extensions_tests.gyp:extensions_unittests',
+            '../gin/gin.gyp:gin_shell',
+            '../gin/gin.gyp:gin_unittests',
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+            '../google_apis/google_apis.gyp:google_apis_unittests',
+            '../gpu/gpu.gyp:angle_unittests',
+            '../gpu/gpu.gyp:gpu_unittests',
+            '../ipc/ipc.gyp:ipc_tests',
+            '../ipc/mojo/ipc_mojo.gyp:ipc_mojo_unittests',
+            '../jingle/jingle.gyp:jingle_unittests',
+            '../media/cast/cast.gyp:cast_unittests',
+            '../media/media.gyp:media_unittests',
+            '../media/midi/midi.gyp:midi_unittests',
+            '../mojo/mojo.gyp:mojo',
+            '../net/net.gyp:net_unittests',
+            '../printing/printing.gyp:printing_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../sql/sql.gyp:sql_unittests',
+            '../sync/sync.gyp:sync_unit_tests',
+            '../third_party/cacheinvalidation/cacheinvalidation.gyp:cacheinvalidation_unittests',
+            '../third_party/leveldatabase/leveldatabase.gyp:env_chromium_unittests',
+            '../third_party/libaddressinput/libaddressinput.gyp:libaddressinput_unittests',
+            '../third_party/libphonenumber/libphonenumber.gyp:libphonenumber_unittests',
+            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_heap_unittests',
+            '../third_party/WebKit/Source/platform/blink_platform_tests.gyp:blink_platform_unittests',
+            '../ui/accessibility/accessibility.gyp:accessibility_unittests',
+            '../ui/aura/aura.gyp:aura_unittests',
+            '../ui/compositor/compositor.gyp:compositor_unittests',
+            '../ui/display/display.gyp:display_unittests',
+            '../ui/events/events_unittests.gyp:events_unittests',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../ui/keyboard/keyboard.gyp:keyboard_unittests',
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+            '../url/url.gyp:url_unittests',
+          ],
+        },
+      ],  # targets
+      'conditions': [
+        ['branding=="Chrome"', {
+          'targets': [
+            {
+              'target_name': 'chrome_official_builder_no_unittests',
+              'type': 'none',
+              'dependencies': [
+                '../chrome/chrome.gyp:gcapi_dll',
+                '../chrome/chrome.gyp:pack_policy_templates',
+                '../chrome/installer/mini_installer.gyp:mini_installer',
+                '../courgette/courgette.gyp:courgette',
+                '../courgette/courgette.gyp:courgette64',
+                '../remoting/remoting.gyp:remoting_webapp',
+                '../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter',
+              ],
+              'conditions': [
+                ['component != "shared_library" and wix_exists == "True" and \
+                    sas_dll_exists == "True"', {
+                  'dependencies': [
+                    '../remoting/remoting.gyp:remoting_host_installation',
+                  ],
+                }], # component != "shared_library"
+              ]
+            }, {
+              'target_name': 'chrome_official_builder',
+              'type': 'none',
+              'dependencies': [
+                'chrome_official_builder_no_unittests',
+                '../base/base.gyp:base_unittests',
+                '../chrome/chrome.gyp:browser_tests',
+                '../chrome/chrome.gyp:sync_integration_tests',
+                '../ipc/ipc.gyp:ipc_tests',
+                '../media/media.gyp:media_unittests',
+                '../media/midi/midi.gyp:midi_unittests',
+                '../net/net.gyp:net_unittests',
+                '../printing/printing.gyp:printing_unittests',
+                '../sql/sql.gyp:sql_unittests',
+                '../sync/sync.gyp:sync_unit_tests',
+                '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+                '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+                '../ui/gl/gl_tests.gyp:gl_unittests',
+                '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+                '../ui/views/views.gyp:views_unittests',
+                '../url/url.gyp:url_unittests',
+              ],
+            },
+          ], # targets
+        }], # branding=="Chrome"
+       ], # conditions
+    }], # OS="win"
+    ['chromeos==1', {
+      'targets': [
+        {
+          'target_name': 'chromiumos_preflight',
+          'type': 'none',
+          'dependencies': [
+            '../breakpad/breakpad.gyp:minidump_stackwalk',
+            '../chrome/chrome.gyp:chrome',
+            '../chrome/chrome.gyp:chromedriver',
+            '../media/media.gyp:media_unittests',
+            '../media/media.gyp:video_decode_accelerator_unittest',
+            '../media/media.gyp:video_encode_accelerator_unittest',
+            '../ppapi/ppapi_internal.gyp:ppapi_example_video_decode',
+            '../sandbox/sandbox.gyp:chrome_sandbox',
+            '../sandbox/sandbox.gyp:sandbox_linux_unittests',
+            '../third_party/catapult/telemetry/telemetry.gyp:bitmaptools#host',
+            '../third_party/mesa/mesa.gyp:osmesa',
+            '../tools/perf/clear_system_cache/clear_system_cache.gyp:clear_system_cache',
+          ],
+          'conditions': [
+            ['disable_nacl==0', {
+              'dependencies': [
+                '../components/nacl.gyp:nacl_helper',
+                '../native_client/src/trusted/service_runtime/linux/nacl_bootstrap.gyp:nacl_helper_bootstrap',
+              ],
+            }],
+          ],
+        },
+      ],  # targets
+    }], # "chromeos==1"
+    ['use_aura==1', {
+      'targets': [
+        {
+          'target_name': 'aura_builder',
+          'type': 'none',
+          'dependencies': [
+            '../ash/ash.gyp:ash_shell_with_content',
+            '../ash/ash.gyp:ash_unittests',
+            '../cc/blink/cc_blink_tests.gyp:cc_blink_unittests',
+            '../cc/cc_tests.gyp:cc_unittests',
+            '../components/components_tests.gyp:components_unittests',
+            '../content/content_shell_and_tests.gyp:content_browsertests',
+            '../content/content_shell_and_tests.gyp:content_unittests',
+            '../device/device_tests.gyp:device_unittests',
+            '../google_apis/gcm/gcm.gyp:gcm_unit_tests',
+            '../ppapi/ppapi_internal.gyp:ppapi_unittests',
+            '../remoting/remoting.gyp:remoting_unittests',
+            '../skia/skia_tests.gyp:skia_unittests',
+            '../ui/aura/aura.gyp:*',
+            '../ui/aura_extra/aura_extra.gyp:*',
+            '../ui/base/ui_base_tests.gyp:ui_base_unittests',
+            '../ui/compositor/compositor.gyp:*',
+            '../ui/display/display.gyp:display_unittests',
+            '../ui/events/events.gyp:*',
+            '../ui/gfx/gfx_tests.gyp:gfx_unittests',
+            '../ui/gl/gl_tests.gyp:gl_unittests',
+            '../ui/keyboard/keyboard.gyp:*',
+            '../ui/snapshot/snapshot.gyp:snapshot_unittests',
+            '../ui/touch_selection/ui_touch_selection.gyp:ui_touch_selection_unittests',
+            '../ui/wm/wm.gyp:*',
+            'blink_tests',
+          ],
+          'conditions': [
+            ['OS=="linux"', {
+              # Tests that currently only work on Linux.
+              'dependencies': [
+                '../base/base.gyp:base_unittests',
+                '../ipc/ipc.gyp:ipc_tests',
+                '../sql/sql.gyp:sql_unittests',
+                '../sync/sync.gyp:sync_unit_tests',
+              ],
+            }],
+            ['chromeos==1', {
+              'dependencies': [
+                '../chromeos/chromeos.gyp:chromeos_unittests',
+                '../ui/chromeos/ui_chromeos.gyp:ui_chromeos_unittests',
+              ],
+            }],
+            ['use_ozone==1', {
+              'dependencies': [
+                '../ui/ozone/ozone.gyp:*',
+                '../ui/ozone/demo/ozone_demos.gyp:*',
+              ],
+            }],
+            ['enable_app_list==1', {
+              'dependencies': [
+                '../ui/app_list/app_list.gyp:*',
+              ],
+            }],
+            ['chromecast==0', {
+              'dependencies': [
+                '../chrome/chrome.gyp:browser_tests',
+                '../chrome/chrome.gyp:chrome',
+                '../chrome/chrome.gyp:interactive_ui_tests',
+                '../chrome/chrome.gyp:unit_tests',
+                '../ui/message_center/message_center.gyp:*',
+                '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
+                '../ui/views/views.gyp:views',
+                '../ui/views/views.gyp:views_unittests',
+              ],
+            }],
+          ],
+        },
+      ],  # targets
+    }], # "use_aura==1"
+    ['test_isolation_mode != "noop"', {
+      'targets': [
+        {
+          'target_name': 'chromium_swarm_tests',
+          'type': 'none',
+          'dependencies': [
+            '../base/base.gyp:base_unittests_run',
+            '../content/content_shell_and_tests.gyp:content_browsertests_run',
+            '../content/content_shell_and_tests.gyp:content_unittests_run',
+            '../net/net.gyp:net_unittests_run',
+          ],
+          'conditions': [
+            ['chromecast==0', {
+              'dependencies': [
+                '../chrome/chrome.gyp:browser_tests_run',
+                '../chrome/chrome.gyp:interactive_ui_tests_run',
+                '../chrome/chrome.gyp:sync_integration_tests_run',
+                '../chrome/chrome.gyp:unit_tests_run',
+              ],
+            }],
+          ],
+        }, # target_name: chromium_swarm_tests
+      ],
+    }],
+    ['archive_chromoting_tests==1', {
+      'targets': [
+        {
+          'target_name': 'chromoting_swarm_tests',
+          'type': 'none',
+          'dependencies': [
+            '../testing/chromoting/integration_tests.gyp:*',
+          ],
+        }, # target_name: chromoting_swarm_tests
+      ]
+    }],
+    ['archive_media_router_tests==1', {
+      'targets': [
+        {
+          'target_name': 'media_router_swarming_tests',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/test/media_router/e2e_tests.gyp:media_router_e2e_tests_run',
+          ],
+        }, # target_name: media_router_swarming_tests
+        {
+          'target_name': 'media_router_swarming_perf_tests',
+          'type': 'none',
+          'dependencies': [
+            '../chrome/test/media_router/e2e_tests.gyp:media_router_perf_tests_run',
+          ],
+        }, # target_name: media_router_swarming_perf_tests
+      ]
+    }],
+    ['OS=="mac" and toolkit_views==1', {
+      'targets': [
+        {
+          'target_name': 'macviews_builder',
+          'type': 'none',
+          'dependencies': [
+            '../ui/views/examples/examples.gyp:views_examples_with_content_exe',
+            '../ui/views/views.gyp:views',
+            '../ui/views/views.gyp:views_unittests',
+          ],
+        },  # target_name: macviews_builder
+      ],  # targets
+    }],  # os=='mac' and toolkit_views==1
+  ],  # conditions
+}
diff --git a/build/args/bots/official.desktop/blimp-engine.gn b/build/args/bots/official.desktop/blimp-engine.gn
index 2554c37..0f9cc6d 100644
--- a/build/args/bots/official.desktop/blimp-engine.gn
+++ b/build/args/bots/official.desktop/blimp-engine.gn
@@ -3,5 +3,8 @@
 # Use release build to improve engine performance, especially WebP encoding.
 is_debug = false
 
+# Designate this as an official build to pick up breakpad symbols.
+is_official_build = true
+
 # Turn on DCHECK to find bugs.
 dcheck_always_on = true
diff --git a/build/config/android/config.gni b/build/config/android/config.gni
index f775123..98b4aa6 100644
--- a/build/config/android/config.gni
+++ b/build/config/android/config.gni
@@ -21,6 +21,10 @@
     extra_chrome_shared_library_configs = []
   }
 
+  if (!defined(default_android_ndk_root)) {
+    default_android_ndk_root = "//third_party/android_tools/ndk"
+  }
+
   if (!defined(default_android_sdk_root)) {
     default_android_sdk_root = "//third_party/android_tools/sdk"
     default_android_sdk_version = "23"
@@ -51,6 +55,8 @@
   }
 
   declare_args() {
+    android_ndk_root = default_android_ndk_root
+
     android_sdk_root = default_android_sdk_root
     android_sdk_version = default_android_sdk_version
     android_sdk_build_tools_version = default_android_sdk_build_tools_version
@@ -147,7 +153,6 @@
   android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"
 
   # Path to the Android NDK and SDK.
-  android_ndk_root = "//third_party/android_tools/ndk"
   android_ndk_include_dir = "$android_ndk_root/usr/include"
 
   android_sdk_tools = "${android_sdk_root}/tools"
diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
index 5429f9f..267c920 100644
--- a/build/config/compiler/BUILD.gn
+++ b/build/config/compiler/BUILD.gn
@@ -501,14 +501,8 @@
       }
     } else if (current_cpu == "arm") {
       if (is_clang && !is_android && !is_nacl) {
-        cflags += [
-          "-target",
-          "arm-linux-gnueabihf",
-        ]
-        ldflags += [
-          "-target",
-          "arm-linux-gnueabihf",
-        ]
+        cflags += [ "--target=arm-linux-gnueabihf" ]
+        ldflags += [ "--target=arm-linux-gnueabihf" ]
       }
       if (!is_nacl) {
         cflags += [
@@ -530,14 +524,10 @@
       if (mips_arch_variant == "r6") {
         if (is_clang) {
           cflags += [
-            "-target",
-            "mipsel-linux-gnu",
+            "--target=mipsel-linux-gnu",
             "-march=mips32r6",
           ]
-          ldflags += [
-            "-target",
-            "mipsel-linux-gnu",
-          ]
+          ldflags += [ "--target=mipsel-linux-gnu" ]
         } else {
           cflags += [
             "-mips32r6",
@@ -554,26 +544,18 @@
         if (is_clang) {
           if (is_android) {
             cflags += [
-              "-target",
-              "mipsel-linux-android",
+              "--target=mipsel-linux-android",
               "-march=mipsel",
               "-mcpu=mips32r2",
             ]
-            ldflags += [
-              "-target",
-              "mipsel-linux-android",
-            ]
+            ldflags += [ "--target=mipsel-linux-android" ]
           } else {
             cflags += [
-              "-target",
-              "mipsel-linux-gnu",
+              "--target=mipsel-linux-gnu",
               "-march=mipsel",
               "-mcpu=mips32r2",
             ]
-            ldflags += [
-              "-target",
-              "mipsel-linux-gnu",
-            ]
+            ldflags += [ "--target=mipsel-linux-gnu" ]
           }
         } else {
           cflags += [
@@ -588,26 +570,18 @@
         if (is_clang) {
           if (is_android) {
             cflags += [
-              "-target",
-              "mipsel-linux-android",
+              "--target=mipsel-linux-android",
               "-march=mipsel",
               "-mcpu=mips32",
             ]
-            ldflags += [
-              "-target",
-              "mipsel-linux-android",
-            ]
+            ldflags += [ "--target=mipsel-linux-android" ]
           } else {
             cflags += [
-              "-target",
-              "mipsel-linux-gnu",
+              "--target=mipsel-linux-gnu",
               "-march=mipsel",
               "-mcpu=mips32",
             ]
-            ldflags += [
-              "-target",
-              "mipsel-linux-gnu",
-            ]
+            ldflags += [ "--target=mipsel-linux-gnu" ]
           }
         } else {
           cflags += [
diff --git a/build/config/ios/rules.gni b/build/config/ios/rules.gni
index b628d26..0b4493e 100644
--- a/build/config/ios/rules.gni
+++ b/build/config/ios/rules.gni
@@ -176,9 +176,6 @@
     bundle_resources_dir = bundle_root_dir
     bundle_executable_dir = bundle_root_dir
     bundle_plugins_dir = "$bundle_root_dir/Plugins"
-    assert(
-        product_type != "",
-        "workaround to allow generation with version of gn that don't support product_type property for create_bundle target => remove once gn has rolled this change")
   }
 
   # TODO(crbug.com/297668):
diff --git a/build/config/win/msvs_dependencies.isolate b/build/config/win/msvs_dependencies.isolate
new file mode 100644
index 0000000..d33aec4
--- /dev/null
+++ b/build/config/win/msvs_dependencies.isolate
@@ -0,0 +1,179 @@
+# Copyright 2015 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.
+{
+  'conditions': [
+    # Copy the VS runtime DLLs into the isolate so that they
+    # don't have to be preinstalled on the target machine.
+    #
+    # VS2013 runtimes
+    ['OS=="win" and msvs_version==2013 and component=="shared_library" and CONFIGURATION_NAME=="Debug"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/x64/msvcp120d.dll',
+          '<(PRODUCT_DIR)/x64/msvcr120d.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2013 and component=="shared_library" and CONFIGURATION_NAME=="Release"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/x64/msvcp120.dll',
+          '<(PRODUCT_DIR)/x64/msvcr120.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/msvcp120d.dll',
+          '<(PRODUCT_DIR)/msvcr120d.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2013 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/msvcp120.dll',
+          '<(PRODUCT_DIR)/msvcr120.dll',
+        ],
+      },
+    }],
+    # VS2015 runtimes
+    ['OS=="win" and msvs_version==2015 and component=="shared_library" and CONFIGURATION_NAME=="Debug"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/x64/msvcp140d.dll',
+          '<(PRODUCT_DIR)/x64/vccorlib140d.dll',
+          '<(PRODUCT_DIR)/x64/vcruntime140d.dll',
+          '<(PRODUCT_DIR)/x64/ucrtbased.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2015 and component=="shared_library" and CONFIGURATION_NAME=="Release"', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/x64/msvcp140.dll',
+          '<(PRODUCT_DIR)/x64/vccorlib140.dll',
+          '<(PRODUCT_DIR)/x64/vcruntime140.dll',
+          '<(PRODUCT_DIR)/x64/ucrtbase.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Debug" or CONFIGURATION_NAME=="Debug_x64")', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/msvcp140d.dll',
+          '<(PRODUCT_DIR)/vccorlib140d.dll',
+          '<(PRODUCT_DIR)/vcruntime140d.dll',
+          '<(PRODUCT_DIR)/ucrtbased.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2015 and component=="shared_library" and (CONFIGURATION_NAME=="Release" or CONFIGURATION_NAME=="Release_x64")', {
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/msvcp140.dll',
+          '<(PRODUCT_DIR)/vccorlib140.dll',
+          '<(PRODUCT_DIR)/vcruntime140.dll',
+          '<(PRODUCT_DIR)/ucrtbase.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2015 and component=="shared_library" and target_arch=="ia32"', {
+      # 32-bit builds have an x64 directory which also needs Windows 10
+      # Universal C Runtime binaries copied over.
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-console-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-datetime-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-debug-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-errorhandling-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-file-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-file-l1-2-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-file-l2-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-handle-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-heap-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-interlocked-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-libraryloader-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-localization-l1-2-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-memory-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-namedpipe-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-processenvironment-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-processthreads-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-processthreads-l1-1-1.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-profile-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-rtlsupport-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-string-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-synch-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-synch-l1-2-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-sysinfo-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-timezone-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-core-util-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-conio-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-convert-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-environment-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-filesystem-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-heap-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-locale-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-math-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-multibyte-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-private-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-process-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-runtime-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-stdio-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-string-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-time-l1-1-0.dll',
+          '<(PRODUCT_DIR)/x64/api-ms-win-crt-utility-l1-1-0.dll',
+        ],
+      },
+    }],
+    ['OS=="win" and msvs_version==2015 and component=="shared_library"', {
+      # Windows 10 Universal C Runtime binaries.
+      'variables': {
+        'files': [
+          '<(PRODUCT_DIR)/api-ms-win-core-console-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-datetime-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-debug-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-errorhandling-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-file-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-file-l1-2-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-file-l2-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-handle-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-heap-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-interlocked-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-libraryloader-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-localization-l1-2-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-memory-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-namedpipe-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-processenvironment-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-processthreads-l1-1-1.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-profile-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-rtlsupport-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-string-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-synch-l1-2-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-sysinfo-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-timezone-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-core-util-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-conio-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-convert-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-environment-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-filesystem-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-heap-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-locale-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-math-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-multibyte-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-private-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-process-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-runtime-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-stdio-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-string-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-time-l1-1-0.dll',
+          '<(PRODUCT_DIR)/api-ms-win-crt-utility-l1-1-0.dll',
+        ],
+      },
+    }],
+  ],
+}
diff --git a/build/download_gold_plugin.py b/build/download_gold_plugin.py
new file mode 100755
index 0000000..d4fb48b
--- /dev/null
+++ b/build/download_gold_plugin.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# Copyright 2015 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.
+
+"""Script to download LLVM gold plugin from google storage."""
+
+import find_depot_tools
+import json
+import os
+import shutil
+import subprocess
+import sys
+import zipfile
+
+SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__))
+CHROME_SRC = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir))
+
+
+DEPOT_PATH = find_depot_tools.add_depot_tools_to_path()
+GSUTIL_PATH = os.path.join(DEPOT_PATH, 'gsutil.py')
+
+LLVM_BUILD_PATH = os.path.join(CHROME_SRC, 'third_party', 'llvm-build',
+                               'Release+Asserts')
+CLANG_UPDATE_PY = os.path.join(CHROME_SRC, 'tools', 'clang', 'scripts',
+                               'update.py')
+CLANG_REVISION = os.popen(CLANG_UPDATE_PY + ' --print-revision').read().rstrip()
+
+CLANG_BUCKET = 'gs://chromium-browser-clang/Linux_x64'
+
+def main():
+  targz_name = 'llvmgold-%s.tgz' % CLANG_REVISION
+  remote_path = '%s/%s' % (CLANG_BUCKET, targz_name)
+
+  os.chdir(LLVM_BUILD_PATH)
+
+  # TODO(pcc): Fix gsutil.py cp url file < /dev/null 2>&0
+  # (currently aborts with exit code 1,
+  # https://github.com/GoogleCloudPlatform/gsutil/issues/289) or change the
+  # stdin->stderr redirect in update.py to do something else (crbug.com/494442).
+  subprocess.check_call(['python', GSUTIL_PATH,
+                         'cp', remote_path, targz_name],
+                        stderr=open('/dev/null', 'w'))
+  subprocess.check_call(['tar', 'xzf', targz_name])
+  os.remove(targz_name)
+  return 0
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/build/get_landmines.py b/build/get_landmines.py
new file mode 100755
index 0000000..395c18f
--- /dev/null
+++ b/build/get_landmines.py
@@ -0,0 +1,88 @@
+#!/usr/bin/env python
+# Copyright 2013 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 emits the list of reasons why a particular build needs to be clobbered
+(or a list of 'landmines').
+"""
+
+import sys
+
+import landmine_utils
+
+
+builder = landmine_utils.builder
+distributor = landmine_utils.distributor
+gyp_defines = landmine_utils.gyp_defines
+gyp_msvs_version = landmine_utils.gyp_msvs_version
+platform = landmine_utils.platform
+
+
+def print_landmines():
+  """
+  ALL LANDMINES ARE EMITTED FROM HERE.
+  """
+  # DO NOT add landmines as part of a regular CL. Landmines are a last-effort
+  # bandaid fix if a CL that got landed has a build dependency bug and all bots
+  # need to be cleaned up. If you're writing a new CL that causes build
+  # dependency problems, fix the dependency problems instead of adding a
+  # landmine.
+
+  if (distributor() == 'goma' and platform() == 'win32' and
+      builder() == 'ninja'):
+    print 'Need to clobber winja goma due to backend cwd cache fix.'
+  if platform() == 'android':
+    print 'Clobber: to handle new way of suppressing findbugs failures.'
+    print 'Clobber to fix gyp not rename package name (crbug.com/457038)'
+  if platform() == 'win' and builder() == 'ninja':
+    print 'Compile on cc_unittests fails due to symbols removed in r185063.'
+  if platform() == 'linux' and builder() == 'ninja':
+    print 'Builders switching from make to ninja will clobber on this.'
+  if platform() == 'mac':
+    print 'Switching from bundle to unbundled dylib (issue 14743002).'
+  if platform() in ('win', 'mac'):
+    print ('Improper dependency for create_nmf.py broke in r240802, '
+           'fixed in r240860.')
+  if (platform() == 'win' and builder() == 'ninja' and
+      gyp_msvs_version() == '2012' and
+      gyp_defines().get('target_arch') == 'x64' and
+      gyp_defines().get('dcheck_always_on') == '1'):
+    print "Switched win x64 trybots from VS2010 to VS2012."
+  if (platform() == 'win' and builder() == 'ninja' and
+      gyp_msvs_version().startswith('2013')):
+    print "Switch to VS2013"
+  if (platform() == 'win' and gyp_msvs_version().startswith('2015')):
+    print 'Switch to VS2015 Update 2'
+  print 'Need to clobber everything due to an IDL change in r154579 (blink)'
+  print 'Need to clobber everything due to gen file moves in r175513 (Blink)'
+  if (platform() != 'ios'):
+    print 'Clobber to get rid of obselete test plugin after r248358'
+    print 'Clobber to rebuild GN files for V8'
+  print 'Clobber to get rid of stale generated mojom.h files'
+  print 'Need to clobber everything due to build_nexe change in nacl r13424'
+  print '[chromium-dev] PSA: clobber build needed for IDR_INSPECTOR_* compil...'
+  print 'blink_resources.grd changed: crbug.com/400860'
+  print 'ninja dependency cycle: crbug.com/408192'
+  print 'Clobber to fix missing NaCl gyp dependencies (crbug.com/427427).'
+  print 'Another clobber for missing NaCl gyp deps (crbug.com/427427).'
+  print 'Clobber to fix GN not picking up increased ID range (crbug.com/444902)'
+  print 'Remove NaCl toolchains from the output dir (crbug.com/456902)'
+  if platform() == 'ios':
+    print 'Clobber iOS to workaround Xcode deps bug (crbug.com/485435)'
+  if platform() == 'win':
+    print 'Clobber to delete stale generated files (crbug.com/510086)'
+  if platform() == 'android' and gyp_defines().get('target_arch') == 'arm64':
+    print 'Clobber to support new location/infra for chrome_sync_shell_apk'
+  if platform() == 'mac':
+    print 'Clobber to get rid of evil libsqlite3.dylib (crbug.com/526208)'
+
+
+def main():
+  print_landmines()
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/build/gyp_environment.py b/build/gyp_environment.py
new file mode 100644
index 0000000..199023a
--- /dev/null
+++ b/build/gyp_environment.py
@@ -0,0 +1,35 @@
+# 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.
+
+"""
+Sets up various automatic gyp environment variables. These are used by
+gyp_chromium and landmines.py which run at different stages of runhooks. To
+make sure settings are consistent between them, all setup should happen here.
+"""
+
+import gyp_helper
+import mac_toolchain
+import os
+import sys
+import vs_toolchain
+
+def SetEnvironment():
+  """Sets defaults for GYP_* variables."""
+  gyp_helper.apply_chromium_gyp_env()
+
+  # Default to ninja on linux and windows, but only if no generator has
+  # explicitly been set.
+  # Also default to ninja on mac, but only when not building chrome/ios.
+  # . -f / --format has precedence over the env var, no need to check for it
+  # . set the env var only if it hasn't been set yet
+  # . chromium.gyp_env has been applied to os.environ at this point already
+  if sys.platform.startswith(('linux', 'win', 'freebsd')) and \
+      not os.environ.get('GYP_GENERATORS'):
+    os.environ['GYP_GENERATORS'] = 'ninja'
+  elif sys.platform == 'darwin' and not os.environ.get('GYP_GENERATORS') and \
+      not 'OS=ios' in os.environ.get('GYP_DEFINES', []):
+    os.environ['GYP_GENERATORS'] = 'ninja'
+
+  vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
+  mac_toolchain.SetToolchainEnvironment()
diff --git a/build/isolate.gypi b/build/isolate.gypi
new file mode 100644
index 0000000..197e455
--- /dev/null
+++ b/build/isolate.gypi
@@ -0,0 +1,129 @@
+# Copyright (c) 2012 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 into a target to provide a rule
+# to "build" .isolate files into a .isolated file.
+#
+# To use this, create a gyp target with the following form:
+# 'conditions': [
+#   ['test_isolation_mode != "noop"', {
+#     'targets': [
+#       {
+#         'target_name': 'foo_test_run',
+#         'type': 'none',
+#         'dependencies': [
+#           'foo_test',
+#         ],
+#         'includes': [
+#           '../build/isolate.gypi',
+#         ],
+#         'sources': [
+#           'foo_test.isolate',
+#         ],
+#       },
+#     ],
+#   }],
+# ],
+#
+# Note: foo_test.isolate is included and a source file. It is an inherent
+# property of the .isolate format. This permits to define GYP variables but is
+# a stricter format than GYP so isolate.py can read it.
+#
+# The generated .isolated file will be:
+#   <(PRODUCT_DIR)/foo_test.isolated
+#
+# See http://dev.chromium.org/developers/testing/isolated-testing/for-swes
+# for more information.
+
+{
+  'rules': [
+    {
+      'rule_name': 'isolate',
+      'extension': 'isolate',
+      'inputs': [
+        # Files that are known to be involved in this step.
+        '<(DEPTH)/tools/isolate_driver.py',
+        '<(DEPTH)/tools/swarming_client/isolate.py',
+        '<(DEPTH)/tools/swarming_client/run_isolated.py',
+      ],
+      'outputs': [],
+      'action': [
+        'python',
+        '<(DEPTH)/tools/isolate_driver.py',
+        '<(test_isolation_mode)',
+        '--isolated', '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated',
+        '--isolate', '<(RULE_INPUT_PATH)',
+
+        # Variables should use the -V FOO=<(FOO) form so frequent values,
+        # like '0' or '1', aren't stripped out by GYP. Run 'isolate.py help' for
+        # more details.
+
+        # Path variables are used to replace file paths when loading a .isolate
+        # file
+        '--path-variable', 'DEPTH', '<(DEPTH)',
+        '--path-variable', 'PRODUCT_DIR', '<(PRODUCT_DIR) ',
+
+        # Note: This list must match DefaultConfigVariables()
+        # in build/android/pylib/utils/isolator.py
+        '--config-variable', 'CONFIGURATION_NAME=<(CONFIGURATION_NAME)',
+        '--config-variable', 'OS=<(OS)',
+        '--config-variable', 'asan=<(asan)',
+        '--config-variable', 'branding=<(branding)',
+        '--config-variable', 'chromeos=<(chromeos)',
+        '--config-variable', 'component=<(component)',
+        '--config-variable', 'disable_nacl=<(disable_nacl)',
+        '--config-variable', 'enable_pepper_cdms=<(enable_pepper_cdms)',
+        '--config-variable', 'enable_plugins=<(enable_plugins)',
+        '--config-variable', 'fastbuild=<(fastbuild)',
+        '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
+        # TODO(kbr): move this to chrome_tests.gypi:gles2_conform_tests_run
+        # once support for user-defined config variables is added.
+        '--config-variable',
+          'internal_gles2_conform_tests=<(internal_gles2_conform_tests)',
+        '--config-variable', 'kasko=<(kasko)',
+        '--config-variable', 'lsan=<(lsan)',
+        '--config-variable', 'msan=<(msan)',
+        '--config-variable', 'target_arch=<(target_arch)',
+        '--config-variable', 'tsan=<(tsan)',
+        '--config-variable', 'use_custom_libcxx=<(use_custom_libcxx)',
+        '--config-variable', 'use_instrumented_libraries=<(use_instrumented_libraries)',
+        '--config-variable',
+        'use_prebuilt_instrumented_libraries=<(use_prebuilt_instrumented_libraries)',
+        '--config-variable', 'use_ozone=<(use_ozone)',
+        '--config-variable', 'use_x11=<(use_x11)',
+        '--config-variable', 'v8_use_external_startup_data=<(v8_use_external_startup_data)',
+      ],
+      'conditions': [
+        # Note: When gyp merges lists, it appends them to the old value.
+        # Extra variables are replaced on the 'command' entry and on paths in
+        # the .isolate file but are not considered relative paths.
+        ['OS=="mac"', {
+          'action': [
+            '--extra-variable', 'mac_product_name=<(mac_product_name)',
+          ],
+        }],
+        ["test_isolation_mode == 'prepare'", {
+          'outputs': [
+            '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated.gen.json',
+          ],
+        }, {
+          'outputs': [
+            '<(PRODUCT_DIR)/<(RULE_INPUT_ROOT).isolated',
+          ],
+        }],
+        ['OS=="win"', {
+          'includes': ['../build/util/version.gypi'],
+          'action': [
+            '--extra-variable', 'version_full=<(version_full)',
+            '--config-variable', 'msvs_version=<(MSVS_VERSION)',
+          ],
+        }, {
+          'action': [
+            '--config-variable', 'msvs_version=0',
+          ],
+        }],
+      ],
+    },
+  ],
+}
diff --git a/build/landmine_utils.py b/build/landmine_utils.py
new file mode 100644
index 0000000..6d18b6d
--- /dev/null
+++ b/build/landmine_utils.py
@@ -0,0 +1,120 @@
+# Copyright 2013 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 functools
+import logging
+import os
+import shlex
+import sys
+
+
+def memoize(default=None):
+  """This decorator caches the return value of a parameterless pure function"""
+  def memoizer(func):
+    val = []
+    @functools.wraps(func)
+    def inner():
+      if not val:
+        ret = func()
+        val.append(ret if ret is not None else default)
+        if logging.getLogger().isEnabledFor(logging.INFO):
+          print '%s -> %r' % (func.__name__, val[0])
+      return val[0]
+    return inner
+  return memoizer
+
+
+@memoize()
+def IsWindows():
+  return sys.platform in ['win32', 'cygwin']
+
+
+@memoize()
+def IsLinux():
+  return sys.platform.startswith(('linux', 'freebsd', 'openbsd'))
+
+
+@memoize()
+def IsMac():
+  return sys.platform == 'darwin'
+
+
+@memoize()
+def gyp_defines():
+  """Parses and returns GYP_DEFINES env var as a dictionary."""
+  return dict(arg.split('=', 1)
+      for arg in shlex.split(os.environ.get('GYP_DEFINES', '')))
+
+@memoize()
+def gyp_generator_flags():
+  """Parses and returns GYP_GENERATOR_FLAGS env var as a dictionary."""
+  return dict(arg.split('=', 1)
+      for arg in shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', '')))
+
+@memoize()
+def gyp_msvs_version():
+  return os.environ.get('GYP_MSVS_VERSION', '')
+
+@memoize()
+def distributor():
+  """
+  Returns a string which is the distributed build engine in use (if any).
+  Possible values: 'goma', 'ib', ''
+  """
+  if 'goma' in gyp_defines():
+    return 'goma'
+  elif IsWindows():
+    if 'CHROME_HEADLESS' in os.environ:
+      return 'ib' # use (win and !goma and headless) as approximation of ib
+
+
+@memoize()
+def platform():
+  """
+  Returns a string representing the platform this build is targetted for.
+  Possible values: 'win', 'mac', 'linux', 'ios', 'android'
+  """
+  if 'OS' in gyp_defines():
+    if 'android' in gyp_defines()['OS']:
+      return 'android'
+    else:
+      return gyp_defines()['OS']
+  elif IsWindows():
+    return 'win'
+  elif IsLinux():
+    return 'linux'
+  else:
+    return 'mac'
+
+
+@memoize()
+def builder():
+  """
+  Returns a string representing the build engine (not compiler) to use.
+  Possible values: 'make', 'ninja', 'xcode', 'msvs', 'scons'
+  """
+  if 'GYP_GENERATORS' in os.environ:
+    # for simplicity, only support the first explicit generator
+    generator = os.environ['GYP_GENERATORS'].split(',')[0]
+    if generator.endswith('-android'):
+      return generator.split('-')[0]
+    elif generator.endswith('-ninja'):
+      return 'ninja'
+    else:
+      return generator
+  else:
+    if platform() == 'android':
+      # Good enough for now? Do any android bots use make?
+      return 'ninja'
+    elif platform() == 'ios':
+      return 'xcode'
+    elif IsWindows():
+      return 'ninja'
+    elif IsLinux():
+      return 'ninja'
+    elif IsMac():
+      return 'ninja'
+    else:
+      assert False, 'Don\'t know what builder we\'re using!'
diff --git a/build/landmines.py b/build/landmines.py
new file mode 100755
index 0000000..031c309
--- /dev/null
+++ b/build/landmines.py
@@ -0,0 +1,148 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 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 script runs every build as the first hook (See DEPS). If it detects that
+the build should be clobbered, it will delete the contents of the build
+directory.
+
+A landmine is tripped when a builder checks out a different revision, and the
+diff between the new landmines and the old ones is non-null. At this point, the
+build is clobbered.
+"""
+
+import difflib
+import errno
+import gyp_environment
+import logging
+import optparse
+import os
+import sys
+import subprocess
+import time
+
+import clobber
+import landmine_utils
+
+
+def get_build_dir(build_tool, src_dir, is_iphone=False):
+  """
+  Returns output directory absolute path dependent on build and targets.
+  Examples:
+    r'c:\b\build\slave\win\build\src\out'
+    '/mnt/data/b/build/slave/linux/build/src/out'
+    '/b/build/slave/ios_rel_device/build/src/xcodebuild'
+
+  Keep this function in sync with tools/build/scripts/slave/compile.py
+  """
+  ret = None
+  if build_tool == 'xcode':
+    ret = os.path.join(src_dir, 'xcodebuild')
+  elif build_tool in ['make', 'ninja', 'ninja-ios']:  # TODO: Remove ninja-ios.
+    if 'CHROMIUM_OUT_DIR' in os.environ:
+      output_dir = os.environ.get('CHROMIUM_OUT_DIR').strip()
+      if not output_dir:
+        raise Error('CHROMIUM_OUT_DIR environment variable is set but blank!')
+    else:
+      output_dir = landmine_utils.gyp_generator_flags().get('output_dir', 'out')
+    ret = os.path.join(src_dir, output_dir)
+  else:
+    raise NotImplementedError('Unexpected GYP_GENERATORS (%s)' % build_tool)
+  return os.path.abspath(ret)
+
+
+def clobber_if_necessary(new_landmines, src_dir):
+  """Does the work of setting, planting, and triggering landmines."""
+  out_dir = get_build_dir(landmine_utils.builder(), src_dir)
+  landmines_path = os.path.normpath(os.path.join(src_dir, '.landmines'))
+  try:
+    os.makedirs(out_dir)
+  except OSError as e:
+    if e.errno == errno.EEXIST:
+      pass
+
+  if os.path.exists(landmines_path):
+    with open(landmines_path, 'r') as f:
+      old_landmines = f.readlines()
+    if old_landmines != new_landmines:
+      old_date = time.ctime(os.stat(landmines_path).st_ctime)
+      diff = difflib.unified_diff(old_landmines, new_landmines,
+          fromfile='old_landmines', tofile='new_landmines',
+          fromfiledate=old_date, tofiledate=time.ctime(), n=0)
+      sys.stdout.write('Clobbering due to:\n')
+      sys.stdout.writelines(diff)
+      sys.stdout.flush()
+
+      clobber.clobber(out_dir)
+
+  # Save current set of landmines for next time.
+  with open(landmines_path, 'w') as f:
+    f.writelines(new_landmines)
+
+
+def process_options():
+  """Returns an options object containing the configuration for this script."""
+  parser = optparse.OptionParser()
+  parser.add_option(
+      '-s', '--landmine-scripts', action='append',
+      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.')
+  parser.add_option('-d', '--src-dir',
+      help='Path of the source root dir. Overrides the default location of the '
+           'source root dir when calculating the build directory.')
+  parser.add_option('-v', '--verbose', action='store_true',
+      default=('LANDMINES_VERBOSE' in os.environ),
+      help=('Emit some extra debugging information (default off). This option '
+          'is also enabled by the presence of a LANDMINES_VERBOSE environment '
+          'variable.'))
+
+  options, args = parser.parse_args()
+
+  if args:
+    parser.error('Unknown arguments %s' % args)
+
+  logging.basicConfig(
+      level=logging.DEBUG if options.verbose else logging.ERROR)
+
+  if options.src_dir:
+    if not os.path.isdir(options.src_dir):
+      parser.error('Cannot find source root dir at %s' % options.src_dir)
+    logging.debug('Overriding source root dir. Using: %s', options.src_dir)
+  else:
+    options.src_dir = \
+        os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
+
+  if not options.landmine_scripts:
+    options.landmine_scripts = [os.path.join(options.src_dir, 'build',
+                                             'get_landmines.py')]
+
+  extra_script = os.environ.get('EXTRA_LANDMINES_SCRIPT')
+  if extra_script:
+    options.landmine_scripts += [extra_script]
+
+  return options
+
+
+def main():
+  options = process_options()
+
+  if landmine_utils.builder() in ('dump_dependency_json', 'eclipse'):
+    return 0
+
+  gyp_environment.SetEnvironment()
+
+  landmines = []
+  for s in options.landmine_scripts:
+    proc = subprocess.Popen([sys.executable, s], stdout=subprocess.PIPE)
+    output, _ = proc.communicate()
+    landmines.extend([('%s\n' % l.strip()) for l in output.splitlines()])
+  clobber_if_necessary(landmines, options.src_dir)
+
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/build/mac/asan.gyp b/build/mac/asan.gyp
new file mode 100644
index 0000000..a66d118
--- /dev/null
+++ b/build/mac/asan.gyp
@@ -0,0 +1,53 @@
+# Copyright (c) 2013 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.
+
+{
+   'targets': [
+     {
+       'target_name': 'asan_dynamic_runtime',
+       'type': 'none',
+       'variables': {
+         # Every target is going to depend on asan_dynamic_runtime, so allow
+         # this one to depend on itself.
+         'prune_self_dependency': 1,
+         # Path is relative to this GYP file.
+         'asan_rtl_mask_path':
+             '../../third_party/llvm-build/Release+Asserts/lib/clang/<!(python ../../tools/clang/scripts/update.py --print-clang-version)/lib/darwin',
+         'asan_osx_dynamic':
+             '<(asan_rtl_mask_path)/libclang_rt.asan_osx_dynamic.dylib',
+         'asan_iossim_dynamic':
+             '<(asan_rtl_mask_path)/libclang_rt.asan_iossim_dynamic.dylib',
+       },
+       'conditions': [
+         ['OS=="mac"', {
+           'copies': [
+             {
+               'destination': '<(PRODUCT_DIR)',
+               'files': [
+                 '<!(/bin/ls <(asan_osx_dynamic))',
+               ],
+             },
+           ],
+         }],
+         # ASan works with iOS simulator only, not bare-metal iOS.
+         ['OS=="ios" and target_arch=="ia32"', {
+           'toolsets': ['host', 'target'],
+           'copies': [
+             {
+               'destination': '<(PRODUCT_DIR)',
+               'target_conditions': [
+                 ['_toolset=="host"', {
+                   'files': [ '<!(/bin/ls <(asan_osx_dynamic))'],
+                 }],
+                 ['_toolset=="target"', {
+                   'files': [ '<!(/bin/ls <(asan_iossim_dynamic))'],
+                 }],
+               ],
+             },
+           ],
+         }],
+       ],
+     },
+   ],
+}
diff --git a/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn b/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
index d29076f..9d519b7 100644
--- a/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
+++ b/build/secondary/third_party/crashpad/crashpad/util/BUILD.gn
@@ -9,7 +9,7 @@
 # Allows the source set to inject ldflags for targets that link to it.
 config("util_link_config") {
   if (is_mac) {
-    ldflags = [ "/usr/lib/libbsm.dylib" ]
+    libs = [ "bsm" ]
   }
 }
 
diff --git a/build/shim_headers.gypi b/build/shim_headers.gypi
new file mode 100644
index 0000000..56d8d3a
--- /dev/null
+++ b/build/shim_headers.gypi
@@ -0,0 +1,60 @@
+# Copyright (c) 2012 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 into a target to handle shim headers
+# in a consistent manner. To use this the following variables need to be
+# defined:
+#   headers_root_path: string: path to directory containing headers
+#   header_filenames: list: list of header file names
+
+{
+  'variables': {
+    'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)',
+    'shim_generator_additional_args%': [],
+  },
+  'include_dirs++': [
+    '<(shim_headers_path)',
+  ],
+  'all_dependent_settings': {
+    # Repeating this with different numbers of plusses is unfortunately required
+    # to make sure that even if this include is inside nested conditions/etc, it
+    # still gets inserted at the beginning of the include_dirs list. See
+    # http://crbug.com/263818 for details.
+    'include_dirs+++': [
+      '<(shim_headers_path)',
+    ],
+    'include_dirs++++': [
+      '<(shim_headers_path)',
+    ],
+    'include_dirs+++++': [
+      '<(shim_headers_path)',
+    ],
+  },
+  'actions': [
+    {
+      'variables': {
+        'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py',
+        'generator_args': [
+          '--headers-root', '<(headers_root_path)',
+          '--output-directory', '<(shim_headers_path)',
+          '<@(shim_generator_additional_args)',
+          '<@(header_filenames)',
+        ],
+      },
+      'action_name': 'generate_<(_target_name)_shim_headers',
+      'inputs': [
+        '<(generator_path)',
+      ],
+      'outputs': [
+        '<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)',
+      ],
+      'action': ['python',
+                 '<(generator_path)',
+                 '<@(generator_args)',
+                 '--generate',
+      ],
+      'message': 'Generating <(_target_name) shim headers',
+    },
+  ],
+}
diff --git a/build/vs_toolchain.py b/build/vs_toolchain.py
new file mode 100755
index 0000000..ddff24a
--- /dev/null
+++ b/build/vs_toolchain.py
@@ -0,0 +1,382 @@
+#!/usr/bin/env python
+# 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(0, os.path.join(chrome_src, 'tools', 'gyp', 'pylib'))
+json_data_file = os.path.join(script_dir, 'win_toolchain.json')
+
+
+import gyp
+
+
+# Use MSVS2015 as the default toolchain.
+CURRENT_DEFAULT_TOOLCHAIN_VERSION = '2015'
+
+
+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 (comparing last modified time as an approximate float match as for
+  some reason the values tend to differ by ~1e-07 despite being copies of the
+  same file... https://crbug.com/603603).
+  """
+  if (os.path.isdir(os.path.dirname(target)) and
+      (not os.path.isfile(target) or
+       abs(os.stat(target).st_mtime - os.stat(source).st_mtime) >= 0.01)):
+    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')
+  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':
+    if bool(int(os.environ.get('DEPOT_TOOLS_WIN_TOOLCHAIN_PRERELEASE', '0'))):
+      # Update 3 pre-release, May 16th.
+      return ['283cc362f57dbe240e0d21f48ae45f9d834a425a']
+    else:
+      # 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/build_overrides/gtest.gni b/build_overrides/gtest.gni
new file mode 100644
index 0000000..5d22f01
--- /dev/null
+++ b/build_overrides/gtest.gni
@@ -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.
+
+# Exclude support for registering main function in multi-process tests.
+gtest_include_multiprocess = false
+
+# Exclude support for platform-specific operations across unit tests.
+gtest_include_platform_test = true
+
+# Exclude support for testing Objective C code on OS X and iOS.
+gtest_include_objc_support = true
+
+# Exclude support for flushing coverage files on iOS.
+gtest_include_ios_coverage = true
diff --git a/build_overrides/v8.gni b/build_overrides/v8.gni
index 656045b..5dcd672 100644
--- a/build_overrides/v8.gni
+++ b/build_overrides/v8.gni
@@ -4,26 +4,23 @@
 
 import("//build/config/features.gni")
 import("//build/config/ui.gni")
+import("//build/config/v8_target_cpu.gni")
+import("//gni/v8.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") &&
+if (((v8_target_cpu == "x86" ||
+      v8_target_cpu == "x64" ||
+      v8_target_cpu=="x87") &&
      (is_linux || is_mac)) ||
-    (v8_target_arch == "ppc64" && is_linux)) {
+    (v8_target_cpu == "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 = []
+
+# Add simple extras solely for the purpose of the cctests.
+v8_extra_library_files = [ "//test/cctest/test-extra.js" ]
+v8_experimental_extra_library_files = [ "//test/cctest/test-experimental-extra.js" ]
diff --git a/gni/isolate.gni b/gni/isolate.gni
new file mode 100644
index 0000000..e6d166c
--- /dev/null
+++ b/gni/isolate.gni
@@ -0,0 +1,171 @@
+# 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("//build/config/sanitizers/sanitizers.gni")
+import("//third_party/icu/config.gni")
+import("v8.gni")
+
+declare_args() {
+  # Sets the test isolation mode (noop|prepare|check).
+  v8_test_isolation_mode = "noop"
+}
+
+template("v8_isolate_run") {
+  # Remember target name as within the action scope the target name will be
+  # different.
+  name = target_name
+  if (name != "" && invoker.isolate != "" && invoker.deps != [] &&
+      v8_test_isolation_mode != "noop") {
+    action(name + "_run") {
+      testonly = true
+
+      deps = invoker.deps
+
+      script = "//tools/isolate_driver.py"
+
+      sources = [
+        invoker.isolate,
+      ]
+
+      inputs = [
+        # Files that are known to be involved in this step.
+        "//tools/swarming_client/isolate.py",
+        "//tools/swarming_client/run_isolated.py",
+      ]
+
+      if (v8_test_isolation_mode == "prepare") {
+        outputs = [
+          "$root_out_dir/$name.isolated.gen.json",
+        ]
+      } else if (v8_test_isolation_mode == "check") {
+        outputs = [
+          "$root_out_dir/$name.isolated",
+          "$root_out_dir/$name.isolated.state",
+        ]
+      }
+
+      # Translate gn to gyp variables.
+      if (is_asan) {
+        asan = "1"
+      } else {
+        asan = "0"
+      }
+      if (is_msan) {
+        msan = "1"
+      } else {
+        msan = "0"
+      }
+      if (is_tsan) {
+        tsan = "1"
+      } else {
+        tsan = "0"
+      }
+      if (is_cfi) {
+        cfi_vptr = "1"
+      } else {
+        cfi_vptr = "0"
+      }
+      if (use_custom_libcxx) {
+        custom_libcxx = "1"
+      } else {
+        custom_libcxx = "0"
+      }
+      if (target_cpu == "x86") {
+        target_arch = "ia32"
+      } else {
+        target_arch = target_cpu
+      }
+      if (is_debug) {
+        configuration_name = "Debug"
+      } else {
+        configuration_name = "Release"
+      }
+      if (is_component_build) {
+        component = "shared_library"
+      } else {
+        component = "static_library"
+      }
+      if (icu_use_data_file) {
+        icu_use_data_file_flag = "1"
+      } else {
+        icu_use_data_file_flag = "0"
+      }
+      if (v8_use_external_startup_data) {
+        use_external_startup_data = "1"
+      } else {
+        use_external_startup_data = "0"
+      }
+      if (v8_use_snapshot) {
+        use_snapshot = "true"
+      } else {
+        use_snapshot = "false"
+      }
+
+      # Note, all paths will be rebased in isolate_driver.py to be relative to
+      # the isolate file.
+      args = [
+        v8_test_isolation_mode,
+        "--isolated",
+        rebase_path("$root_out_dir/$name.isolated", root_build_dir),
+        "--isolate",
+        rebase_path(invoker.isolate, root_build_dir),
+
+        # Path variables are used to replace file paths when loading a .isolate
+        # file
+        "--path-variable",
+        "DEPTH",
+        rebase_path("//", root_build_dir),
+        "--path-variable",
+        "PRODUCT_DIR",
+        rebase_path(root_out_dir, root_build_dir),
+
+        # TODO(machenbach): Set variables for remaining features.
+        "--config-variable",
+        "CONFIGURATION_NAME=$configuration_name",
+        "--config-variable",
+        "OS=$target_os",
+        "--config-variable",
+        "asan=$asan",
+        "--config-variable",
+        "cfi_vptr=$cfi_vptr",
+        "--config-variable",
+        "gcmole=0",
+        "--config-variable",
+        "has_valgrind=0",
+        "--config-variable",
+        "icu_use_data_file_flag=$icu_use_data_file_flag",
+        "--config-variable",
+        "msan=$msan",
+        "--config-variable",
+        "tsan=$tsan",
+        "--config-variable",
+        "coverage=0",
+        "--config-variable",
+        "sanitizer_coverage=0",
+        "--config-variable",
+        "component=$component",
+        "--config-variable",
+        "target_arch=$target_arch",
+        "--config-variable",
+        "use_custom_libcxx=$custom_libcxx",
+        "--config-variable",
+        "v8_use_external_startup_data=$use_external_startup_data",
+        "--config-variable",
+        "v8_use_snapshot=$use_snapshot",
+      ]
+
+      if (is_win) {
+        args += [
+          "--config-variable",
+          "msvs_version=2013",
+        ]
+      } else {
+        args += [
+          "--config-variable",
+          "msvs_version=0",
+        ]
+      }
+    }
+  }
+}
diff --git a/gni/v8.gni b/gni/v8.gni
new file mode 100644
index 0000000..24f6567
--- /dev/null
+++ b/gni/v8.gni
@@ -0,0 +1,79 @@
+# 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("//build/config/v8_target_cpu.gni")
+import("//build/config/sanitizers/sanitizers.gni")
+
+declare_args() {
+  # Turns on compiler optimizations in V8 in Debug build.
+  v8_optimized_debug = 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 = !is_ios
+}
+
+###############################################################################
+# Templates
+#
+
+# Points to // in v8 stand-alone or to //v8/ in chromium. We need absolute
+# paths for all configs in templates as they are shared in different
+# subdirectories.
+path_prefix = get_path_info("../", "abspath")
+
+# Common configs to remove or add in all v8 targets.
+remove_configs = [ "//build/config/compiler:chromium_code" ]
+add_configs = [
+  "//build/config/compiler:no_chromium_code",
+  path_prefix + ":features",
+  path_prefix + ":toolchain",
+]
+
+if (is_debug && !v8_optimized_debug) {
+  remove_configs += [ "//build/config/compiler:default_optimization" ]
+  add_configs += [ "//build/config/compiler:no_optimize" ]
+} else {
+  remove_configs += [ "//build/config/compiler:default_optimization" ]
+
+  # TODO(crbug.com/621335) Rework this so that we don't have the confusion
+  # between "optimize_speed" and "optimize_max".
+  if (is_posix && !is_android && !is_nacl && !using_sanitizer) {
+    add_configs += [ "//build/config/compiler:optimize_speed" ]
+  } else {
+    add_configs += [ "//build/config/compiler:optimize_max" ]
+  }
+}
+
+# All templates should be kept in sync.
+template("v8_source_set") {
+  source_set(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    configs += invoker.configs
+    configs -= remove_configs
+    configs += add_configs
+  }
+}
+
+template("v8_executable") {
+  executable(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    configs += invoker.configs
+    configs -= remove_configs
+    configs += add_configs
+  }
+}
+
+template("v8_component") {
+  component(target_name) {
+    forward_variables_from(invoker, "*", [ "configs" ])
+    configs += invoker.configs
+    configs -= remove_configs
+    configs += add_configs
+  }
+}
diff --git a/gypfiles/get_landmines.py b/gypfiles/get_landmines.py
index 2bbf7a6..9fcca4b 100755
--- a/gypfiles/get_landmines.py
+++ b/gypfiles/get_landmines.py
@@ -27,6 +27,7 @@
   print 'Switching to pinned msvs toolchain.'
   print 'Clobbering to hopefully resolve problem with mksnapshot'
   print 'Clobber after ICU roll.'
+  print 'Clobber after Android NDK update.'
   return 0
 
 
diff --git a/gypfiles/gyp_environment.py b/gypfiles/gyp_environment.py
index 7a4e622..76ae841 100644
--- a/gypfiles/gyp_environment.py
+++ b/gypfiles/gyp_environment.py
@@ -31,6 +31,7 @@
   supported_vars = ( 'V8_GYP_FILE',
                      'V8_GYP_SYNTAX_CHECK',
                      'GYP_DEFINES',
+                     'GYP_GENERATORS',
                      'GYP_GENERATOR_FLAGS',
                      'GYP_GENERATOR_OUTPUT', )
   for var in supported_vars:
@@ -51,4 +52,9 @@
     # Update the environment based on v8.gyp_env
     gyp_env_path = os.path.join(os.path.dirname(V8_ROOT), 'v8.gyp_env')
     apply_gyp_environment(gyp_env_path)
+
+    if not os.environ.get('GYP_GENERATORS'):
+      # Default to ninja on all platforms.
+      os.environ['GYP_GENERATORS'] = 'ninja'
+
     vs_toolchain.SetEnvironmentAndGetRuntimeDllDirs()
diff --git a/gypfiles/gyp_v8 b/gypfiles/gyp_v8
index e97507a..8be39d9 100755
--- a/gypfiles/gyp_v8
+++ b/gypfiles/gyp_v8
@@ -118,6 +118,10 @@
 if __name__ == '__main__':
   args = sys.argv[1:]
 
+  if int(os.environ.get('GYP_CHROMIUM_NO_ACTION', 0)):
+    print 'Skipping gyp_v8 due to GYP_CHROMIUM_NO_ACTION env var.'
+    sys.exit(0)
+
   gyp_environment.set_environment()
 
   # This could give false positives since it doesn't actually do real option
diff --git a/gypfiles/has_valgrind.py b/gypfiles/has_valgrind.py
deleted file mode 100755
index 83a848d..0000000
--- a/gypfiles/has_valgrind.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/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.
-
-import os
-
-BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
-VALGRIND_DIR = os.path.join(BASE_DIR, 'third_party', 'valgrind')
-LINUX32_DIR = os.path.join(VALGRIND_DIR, 'linux_x86')
-LINUX64_DIR = os.path.join(VALGRIND_DIR, 'linux_x64')
-
-
-def DoMain(_):
-  """Hook to be called from gyp without starting a separate python
-  interpreter."""
-  return int(os.path.exists(LINUX32_DIR) and os.path.exists(LINUX64_DIR))
-
-
-if __name__ == '__main__':
-  print DoMain([])
diff --git a/gypfiles/isolate.gypi b/gypfiles/isolate.gypi
index a9614b5..085ed5d 100644
--- a/gypfiles/isolate.gypi
+++ b/gypfiles/isolate.gypi
@@ -73,7 +73,7 @@
         '--config-variable', 'cfi_vptr=<(cfi_vptr)',
         '--config-variable', 'gcmole=<(gcmole)',
         '--config-variable', 'has_valgrind=<(has_valgrind)',
-        '--config-variable', 'icu_use_data_file_flag=0',
+        '--config-variable', 'icu_use_data_file_flag=<(icu_use_data_file_flag)',
         '--config-variable', 'msan=<(msan)',
         '--config-variable', 'tsan=<(tsan)',
         '--config-variable', 'coverage=<(coverage)',
diff --git a/gypfiles/standalone.gypi b/gypfiles/standalone.gypi
index 630c45e..c6c26fb 100644
--- a/gypfiles/standalone.gypi
+++ b/gypfiles/standalone.gypi
@@ -49,35 +49,70 @@
     'variables': {
       'variables': {
         'variables': {
-          'conditions': [
-            ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \
-               OS=="netbsd" or OS=="mac" or OS=="qnx" or OS=="aix"', {
-              # This handles the Unix platforms we generally deal with.
-              # Anything else gets passed through, which probably won't work
-              # very well; such hosts should pass an explicit target_arch
-              # to gyp.
-              'host_arch%': '<!pymod_do_main(detect_v8_host_arch)',
-            }, {
-              # OS!="linux" and OS!="freebsd" and OS!="openbsd" and
-              # OS!="netbsd" and OS!="mac" and OS!="aix"
-              'host_arch%': 'ia32',
-            }],
-          ],
+          'variables': {
+            'conditions': [
+              ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \
+                 OS=="netbsd" or OS=="mac" or OS=="qnx" or OS=="aix"', {
+                # This handles the Unix platforms we generally deal with.
+                # Anything else gets passed through, which probably won't work
+                # very well; such hosts should pass an explicit target_arch
+                # to gyp.
+                'host_arch%': '<!pymod_do_main(detect_v8_host_arch)',
+              }, {
+                # OS!="linux" and OS!="freebsd" and OS!="openbsd" and
+                # OS!="netbsd" and OS!="mac" and OS!="aix"
+                'host_arch%': 'ia32',
+              }],
+            ],
+          },
+          'host_arch%': '<(host_arch)',
+          'target_arch%': '<(host_arch)',
+
+          # By default we build against a stable sysroot image to avoid
+          # depending on the packages installed on the local machine. Set this
+          # to 0 to build against locally installed headers and libraries (e.g.
+          # if packaging for a linux distro)
+          'use_sysroot%': 1,
         },
         'host_arch%': '<(host_arch)',
-        'target_arch%': '<(host_arch)',
+        'target_arch%': '<(target_arch)',
+        'use_sysroot%': '<(use_sysroot)',
         'base_dir%': '<!(cd <(DEPTH) && python -c "import os; print os.getcwd()")',
 
         # Instrument for code coverage and use coverage wrapper to exclude some
         # files. Uses gcov if clang=0 is set explicitly. Otherwise,
         # sanitizer_coverage must be set too.
         'coverage%': 0,
+
+        # Default sysroot if no sysroot can be provided.
+        'sysroot%': '',
+
+        'conditions': [
+          # The system root for linux builds.
+          ['OS=="linux" and use_sysroot==1', {
+            'conditions': [
+              ['target_arch=="arm"', {
+                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_wheezy_arm-sysroot',
+              }],
+              ['target_arch=="x64"', {
+                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_wheezy_amd64-sysroot',
+              }],
+              ['target_arch=="ia32"', {
+                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_wheezy_i386-sysroot',
+              }],
+              ['target_arch=="mipsel"', {
+                'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_wheezy_mips-sysroot',
+              }],
+            ],
+          }], # OS=="linux" and use_sysroot==1
+        ],
       },
       'base_dir%': '<(base_dir)',
       'host_arch%': '<(host_arch)',
       'target_arch%': '<(target_arch)',
       'v8_target_arch%': '<(target_arch)',
       'coverage%': '<(coverage)',
+      'sysroot%': '<(sysroot)',
       'asan%': 0,
       'lsan%': 0,
       'msan%': 0,
@@ -112,11 +147,11 @@
       'use_goma%': 0,
       'gomadir%': '',
 
-      # Check if valgrind directories are present.
-      'has_valgrind%': '<!pymod_do_main(has_valgrind)',
-
       'test_isolation_mode%': 'noop',
 
+      # By default, use ICU data file (icudtl.dat).
+      'icu_use_data_file_flag%': 1,
+
       'conditions': [
         # Set default gomadir.
         ['OS=="win"', {
@@ -164,7 +199,8 @@
     'test_isolation_mode%': '<(test_isolation_mode)',
     'fastbuild%': '<(fastbuild)',
     'coverage%': '<(coverage)',
-    'has_valgrind%': '<(has_valgrind)',
+    'sysroot%': '<(sysroot)',
+    'icu_use_data_file_flag%': '<(icu_use_data_file_flag)',
 
     # Add a simple extras solely for the purpose of the cctests
     'v8_extra_library_files': ['../test/cctest/test-extra.js'],
@@ -258,12 +294,15 @@
             # because it is used at different levels in the GYP files.
             'android_ndk_root%': '<(base_dir)/third_party/android_tools/ndk/',
             'android_host_arch%': "<!(uname -m | sed -e 's/i[3456]86/x86/')",
+            # Version of the NDK. Used to ensure full rebuilds on NDK rolls.
+            'android_ndk_version%': 'r11c',
             '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)',
+          'android_ndk_version%': '<(android_ndk_version)',
           'host_os%': '<(host_os)',
           'os_folder_name%': '<(os_folder_name)',
 
@@ -308,6 +347,7 @@
         },
 
         # Copy conditionally-set variables out one scope.
+        'android_ndk_version%': '<(android_ndk_version)',
         'android_target_arch%': '<(android_target_arch)',
         'android_target_platform%': '<(android_target_platform)',
         'android_toolchain%': '<(android_toolchain)',
@@ -382,9 +422,6 @@
     # fpxx - compatibility mode, it chooses fp32 or fp64 depending on runtime
     #        detection
     'mips_fpu_mode%': 'fp32',
-
-    # Indicates if gcmole tools are downloaded by a hook.
-    'gcmole%': 0,
   },
   'target_defaults': {
     'variables': {
@@ -445,26 +482,6 @@
         # things when their commandline changes). Nothing should ever read this
         # define.
         'defines': ['CR_CLANG_REVISION=<!(python <(DEPTH)/tools/clang/scripts/update.py --print-revision)'],
-        'conditions': [
-          ['host_clang==1', {
-            'target_conditions': [
-              ['_toolset=="host"', {
-                'cflags+': [
-                  '-Wno-format-pedantic',
-                 ],
-              }],
-           ],
-          }],
-          ['clang==1', {
-            'target_conditions': [
-              ['_toolset=="target"', {
-                'cflags+': [
-                  '-Wno-format-pedantic',
-                 ],
-              }],
-           ],
-          }],
-        ],
       }],
       ['clang==1 and target_arch=="ia32"', {
         'cflags': ['-mstack-alignment=16', '-mstackrealign'],
@@ -654,6 +671,18 @@
               '-B<(base_dir)/third_party/binutils/Linux_x64/Release/bin',
             ],
           }],
+          ['sysroot!="" and clang==1', {
+            'target_conditions': [
+              ['_toolset=="target"', {
+                'cflags': [
+                  '--sysroot=<(sysroot)',
+                ],
+                'ldflags': [
+                  '--sysroot=<(sysroot)',
+                  '<!(<(DEPTH)/build/linux/sysroot_ld_path.sh <(sysroot))',
+                ],
+              }]]
+          }],
         ],
       },
     }],
@@ -707,7 +736,6 @@
           '-Wall',
           '<(werror)',
           '-Wno-unused-parameter',
-          '-Wno-long-long',
           '-pthread',
           '-pedantic',
           '-Wmissing-field-initializers',
@@ -959,10 +987,6 @@
                   # 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
@@ -1100,6 +1124,7 @@
               'HAVE_OFF64_T',
               'HAVE_SYS_UIO_H',
               'ANDROID_BINSIZE_HACK', # Enable temporary hacks to reduce binsize.
+              'ANDROID_NDK_VERSION=<(android_ndk_version)',
             ],
             'ldflags!': [
               '-pthread',  # Not supported by Android toolchain.
diff --git a/gypfiles/toolchain.gypi b/gypfiles/toolchain.gypi
index bc3ee5e..814d565 100644
--- a/gypfiles/toolchain.gypi
+++ b/gypfiles/toolchain.gypi
@@ -37,6 +37,8 @@
     'tsan%': 0,
     'ubsan%': 0,
     'ubsan_vptr%': 0,
+    'has_valgrind%': 0,
+    'coverage%': 0,
     'v8_target_arch%': '<(target_arch)',
     'v8_host_byteorder%': '<!(python -c "import sys; print sys.byteorder")',
     # Native Client builds currently use the V8 ARM JIT and
@@ -131,6 +133,9 @@
 
     # Link-Time Optimizations
     'use_lto%': 0,
+
+    # Indicates if gcmole tools are downloaded by a hook.
+    'gcmole%': 0,
   },
   'conditions': [
     ['host_arch=="ia32" or host_arch=="x64" or \
@@ -1084,6 +1089,7 @@
         'defines': [
           # Support for malloc(0)
           '_LINUX_SOURCE_COMPAT=1',
+          '__STDC_FORMAT_MACROS',
           '_ALL_SOURCE=1'],
         'conditions': [
           [ 'v8_target_arch=="ppc"', {
@@ -1091,7 +1097,7 @@
           }],
           [ 'v8_target_arch=="ppc64"', {
             'cflags': [ '-maix64' ],
-            'ldflags': [ '-maix64' ],
+            'ldflags': [ '-maix64 -Wl,-bbigtoc' ],
           }],
         ],
       }],
diff --git a/include/v8-debug.h b/include/v8-debug.h
index e41df29..6520cbe 100644
--- a/include/v8-debug.h
+++ b/include/v8-debug.h
@@ -125,6 +125,8 @@
      */
     virtual ClientData* GetClientData() const = 0;
 
+    virtual Isolate* GetIsolate() const = 0;
+
     virtual ~EventDetails() {}
   };
 
@@ -259,6 +261,11 @@
   V8_DEPRECATED("Use version with an Isolate",
                 static Local<Context> GetDebugContext());
 
+  /**
+   * While in the debug context, this method returns the top-most non-debug
+   * context, if it exists.
+   */
+  static MaybeLocal<Context> GetDebuggedContext(Isolate* isolate);
 
   /**
    * Enable/disable LiveEdit functionality for the given Isolate
diff --git a/include/v8-profiler.h b/include/v8-profiler.h
index 535e821..b2c1dc9 100644
--- a/include/v8-profiler.h
+++ b/include/v8-profiler.h
@@ -694,7 +694,6 @@
   HeapProfiler& operator=(const HeapProfiler&);
 };
 
-
 /**
  * Interface for providing information about embedder's objects
  * held by global handles. This information is reported in two ways:
@@ -709,7 +708,7 @@
  *     were not previously reported via AddObjectGroup.
  *
  * Thus, if an embedder wants to provide information about native
- * objects for heap snapshots, he can do it in a GC prologue
+ * objects for heap snapshots, it can do it in a GC prologue
  * handler, and / or by assigning wrapper class ids in the following way:
  *
  *  1. Bind a callback to class id by calling SetWrapperClassInfoProvider.
diff --git a/include/v8-version.h b/include/v8-version.h
index 2729045..4cde6ff 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 2
-#define V8_BUILD_NUMBER 361
-#define V8_PATCH_LEVEL 47
+#define V8_MINOR_VERSION 3
+#define V8_BUILD_NUMBER 332
+#define V8_PATCH_LEVEL 45
 
 // 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 3f02ce8..c62a1fd 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -1613,21 +1613,21 @@
 // A StateTag represents a possible state of the VM.
 enum StateTag { JS, GC, COMPILER, OTHER, EXTERNAL, IDLE };
 
-
 // A RegisterState represents the current state of registers used
 // by the sampling profiler API.
 struct RegisterState {
-  RegisterState() : pc(NULL), sp(NULL), fp(NULL) {}
+  RegisterState() : pc(nullptr), sp(nullptr), fp(nullptr) {}
   void* pc;  // Instruction pointer.
   void* sp;  // Stack pointer.
   void* fp;  // Frame pointer.
 };
 
-
 // The output structure filled up by GetStackSample API function.
 struct SampleInfo {
-  size_t frames_count;
-  StateTag vm_state;
+  size_t frames_count;            // Number of frames collected.
+  StateTag vm_state;              // Current VM state.
+  void* external_callback_entry;  // External callback address if VM is
+                                  // executing an external callback.
 };
 
 /**
@@ -1658,7 +1658,8 @@
    * \return The corresponding string if successfully stringified.
    */
   static V8_WARN_UNUSED_RESULT MaybeLocal<String> Stringify(
-      Local<Context> context, Local<Object> json_object);
+      Local<Context> context, Local<Object> json_object,
+      Local<String> gap = Local<String>());
 };
 
 
@@ -2631,6 +2632,21 @@
 };
 
 /**
+ * Keys/Properties filter enums:
+ *
+ * KeyCollectionMode limits the range of collected properties. kOwnOnly limits
+ * the collected properties to the given Object only. kIncludesPrototypes will
+ * include all keys of the objects's prototype chain as well.
+ */
+enum class KeyCollectionMode { kOwnOnly, kIncludePrototypes };
+
+/**
+ * kIncludesIndices allows for integer indices to be collected, while
+ * kSkipIndices will exclude integer indicies from being collected.
+ */
+enum class IndexFilter { kIncludeIndices, kSkipIndices };
+
+/**
  * Integrity level for objects.
  */
 enum class IntegrityLevel { kFrozen, kSealed };
@@ -2779,6 +2795,9 @@
   V8_DEPRECATE_SOON("Use maybe version", Local<Array> GetPropertyNames());
   V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetPropertyNames(
       Local<Context> context);
+  V8_WARN_UNUSED_RESULT MaybeLocal<Array> GetPropertyNames(
+      Local<Context> context, KeyCollectionMode mode,
+      PropertyFilter property_filter, IndexFilter index_filter);
 
   /**
    * This function has the same functionality as GetPropertyNames but
@@ -4367,28 +4386,6 @@
 typedef bool (*AccessCheckCallback)(Local<Context> accessing_context,
                                     Local<Object> accessed_object,
                                     Local<Value> data);
-typedef bool (*DeprecatedAccessCheckCallback)(Local<Context> accessing_context,
-                                              Local<Object> accessed_object);
-
-/**
- * Returns true if cross-context access should be allowed to the named
- * property with the given key on the host object.
- */
-typedef bool (*NamedSecurityCallback)(Local<Object> host,
-                                      Local<Value> key,
-                                      AccessType type,
-                                      Local<Value> data);
-
-
-/**
- * Returns true if cross-context access should be allowed to the indexed
- * property with the given index on the host object.
- */
-typedef bool (*IndexedSecurityCallback)(Local<Object> host,
-                                        uint32_t index,
-                                        AccessType type,
-                                        Local<Value> data);
-
 
 /**
  * A FunctionTemplate is used to create functions at runtime. There
@@ -4494,6 +4491,9 @@
       Local<Signature> signature = Local<Signature>(), int length = 0,
       ConstructorBehavior behavior = ConstructorBehavior::kAllow);
 
+  /** Get a template included in the snapshot by index. */
+  static Local<FunctionTemplate> FromSnapshot(Isolate* isolate, size_t index);
+
   /**
    * Creates a function template with a fast handler. If a fast handler is set,
    * the callback cannot be null.
@@ -4669,6 +4669,9 @@
       Local<FunctionTemplate> constructor = Local<FunctionTemplate>());
   static V8_DEPRECATED("Use isolate version", Local<ObjectTemplate> New());
 
+  /** Get a template included in the snapshot by index. */
+  static Local<ObjectTemplate> FromSnapshot(Isolate* isolate, size_t index);
+
   /** Creates a new instance of this template.*/
   V8_DEPRECATE_SOON("Use maybe version", Local<Object> NewInstance());
   V8_WARN_UNUSED_RESULT MaybeLocal<Object> NewInstance(Local<Context> context);
@@ -4799,16 +4802,18 @@
    */
   void SetAccessCheckCallback(AccessCheckCallback callback,
                               Local<Value> data = Local<Value>());
-  V8_DEPRECATED(
-      "Use SetAccessCheckCallback with new AccessCheckCallback signature.",
-      void SetAccessCheckCallback(DeprecatedAccessCheckCallback callback,
-                                  Local<Value> data = Local<Value>()));
 
-  V8_DEPRECATED(
-      "Use SetAccessCheckCallback instead",
-      void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,
-                                   IndexedSecurityCallback indexed_handler,
-                                   Local<Value> data = Local<Value>()));
+  /**
+   * Like SetAccessCheckCallback but invokes an interceptor on failed access
+   * checks instead of looking up all-can-read properties. You can only use
+   * either this method or SetAccessCheckCallback, but not both at the same
+   * time.
+   */
+  void SetAccessCheckCallbackAndHandler(
+      AccessCheckCallback callback,
+      const NamedPropertyHandlerConfiguration& named_handler,
+      const IndexedPropertyHandlerConfiguration& indexed_handler,
+      Local<Value> data = Local<Value>());
 
   /**
    * Gets the number of internal fields for objects generated from
@@ -5053,10 +5058,6 @@
     kAllocationActionAll = kAllocationActionAllocate | kAllocationActionFree
   };
 
-typedef void (*MemoryAllocationCallback)(ObjectSpace space,
-                                         AllocationAction action,
-                                         int size);
-
 // --- Enter/Leave Script Callback ---
 typedef void (*BeforeCallEnteredCallback)(Isolate*);
 typedef void (*CallCompletedCallback)(Isolate*);
@@ -5277,6 +5278,18 @@
   friend class Isolate;
 };
 
+class V8_EXPORT HeapCodeStatistics {
+ public:
+  HeapCodeStatistics();
+  size_t code_and_metadata_size() { return code_and_metadata_size_; }
+  size_t bytecode_and_metadata_size() { return bytecode_and_metadata_size_; }
+
+ private:
+  size_t code_and_metadata_size_;
+  size_t bytecode_and_metadata_size_;
+
+  friend class Isolate;
+};
 
 class RetainedObjectInfo;
 
@@ -5360,6 +5373,31 @@
 };
 
 /**
+ * Option flags passed to the SetRAILMode function.
+ * See documentation https://developers.google.com/web/tools/chrome-devtools/
+ * profile/evaluate-performance/rail
+ */
+enum RAILMode {
+  // Default performance mode: V8 will optimize for both latency and
+  // throughput in this mode.
+  PERFORMANCE_DEFAULT,
+  // Response performance mode: In this mode very low virtual machine latency
+  // is provided. V8 will try to avoid JavaScript execution interruptions.
+  // Throughput may be throttled.
+  PERFORMANCE_RESPONSE,
+  // Animation performance mode: In this mode low virtual machine latency is
+  // provided. V8 will try to avoid as many JavaScript execution interruptions
+  // as possible. Throughput may be throttled
+  PERFORMANCE_ANIMATION,
+  // Idle performance mode: The embedder is idle. V8 can complete deferred work
+  // in this mode.
+  PERFORMANCE_IDLE,
+  // Load performance mode: In this mode high throughput is provided. V8 may
+  // turn off latency optimizations.
+  PERFORMANCE_LOAD
+};
+
+/**
  * Option flags passed to the SetJitCodeEventHandler function.
  */
 enum JitCodeEventOptions {
@@ -5420,24 +5458,51 @@
  */
 class V8_EXPORT EmbedderHeapTracer {
  public:
+  enum ForceCompletionAction { FORCE_COMPLETION, DO_NOT_FORCE_COMPLETION };
+  struct AdvanceTracingActions {
+    explicit AdvanceTracingActions(ForceCompletionAction force_completion_)
+        : force_completion(force_completion_) {}
+
+    ForceCompletionAction force_completion;
+  };
+  /**
+   * V8 will call this method with internal fields of found wrappers.
+   * Embedder is expected to store them in it's marking deque and trace
+   * reachable wrappers from them when asked by AdvanceTracing method.
+   */
+  virtual void RegisterV8References(
+      const std::vector<std::pair<void*, void*> >& internal_fields) = 0;
   /**
    * V8 will call this method at the beginning of the gc cycle.
    */
   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.
+   * Embedder is expected to trace its heap starting from wrappers reported by
+   * RegisterV8References method, and call
+   * PersistentBase::RegisterExternalReference() on all reachable wrappers.
+   * Embedder is expected to stop tracing by the given deadline.
+   *
+   * Returns true if there is still work to do.
    */
-  virtual void TraceWrappersFrom(
-      const std::vector<std::pair<void*, void*> >& internal_fields) = 0;
+  virtual bool AdvanceTracing(double deadline_in_ms,
+                              AdvanceTracingActions actions) = 0;
   /**
    * V8 will call this method at the end of the gc cycle. Allocation is *not*
    * allowed in the TraceEpilogue.
    */
   virtual void TraceEpilogue() = 0;
 
+  /**
+   * Let embedder know v8 entered final marking pause (no more incremental steps
+   * will follow).
+   */
+  virtual void EnterFinalPause() {}
+
+  /**
+   * Throw away all intermediate data and reset to the initial state.
+   */
+  virtual void AbortTracing() {}
+
  protected:
   virtual ~EmbedderHeapTracer() = default;
 };
@@ -5457,20 +5522,21 @@
    */
   struct CreateParams {
     CreateParams()
-        : entry_hook(NULL),
-          code_event_handler(NULL),
-          snapshot_blob(NULL),
-          counter_lookup_callback(NULL),
-          create_histogram_callback(NULL),
-          add_histogram_sample_callback(NULL),
-          array_buffer_allocator(NULL) {}
+        : entry_hook(nullptr),
+          code_event_handler(nullptr),
+          snapshot_blob(nullptr),
+          counter_lookup_callback(nullptr),
+          create_histogram_callback(nullptr),
+          add_histogram_sample_callback(nullptr),
+          array_buffer_allocator(nullptr),
+          external_references(nullptr) {}
 
     /**
      * The optional entry_hook allows the host application to provide the
      * address of a function that's invoked on entry to every V8-generated
      * function.  Note that entry_hook is invoked at the very start of each
-     * generated function. Furthermore, if an  entry_hook is given, V8 will
-     * always run without a context snapshot.
+     * generated function. Furthermore, if an entry_hook is given, V8 will
+     * not use a snapshot, including custom snapshots.
      */
     FunctionEntryHook entry_hook;
 
@@ -5511,6 +5577,14 @@
      * store of ArrayBuffers.
      */
     ArrayBuffer::Allocator* array_buffer_allocator;
+
+    /**
+     * Specifies an optional nullptr-terminated array of raw addresses in the
+     * embedder that V8 can match against during serialization and use for
+     * deserialization. This array and its content must stay valid for the
+     * entire lifetime of the isolate.
+     */
+    intptr_t* external_references;
   };
 
 
@@ -5640,6 +5714,8 @@
     kRegExpPrototypeSourceGetter = 30,
     kRegExpPrototypeOldFlagGetter = 31,
     kDecimalWithLeadingZeroInStrictMode = 32,
+    kLegacyDateParser = 33,
+    kDefineGetterOrSetterWouldThrow = 34,
 
     // If you add new values here, you'll also need to update Chromium's:
     // UseCounter.h, V8PerIsolateData.cpp, histograms.xml
@@ -5784,6 +5860,15 @@
                                        size_t type_index);
 
   /**
+   * Get statistics about code and its metadata in the heap.
+   *
+   * \param object_statistics The HeapCodeStatistics object to fill in
+   *   statistics of code, bytecode and their metadata.
+   * \returns true on success.
+   */
+  bool GetHeapCodeAndMetadataStatistics(HeapCodeStatistics* object_statistics);
+
+  /**
    * Get a call stack sample from the isolate.
    * \param state Execution state.
    * \param frames Caller allocated buffer to store stack frames.
@@ -6161,6 +6246,15 @@
   void IsolateInBackgroundNotification();
 
   /**
+   * Optional notification to tell V8 the current performance requirements
+   * of the embedder based on RAIL.
+   * V8 uses these notifications to guide heuristics.
+   * This is an unfinished experimental feature. Semantics and implementation
+   * may change frequently.
+   */
+  void SetRAILMode(RAILMode rail_mode);
+
+  /**
    * Allows the host application to provide the address of a function that is
    * notified each time code is added, moved or removed.
    *
@@ -6256,22 +6350,6 @@
       StackTrace::StackTraceOptions options = StackTrace::kOverview);
 
   /**
-   * Enables the host application to provide a mechanism to be notified
-   * and perform custom logging when V8 Allocates Executable Memory.
-   */
-  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 V8_DEPRECATED(
-      "Use a combination of RequestInterrupt and GCCallback instead",
-      RemoveMemoryAllocationCallback(MemoryAllocationCallback callback));
-
-  /**
    * Iterates through all external resources referenced from current isolate
    * heap.  GC is not invoked prior to iterating, therefore there is no
    * guarantee that visited objects are still alive.
@@ -6300,6 +6378,12 @@
    */
   void VisitWeakHandles(PersistentHandleVisitor* visitor);
 
+  /**
+   * Check if this isolate is in use.
+   * True if at least one thread Enter'ed this isolate.
+   */
+  bool IsInUse();
+
  private:
   template <class K, class V, class Traits>
   friend class PersistentValueMapBase;
@@ -6625,7 +6709,24 @@
    * If V8 was compiled with the ICU data in an external file, the location
    * of the data file has to be provided.
    */
-  static bool InitializeICU(const char* icu_data_file = NULL);
+  V8_DEPRECATE_SOON(
+      "Use version with default location.",
+      static bool InitializeICU(const char* icu_data_file = nullptr));
+
+  /**
+   * Initialize the ICU library bundled with V8. The embedder should only
+   * invoke this method when using the bundled ICU. If V8 was compiled with
+   * the ICU data in an external file and when the default location of that
+   * file should be used, a path to the executable must be provided.
+   * Returns true on success.
+   *
+   * The default is a file called icudtl.dat side-by-side with the executable.
+   *
+   * Optionally, the location of the data file can be provided to override the
+   * default.
+   */
+  static bool InitializeICUDefaultLocation(const char* exec_path,
+                                           const char* icu_data_file = nullptr);
 
   /**
    * Initialize the external startup data. The embedder only needs to
@@ -6702,6 +6803,60 @@
   friend class Context;
 };
 
+/**
+ * Helper class to create a snapshot data blob.
+ */
+class SnapshotCreator {
+ public:
+  enum class FunctionCodeHandling { kClear, kKeep };
+
+  /**
+   * Create and enter an isolate, and set it up for serialization.
+   * The isolate is either created from scratch or from an existing snapshot.
+   * The caller keeps ownership of the argument snapshot.
+   * \param existing_blob existing snapshot from which to create this one.
+   * \param external_references a null-terminated array of external references
+   *        that must be equivalent to CreateParams::external_references.
+   */
+  SnapshotCreator(intptr_t* external_references = nullptr,
+                  StartupData* existing_blob = nullptr);
+
+  ~SnapshotCreator();
+
+  /**
+   * \returns the isolate prepared by the snapshot creator.
+   */
+  Isolate* GetIsolate();
+
+  /**
+   * Add a context to be included in the snapshot blob.
+   * \returns the index of the context in the snapshot blob.
+   */
+  size_t AddContext(Local<Context> context);
+
+  /**
+   * Add a template to be included in the snapshot blob.
+   * \returns the index of the template in the snapshot blob.
+   */
+  size_t AddTemplate(Local<Template> template_obj);
+
+  /**
+   * Created a snapshot data blob.
+   * This must not be called from within a handle scope.
+   * \param function_code_handling whether to include compiled function code
+   *        in the snapshot.
+   * \returns { nullptr, 0 } on failure, and a startup snapshot on success. The
+   *        caller acquires ownership of the data array in the return value.
+   */
+  StartupData CreateBlob(FunctionCodeHandling function_code_handling);
+
+ private:
+  void* data_;
+
+  // Disallow copying and assigning.
+  SnapshotCreator(const SnapshotCreator&);
+  void operator=(const SnapshotCreator&);
+};
 
 /**
  * A simple Maybe type, representing an object which may or may not have a
@@ -6988,7 +7143,8 @@
   static Local<Context> New(
       Isolate* isolate, ExtensionConfiguration* extensions = NULL,
       Local<ObjectTemplate> global_template = Local<ObjectTemplate>(),
-      Local<Value> global_object = Local<Value>());
+      Local<Value> global_object = Local<Value>(),
+      size_t context_snapshot_index = 0);
 
   /**
    * Sets the security token for the context.  To access an object in
@@ -7355,13 +7511,12 @@
   static const int kExternalOneByteRepresentationTag = 0x06;
 
   static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize;
-  static const int kAmountOfExternalAllocatedMemoryOffset =
-      4 * kApiPointerSize;
-  static const int kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset =
-      kAmountOfExternalAllocatedMemoryOffset + kApiInt64Size;
-  static const int kIsolateRootsOffset =
-      kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size +
-      kApiPointerSize;
+  static const int kExternalMemoryOffset = 4 * kApiPointerSize;
+  static const int kExternalMemoryLimitOffset =
+      kExternalMemoryOffset + kApiInt64Size;
+  static const int kIsolateRootsOffset = kExternalMemoryLimitOffset +
+                                         kApiInt64Size + kApiInt64Size +
+                                         kApiPointerSize + kApiPointerSize;
   static const int kUndefinedValueRootIndex = 4;
   static const int kTheHoleValueRootIndex = 5;
   static const int kNullValueRootIndex = 6;
@@ -7369,10 +7524,6 @@
   static const int kFalseValueRootIndex = 8;
   static const int kEmptyStringRootIndex = 9;
 
-  // The external allocation limit should be below 256 MB on all architectures
-  // to avoid that resource-constrained embedders run low on memory.
-  static const int kExternalAllocationLimit = 192 * 1024 * 1024;
-
   static const int kNodeClassIdOffset = 1 * kApiPointerSize;
   static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3;
   static const int kNodeStateMask = 0x7;
@@ -8567,21 +8718,16 @@
 int64_t Isolate::AdjustAmountOfExternalAllocatedMemory(
     int64_t change_in_bytes) {
   typedef internal::Internals I;
-  int64_t* amount_of_external_allocated_memory =
-      reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(this) +
-                                 I::kAmountOfExternalAllocatedMemoryOffset);
-  int64_t* amount_of_external_allocated_memory_at_last_global_gc =
-      reinterpret_cast<int64_t*>(
-          reinterpret_cast<uint8_t*>(this) +
-          I::kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset);
-  int64_t amount = *amount_of_external_allocated_memory + change_in_bytes;
-  if (change_in_bytes > 0 &&
-      amount - *amount_of_external_allocated_memory_at_last_global_gc >
-          I::kExternalAllocationLimit) {
+  int64_t* external_memory = reinterpret_cast<int64_t*>(
+      reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryOffset);
+  const int64_t external_memory_limit = *reinterpret_cast<int64_t*>(
+      reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryLimitOffset);
+  const int64_t amount = *external_memory + change_in_bytes;
+  *external_memory = amount;
+  if (change_in_bytes > 0 && amount > external_memory_limit) {
     ReportExternalAllocationLimitReached();
   }
-  *amount_of_external_allocated_memory = amount;
-  return *amount_of_external_allocated_memory;
+  return *external_memory;
 }
 
 
diff --git a/infra/config/cq.cfg b/infra/config/cq.cfg
index 5622b01..4c42cf6 100644
--- a/infra/config/cq.cfg
+++ b/infra/config/cq.cfg
@@ -25,7 +25,7 @@
 
   try_job {
     buckets {
-      name: "tryserver.v8"
+      name: "master.tryserver.v8"
       builders { name: "v8_android_arm_compile_rel" }
       builders { name: "v8_linux64_asan_rel_ng" }
       builders {
diff --git a/infra/mb/PRESUBMIT.py b/infra/mb/PRESUBMIT.py
new file mode 100644
index 0000000..39d15e8
--- /dev/null
+++ b/infra/mb/PRESUBMIT.py
@@ -0,0 +1,35 @@
+# Copyright 2016 the V8 project authors. All rights reserved.
+# Copyright (c) 2016 The WebRTC 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 in the root of the source
+# tree. An additional intellectual property rights grant can be found
+# in the file PATENTS.  All contributing project authors may
+# be found in the AUTHORS file in the root of the source tree.
+
+
+def _CommonChecks(input_api, output_api):
+  results = []
+
+  # Validate the format of the mb_config.pyl file.
+  mb_script = input_api.os_path.join(input_api.PresubmitLocalPath(), '..',
+                                     '..', 'tools', 'mb', 'mb.py')
+  mb_config_path = input_api.os_path.join(input_api.PresubmitLocalPath(),
+                                          'mb_config.pyl')
+  cmd = [input_api.python_executable, mb_script, 'validate', '--config-file',
+         mb_config_path]
+  kwargs = {'cwd': input_api.PresubmitLocalPath()}
+  results.extend(input_api.RunTests([
+      input_api.Command(name='mb_validate',
+                        cmd=cmd, kwargs=kwargs,
+                        message=output_api.PresubmitError)]))
+
+  return results
+
+
+def CheckChangeOnUpload(input_api, output_api):
+  return _CommonChecks(input_api, output_api)
+
+
+def CheckChangeOnCommit(input_api, output_api):
+  return _CommonChecks(input_api, output_api)
diff --git a/infra/mb/mb_config.pyl b/infra/mb/mb_config.pyl
new file mode 100644
index 0000000..e290ccc
--- /dev/null
+++ b/infra/mb/mb_config.pyl
@@ -0,0 +1,619 @@
+# 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 is a map of buildbot master names -> buildbot builder names ->
+  # config names (where each config name is a key in the 'configs' dict,
+  # below). MB uses this dict to look up which config to use for a given bot.
+  # Bots are ordered by appearance on waterfall.
+  'masters': {
+    'client.dart.fyi': {
+      'v8-linux-release': 'gyp_release_x86_disassembler',
+      'v8-win-release': 'gyp_release_x86_disassembler',
+      'v8-mac-release': 'gyp_release_x86_disassembler',
+    },
+    'client.dynamorio': {
+      'linux-v8-dr': 'gyp_release_x64',
+    },
+    'client.v8': {
+      # Linux.
+      'V8 Linux - builder': 'gyp_release_x86_gcmole',
+      'V8 Linux - debug builder': 'gyp_debug_x86',
+      'V8 Linux - nosnap builder': 'gyp_release_x86_no_snap',
+      'V8 Linux - nosnap debug builder': 'gyp_debug_x86_no_snap',
+      'V8 Linux - shared': 'gyp_release_x86_shared_verify_heap',
+      'V8 Linux - noi18n - debug': 'gyp_debug_x86_no_i18n',
+      # Linux64.
+      'V8 Linux64 - builder': 'gyp_release_x64',
+      'V8 Linux64 - debug builder': 'gyp_debug_x64_valgrind',
+      'V8 Linux64 - custom snapshot - debug builder': 'gyp_debug_x64_custom',
+      'V8 Linux64 - internal snapshot': 'gyp_release_x64_internal',
+      # Windows.
+      'V8 Win32 - builder': 'gyp_release_x86_minimal_symbols',
+      'V8 Win32 - debug builder': 'gyp_debug_x86_minimal_symbols',
+      'V8 Win32 - nosnap - shared':
+        'gyp_release_x86_no_snap_shared_minimal_symbols',
+      'V8 Win64': 'gyp_release_x64_minimal_symbols',
+      'V8 Win64 - debug': 'gyp_debug_x64_minimal_symbols',
+      'V8 Win64 - clang': 'gyp_release_x64_clang',
+      # Mac.
+      'V8 Mac': 'gyp_release_x86',
+      'V8 Mac - debug': 'gyp_debug_x86',
+      'V8 Mac64': 'gyp_release_x64',
+      'V8 Mac64 - debug': 'gyp_debug_x64',
+      'V8 Mac GC Stress': 'gyp_debug_x86',
+      'V8 Mac64 ASAN': 'gyp_release_x64_asan',
+      # Sanitizers.
+      'V8 Linux64 ASAN': 'gyp_release_x64_asan',
+      'V8 Linux64 TSAN': 'gyp_release_x64_tsan',
+      'V8 Linux - arm64 - sim - MSAN': 'gyp_release_simulate_arm64_msan',
+      # Clusterfuzz.
+      'V8 Linux64 ASAN no inline - release builder':
+          'gyp_release_x64_asan_symbolized_edge_verify_heap',
+      'V8 Linux64 ASAN - debug builder': 'gyp_debug_x64_asan_edge',
+      'V8 Linux64 ASAN arm64 - debug builder':
+          'gyp_debug_simulate_arm64_asan_edge',
+      'V8 Linux ASAN arm - debug builder':
+          'gyp_debug_simulate_arm_asan_edge',
+      'V8 Linux ASAN mipsel - debug builder':
+          'gyp_debug_simulate_mipsel_asan_edge',
+      # Misc.
+      'V8 Linux gcc 4.8': 'gyp_release_x86_gcc',
+      # FYI.
+      'V8 Linux - swarming staging': 'gn_release_x64',
+      # TODO(machenbach): Figure out if symbolized is still needed. The
+      # original config also specified -O1, which we dropped because chromium
+      # doesn't have it (anymore).
+      'V8 Linux64 - cfi': 'gyp_release_x64_cfi_symbolized',
+      'V8 Linux - vtunejit': 'gyp_debug_x86_vtunejit',
+      'V8 Linux64 - gcov coverage': 'gyp_release_x64_gcc_coverage',
+      'V8 Linux - predictable': 'gyp_release_x86_predictable',
+      'V8 Linux - full debug': 'gyp_full_debug_x86',
+      'V8 Linux - interpreted regexp': 'gyp_release_x86_interpreted_regexp',
+      'V8 Random Deopt Fuzzer - debug': 'gyp_debug_x86',
+    },
+
+    'client.v8.ports': {
+      # Arm.
+      'V8 Arm - builder': 'gyp_release_arm',
+      'V8 Arm - debug builder': 'gyp_debug_arm',
+      'V8 Android Arm - builder': 'gyp_release_android_arm',
+      'V8 Linux - arm - sim': 'gyp_release_simulate_arm',
+      'V8 Linux - arm - sim - debug': 'gyp_debug_simulate_arm',
+      # Arm64.
+      'V8 Android Arm64 - builder': 'gyp_release_android_arm64',
+      'V8 Linux - arm64 - sim': 'gyp_release_simulate_arm64',
+      'V8 Linux - arm64 - sim - debug': 'gyp_debug_simulate_arm64',
+      'V8 Linux - arm64 - sim - nosnap - debug':
+          'gyp_debug_simulate_arm64_no_snap',
+      'V8 Linux - arm64 - sim - gc stress': 'gyp_debug_simulate_arm64',
+      # Mips.
+      'V8 Mips - builder': 'gyp_release_mips_no_snap_no_i18n',
+      'V8 Linux - mipsel - sim - builder': 'gyp_release_simulate_mipsel',
+      'V8 Linux - mips64el - sim - builder': 'gyp_release_simulate_mips64el',
+      # PPC.
+      'V8 Linux - ppc - sim': 'gyp_release_simulate_ppc',
+      'V8 Linux - ppc64 - sim': 'gyp_release_simulate_ppc64',
+      # S390.
+      'V8 Linux - s390 - sim': 'gyp_release_simulate_s390',
+      'V8 Linux - s390x - sim': 'gyp_release_simulate_s390x',
+      # X87.
+      'V8 Linux - x87 - nosnap - debug builder':
+          'gyp_debug_simulate_x87_no_snap',
+    },
+    'client.v8.branches': {
+      'V8 Linux - beta branch': 'gyp_release_x86',
+      'V8 Linux - beta branch - debug': 'gyp_debug_x86',
+      'V8 Linux - stable branch': 'gyp_release_x86',
+      'V8 Linux - stable branch - debug': 'gyp_debug_x86',
+      'V8 Linux64 - beta branch': 'gyp_release_x64',
+      'V8 Linux64 - beta branch - debug': 'gyp_debug_x64',
+      'V8 Linux64 - stable branch': 'gyp_release_x64',
+      'V8 Linux64 - stable branch - debug': 'gyp_debug_x64',
+      'V8 arm - sim - beta branch': 'gyp_release_simulate_arm',
+      'V8 arm - sim - beta branch - debug': 'gyp_debug_simulate_arm',
+      'V8 arm - sim - stable branch': 'gyp_release_simulate_arm',
+      'V8 arm - sim - stable branch - debug': 'gyp_debug_simulate_arm',
+      'V8 mips64el - sim - beta branch': 'gyp_release_simulate_mips64el',
+      'V8 mips64el - sim - stable branch': 'gyp_release_simulate_mips64el',
+      'V8 mipsel - sim - beta branch': 'gyp_release_simulate_mipsel',
+      'V8 mipsel - sim - stable branch': 'gyp_release_simulate_mipsel',
+      'V8 ppc - sim - beta branch': 'gyp_release_simulate_ppc',
+      'V8 ppc - sim - stable branch': 'gyp_release_simulate_ppc',
+      'V8 ppc64 - sim - beta branch': 'gyp_release_simulate_ppc64',
+      'V8 ppc64 - sim - stable branch': 'gyp_release_simulate_ppc64',
+      'V8 s390 - sim - beta branch': 'gyp_release_simulate_s390',
+      'V8 s390 - sim - stable branch': 'gyp_release_simulate_s390',
+      'V8 s390x - sim - beta branch': 'gyp_release_simulate_s390x',
+      'V8 s390x - sim - stable branch': 'gyp_release_simulate_s390x',
+    },
+    'tryserver.v8': {
+      'v8_linux_rel_ng': 'gyp_release_x86_gcmole_trybot',
+      'v8_linux_avx2_dbg': 'gyp_debug_x86_trybot',
+      'v8_linux_nodcheck_rel_ng': 'gyp_release_x86_minimal_symbols',
+      'v8_linux_dbg_ng': 'gyp_debug_x86_trybot',
+      'v8_linux_noi18n_rel_ng': 'gyp_release_x86_no_i18n_trybot',
+      'v8_linux_gc_stress_dbg': 'gyp_debug_x86_trybot',
+      'v8_linux_nosnap_rel': 'gyp_release_x86_no_snap_trybot',
+      'v8_linux_nosnap_dbg': 'gyp_debug_x86_no_snap_trybot',
+      'v8_linux_gcc_compile_rel': 'gyp_release_x86_gcc_minimal_symbols',
+      'v8_linux_gcc_rel': 'gyp_release_x86_gcc_minimal_symbols',
+      'v8_linux64_rel_ng': 'gyp_release_x64_trybot',
+      'v8_linux64_avx2_rel_ng': 'gyp_release_x64_trybot',
+      'v8_linux64_avx2_dbg': 'gyp_debug_x64_trybot',
+      'v8_linux64_asan_rel_ng': 'gyp_release_x64_asan_minimal_symbols',
+      'v8_linux64_msan_rel': 'gyp_release_simulate_arm64_msan_minimal_symbols',
+      'v8_linux64_sanitizer_coverage_rel':
+          'gyp_release_x64_asan_minimal_symbols_coverage',
+      'v8_linux64_tsan_rel': 'gyp_release_x64_tsan_minimal_symbols',
+      'v8_win_dbg': 'gyp_debug_x86_trybot',
+      'v8_win_compile_dbg': 'gyp_debug_x86_trybot',
+      'v8_win_rel_ng': 'gyp_release_x86_trybot',
+      'v8_win_nosnap_shared_rel_ng':
+        'gyp_release_x86_no_snap_shared_minimal_symbols',
+      'v8_win64_dbg': 'gyp_debug_x64_minimal_symbols',
+      'v8_win64_rel_ng': 'gyp_release_x64_trybot',
+      'v8_mac_rel_ng': 'gyp_release_x86_trybot',
+      'v8_mac_dbg': 'gyp_debug_x86_trybot',
+      'v8_mac_gc_stress_dbg': 'gyp_debug_x86_trybot',
+      'v8_mac64_rel': 'gyp_release_x64_trybot',
+      'v8_mac64_dbg': 'gyp_debug_x64_minimal_symbols',
+      'v8_mac64_asan_rel': 'gyp_release_x64_asan',
+      'v8_linux_arm_rel_ng': 'gyp_release_simulate_arm_trybot',
+      'v8_linux_arm_dbg': 'gyp_debug_simulate_arm',
+      'v8_linux_arm_armv8a_rel': 'gyp_release_simulate_arm_trybot',
+      'v8_linux_arm_armv8a_dbg': 'gyp_debug_simulate_arm',
+      'v8_linux_arm64_rel_ng': 'gyp_release_simulate_arm64_trybot',
+      'v8_linux_arm64_dbg': 'gyp_debug_simulate_arm64',
+      'v8_linux_arm64_gc_stress_dbg': 'gyp_debug_simulate_arm64',
+      'v8_linux_mipsel_compile_rel': 'gyp_release_simulate_mipsel',
+      'v8_linux_mips64el_compile_rel': 'gyp_release_simulate_mips64el',
+      'v8_android_arm_compile_rel': 'gyp_release_android_arm',
+    },
+  },
+
+
+  # To ease readability, config values are ordered by:
+  # gyp/gn, release/debug, arch type, other values alphabetically.
+  'configs': {
+    # GN release configs for x64.
+    'gn_release_x64': [
+      'gn', 'release_bot', 'x64', 'swarming'],
+
+    # Gyp debug configs for arm.
+    'gyp_debug_arm': [
+      'gyp', 'debug_bot', 'arm', 'crosscompile', 'hard_float', 'swarming'],
+
+    # Gyp debug configs for simulators.
+    'gyp_debug_simulate_arm': [
+      'gyp', 'debug_bot', 'simulate_arm', 'swarming'],
+    'gyp_debug_simulate_arm_asan_edge': [
+      'gyp', 'debug_bot', 'simulate_arm', 'asan', 'edge'],
+    'gyp_debug_simulate_arm64': [
+      'gyp', 'debug_bot', 'simulate_arm64', 'swarming'],
+    'gyp_debug_simulate_arm64_asan_edge': [
+      'gyp', 'debug_bot', 'simulate_arm64', 'asan', 'lsan', 'edge'],
+    'gyp_debug_simulate_arm64_no_snap': [
+      'gyp', 'debug_bot', 'simulate_arm64', 'swarming', 'v8_snapshot_none'],
+    'gyp_debug_simulate_mipsel_asan_edge': [
+      'gyp', 'debug_bot', 'simulate_mipsel', 'asan', 'edge'],
+    'gyp_debug_simulate_x87_no_snap': [
+      'gyp', 'debug_bot', 'simulate_x87', 'v8_snapshot_none'],
+
+    # Gyp debug configs for x64.
+    'gyp_debug_x64': [
+      'gyp', 'debug_bot', 'x64', 'swarming'],
+    'gyp_debug_x64_asan_edge': [
+      'gyp', 'debug_bot', 'x64', 'asan', 'lsan', 'edge'],
+    'gyp_debug_x64_custom': [
+      'gyp', 'debug_bot', 'x64', 'swarming', 'v8_snapshot_custom'],
+    'gyp_debug_x64_minimal_symbols': [
+      'gyp', 'debug_bot', 'x64', 'minimal_symbols', 'swarming'],
+    'gyp_debug_x64_trybot': [
+      'gyp', 'debug_trybot', 'x64', 'swarming'],
+    'gyp_debug_x64_valgrind': [
+      'gyp', 'debug_bot', 'x64', 'swarming', 'valgrind'],
+
+    # Gyp debug configs for x86.
+    'gyp_debug_x86': [
+      'gyp', 'debug_bot', 'x86', 'swarming'],
+    'gyp_debug_x86_minimal_symbols': [
+      'gyp', 'debug_bot', 'x86', 'minimal_symbols', 'swarming'],
+    'gyp_debug_x86_trybot': [
+      'gyp', 'debug_trybot', 'x86', 'swarming'],
+    'gyp_debug_x86_no_i18n': [
+      'gyp', 'debug_bot', 'x86', 'v8_no_i18n'],
+    'gyp_debug_x86_no_snap': [
+      'gyp', 'debug_bot', 'x86', 'swarming', 'v8_snapshot_none'],
+    'gyp_debug_x86_no_snap_trybot': [
+      'gyp', 'debug_trybot', 'x86', 'swarming', 'v8_snapshot_none'],
+    'gyp_debug_x86_vtunejit': [
+      'gyp', 'debug_bot', 'x86', 'v8_enable_vtunejit'],
+    'gyp_full_debug_x86': [
+      'gyp', 'debug', 'x86', 'goma', 'static', 'v8_enable_slow_dchecks',
+      'v8_full_debug'],
+
+    # Gyp release configs for arm.
+    'gyp_release_arm': [
+      'gyp', 'release_bot', 'arm', 'crosscompile', 'hard_float', 'swarming'],
+    'gyp_release_android_arm': [
+      'gyp', 'release_bot', 'arm', 'android', 'crosscompile', 'swarming'],
+    'gyp_release_android_arm64': [
+      'gyp', 'release_bot', 'arm64', 'android', 'crosscompile', 'swarming'],
+
+    # Gyp release configs for mips.
+    'gyp_release_mips_no_snap_no_i18n': [
+      'gyp', 'release', 'mips', 'crosscompile', 'static', 'v8_no_i18n',
+      'v8_snapshot_none'],
+
+    # Gyp release configs for simulators.
+    'gyp_release_simulate_arm': [
+      'gyp', 'release_bot', 'simulate_arm', 'swarming'],
+    'gyp_release_simulate_arm_trybot': [
+      'gyp', 'release_trybot', 'simulate_arm', 'swarming'],
+    'gyp_release_simulate_arm64': [
+      'gyp', 'release_bot', 'simulate_arm64', 'swarming'],
+    'gyp_release_simulate_arm64_msan': [
+      'gyp', 'release_bot', 'simulate_arm64', 'msan', 'swarming'],
+    'gyp_release_simulate_arm64_msan_minimal_symbols': [
+      'gyp', 'release_bot', 'simulate_arm64', 'msan', 'minimal_symbols',
+      'swarming'],
+    'gyp_release_simulate_arm64_trybot': [
+      'gyp', 'release_trybot', 'simulate_arm64', 'swarming'],
+    'gyp_release_simulate_mipsel': [
+      'gyp', 'release_bot', 'simulate_mipsel', 'swarming'],
+    'gyp_release_simulate_mips64el': [
+      'gyp', 'release_bot', 'simulate_mips64el', 'swarming'],
+    'gyp_release_simulate_ppc': [
+      'gyp', 'release_bot', 'simulate_ppc', 'swarming'],
+    'gyp_release_simulate_ppc64': [
+      'gyp', 'release_bot', 'simulate_ppc64', 'swarming'],
+    'gyp_release_simulate_s390': [
+      'gyp', 'release_bot', 'simulate_s390', 'swarming'],
+    'gyp_release_simulate_s390x': [
+      'gyp', 'release_bot', 'simulate_s390x', 'swarming'],
+
+    # Gyp release configs for x64.
+    'gyp_release_x64': [
+      'gyp', 'release_bot', 'x64', 'swarming'],
+    'gyp_release_x64_asan': [
+      'gyp', 'release_bot', 'x64', 'asan', 'lsan', 'swarming'],
+    'gyp_release_x64_asan_minimal_symbols': [
+      'gyp', 'release_bot', 'x64', 'asan', 'lsan', 'minimal_symbols',
+      'swarming'],
+    'gyp_release_x64_asan_minimal_symbols_coverage': [
+      'gyp', 'release_bot', 'x64', 'asan', 'bb', 'coverage', 'lsan',
+      'minimal_symbols', 'swarming'],
+    'gyp_release_x64_asan_symbolized_edge_verify_heap': [
+      'gyp', 'release_bot', 'x64', 'asan', 'edge', 'lsan', 'symbolized',
+      'v8_verify_heap'],
+    'gyp_release_x64_cfi_symbolized': [
+      'gyp', 'release_bot', 'x64', 'cfi', 'swarming', 'symbolized'],
+    'gyp_release_x64_clang': [
+      'gyp', 'release_bot', 'x64', 'clang', 'swarming'],
+    'gyp_release_x64_gcc_coverage': [
+      'gyp', 'release_bot', 'x64', 'coverage', 'gcc'],
+    'gyp_release_x64_minimal_symbols': [
+      'gyp', 'release_bot', 'x64', 'minimal_symbols', 'swarming'],
+    'gyp_release_x64_tsan': [
+      'gyp', 'release_bot', 'x64', 'tsan', 'swarming'],
+    'gyp_release_x64_tsan_minimal_symbols': [
+      'gyp', 'release_bot', 'x64', 'tsan', 'minimal_symbols', 'swarming'],
+    'gyp_release_x64_internal': [
+      'gyp', 'release_bot', 'x64', 'swarming', 'v8_snapshot_internal'],
+    'gyp_release_x64_trybot': [
+      'gyp', 'release_trybot', 'x64', 'swarming'],
+
+    # Gyp release configs for x86.
+    'gyp_release_x86': [
+      'gyp', 'release_bot', 'x86', 'swarming'],
+    'gyp_release_x86_disassembler': [
+      'gyp', 'release_bot', 'x86', 'v8_enable_disassembler'],
+    'gyp_release_x86_gcc': [
+      'gyp', 'release_bot', 'x86', 'gcc'],
+    'gyp_release_x86_gcc_minimal_symbols': [
+      'gyp', 'release_bot', 'x86', 'gcc', 'minimal_symbols'],
+    'gyp_release_x86_interpreted_regexp': [
+      'gyp', 'release_bot', 'x86', 'v8_interpreted_regexp'],
+    'gyp_release_x86_gcmole': [
+      'gyp', 'release_bot', 'x86', 'gcmole', 'swarming'],
+    'gyp_release_x86_gcmole_trybot': [
+      'gyp', 'release_trybot', 'x86', 'gcmole', 'swarming'],
+    'gyp_release_x86_minimal_symbols': [
+      'gyp', 'release_bot', 'x86', 'minimal_symbols', 'swarming'],
+    'gyp_release_x86_no_i18n_trybot': [
+      'gyp', 'release_trybot', 'x86', 'swarming', 'v8_no_i18n'],
+    'gyp_release_x86_no_snap': [
+      'gyp', 'release_bot', 'x86', 'swarming', 'v8_snapshot_none'],
+    'gyp_release_x86_no_snap_shared_minimal_symbols': [
+      'gyp', 'release_bot', 'x86', 'minimal_symbols', 'shared', 'swarming',
+      'v8_snapshot_none'],
+    'gyp_release_x86_no_snap_trybot': [
+      'gyp', 'release_trybot', 'x86', 'swarming', 'v8_snapshot_none'],
+    'gyp_release_x86_predictable': [
+      'gyp', 'release_bot', 'x86', 'v8_enable_verify_predictable'],
+    'gyp_release_x86_shared_verify_heap': [
+      'gyp', 'release_bot', 'x86', 'shared', 'swarming', 'v8_verify_heap'],
+    'gyp_release_x86_trybot': [
+      'gyp', 'release_trybot', 'x86', 'swarming'],
+  },
+
+  'mixins': {
+    'android': {
+      'gn_args': 'target_os="android"',
+      'gyp_defines': 'OS=android',
+    },
+
+    'arm': {
+      'gn_args': 'target_cpu="arm"',
+      'gyp_defines': 'target_arch=arm',
+    },
+
+    'arm64': {
+      'gn_args': 'target_cpu="arm64"',
+      'gyp_defines': 'target_arch=arm64',
+    },
+
+    'asan': {
+      'gn_args': 'clang=true asan=true',
+      'gyp_defines': 'clang=1 asan=1',
+    },
+
+    'bb': {
+      'gn_args': 'sanitizer_coverage_flags="bb"',
+      'gyp_defines': 'sanitizer_coverage=bb',
+    },
+
+    'cfi': {
+      'gn_args': 'is_cfi=true use_cfi_diag=true',
+      'gyp_defines': 'cfi_vptr=1 cfi_diag=1',
+    },
+
+    'clang': {
+      'gn_args': 'clang=true',
+      'gyp_defines': 'clang=1',
+    },
+
+    'coverage': {
+      # TODO(machenbach): Add this to gn.
+      'gyp_defines': 'coverage=1',
+    },
+
+    'crosscompile': {
+      'gyp_crosscompile': True,
+    },
+
+    'dcheck_always_on': {
+      'gn_args': 'dcheck_always_on=true',
+      'gyp_defines': 'dcheck_always_on=1',
+    },
+
+    'debug': {
+      'gn_args': 'is_debug=true',
+    },
+
+    'debug_bot': {
+      'mixins': [
+        'debug', 'static', 'goma', 'v8_enable_slow_dchecks',
+        'v8_optimized_debug'],
+    },
+
+    'debug_trybot': {
+      'mixins': ['debug_bot', 'minimal_symbols'],
+    },
+
+    'edge': {
+      'gn_args': 'sanitizer_coverage_flags="edge"',
+      'gyp_defines': 'sanitizer_coverage=edge',
+    },
+
+    'gcc': {
+      'gn_args': 'clang=false',
+      'gyp_defines': 'clang=0',
+    },
+
+    'gcmole': {
+      # TODO(machenbach): Add this to gn.
+      'gn_args': 'gcmole=true',
+      'gyp_defines': 'gcmole=1',
+    },
+
+    'gn': {'type': 'gn'},
+
+    'goma': {
+      # The MB code will properly escape goma_dir if necessary in the GYP
+      # code path; the GN code path needs no escaping.
+      'gn_args': 'use_goma=true',
+      'gyp_defines': 'use_goma=1',
+    },
+
+    'gyp': {'type': 'gyp'},
+
+    'hard_float': {
+      'gn_args': 'arm_float_abi="hard"',
+      'gyp_defines': 'arm_float_abi=hard',
+    },
+
+    'lsan': {
+      'gn_args': 'lsan=true',
+      'gyp_defines': 'lsan=1',
+    },
+
+    'minimal_symbols': {
+      'gn_args': 'symbol_level=1',
+      'gyp_defines': 'fastbuild=1',
+    },
+
+    'mips': {
+      'gn_args': 'target_cpu="mips"',
+      'gyp_defines': 'target_arch=mips',
+    },
+
+    'msan': {
+      'gn_args': 'clang=true msan=true',
+      'gyp_defines': 'clang=1 msan=1',
+    },
+
+    'release': {
+      'gn_args': 'is_debug=false',
+    },
+
+    'release_bot': {
+      'mixins': ['release', 'static', 'goma'],
+    },
+
+    'release_trybot': {
+      'mixins': ['release_bot', 'minimal_symbols', 'dcheck_always_on'],
+    },
+
+    'shared': {
+      'gn_args': 'is_component_build=true',
+      'gyp_defines': 'component=shared_library',
+    },
+
+    'simulate_arm': {
+      'gn_args': 'target_cpu="ia32" v8_target_cpu="arm"',
+      'gyp_defines': 'target_arch=ia32 v8_target_arch=arm',
+    },
+
+    'simulate_arm64': {
+      'gn_args': 'target_cpu="x64" v8_target_cpu="arm64"',
+      'gyp_defines': 'target_arch=x64 v8_target_arch=arm64',
+    },
+
+    'simulate_mipsel': {
+      'gn_args': 'target_cpu="ia32" v8_target_cpu="mipsel"',
+      'gyp_defines': 'target_arch=ia32 v8_target_arch=mipsel',
+    },
+
+    'simulate_mips64el': {
+      'gn_args': 'target_cpu="x64" v8_target_cpu="mips64el"',
+      'gyp_defines': 'target_arch=x64 v8_target_arch=mips64el',
+    },
+
+    'simulate_ppc': {
+      'gn_args': 'target_cpu="ia32" v8_target_cpu="ppc"',
+      'gyp_defines': 'target_arch=ia32 v8_target_arch=ppc',
+    },
+
+    'simulate_ppc64': {
+      'gn_args': 'target_cpu="x64" v8_target_cpu="ppc64"',
+      'gyp_defines': 'target_arch=x64 v8_target_arch=ppc64',
+    },
+
+    'simulate_s390': {
+      'gn_args': 'target_cpu="ia32" v8_target_cpu="s390"',
+      'gyp_defines': 'target_arch=ia32 v8_target_arch=s390',
+    },
+
+    'simulate_s390x': {
+      'gn_args': 'target_cpu="x64" v8_target_cpu="s390x"',
+      'gyp_defines': 'target_arch=x64 v8_target_arch=s390x',
+    },
+
+    'simulate_x87': {
+      'gn_args': 'target_cpu="ia32" v8_target_cpu="x87"',
+      'gyp_defines': 'target_arch=ia32 v8_target_arch=x87',
+    },
+
+    'static': {
+      'gn_args': 'is_component_build=false',
+      'gyp_defines': 'component=static_library',
+    },
+
+    'swarming': {
+      'gn_args': 'v8_test_isolation_mode="prepare"',
+      'gyp_defines': 'test_isolation_mode=prepare',
+    },
+
+    # TODO(machenbach): Remove the symbolized config after the bots are  gone.
+    'symbolized': {
+      'gn_args': 'symbolized=true',
+      'gyp_defines':
+        'release_extra_cflags="-fno-inline-functions -fno-inline"',
+    },
+
+    'tsan': {
+      'gn_args': 'clang=true tsan=true',
+      'gyp_defines': 'clang=1 tsan=1',
+    },
+
+    'valgrind': {
+      # TODO(machenbach): Add this to gn.
+      'gn_args': 'has_valgrind=true',
+      'gyp_defines': 'has_valgrind=1',
+    },
+
+    'v8_no_i18n': {
+      'gn_args': 'v8_enable_i18n_support=false',
+      'gyp_defines': 'v8_enable_i18n_support=0',
+    },
+
+    'v8_enable_disassembler': {
+      'gn_args': 'v8_enable_disassembler=true',
+      'gyp_defines': 'v8_enable_disassembler=1',
+    },
+
+    'v8_enable_slow_dchecks': {
+      'gn_args': 'v8_enable_slow_dchecks=true',
+      'gyp_defines': 'v8_enable_slow_dchecks=1',
+    },
+
+    'v8_enable_verify_predictable': {
+      'gn_args': 'v8_enable_verify_predictable=true',
+      'gyp_defines': 'v8_enable_verify_predictable=1',
+    },
+
+    'v8_enable_vtunejit': {
+      'gn_args': 'v8_enable_vtunejit=true',
+      'gyp_defines': 'v8_enable_vtunejit=1',
+    },
+
+    'v8_full_debug': {
+      'gn_args': 'v8_optimized_debug=false',
+      'gyp_defines': 'v8_optimized_debug=0',
+    },
+
+    'v8_interpreted_regexp': {
+      'gn_args': 'v8_interpreted_regexp=true',
+      'gyp_defines': 'v8_interpreted_regexp=1',
+    },
+
+    'v8_optimized_debug': {
+      # This is the default in gn for debug.
+      'gyp_defines': 'v8_optimized_debug=1',
+    },
+
+    'v8_snapshot_custom': {
+      # TODO(machenbach): Add this to gn.
+      # Path needs to be relative to src/v8.gyp.
+      'gyp_defines': 'embed_script=../test/mjsunit/mjsunit.js',
+    },
+
+    'v8_snapshot_internal': {
+      'gn_args': 'v8_use_external_startup_data=false',
+      'gyp_defines': 'v8_use_external_startup_data=0',
+    },
+
+    'v8_snapshot_none': {
+      'gn_args': 'v8_use_snapshot=false',
+      'gyp_defines': 'v8_use_snapshot=false',
+    },
+
+    'v8_verify_heap': {
+      'gn_args': 'v8_enable_verify_heap=true',
+      'gyp_defines': 'v8_enable_verify_heap=1',
+    },
+
+    'x64': {
+      'gn_args': 'target_cpu="x64"',
+      'gyp_defines': 'target_arch=x64',
+    },
+
+    'x86': {
+      'gn_args': 'target_cpu="x86"',
+      'gyp_defines': 'target_arch=ia32',
+    },
+  },
+}
diff --git a/samples/hello-world.cc b/samples/hello-world.cc
index 3b952d8..902d8d5 100644
--- a/samples/hello-world.cc
+++ b/samples/hello-world.cc
@@ -24,7 +24,7 @@
 
 int main(int argc, char* argv[]) {
   // Initialize V8.
-  V8::InitializeICU();
+  V8::InitializeICUDefaultLocation(argv[0]);
   V8::InitializeExternalStartupData(argv[0]);
   Platform* platform = platform::CreateDefaultPlatform();
   V8::InitializePlatform(platform);
diff --git a/samples/process.cc b/samples/process.cc
index cfbd054..54c8376 100644
--- a/samples/process.cc
+++ b/samples/process.cc
@@ -687,7 +687,7 @@
 
 
 int main(int argc, char* argv[]) {
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation(argv[0]);
   v8::V8::InitializeExternalStartupData(argv[0]);
   v8::Platform* platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform);
diff --git a/samples/shell.cc b/samples/shell.cc
index b89ffdd..ad9b1ab 100644
--- a/samples/shell.cc
+++ b/samples/shell.cc
@@ -75,7 +75,7 @@
 
 
 int main(int argc, char* argv[]) {
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation(argv[0]);
   v8::V8::InitializeExternalStartupData(argv[0]);
   v8::Platform* platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform);
diff --git a/snapshot_toolchain.gni b/snapshot_toolchain.gni
index 4932110..ccee7ff 100644
--- a/snapshot_toolchain.gni
+++ b/snapshot_toolchain.gni
@@ -25,22 +25,52 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# The snapshot needs to be compiled for the host, but compiled with
-# a toolchain that matches the bit-width of the target.
+declare_args() {
+  # The snapshot needs to be compiled for the host, but compiled with
+  # a toolchain that matches the bit-width of the target.
+  v8_snapshot_toolchain = ""
+}
 
 # TODO(GYP): For now we only support 32-bit little-endian target builds from an
 # x64 Linux host. Eventually we need to support all of the host/target
 # configurations v8 runs on.
-if (host_cpu == "x64" && host_os == "linux") {
-  if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") {
-    snapshot_toolchain = "//build/toolchain/linux:clang_x86"
-  } else if (target_cpu == "x64" || target_cpu == "arm64" || target_cpu == "mips64el") {
-    snapshot_toolchain = "//build/toolchain/linux:clang_x64"
+if (v8_snapshot_toolchain == "") {
+  if (host_cpu == "x64" && host_os == "linux") {
+    if (target_cpu == "arm" || target_cpu == "mipsel" || target_cpu == "x86") {
+      if (target_os == "android" || is_clang) {
+        v8_snapshot_toolchain = "//build/toolchain/linux:clang_x86"
+      } else if (target_os == "chromeos") {
+        # TODO(dpranke): crbug.com/608596: Remove this clause once the
+        # CrOS ebuilds are setting v8_snapshot_toolchain directly and
+        # we've cleaned up the sysroot settings in //build.
+        v8_snapshot_toolchain = "//build/toolchain/linux:clang_x86"
+      } else {
+        v8_snapshot_toolchain = "//build/toolchain/linux:x86"
+      }
+
+    } else if (target_cpu == "x64" || target_cpu == "arm64" ||
+               target_cpu == "mips64el") {
+      if (target_os == "android" || is_clang) {
+        v8_snapshot_toolchain = "//build/toolchain/linux:clang_x64"
+      } else if (target_os == "chromeos") {
+        # TODO(dpranke): crbug.com/608596: Remove this clause once the
+        # CrOS ebuilds are setting v8_snapshot_toolchain directly and
+        # we've cleaned up the sysroot settings in //build.
+        v8_snapshot_toolchain = "//build/toolchain/linux:clang_x64"
+      } else {
+        v8_snapshot_toolchain = "//build/toolchain/linux:x64"
+      }
+    } else {
+      assert(false, "Need environment for this arch: $target_cpu")
+    }
+  } else if (host_os == "mac" && target_os == "win") {
+    v8_snapshot_toolchain = "//build/toolchain/mac:clang_$target_cpu"
   } else {
-    assert(false, "Need environment for this arch: $target_cpu")
+    v8_snapshot_toolchain = default_toolchain
   }
-} else {
-  snapshot_toolchain = default_toolchain
 }
 
-
+# TODO(dpranke): snapshot_toolchain is provided for backwards compatibility
+# and should be removed once all callers are updated to refer to
+# v8_snapshot_toolchain directly.
+snapshot_toolchain = v8_snapshot_toolchain
diff --git a/src/accessors.cc b/src/accessors.cc
index 8b8753b..74238eb 100644
--- a/src/accessors.cc
+++ b/src/accessors.cc
@@ -86,23 +86,6 @@
 }
 
 
-bool Accessors::IsJSArrayBufferViewFieldAccessor(Handle<Map> map,
-                                                 Handle<Name> name,
-                                                 int* object_offset) {
-  DCHECK(name->IsUniqueName());
-  Isolate* isolate = name->GetIsolate();
-
-  switch (map->instance_type()) {
-    case JS_DATA_VIEW_TYPE:
-      return CheckForName(name, isolate->factory()->byte_length_string(),
-                          JSDataView::kByteLengthOffset, object_offset) ||
-             CheckForName(name, isolate->factory()->byte_offset_string(),
-                          JSDataView::kByteOffsetOffset, object_offset);
-    default:
-      return false;
-  }
-}
-
 namespace {
 
 MUST_USE_RESULT MaybeHandle<Object> ReplaceAccessorWithDataProperty(
@@ -588,7 +571,7 @@
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
   Handle<Object> result = isolate->factory()->undefined_value();
-  if (!script->eval_from_shared()->IsUndefined()) {
+  if (!script->eval_from_shared()->IsUndefined(isolate)) {
     Handle<SharedFunctionInfo> eval_from_shared(
         SharedFunctionInfo::cast(script->eval_from_shared()));
     if (eval_from_shared->script()->IsScript()) {
@@ -654,11 +637,11 @@
   Handle<Script> script(
       Script::cast(Handle<JSValue>::cast(object)->value()), isolate);
   Handle<Object> result = isolate->factory()->undefined_value();
-  if (!script->eval_from_shared()->IsUndefined()) {
+  if (!script->eval_from_shared()->IsUndefined(isolate)) {
     Handle<SharedFunctionInfo> shared(
         SharedFunctionInfo::cast(script->eval_from_shared()));
     // Find the name of the function calling eval.
-    if (!shared->name()->IsUndefined()) {
+    if (!shared->name()->IsUndefined(isolate)) {
       result = Handle<Object>(shared->name(), isolate);
     } else {
       result = Handle<Object>(shared->inferred_name(), isolate);
@@ -1149,7 +1132,7 @@
     return;
   }
   Object* value = context->get(slot);
-  if (value->IsTheHole()) {
+  if (value->IsTheHole(isolate)) {
     Handle<Name> name = v8::Utils::OpenHandle(*property);
 
     Handle<Object> exception = isolate->factory()->NewReferenceError(
diff --git a/src/accessors.h b/src/accessors.h
index 6a99934..7863c5a 100644
--- a/src/accessors.h
+++ b/src/accessors.h
@@ -95,14 +95,6 @@
   static bool IsJSObjectFieldAccessor(Handle<Map> map, Handle<Name> name,
                                       int* object_offset);
 
-  // Returns true for properties that are accessors to ArrayBufferView and
-  // derived classes fields. If true, *object_offset contains offset of
-  // object field. The caller still has to check whether the underlying
-  // buffer was neutered.
-  static bool IsJSArrayBufferViewFieldAccessor(Handle<Map> map,
-                                               Handle<Name> name,
-                                               int* object_offset);
-
   static Handle<AccessorInfo> MakeAccessor(
       Isolate* isolate,
       Handle<Name> name,
diff --git a/src/address-map.cc b/src/address-map.cc
index 86558e0..61292bf 100644
--- a/src/address-map.cc
+++ b/src/address-map.cc
@@ -13,7 +13,7 @@
 RootIndexMap::RootIndexMap(Isolate* isolate) {
   map_ = isolate->root_index_map();
   if (map_ != NULL) return;
-  map_ = new HashMap(HashMap::PointersMatch);
+  map_ = new base::HashMap(base::HashMap::PointersMatch);
   for (uint32_t i = 0; i < Heap::kStrongRootListLength; i++) {
     Heap::RootListIndex root_index = static_cast<Heap::RootListIndex>(i);
     Object* root = isolate->heap()->root(root_index);
@@ -22,7 +22,7 @@
     // not be referenced through the root list in the snapshot.
     if (isolate->heap()->RootCanBeTreatedAsConstant(root_index)) {
       HeapObject* heap_object = HeapObject::cast(root);
-      HashMap::Entry* entry = LookupEntry(map_, heap_object, false);
+      base::HashMap::Entry* entry = LookupEntry(map_, heap_object, false);
       if (entry != NULL) {
         // Some are initialized to a previous value in the root list.
         DCHECK_LT(GetValue(entry), i);
diff --git a/src/address-map.h b/src/address-map.h
index 017fc5d..ce21705 100644
--- a/src/address-map.h
+++ b/src/address-map.h
@@ -6,7 +6,7 @@
 #define V8_ADDRESS_MAP_H_
 
 #include "src/assert-scope.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/objects.h"
 
 namespace v8 {
@@ -14,16 +14,17 @@
 
 class AddressMapBase {
  protected:
-  static void SetValue(HashMap::Entry* entry, uint32_t v) {
+  static void SetValue(base::HashMap::Entry* entry, uint32_t v) {
     entry->value = reinterpret_cast<void*>(v);
   }
 
-  static uint32_t GetValue(HashMap::Entry* entry) {
+  static uint32_t GetValue(base::HashMap::Entry* entry) {
     return static_cast<uint32_t>(reinterpret_cast<intptr_t>(entry->value));
   }
 
-  inline static HashMap::Entry* LookupEntry(HashMap* map, HeapObject* obj,
-                                            bool insert) {
+  inline static base::HashMap::Entry* LookupEntry(base::HashMap* map,
+                                                  HeapObject* obj,
+                                                  bool insert) {
     if (insert) {
       map->LookupOrInsert(Key(obj), Hash(obj));
     }
@@ -47,13 +48,13 @@
   static const int kInvalidRootIndex = -1;
 
   int Lookup(HeapObject* obj) {
-    HashMap::Entry* entry = LookupEntry(map_, obj, false);
+    base::HashMap::Entry* entry = LookupEntry(map_, obj, false);
     if (entry) return GetValue(entry);
     return kInvalidRootIndex;
   }
 
  private:
-  HashMap* map_;
+  base::HashMap* map_;
 
   DISALLOW_COPY_AND_ASSIGN(RootIndexMap);
 };
@@ -180,18 +181,18 @@
  public:
   SerializerReferenceMap()
       : no_allocation_(),
-        map_(HashMap::PointersMatch),
+        map_(base::HashMap::PointersMatch),
         attached_reference_index_(0) {}
 
   SerializerReference Lookup(HeapObject* obj) {
-    HashMap::Entry* entry = LookupEntry(&map_, obj, false);
+    base::HashMap::Entry* entry = LookupEntry(&map_, obj, false);
     return entry ? SerializerReference(GetValue(entry)) : SerializerReference();
   }
 
   void Add(HeapObject* obj, SerializerReference b) {
     DCHECK(b.is_valid());
     DCHECK_NULL(LookupEntry(&map_, obj, false));
-    HashMap::Entry* entry = LookupEntry(&map_, obj, true);
+    base::HashMap::Entry* entry = LookupEntry(&map_, obj, true);
     SetValue(entry, b.bitfield_);
   }
 
@@ -204,7 +205,7 @@
 
  private:
   DisallowHeapAllocation no_allocation_;
-  HashMap map_;
+  base::HashMap map_;
   int attached_reference_index_;
   DISALLOW_COPY_AND_ASSIGN(SerializerReferenceMap);
 };
diff --git a/src/api-arguments-inl.h b/src/api-arguments-inl.h
new file mode 100644
index 0000000..89ac7de
--- /dev/null
+++ b/src/api-arguments-inl.h
@@ -0,0 +1,105 @@
+// 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/api-arguments.h"
+
+#include "src/tracing/trace-event.h"
+#include "src/vm-state-inl.h"
+
+namespace v8 {
+namespace internal {
+
+#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F)                  \
+  F(AccessorNameGetterCallback, "get", v8::Value, Object)          \
+  F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \
+  F(GenericNamedPropertyDeleterCallback, "delete", v8::Boolean, Object)
+
+#define WRITE_CALL_1_NAME(Function, type, ApiReturn, InternalReturn)          \
+  Handle<InternalReturn> PropertyCallbackArguments::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());                            \
+    LOG(isolate,                                                              \
+        ApiNamedPropertyAccess("interceptor-named-" type, holder(), *name));  \
+    f(v8::Utils::ToLocal(name), info);                                        \
+    return GetReturnValue<InternalReturn>(isolate);                           \
+  }
+
+FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME)
+
+#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME
+#undef WRITE_CALL_1_NAME
+
+#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(F)            \
+  F(IndexedPropertyGetterCallback, "get", v8::Value, Object)  \
+  F(IndexedPropertyQueryCallback, "has", v8::Integer, Object) \
+  F(IndexedPropertyDeleterCallback, "delete", v8::Boolean, Object)
+
+#define WRITE_CALL_1_INDEX(Function, type, ApiReturn, InternalReturn)      \
+  Handle<InternalReturn> PropertyCallbackArguments::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());                         \
+    LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" type,     \
+                                          holder(), index));               \
+    f(index, info);                                                        \
+    return GetReturnValue<InternalReturn>(isolate);                        \
+  }
+
+FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(WRITE_CALL_1_INDEX)
+
+#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX
+#undef WRITE_CALL_1_INDEX
+
+Handle<Object> PropertyCallbackArguments::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());
+  LOG(isolate,
+      ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
+  f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
+  return GetReturnValue<Object>(isolate);
+}
+
+Handle<Object> PropertyCallbackArguments::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());
+  LOG(isolate,
+      ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index));
+  f(index, v8::Utils::ToLocal(value), info);
+  return GetReturnValue<Object>(isolate);
+}
+
+void PropertyCallbackArguments::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());
+  LOG(isolate,
+      ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
+  f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/api-arguments.cc b/src/api-arguments.cc
index 71a0f60..f8d6c8f 100644
--- a/src/api-arguments.cc
+++ b/src/api-arguments.cc
@@ -4,6 +4,9 @@
 
 #include "src/api-arguments.h"
 
+#include "src/tracing/trace-event.h"
+#include "src/vm-state-inl.h"
+
 namespace v8 {
 namespace internal {
 
diff --git a/src/api-arguments.h b/src/api-arguments.h
index 57a2d98..0dfe618 100644
--- a/src/api-arguments.h
+++ b/src/api-arguments.h
@@ -7,8 +7,6 @@
 
 #include "src/api.h"
 #include "src/isolate.h"
-#include "src/tracing/trace-event.h"
-#include "src/vm-state-inl.h"
 
 namespace v8 {
 namespace internal {
@@ -58,7 +56,7 @@
   // Check the ReturnValue.
   Object** handle = &this->begin()[kReturnValueOffset];
   // Nothing was set, return empty handle as per previous behaviour.
-  if ((*handle)->IsTheHole()) return Handle<V>();
+  if ((*handle)->IsTheHole(isolate)) return Handle<V>();
   Handle<V> result = Handle<V>::cast(Handle<Object>(handle));
   result->VerifyApiCallResultType();
   return result;
@@ -108,92 +106,24 @@
  */
   Handle<JSObject> Call(IndexedPropertyEnumeratorCallback f);
 
-#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(F)                  \
-  F(AccessorNameGetterCallback, "get", v8::Value, Object)          \
-  F(GenericNamedPropertyQueryCallback, "has", v8::Integer, Object) \
-  F(GenericNamedPropertyDeleterCallback, "delete", v8::Boolean, Object)
+  inline Handle<Object> Call(AccessorNameGetterCallback f, Handle<Name> name);
+  inline Handle<Object> Call(GenericNamedPropertyQueryCallback f,
+                             Handle<Name> name);
+  inline Handle<Object> Call(GenericNamedPropertyDeleterCallback f,
+                             Handle<Name> name);
 
-#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());                           \
-    LOG(isolate,                                                             \
-        ApiNamedPropertyAccess("interceptor-named-" type, holder(), *name)); \
-    f(v8::Utils::ToLocal(name), info);                                       \
-    return GetReturnValue<InternalReturn>(isolate);                          \
-  }
+  inline Handle<Object> Call(IndexedPropertyGetterCallback f, uint32_t index);
+  inline Handle<Object> Call(IndexedPropertyQueryCallback f, uint32_t index);
+  inline Handle<Object> Call(IndexedPropertyDeleterCallback f, uint32_t index);
 
-  FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME(WRITE_CALL_1_NAME)
+  inline Handle<Object> Call(GenericNamedPropertySetterCallback f,
+                             Handle<Name> name, Handle<Object> value);
 
-#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_NAME
-#undef WRITE_CALL_1_NAME
+  inline Handle<Object> Call(IndexedPropertySetterCallback f, uint32_t index,
+                             Handle<Object> value);
 
-#define FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(F)            \
-  F(IndexedPropertyGetterCallback, "get", v8::Value, Object)  \
-  F(IndexedPropertyQueryCallback, "has", v8::Integer, Object) \
-  F(IndexedPropertyDeleterCallback, "delete", v8::Boolean, Object)
-
-#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());                     \
-    LOG(isolate, ApiIndexedPropertyAccess("interceptor-indexed-" type, \
-                                          holder(), index));           \
-    f(index, info);                                                    \
-    return GetReturnValue<InternalReturn>(isolate);                    \
-  }
-
-  FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX(WRITE_CALL_1_INDEX)
-
-#undef FOR_EACH_CALLBACK_TABLE_MAPPING_1_INDEX
-#undef WRITE_CALL_1_INDEX
-
-  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());
-    LOG(isolate,
-        ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
-    f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
-    return GetReturnValue<Object>(isolate);
-  }
-
-  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());
-    LOG(isolate,
-        ApiIndexedPropertyAccess("interceptor-indexed-set", holder(), index));
-    f(index, v8::Utils::ToLocal(value), info);
-    return GetReturnValue<Object>(isolate);
-  }
-
-  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());
-    LOG(isolate,
-        ApiNamedPropertyAccess("interceptor-named-set", holder(), *name));
-    f(v8::Utils::ToLocal(name), v8::Utils::ToLocal(value), info);
-  }
+  inline void Call(AccessorNameSetterCallback f, Handle<Name> name,
+                   Handle<Object> value);
 
  private:
   inline JSObject* holder() {
diff --git a/src/api-natives.cc b/src/api-natives.cc
index fcd19cc..f09f42d 100644
--- a/src/api-natives.cc
+++ b/src/api-natives.cc
@@ -156,20 +156,25 @@
 // Returns parent function template or null.
 FunctionTemplateInfo* GetParent(FunctionTemplateInfo* data) {
   Object* parent = data->parent_template();
-  return parent->IsUndefined() ? nullptr : FunctionTemplateInfo::cast(parent);
+  return parent->IsUndefined(data->GetIsolate())
+             ? nullptr
+             : FunctionTemplateInfo::cast(parent);
 }
 
 // Starting from given object template's constructor walk up the inheritance
 // chain till a function template that has an instance template is found.
 ObjectTemplateInfo* GetParent(ObjectTemplateInfo* data) {
   Object* maybe_ctor = data->constructor();
-  if (maybe_ctor->IsUndefined()) return nullptr;
+  Isolate* isolate = data->GetIsolate();
+  if (maybe_ctor->IsUndefined(isolate)) return nullptr;
   FunctionTemplateInfo* ctor = FunctionTemplateInfo::cast(maybe_ctor);
   while (true) {
     ctor = GetParent(ctor);
     if (ctor == nullptr) return nullptr;
     Object* maybe_obj = ctor->instance_template();
-    if (!maybe_obj->IsUndefined()) return ObjectTemplateInfo::cast(maybe_obj);
+    if (!maybe_obj->IsUndefined(isolate)) {
+      return ObjectTemplateInfo::cast(maybe_obj);
+    }
   }
 }
 
@@ -185,9 +190,9 @@
   int max_number_of_properties = 0;
   TemplateInfoT* info = *data;
   while (info != nullptr) {
-    if (!info->property_accessors()->IsUndefined()) {
+    if (!info->property_accessors()->IsUndefined(isolate)) {
       Object* props = info->property_accessors();
-      if (!props->IsUndefined()) {
+      if (!props->IsUndefined(isolate)) {
         Handle<Object> props_handle(props, isolate);
         NeanderArray props_array(props_handle);
         max_number_of_properties += props_array.length();
@@ -205,7 +210,7 @@
     info = *data;
     while (info != nullptr) {
       // Accumulate accessors.
-      if (!info->property_accessors()->IsUndefined()) {
+      if (!info->property_accessors()->IsUndefined(isolate)) {
         Handle<Object> props(info->property_accessors(), isolate);
         valid_descriptors =
             AccessorInfo::AppendUnique(props, array, valid_descriptors);
@@ -221,7 +226,7 @@
   }
 
   auto property_list = handle(data->property_list(), isolate);
-  if (property_list->IsUndefined()) return obj;
+  if (property_list->IsUndefined(isolate)) return obj;
   // TODO(dcarney): just use a FixedArray here.
   NeanderArray properties(property_list);
   if (properties.length() == 0) return obj;
@@ -282,7 +287,7 @@
   Handle<Object> result =
       UnseededNumberDictionary::DeleteProperty(cache, entry);
   USE(result);
-  DCHECK(result->IsTrue());
+  DCHECK(result->IsTrue(isolate));
   auto new_cache = UnseededNumberDictionary::Shrink(cache, entry);
   isolate->native_context()->set_template_instantiations_cache(*new_cache);
 }
@@ -323,7 +328,7 @@
 
   if (constructor.is_null()) {
     Handle<Object> cons(info->constructor(), isolate);
-    if (cons->IsUndefined()) {
+    if (cons->IsUndefined(isolate)) {
       constructor = isolate->object_function();
     } else {
       auto cons_templ = Handle<FunctionTemplateInfo>::cast(cons);
@@ -371,7 +376,7 @@
   Handle<JSObject> prototype;
   if (!data->remove_prototype()) {
     auto prototype_templ = handle(data->prototype_template(), isolate);
-    if (prototype_templ->IsUndefined()) {
+    if (prototype_templ->IsUndefined(isolate)) {
       prototype = isolate->factory()->NewJSObject(isolate->object_function());
     } else {
       ASSIGN_RETURN_ON_EXCEPTION(
@@ -382,7 +387,7 @@
           JSFunction);
     }
     auto parent = handle(data->parent_template(), isolate);
-    if (!parent->IsUndefined()) {
+    if (!parent->IsUndefined(isolate)) {
       Handle<JSFunction> parent_instance;
       ASSIGN_RETURN_ON_EXCEPTION(
           isolate, parent_instance,
@@ -445,7 +450,7 @@
 void AddPropertyToPropertyList(Isolate* isolate, Handle<TemplateInfo> templ,
                                int length, Handle<Object>* data) {
   auto list = handle(templ->property_list(), isolate);
-  if (list->IsUndefined()) {
+  if (list->IsUndefined(isolate)) {
     list = NeanderArray(isolate).value();
     templ->set_property_list(*list);
   }
@@ -520,7 +525,7 @@
                                        Handle<TemplateInfo> info,
                                        Handle<AccessorInfo> property) {
   auto list = handle(info->property_accessors(), isolate);
-  if (list->IsUndefined()) {
+  if (list->IsUndefined(isolate)) {
     list = NeanderArray(isolate).value();
     info->set_property_accessors(*list);
   }
@@ -532,95 +537,77 @@
 Handle<JSFunction> ApiNatives::CreateApiFunction(
     Isolate* isolate, Handle<FunctionTemplateInfo> obj,
     Handle<Object> prototype, ApiInstanceType instance_type) {
-  Handle<Code> code;
-  if (obj->call_code()->IsCallHandlerInfo() &&
-      CallHandlerInfo::cast(obj->call_code())->fast_handler()->IsCode()) {
-    code = isolate->builtins()->HandleFastApiCall();
-  } else {
-    code = isolate->builtins()->HandleApiCall();
-  }
-  Handle<Code> construct_stub =
-      prototype.is_null() ? isolate->builtins()->ConstructedNonConstructable()
-                          : isolate->builtins()->JSConstructStubApi();
-
-  obj->set_instantiated(true);
-  Handle<JSFunction> result;
-  if (obj->remove_prototype()) {
-    result = isolate->factory()->NewFunctionWithoutPrototype(
-        isolate->factory()->empty_string(), code);
-  } else {
-    int internal_field_count = 0;
-    if (!obj->instance_template()->IsUndefined()) {
-      Handle<ObjectTemplateInfo> instance_template = Handle<ObjectTemplateInfo>(
-          ObjectTemplateInfo::cast(obj->instance_template()));
-      internal_field_count =
-          Smi::cast(instance_template->internal_field_count())->value();
-    }
-
-    // TODO(svenpanne) Kill ApiInstanceType and refactor things by generalizing
-    // JSObject::GetHeaderSize.
-    int instance_size = kPointerSize * internal_field_count;
-    InstanceType type;
-    switch (instance_type) {
-      case JavaScriptObjectType:
-        if (!obj->needs_access_check() &&
-            obj->named_property_handler()->IsUndefined() &&
-            obj->indexed_property_handler()->IsUndefined()) {
-          type = JS_API_OBJECT_TYPE;
-        } else {
-          type = JS_SPECIAL_API_OBJECT_TYPE;
-        }
-        instance_size += JSObject::kHeaderSize;
-        break;
-      case GlobalObjectType:
-        type = JS_GLOBAL_OBJECT_TYPE;
-        instance_size += JSGlobalObject::kSize;
-        break;
-      case GlobalProxyType:
-        type = JS_GLOBAL_PROXY_TYPE;
-        instance_size += JSGlobalProxy::kSize;
-        break;
-      default:
-        UNREACHABLE();
-        type = JS_OBJECT_TYPE;  // Keep the compiler happy.
-        break;
-    }
-
-    result = isolate->factory()->NewFunction(
-        isolate->factory()->empty_string(), code, prototype, type,
-        instance_size, obj->read_only_prototype(), true);
-  }
-
-  result->shared()->set_length(obj->length());
-  Handle<Object> class_name(obj->class_name(), isolate);
-  if (class_name->IsString()) {
-    result->shared()->set_instance_class_name(*class_name);
-    result->shared()->set_name(*class_name);
-  }
-  result->shared()->set_api_func_data(*obj);
-  result->shared()->set_construct_stub(*construct_stub);
-  result->shared()->DontAdaptArguments();
+  Handle<SharedFunctionInfo> shared =
+      FunctionTemplateInfo::GetOrCreateSharedFunctionInfo(isolate, obj);
+  Handle<JSFunction> result =
+      isolate->factory()->NewFunctionFromSharedFunctionInfo(
+          shared, isolate->native_context());
 
   if (obj->remove_prototype()) {
+    result->set_map(*isolate->sloppy_function_without_prototype_map());
+    DCHECK(prototype.is_null());
     DCHECK(result->shared()->IsApiFunction());
     DCHECK(!result->has_initial_map());
     DCHECK(!result->has_prototype());
+    DCHECK(!result->IsConstructor());
     return result;
   }
 
-#ifdef DEBUG
-  LookupIterator it(handle(JSObject::cast(result->prototype())),
-                    isolate->factory()->constructor_string(),
-                    LookupIterator::OWN_SKIP_INTERCEPTOR);
-  MaybeHandle<Object> maybe_prop = Object::GetProperty(&it);
-  DCHECK(it.IsFound());
-  DCHECK(maybe_prop.ToHandleChecked().is_identical_to(result));
-#endif
-
   // Down from here is only valid for API functions that can be used as a
   // constructor (don't set the "remove prototype" flag).
 
-  Handle<Map> map(result->initial_map());
+  if (obj->read_only_prototype()) {
+    result->set_map(*isolate->sloppy_function_with_readonly_prototype_map());
+  }
+
+  if (prototype->IsTheHole(isolate)) {
+    prototype = isolate->factory()->NewFunctionPrototype(result);
+  } else {
+    JSObject::AddProperty(Handle<JSObject>::cast(prototype),
+                          isolate->factory()->constructor_string(), result,
+                          DONT_ENUM);
+  }
+
+  int internal_field_count = 0;
+  if (!obj->instance_template()->IsUndefined(isolate)) {
+    Handle<ObjectTemplateInfo> instance_template = Handle<ObjectTemplateInfo>(
+        ObjectTemplateInfo::cast(obj->instance_template()));
+    internal_field_count =
+        Smi::cast(instance_template->internal_field_count())->value();
+  }
+
+  // TODO(svenpanne) Kill ApiInstanceType and refactor things by generalizing
+  // JSObject::GetHeaderSize.
+  int instance_size = kPointerSize * internal_field_count;
+  InstanceType type;
+  switch (instance_type) {
+    case JavaScriptObjectType:
+      if (!obj->needs_access_check() &&
+          obj->named_property_handler()->IsUndefined(isolate) &&
+          obj->indexed_property_handler()->IsUndefined(isolate)) {
+        type = JS_API_OBJECT_TYPE;
+      } else {
+        type = JS_SPECIAL_API_OBJECT_TYPE;
+      }
+      instance_size += JSObject::kHeaderSize;
+      break;
+    case GlobalObjectType:
+      type = JS_GLOBAL_OBJECT_TYPE;
+      instance_size += JSGlobalObject::kSize;
+      break;
+    case GlobalProxyType:
+      type = JS_GLOBAL_PROXY_TYPE;
+      instance_size += JSGlobalProxy::kSize;
+      break;
+    default:
+      UNREACHABLE();
+      type = JS_OBJECT_TYPE;  // Keep the compiler happy.
+      break;
+  }
+
+  Handle<Map> map =
+      isolate->factory()->NewMap(type, instance_size, FAST_HOLEY_SMI_ELEMENTS);
+  JSFunction::SetInitialMap(result, map, Handle<JSObject>::cast(prototype));
 
   // Mark as undetectable if needed.
   if (obj->undetectable()) {
@@ -633,20 +620,19 @@
   }
 
   // Set interceptor information in the map.
-  if (!obj->named_property_handler()->IsUndefined()) {
+  if (!obj->named_property_handler()->IsUndefined(isolate)) {
     map->set_has_named_interceptor();
   }
-  if (!obj->indexed_property_handler()->IsUndefined()) {
+  if (!obj->indexed_property_handler()->IsUndefined(isolate)) {
     map->set_has_indexed_interceptor();
   }
 
   // Mark instance as callable in the map.
-  if (!obj->instance_call_handler()->IsUndefined()) {
+  if (!obj->instance_call_handler()->IsUndefined(isolate)) {
     map->set_is_callable();
     map->set_is_constructor(true);
   }
 
-  DCHECK(result->shared()->IsApiFunction());
   return result;
 }
 
diff --git a/src/api.cc b/src/api.cc
index f757d1d..04d8cb3 100644
--- a/src/api.cc
+++ b/src/api.cc
@@ -15,6 +15,7 @@
 #include "include/v8-experimental.h"
 #include "include/v8-profiler.h"
 #include "include/v8-testing.h"
+#include "include/v8-util.h"
 #include "src/accessors.h"
 #include "src/api-experimental.h"
 #include "src/api-natives.h"
@@ -40,6 +41,7 @@
 #include "src/icu_util.h"
 #include "src/isolate-inl.h"
 #include "src/json-parser.h"
+#include "src/json-stringifier.h"
 #include "src/messages.h"
 #include "src/parsing/parser.h"
 #include "src/parsing/scanner-character-streams.h"
@@ -382,91 +384,159 @@
   return true;
 }
 
-StartupData SerializeIsolateAndContext(
-    Isolate* isolate, Persistent<Context>* context,
-    i::Snapshot::Metadata metadata,
-    i::StartupSerializer::FunctionCodeHandling function_code_handling) {
-  if (context->IsEmpty()) return {NULL, 0};
+struct SnapshotCreatorData {
+  explicit SnapshotCreatorData(Isolate* isolate)
+      : isolate_(isolate),
+        contexts_(isolate),
+        templates_(isolate),
+        created_(false) {}
 
-  i::Isolate* internal_isolate = reinterpret_cast<i::Isolate*>(isolate);
+  static SnapshotCreatorData* cast(void* data) {
+    return reinterpret_cast<SnapshotCreatorData*>(data);
+  }
+
+  ArrayBufferAllocator allocator_;
+  Isolate* isolate_;
+  PersistentValueVector<Context> contexts_;
+  PersistentValueVector<Template> templates_;
+  bool created_;
+};
+
+}  // namespace
+
+SnapshotCreator::SnapshotCreator(intptr_t* external_references,
+                                 StartupData* existing_snapshot) {
+  i::Isolate* internal_isolate = new i::Isolate(true);
+  Isolate* isolate = reinterpret_cast<Isolate*>(internal_isolate);
+  SnapshotCreatorData* data = new SnapshotCreatorData(isolate);
+  data->isolate_ = isolate;
+  internal_isolate->set_array_buffer_allocator(&data->allocator_);
+  internal_isolate->set_api_external_references(external_references);
+  isolate->Enter();
+  if (existing_snapshot) {
+    internal_isolate->set_snapshot_blob(existing_snapshot);
+    i::Snapshot::Initialize(internal_isolate);
+  } else {
+    internal_isolate->Init(nullptr);
+  }
+  data_ = data;
+}
+
+SnapshotCreator::~SnapshotCreator() {
+  SnapshotCreatorData* data = SnapshotCreatorData::cast(data_);
+  DCHECK(data->created_);
+  Isolate* isolate = data->isolate_;
+  isolate->Exit();
+  isolate->Dispose();
+  delete data;
+}
+
+Isolate* SnapshotCreator::GetIsolate() {
+  return SnapshotCreatorData::cast(data_)->isolate_;
+}
+
+size_t SnapshotCreator::AddContext(Local<Context> context) {
+  DCHECK(!context.IsEmpty());
+  SnapshotCreatorData* data = SnapshotCreatorData::cast(data_);
+  DCHECK(!data->created_);
+  Isolate* isolate = data->isolate_;
+  CHECK_EQ(isolate, context->GetIsolate());
+  size_t index = static_cast<int>(data->contexts_.Size());
+  data->contexts_.Append(context);
+  return index;
+}
+
+size_t SnapshotCreator::AddTemplate(Local<Template> template_obj) {
+  DCHECK(!template_obj.IsEmpty());
+  SnapshotCreatorData* data = SnapshotCreatorData::cast(data_);
+  DCHECK(!data->created_);
+  DCHECK_EQ(reinterpret_cast<i::Isolate*>(data->isolate_),
+            Utils::OpenHandle(*template_obj)->GetIsolate());
+  size_t index = static_cast<int>(data->templates_.Size());
+  data->templates_.Append(template_obj);
+  return index;
+}
+
+StartupData SnapshotCreator::CreateBlob(
+    SnapshotCreator::FunctionCodeHandling function_code_handling) {
+  SnapshotCreatorData* data = SnapshotCreatorData::cast(data_);
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(data->isolate_);
+  DCHECK(!data->created_);
+
+  {
+    int num_templates = static_cast<int>(data->templates_.Size());
+    i::HandleScope scope(isolate);
+    i::Handle<i::FixedArray> templates =
+        isolate->factory()->NewFixedArray(num_templates, i::TENURED);
+    for (int i = 0; i < num_templates; i++) {
+      templates->set(i, *v8::Utils::OpenHandle(*data->templates_.Get(i)));
+    }
+    isolate->heap()->SetSerializedTemplates(*templates);
+    data->templates_.Clear();
+  }
 
   // If we don't do this then we end up with a stray root pointing at the
   // context even after we have disposed of the context.
-  internal_isolate->heap()->CollectAllAvailableGarbage("mksnapshot");
+  isolate->heap()->CollectAllAvailableGarbage("mksnapshot");
+  isolate->heap()->CompactWeakFixedArrays();
 
-  // GC may have cleared weak cells, so compact any WeakFixedArrays
-  // found on the heap.
-  i::HeapIterator iterator(internal_isolate->heap(),
-                           i::HeapIterator::kFilterUnreachable);
-  for (i::HeapObject* o = iterator.next(); o != NULL; o = iterator.next()) {
-    if (o->IsPrototypeInfo()) {
-      i::Object* prototype_users = i::PrototypeInfo::cast(o)->prototype_users();
-      if (prototype_users->IsWeakFixedArray()) {
-        i::WeakFixedArray* array = i::WeakFixedArray::cast(prototype_users);
-        array->Compact<i::JSObject::PrototypeRegistryCompactionCallback>();
-      }
-    } else if (o->IsScript()) {
-      i::Object* shared_list = i::Script::cast(o)->shared_function_infos();
-      if (shared_list->IsWeakFixedArray()) {
-        i::WeakFixedArray* array = i::WeakFixedArray::cast(shared_list);
-        array->Compact<i::WeakFixedArray::NullCallback>();
-      }
-    }
+  i::DisallowHeapAllocation no_gc_from_here_on;
+
+  int num_contexts = static_cast<int>(data->contexts_.Size());
+  i::List<i::Object*> contexts(num_contexts);
+  for (int i = 0; i < num_contexts; i++) {
+    i::HandleScope scope(isolate);
+    i::Handle<i::Context> context =
+        v8::Utils::OpenHandle(*data->contexts_.Get(i));
+    contexts.Add(*context);
+  }
+  data->contexts_.Clear();
+
+  i::StartupSerializer startup_serializer(isolate, function_code_handling);
+  startup_serializer.SerializeStrongReferences();
+
+  // Serialize each context with a new partial serializer.
+  i::List<i::SnapshotData*> context_snapshots(num_contexts);
+  for (int i = 0; i < num_contexts; i++) {
+    i::PartialSerializer partial_serializer(isolate, &startup_serializer);
+    partial_serializer.Serialize(&contexts[i]);
+    context_snapshots.Add(new i::SnapshotData(&partial_serializer));
   }
 
-  i::Object* raw_context = *v8::Utils::OpenPersistent(*context);
-  context->Reset();
+  startup_serializer.SerializeWeakReferencesAndDeferred();
+  i::SnapshotData startup_snapshot(&startup_serializer);
+  StartupData result =
+      i::Snapshot::CreateSnapshotBlob(&startup_snapshot, &context_snapshots);
 
-  i::SnapshotByteSink snapshot_sink;
-  i::StartupSerializer ser(internal_isolate, &snapshot_sink,
-                           function_code_handling);
-  ser.SerializeStrongReferences();
-
-  i::SnapshotByteSink context_sink;
-  i::PartialSerializer context_ser(internal_isolate, &ser, &context_sink);
-  context_ser.Serialize(&raw_context);
-  ser.SerializeWeakReferencesAndDeferred();
-
-  return i::Snapshot::CreateSnapshotBlob(ser, context_ser, metadata);
+  // Delete heap-allocated context snapshot instances.
+  for (const auto& context_snapshot : context_snapshots) {
+    delete context_snapshot;
+  }
+  data->created_ = true;
+  return result;
 }
 
-}  // namespace
-
 StartupData V8::CreateSnapshotDataBlob(const char* embedded_source) {
   // Create a new isolate and a new context from scratch, optionally run
   // a script to embed, and serialize to create a snapshot blob.
-  StartupData result = {NULL, 0};
-
+  StartupData result = {nullptr, 0};
   base::ElapsedTimer timer;
   timer.Start();
-
-  ArrayBufferAllocator allocator;
-  i::Isolate* internal_isolate = new i::Isolate(true);
-  internal_isolate->set_array_buffer_allocator(&allocator);
-  Isolate* isolate = reinterpret_cast<Isolate*>(internal_isolate);
-
   {
-    Isolate::Scope isolate_scope(isolate);
-    internal_isolate->Init(NULL);
-    Persistent<Context> context;
+    SnapshotCreator snapshot_creator;
+    Isolate* isolate = snapshot_creator.GetIsolate();
     {
-      HandleScope handle_scope(isolate);
-      Local<Context> new_context = Context::New(isolate);
-      context.Reset(isolate, new_context);
+      HandleScope scope(isolate);
+      Local<Context> context = Context::New(isolate);
       if (embedded_source != NULL &&
-          !RunExtraCode(isolate, new_context, embedded_source, "<embedded>")) {
-        context.Reset();
+          !RunExtraCode(isolate, context, embedded_source, "<embedded>")) {
+        return result;
       }
+      snapshot_creator.AddContext(context);
     }
-
-    i::Snapshot::Metadata metadata;
-    metadata.set_embeds_script(embedded_source != NULL);
-
-    result = SerializeIsolateAndContext(
-        isolate, &context, metadata, i::StartupSerializer::CLEAR_FUNCTION_CODE);
-    DCHECK(context.IsEmpty());
+    result = snapshot_creator.CreateBlob(
+        SnapshotCreator::FunctionCodeHandling::kClear);
   }
-  isolate->Dispose();
 
   if (i::FLAG_profile_deserialization) {
     i::PrintF("Creating snapshot took %0.3f ms\n",
@@ -486,42 +556,28 @@
   //    compilation of executed functions.
   //  - Create a new context. This context will be unpolluted.
   //  - Serialize the isolate and the second context into a new snapshot blob.
-  StartupData result = {NULL, 0};
-
+  StartupData result = {nullptr, 0};
   base::ElapsedTimer timer;
   timer.Start();
-
-  ArrayBufferAllocator allocator;
-  i::Isolate* internal_isolate = new i::Isolate(true);
-  internal_isolate->set_array_buffer_allocator(&allocator);
-  internal_isolate->set_snapshot_blob(&cold_snapshot_blob);
-  Isolate* isolate = reinterpret_cast<Isolate*>(internal_isolate);
-
   {
-    Isolate::Scope isolate_scope(isolate);
-    i::Snapshot::Initialize(internal_isolate);
-    Persistent<Context> context;
-    bool success;
+    SnapshotCreator snapshot_creator(nullptr, &cold_snapshot_blob);
+    Isolate* isolate = snapshot_creator.GetIsolate();
+    {
+      HandleScope scope(isolate);
+      Local<Context> context = Context::New(isolate);
+      if (!RunExtraCode(isolate, context, warmup_source, "<warm-up>")) {
+        return result;
+      }
+    }
     {
       HandleScope handle_scope(isolate);
-      Local<Context> new_context = Context::New(isolate);
-      success = RunExtraCode(isolate, new_context, warmup_source, "<warm-up>");
-    }
-    if (success) {
-      HandleScope handle_scope(isolate);
       isolate->ContextDisposedNotification(false);
-      Local<Context> new_context = Context::New(isolate);
-      context.Reset(isolate, new_context);
+      Local<Context> context = Context::New(isolate);
+      snapshot_creator.AddContext(context);
     }
-
-    i::Snapshot::Metadata metadata;
-    metadata.set_embeds_script(i::Snapshot::EmbedsScript(internal_isolate));
-
-    result = SerializeIsolateAndContext(
-        isolate, &context, metadata, i::StartupSerializer::KEEP_FUNCTION_CODE);
-    DCHECK(context.IsEmpty());
+    result = snapshot_creator.CreateBlob(
+        SnapshotCreator::FunctionCodeHandling::kKeep);
   }
-  isolate->Dispose();
 
   if (i::FLAG_profile_deserialization) {
     i::PrintF("Warming up snapshot took %0.3f ms\n",
@@ -811,9 +867,8 @@
 
 i::Object** EscapableHandleScope::Escape(i::Object** escape_value) {
   i::Heap* heap = reinterpret_cast<i::Isolate*>(GetIsolate())->heap();
-  Utils::ApiCheck(*escape_slot_ == heap->the_hole_value(),
-                  "EscapeableHandleScope::Escape",
-                  "Escape value set twice");
+  Utils::ApiCheck((*escape_slot_)->IsTheHole(heap->isolate()),
+                  "EscapeableHandleScope::Escape", "Escape value set twice");
   if (escape_value == NULL) {
     *escape_slot_ = heap->undefined_value();
     return NULL;
@@ -1074,7 +1129,7 @@
   ENTER_V8(i_isolate);
   i::Handle<i::Object> result(Utils::OpenHandle(this)->prototype_template(),
                               i_isolate);
-  if (result->IsUndefined()) {
+  if (result->IsUndefined(i_isolate)) {
     // Do not cache prototype objects.
     result = Utils::OpenHandle(
         *ObjectTemplateNew(i_isolate, Local<FunctionTemplate>(), true));
@@ -1112,8 +1167,7 @@
   obj->set_do_not_cache(do_not_cache);
   int next_serial_number = 0;
   if (!do_not_cache) {
-    next_serial_number = isolate->next_serial_number() + 1;
-    isolate->set_next_serial_number(next_serial_number);
+    next_serial_number = isolate->heap()->GetNextTemplateSerialNumber();
   }
   obj->set_serial_number(i::Smi::FromInt(next_serial_number));
   if (callback != 0) {
@@ -1138,7 +1192,6 @@
   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);
   ENTER_V8(i_isolate);
   auto templ = FunctionTemplateNew(i_isolate, callback, nullptr, data,
@@ -1147,6 +1200,20 @@
   return templ;
 }
 
+Local<FunctionTemplate> FunctionTemplate::FromSnapshot(Isolate* isolate,
+                                                       size_t index) {
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+  i::FixedArray* templates = i_isolate->heap()->serialized_templates();
+  int int_index = static_cast<int>(index);
+  if (int_index < templates->length()) {
+    i::Object* info = i_isolate->heap()->serialized_templates()->get(int_index);
+    if (info->IsFunctionTemplateInfo()) {
+      return Utils::ToLocal(i::Handle<i::FunctionTemplateInfo>(
+          i::FunctionTemplateInfo::cast(info)));
+    }
+  }
+  return Local<FunctionTemplate>();
+}
 
 Local<FunctionTemplate> FunctionTemplate::NewWithFastHandler(
     Isolate* isolate, FunctionCallback callback,
@@ -1254,7 +1321,7 @@
   }
   i::Isolate* isolate = handle->GetIsolate();
   ENTER_V8(isolate);
-  if (handle->instance_template()->IsUndefined()) {
+  if (handle->instance_template()->IsUndefined(isolate)) {
     Local<ObjectTemplate> templ =
         ObjectTemplate::New(isolate, ToApiHandle<FunctionTemplate>(handle));
     handle->set_instance_template(*Utils::OpenHandle(*templ));
@@ -1335,9 +1402,6 @@
 static Local<ObjectTemplate> ObjectTemplateNew(
     i::Isolate* isolate, v8::Local<FunctionTemplate> constructor,
     bool do_not_cache) {
-  // 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);
   ENTER_V8(isolate);
   i::Handle<i::Struct> struct_obj =
@@ -1347,8 +1411,7 @@
   InitializeTemplate(obj, Consts::OBJECT_TEMPLATE);
   int next_serial_number = 0;
   if (!do_not_cache) {
-    next_serial_number = isolate->next_serial_number() + 1;
-    isolate->set_next_serial_number(next_serial_number);
+    next_serial_number = isolate->heap()->GetNextTemplateSerialNumber();
   }
   obj->set_serial_number(i::Smi::FromInt(next_serial_number));
   if (!constructor.IsEmpty())
@@ -1362,13 +1425,28 @@
   return ObjectTemplateNew(isolate, constructor, false);
 }
 
+Local<ObjectTemplate> ObjectTemplate::FromSnapshot(Isolate* isolate,
+                                                   size_t index) {
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+  i::FixedArray* templates = i_isolate->heap()->serialized_templates();
+  int int_index = static_cast<int>(index);
+  if (int_index < templates->length()) {
+    i::Object* info = i_isolate->heap()->serialized_templates()->get(int_index);
+    if (info->IsObjectTemplateInfo()) {
+      return Utils::ToLocal(
+          i::Handle<i::ObjectTemplateInfo>(i::ObjectTemplateInfo::cast(info)));
+    }
+  }
+  return Local<ObjectTemplate>();
+}
+
 // Ensure that the object template has a constructor.  If no
 // constructor is available we create one.
 static i::Handle<i::FunctionTemplateInfo> EnsureConstructor(
     i::Isolate* isolate,
     ObjectTemplate* object_template) {
   i::Object* obj = Utils::OpenHandle(object_template)->constructor();
-  if (!obj ->IsUndefined()) {
+  if (!obj->IsUndefined(isolate)) {
     i::FunctionTemplateInfo* info = i::FunctionTemplateInfo::cast(obj);
     return i::Handle<i::FunctionTemplateInfo>(info, isolate);
   }
@@ -1457,20 +1535,12 @@
                       signature, i::FLAG_disable_old_api_accessors);
 }
 
-
 template <typename Getter, typename Setter, typename Query, typename Deleter,
           typename Enumerator>
-static void ObjectTemplateSetNamedPropertyHandler(ObjectTemplate* templ,
-                                                  Getter getter, Setter setter,
-                                                  Query query, Deleter remover,
-                                                  Enumerator enumerator,
-                                                  Local<Value> data,
-                                                  PropertyHandlerFlags flags) {
-  i::Isolate* isolate = Utils::OpenHandle(templ)->GetIsolate();
-  ENTER_V8(isolate);
-  i::HandleScope scope(isolate);
-  auto cons = EnsureConstructor(isolate, templ);
-  EnsureNotInstantiated(cons, "ObjectTemplateSetNamedPropertyHandler");
+static i::Handle<i::InterceptorInfo> CreateInterceptorInfo(
+    i::Isolate* isolate, Getter getter, Setter setter, Query query,
+    Deleter remover, Enumerator enumerator, Local<Value> data,
+    PropertyHandlerFlags flags) {
   auto obj = i::Handle<i::InterceptorInfo>::cast(
       isolate->factory()->NewStruct(i::INTERCEPTOR_INFO_TYPE));
   obj->set_flags(0);
@@ -1492,6 +1562,24 @@
     data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
   }
   obj->set_data(*Utils::OpenHandle(*data));
+  return obj;
+}
+
+template <typename Getter, typename Setter, typename Query, typename Deleter,
+          typename Enumerator>
+static void ObjectTemplateSetNamedPropertyHandler(ObjectTemplate* templ,
+                                                  Getter getter, Setter setter,
+                                                  Query query, Deleter remover,
+                                                  Enumerator enumerator,
+                                                  Local<Value> data,
+                                                  PropertyHandlerFlags flags) {
+  i::Isolate* isolate = Utils::OpenHandle(templ)->GetIsolate();
+  ENTER_V8(isolate);
+  i::HandleScope scope(isolate);
+  auto cons = EnsureConstructor(isolate, templ);
+  EnsureNotInstantiated(cons, "ObjectTemplateSetNamedPropertyHandler");
+  auto obj = CreateInterceptorInfo(isolate, getter, setter, query, remover,
+                                   enumerator, data, flags);
   cons->set_named_property_handler(*obj);
 }
 
@@ -1538,8 +1626,8 @@
       i::Handle<i::AccessCheckInfo>::cast(struct_info);
 
   SET_FIELD_WRAPPED(info, set_callback, callback);
-  SET_FIELD_WRAPPED(info, set_named_callback, nullptr);
-  SET_FIELD_WRAPPED(info, set_indexed_callback, nullptr);
+  info->set_named_interceptor(nullptr);
+  info->set_indexed_interceptor(nullptr);
 
   if (data.IsEmpty()) {
     data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
@@ -1550,28 +1638,34 @@
   cons->set_needs_access_check(true);
 }
 
-void ObjectTemplate::SetAccessCheckCallback(
-    DeprecatedAccessCheckCallback callback, Local<Value> data) {
-  SetAccessCheckCallback(reinterpret_cast<AccessCheckCallback>(callback), data);
-}
-
-void ObjectTemplate::SetAccessCheckCallbacks(
-    NamedSecurityCallback named_callback,
-    IndexedSecurityCallback indexed_callback, Local<Value> data) {
+void ObjectTemplate::SetAccessCheckCallbackAndHandler(
+    AccessCheckCallback callback,
+    const NamedPropertyHandlerConfiguration& named_handler,
+    const IndexedPropertyHandlerConfiguration& indexed_handler,
+    Local<Value> data) {
   i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
   ENTER_V8(isolate);
   i::HandleScope scope(isolate);
   auto cons = EnsureConstructor(isolate, this);
-  EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetAccessCheckCallbacks");
+  EnsureNotInstantiated(
+      cons, "v8::ObjectTemplate::SetAccessCheckCallbackWithHandler");
 
   i::Handle<i::Struct> struct_info =
       isolate->factory()->NewStruct(i::ACCESS_CHECK_INFO_TYPE);
   i::Handle<i::AccessCheckInfo> info =
       i::Handle<i::AccessCheckInfo>::cast(struct_info);
 
-  SET_FIELD_WRAPPED(info, set_callback, nullptr);
-  SET_FIELD_WRAPPED(info, set_named_callback, named_callback);
-  SET_FIELD_WRAPPED(info, set_indexed_callback, indexed_callback);
+  SET_FIELD_WRAPPED(info, set_callback, callback);
+  auto named_interceptor = CreateInterceptorInfo(
+      isolate, named_handler.getter, named_handler.setter, named_handler.query,
+      named_handler.deleter, named_handler.enumerator, named_handler.data,
+      named_handler.flags);
+  info->set_named_interceptor(*named_interceptor);
+  auto indexed_interceptor = CreateInterceptorInfo(
+      isolate, indexed_handler.getter, indexed_handler.setter,
+      indexed_handler.query, indexed_handler.deleter,
+      indexed_handler.enumerator, indexed_handler.data, indexed_handler.flags);
+  info->set_indexed_interceptor(*indexed_interceptor);
 
   if (data.IsEmpty()) {
     data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
@@ -1582,7 +1676,6 @@
   cons->set_needs_access_check(true);
 }
 
-
 void ObjectTemplate::SetHandler(
     const IndexedPropertyHandlerConfiguration& config) {
   i::Isolate* isolate = Utils::OpenHandle(this)->GetIsolate();
@@ -1590,25 +1683,9 @@
   i::HandleScope scope(isolate);
   auto cons = EnsureConstructor(isolate, this);
   EnsureNotInstantiated(cons, "v8::ObjectTemplate::SetHandler");
-  auto obj = i::Handle<i::InterceptorInfo>::cast(
-      isolate->factory()->NewStruct(i::INTERCEPTOR_INFO_TYPE));
-  obj->set_flags(0);
-
-  if (config.getter != 0) SET_FIELD_WRAPPED(obj, set_getter, config.getter);
-  if (config.setter != 0) SET_FIELD_WRAPPED(obj, set_setter, config.setter);
-  if (config.query != 0) SET_FIELD_WRAPPED(obj, set_query, config.query);
-  if (config.deleter != 0) SET_FIELD_WRAPPED(obj, set_deleter, config.deleter);
-  if (config.enumerator != 0) {
-    SET_FIELD_WRAPPED(obj, set_enumerator, config.enumerator);
-  }
-  obj->set_all_can_read(static_cast<int>(config.flags) &
-                        static_cast<int>(PropertyHandlerFlags::kAllCanRead));
-
-  v8::Local<v8::Value> data = config.data;
-  if (data.IsEmpty()) {
-    data = v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
-  }
-  obj->set_data(*Utils::OpenHandle(*data));
+  auto obj = CreateInterceptorInfo(
+      isolate, config.getter, config.setter, config.query, config.deleter,
+      config.enumerator, config.data, config.flags);
   cons->set_indexed_property_handler(*obj);
 }
 
@@ -2257,7 +2334,7 @@
 
 
 bool v8::TryCatch::HasCaught() const {
-  return !reinterpret_cast<i::Object*>(exception_)->IsTheHole();
+  return !reinterpret_cast<i::Object*>(exception_)->IsTheHole(isolate_);
 }
 
 
@@ -2316,8 +2393,8 @@
 
 v8::Local<v8::Message> v8::TryCatch::Message() const {
   i::Object* message = reinterpret_cast<i::Object*>(message_obj_);
-  DCHECK(message->IsJSMessageObject() || message->IsTheHole());
-  if (HasCaught() && !message->IsTheHole()) {
+  DCHECK(message->IsJSMessageObject() || message->IsTheHole(isolate_));
+  if (HasCaught() && !message->IsTheHole(isolate_)) {
     return v8::Utils::MessageToLocal(i::Handle<i::Object>(message, isolate_));
   } else {
     return v8::Local<v8::Message>();
@@ -2626,7 +2703,7 @@
   i::Handle<i::JSObject> self = Utils::OpenHandle(f);
   i::Handle<i::Object> obj =
       i::JSReceiver::GetProperty(isolate, self, propertyName).ToHandleChecked();
-  return obj->IsTrue();
+  return obj->IsTrue(isolate);
 }
 
 bool StackFrame::IsEval() const { return getBoolProperty(this, "isEval"); }
@@ -2661,7 +2738,7 @@
   }
   i::Handle<i::ObjectHashTable> table(
       i::ObjectHashTable::cast(weak_collection->table()));
-  if (!table->IsKey(*key)) {
+  if (!table->IsKey(isolate, *key)) {
     DCHECK(false);
     return;
   }
@@ -2681,12 +2758,12 @@
   }
   i::Handle<i::ObjectHashTable> table(
       i::ObjectHashTable::cast(weak_collection->table()));
-  if (!table->IsKey(*key)) {
+  if (!table->IsKey(isolate, *key)) {
     DCHECK(false);
     return v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
   }
   i::Handle<i::Object> lookup(table->Lookup(key), isolate);
-  if (lookup->IsTheHole())
+  if (lookup->IsTheHole(isolate))
     return v8::Undefined(reinterpret_cast<v8::Isolate*>(isolate));
   return Utils::ToLocal(lookup);
 }
@@ -2704,12 +2781,12 @@
   }
   i::Handle<i::ObjectHashTable> table(
       i::ObjectHashTable::cast(weak_collection->table()));
-  if (!table->IsKey(*key)) {
+  if (!table->IsKey(isolate, *key)) {
     DCHECK(false);
     return false;
   }
   i::Handle<i::Object> lookup(table->Lookup(key), isolate);
-  return !lookup->IsTheHole();
+  return !lookup->IsTheHole(isolate);
 }
 
 
@@ -2725,7 +2802,7 @@
   }
   i::Handle<i::ObjectHashTable> table(
       i::ObjectHashTable::cast(weak_collection->table()));
-  if (!table->IsKey(*key)) {
+  if (!table->IsKey(isolate, *key)) {
     DCHECK(false);
     return false;
   }
@@ -2741,9 +2818,10 @@
   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);
+  i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   auto maybe = source->IsSeqOneByteString()
-                   ? i::JsonParser<true>::Parse(source)
-                   : i::JsonParser<false>::Parse(source);
+                   ? i::JsonParser<true>::Parse(isolate, source, undefined)
+                   : i::JsonParser<false>::Parse(isolate, source, undefined);
   Local<Value> result;
   has_pending_exception = !ToLocal<Value>(maybe, &result);
   RETURN_ON_FAILED_EXECUTION(Value);
@@ -2755,9 +2833,10 @@
   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);
+  i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
   auto maybe = source->IsSeqOneByteString()
-                   ? i::JsonParser<true>::Parse(source)
-                   : i::JsonParser<false>::Parse(source);
+                   ? i::JsonParser<true>::Parse(isolate, source, undefined)
+                   : i::JsonParser<false>::Parse(isolate, source, undefined);
   Local<Value> result;
   has_pending_exception = !ToLocal<Value>(maybe, &result);
   RETURN_ON_FAILED_EXECUTION(Value);
@@ -2769,12 +2848,18 @@
 }
 
 MaybeLocal<String> JSON::Stringify(Local<Context> context,
-                                   Local<Object> json_object) {
+                                   Local<Object> json_object,
+                                   Local<String> gap) {
   PREPARE_FOR_EXECUTION(context, JSON, Stringify, String);
   i::Handle<i::Object> object = Utils::OpenHandle(*json_object);
+  i::Handle<i::Object> replacer = isolate->factory()->undefined_value();
+  i::Handle<i::String> gap_string = gap.IsEmpty()
+                                        ? isolate->factory()->empty_string()
+                                        : Utils::OpenHandle(*gap);
   i::Handle<i::Object> maybe;
-  has_pending_exception =
-      !i::Runtime::BasicJsonStringify(isolate, object).ToHandle(&maybe);
+  has_pending_exception = !i::JsonStringifier(isolate)
+                               .Stringify(object, replacer, gap_string)
+                               .ToHandle(&maybe);
   RETURN_ON_FAILED_EXECUTION(String);
   Local<String> result;
   has_pending_exception =
@@ -2786,26 +2871,38 @@
 // --- D a t a ---
 
 bool Value::FullIsUndefined() const {
-  bool result = Utils::OpenHandle(this)->IsUndefined();
+  i::Handle<i::Object> object = Utils::OpenHandle(this);
+  bool result = false;
+  if (!object->IsSmi()) {
+    result = object->IsUndefined(i::HeapObject::cast(*object)->GetIsolate());
+  }
   DCHECK_EQ(result, QuickIsUndefined());
   return result;
 }
 
 
 bool Value::FullIsNull() const {
-  bool result = Utils::OpenHandle(this)->IsNull();
+  i::Handle<i::Object> object = Utils::OpenHandle(this);
+  bool result = false;
+  if (!object->IsSmi()) {
+    result = object->IsNull(i::HeapObject::cast(*object)->GetIsolate());
+  }
   DCHECK_EQ(result, QuickIsNull());
   return result;
 }
 
 
 bool Value::IsTrue() const {
-  return Utils::OpenHandle(this)->IsTrue();
+  i::Handle<i::Object> object = Utils::OpenHandle(this);
+  if (object->IsSmi()) return false;
+  return object->IsTrue(i::HeapObject::cast(*object)->GetIsolate());
 }
 
 
 bool Value::IsFalse() const {
-  return Utils::OpenHandle(this)->IsFalse();
+  i::Handle<i::Object> object = Utils::OpenHandle(this);
+  if (object->IsSmi()) return false;
+  return object->IsFalse(i::HeapObject::cast(*object)->GetIsolate());
 }
 
 
@@ -2942,22 +3039,7 @@
 
 
 bool Value::IsNativeError() const {
-  i::Handle<i::Object> obj = Utils::OpenHandle(this);
-  if (!obj->IsJSObject()) return false;
-  i::Handle<i::JSObject> js_obj = i::Handle<i::JSObject>::cast(obj);
-  i::Isolate* isolate = js_obj->GetIsolate();
-  i::Handle<i::Object> constructor(js_obj->map()->GetConstructor(), isolate);
-  if (!constructor->IsJSFunction()) return false;
-  i::Handle<i::JSFunction> function =
-      i::Handle<i::JSFunction>::cast(constructor);
-  if (!function->shared()->native()) return false;
-  return function.is_identical_to(isolate->error_function()) ||
-         function.is_identical_to(isolate->eval_error_function()) ||
-         function.is_identical_to(isolate->range_error_function()) ||
-         function.is_identical_to(isolate->reference_error_function()) ||
-         function.is_identical_to(isolate->syntax_error_function()) ||
-         function.is_identical_to(isolate->type_error_function()) ||
-         function.is_identical_to(isolate->uri_error_function());
+  return Utils::OpenHandle(this)->IsJSError();
 }
 
 
@@ -2989,12 +3071,7 @@
   return Utils::OpenHandle(this)->IsJSSetIterator();
 }
 
-
-bool Value::IsPromise() const {
-  auto self = Utils::OpenHandle(this);
-  return i::Object::IsPromise(self);
-}
-
+bool Value::IsPromise() const { return Utils::OpenHandle(this)->IsJSPromise(); }
 
 MaybeLocal<String> Value::ToString(Local<Context> context) const {
   auto obj = Utils::OpenHandle(this);
@@ -3848,27 +3925,38 @@
     v8::Local<FunctionTemplate> tmpl) {
   auto isolate = Utils::OpenHandle(this)->GetIsolate();
   i::PrototypeIterator iter(isolate, *Utils::OpenHandle(this),
-                            i::PrototypeIterator::START_AT_RECEIVER);
+                            i::kStartAtReceiver);
   auto tmpl_info = *Utils::OpenHandle(*tmpl);
-  while (!tmpl_info->IsTemplateFor(iter.GetCurrent())) {
+  while (!tmpl_info->IsTemplateFor(iter.GetCurrent<i::JSObject>())) {
     iter.Advance();
-    if (iter.IsAtEnd()) {
-      return Local<Object>();
-    }
+    if (iter.IsAtEnd()) return Local<Object>();
+    if (!iter.GetCurrent()->IsJSObject()) return Local<Object>();
   }
   // IsTemplateFor() ensures that iter.GetCurrent() can't be a Proxy here.
   return Utils::ToLocal(i::handle(iter.GetCurrent<i::JSObject>(), isolate));
 }
 
-
 MaybeLocal<Array> v8::Object::GetPropertyNames(Local<Context> context) {
+  return GetPropertyNames(
+      context, v8::KeyCollectionMode::kIncludePrototypes,
+      static_cast<v8::PropertyFilter>(ONLY_ENUMERABLE | SKIP_SYMBOLS),
+      v8::IndexFilter::kIncludeIndices);
+}
+
+MaybeLocal<Array> v8::Object::GetPropertyNames(Local<Context> context,
+                                               KeyCollectionMode mode,
+                                               PropertyFilter property_filter,
+                                               IndexFilter index_filter) {
   PREPARE_FOR_EXECUTION(context, Object, GetPropertyNames, Array);
   auto self = Utils::OpenHandle(this);
   i::Handle<i::FixedArray> value;
-  has_pending_exception =
-      !i::JSReceiver::GetKeys(self, i::INCLUDE_PROTOS, i::ENUMERABLE_STRINGS)
-           .ToHandle(&value);
+  i::KeyAccumulator accumulator(
+      isolate, static_cast<i::KeyCollectionMode>(mode),
+      static_cast<i::PropertyFilter>(property_filter));
+  accumulator.set_skip_indices(index_filter == IndexFilter::kSkipIndices);
+  has_pending_exception = accumulator.CollectKeys(self, self).IsNothing();
   RETURN_ON_FAILED_EXECUTION(Array);
+  value = accumulator.GetKeys(i::GetKeysConversion::kKeepNumbers);
   DCHECK(self->map()->EnumLength() == i::kInvalidEnumCacheSentinel ||
          self->map()->EnumLength() == 0 ||
          self->map()->instance_descriptors()->GetEnumCache() != *value);
@@ -3894,19 +3982,8 @@
 
 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,
-                              static_cast<i::PropertyFilter>(filter))
-           .ToHandle(&value);
-  RETURN_ON_FAILED_EXECUTION(Array);
-  DCHECK(self->map()->EnumLength() == i::kInvalidEnumCacheSentinel ||
-         self->map()->EnumLength() == 0 ||
-         self->map()->instance_descriptors()->GetEnumCache() != *value);
-  auto result = isolate->factory()->NewJSArrayWithElements(value);
-  RETURN_ESCAPED(Utils::ToLocal(result));
+  return GetPropertyNames(context, KeyCollectionMode::kOwnOnly, filter,
+                          v8::IndexFilter::kIncludeIndices);
 }
 
 MaybeLocal<String> v8::Object::ObjectProtoToString(Local<Context> context) {
@@ -4053,7 +4130,7 @@
   has_pending_exception =
       !i::JSObject::SetAccessor(obj, info).ToHandle(&result);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
-  if (result->IsUndefined()) return Nothing<bool>();
+  if (result->IsUndefined(obj->GetIsolate())) return Nothing<bool>();
   if (fast) {
     i::JSObject::MigrateSlowToFast(obj, 0, "APISetAccessor");
   }
@@ -4343,7 +4420,7 @@
   auto isolate = Utils::OpenHandle(this)->GetIsolate();
   i::HandleScope scope(isolate);
   auto self = Utils::OpenHandle(this);
-  return i::JSReceiver::GetOrCreateIdentityHash(self)->value();
+  return i::JSReceiver::GetOrCreateIdentityHash(isolate, self)->value();
 }
 
 
@@ -5352,7 +5429,7 @@
 
 bool Boolean::Value() const {
   i::Handle<i::Object> obj = Utils::OpenHandle(this);
-  return obj->IsTrue();
+  return obj->IsTrue(i::HeapObject::cast(*obj)->GetIsolate());
 }
 
 
@@ -5443,7 +5520,10 @@
 
 static void* ExternalValue(i::Object* obj) {
   // Obscure semantics for undefined, but somehow checked in our unit tests...
-  if (obj->IsUndefined()) return NULL;
+  if (!obj->IsSmi() &&
+      obj->IsUndefined(i::HeapObject::cast(obj)->GetIsolate())) {
+    return NULL;
+  }
   i::Object* foreign = i::JSObject::cast(obj)->GetInternalField(0);
   return i::Foreign::cast(foreign)->foreign_address();
 }
@@ -5513,11 +5593,17 @@
       object_count_(0),
       object_size_(0) {}
 
+HeapCodeStatistics::HeapCodeStatistics()
+    : code_and_metadata_size_(0), bytecode_and_metadata_size_(0) {}
 
 bool v8::V8::InitializeICU(const char* icu_data_file) {
   return i::InitializeICU(icu_data_file);
 }
 
+bool v8::V8::InitializeICUDefaultLocation(const char* exec_path,
+                                          const char* icu_data_file) {
+  return i::InitializeICUDefaultLocation(exec_path, icu_data_file);
+}
 
 void v8::V8::InitializeExternalStartupData(const char* directory_path) {
   i::InitializeExternalStartupData(directory_path);
@@ -5534,11 +5620,10 @@
   return i::Version::GetVersion();
 }
 
-
 static i::Handle<i::Context> CreateEnvironment(
     i::Isolate* isolate, v8::ExtensionConfiguration* extensions,
     v8::Local<ObjectTemplate> global_template,
-    v8::Local<Value> maybe_global_proxy) {
+    v8::Local<Value> maybe_global_proxy, size_t context_snapshot_index) {
   i::Handle<i::Context> env;
 
   // Enter V8 via an ENTER_V8 scope.
@@ -5565,7 +5650,7 @@
       // Migrate security handlers from global_template to
       // proxy_template.  Temporarily removing access check
       // information from the global template.
-      if (!global_constructor->access_check_info()->IsUndefined()) {
+      if (!global_constructor->access_check_info()->IsUndefined(isolate)) {
         proxy_constructor->set_access_check_info(
             global_constructor->access_check_info());
         proxy_constructor->set_needs_access_check(
@@ -5583,7 +5668,7 @@
     }
     // Create the environment.
     env = isolate->bootstrapper()->CreateEnvironment(
-        maybe_proxy, proxy_template, extensions);
+        maybe_proxy, proxy_template, extensions, context_snapshot_index);
 
     // Restore the access check info on the global template.
     if (!global_template.IsEmpty()) {
@@ -5603,14 +5688,16 @@
 Local<Context> v8::Context::New(v8::Isolate* external_isolate,
                                 v8::ExtensionConfiguration* extensions,
                                 v8::Local<ObjectTemplate> global_template,
-                                v8::Local<Value> global_object) {
+                                v8::Local<Value> global_object,
+                                size_t context_snapshot_index) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(external_isolate);
   LOG_API(isolate, Context, New);
   i::HandleScope scope(isolate);
   ExtensionConfiguration no_extensions;
   if (extensions == NULL) extensions = &no_extensions;
   i::Handle<i::Context> env =
-      CreateEnvironment(isolate, extensions, global_template, global_object);
+      CreateEnvironment(isolate, extensions, global_template, global_object,
+                        context_snapshot_index);
   if (env.is_null()) {
     if (isolate->has_pending_exception()) {
       isolate->OptionalRescheduleException(true);
@@ -5690,7 +5777,8 @@
 
 bool Context::IsCodeGenerationFromStringsAllowed() {
   i::Handle<i::Context> context = Utils::OpenHandle(this);
-  return !context->allow_code_gen_from_strings()->IsFalse();
+  return !context->allow_code_gen_from_strings()->IsFalse(
+      context->GetIsolate());
 }
 
 
@@ -5744,7 +5832,7 @@
 bool FunctionTemplate::HasInstance(v8::Local<v8::Value> value) {
   auto self = Utils::OpenHandle(this);
   auto obj = Utils::OpenHandle(*value);
-  return self->IsTemplateFor(*obj);
+  return obj->IsJSObject() && self->IsTemplateFor(i::JSObject::cast(*obj));
 }
 
 
@@ -6007,14 +6095,11 @@
 
 bool v8::String::CanMakeExternal() {
   i::Handle<i::String> obj = Utils::OpenHandle(this);
-  i::Isolate* isolate = obj->GetIsolate();
+  if (obj->IsExternalString()) return false;
 
   // Old space strings should be externalized.
-  if (!isolate->heap()->new_space()->Contains(*obj)) return true;
-  int size = obj->Size();  // Byte size of the original string.
-  if (size <= i::ExternalString::kShortSize) return false;
-  i::StringShape shape(*obj);
-  return !shape.IsExternal();
+  i::Isolate* isolate = obj->GetIsolate();
+  return !isolate->heap()->new_space()->Contains(*obj);
 }
 
 
@@ -6077,7 +6162,7 @@
   i::Handle<i::JSValue> jsvalue = i::Handle<i::JSValue>::cast(obj);
   i::Isolate* isolate = jsvalue->GetIsolate();
   LOG_API(isolate, BooleanObject, BooleanValue);
-  return jsvalue->value()->IsTrue();
+  return jsvalue->value()->IsTrue(isolate);
 }
 
 
@@ -6324,7 +6409,7 @@
                                               arraysize(argv), argv)
                                .ToHandle(&result);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
-  return Just(result->IsTrue());
+  return Just(result->IsTrue(isolate));
 }
 
 
@@ -6337,7 +6422,7 @@
                                               self, arraysize(argv), argv)
                                .ToHandle(&result);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
-  return Just(result->IsTrue());
+  return Just(result->IsTrue(isolate));
 }
 
 
@@ -6416,7 +6501,7 @@
                                               arraysize(argv), argv)
                                .ToHandle(&result);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
-  return Just(result->IsTrue());
+  return Just(result->IsTrue(isolate));
 }
 
 
@@ -6429,7 +6514,7 @@
                                               self, arraysize(argv), argv)
                                .ToHandle(&result);
   RETURN_ON_FAILED_EXECUTION_PRIMITIVE(bool);
-  return Just(result->IsTrue());
+  return Just(result->IsTrue(isolate));
 }
 
 
@@ -6603,7 +6688,7 @@
   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();
+  return i::JSReceiver::GetDataProperty(promise, key)->IsTrue(isolate);
 }
 
 
@@ -6939,7 +7024,7 @@
   i::Handle<i::Object> symbol =
       i::Object::GetPropertyOrElement(symbols, name).ToHandleChecked();
   if (!symbol->IsSymbol()) {
-    DCHECK(symbol->IsUndefined());
+    DCHECK(symbol->IsUndefined(isolate));
     if (private_symbol)
       symbol = isolate->factory()->NewPrivateSymbol();
     else
@@ -7186,22 +7271,6 @@
   isolate->heap()->SetEmbedderHeapTracer(tracer);
 }
 
-void Isolate::AddMemoryAllocationCallback(MemoryAllocationCallback callback,
-                                          ObjectSpace space,
-                                          AllocationAction action) {
-  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  isolate->heap()->memory_allocator()->AddMemoryAllocationCallback(
-      callback, space, action);
-}
-
-
-void Isolate::RemoveMemoryAllocationCallback(
-    MemoryAllocationCallback callback) {
-  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
-  isolate->heap()->memory_allocator()->RemoveMemoryAllocationCallback(callback);
-}
-
-
 void Isolate::TerminateExecution() {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
   isolate->stack_guard()->RequestTerminateExecution();
@@ -7284,18 +7353,12 @@
     v8_isolate->SetAddHistogramSampleFunction(
         params.add_histogram_sample_callback);
   }
+
+  isolate->set_api_external_references(params.external_references);
   SetResourceConstraints(isolate, params.constraints);
   // TODO(jochen): Once we got rid of Isolate::Current(), we can remove this.
   Isolate::Scope isolate_scope(v8_isolate);
   if (params.entry_hook || !i::Snapshot::Initialize(isolate)) {
-    // If the isolate has a function entry hook, it needs to re-build all its
-    // code stubs with entry hooks embedded, so don't deserialize a snapshot.
-    if (i::Snapshot::EmbedsScript(isolate)) {
-      // If the snapshot embeds a script, we cannot initialize the isolate
-      // without the snapshot as a fallback. This is unlikely to happen though.
-      V8_Fatal(__FILE__, __LINE__,
-               "Initializing isolate from custom startup snapshot failed");
-    }
     isolate->Init(NULL);
   }
   return v8_isolate;
@@ -7467,6 +7530,18 @@
   return true;
 }
 
+bool Isolate::GetHeapCodeAndMetadataStatistics(
+    HeapCodeStatistics* code_statistics) {
+  if (!code_statistics) return false;
+
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
+  isolate->heap()->CollectCodeStatistics();
+
+  code_statistics->code_and_metadata_size_ = isolate->code_and_metadata_size();
+  code_statistics->bytecode_and_metadata_size_ =
+      isolate->bytecode_and_metadata_size();
+  return true;
+}
 
 void Isolate::GetStackSample(const RegisterState& state, void** frames,
                              size_t frames_limit, SampleInfo* sample_info) {
@@ -7690,6 +7765,11 @@
                                                      Locker::IsLocked(this));
 }
 
+void Isolate::SetRAILMode(RAILMode rail_mode) {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
+  return isolate->SetRAILMode(rail_mode);
+}
+
 void Isolate::SetJitCodeEventHandler(JitCodeEventOptions options,
                                      JitCodeEventHandler event_handler) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
@@ -7758,7 +7838,7 @@
   i::HandleScope scope(isolate);
   NeanderArray listeners(isolate->factory()->message_listeners());
   for (int i = 0; i < listeners.length(); i++) {
-    if (listeners.get(i)->IsUndefined()) continue;  // skip deleted ones
+    if (listeners.get(i)->IsUndefined(isolate)) continue;  // skip deleted ones
 
     NeanderObject listener(i::JSObject::cast(listeners.get(i)));
     i::Handle<i::Foreign> callback_obj(i::Foreign::cast(listener.get(0)));
@@ -7790,6 +7870,12 @@
 }
 
 
+bool Isolate::IsInUse() {
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(this);
+  return isolate->IsInUse();
+}
+
+
 class VisitorAdapter : public i::ObjectVisitor {
  public:
   explicit VisitorAdapter(PersistentHandleVisitor* visitor)
@@ -8114,6 +8200,14 @@
   return GetDebugContext(reinterpret_cast<Isolate*>(i::Isolate::Current()));
 }
 
+MaybeLocal<Context> Debug::GetDebuggedContext(Isolate* isolate) {
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+  ENTER_V8(i_isolate);
+  if (!i_isolate->debug()->in_debug_scope()) return MaybeLocal<Context>();
+  i::Handle<i::Object> calling = i_isolate->GetCallingNativeContext();
+  if (calling.is_null()) return MaybeLocal<Context>();
+  return Utils::ToLocal(i::Handle<i::Context>::cast(calling));
+}
 
 void Debug::SetLiveEditEnabled(Isolate* isolate, bool enable) {
   i::Isolate* internal_isolate = reinterpret_cast<i::Isolate*>(isolate);
@@ -8240,9 +8334,8 @@
 
 void CpuProfile::Delete() {
   i::CpuProfile* profile = reinterpret_cast<i::CpuProfile*>(this);
-  i::Isolate* isolate = profile->top_down()->isolate();
-  i::CpuProfiler* profiler = isolate->cpu_profiler();
-  DCHECK(profiler != NULL);
+  i::CpuProfiler* profiler = profile->cpu_profiler();
+  DCHECK(profiler != nullptr);
   profiler->DeleteProfile(profile);
 }
 
@@ -8316,8 +8409,8 @@
 
 void CpuProfiler::SetIdle(bool is_idle) {
   i::CpuProfiler* profiler = reinterpret_cast<i::CpuProfiler*>(this);
-  if (!profiler->is_profiling()) return;
   i::Isolate* isolate = profiler->isolate();
+  if (!isolate->is_profiling()) return;
   v8::StateTag state = isolate->current_vm_state();
   DCHECK(state == v8::EXTERNAL || state == v8::IDLE);
   if (isolate->js_entry_sp() != NULL) return;
diff --git a/src/api.h b/src/api.h
index cb2b5c3..a6f403d 100644
--- a/src/api.h
+++ b/src/api.h
@@ -281,7 +281,9 @@
 
   template<class From, class To>
   static inline Local<To> Convert(v8::internal::Handle<From> obj) {
-    DCHECK(obj.is_null() || !obj->IsTheHole());
+    DCHECK(obj.is_null() ||
+           (obj->IsSmi() ||
+            !obj->IsTheHole(i::HeapObject::cast(*obj)->GetIsolate())));
     return Local<To>(reinterpret_cast<To*>(obj.location()));
   }
 
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index 1ccc3a6..9633a63 100644
--- a/src/arm/assembler-arm.cc
+++ b/src/arm/assembler-arm.cc
@@ -57,7 +57,7 @@
     answer |= 1u << ARMv8;
     // ARMv8 always features VFP and NEON.
     answer |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS;
-    answer |= 1u << SUDIV | 1u << MLS;
+    answer |= 1u << SUDIV;
   }
 #endif  // CAN_USE_ARMV8_INSTRUCTIONS
 #ifdef CAN_USE_ARMV7_INSTRUCTIONS
@@ -93,7 +93,7 @@
     supported_ |= 1u << ARMv8;
     // ARMv8 always features VFP and NEON.
     supported_ |= 1u << ARMv7 | 1u << VFP3 | 1u << NEON | 1u << VFP32DREGS;
-    supported_ |= 1u << SUDIV | 1u << MLS;
+    supported_ |= 1u << SUDIV;
     if (FLAG_enable_movw_movt) supported_ |= 1u << MOVW_MOVT_IMMEDIATE_LOADS;
   }
   if (FLAG_enable_armv7) {
@@ -104,7 +104,6 @@
     if (FLAG_enable_movw_movt) supported_ |= 1u << MOVW_MOVT_IMMEDIATE_LOADS;
     if (FLAG_enable_32dregs) supported_ |= 1u << VFP32DREGS;
   }
-  if (FLAG_enable_mls) supported_ |= 1u << MLS;
   if (FLAG_enable_unaligned_accesses) supported_ |= 1u << UNALIGNED_ACCESSES;
 
 #else  // __arm__
@@ -119,7 +118,6 @@
 
   if (FLAG_enable_neon && cpu.has_neon()) supported_ |= 1u << NEON;
   if (FLAG_enable_sudiv && cpu.has_idiva()) supported_ |= 1u << SUDIV;
-  if (FLAG_enable_mls && cpu.has_thumb2()) supported_ |= 1u << MLS;
 
   if (cpu.architecture() >= 7) {
     if (FLAG_enable_armv7) supported_ |= 1u << ARMv7;
@@ -203,12 +201,11 @@
 
 void CpuFeatures::PrintFeatures() {
   printf(
-      "ARMv8=%d ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%d MLS=%d"
+      "ARMv8=%d ARMv7=%d VFP3=%d VFP32DREGS=%d NEON=%d SUDIV=%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__
@@ -252,31 +249,20 @@
   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();
-  }
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_,
+                                   reinterpret_cast<Address>(size), flush_mode);
 }
 
 // -----------------------------------------------------------------------------
@@ -486,17 +472,16 @@
     al | B26 | NegOffset | Register::kCode_fp * B16;
 const Instr kLdrStrInstrTypeMask = 0xffff0000;
 
-
 Assembler::Assembler(Isolate* isolate, void* buffer, int buffer_size)
     : AssemblerBase(isolate, buffer, buffer_size),
       recorded_ast_id_(TypeFeedbackId::None()),
-      pending_32_bit_constants_(&pending_32_bit_constants_buffer_[0]),
-      pending_64_bit_constants_(&pending_64_bit_constants_buffer_[0]),
+      pending_32_bit_constants_(),
+      pending_64_bit_constants_(),
       constant_pool_builder_(kLdrMaxReachBits, kVldrMaxReachBits),
       positions_recorder_(this) {
+  pending_32_bit_constants_.reserve(kMinNumPendingConstants);
+  pending_64_bit_constants_.reserve(kMinNumPendingConstants);
   reloc_info_writer.Reposition(buffer_ + buffer_size_, pc_);
-  num_pending_32_bit_constants_ = 0;
-  num_pending_64_bit_constants_ = 0;
   next_buffer_check_ = 0;
   const_pool_blocked_nesting_ = 0;
   no_const_pool_before_ = 0;
@@ -509,12 +494,6 @@
 
 Assembler::~Assembler() {
   DCHECK(const_pool_blocked_nesting_ == 0);
-  if (pending_32_bit_constants_ != &pending_32_bit_constants_buffer_[0]) {
-    delete[] pending_32_bit_constants_;
-  }
-  if (pending_64_bit_constants_ != &pending_64_bit_constants_buffer_[0]) {
-    delete[] pending_64_bit_constants_;
-  }
 }
 
 
@@ -527,8 +506,8 @@
     constant_pool_offset = EmitEmbeddedConstantPool();
   } else {
     CheckConstPool(true, false);
-    DCHECK(num_pending_32_bit_constants_ == 0);
-    DCHECK(num_pending_64_bit_constants_ == 0);
+    DCHECK(pending_32_bit_constants_.empty());
+    DCHECK(pending_64_bit_constants_.empty());
   }
   // Set up code descriptor.
   desc->buffer = buffer_;
@@ -538,6 +517,8 @@
   desc->constant_pool_size =
       (constant_pool_offset ? desc->instr_size - constant_pool_offset : 0);
   desc->origin = this;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -851,6 +832,19 @@
     // Load the position of the label relative to the generated code object
     // pointer in a register.
 
+    // The existing code must be a single 24-bit label chain link, followed by
+    // nops encoding the destination register. See mov_label_offset.
+
+    // Extract the destination register from the first nop instructions.
+    Register dst =
+        Register::from_code(Instruction::RmValue(instr_at(pos + kInstrSize)));
+    // In addition to the 24-bit label chain link, we expect to find one nop for
+    // ARMv7 and above, or two nops for ARMv6. See mov_label_offset.
+    DCHECK(IsNop(instr_at(pos + kInstrSize), dst.code()));
+    if (!CpuFeatures::IsSupported(ARMv7)) {
+      DCHECK(IsNop(instr_at(pos + 2 * kInstrSize), dst.code()));
+    }
+
     // Here are the instructions we need to emit:
     //   For ARMv7: target24 => target16_1:target16_0
     //      movw dst, #target16_0
@@ -860,10 +854,6 @@
     //      orr dst, dst, #target8_1 << 8
     //      orr dst, dst, #target8_2 << 16
 
-    // We extract the destination register from the emitted nop instruction.
-    Register dst = Register::from_code(
-        Instruction::RmValue(instr_at(pos + kInstrSize)));
-    DCHECK(IsNop(instr_at(pos + kInstrSize), dst.code()));
     uint32_t target24 = target_pos + (Code::kHeaderSize - kHeapObjectTag);
     DCHECK(is_uint24(target24));
     if (is_uint8(target24)) {
@@ -1390,7 +1380,6 @@
 
 
 void Assembler::bl(int branch_offset, Condition cond) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK((branch_offset & 3) == 0);
   int imm24 = branch_offset >> 2;
   CHECK(is_int24(imm24));
@@ -1399,7 +1388,6 @@
 
 
 void Assembler::blx(int branch_offset) {  // v5 and above
-  positions_recorder()->WriteRecordedPositions();
   DCHECK((branch_offset & 1) == 0);
   int h = ((branch_offset & 2) >> 1)*B24;
   int imm24 = branch_offset >> 2;
@@ -1409,14 +1397,12 @@
 
 
 void Assembler::blx(Register target, Condition cond) {  // v5 and above
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(!target.is(pc));
   emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX | target.code());
 }
 
 
 void Assembler::bx(Register target, Condition cond) {  // v5 and above, plus v4t
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(!target.is(pc));  // use of pc is actually allowed, but discouraged
   emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BX | target.code());
 }
@@ -1524,9 +1510,6 @@
 
 
 void Assembler::mov(Register dst, const Operand& src, SBit s, Condition cond) {
-  if (dst.is(pc)) {
-    positions_recorder()->WriteRecordedPositions();
-  }
   // Don't allow nop instructions in the form mov rn, rn to be generated using
   // the mov instruction. They must be generated using nop(int/NopMarkerTypes)
   // or MarkCode(int/NopMarkerTypes) pseudo instructions.
@@ -1609,7 +1592,7 @@
 void Assembler::mls(Register dst, Register src1, Register src2, Register srcA,
                     Condition cond) {
   DCHECK(!dst.is(pc) && !src1.is(pc) && !src2.is(pc) && !srcA.is(pc));
-  DCHECK(IsEnabled(MLS));
+  DCHECK(IsEnabled(ARMv7));
   emit(cond | B22 | B21 | dst.code()*B16 | srcA.code()*B12 |
        src2.code()*B8 | B7 | B4 | src1.code());
 }
@@ -2015,9 +1998,6 @@
 
 // Load/Store instructions.
 void Assembler::ldr(Register dst, const MemOperand& src, Condition cond) {
-  if (dst.is(pc)) {
-    positions_recorder()->WriteRecordedPositions();
-  }
   addrmod2(cond | B26 | L, dst, src);
 }
 
@@ -2076,6 +2056,53 @@
   addrmod3(cond | B7 | B6 | B5 | B4, src1, dst);
 }
 
+// Load/Store exclusive instructions.
+void Assembler::ldrex(Register dst, Register src, Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.75.
+  // cond(31-28) | 00011001(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+  emit(cond | B24 | B23 | B20 | src.code() * B16 | dst.code() * B12 | 0xf9f);
+}
+
+void Assembler::strex(Register src1, Register src2, Register dst,
+                      Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.212.
+  // cond(31-28) | 00011000(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
+  // Rt(3-0)
+  emit(cond | B24 | B23 | dst.code() * B16 | src1.code() * B12 | 0xf9 * B4 |
+       src2.code());
+}
+
+void Assembler::ldrexb(Register dst, Register src, Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.76.
+  // cond(31-28) | 00011101(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+  emit(cond | B24 | B23 | B22 | B20 | src.code() * B16 | dst.code() * B12 |
+       0xf9f);
+}
+
+void Assembler::strexb(Register src1, Register src2, Register dst,
+                       Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.213.
+  // cond(31-28) | 00011100(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
+  // Rt(3-0)
+  emit(cond | B24 | B23 | B22 | dst.code() * B16 | src1.code() * B12 |
+       0xf9 * B4 | src2.code());
+}
+
+void Assembler::ldrexh(Register dst, Register src, Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.78.
+  // cond(31-28) | 00011111(27-20) | Rn(19-16) | Rt(15-12) | 111110011111(11-0)
+  emit(cond | B24 | B23 | B22 | B21 | B20 | src.code() * B16 |
+       dst.code() * B12 | 0xf9f);
+}
+
+void Assembler::strexh(Register src1, Register src2, Register dst,
+                       Condition cond) {
+  // Instruction details available in ARM DDI 0406C.b, A8.8.215.
+  // cond(31-28) | 00011110(27-20) | Rn(19-16) | Rd(15-12) | 11111001(11-4) |
+  // Rt(3-0)
+  emit(cond | B24 | B23 | B22 | B21 | dst.code() * B16 | src1.code() * B12 |
+       0xf9 * B4 | src2.code());
+}
 
 // Preload instructions.
 void Assembler::pld(const MemOperand& address) {
@@ -3827,8 +3854,8 @@
 void Assembler::db(uint8_t data) {
   // db is used to write raw data. The constant pool should be emitted or
   // blocked before using db.
-  DCHECK(is_const_pool_blocked() || (num_pending_32_bit_constants_ == 0));
-  DCHECK(is_const_pool_blocked() || (num_pending_64_bit_constants_ == 0));
+  DCHECK(is_const_pool_blocked() || pending_32_bit_constants_.empty());
+  DCHECK(is_const_pool_blocked() || pending_64_bit_constants_.empty());
   CheckBuffer();
   *reinterpret_cast<uint8_t*>(pc_) = data;
   pc_ += sizeof(uint8_t);
@@ -3838,8 +3865,8 @@
 void Assembler::dd(uint32_t data) {
   // dd is used to write raw data. The constant pool should be emitted or
   // blocked before using dd.
-  DCHECK(is_const_pool_blocked() || (num_pending_32_bit_constants_ == 0));
-  DCHECK(is_const_pool_blocked() || (num_pending_64_bit_constants_ == 0));
+  DCHECK(is_const_pool_blocked() || pending_32_bit_constants_.empty());
+  DCHECK(is_const_pool_blocked() || pending_64_bit_constants_.empty());
   CheckBuffer();
   *reinterpret_cast<uint32_t*>(pc_) = data;
   pc_ += sizeof(uint32_t);
@@ -3849,8 +3876,8 @@
 void Assembler::dq(uint64_t value) {
   // dq is used to write raw data. The constant pool should be emitted or
   // blocked before using dq.
-  DCHECK(is_const_pool_blocked() || (num_pending_32_bit_constants_ == 0));
-  DCHECK(is_const_pool_blocked() || (num_pending_64_bit_constants_ == 0));
+  DCHECK(is_const_pool_blocked() || pending_32_bit_constants_.empty());
+  DCHECK(is_const_pool_blocked() || pending_64_bit_constants_.empty());
   CheckBuffer();
   *reinterpret_cast<uint64_t*>(pc_) = value;
   pc_ += sizeof(uint64_t);
@@ -3893,21 +3920,12 @@
   if (FLAG_enable_embedded_constant_pool) {
     return constant_pool_builder_.AddEntry(position, value, sharing_ok);
   } else {
-    DCHECK(num_pending_32_bit_constants_ < kMaxNumPending32Constants);
-    if (num_pending_32_bit_constants_ == 0) {
+    DCHECK(pending_32_bit_constants_.size() < kMaxNumPending32Constants);
+    if (pending_32_bit_constants_.empty()) {
       first_const_pool_32_use_ = position;
-    } else if (num_pending_32_bit_constants_ == kMinNumPendingConstants &&
-               pending_32_bit_constants_ ==
-                   &pending_32_bit_constants_buffer_[0]) {
-      // Inline buffer is full, switch to dynamically allocated buffer.
-      pending_32_bit_constants_ =
-          new ConstantPoolEntry[kMaxNumPending32Constants];
-      std::copy(&pending_32_bit_constants_buffer_[0],
-                &pending_32_bit_constants_buffer_[kMinNumPendingConstants],
-                &pending_32_bit_constants_[0]);
     }
     ConstantPoolEntry entry(position, value, sharing_ok);
-    pending_32_bit_constants_[num_pending_32_bit_constants_++] = entry;
+    pending_32_bit_constants_.push_back(entry);
 
     // Make sure the constant pool is not emitted in place of the next
     // instruction for which we just recorded relocation info.
@@ -3922,21 +3940,12 @@
   if (FLAG_enable_embedded_constant_pool) {
     return constant_pool_builder_.AddEntry(position, value);
   } else {
-    DCHECK(num_pending_64_bit_constants_ < kMaxNumPending64Constants);
-    if (num_pending_64_bit_constants_ == 0) {
+    DCHECK(pending_64_bit_constants_.size() < kMaxNumPending64Constants);
+    if (pending_64_bit_constants_.empty()) {
       first_const_pool_64_use_ = position;
-    } else if (num_pending_64_bit_constants_ == kMinNumPendingConstants &&
-               pending_64_bit_constants_ ==
-                   &pending_64_bit_constants_buffer_[0]) {
-      // Inline buffer is full, switch to dynamically allocated buffer.
-      pending_64_bit_constants_ =
-          new ConstantPoolEntry[kMaxNumPending64Constants];
-      std::copy(&pending_64_bit_constants_buffer_[0],
-                &pending_64_bit_constants_buffer_[kMinNumPendingConstants],
-                &pending_64_bit_constants_[0]);
     }
     ConstantPoolEntry entry(position, value);
-    pending_64_bit_constants_[num_pending_64_bit_constants_++] = entry;
+    pending_64_bit_constants_.push_back(entry);
 
     // Make sure the constant pool is not emitted in place of the next
     // instruction for which we just recorded relocation info.
@@ -3949,8 +3958,8 @@
 void Assembler::BlockConstPoolFor(int instructions) {
   if (FLAG_enable_embedded_constant_pool) {
     // Should be a no-op if using an embedded constant pool.
-    DCHECK(num_pending_32_bit_constants_ == 0);
-    DCHECK(num_pending_64_bit_constants_ == 0);
+    DCHECK(pending_32_bit_constants_.empty());
+    DCHECK(pending_64_bit_constants_.empty());
     return;
   }
 
@@ -3959,11 +3968,11 @@
     // Max pool start (if we need a jump and an alignment).
 #ifdef DEBUG
     int start = pc_limit + kInstrSize + 2 * kPointerSize;
-    DCHECK((num_pending_32_bit_constants_ == 0) ||
+    DCHECK(pending_32_bit_constants_.empty() ||
            (start - first_const_pool_32_use_ +
-                num_pending_64_bit_constants_ * kDoubleSize <
+                pending_64_bit_constants_.size() * kDoubleSize <
             kMaxDistToIntPool));
-    DCHECK((num_pending_64_bit_constants_ == 0) ||
+    DCHECK(pending_64_bit_constants_.empty() ||
            (start - first_const_pool_64_use_ < kMaxDistToFPPool));
 #endif
     no_const_pool_before_ = pc_limit;
@@ -3978,8 +3987,8 @@
 void Assembler::CheckConstPool(bool force_emit, bool require_jump) {
   if (FLAG_enable_embedded_constant_pool) {
     // Should be a no-op if using an embedded constant pool.
-    DCHECK(num_pending_32_bit_constants_ == 0);
-    DCHECK(num_pending_64_bit_constants_ == 0);
+    DCHECK(pending_32_bit_constants_.empty());
+    DCHECK(pending_64_bit_constants_.empty());
     return;
   }
 
@@ -3993,8 +4002,7 @@
   }
 
   // There is nothing to do if there are no pending constant pool entries.
-  if ((num_pending_32_bit_constants_ == 0) &&
-      (num_pending_64_bit_constants_ == 0)) {
+  if (pending_32_bit_constants_.empty() && pending_64_bit_constants_.empty()) {
     // Calculate the offset of the next check.
     next_buffer_check_ = pc_offset() + kCheckPoolInterval;
     return;
@@ -4006,9 +4014,9 @@
   int jump_instr = require_jump ? kInstrSize : 0;
   int size_up_to_marker = jump_instr + kInstrSize;
   int estimated_size_after_marker =
-      num_pending_32_bit_constants_ * kPointerSize;
-  bool has_int_values = (num_pending_32_bit_constants_ > 0);
-  bool has_fp_values = (num_pending_64_bit_constants_ > 0);
+      pending_32_bit_constants_.size() * kPointerSize;
+  bool has_int_values = !pending_32_bit_constants_.empty();
+  bool has_fp_values = !pending_64_bit_constants_.empty();
   bool require_64_bit_align = false;
   if (has_fp_values) {
     require_64_bit_align =
@@ -4017,7 +4025,8 @@
     if (require_64_bit_align) {
       estimated_size_after_marker += kInstrSize;
     }
-    estimated_size_after_marker += num_pending_64_bit_constants_ * kDoubleSize;
+    estimated_size_after_marker +=
+        pending_64_bit_constants_.size() * kDoubleSize;
   }
   int estimated_size = size_up_to_marker + estimated_size_after_marker;
 
@@ -4036,7 +4045,7 @@
       // The 64-bit constants are always emitted before the 32-bit constants, so
       // we can ignore the effect of the 32-bit constants on estimated_size.
       int dist64 = pc_offset() + estimated_size -
-                   num_pending_32_bit_constants_ * kPointerSize -
+                   pending_32_bit_constants_.size() * kPointerSize -
                    first_const_pool_64_use_;
       if ((dist64 >= kMaxDistToFPPool - kCheckPoolInterval) ||
           (!require_jump && (dist64 >= kMaxDistToFPPool / 2))) {
@@ -4055,7 +4064,7 @@
 
   // Deduplicate constants.
   int size_after_marker = estimated_size_after_marker;
-  for (int i = 0; i < num_pending_64_bit_constants_; i++) {
+  for (int i = 0; i < pending_64_bit_constants_.size(); i++) {
     ConstantPoolEntry& entry = pending_64_bit_constants_[i];
     DCHECK(!entry.is_merged());
     for (int j = 0; j < i; j++) {
@@ -4068,7 +4077,7 @@
     }
   }
 
-  for (int i = 0; i < num_pending_32_bit_constants_; i++) {
+  for (int i = 0; i < pending_32_bit_constants_.size(); i++) {
     ConstantPoolEntry& entry = pending_32_bit_constants_[i];
     DCHECK(!entry.is_merged());
     if (!entry.sharing_ok()) continue;
@@ -4113,7 +4122,7 @@
 
     // Emit 64-bit constant pool entries first: their range is smaller than
     // 32-bit entries.
-    for (int i = 0; i < num_pending_64_bit_constants_; i++) {
+    for (int i = 0; i < pending_64_bit_constants_.size(); i++) {
       ConstantPoolEntry& entry = pending_64_bit_constants_[i];
 
       Instr instr = instr_at(entry.position());
@@ -4142,7 +4151,7 @@
     }
 
     // Emit 32-bit constant pool entries.
-    for (int i = 0; i < num_pending_32_bit_constants_; i++) {
+    for (int i = 0; i < pending_32_bit_constants_.size(); i++) {
       ConstantPoolEntry& entry = pending_32_bit_constants_[i];
       Instr instr = instr_at(entry.position());
 
@@ -4176,8 +4185,8 @@
       }
     }
 
-    num_pending_32_bit_constants_ = 0;
-    num_pending_64_bit_constants_ = 0;
+    pending_32_bit_constants_.clear();
+    pending_64_bit_constants_.clear();
     first_const_pool_32_use_ = -1;
     first_const_pool_64_use_ = -1;
 
diff --git a/src/arm/assembler-arm.h b/src/arm/assembler-arm.h
index 26e062b..461d5b0 100644
--- a/src/arm/assembler-arm.h
+++ b/src/arm/assembler-arm.h
@@ -118,8 +118,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -147,9 +145,22 @@
 #undef DECLARE_REGISTER
 const Register no_reg = {Register::kCode_no_reg};
 
+static const bool kSimpleFPAliasing = false;
+
 // Single word VFP register.
 struct SwVfpRegister {
+  enum Code {
+#define REGISTER_CODE(R) kCode_##R,
+    FLOAT_REGISTERS(REGISTER_CODE)
+#undef REGISTER_CODE
+        kAfterLast,
+    kCode_no_reg = -1
+  };
+
+  static const int kMaxNumRegisters = Code::kAfterLast;
+
   static const int kSizeInBytes = 4;
+
   bool is_valid() const { return 0 <= reg_code && reg_code < 32; }
   bool is(SwVfpRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -195,8 +206,6 @@
   //  d15: scratch register.
   static const int kSizeInBytes = 8;
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
   bool is(DwVfpRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -986,6 +995,14 @@
             Register src2,
             const MemOperand& dst, Condition cond = al);
 
+  // Load/Store exclusive instructions
+  void ldrex(Register dst, Register src, Condition cond = al);
+  void strex(Register src1, Register src2, Register dst, Condition cond = al);
+  void ldrexb(Register dst, Register src, Condition cond = al);
+  void strexb(Register src1, Register src2, Register dst, Condition cond = al);
+  void ldrexh(Register dst, Register src, Condition cond = al);
+  void strexh(Register src1, Register src2, Register dst, Condition cond = al);
+
   // Preload instructions
   void pld(const MemOperand& address);
 
@@ -1312,6 +1329,10 @@
     vstm(db_w, sp, src, src, cond);
   }
 
+  void vpush(SwVfpRegister src, Condition cond = al) {
+    vstm(db_w, sp, src, src, cond);
+  }
+
   void vpop(DwVfpRegister dst, Condition cond = al) {
     vldm(ia_w, sp, dst, dst, cond);
   }
@@ -1545,10 +1566,10 @@
       // Max pool start (if we need a jump and an alignment).
       int start = pc_offset() + kInstrSize + 2 * kPointerSize;
       // Check the constant pool hasn't been blocked for too long.
-      DCHECK((num_pending_32_bit_constants_ == 0) ||
-             (start + num_pending_64_bit_constants_ * kDoubleSize <
+      DCHECK(pending_32_bit_constants_.empty() ||
+             (start + pending_64_bit_constants_.size() * kDoubleSize <
               (first_const_pool_32_use_ + kMaxDistToIntPool)));
-      DCHECK((num_pending_64_bit_constants_ == 0) ||
+      DCHECK(pending_64_bit_constants_.empty() ||
              (start < (first_const_pool_64_use_ + kMaxDistToFPPool)));
 #endif
       // Two cases:
@@ -1615,14 +1636,8 @@
   // pending relocation entry per instruction.
 
   // The buffers of pending constant pool entries.
-  ConstantPoolEntry pending_32_bit_constants_buffer_[kMinNumPendingConstants];
-  ConstantPoolEntry pending_64_bit_constants_buffer_[kMinNumPendingConstants];
-  ConstantPoolEntry* pending_32_bit_constants_;
-  ConstantPoolEntry* pending_64_bit_constants_;
-  // Number of pending constant pool entries in the 32 bits buffer.
-  int num_pending_32_bit_constants_;
-  // Number of pending constant pool entries in the 64 bits buffer.
-  int num_pending_64_bit_constants_;
+  std::vector<ConstantPoolEntry> pending_32_bit_constants_;
+  std::vector<ConstantPoolEntry> pending_64_bit_constants_;
 
   ConstantPoolBuilder constant_pool_builder_;
 
diff --git a/src/arm/builtins-arm.cc b/src/arm/builtins-arm.cc
index 031b483..365bc1e 100644
--- a/src/arm/builtins-arm.cc
+++ b/src/arm/builtins-arm.cc
@@ -16,10 +16,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- r0                 : number of arguments excluding receiver
   //  -- r1                 : target
@@ -38,23 +35,8 @@
   __ ldr(cp, FieldMemOperand(r1, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(r1);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(r3);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(r1, r3);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
+  const int num_extra_args = 2;
+  __ Push(r1, r3);
 
   // JumpToExternalReference expects r0 to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -140,6 +122,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- r0                 : number of arguments
+  //  -- r1                 : function
+  //  -- cp                 : context
   //  -- lr                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -152,9 +136,9 @@
   DoubleRegister const reg = (kind == MathMaxMinKind::kMin) ? d2 : d1;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in r1 and the double value in d1.
-  __ LoadRoot(r1, root_index);
-  __ vldr(d1, FieldMemOperand(r1, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in r5 and the double value in d1.
+  __ LoadRoot(r5, root_index);
+  __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset));
 
   // Remember how many slots to drop (including the receiver).
   __ add(r4, r0, Operand(1));
@@ -170,33 +154,36 @@
     __ ldr(r2, MemOperand(sp, r0, LSL, kPointerSizeLog2));
 
     // Load the double value of the parameter into d2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(r2, &convert_smi);
     __ ldr(r3, FieldMemOperand(r2, HeapObject::kMapOffset));
     __ JumpIfRoot(r3, Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      DCHECK(!FLAG_enable_embedded_constant_pool);
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(lr, fp, cp, r1);
+      __ add(fp, sp, Operand(2 * kPointerSize));
       __ SmiTag(r0);
       __ SmiTag(r4);
-      __ Push(r0, r1, r4);
+      __ Push(r0, r4, r5);
       __ mov(r0, r2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mov(r2, r0);
-      __ Pop(r0, r1, r4);
+      __ Pop(r0, r4, r5);
       {
         // Restore the double accumulator value (d1).
         Label done_restore;
-        __ SmiToDouble(d1, r1);
-        __ JumpIfSmi(r1, &done_restore);
-        __ vldr(d1, FieldMemOperand(r1, HeapNumber::kValueOffset));
+        __ SmiToDouble(d1, r5);
+        __ JumpIfSmi(r5, &done_restore);
+        __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset));
         __ bind(&done_restore);
       }
       __ SmiUntag(r4);
       __ SmiUntag(r0);
+      __ Pop(lr, fp, cp, r1);
     }
     __ b(&convert);
     __ bind(&convert_number);
@@ -222,18 +209,18 @@
     // Result is on the right hand side.
     __ bind(&compare_swap);
     __ vmov(d1, d2);
-    __ mov(r1, r2);
+    __ mov(r5, r2);
     __ b(&loop);
 
     // At least one side is NaN, which means that the result will be NaN too.
     __ bind(&compare_nan);
-    __ LoadRoot(r1, Heap::kNanValueRootIndex);
-    __ vldr(d1, FieldMemOperand(r1, HeapNumber::kValueOffset));
+    __ LoadRoot(r5, Heap::kNanValueRootIndex);
+    __ vldr(d1, FieldMemOperand(r5, HeapNumber::kValueOffset));
     __ b(&loop);
   }
 
   __ bind(&done_loop);
-  __ mov(r0, r1);
+  __ mov(r0, r5);
   __ Drop(r4);
   __ Ret();
 }
@@ -259,8 +246,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0.
   __ bind(&no_arguments);
@@ -308,8 +294,7 @@
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
       __ Push(r1, r3);
       __ Move(r0, r2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(r2, r0);
       __ Pop(r1, r3);
     }
@@ -708,8 +693,8 @@
   __ AssertGeneratorObject(r1);
 
   // Store input value into generator object.
-  __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOffset));
-  __ RecordWriteField(r1, JSGeneratorObject::kInputOffset, r0, r3,
+  __ str(r0, FieldMemOperand(r1, JSGeneratorObject::kInputOrDebugPosOffset));
+  __ RecordWriteField(r1, JSGeneratorObject::kInputOrDebugPosOffset, r0, r3,
                       kLRHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -720,21 +705,24 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ mov(ip, Operand(last_step_action));
+  __ ldrsb(ip, MemOperand(ip));
+  __ cmp(ip, Operand(StepIn));
+  __ b(ge, &prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ mov(ip, Operand(debug_suspended_generator));
+  __ ldr(ip, MemOperand(ip));
+  __ cmp(ip, Operand(r1));
+  __ b(eq, &prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Push receiver.
   __ ldr(ip, FieldMemOperand(r1, JSGeneratorObject::kReceiverOffset));
@@ -830,6 +818,26 @@
     __ Move(r0, r1);  // Continuation expects generator object in r0.
     __ Jump(r3);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r1, r2, r4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r1, r2);
+    __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r1, r2);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(r1, r2);
+    __ ldr(r4, FieldMemOperand(r1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
 }
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
@@ -959,6 +967,22 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ ldr(args_count,
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ ldr(args_count,
+         FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments.
+  __ add(sp, sp, args_count, LeaveCC);
+}
+
 // 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
@@ -1062,15 +1086,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // The return value is 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);
-
-  __ add(sp, sp, r2, LeaveCC);
+  LeaveInterpreterFrame(masm, r2);
   __ Jump(lr);
 
   // If the bytecode array is no longer present, then the underlying function
@@ -1086,6 +1102,31 @@
   __ Jump(r4);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ ldr(r1, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ ldr(kContextRegister,
+         MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, r2);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(r0);
+
+    // Push function as argument and compile for baseline.
+    __ push(r1);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(r0);
+  }
+  __ Jump(lr);
+}
+
 static void Generate_InterpreterPushArgs(MacroAssembler* masm, Register index,
                                          Register limit, Register scratch) {
   Label loop_header, loop_check;
@@ -1242,13 +1283,29 @@
   const int bailout_id = BailoutId::None().ToInt();
   __ cmp(temp, Operand(Smi::FromInt(bailout_id)));
   __ b(ne, &loop_bottom);
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ ldr(temp, FieldMemOperand(array_pointer,
                                SharedFunctionInfo::kOffsetToPreviousLiterals));
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ ldr(r4, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(r4, &maybe_cleared_weakcell);
+  // r4 is a pointer, therefore temp is a WeakCell pointing to a literals array.
   __ ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // r4 is a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ cmp(r4, Operand(Smi::FromInt(0)));
+  __ b(eq, &gotta_call_runtime);
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ ldr(r4, MemOperand(sp, 0));
   __ str(temp, FieldMemOperand(r4, JSFunction::kLiteralsOffset));
   __ push(index);
@@ -1659,6 +1716,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- r0    : number of arguments
+  //  -- r1    : function
+  //  -- cp    : context
   //  -- lr    : return address
   //  -- sp[0] : receiver
   // -----------------------------------
@@ -1668,7 +1728,7 @@
   {
     __ Pop(r0);
     __ JumpIfSmi(r0, &receiver_not_date);
-    __ CompareObjectType(r0, r1, r2, JS_DATE_TYPE);
+    __ CompareObjectType(r0, r2, r3, JS_DATE_TYPE);
     __ b(ne, &receiver_not_date);
   }
 
@@ -1698,7 +1758,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(r0, lr, fp);
+    __ Move(fp, sp);
+    __ Push(cp, r1);
+    __ Push(Smi::FromInt(0));
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2618,6 +2685,73 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in r0.
+  __ AssertString(r0);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ ldr(r2, FieldMemOperand(r0, String::kHashFieldOffset));
+  __ tst(r2, Operand(String::kContainsCachedArrayIndexMask));
+  __ b(ne, &runtime);
+  __ IndexFromHash(r2, r0);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(r0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in r0.
+  STATIC_ASSERT(kSmiTag == 0);
+  __ tst(r0, Operand(kSmiTagMask));
+  __ Ret(eq);
+
+  __ CompareObjectType(r0, r1, r1, HEAP_NUMBER_TYPE);
+  // r0: receiver
+  // r1: receiver instance type
+  __ Ret(eq);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in r0.
+  __ AssertNotNumber(r0);
+
+  __ CompareObjectType(r0, r1, r1, FIRST_NONSTRING_TYPE);
+  // r0: receiver
+  // r1: receiver instance type
+  __ Jump(masm->isolate()->builtins()->StringToNumber(), RelocInfo::CODE_TARGET,
+          lo);
+
+  Label not_oddball;
+  __ cmp(r1, Operand(ODDBALL_TYPE));
+  __ b(ne, &not_oddball);
+  __ ldr(r0, FieldMemOperand(r0, Oddball::kToNumberOffset));
+  __ Ret();
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(r0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r0 : actual number of arguments
diff --git a/src/arm/code-stubs-arm.cc b/src/arm/code-stubs-arm.cc
index 0224f9d..0ef31d7 100644
--- a/src/arm/code-stubs-arm.cc
+++ b/src/arm/code-stubs-arm.cc
@@ -22,70 +22,28 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ lsl(r5, r0, Operand(kPointerSizeLog2));
+  __ str(r1, MemOperand(sp, r5));
+  __ Push(r1);
+  __ Push(r2);
+  __ add(r0, r0, Operand(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(r0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(r0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
                                           Condition cond);
 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
@@ -942,7 +900,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1354,7 +1312,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -1798,6 +1755,7 @@
   // r2 : feedback vector
   // r3 : slot in feedback vector (Smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
@@ -1817,7 +1775,7 @@
   Register weak_value = r9;
   __ ldr(weak_value, FieldMemOperand(r5, WeakCell::kValueOffset));
   __ cmp(r1, weak_value);
-  __ b(eq, &done);
+  __ b(eq, &done_increment_count);
   __ CompareRoot(r5, Heap::kmegamorphic_symbolRootIndex);
   __ b(eq, &done);
   __ ldr(feedback_map, FieldMemOperand(r5, HeapObject::kMapOffset));
@@ -1840,7 +1798,7 @@
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, r5);
   __ cmp(r1, r5);
   __ b(ne, &megamorphic);
-  __ jmp(&done);
+  __ jmp(&done_increment_count);
 
   __ bind(&miss);
 
@@ -1869,11 +1827,28 @@
   // slot.
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ b(&done);
+  __ b(&done_initialize_count);
 
   __ bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ Move(r5, Operand(Smi::FromInt(1)));
+  __ add(r4, r2, Operand::PointerOffsetFromSmiKey(r3));
+  __ str(r5, FieldMemOperand(r4, FixedArray::kHeaderSize + kPointerSize));
+  __ b(&done);
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ add(r5, r2, Operand::PointerOffsetFromSmiKey(r3));
+  __ add(r5, r5, Operand(FixedArray::kHeaderSize + kPointerSize));
+  __ ldr(r4, FieldMemOperand(r5, 0));
+  __ add(r4, r4, Operand(Smi::FromInt(1)));
+  __ str(r4, FieldMemOperand(r5, 0));
+
   __ bind(&done);
 }
 
@@ -1935,7 +1910,7 @@
   __ add(r2, r2, Operand::PointerOffsetFromSmiKey(r3));
   __ add(r2, r2, Operand(FixedArray::kHeaderSize + kPointerSize));
   __ ldr(r3, FieldMemOperand(r2, 0));
-  __ add(r3, r3, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ add(r3, r3, Operand(Smi::FromInt(1)));
   __ str(r3, FieldMemOperand(r2, 0));
 
   __ mov(r2, r4);
@@ -1983,7 +1958,7 @@
   __ add(r2, r2, Operand::PointerOffsetFromSmiKey(r3));
   __ add(r2, r2, Operand(FixedArray::kHeaderSize + kPointerSize));
   __ ldr(r3, FieldMemOperand(r2, 0));
-  __ add(r3, r3, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ add(r3, r3, Operand(Smi::FromInt(1)));
   __ str(r3, FieldMemOperand(r2, 0));
 
   __ bind(&call_function);
@@ -2054,7 +2029,7 @@
   __ b(ne, &miss);
 
   // Initialize the call counter.
-  __ Move(r5, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Move(r5, Operand(Smi::FromInt(1)));
   __ add(r4, r2, Operand::PointerOffsetFromSmiKey(r3));
   __ str(r5, FieldMemOperand(r4, FixedArray::kHeaderSize + kPointerSize));
 
@@ -2152,13 +2127,7 @@
     // index_ is consumed by runtime conversion function.
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
   __ Move(index_, r0);
@@ -2488,67 +2457,13 @@
   // r3: from index (untagged)
   __ SmiTag(r3, r3);
   StringCharAtGenerator generator(r0, r3, r2, r0, &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ Drop(3);
   __ Ret();
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in r0.
-  STATIC_ASSERT(kSmiTag == 0);
-  __ tst(r0, Operand(kSmiTagMask));
-  __ Ret(eq);
-
-  __ CompareObjectType(r0, r1, r1, HEAP_NUMBER_TYPE);
-  // r0: receiver
-  // r1: receiver instance type
-  __ Ret(eq);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in r0.
-  __ AssertNotNumber(r0);
-
-  __ CompareObjectType(r0, r1, r1, FIRST_NONSTRING_TYPE);
-  // r0: receiver
-  // r1: receiver instance type
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub, lo);
-
-  Label not_oddball;
-  __ cmp(r1, Operand(ODDBALL_TYPE));
-  __ b(ne, &not_oddball);
-  __ ldr(r0, FieldMemOperand(r0, Oddball::kToNumberOffset));
-  __ Ret();
-  __ bind(&not_oddball);
-
-  __ Push(r0);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in r0.
-  __ AssertString(r0);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ ldr(r2, FieldMemOperand(r0, String::kHashFieldOffset));
-  __ tst(r2, Operand(String::kContainsCachedArrayIndexMask));
-  __ b(ne, &runtime);
-  __ IndexFromHash(r2, r0);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ Push(r0);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in r0.
   Label is_number;
@@ -2714,7 +2629,7 @@
   // Load r2 with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ Move(r2, handle(isolate()->heap()->undefined_value()));
+  __ Move(r2, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3559,14 +3474,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4196,19 +4111,13 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4216,8 +4125,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4237,13 +4144,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4325,7 +4234,7 @@
   InternalArrayNoArgumentConstructorStub stub0(isolate(), kind);
   __ TailCallStub(&stub0, lo);
 
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN, hi);
 
   if (IsFastPackedElementsKind(kind)) {
@@ -4547,10 +4456,10 @@
   // specified by the function's internal formal parameter count.
   Label rest_parameters;
   __ ldr(r0, MemOperand(r2, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ ldr(r1, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
-  __ ldr(r1,
-         FieldMemOperand(r1, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ sub(r0, r0, r1, SetCC);
+  __ ldr(r3, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
+  __ ldr(r3,
+         FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ sub(r0, r0, r3, SetCC);
   __ b(gt, &rest_parameters);
 
   // Return an empty rest parameter array.
@@ -4597,15 +4506,16 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- r0 : number of rest parameters (tagged)
+    //  -- r1 : function
     //  -- r2 : pointer to first rest parameters
     //  -- lr : return address
     // -----------------------------------
 
     // Allocate space for the rest parameter array plus the backing store.
     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, NO_ALLOCATION_FLAGS);
+    __ mov(r6, Operand(JSArray::kSize + FixedArray::kHeaderSize));
+    __ add(r6, r6, Operand(r0, LSL, kPointerSizeLog2 - 1));
+    __ Allocate(r6, r3, r4, r5, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r3.
@@ -4637,17 +4547,25 @@
     __ mov(r0, r4);
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ cmp(r6, Operand(Page::kMaxRegularHeapObjectSize));
+    __ b(gt, &too_big_for_new_space);
     {
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(r1);
-      __ Push(r0, r2, r1);
+      __ SmiTag(r6);
+      __ Push(r0, r2, r6);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ mov(r3, r0);
       __ Pop(r0, r2);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ push(r1);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -4906,9 +4824,9 @@
   __ cmp(ip, Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   __ b(eq, &arguments_adaptor);
   {
-    __ ldr(r1, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
+    __ ldr(r4, FieldMemOperand(r1, JSFunction::kSharedFunctionInfoOffset));
     __ ldr(r0, FieldMemOperand(
-                   r1, SharedFunctionInfo::kFormalParameterCountOffset));
+                   r4, SharedFunctionInfo::kFormalParameterCountOffset));
     __ add(r2, r2, Operand(r0, LSL, kPointerSizeLog2 - 1));
     __ add(r2, r2,
            Operand(StandardFrameConstants::kCallerSPOffset - 1 * kPointerSize));
@@ -4926,15 +4844,16 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- r0 : number of rest parameters (tagged)
+  //  -- r1 : function
   //  -- r2 : pointer to first rest parameters
   //  -- lr : return address
   // -----------------------------------
 
   // Allocate space for the strict arguments object plus the backing store.
   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, NO_ALLOCATION_FLAGS);
+  __ mov(r6, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
+  __ add(r6, r6, Operand(r0, LSL, kPointerSizeLog2 - 1));
+  __ Allocate(r6, r3, r4, r5, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r3.
@@ -4966,44 +4885,25 @@
   __ mov(r0, r4);
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ cmp(r6, Operand(Page::kMaxRegularHeapObjectSize));
+  __ b(gt, &too_big_for_new_space);
   {
     FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-    __ SmiTag(r1);
-    __ Push(r0, r2, r1);
+    __ SmiTag(r6);
+    __ Push(r0, r2, r6);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ mov(r3, r0);
     __ Pop(r0, r2);
   }
   __ b(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context = cp;
-  Register result = r0;
-  Register slot = r2;
-
-  // Go up the context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ ldr(result, ContextMemOperand(context, Context::PREVIOUS_INDEX));
-    context = result;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ add(result, context, Operand(slot, LSL, kPointerSizeLog2));
-  __ ldr(result, ContextMemOperand(result));
-  __ ldr(result, FieldMemOperand(result, PropertyCell::kValueOffset));
-
-  // If the result is not the_hole, return. Otherwise, handle in the runtime.
-  __ CompareRoot(result, Heap::kTheHoleValueRootIndex);
-  __ Ret(ne);
-
-  // Fallback to runtime.
-  __ SmiTag(slot);
-  __ push(slot);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ push(r1);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/arm/codegen-arm.cc b/src/arm/codegen-arm.cc
index 4014aba..a7b38ff 100644
--- a/src/arm/codegen-arm.cc
+++ b/src/arm/codegen-arm.cc
@@ -16,68 +16,6 @@
 
 #define __ masm.
 
-
-#if defined(USE_SIMULATOR)
-byte* fast_exp_arm_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  return Simulator::current(isolate)
-      ->CallFPReturnsDouble(fast_exp_arm_machine_code, x, 0);
-}
-#endif
-
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-
-  {
-    DwVfpRegister input = d0;
-    DwVfpRegister result = d1;
-    DwVfpRegister double_scratch1 = d2;
-    DwVfpRegister double_scratch2 = d3;
-    Register temp1 = r4;
-    Register temp2 = r5;
-    Register temp3 = r6;
-
-    if (masm.use_eabi_hardfloat()) {
-      // Input value is in d0 anyway, nothing to do.
-    } else {
-      __ vmov(input, r0, r1);
-    }
-    __ Push(temp3, temp2, temp1);
-    MathExpGenerator::EmitMathExp(
-        &masm, input, result, double_scratch1, double_scratch2,
-        temp1, temp2, temp3);
-    __ Pop(temp3, temp2, temp1);
-    if (masm.use_eabi_hardfloat()) {
-      __ vmov(d0, result);
-    } else {
-      __ vmov(r0, r1, result);
-    }
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_arm_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
 #if defined(V8_HOST_ARCH_ARM)
 MemCopyUint8Function CreateMemCopyUint8Function(Isolate* isolate,
                                                 MemCopyUint8Function stub) {
@@ -794,94 +732,6 @@
   __ bind(&done);
 }
 
-
-static MemOperand ExpConstant(int index, Register base) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   DwVfpRegister input,
-                                   DwVfpRegister result,
-                                   DwVfpRegister double_scratch1,
-                                   DwVfpRegister double_scratch2,
-                                   Register temp1,
-                                   Register temp2,
-                                   Register temp3) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch1));
-  DCHECK(!input.is(double_scratch2));
-  DCHECK(!result.is(double_scratch1));
-  DCHECK(!result.is(double_scratch2));
-  DCHECK(!double_scratch1.is(double_scratch2));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(!temp1.is(temp3));
-  DCHECK(!temp2.is(temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label zero, infinity, done;
-
-  __ mov(temp3, Operand(ExternalReference::math_exp_constants(0)));
-
-  __ vldr(double_scratch1, ExpConstant(0, temp3));
-  __ VFPCompareAndSetFlags(double_scratch1, input);
-  __ b(ge, &zero);
-
-  __ vldr(double_scratch2, ExpConstant(1, temp3));
-  __ VFPCompareAndSetFlags(input, double_scratch2);
-  __ b(ge, &infinity);
-
-  __ vldr(double_scratch1, ExpConstant(3, temp3));
-  __ vldr(result, ExpConstant(4, temp3));
-  __ vmul(double_scratch1, double_scratch1, input);
-  __ vadd(double_scratch1, double_scratch1, result);
-  __ VmovLow(temp2, double_scratch1);
-  __ vsub(double_scratch1, double_scratch1, result);
-  __ vldr(result, ExpConstant(6, temp3));
-  __ vldr(double_scratch2, ExpConstant(5, temp3));
-  __ vmul(double_scratch1, double_scratch1, double_scratch2);
-  __ vsub(double_scratch1, double_scratch1, input);
-  __ vsub(result, result, double_scratch1);
-  __ vmul(double_scratch2, double_scratch1, double_scratch1);
-  __ vmul(result, result, double_scratch2);
-  __ vldr(double_scratch2, ExpConstant(7, temp3));
-  __ vmul(result, result, double_scratch2);
-  __ vsub(result, result, double_scratch1);
-  // Mov 1 in double_scratch2 as math_exp_constants_array[8] == 1.
-  DCHECK(*reinterpret_cast<double*>
-         (ExternalReference::math_exp_constants(8).address()) == 1);
-  __ vmov(double_scratch2, 1);
-  __ vadd(result, result, double_scratch2);
-  __ mov(temp1, Operand(temp2, LSR, 11));
-  __ Ubfx(temp2, temp2, 0, 11);
-  __ add(temp1, temp1, Operand(0x3ff));
-
-  // Must not call ExpConstant() after overwriting temp3!
-  __ mov(temp3, Operand(ExternalReference::math_exp_log_table()));
-  __ add(temp3, temp3, Operand(temp2, LSL, 3));
-  __ ldm(ia, temp3, temp2.bit() | temp3.bit());
-  // The first word is loaded is the lower number register.
-  if (temp2.code() < temp3.code()) {
-    __ orr(temp1, temp3, Operand(temp1, LSL, 20));
-    __ vmov(double_scratch1, temp2, temp1);
-  } else {
-    __ orr(temp1, temp2, Operand(temp1, LSL, 20));
-    __ vmov(double_scratch1, temp3, temp1);
-  }
-  __ vmul(result, result, double_scratch1);
-  __ b(&done);
-
-  __ bind(&zero);
-  __ vmov(result, kDoubleRegZero);
-  __ b(&done);
-
-  __ bind(&infinity);
-  __ vldr(result, ExpConstant(2, temp3));
-
-  __ bind(&done);
-}
-
 #undef __
 
 #ifdef DEBUG
diff --git a/src/arm/codegen-arm.h b/src/arm/codegen-arm.h
index 880825a..0086739 100644
--- a/src/arm/codegen-arm.h
+++ b/src/arm/codegen-arm.h
@@ -28,22 +28,6 @@
 };
 
 
-class MathExpGenerator : public AllStatic {
- public:
-  // Register input isn't modified. All other registers are clobbered.
-  static void EmitMathExp(MacroAssembler* masm,
-                          DwVfpRegister input,
-                          DwVfpRegister result,
-                          DwVfpRegister double_scratch1,
-                          DwVfpRegister double_scratch2,
-                          Register temp1,
-                          Register temp2,
-                          Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/arm/deoptimizer-arm.cc b/src/arm/deoptimizer-arm.cc
index 2785b75..c569e66 100644
--- a/src/arm/deoptimizer-arm.cc
+++ b/src/arm/deoptimizer-arm.cc
@@ -66,15 +66,12 @@
     Address deopt_entry = GetDeoptimizationEntry(isolate, i, LAZY);
     // We need calls to have a predictable size in the unoptimized code, but
     // this is optimized code, so we don't have to have a predictable size.
-    int call_size_in_bytes =
-        MacroAssembler::CallSizeNotPredictableCodeSize(isolate,
-                                                       deopt_entry,
-                                                       RelocInfo::NONE32);
+    int call_size_in_bytes = MacroAssembler::CallDeoptimizerSize();
     int call_size_in_words = call_size_in_bytes / Assembler::kInstrSize;
     DCHECK(call_size_in_bytes % Assembler::kInstrSize == 0);
     DCHECK(call_size_in_bytes <= patch_size());
     CodePatcher patcher(isolate, call_address, call_size_in_words);
-    patcher.masm()->Call(deopt_entry, RelocInfo::NONE32);
+    patcher.masm()->CallDeoptimizer(deopt_entry);
     DCHECK(prev_call_address == NULL ||
            call_address >= prev_call_address + patch_size());
     DCHECK(call_address + patch_size() <= code->instruction_end());
@@ -189,8 +186,7 @@
   // Copy VFP registers to
   // double_registers_[DoubleRegister::kMaxNumAllocatableRegisters]
   int double_regs_offset = FrameDescription::double_registers_offset();
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     int dst_offset = code * kDoubleSize + double_regs_offset;
@@ -307,15 +303,50 @@
 void Deoptimizer::TableEntryGenerator::GeneratePrologue() {
   // Create a sequence of deoptimization entries.
   // Note that registers are still live when jumping to an entry.
-  Label done;
-  for (int i = 0; i < count(); i++) {
-    int start = masm()->pc_offset();
-    USE(start);
-    __ mov(ip, Operand(i));
-    __ b(&done);
-    DCHECK(masm()->pc_offset() - start == table_entry_size_);
+
+  // We need to be able to generate immediates up to kMaxNumberOfEntries. On
+  // ARMv7, we can use movw (with a maximum immediate of 0xffff). On ARMv6, we
+  // need two instructions.
+  STATIC_ASSERT((kMaxNumberOfEntries - 1) <= 0xffff);
+  if (CpuFeatures::IsSupported(ARMv7)) {
+    CpuFeatureScope scope(masm(), ARMv7);
+    Label done;
+    for (int i = 0; i < count(); i++) {
+      int start = masm()->pc_offset();
+      USE(start);
+      __ movw(ip, i);
+      __ b(&done);
+      DCHECK_EQ(table_entry_size_, masm()->pc_offset() - start);
+    }
+    __ bind(&done);
+  } else {
+    // We want to keep table_entry_size_ == 8 (since this is the common case),
+    // but we need two instructions to load most immediates over 0xff. To handle
+    // this, we set the low byte in the main table, and then set the high byte
+    // in a separate table if necessary.
+    Label high_fixes[256];
+    int high_fix_max = (count() - 1) >> 8;
+    DCHECK_GT(arraysize(high_fixes), high_fix_max);
+    for (int i = 0; i < count(); i++) {
+      int start = masm()->pc_offset();
+      USE(start);
+      __ mov(ip, Operand(i & 0xff));  // Set the low byte.
+      __ b(&high_fixes[i >> 8]);      // Jump to the secondary table.
+      DCHECK_EQ(table_entry_size_, masm()->pc_offset() - start);
+    }
+    // Generate the secondary table, to set the high byte.
+    for (int high = 1; high <= high_fix_max; high++) {
+      __ bind(&high_fixes[high]);
+      __ orr(ip, ip, Operand(high << 8));
+      // If this isn't the last entry, emit a branch to the end of the table.
+      // The last entry can just fall through.
+      if (high < high_fix_max) __ b(&high_fixes[0]);
+    }
+    // Bind high_fixes[0] last, for indices like 0x00**. This case requires no
+    // fix-up, so for (common) small tables we can jump here, then just fall
+    // through with no additional branch.
+    __ bind(&high_fixes[0]);
   }
-  __ bind(&done);
   __ push(ip);
 }
 
diff --git a/src/arm/disasm-arm.cc b/src/arm/disasm-arm.cc
index 20a898e..1bb33fa 100644
--- a/src/arm/disasm-arm.cc
+++ b/src/arm/disasm-arm.cc
@@ -40,6 +40,7 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
 
 //------------------------------------------------------------------------------
 
@@ -755,7 +756,45 @@
           Format(instr, "'um'al'cond's 'rd, 'rn, 'rm, 'rs");
         }
       } else {
-        Unknown(instr);  // not used by V8
+        if (instr->Bits(24, 23) == 3) {
+          if (instr->Bit(20) == 1) {
+            // ldrex
+            switch (instr->Bits(22, 21)) {
+              case 0:
+                Format(instr, "ldrex'cond 'rt, ['rn]");
+                break;
+              case 2:
+                Format(instr, "ldrexb'cond 'rt, ['rn]");
+                break;
+              case 3:
+                Format(instr, "ldrexh'cond 'rt, ['rn]");
+                break;
+              default:
+                UNREACHABLE();
+                break;
+            }
+          } else {
+            // strex
+            // The instruction is documented as strex rd, rt, [rn], but the
+            // "rt" register is using the rm bits.
+            switch (instr->Bits(22, 21)) {
+              case 0:
+                Format(instr, "strex'cond 'rd, 'rm, ['rn]");
+                break;
+              case 2:
+                Format(instr, "strexb'cond 'rd, 'rm, ['rn]");
+                break;
+              case 3:
+                Format(instr, "strexh'cond 'rd, 'rm, ['rn]");
+                break;
+              default:
+                UNREACHABLE();
+                break;
+            }
+          }
+        } else {
+          Unknown(instr);  // not used by V8
+        }
       }
     } else if ((instr->Bit(20) == 0) && ((instr->Bits(7, 4) & 0xd) == 0xd)) {
       // ldrd, strd
@@ -2010,7 +2049,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -2021,7 +2060,7 @@
 
 
 const char* NameConverter::NameOfCPURegister(int reg) const {
-  return v8::internal::Register::from_code(reg).ToString();
+  return v8::internal::GetRegConfig()->GetGeneralRegisterName(reg);
 }
 
 
@@ -2073,9 +2112,8 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    v8::internal::PrintF(
-        f, "%p    %08x      %s\n",
-        prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
+    v8::internal::PrintF(f, "%p    %08x      %s\n", static_cast<void*>(prev_pc),
+                         *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
   }
 }
 
diff --git a/src/arm/interface-descriptors-arm.cc b/src/arm/interface-descriptors-arm.cc
index 4e8c95c..fa0c040 100644
--- a/src/arm/interface-descriptors-arm.cc
+++ b/src/arm/interface-descriptors-arm.cc
@@ -13,6 +13,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {r0, r1, r2, r3, r4};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return r1; }
 const Register LoadDescriptor::NameRegister() { return r2; }
@@ -41,9 +49,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return r3; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return r2; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return r2; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r0; }
 
@@ -65,8 +70,6 @@
 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) {
@@ -255,18 +258,17 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // r0 -- number of arguments
   // r1 -- function
   // r2 -- allocation site with elements kind
-  Register registers[] = {r1, r2};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  Register registers[] = {r1, r2, r0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {r1, r2, r0};
@@ -274,24 +276,7 @@
 }
 
 
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // register state
-  // r0 -- number of arguments
-  // r1 -- constructor function
-  Register registers[] = {r1};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {r1, r0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {r0};
diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
index d723251..4feadb7 100644
--- a/src/arm/macro-assembler-arm.cc
+++ b/src/arm/macro-assembler-arm.cc
@@ -89,17 +89,6 @@
 }
 
 
-int MacroAssembler::CallSizeNotPredictableCodeSize(Isolate* isolate,
-                                                   Address target,
-                                                   RelocInfo::Mode rmode,
-                                                   Condition cond) {
-  Instr mov_instr = cond | MOV | LeaveCC;
-  Operand mov_operand = Operand(reinterpret_cast<intptr_t>(target), rmode);
-  return kInstrSize +
-         mov_operand.instructions_required(NULL, mov_instr) * kInstrSize;
-}
-
-
 void MacroAssembler::Call(Address target,
                           RelocInfo::Mode rmode,
                           Condition cond,
@@ -131,12 +120,6 @@
   //  blx   ip
   //                      @ return address
 
-  // Statement positions are expected to be recorded when the target
-  // address is loaded. The mov method will automatically record
-  // positions when pc is the target, since this is not the case here
-  // we have to do it explicitly.
-  positions_recorder()->WriteRecordedPositions();
-
   mov(ip, Operand(reinterpret_cast<int32_t>(target), rmode));
   blx(ip, cond);
 
@@ -173,6 +156,40 @@
   Call(reinterpret_cast<Address>(code.location()), rmode, cond, mode);
 }
 
+void MacroAssembler::CallDeoptimizer(Address target) {
+  BlockConstPoolScope block_const_pool(this);
+
+  uintptr_t target_raw = reinterpret_cast<uintptr_t>(target);
+
+  // We use blx, like a call, but it does not return here. The link register is
+  // used by the deoptimizer to work out what called it.
+  if (CpuFeatures::IsSupported(ARMv7)) {
+    CpuFeatureScope scope(this, ARMv7);
+    movw(ip, target_raw & 0xffff);
+    movt(ip, (target_raw >> 16) & 0xffff);
+    blx(ip);
+  } else {
+    // We need to load a literal, but we can't use the usual constant pool
+    // because we call this from a patcher, and cannot afford the guard
+    // instruction and other administrative overhead.
+    ldr(ip, MemOperand(pc, (2 * kInstrSize) - kPcLoadDelta));
+    blx(ip);
+    dd(target_raw);
+  }
+}
+
+int MacroAssembler::CallDeoptimizerSize() {
+  // ARMv7+:
+  //    movw    ip, ...
+  //    movt    ip, ...
+  //    blx     ip              @ This never returns.
+  //
+  // ARMv6:
+  //    ldr     ip, =address
+  //    blx     ip              @ This never returns.
+  //    .word   address
+  return 3 * kInstrSize;
+}
 
 void MacroAssembler::Ret(Condition cond) {
   bx(lr, cond);
@@ -245,6 +262,11 @@
   }
 }
 
+void MacroAssembler::Move(SwVfpRegister dst, SwVfpRegister src) {
+  if (!dst.is(src)) {
+    vmov(dst, src);
+  }
+}
 
 void MacroAssembler::Move(DwVfpRegister dst, DwVfpRegister src) {
   if (!dst.is(src)) {
@@ -252,11 +274,10 @@
   }
 }
 
-
 void MacroAssembler::Mls(Register dst, Register src1, Register src2,
                          Register srcA, Condition cond) {
-  if (CpuFeatures::IsSupported(MLS)) {
-    CpuFeatureScope scope(this, MLS);
+  if (CpuFeatures::IsSupported(ARMv7)) {
+    CpuFeatureScope scope(this, ARMv7);
     mls(dst, src1, src2, srcA, cond);
   } else {
     DCHECK(!srcA.is(ip));
@@ -841,8 +862,7 @@
   // Number of d-regs not known at snapshot time.
   DCHECK(!serializer_enabled());
   // General purpose registers are pushed last on the stack.
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   int doubles_size = config->num_allocatable_double_registers() * kDoubleSize;
   int register_offset = SafepointRegisterStackIndex(reg.code()) * kPointerSize;
   return MemOperand(sp, doubles_size + register_offset);
@@ -1237,9 +1257,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   ldr(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  ldr(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  ldr(vector,
-      FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  ldr(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  ldr(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -1553,12 +1572,13 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  mov(r4, Operand(step_in_enabled));
-  ldrb(r4, MemOperand(r4));
-  cmp(r4, Operand(0));
-  b(eq, &skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  mov(r4, Operand(last_step_action));
+  ldrsb(r4, MemOperand(r4));
+  cmp(r4, Operand(StepIn));
+  b(lt, &skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -3870,8 +3890,7 @@
   if (reg5.is_valid()) regs |= reg5.bit();
   if (reg6.is_valid()) regs |= reg6.bit();
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     Register candidate = Register::from_code(code);
@@ -3969,6 +3988,10 @@
     Assembler::FlushICache(masm_.isolate(), address_, size_);
   }
 
+  // Check that we don't have any pending constant pools.
+  DCHECK(masm_.pending_32_bit_constants_.empty());
+  DCHECK(masm_.pending_64_bit_constants_.empty());
+
   // Check that the code was patched as expected.
   DCHECK(masm_.pc_ == address_ + size_);
   DCHECK(masm_.reloc_info_writer.pos() == address_ + size_ + Assembler::kGap);
diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h
index 8fa197c..16dcd47 100644
--- a/src/arm/macro-assembler-arm.h
+++ b/src/arm/macro-assembler-arm.h
@@ -101,10 +101,6 @@
   int CallStubSize(CodeStub* stub,
                    TypeFeedbackId ast_id = TypeFeedbackId::None(),
                    Condition cond = al);
-  static int CallSizeNotPredictableCodeSize(Isolate* isolate,
-                                            Address target,
-                                            RelocInfo::Mode rmode,
-                                            Condition cond = al);
 
   // Jump, Call, and Ret pseudo instructions implementing inter-working.
   void Jump(Register target, Condition cond = al);
@@ -114,17 +110,19 @@
   void Call(Address target, RelocInfo::Mode rmode,
             Condition cond = al,
             TargetAddressStorageMode mode = CAN_INLINE_TARGET_ADDRESS);
+  void Call(Handle<Code> code, RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
+            TypeFeedbackId ast_id = TypeFeedbackId::None(), Condition cond = al,
+            TargetAddressStorageMode mode = CAN_INLINE_TARGET_ADDRESS);
   int CallSize(Handle<Code> code,
                RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
                TypeFeedbackId ast_id = TypeFeedbackId::None(),
                Condition cond = al);
-  void Call(Handle<Code> code,
-            RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
-            TypeFeedbackId ast_id = TypeFeedbackId::None(),
-            Condition cond = al,
-            TargetAddressStorageMode mode = CAN_INLINE_TARGET_ADDRESS);
   void Ret(Condition cond = al);
 
+  // Used for patching in calls to the deoptimizer.
+  void CallDeoptimizer(Address target);
+  static int CallDeoptimizerSize();
+
   // Emit code to discard a non-negative number of pointer-sized elements
   // from the stack, clobbering only the sp register.
   void Drop(int count, Condition cond = al);
@@ -172,6 +170,7 @@
       mov(dst, src, sbit, cond);
     }
   }
+  void Move(SwVfpRegister dst, SwVfpRegister src);
   void Move(DwVfpRegister dst, DwVfpRegister src);
 
   void Load(Register dst, const MemOperand& src, Representation r);
diff --git a/src/arm/simulator-arm.cc b/src/arm/simulator-arm.cc
index 1a870c5..afe31db 100644
--- a/src/arm/simulator-arm.cc
+++ b/src/arm/simulator-arm.cc
@@ -299,8 +299,11 @@
           if (strcmp(arg1, "all") == 0) {
             for (int i = 0; i < kNumRegisters; i++) {
               value = GetRegisterValue(i);
-              PrintF("%3s: 0x%08x %10d", Register::from_code(i).ToString(),
-                     value, value);
+              PrintF(
+                  "%3s: 0x%08x %10d",
+                  RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                      i),
+                  value, value);
               if ((argc == 3 && strcmp(arg2, "fp") == 0) &&
                   i < 8 &&
                   (i % 2) == 0) {
@@ -633,9 +636,7 @@
   last_debugger_input_ = input;
 }
 
-
-void Simulator::FlushICache(v8::internal::HashMap* i_cache,
-                            void* start_addr,
+void Simulator::FlushICache(base::HashMap* i_cache, void* start_addr,
                             size_t size) {
   intptr_t start = reinterpret_cast<intptr_t>(start_addr);
   int intra_line = (start & CachePage::kLineMask);
@@ -656,10 +657,8 @@
   }
 }
 
-
-CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
-  v8::internal::HashMap::Entry* entry =
-      i_cache->LookupOrInsert(page, ICacheHash(page));
+CachePage* Simulator::GetCachePage(base::HashMap* i_cache, void* page) {
+  base::HashMap::Entry* entry = i_cache->LookupOrInsert(page, ICacheHash(page));
   if (entry->value == NULL) {
     CachePage* new_page = new CachePage();
     entry->value = new_page;
@@ -669,9 +668,7 @@
 
 
 // Flush from start up to and not including start + size.
-void Simulator::FlushOnePage(v8::internal::HashMap* i_cache,
-                             intptr_t start,
-                             int size) {
+void Simulator::FlushOnePage(base::HashMap* i_cache, intptr_t start, int size) {
   DCHECK(size <= CachePage::kPageSize);
   DCHECK(AllOnOnePage(start, size - 1));
   DCHECK((start & CachePage::kLineMask) == 0);
@@ -683,9 +680,7 @@
   memset(valid_bytemap, CachePage::LINE_INVALID, size >> CachePage::kLineShift);
 }
 
-
-void Simulator::CheckICache(v8::internal::HashMap* i_cache,
-                            Instruction* instr) {
+void Simulator::CheckICache(base::HashMap* i_cache, Instruction* instr) {
   intptr_t address = reinterpret_cast<intptr_t>(instr);
   void* page = reinterpret_cast<void*>(address & (~CachePage::kPageMask));
   void* line = reinterpret_cast<void*>(address & (~CachePage::kLineMask));
@@ -718,7 +713,7 @@
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
-    i_cache_ = new v8::internal::HashMap(&ICacheMatch);
+    i_cache_ = new base::HashMap(&ICacheMatch);
     isolate_->set_simulator_i_cache(i_cache_);
   }
   Initialize(isolate);
@@ -850,10 +845,10 @@
 
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
   if (i_cache != nullptr) {
-    for (HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
+    for (base::HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
          entry = i_cache->Next(entry)) {
       delete static_cast<CachePage*>(entry->value);
     }
@@ -1808,15 +1803,17 @@
           case ExternalReference::BUILTIN_FP_FP_CALL:
           case ExternalReference::BUILTIN_COMPARE_CALL:
             PrintF("Call to host function at %p with args %f, %f",
-                   FUNCTION_ADDR(generic_target), dval0, dval1);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   dval1);
             break;
           case ExternalReference::BUILTIN_FP_CALL:
             PrintF("Call to host function at %p with arg %f",
-                FUNCTION_ADDR(generic_target), dval0);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0);
             break;
           case ExternalReference::BUILTIN_FP_INT_CALL:
             PrintF("Call to host function at %p with args %f, %d",
-                   FUNCTION_ADDR(generic_target), dval0, ival);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   ival);
             break;
           default:
             UNREACHABLE();
@@ -1942,7 +1939,8 @@
           PrintF(
               "Call to host triple returning runtime function %p "
               "args %08x, %08x, %08x, %08x, %08x",
-              FUNCTION_ADDR(target), arg1, arg2, arg3, arg4, arg5);
+              static_cast<void*>(FUNCTION_ADDR(target)), arg1, arg2, arg3, arg4,
+              arg5);
           if (!stack_aligned) {
             PrintF(" with unaligned stack %08x\n", get_register(sp));
           }
@@ -1953,7 +1951,8 @@
         // pass it to the target function.
         ObjectTriple result = target(arg1, arg2, arg3, arg4, arg5);
         if (::v8::internal::FLAG_trace_sim) {
-          PrintF("Returned { %p, %p, %p }\n", result.x, result.y, result.z);
+          PrintF("Returned { %p, %p, %p }\n", static_cast<void*>(result.x),
+                 static_cast<void*>(result.y), static_cast<void*>(result.z));
         }
         // Return is passed back in address pointed to by hidden first argument.
         ObjectTriple* sim_result = reinterpret_cast<ObjectTriple*>(arg0);
@@ -1969,13 +1968,8 @@
           PrintF(
               "Call to host function at %p "
               "args %08x, %08x, %08x, %08x, %08x, %08x",
-              FUNCTION_ADDR(target),
-              arg0,
-              arg1,
-              arg2,
-              arg3,
-              arg4,
-              arg5);
+              static_cast<void*>(FUNCTION_ADDR(target)), arg0, arg1, arg2, arg3,
+              arg4, arg5);
           if (!stack_aligned) {
             PrintF(" with unaligned stack %08x\n", get_register(sp));
           }
diff --git a/src/arm/simulator-arm.h b/src/arm/simulator-arm.h
index b3c8eb4..71b8e40 100644
--- a/src/arm/simulator-arm.h
+++ b/src/arm/simulator-arm.h
@@ -68,7 +68,7 @@
 
 #include "src/arm/constants-arm.h"
 #include "src/assembler.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 
 namespace v8 {
 namespace internal {
@@ -200,7 +200,7 @@
   // Call on program start.
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   // V8 generally calls into generated JS code with 5 parameters and into
   // generated RegExp code with 7 parameters. This is a convenience function,
@@ -222,8 +222,7 @@
   char* last_debugger_input() { return last_debugger_input_; }
 
   // ICache checking.
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size);
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size);
 
   // Returns true if pc register contains one of the 'special_values' defined
   // below (bad_lr, end_sim_pc).
@@ -342,10 +341,9 @@
   void InstructionDecode(Instruction* instr);
 
   // ICache.
-  static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr);
-  static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                           int size);
-  static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page);
+  static void CheckICache(base::HashMap* i_cache, Instruction* instr);
+  static void FlushOnePage(base::HashMap* i_cache, intptr_t start, int size);
+  static CachePage* GetCachePage(base::HashMap* i_cache, void* page);
 
   // Runtime call support.
   static void* RedirectExternalReference(
@@ -405,7 +403,7 @@
   char* last_debugger_input_;
 
   // Icache simulation
-  v8::internal::HashMap* i_cache_;
+  base::HashMap* i_cache_;
 
   // Registered breakpoints.
   Instruction* break_pc_;
diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
index 91563a4..7fd5a79 100644
--- a/src/arm64/assembler-arm64.cc
+++ b/src/arm64/assembler-arm64.cc
@@ -189,37 +189,25 @@
   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();
-  }
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(rmode_));
+  return Memory::Address_at(Assembler::target_pointer_address_at(pc_));
+}
+
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Memory::uint32_at(Assembler::target_pointer_address_at(pc_)) = size;
 }
 
 Register GetAllocatableRegisterThatIsNotOneOf(Register reg1, Register reg2,
                                               Register reg3, Register reg4) {
   CPURegList regs(reg1, reg2, reg3, reg4);
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     Register candidate = Register::from_code(code);
@@ -614,6 +602,8 @@
                          reloc_info_writer.pos());
     desc->origin = this;
     desc->constant_pool_size = 0;
+    desc->unwinding_info_size = 0;
+    desc->unwinding_info = nullptr;
   }
 }
 
@@ -982,14 +972,12 @@
 
 
 void Assembler::br(const Register& xn) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(xn.Is64Bits());
   Emit(BR | Rn(xn));
 }
 
 
 void Assembler::blr(const Register& xn) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(xn.Is64Bits());
   // The pattern 'blr xzr' is used as a guard to detect when execution falls
   // through the constant pool. It should not be emitted.
@@ -999,7 +987,6 @@
 
 
 void Assembler::ret(const Register& xn) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(xn.Is64Bits());
   Emit(RET | Rn(xn));
 }
@@ -1011,7 +998,6 @@
 
 
 void Assembler::b(Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   b(LinkAndGetInstructionOffsetTo(label));
 }
 
@@ -1022,47 +1008,40 @@
 
 
 void Assembler::b(Label* label, Condition cond) {
-  positions_recorder()->WriteRecordedPositions();
   b(LinkAndGetInstructionOffsetTo(label), cond);
 }
 
 
 void Assembler::bl(int imm26) {
-  positions_recorder()->WriteRecordedPositions();
   Emit(BL | ImmUncondBranch(imm26));
 }
 
 
 void Assembler::bl(Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   bl(LinkAndGetInstructionOffsetTo(label));
 }
 
 
 void Assembler::cbz(const Register& rt,
                     int imm19) {
-  positions_recorder()->WriteRecordedPositions();
   Emit(SF(rt) | CBZ | ImmCmpBranch(imm19) | Rt(rt));
 }
 
 
 void Assembler::cbz(const Register& rt,
                     Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   cbz(rt, LinkAndGetInstructionOffsetTo(label));
 }
 
 
 void Assembler::cbnz(const Register& rt,
                      int imm19) {
-  positions_recorder()->WriteRecordedPositions();
   Emit(SF(rt) | CBNZ | ImmCmpBranch(imm19) | Rt(rt));
 }
 
 
 void Assembler::cbnz(const Register& rt,
                      Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   cbnz(rt, LinkAndGetInstructionOffsetTo(label));
 }
 
@@ -1070,7 +1049,6 @@
 void Assembler::tbz(const Register& rt,
                     unsigned bit_pos,
                     int imm14) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(rt.Is64Bits() || (rt.Is32Bits() && (bit_pos < kWRegSizeInBits)));
   Emit(TBZ | ImmTestBranchBit(bit_pos) | ImmTestBranch(imm14) | Rt(rt));
 }
@@ -1079,7 +1057,6 @@
 void Assembler::tbz(const Register& rt,
                     unsigned bit_pos,
                     Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   tbz(rt, bit_pos, LinkAndGetInstructionOffsetTo(label));
 }
 
@@ -1087,7 +1064,6 @@
 void Assembler::tbnz(const Register& rt,
                      unsigned bit_pos,
                      int imm14) {
-  positions_recorder()->WriteRecordedPositions();
   DCHECK(rt.Is64Bits() || (rt.Is32Bits() && (bit_pos < kWRegSizeInBits)));
   Emit(TBNZ | ImmTestBranchBit(bit_pos) | ImmTestBranch(imm14) | Rt(rt));
 }
@@ -1096,7 +1072,6 @@
 void Assembler::tbnz(const Register& rt,
                      unsigned bit_pos,
                      Label* label) {
-  positions_recorder()->WriteRecordedPositions();
   tbnz(rt, bit_pos, LinkAndGetInstructionOffsetTo(label));
 }
 
@@ -1716,6 +1691,83 @@
   ldr_pcrel(rt, 0);
 }
 
+void Assembler::ldar(const Register& rt, const Register& rn) {
+  DCHECK(rn.Is64Bits());
+  LoadStoreAcquireReleaseOp op = rt.Is32Bits() ? LDAR_w : LDAR_x;
+  Emit(op | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::ldaxr(const Register& rt, const Register& rn) {
+  DCHECK(rn.Is64Bits());
+  LoadStoreAcquireReleaseOp op = rt.Is32Bits() ? LDAXR_w : LDAXR_x;
+  Emit(op | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlr(const Register& rt, const Register& rn) {
+  DCHECK(rn.Is64Bits());
+  LoadStoreAcquireReleaseOp op = rt.Is32Bits() ? STLR_w : STLR_x;
+  Emit(op | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlxr(const Register& rs, const Register& rt,
+                      const Register& rn) {
+  DCHECK(rs.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  LoadStoreAcquireReleaseOp op = rt.Is32Bits() ? STLXR_w : STLXR_x;
+  Emit(op | Rs(rs) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::ldarb(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(LDAR_b | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::ldaxrb(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(LDAXR_b | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlrb(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(STLR_b | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlxrb(const Register& rs, const Register& rt,
+                       const Register& rn) {
+  DCHECK(rs.Is32Bits());
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(STLXR_b | Rs(rs) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::ldarh(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(LDAR_h | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::ldaxrh(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(LDAXR_h | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlrh(const Register& rt, const Register& rn) {
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(STLR_h | Rs(x31) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
+
+void Assembler::stlxrh(const Register& rs, const Register& rt,
+                       const Register& rn) {
+  DCHECK(rs.Is32Bits());
+  DCHECK(rt.Is32Bits());
+  DCHECK(rn.Is64Bits());
+  Emit(STLXR_h | Rs(rs) | Rt2(x31) | Rn(rn) | Rt(rt));
+}
 
 void Assembler::mov(const Register& rd, const Register& rm) {
   // Moves involving the stack pointer are encoded as add immediate with
diff --git a/src/arm64/assembler-arm64.h b/src/arm64/assembler-arm64.h
index fac7a70..cc26278 100644
--- a/src/arm64/assembler-arm64.h
+++ b/src/arm64/assembler-arm64.h
@@ -154,8 +154,6 @@
     DCHECK(IsValidOrNone());
   }
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool IsValid() const {
     DCHECK(IsRegister() || IsNone());
     return IsValidRegister();
@@ -195,6 +193,7 @@
   // End of V8 compatibility section -----------------------
 };
 
+static const bool kSimpleFPAliasing = true;
 
 struct FPRegister : public CPURegister {
   enum Code {
@@ -230,8 +229,6 @@
     DCHECK(IsValidOrNone());
   }
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool IsValid() const {
     DCHECK(IsFPRegister() || IsNone());
     return IsValidFPRegister();
@@ -1401,6 +1398,42 @@
   // Load literal to register.
   void ldr(const CPURegister& rt, const Immediate& imm);
 
+  // Load-acquire word.
+  void ldar(const Register& rt, const Register& rn);
+
+  // Load-acquire exclusive word.
+  void ldaxr(const Register& rt, const Register& rn);
+
+  // Store-release word.
+  void stlr(const Register& rt, const Register& rn);
+
+  // Store-release exclusive word.
+  void stlxr(const Register& rs, const Register& rt, const Register& rn);
+
+  // Load-acquire byte.
+  void ldarb(const Register& rt, const Register& rn);
+
+  // Load-acquire exclusive byte.
+  void ldaxrb(const Register& rt, const Register& rn);
+
+  // Store-release byte.
+  void stlrb(const Register& rt, const Register& rn);
+
+  // Store-release exclusive byte.
+  void stlxrb(const Register& rs, const Register& rt, const Register& rn);
+
+  // Load-acquire half-word.
+  void ldarh(const Register& rt, const Register& rn);
+
+  // Load-acquire exclusive half-word.
+  void ldaxrh(const Register& rt, const Register& rn);
+
+  // Store-release half-word.
+  void stlrh(const Register& rt, const Register& rn);
+
+  // Store-release exclusive half-word.
+  void stlxrh(const Register& rs, const Register& rt, const Register& rn);
+
   // Move instructions. The default shift of -1 indicates that the move
   // instruction will calculate an appropriate 16-bit immediate and left shift
   // that is equal to the 64-bit immediate argument. If an explicit left shift
@@ -1695,6 +1728,11 @@
     return rt2.code() << Rt2_offset;
   }
 
+  static Instr Rs(CPURegister rs) {
+    DCHECK(rs.code() != kSPRegInternalCode);
+    return rs.code() << Rs_offset;
+  }
+
   // These encoding functions allow the stack pointer to be encoded, and
   // disallow the zero register.
   static Instr RdSP(Register rd) {
diff --git a/src/arm64/builtins-arm64.cc b/src/arm64/builtins-arm64.cc
index be372e6..e16897a 100644
--- a/src/arm64/builtins-arm64.cc
+++ b/src/arm64/builtins-arm64.cc
@@ -32,10 +32,7 @@
   __ LoadNativeContextSlot(Context::INTERNAL_ARRAY_FUNCTION_INDEX, result);
 }
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- x0                 : number of arguments excluding receiver
   //  -- x1                 : target
@@ -54,23 +51,8 @@
   __ Ldr(cp, FieldMemOperand(x1, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(x1);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(x3);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(x1, x3);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
+  const int num_extra_args = 2;
+  __ Push(x1, x3);
 
   // JumpToExternalReference expects x0 to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -141,6 +123,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- x0                 : number of arguments
+  //  -- x1                 : function
+  //  -- cp                 : context
   //  -- lr                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -152,9 +136,9 @@
                                      : Heap::kMinusInfinityValueRootIndex;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in x1 and the double value in d1.
-  __ LoadRoot(x1, root_index);
-  __ Ldr(d1, FieldMemOperand(x1, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in x5 and the double value in d5.
+  __ LoadRoot(x5, root_index);
+  __ Ldr(d5, FieldMemOperand(x5, HeapNumber::kValueOffset));
 
   // Remember how many slots to drop (including the receiver).
   __ Add(x4, x0, 1);
@@ -170,31 +154,34 @@
     __ Peek(x2, Operand(x0, LSL, kPointerSizeLog2));
 
     // Load the double value of the parameter into d2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert_smi, convert_number, done_convert;
     __ JumpIfSmi(x2, &convert_smi);
     __ JumpIfHeapNumber(x2, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(lr, fp);
+      __ Move(fp, jssp);
+      __ Push(cp, x1);
       __ SmiTag(x0);
       __ SmiTag(x4);
-      __ Push(x0, x1, x4);
+      __ Push(x0, x5, x4);
       __ Mov(x0, x2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Mov(x2, x0);
-      __ Pop(x4, x1, x0);
+      __ Pop(x4, x5, x0);
       {
-        // Restore the double accumulator value (d1).
+        // Restore the double accumulator value (d5).
         Label done_restore;
-        __ SmiUntagToDouble(d1, x1, kSpeculativeUntag);
-        __ JumpIfSmi(x1, &done_restore);
-        __ Ldr(d1, FieldMemOperand(x1, HeapNumber::kValueOffset));
+        __ SmiUntagToDouble(d5, x5, kSpeculativeUntag);
+        __ JumpIfSmi(x5, &done_restore);
+        __ Ldr(d5, FieldMemOperand(x5, HeapNumber::kValueOffset));
         __ Bind(&done_restore);
       }
       __ SmiUntag(x4);
       __ SmiUntag(x0);
+      __ Pop(x1, cp, fp, lr);
     }
     __ AssertNumber(x2);
     __ JumpIfSmi(x2, &convert_smi);
@@ -209,22 +196,22 @@
 
     // We can use a single fmin/fmax for the operation itself, but we then need
     // to work out which HeapNumber (or smi) the result came from.
-    __ Fmov(x11, d1);
+    __ Fmov(x11, d5);
     if (kind == MathMaxMinKind::kMin) {
-      __ Fmin(d1, d1, d2);
+      __ Fmin(d5, d5, d2);
     } else {
       DCHECK(kind == MathMaxMinKind::kMax);
-      __ Fmax(d1, d1, d2);
+      __ Fmax(d5, d5, d2);
     }
-    __ Fmov(x10, d1);
+    __ Fmov(x10, d5);
     __ Cmp(x10, x11);
-    __ Csel(x1, x1, x2, eq);
+    __ Csel(x5, x5, x2, eq);
     __ B(&loop);
   }
 
   __ Bind(&done_loop);
-  __ Mov(x0, x1);
   __ Drop(x4);
+  __ Mov(x0, x5);
   __ Ret();
 }
 
@@ -250,8 +237,7 @@
   }
 
   // 2a. Convert first argument to number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0 (already in x0).
   __ Bind(&no_arguments);
@@ -299,8 +285,7 @@
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ Push(x1, x3);
       __ Move(x0, x2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(x2, x0);
       __ Pop(x3, x1);
     }
@@ -715,8 +700,8 @@
   __ AssertGeneratorObject(x1);
 
   // Store input value into generator object.
-  __ Str(x0, FieldMemOperand(x1, JSGeneratorObject::kInputOffset));
-  __ RecordWriteField(x1, JSGeneratorObject::kInputOffset, x0, x3,
+  __ Str(x0, FieldMemOperand(x1, JSGeneratorObject::kInputOrDebugPosOffset));
+  __ RecordWriteField(x1, JSGeneratorObject::kInputOrDebugPosOffset, x0, x3,
                       kLRHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -727,20 +712,23 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ Mov(x10, Operand(last_step_action));
+  __ Ldrsb(x10, MemOperand(x10));
+  __ CompareAndBranch(x10, Operand(StepIn), ge, &prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ Mov(x10, Operand(debug_suspended_generator));
+  __ Ldr(x10, MemOperand(x10));
+  __ CompareAndBranch(x10, Operand(x1), eq,
+                      &prepare_step_in_suspended_generator);
+  __ Bind(&stepping_prepared);
 
   // Push receiver.
   __ Ldr(x5, FieldMemOperand(x1, JSGeneratorObject::kReceiverOffset));
@@ -775,9 +763,8 @@
   // New-style (ignition/turbofan) generator object
   {
     __ Ldr(x0, FieldMemOperand(x4, JSFunction::kSharedFunctionInfoOffset));
-    __ Ldr(x0,
+    __ Ldr(w0,
          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.
@@ -829,6 +816,26 @@
     __ Move(x0, x1);  // Continuation expects generator object in x0.
     __ Br(x10);
   }
+
+  __ Bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(x1, x2, x4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(x2, x1);
+    __ Ldr(x4, FieldMemOperand(x1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ B(&stepping_prepared);
+
+  __ Bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(x1, x2);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(x2, x1);
+    __ Ldr(x4, FieldMemOperand(x1, JSGeneratorObject::kFunctionOffset));
+  }
+  __ B(&stepping_prepared);
 }
 
 enum IsTagged { kArgcIsSmiTagged, kArgcIsUntaggedInt };
@@ -963,6 +970,22 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ ldr(args_count,
+         MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ Ldr(args_count.W(),
+         FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments.
+  __ Drop(args_count, 1);
+}
+
 // 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
@@ -1064,16 +1087,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, x2);
   __ Ret();
 
   // Load debug copy of the bytecode array.
@@ -1095,6 +1109,31 @@
   __ Jump(x7);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ ldr(x1, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ ldr(kContextRegister,
+         MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, x2);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(x0);
+
+    // Push function as argument and compile for baseline.
+    __ push(x1);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(x0);
+  }
+  __ Ret();
+}
+
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -1255,13 +1294,31 @@
   const int bailout_id = BailoutId::None().ToInt();
   __ Cmp(temp, Operand(Smi::FromInt(bailout_id)));
   __ B(ne, &loop_bottom);
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
+  Register temp2 = x7;
   __ Ldr(temp, FieldMemOperand(array_pointer,
                                SharedFunctionInfo::kOffsetToPreviousLiterals));
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ Ldr(temp2, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(temp2, &maybe_cleared_weakcell);
+  // temp2 is a pointer, therefore temp is a WeakCell pointing to a literals
+  // array.
   __ Ldr(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // r4 is a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ Cmp(temp2, Operand(Smi::FromInt(0)));
+  __ B(eq, &gotta_call_runtime);
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ Str(temp, FieldMemOperand(closure, JSFunction::kLiteralsOffset));
   __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, x7,
                       kLRHasNotBeenSaved, kDontSaveFPRegs, EMIT_REMEMBERED_SET,
@@ -1671,6 +1728,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- x0      : number of arguments
+  //  -- x1      : function
+  //  -- cp      : context
   //  -- lr      : return address
   //  -- jssp[0] : receiver
   // -----------------------------------
@@ -1681,7 +1741,7 @@
   {
     __ Pop(x0);
     __ JumpIfSmi(x0, &receiver_not_date);
-    __ JumpIfNotObjectType(x0, x1, x2, JS_DATE_TYPE, &receiver_not_date);
+    __ JumpIfNotObjectType(x0, x2, x3, JS_DATE_TYPE, &receiver_not_date);
   }
 
   // 2. Load the specified date field, falling back to the runtime as necessary.
@@ -1709,7 +1769,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ Bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(x0, lr, fp);
+    __ Move(fp, jssp);
+    __ Push(cp, x1);
+    __ Push(Smi::FromInt(0));
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2711,6 +2778,82 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in x0.
+  __ AssertString(x0);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ Ldr(x2, FieldMemOperand(x0, String::kHashFieldOffset));
+  __ Tst(x2, Operand(String::kContainsCachedArrayIndexMask));
+  __ B(ne, &runtime);
+  __ IndexFromHash(x2, x0);
+  __ Ret();
+
+  __ Bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(x0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in x0.
+  Label not_smi;
+  __ JumpIfNotSmi(x0, &not_smi);
+  __ Ret();
+  __ Bind(&not_smi);
+
+  Label not_heap_number;
+  __ CompareObjectType(x0, x1, x1, HEAP_NUMBER_TYPE);
+  // x0: receiver
+  // x1: receiver instance type
+  __ B(ne, &not_heap_number);
+  __ Ret();
+  __ Bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in x0.
+  __ AssertNotNumber(x0);
+
+  Label not_string;
+  __ CompareObjectType(x0, x1, x1, FIRST_NONSTRING_TYPE);
+  // x0: receiver
+  // x1: receiver instance type
+  __ B(hs, &not_string);
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ Bind(&not_string);
+
+  Label not_oddball;
+  __ Cmp(x1, ODDBALL_TYPE);
+  __ B(ne, &not_oddball);
+  __ Ldr(x0, FieldMemOperand(x0, Oddball::kToNumberOffset));
+  __ Ret();
+  __ Bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(x0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 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 a96b3df..6b03068 100644
--- a/src/arm64/code-stubs-arm64.cc
+++ b/src/arm64/code-stubs-arm64.cc
@@ -22,75 +22,28 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  // cp: context
-  // x1: function
-  // x2: allocation site with elements kind
-  // x0: number of arguments to the constructor function
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(x0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ Mov(x5, Operand(x0, LSL, kPointerSizeLog2));
+  __ Str(x1, MemOperand(jssp, x5));
+  __ Push(x1);
+  __ Push(x2);
+  __ Add(x0, x0, Operand(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(x0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(x0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(x0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
-
 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
                                                ExternalReference miss) {
   // Update the static counter each time a new code stub is generated.
@@ -986,7 +939,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1490,7 +1443,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -2022,6 +1974,7 @@
   //  feedback_vector : the feedback vector
   //  index :           slot in feedback vector (smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
@@ -2044,7 +1997,7 @@
   Label check_allocation_site;
   __ Ldr(feedback_value, FieldMemOperand(feedback, WeakCell::kValueOffset));
   __ Cmp(function, feedback_value);
-  __ B(eq, &done);
+  __ B(eq, &done_increment_count);
   __ CompareRoot(feedback, Heap::kmegamorphic_symbolRootIndex);
   __ B(eq, &done);
   __ Ldr(feedback_map, FieldMemOperand(feedback, HeapObject::kMapOffset));
@@ -2066,7 +2019,7 @@
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, scratch1);
   __ Cmp(function, scratch1);
   __ B(ne, &megamorphic);
-  __ B(&done);
+  __ B(&done_increment_count);
 
   __ Bind(&miss);
 
@@ -2097,12 +2050,32 @@
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub, argc, function,
                              feedback_vector, index, new_target);
-  __ B(&done);
+  __ B(&done_initialize_count);
 
   __ Bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub, argc, function,
                              feedback_vector, index, new_target);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ Mov(scratch1, Operand(Smi::FromInt(1)));
+  __ Adds(scratch2, feedback_vector,
+          Operand::UntagSmiAndScale(index, kPointerSizeLog2));
+  __ Str(scratch1,
+         FieldMemOperand(scratch2, FixedArray::kHeaderSize + kPointerSize));
+  __ b(&done);
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ Add(scratch1, feedback_vector,
+         Operand::UntagSmiAndScale(index, kPointerSizeLog2));
+  __ Add(scratch1, scratch1, Operand(FixedArray::kHeaderSize + kPointerSize));
+  __ Ldr(scratch2, FieldMemOperand(scratch1, 0));
+  __ Add(scratch2, scratch2, Operand(Smi::FromInt(1)));
+  __ Str(scratch2, FieldMemOperand(scratch1, 0));
+
   __ Bind(&done);
 }
 
@@ -2175,7 +2148,7 @@
   __ Add(feedback_vector, feedback_vector,
          Operand(FixedArray::kHeaderSize + kPointerSize));
   __ Ldr(index, FieldMemOperand(feedback_vector, 0));
-  __ Add(index, index, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Add(index, index, Operand(Smi::FromInt(1)));
   __ Str(index, FieldMemOperand(feedback_vector, 0));
 
   // Set up arguments for the array constructor stub.
@@ -2235,7 +2208,7 @@
   __ Add(feedback_vector, feedback_vector,
          Operand(FixedArray::kHeaderSize + kPointerSize));
   __ Ldr(index, FieldMemOperand(feedback_vector, 0));
-  __ Add(index, index, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Add(index, index, Operand(Smi::FromInt(1)));
   __ Str(index, FieldMemOperand(feedback_vector, 0));
 
   __ Bind(&call_function);
@@ -2300,7 +2273,7 @@
   __ B(ne, &miss);
 
   // Initialize the call counter.
-  __ Mov(x5, Smi::FromInt(CallICNexus::kCallCountIncrement));
+  __ Mov(x5, Smi::FromInt(1));
   __ Adds(x4, feedback_vector,
           Operand::UntagSmiAndScale(index, kPointerSizeLog2));
   __ Str(x5, FieldMemOperand(x4, FixedArray::kHeaderSize + kPointerSize));
@@ -2394,13 +2367,7 @@
     // Save object_ on the stack and pass index_ as argument for runtime call.
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
   __ Mov(index_, x0);
@@ -3086,74 +3053,13 @@
   __ SmiTag(from);
   StringCharAtGenerator generator(input_string, from, result_length, x0,
                                   &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ Drop(3);
   __ Ret();
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in x0.
-  Label not_smi;
-  __ JumpIfNotSmi(x0, &not_smi);
-  __ Ret();
-  __ Bind(&not_smi);
-
-  Label not_heap_number;
-  __ CompareObjectType(x0, x1, x1, HEAP_NUMBER_TYPE);
-  // x0: receiver
-  // x1: receiver instance type
-  __ B(ne, &not_heap_number);
-  __ Ret();
-  __ Bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in x0.
-  __ AssertNotNumber(x0);
-
-  Label not_string;
-  __ CompareObjectType(x0, x1, x1, FIRST_NONSTRING_TYPE);
-  // x0: receiver
-  // x1: receiver instance type
-  __ B(hs, &not_string);
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ Bind(&not_string);
-
-  Label not_oddball;
-  __ Cmp(x1, ODDBALL_TYPE);
-  __ B(ne, &not_oddball);
-  __ Ldr(x0, FieldMemOperand(x0, Oddball::kToNumberOffset));
-  __ Ret();
-  __ Bind(&not_oddball);
-
-  __ Push(x0);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in x0.
-  __ AssertString(x0);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ Ldr(x2, FieldMemOperand(x0, String::kHashFieldOffset));
-  __ Tst(x2, Operand(String::kContainsCachedArrayIndexMask));
-  __ B(ne, &runtime);
-  __ IndexFromHash(x2, x0);
-  __ Ret();
-
-  __ Bind(&runtime);
-  __ Push(x0);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in x0.
   Label is_number;
@@ -3536,14 +3442,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4443,19 +4349,13 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4463,8 +4363,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4488,14 +4386,15 @@
 
     __ Bind(&n_case);
     // N arguments.
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
-
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4610,7 +4509,7 @@
 
   __ Bind(&n_case);
   // N arguments.
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN);
 }
 
@@ -4823,10 +4722,10 @@
   Label rest_parameters;
   __ Ldrsw(x0, UntagSmiMemOperand(
                    x2, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ Ldr(x1, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
+  __ Ldr(x3, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
   __ Ldrsw(
-      x1, FieldMemOperand(x1, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Subs(x0, x0, x1);
+      x3, FieldMemOperand(x3, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ Subs(x0, x0, x3);
   __ B(gt, &rest_parameters);
 
   // Return an empty rest parameter array.
@@ -4872,15 +4771,16 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- x0 : number of rest parameters
+    //  -- x1 : function
     //  -- x2 : pointer to first rest parameters
     //  -- lr : return address
     // -----------------------------------
 
     // Allocate space for the rest parameter array plus the backing store.
     Label allocate, done_allocate;
-    __ Mov(x1, JSArray::kSize + FixedArray::kHeaderSize);
-    __ Add(x1, x1, Operand(x0, LSL, kPointerSizeLog2));
-    __ Allocate(x1, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
+    __ Mov(x6, JSArray::kSize + FixedArray::kHeaderSize);
+    __ Add(x6, x6, Operand(x0, LSL, kPointerSizeLog2));
+    __ Allocate(x6, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
     __ Bind(&done_allocate);
 
     // Compute arguments.length in x6.
@@ -4915,19 +4815,27 @@
     STATIC_ASSERT(JSArray::kSize == 4 * kPointerSize);
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ Bind(&allocate);
+    __ Cmp(x6, Operand(Page::kMaxRegularHeapObjectSize));
+    __ B(gt, &too_big_for_new_space);
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ SmiTag(x0);
-      __ SmiTag(x1);
-      __ Push(x0, x2, x1);
+      __ SmiTag(x6);
+      __ Push(x0, x2, x6);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ Mov(x3, x0);
       __ Pop(x2, x0);
       __ SmiUntag(x0);
     }
     __ B(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ Bind(&too_big_for_new_space);
+    __ Push(x1);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -5264,9 +5172,9 @@
   __ Cmp(x4, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR));
   __ B(eq, &arguments_adaptor);
   {
-    __ Ldr(x1, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
+    __ Ldr(x4, FieldMemOperand(x1, JSFunction::kSharedFunctionInfoOffset));
     __ Ldrsw(x0, FieldMemOperand(
-                     x1, SharedFunctionInfo::kFormalParameterCountOffset));
+                     x4, SharedFunctionInfo::kFormalParameterCountOffset));
     __ Add(x2, x2, Operand(x0, LSL, kPointerSizeLog2));
     __ Add(x2, x2, StandardFrameConstants::kCallerSPOffset - 1 * kPointerSize);
   }
@@ -5283,15 +5191,16 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- x0 : number of rest parameters
+  //  -- x1 : function
   //  -- x2 : pointer to first rest parameters
   //  -- lr : return address
   // -----------------------------------
 
   // Allocate space for the strict arguments object plus the backing store.
   Label allocate, done_allocate;
-  __ Mov(x1, JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize);
-  __ Add(x1, x1, Operand(x0, LSL, kPointerSizeLog2));
-  __ Allocate(x1, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
+  __ Mov(x6, JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize);
+  __ Add(x6, x6, Operand(x0, LSL, kPointerSizeLog2));
+  __ Allocate(x6, x3, x4, x5, &allocate, NO_ALLOCATION_FLAGS);
   __ Bind(&done_allocate);
 
   // Compute arguments.length in x6.
@@ -5326,48 +5235,27 @@
   STATIC_ASSERT(JSStrictArgumentsObject::kSize == 4 * kPointerSize);
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ Bind(&allocate);
+  __ Cmp(x6, Operand(Page::kMaxRegularHeapObjectSize));
+  __ B(gt, &too_big_for_new_space);
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
     __ SmiTag(x0);
-    __ SmiTag(x1);
-    __ Push(x0, x2, x1);
+    __ SmiTag(x6);
+    __ Push(x0, x2, x6);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Mov(x3, x0);
     __ Pop(x2, x0);
     __ SmiUntag(x0);
   }
   __ B(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context = cp;
-  Register result = x0;
-  Register slot = x2;
-  Label slow_case;
-
-  // Go up the context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ Ldr(result, ContextMemOperand(context, Context::PREVIOUS_INDEX));
-    context = result;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ Add(result, context, Operand(slot, LSL, kPointerSizeLog2));
-  __ Ldr(result, ContextMemOperand(result));
-  __ Ldr(result, FieldMemOperand(result, PropertyCell::kValueOffset));
-
-  // If the result is not the_hole, return. Otherwise, handle in the runtime.
-  __ JumpIfRoot(result, Heap::kTheHoleValueRootIndex, &slow_case);
-  __ Ret();
-
-  // Fallback to runtime.
-  __ Bind(&slow_case);
-  __ SmiTag(slot);
-  __ Push(slot);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  // Fall back to %NewStrictArguments.
+  __ Bind(&too_big_for_new_space);
+  __ Push(x1);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/arm64/codegen-arm64.cc b/src/arm64/codegen-arm64.cc
index 990dd41..edd2899 100644
--- a/src/arm64/codegen-arm64.cc
+++ b/src/arm64/codegen-arm64.cc
@@ -15,66 +15,6 @@
 
 #define __ ACCESS_MASM(masm)
 
-#if defined(USE_SIMULATOR)
-byte* fast_exp_arm64_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  Simulator * simulator = Simulator::current(isolate);
-  Simulator::CallArgument args[] = {
-      Simulator::CallArgument(x),
-      Simulator::CallArgument::End()
-  };
-  return simulator->CallDouble(fast_exp_arm64_machine_code, args);
-}
-#endif
-
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  // Use the Math.exp implemetation in MathExpGenerator::EmitMathExp() to create
-  // an AAPCS64-compliant exp() function. This will be faster than the C
-  // library's exp() function, but probably less accurate.
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-
-  ExternalReference::InitializeMathExpData();
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-  masm.SetStackPointer(csp);
-
-  // The argument will be in d0 on entry.
-  DoubleRegister input = d0;
-  // Use other caller-saved registers for all other values.
-  DoubleRegister result = d1;
-  DoubleRegister double_temp1 = d2;
-  DoubleRegister double_temp2 = d3;
-  Register temp1 = x10;
-  Register temp2 = x11;
-  Register temp3 = x12;
-
-  MathExpGenerator::EmitMathExp(&masm, input, result,
-                                double_temp1, double_temp2,
-                                temp1, temp2, temp3);
-  // Move the result to the return register.
-  masm.Fmov(d0, result);
-  masm.Ret();
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_arm64_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
-
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
   return nullptr;
 }
@@ -510,127 +450,6 @@
   __ Bind(&done);
 }
 
-
-static MemOperand ExpConstant(Register base, int index) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   DoubleRegister input,
-                                   DoubleRegister result,
-                                   DoubleRegister double_temp1,
-                                   DoubleRegister double_temp2,
-                                   Register temp1,
-                                   Register temp2,
-                                   Register temp3) {
-  // TODO(jbramley): There are several instances where fnmsub could be used
-  // instead of fmul and fsub. Doing this changes the result, but since this is
-  // an estimation anyway, does it matter?
-
-  DCHECK(!AreAliased(input, result,
-                     double_temp1, double_temp2,
-                     temp1, temp2, temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label done;
-  DoubleRegister double_temp3 = result;
-  Register constants = temp3;
-
-  // The algorithm used relies on some magic constants which are initialized in
-  // ExternalReference::InitializeMathExpData().
-
-  // Load the address of the start of the array.
-  __ Mov(constants, ExternalReference::math_exp_constants(0));
-
-  // We have to do a four-way split here:
-  //  - If input <= about -708.4, the output always rounds to zero.
-  //  - If input >= about 709.8, the output always rounds to +infinity.
-  //  - If the input is NaN, the output is NaN.
-  //  - Otherwise, the result needs to be calculated.
-  Label result_is_finite_non_zero;
-  // Assert that we can load offset 0 (the small input threshold) and offset 1
-  // (the large input threshold) with a single ldp.
-  DCHECK(kDRegSize == (ExpConstant(constants, 1).offset() -
-                              ExpConstant(constants, 0).offset()));
-  __ Ldp(double_temp1, double_temp2, ExpConstant(constants, 0));
-
-  __ Fcmp(input, double_temp1);
-  __ Fccmp(input, double_temp2, NoFlag, hi);
-  // At this point, the condition flags can be in one of five states:
-  //  NZCV
-  //  1000      -708.4 < input < 709.8    result = exp(input)
-  //  0110      input == 709.8            result = +infinity
-  //  0010      input > 709.8             result = +infinity
-  //  0011      input is NaN              result = input
-  //  0000      input <= -708.4           result = +0.0
-
-  // Continue the common case first. 'mi' tests N == 1.
-  __ B(&result_is_finite_non_zero, mi);
-
-  // TODO(jbramley): Consider adding a +infinity register for ARM64.
-  __ Ldr(double_temp2, ExpConstant(constants, 2));    // Synthesize +infinity.
-
-  // Select between +0.0 and +infinity. 'lo' tests C == 0.
-  __ Fcsel(result, fp_zero, double_temp2, lo);
-  // Select between {+0.0 or +infinity} and input. 'vc' tests V == 0.
-  __ Fcsel(result, result, input, vc);
-  __ B(&done);
-
-  // The rest is magic, as described in InitializeMathExpData().
-  __ Bind(&result_is_finite_non_zero);
-
-  // Assert that we can load offset 3 and offset 4 with a single ldp.
-  DCHECK(kDRegSize == (ExpConstant(constants, 4).offset() -
-                              ExpConstant(constants, 3).offset()));
-  __ Ldp(double_temp1, double_temp3, ExpConstant(constants, 3));
-  __ Fmadd(double_temp1, double_temp1, input, double_temp3);
-  __ Fmov(temp2.W(), double_temp1.S());
-  __ Fsub(double_temp1, double_temp1, double_temp3);
-
-  // Assert that we can load offset 5 and offset 6 with a single ldp.
-  DCHECK(kDRegSize == (ExpConstant(constants, 6).offset() -
-                              ExpConstant(constants, 5).offset()));
-  __ Ldp(double_temp2, double_temp3, ExpConstant(constants, 5));
-  // TODO(jbramley): Consider using Fnmsub here.
-  __ Fmul(double_temp1, double_temp1, double_temp2);
-  __ Fsub(double_temp1, double_temp1, input);
-
-  __ Fmul(double_temp2, double_temp1, double_temp1);
-  __ Fsub(double_temp3, double_temp3, double_temp1);
-  __ Fmul(double_temp3, double_temp3, double_temp2);
-
-  __ Mov(temp1.W(), Operand(temp2.W(), LSR, 11));
-
-  __ Ldr(double_temp2, ExpConstant(constants, 7));
-  // TODO(jbramley): Consider using Fnmsub here.
-  __ Fmul(double_temp3, double_temp3, double_temp2);
-  __ Fsub(double_temp3, double_temp3, double_temp1);
-
-  // The 8th constant is 1.0, so use an immediate move rather than a load.
-  // We can't generate a runtime assertion here as we would need to call Abort
-  // in the runtime and we don't have an Isolate when we generate this code.
-  __ Fmov(double_temp2, 1.0);
-  __ Fadd(double_temp3, double_temp3, double_temp2);
-
-  __ And(temp2, temp2, 0x7ff);
-  __ Add(temp1, temp1, 0x3ff);
-
-  // Do the final table lookup.
-  __ Mov(temp3, ExternalReference::math_exp_log_table());
-
-  __ Add(temp3, temp3, Operand(temp2, LSL, kDRegSizeLog2));
-  __ Ldp(temp2.W(), temp3.W(), MemOperand(temp3));
-  __ Orr(temp1.W(), temp3.W(), Operand(temp1.W(), LSL, 20));
-  __ Bfi(temp2, temp1, 32, 32);
-  __ Fmov(double_temp1, temp2);
-
-  __ Fmul(result, double_temp3, double_temp1);
-
-  __ Bind(&done);
-}
-
 #undef __
 
 }  // namespace internal
diff --git a/src/arm64/codegen-arm64.h b/src/arm64/codegen-arm64.h
index 573f6fe..b0490a8 100644
--- a/src/arm64/codegen-arm64.h
+++ b/src/arm64/codegen-arm64.h
@@ -27,22 +27,6 @@
   DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
 };
 
-
-class MathExpGenerator : public AllStatic {
- public:
-  static void EmitMathExp(MacroAssembler* masm,
-                          DoubleRegister input,
-                          DoubleRegister result,
-                          DoubleRegister double_scratch1,
-                          DoubleRegister double_scratch2,
-                          Register temp1,
-                          Register temp2,
-                          Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/arm64/constants-arm64.h b/src/arm64/constants-arm64.h
index 00b24e9..65b8b30 100644
--- a/src/arm64/constants-arm64.h
+++ b/src/arm64/constants-arm64.h
@@ -117,89 +117,89 @@
 const unsigned kFloatMantissaBits = 23;
 const unsigned kFloatExponentBits = 8;
 
-#define INSTRUCTION_FIELDS_LIST(V_)                                            \
-/* Register fields */                                                          \
-V_(Rd, 4, 0, Bits)                        /* Destination register.     */      \
-V_(Rn, 9, 5, Bits)                        /* First source register.    */      \
-V_(Rm, 20, 16, Bits)                      /* Second source register.   */      \
-V_(Ra, 14, 10, Bits)                      /* Third source register.    */      \
-V_(Rt, 4, 0, Bits)                        /* Load dest / store source. */      \
-V_(Rt2, 14, 10, Bits)                     /* Load second dest /        */      \
-                                         /* store second source.      */       \
-V_(PrefetchMode, 4, 0, Bits)                                                   \
-                                                                               \
-/* Common bits */                                                              \
-V_(SixtyFourBits, 31, 31, Bits)                                                \
-V_(FlagsUpdate, 29, 29, Bits)                                                  \
-                                                                               \
-/* PC relative addressing */                                                   \
-V_(ImmPCRelHi, 23, 5, SignedBits)                                              \
-V_(ImmPCRelLo, 30, 29, Bits)                                                   \
-                                                                               \
-/* Add/subtract/logical shift register */                                      \
-V_(ShiftDP, 23, 22, Bits)                                                      \
-V_(ImmDPShift, 15, 10, Bits)                                                   \
-                                                                               \
-/* Add/subtract immediate */                                                   \
-V_(ImmAddSub, 21, 10, Bits)                                                    \
-V_(ShiftAddSub, 23, 22, Bits)                                                  \
-                                                                               \
-/* Add/substract extend */                                                     \
-V_(ImmExtendShift, 12, 10, Bits)                                               \
-V_(ExtendMode, 15, 13, Bits)                                                   \
-                                                                               \
-/* Move wide */                                                                \
-V_(ImmMoveWide, 20, 5, Bits)                                                   \
-V_(ShiftMoveWide, 22, 21, Bits)                                                \
-                                                                               \
-/* Logical immediate, bitfield and extract */                                  \
-V_(BitN, 22, 22, Bits)                                                         \
-V_(ImmRotate, 21, 16, Bits)                                                    \
-V_(ImmSetBits, 15, 10, Bits)                                                   \
-V_(ImmR, 21, 16, Bits)                                                         \
-V_(ImmS, 15, 10, Bits)                                                         \
-                                                                               \
-/* Test and branch immediate */                                                \
-V_(ImmTestBranch, 18, 5, SignedBits)                                           \
-V_(ImmTestBranchBit40, 23, 19, Bits)                                           \
-V_(ImmTestBranchBit5, 31, 31, Bits)                                            \
-                                                                               \
-/* Conditionals */                                                             \
-V_(Condition, 15, 12, Bits)                                                    \
-V_(ConditionBranch, 3, 0, Bits)                                                \
-V_(Nzcv, 3, 0, Bits)                                                           \
-V_(ImmCondCmp, 20, 16, Bits)                                                   \
-V_(ImmCondBranch, 23, 5, SignedBits)                                           \
-                                                                               \
-/* Floating point */                                                           \
-V_(FPType, 23, 22, Bits)                                                       \
-V_(ImmFP, 20, 13, Bits)                                                        \
-V_(FPScale, 15, 10, Bits)                                                      \
-                                                                               \
-/* Load Store */                                                               \
-V_(ImmLS, 20, 12, SignedBits)                                                  \
-V_(ImmLSUnsigned, 21, 10, Bits)                                                \
-V_(ImmLSPair, 21, 15, SignedBits)                                              \
-V_(SizeLS, 31, 30, Bits)                                                       \
-V_(ImmShiftLS, 12, 12, Bits)                                                   \
-                                                                               \
-/* Other immediates */                                                         \
-V_(ImmUncondBranch, 25, 0, SignedBits)                                         \
-V_(ImmCmpBranch, 23, 5, SignedBits)                                            \
-V_(ImmLLiteral, 23, 5, SignedBits)                                             \
-V_(ImmException, 20, 5, Bits)                                                  \
-V_(ImmHint, 11, 5, Bits)                                                       \
-V_(ImmBarrierDomain, 11, 10, Bits)                                             \
-V_(ImmBarrierType, 9, 8, Bits)                                                 \
-                                                                               \
-/* System (MRS, MSR) */                                                        \
-V_(ImmSystemRegister, 19, 5, Bits)                                             \
-V_(SysO0, 19, 19, Bits)                                                        \
-V_(SysOp1, 18, 16, Bits)                                                       \
-V_(SysOp2, 7, 5, Bits)                                                         \
-V_(CRn, 15, 12, Bits)                                                          \
-V_(CRm, 11, 8, Bits)                                                           \
-
+#define INSTRUCTION_FIELDS_LIST(V_)                     \
+  /* Register fields */                                 \
+  V_(Rd, 4, 0, Bits)    /* Destination register.     */ \
+  V_(Rn, 9, 5, Bits)    /* First source register.    */ \
+  V_(Rm, 20, 16, Bits)  /* Second source register.   */ \
+  V_(Ra, 14, 10, Bits)  /* Third source register.    */ \
+  V_(Rt, 4, 0, Bits)    /* Load dest / store source. */ \
+  V_(Rt2, 14, 10, Bits) /* Load second dest /        */ \
+                        /* store second source.      */ \
+  V_(Rs, 20, 16, Bits)  /* Store-exclusive status */    \
+  V_(PrefetchMode, 4, 0, Bits)                          \
+                                                        \
+  /* Common bits */                                     \
+  V_(SixtyFourBits, 31, 31, Bits)                       \
+  V_(FlagsUpdate, 29, 29, Bits)                         \
+                                                        \
+  /* PC relative addressing */                          \
+  V_(ImmPCRelHi, 23, 5, SignedBits)                     \
+  V_(ImmPCRelLo, 30, 29, Bits)                          \
+                                                        \
+  /* Add/subtract/logical shift register */             \
+  V_(ShiftDP, 23, 22, Bits)                             \
+  V_(ImmDPShift, 15, 10, Bits)                          \
+                                                        \
+  /* Add/subtract immediate */                          \
+  V_(ImmAddSub, 21, 10, Bits)                           \
+  V_(ShiftAddSub, 23, 22, Bits)                         \
+                                                        \
+  /* Add/substract extend */                            \
+  V_(ImmExtendShift, 12, 10, Bits)                      \
+  V_(ExtendMode, 15, 13, Bits)                          \
+                                                        \
+  /* Move wide */                                       \
+  V_(ImmMoveWide, 20, 5, Bits)                          \
+  V_(ShiftMoveWide, 22, 21, Bits)                       \
+                                                        \
+  /* Logical immediate, bitfield and extract */         \
+  V_(BitN, 22, 22, Bits)                                \
+  V_(ImmRotate, 21, 16, Bits)                           \
+  V_(ImmSetBits, 15, 10, Bits)                          \
+  V_(ImmR, 21, 16, Bits)                                \
+  V_(ImmS, 15, 10, Bits)                                \
+                                                        \
+  /* Test and branch immediate */                       \
+  V_(ImmTestBranch, 18, 5, SignedBits)                  \
+  V_(ImmTestBranchBit40, 23, 19, Bits)                  \
+  V_(ImmTestBranchBit5, 31, 31, Bits)                   \
+                                                        \
+  /* Conditionals */                                    \
+  V_(Condition, 15, 12, Bits)                           \
+  V_(ConditionBranch, 3, 0, Bits)                       \
+  V_(Nzcv, 3, 0, Bits)                                  \
+  V_(ImmCondCmp, 20, 16, Bits)                          \
+  V_(ImmCondBranch, 23, 5, SignedBits)                  \
+                                                        \
+  /* Floating point */                                  \
+  V_(FPType, 23, 22, Bits)                              \
+  V_(ImmFP, 20, 13, Bits)                               \
+  V_(FPScale, 15, 10, Bits)                             \
+                                                        \
+  /* Load Store */                                      \
+  V_(ImmLS, 20, 12, SignedBits)                         \
+  V_(ImmLSUnsigned, 21, 10, Bits)                       \
+  V_(ImmLSPair, 21, 15, SignedBits)                     \
+  V_(SizeLS, 31, 30, Bits)                              \
+  V_(ImmShiftLS, 12, 12, Bits)                          \
+                                                        \
+  /* Other immediates */                                \
+  V_(ImmUncondBranch, 25, 0, SignedBits)                \
+  V_(ImmCmpBranch, 23, 5, SignedBits)                   \
+  V_(ImmLLiteral, 23, 5, SignedBits)                    \
+  V_(ImmException, 20, 5, Bits)                         \
+  V_(ImmHint, 11, 5, Bits)                              \
+  V_(ImmBarrierDomain, 11, 10, Bits)                    \
+  V_(ImmBarrierType, 9, 8, Bits)                        \
+                                                        \
+  /* System (MRS, MSR) */                               \
+  V_(ImmSystemRegister, 19, 5, Bits)                    \
+  V_(SysO0, 19, 19, Bits)                               \
+  V_(SysOp1, 18, 16, Bits)                              \
+  V_(SysOp2, 7, 5, Bits)                                \
+  V_(CRn, 15, 12, Bits)                                 \
+  V_(CRm, 11, 8, Bits)
 
 #define SYSTEM_REGISTER_FIELDS_LIST(V_, M_)                                    \
 /* NZCV */                                                                     \
@@ -857,6 +857,29 @@
   #undef LOAD_STORE_REGISTER_OFFSET
 };
 
+// Load/store acquire/release
+enum LoadStoreAcquireReleaseOp {
+  LoadStoreAcquireReleaseFixed = 0x08000000,
+  LoadStoreAcquireReleaseFMask = 0x3F000000,
+  LoadStoreAcquireReleaseMask = 0xCFC08000,
+  STLXR_b = LoadStoreAcquireReleaseFixed | 0x00008000,
+  LDAXR_b = LoadStoreAcquireReleaseFixed | 0x00408000,
+  STLR_b  = LoadStoreAcquireReleaseFixed | 0x00808000,
+  LDAR_b  = LoadStoreAcquireReleaseFixed | 0x00C08000,
+  STLXR_h = LoadStoreAcquireReleaseFixed | 0x40008000,
+  LDAXR_h = LoadStoreAcquireReleaseFixed | 0x40408000,
+  STLR_h  = LoadStoreAcquireReleaseFixed | 0x40808000,
+  LDAR_h  = LoadStoreAcquireReleaseFixed | 0x40C08000,
+  STLXR_w = LoadStoreAcquireReleaseFixed | 0x80008000,
+  LDAXR_w = LoadStoreAcquireReleaseFixed | 0x80408000,
+  STLR_w  = LoadStoreAcquireReleaseFixed | 0x80808000,
+  LDAR_w  = LoadStoreAcquireReleaseFixed | 0x80C08000,
+  STLXR_x = LoadStoreAcquireReleaseFixed | 0xC0008000,
+  LDAXR_x = LoadStoreAcquireReleaseFixed | 0xC0408000,
+  STLR_x  = LoadStoreAcquireReleaseFixed | 0xC0808000,
+  LDAR_x  = LoadStoreAcquireReleaseFixed | 0xC0C08000,
+};
+
 // Conditional compare.
 enum ConditionalCompareOp {
   ConditionalCompareMask = 0x60000000,
diff --git a/src/arm64/decoder-arm64-inl.h b/src/arm64/decoder-arm64-inl.h
index e00105e..2405f87 100644
--- a/src/arm64/decoder-arm64-inl.h
+++ b/src/arm64/decoder-arm64-inl.h
@@ -217,8 +217,15 @@
     if (instr->Bit(28) == 0) {
       if (instr->Bit(29) == 0) {
         if (instr->Bit(26) == 0) {
-          // TODO(all): VisitLoadStoreExclusive.
-          V::VisitUnimplemented(instr);
+          if (instr->Mask(0xA08000) == 0x800000 ||
+              instr->Mask(0xA00000) == 0xA00000) {
+            V::VisitUnallocated(instr);
+          } else if (instr->Mask(0x808000) == 0) {
+            // Load/Store exclusive without acquire/release are unimplemented.
+            V::VisitUnimplemented(instr);
+          } else {
+            V::VisitLoadStoreAcquireRelease(instr);
+          }
         } else {
           DecodeAdvSIMDLoadStore(instr);
         }
diff --git a/src/arm64/decoder-arm64.h b/src/arm64/decoder-arm64.h
index b1ef41f..a17b324 100644
--- a/src/arm64/decoder-arm64.h
+++ b/src/arm64/decoder-arm64.h
@@ -16,49 +16,50 @@
 
 // List macro containing all visitors needed by the decoder class.
 
-#define VISITOR_LIST(V)             \
-  V(PCRelAddressing)                \
-  V(AddSubImmediate)                \
-  V(LogicalImmediate)               \
-  V(MoveWideImmediate)              \
-  V(Bitfield)                       \
-  V(Extract)                        \
-  V(UnconditionalBranch)            \
-  V(UnconditionalBranchToRegister)  \
-  V(CompareBranch)                  \
-  V(TestBranch)                     \
-  V(ConditionalBranch)              \
-  V(System)                         \
-  V(Exception)                      \
-  V(LoadStorePairPostIndex)         \
-  V(LoadStorePairOffset)            \
-  V(LoadStorePairPreIndex)          \
-  V(LoadLiteral)                    \
-  V(LoadStoreUnscaledOffset)        \
-  V(LoadStorePostIndex)             \
-  V(LoadStorePreIndex)              \
-  V(LoadStoreRegisterOffset)        \
-  V(LoadStoreUnsignedOffset)        \
-  V(LogicalShifted)                 \
-  V(AddSubShifted)                  \
-  V(AddSubExtended)                 \
-  V(AddSubWithCarry)                \
-  V(ConditionalCompareRegister)     \
-  V(ConditionalCompareImmediate)    \
-  V(ConditionalSelect)              \
-  V(DataProcessing1Source)          \
-  V(DataProcessing2Source)          \
-  V(DataProcessing3Source)          \
-  V(FPCompare)                      \
-  V(FPConditionalCompare)           \
-  V(FPConditionalSelect)            \
-  V(FPImmediate)                    \
-  V(FPDataProcessing1Source)        \
-  V(FPDataProcessing2Source)        \
-  V(FPDataProcessing3Source)        \
-  V(FPIntegerConvert)               \
-  V(FPFixedPointConvert)            \
-  V(Unallocated)                    \
+#define VISITOR_LIST(V)            \
+  V(PCRelAddressing)               \
+  V(AddSubImmediate)               \
+  V(LogicalImmediate)              \
+  V(MoveWideImmediate)             \
+  V(Bitfield)                      \
+  V(Extract)                       \
+  V(UnconditionalBranch)           \
+  V(UnconditionalBranchToRegister) \
+  V(CompareBranch)                 \
+  V(TestBranch)                    \
+  V(ConditionalBranch)             \
+  V(System)                        \
+  V(Exception)                     \
+  V(LoadStorePairPostIndex)        \
+  V(LoadStorePairOffset)           \
+  V(LoadStorePairPreIndex)         \
+  V(LoadLiteral)                   \
+  V(LoadStoreUnscaledOffset)       \
+  V(LoadStorePostIndex)            \
+  V(LoadStorePreIndex)             \
+  V(LoadStoreRegisterOffset)       \
+  V(LoadStoreUnsignedOffset)       \
+  V(LoadStoreAcquireRelease)       \
+  V(LogicalShifted)                \
+  V(AddSubShifted)                 \
+  V(AddSubExtended)                \
+  V(AddSubWithCarry)               \
+  V(ConditionalCompareRegister)    \
+  V(ConditionalCompareImmediate)   \
+  V(ConditionalSelect)             \
+  V(DataProcessing1Source)         \
+  V(DataProcessing2Source)         \
+  V(DataProcessing3Source)         \
+  V(FPCompare)                     \
+  V(FPConditionalCompare)          \
+  V(FPConditionalSelect)           \
+  V(FPImmediate)                   \
+  V(FPDataProcessing1Source)       \
+  V(FPDataProcessing2Source)       \
+  V(FPDataProcessing3Source)       \
+  V(FPIntegerConvert)              \
+  V(FPFixedPointConvert)           \
+  V(Unallocated)                   \
   V(Unimplemented)
 
 // The Visitor interface. Disassembler and simulator (and other tools)
diff --git a/src/arm64/deoptimizer-arm64.cc b/src/arm64/deoptimizer-arm64.cc
index fe2a269..c1d04ac 100644
--- a/src/arm64/deoptimizer-arm64.cc
+++ b/src/arm64/deoptimizer-arm64.cc
@@ -97,8 +97,7 @@
   // Save all allocatable floating point registers.
   CPURegList saved_fp_registers(
       CPURegister::kFPRegister, kDRegSizeInBits,
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->allocatable_double_codes_mask());
+      RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask());
   __ PushCPURegList(saved_fp_registers);
 
   // We save all the registers expcept jssp, sp and lr.
diff --git a/src/arm64/disasm-arm64.cc b/src/arm64/disasm-arm64.cc
index 00c3ec2..8e022b1 100644
--- a/src/arm64/disasm-arm64.cc
+++ b/src/arm64/disasm-arm64.cc
@@ -914,6 +914,34 @@
   Format(instr, mnemonic, form);
 }
 
+void DisassemblingDecoder::VisitLoadStoreAcquireRelease(Instruction *instr) {
+  const char *mnemonic = "unimplemented";
+  const char *form = "'Wt, ['Xn]";
+  const char *form_x = "'Xt, ['Xn]";
+  const char *form_stlx = "'Ws, 'Wt, ['Xn]";
+  const char *form_stlx_x = "'Ws, 'Xt, ['Xn]";
+
+  switch (instr->Mask(LoadStoreAcquireReleaseMask)) {
+    case LDAXR_b: mnemonic = "ldaxrb"; break;
+    case STLR_b:  mnemonic = "stlrb"; break;
+    case LDAR_b:  mnemonic = "ldarb"; break;
+    case LDAXR_h: mnemonic = "ldaxrh"; break;
+    case STLR_h:  mnemonic = "stlrh"; break;
+    case LDAR_h:  mnemonic = "ldarh"; break;
+    case LDAXR_w: mnemonic = "ldaxr"; break;
+    case STLR_w:  mnemonic = "stlr"; break;
+    case LDAR_w:  mnemonic = "ldar"; break;
+    case LDAXR_x: mnemonic = "ldaxr"; form = form_x; break;
+    case STLR_x:  mnemonic = "stlr"; form = form_x; break;
+    case LDAR_x:  mnemonic = "ldar"; form = form_x; break;
+    case STLXR_h: mnemonic = "stlxrh"; form = form_stlx; break;
+    case STLXR_b: mnemonic = "stlxrb"; form = form_stlx; break;
+    case STLXR_w: mnemonic = "stlxr"; form = form_stlx; break;
+    case STLXR_x: mnemonic = "stlxr"; form = form_stlx_x; break;
+    default: form = "(LoadStoreAcquireReleaseMask)";
+  }
+  Format(instr, mnemonic, form);
+}
 
 void DisassemblingDecoder::VisitFPCompare(Instruction* instr) {
   const char *mnemonic = "unimplemented";
@@ -1295,6 +1323,9 @@
       }
       break;
     }
+    case 's':
+      reg_num = instr->Rs();
+      break;
     default: UNREACHABLE();
   }
 
@@ -1719,7 +1750,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void *>(addr));
   return tmp_buffer_.start();
 }
 
@@ -1771,7 +1802,8 @@
   ~BufferDisassembler() { }
 
   virtual void ProcessOutput(v8::internal::Instruction* instr) {
-    v8::internal::SNPrintF(out_buffer_, "%s", GetOutput());
+    v8::internal::SNPrintF(out_buffer_, "%08" PRIx32 "       %s",
+                           instr->InstructionBits(), GetOutput());
   }
 
  private:
diff --git a/src/arm64/instrument-arm64.cc b/src/arm64/instrument-arm64.cc
index 7a8e2f4..dad89fe 100644
--- a/src/arm64/instrument-arm64.cc
+++ b/src/arm64/instrument-arm64.cc
@@ -429,6 +429,31 @@
   InstrumentLoadStore(instr);
 }
 
+void Instrument::VisitLoadStoreAcquireRelease(Instruction* instr) {
+  Update();
+  static Counter* load_counter = GetCounter("Load Acquire");
+  static Counter* store_counter = GetCounter("Store Release");
+
+  switch (instr->Mask(LoadStoreAcquireReleaseMask)) {
+    case LDAR_b:   // Fall-through.
+    case LDAR_h:   // Fall-through.
+    case LDAR_w:   // Fall-through.
+    case LDAR_x:   // Fall-through.
+    case LDAXR_b:  // Fall-through.
+    case LDAXR_h:  // Fall-through.
+    case LDAXR_w:  // Fall-through.
+    case LDAXR_x: load_counter->Increment(); break;
+    case STLR_b:   // Fall-through.
+    case STLR_h:   // Fall-through.
+    case STLR_w:   // Fall-through.
+    case STLR_x:   // Fall-through.
+    case STLXR_b:  // Fall-through.
+    case STLXR_h:  // Fall-through.
+    case STLXR_w:  // Fall-through.
+    case STLXR_x: store_counter->Increment(); break;
+    default: UNREACHABLE();
+  }
+}
 
 void Instrument::VisitLogicalShifted(Instruction* instr) {
   Update();
diff --git a/src/arm64/interface-descriptors-arm64.cc b/src/arm64/interface-descriptors-arm64.cc
index d23eb58..573d89e 100644
--- a/src/arm64/interface-descriptors-arm64.cc
+++ b/src/arm64/interface-descriptors-arm64.cc
@@ -13,6 +13,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {x0, x1, x2, x3, x4};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return x1; }
 const Register LoadDescriptor::NameRegister() { return x2; }
@@ -41,9 +49,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return x3; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return x2; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return x2; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return x0; }
 
@@ -63,8 +68,6 @@
 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) {
@@ -280,41 +283,24 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
+  // register state
+  // x0: number of arguments
   // x1: function
   // x2: allocation site with elements kind
-  // x0: number of arguments to the constructor function
-  Register registers[] = {x1, x2};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  Register registers[] = {x1, x2, x0};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {x1, x2, x0};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // x1: constructor function
-  // x0: number of arguments to the constructor function
-  Register registers[] = {x1};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {x1, x0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {x0};
diff --git a/src/arm64/macro-assembler-arm64-inl.h b/src/arm64/macro-assembler-arm64-inl.h
index 60418ad..f19d690 100644
--- a/src/arm64/macro-assembler-arm64-inl.h
+++ b/src/arm64/macro-assembler-arm64-inl.h
@@ -309,6 +309,22 @@
 LSPAIR_MACRO_LIST(DEFINE_FUNCTION)
 #undef DEFINE_FUNCTION
 
+#define DECLARE_FUNCTION(FN, OP)                                    \
+  void MacroAssembler::FN(const Register& rt, const Register& rn) { \
+    DCHECK(allow_macro_instructions_);                              \
+    OP(rt, rn);                                                     \
+  }
+LDA_STL_MACRO_LIST(DECLARE_FUNCTION)
+#undef DECLARE_FUNCTION
+
+#define DECLARE_FUNCTION(FN, OP)                                  \
+  void MacroAssembler::FN(const Register& rs, const Register& rt, \
+                          const Register& rn) {                   \
+    DCHECK(allow_macro_instructions_);                            \
+    OP(rs, rt, rn);                                               \
+  }
+STLX_MACRO_LIST(DECLARE_FUNCTION)
+#undef DECLARE_FUNCTION
 
 void MacroAssembler::Asr(const Register& rd,
                          const Register& rn,
diff --git a/src/arm64/macro-assembler-arm64.cc b/src/arm64/macro-assembler-arm64.cc
index 8a54e20..83b33b7 100644
--- a/src/arm64/macro-assembler-arm64.cc
+++ b/src/arm64/macro-assembler-arm64.cc
@@ -1971,9 +1971,6 @@
   Label start_call;
   Bind(&start_call);
 #endif
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  positions_recorder()->WriteRecordedPositions();
 
   // Addresses always have 64 bits, so we shouldn't encounter NONE32.
   DCHECK(rmode != RelocInfo::NONE32);
@@ -2496,11 +2493,12 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  Mov(x4, Operand(step_in_enabled));
-  ldrb(x4, MemOperand(x4));
-  CompareAndBranch(x4, Operand(0), eq, &skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  Mov(x4, Operand(last_step_action));
+  Ldrsb(x4, MemOperand(x4));
+  CompareAndBranch(x4, Operand(StepIn), lt, &skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -2761,9 +2759,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   Ldr(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  Ldr(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  Ldr(vector,
-      FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  Ldr(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  Ldr(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -4132,16 +4129,14 @@
   PushSafepointRegisters();
   PushCPURegList(CPURegList(
       CPURegister::kFPRegister, kDRegSizeInBits,
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->allocatable_double_codes_mask()));
+      RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask()));
 }
 
 
 void MacroAssembler::PopSafepointRegistersAndDoubles() {
   PopCPURegList(CPURegList(
       CPURegister::kFPRegister, kDRegSizeInBits,
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->allocatable_double_codes_mask()));
+      RegisterConfiguration::Crankshaft()->allocatable_double_codes_mask()));
   PopSafepointRegisters();
 }
 
diff --git a/src/arm64/macro-assembler-arm64.h b/src/arm64/macro-assembler-arm64.h
index 67e64f4..246d574 100644
--- a/src/arm64/macro-assembler-arm64.h
+++ b/src/arm64/macro-assembler-arm64.h
@@ -68,6 +68,21 @@
   V(Stp, CPURegister&, rt, rt2, StorePairOpFor(rt, rt2)) \
   V(Ldpsw, CPURegister&, rt, rt2, LDPSW_x)
 
+#define LDA_STL_MACRO_LIST(V) \
+  V(Ldarb, ldarb)             \
+  V(Ldarh, ldarh)             \
+  V(Ldar, ldar)               \
+  V(Ldaxrb, ldaxrb)           \
+  V(Ldaxrh, ldaxrh)           \
+  V(Ldaxr, ldaxr)             \
+  V(Stlrb, stlrb)             \
+  V(Stlrh, stlrh)             \
+  V(Stlr, stlr)
+
+#define STLX_MACRO_LIST(V) \
+  V(Stlxrb, stlxrb)        \
+  V(Stlxrh, stlxrh)        \
+  V(Stlxr, stlxr)
 
 // ----------------------------------------------------------------------------
 // Static helper functions
@@ -295,6 +310,17 @@
   void LoadStorePairMacro(const CPURegister& rt, const CPURegister& rt2,
                           const MemOperand& addr, LoadStorePairOp op);
 
+// Load-acquire/store-release macros.
+#define DECLARE_FUNCTION(FN, OP) \
+  inline void FN(const Register& rt, const Register& rn);
+  LDA_STL_MACRO_LIST(DECLARE_FUNCTION)
+#undef DECLARE_FUNCTION
+
+#define DECLARE_FUNCTION(FN, OP) \
+  inline void FN(const Register& rs, const Register& rt, const Register& rn);
+  STLX_MACRO_LIST(DECLARE_FUNCTION)
+#undef DECLARE_FUNCTION
+
   // V8-specific load/store helpers.
   void Load(const Register& rt, const MemOperand& addr, Representation r);
   void Store(const Register& rt, const MemOperand& addr, Representation r);
diff --git a/src/arm64/simulator-arm64.cc b/src/arm64/simulator-arm64.cc
index 81dbdf8..aa10eb2 100644
--- a/src/arm64/simulator-arm64.cc
+++ b/src/arm64/simulator-arm64.cc
@@ -524,7 +524,7 @@
 
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
 }
 
@@ -609,7 +609,8 @@
                xreg(4), xreg(5), xreg(6), xreg(7));
       ObjectPair result = target(xreg(0), xreg(1), xreg(2), xreg(3),
                                  xreg(4), xreg(5), xreg(6), xreg(7));
-      TraceSim("Returned: {%p, %p}\n", result.x, result.y);
+      TraceSim("Returned: {%p, %p}\n", static_cast<void*>(result.x),
+               static_cast<void*>(result.y));
 #ifdef DEBUG
       CorruptAllCallerSavedCPURegisters();
 #endif
@@ -639,7 +640,8 @@
       ObjectTriple* sim_result = reinterpret_cast<ObjectTriple*>(xreg(8));
       ObjectTriple result = target(xreg(0), xreg(1), xreg(2), xreg(3), xreg(4),
                                    xreg(5), xreg(6), xreg(7));
-      TraceSim("Returned: {%p, %p, %p}\n", result.x, result.y, result.z);
+      TraceSim("Returned: {%p, %p, %p}\n", static_cast<void*>(result.x),
+               static_cast<void*>(result.y), static_cast<void*>(result.z));
 #ifdef DEBUG
       CorruptAllCallerSavedCPURegisters();
 #endif
@@ -1900,6 +1902,9 @@
   }
 }
 
+void Simulator::VisitLoadStoreAcquireRelease(Instruction* instr) {
+  // TODO(binji)
+}
 
 void Simulator::CheckMemoryAccess(uintptr_t address, uintptr_t stack) {
   if ((address >= stack_limit_) && (address < stack)) {
diff --git a/src/arm64/simulator-arm64.h b/src/arm64/simulator-arm64.h
index 586f204..cc2dcc2 100644
--- a/src/arm64/simulator-arm64.h
+++ b/src/arm64/simulator-arm64.h
@@ -151,8 +151,7 @@
 
 class Simulator : public DecoderVisitor {
  public:
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size) {
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size) {
     USE(i_cache);
     USE(start);
     USE(size);
@@ -168,7 +167,7 @@
 
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   static Simulator* current(v8::internal::Isolate* isolate);
 
diff --git a/src/assembler.cc b/src/assembler.cc
index 17cd56b..c7e819a 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -39,6 +39,7 @@
 #include "src/api.h"
 #include "src/base/cpu.h"
 #include "src/base/functional.h"
+#include "src/base/ieee754.h"
 #include "src/base/lazy-instance.h"
 #include "src/base/platform/platform.h"
 #include "src/base/utils/random-number-generator.h"
@@ -53,7 +54,6 @@
 #include "src/ic/stub-cache.h"
 #include "src/interpreter/interpreter.h"
 #include "src/ostreams.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/jsregexp.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
@@ -114,39 +114,6 @@
 namespace internal {
 
 // -----------------------------------------------------------------------------
-// Common register code.
-
-const char* Register::ToString() {
-  // This is the mapping of allocation indices to registers.
-  DCHECK(reg_code >= 0 && reg_code < kNumRegisters);
-  return RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-      ->GetGeneralRegisterName(reg_code);
-}
-
-
-bool Register::IsAllocatable() const {
-  return ((1 << reg_code) &
-          RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-              ->allocatable_general_codes_mask()) != 0;
-}
-
-
-const char* DoubleRegister::ToString() {
-  // This is the mapping of allocation indices to registers.
-  DCHECK(reg_code >= 0 && reg_code < kMaxNumRegisters);
-  return RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-      ->GetDoubleRegisterName(reg_code);
-}
-
-
-bool DoubleRegister::IsAllocatable() const {
-  return ((1 << reg_code) &
-          RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-              ->allocatable_double_codes_mask()) != 0;
-}
-
-
-// -----------------------------------------------------------------------------
 // Common double constants.
 
 struct DoubleConstant BASE_EMBEDDED {
@@ -162,11 +129,6 @@
 
 const char* const RelocInfo::kFillerCommentString = "DEOPTIMIZATION PADDING";
 
-static bool math_exp_data_initialized = false;
-static base::Mutex* math_exp_data_mutex = NULL;
-static double* math_exp_constants_array = NULL;
-static double* math_exp_log_table_array = NULL;
-
 // -----------------------------------------------------------------------------
 // Implementation of AssemblerBase
 
@@ -361,6 +323,49 @@
 const int kStatementPositionTag = 2;
 const int kDeoptReasonTag = 3;
 
+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_size == 0 || Memory::IsAddressInRange(
+                                old_base, wasm_memory_reference(), old_size));
+    updated_reference = new_base + (wasm_memory_reference() - old_base);
+    DCHECK(new_size == 0 ||
+           Memory::IsAddressInRange(new_base, updated_reference, new_size));
+    unchecked_update_wasm_memory_reference(updated_reference,
+                                           icache_flush_mode);
+  } else if (IsWasmMemorySizeReference(rmode_)) {
+    uint32_t updated_size_reference;
+    DCHECK(old_size == 0 || wasm_memory_size_reference() <= old_size);
+    updated_size_reference =
+        new_size + (wasm_memory_size_reference() - old_size);
+    DCHECK(updated_size_reference <= new_size);
+    unchecked_update_wasm_memory_size(updated_size_reference,
+                                      icache_flush_mode);
+  } else {
+    UNREACHABLE();
+  }
+  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
+    Assembler::FlushICache(isolate_, pc_, sizeof(int64_t));
+  }
+}
+
+void RelocInfo::update_wasm_global_reference(
+    Address old_base, Address new_base, ICacheFlushMode icache_flush_mode) {
+  DCHECK(IsWasmGlobalReference(rmode_));
+  Address updated_reference;
+  DCHECK(reinterpret_cast<uintptr_t>(old_base) <=
+         reinterpret_cast<uintptr_t>(wasm_global_reference()));
+  updated_reference = new_base + (wasm_global_reference() - old_base);
+  DCHECK(reinterpret_cast<uintptr_t>(new_base) <=
+         reinterpret_cast<uintptr_t>(updated_reference));
+  unchecked_update_wasm_memory_reference(updated_reference, icache_flush_mode);
+  if (icache_flush_mode != SKIP_ICACHE_FLUSH) {
+    Assembler::FlushICache(isolate_, pc_, sizeof(int32_t));
+  }
+}
 
 uint32_t RelocInfoWriter::WriteLongPCJump(uint32_t pc_delta) {
   // Return if the pc_delta can fit in kSmallPCDeltaBits bits.
@@ -851,6 +856,8 @@
       return "wasm memory reference";
     case WASM_MEMORY_SIZE_REFERENCE:
       return "wasm memory size reference";
+    case WASM_GLOBAL_REFERENCE:
+      return "wasm global value reference";
     case NUMBER_OF_MODES:
     case PC_JUMP:
       UNREACHABLE();
@@ -948,6 +955,7 @@
     case GENERATOR_CONTINUATION:
     case WASM_MEMORY_REFERENCE:
     case WASM_MEMORY_SIZE_REFERENCE:
+    case WASM_GLOBAL_REFERENCE:
     case NONE32:
     case NONE64:
       break;
@@ -987,61 +995,6 @@
   double_constants.negative_infinity = -V8_INFINITY;
   double_constants.uint32_bias =
     static_cast<double>(static_cast<uint32_t>(0xFFFFFFFF)) + 1;
-
-  math_exp_data_mutex = new base::Mutex();
-}
-
-
-void ExternalReference::InitializeMathExpData() {
-  // Early return?
-  if (math_exp_data_initialized) return;
-
-  base::LockGuard<base::Mutex> lock_guard(math_exp_data_mutex);
-  if (!math_exp_data_initialized) {
-    // If this is changed, generated code must be adapted too.
-    const int kTableSizeBits = 11;
-    const int kTableSize = 1 << kTableSizeBits;
-    const double kTableSizeDouble = static_cast<double>(kTableSize);
-
-    math_exp_constants_array = new double[9];
-    // Input values smaller than this always return 0.
-    math_exp_constants_array[0] = -708.39641853226408;
-    // Input values larger than this always return +Infinity.
-    math_exp_constants_array[1] = 709.78271289338397;
-    math_exp_constants_array[2] = V8_INFINITY;
-    // The rest is black magic. Do not attempt to understand it. It is
-    // loosely based on the "expd" function published at:
-    // http://herumi.blogspot.com/2011/08/fast-double-precision-exponential.html
-    const double constant3 = (1 << kTableSizeBits) / std::log(2.0);
-    math_exp_constants_array[3] = constant3;
-    math_exp_constants_array[4] =
-        static_cast<double>(static_cast<int64_t>(3) << 51);
-    math_exp_constants_array[5] = 1 / constant3;
-    math_exp_constants_array[6] = 3.0000000027955394;
-    math_exp_constants_array[7] = 0.16666666685227835;
-    math_exp_constants_array[8] = 1;
-
-    math_exp_log_table_array = new double[kTableSize];
-    for (int i = 0; i < kTableSize; i++) {
-      double value = std::pow(2, i / kTableSizeDouble);
-      uint64_t bits = bit_cast<uint64_t, double>(value);
-      bits &= (static_cast<uint64_t>(1) << 52) - 1;
-      double mantissa = bit_cast<double, uint64_t>(bits);
-      math_exp_log_table_array[i] = mantissa;
-    }
-
-    math_exp_data_initialized = true;
-  }
-}
-
-
-void ExternalReference::TearDownMathExpData() {
-  delete[] math_exp_constants_array;
-  math_exp_constants_array = NULL;
-  delete[] math_exp_log_table_array;
-  math_exp_log_table_array = NULL;
-  delete math_exp_data_mutex;
-  math_exp_data_mutex = NULL;
 }
 
 
@@ -1288,64 +1241,27 @@
       Redirect(isolate, FUNCTION_ADDR(wasm::word64_popcnt_wrapper)));
 }
 
-static void f64_acos_wrapper(double* param) { *param = std::acos(*param); }
+static void f64_acos_wrapper(double* param) {
+  WriteDoubleValue(param, std::acos(ReadDoubleValue(param)));
+}
 
 ExternalReference ExternalReference::f64_acos_wrapper_function(
     Isolate* isolate) {
   return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_acos_wrapper)));
 }
 
-static void f64_asin_wrapper(double* param) { *param = std::asin(*param); }
+static void f64_asin_wrapper(double* param) {
+  WriteDoubleValue(param, std::asin(ReadDoubleValue(param)));
+}
 
 ExternalReference ExternalReference::f64_asin_wrapper_function(
     Isolate* isolate) {
   return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_asin_wrapper)));
 }
 
-static void f64_atan_wrapper(double* param) { *param = std::atan(*param); }
-
-ExternalReference ExternalReference::f64_atan_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan_wrapper)));
-}
-
-static void f64_cos_wrapper(double* param) { *param = std::cos(*param); }
-
-ExternalReference ExternalReference::f64_cos_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_cos_wrapper)));
-}
-
-static void f64_sin_wrapper(double* param) { *param = std::sin(*param); }
-
-ExternalReference ExternalReference::f64_sin_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_sin_wrapper)));
-}
-
-static void f64_tan_wrapper(double* param) { *param = std::tan(*param); }
-
-ExternalReference ExternalReference::f64_tan_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_tan_wrapper)));
-}
-
-static void f64_exp_wrapper(double* param) { *param = std::exp(*param); }
-
-ExternalReference ExternalReference::f64_exp_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_exp_wrapper)));
-}
-
-static void f64_log_wrapper(double* param) { *param = std::log(*param); }
-
-ExternalReference ExternalReference::f64_log_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_log_wrapper)));
-}
-
 static void f64_pow_wrapper(double* param0, double* param1) {
-  *param0 = power_double_double(*param0, *param1);
+  WriteDoubleValue(param0, power_double_double(ReadDoubleValue(param0),
+                                               ReadDoubleValue(param1)));
 }
 
 ExternalReference ExternalReference::f64_pow_wrapper_function(
@@ -1353,32 +1269,9 @@
   return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_pow_wrapper)));
 }
 
-static void f64_atan2_wrapper(double* param0, double* param1) {
-  double x = *param0;
-  double y = *param1;
-  // TODO(bradnelson): Find a good place to put this to share
-  // with the same code in src/runtime/runtime-math.cc
-  static const double kPiDividedBy4 = 0.78539816339744830962;
-  if (std::isinf(x) && std::isinf(y)) {
-    // Make sure that the result in case of two infinite arguments
-    // is a multiple of Pi / 4. The sign of the result is determined
-    // by the first argument (x) and the sign of the second argument
-    // determines the multiplier: one or three.
-    int multiplier = (x < 0) ? -1 : 1;
-    if (y < 0) multiplier *= 3;
-    *param0 = multiplier * kPiDividedBy4;
-  } else {
-    *param0 = std::atan2(x, y);
-  }
-}
-
-ExternalReference ExternalReference::f64_atan2_wrapper_function(
-    Isolate* isolate) {
-  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(f64_atan2_wrapper)));
-}
-
 static void f64_mod_wrapper(double* param0, double* param1) {
-  *param0 = modulo(*param0, *param1);
+  WriteDoubleValue(param0,
+                   modulo(ReadDoubleValue(param0), ReadDoubleValue(param1)));
 }
 
 ExternalReference ExternalReference::f64_mod_wrapper_function(
@@ -1533,7 +1426,7 @@
 
 
 ExternalReference ExternalReference::is_profiling_address(Isolate* isolate) {
-  return ExternalReference(isolate->cpu_profiler()->is_profiling_address());
+  return ExternalReference(isolate->is_profiling_address());
 }
 
 
@@ -1623,28 +1516,70 @@
 
 #endif  // V8_INTERPRETED_REGEXP
 
-
-ExternalReference ExternalReference::math_log_double_function(
-    Isolate* isolate) {
-  typedef double (*d2d)(double x);
-  return ExternalReference(Redirect(isolate,
-                                    FUNCTION_ADDR(static_cast<d2d>(std::log)),
-                                    BUILTIN_FP_CALL));
-}
-
-
-ExternalReference ExternalReference::math_exp_constants(int constant_index) {
-  DCHECK(math_exp_data_initialized);
+ExternalReference ExternalReference::ieee754_atan_function(Isolate* isolate) {
   return ExternalReference(
-      reinterpret_cast<void*>(math_exp_constants_array + constant_index));
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::atan), BUILTIN_FP_CALL));
 }
 
-
-ExternalReference ExternalReference::math_exp_log_table() {
-  DCHECK(math_exp_data_initialized);
-  return ExternalReference(reinterpret_cast<void*>(math_exp_log_table_array));
+ExternalReference ExternalReference::ieee754_atan2_function(Isolate* isolate) {
+  return ExternalReference(Redirect(
+      isolate, FUNCTION_ADDR(base::ieee754::atan2), BUILTIN_FP_FP_CALL));
 }
 
+ExternalReference ExternalReference::ieee754_atanh_function(Isolate* isolate) {
+  return ExternalReference(Redirect(
+      isolate, FUNCTION_ADDR(base::ieee754::atanh), BUILTIN_FP_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_cbrt_function(Isolate* isolate) {
+  return ExternalReference(Redirect(isolate, FUNCTION_ADDR(base::ieee754::cbrt),
+                                    BUILTIN_FP_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_cos_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::cos), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_exp_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::exp), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_expm1_function(Isolate* isolate) {
+  return ExternalReference(Redirect(
+      isolate, FUNCTION_ADDR(base::ieee754::expm1), BUILTIN_FP_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_log_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::log), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_log1p_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::log1p), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_log10_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::log10), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_log2_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::log2), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_sin_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::sin), BUILTIN_FP_CALL));
+}
+
+ExternalReference ExternalReference::ieee754_tan_function(Isolate* isolate) {
+  return ExternalReference(
+      Redirect(isolate, FUNCTION_ADDR(base::ieee754::tan), BUILTIN_FP_CALL));
+}
 
 ExternalReference ExternalReference::page_flags(Page* page) {
   return ExternalReference(reinterpret_cast<Address>(page) +
@@ -1768,12 +1703,15 @@
                                     BUILTIN_FP_FP_CALL));
 }
 
-
-ExternalReference ExternalReference::debug_step_in_enabled_address(
+ExternalReference ExternalReference::debug_last_step_action_address(
     Isolate* isolate) {
-  return ExternalReference(isolate->debug()->step_in_enabled_address());
+  return ExternalReference(isolate->debug()->last_step_action_address());
 }
 
+ExternalReference ExternalReference::debug_suspended_generator_address(
+    Isolate* isolate) {
+  return ExternalReference(isolate->debug()->suspended_generator_address());
+}
 
 ExternalReference ExternalReference::fixed_typed_array_base_data_offset() {
   return ExternalReference(reinterpret_cast<void*>(
@@ -1806,49 +1744,44 @@
 void AssemblerPositionsRecorder::RecordPosition(int pos) {
   DCHECK(pos != RelocInfo::kNoPosition);
   DCHECK(pos >= 0);
-  state_.current_position = pos;
+  current_position_ = pos;
   LOG_CODE_EVENT(assembler_->isolate(),
                  CodeLinePosInfoAddPositionEvent(jit_handler_data_,
                                                  assembler_->pc_offset(),
                                                  pos));
+  WriteRecordedPositions();
 }
 
 void AssemblerPositionsRecorder::RecordStatementPosition(int pos) {
   DCHECK(pos != RelocInfo::kNoPosition);
   DCHECK(pos >= 0);
-  state_.current_statement_position = pos;
+  current_statement_position_ = pos;
   LOG_CODE_EVENT(assembler_->isolate(),
                  CodeLinePosInfoAddStatementPositionEvent(
                      jit_handler_data_,
                      assembler_->pc_offset(),
                      pos));
+  RecordPosition(pos);
 }
 
-bool AssemblerPositionsRecorder::WriteRecordedPositions() {
-  bool written = false;
-
+void AssemblerPositionsRecorder::WriteRecordedPositions() {
   // Write the statement position if it is different from what was written last
   // time.
-  if (state_.current_statement_position != state_.written_statement_position) {
+  if (current_statement_position_ != written_statement_position_) {
     EnsureSpace ensure_space(assembler_);
     assembler_->RecordRelocInfo(RelocInfo::STATEMENT_POSITION,
-                                state_.current_statement_position);
-    state_.written_position = state_.current_statement_position;
-    state_.written_statement_position = state_.current_statement_position;
-    written = true;
+                                current_statement_position_);
+    written_position_ = current_statement_position_;
+    written_statement_position_ = current_statement_position_;
   }
 
   // Write the position if it is different from what was written last time and
   // also different from the statement position that was just written.
-  if (state_.current_position != state_.written_position) {
+  if (current_position_ != written_position_) {
     EnsureSpace ensure_space(assembler_);
-    assembler_->RecordRelocInfo(RelocInfo::POSITION, state_.current_position);
-    state_.written_position = state_.current_position;
-    written = true;
+    assembler_->RecordRelocInfo(RelocInfo::POSITION, current_position_);
+    written_position_ = current_position_;
   }
-
-  // Return whether something was written.
-  return written;
 }
 
 
@@ -2057,7 +1990,7 @@
 // Platform specific but identical code for all the platforms.
 
 void Assembler::RecordDeoptReason(const int reason, int raw_position, int id) {
-  if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling()) {
+  if (FLAG_trace_deopt || isolate()->is_profiling()) {
     EnsureSpace ensure_space(this);
     RecordRelocInfo(RelocInfo::POSITION, raw_position);
     RecordRelocInfo(RelocInfo::DEOPT_REASON, reason);
diff --git a/src/assembler.h b/src/assembler.h
index 353abdb..0c2b7e8 100644
--- a/src/assembler.h
+++ b/src/assembler.h
@@ -39,6 +39,7 @@
 #include "src/builtins.h"
 #include "src/isolate.h"
 #include "src/log.h"
+#include "src/register-configuration.h"
 #include "src/runtime/runtime.h"
 
 namespace v8 {
@@ -386,6 +387,7 @@
     EMBEDDED_OBJECT,
     // To relocate pointers into the wasm memory embedded in wasm code
     WASM_MEMORY_REFERENCE,
+    WASM_GLOBAL_REFERENCE,
     WASM_MEMORY_SIZE_REFERENCE,
     CELL,
 
@@ -448,8 +450,7 @@
   }
 
   static inline bool IsRealRelocMode(Mode mode) {
-    return mode >= FIRST_REAL_RELOC_MODE &&
-        mode <= LAST_REAL_RELOC_MODE;
+    return mode >= FIRST_REAL_RELOC_MODE && mode <= LAST_REAL_RELOC_MODE;
   }
   static inline bool IsCodeTarget(Mode mode) {
     return mode <= LAST_CODE_ENUM;
@@ -529,6 +530,9 @@
   static inline bool IsWasmMemorySizeReference(Mode mode) {
     return mode == WASM_MEMORY_SIZE_REFERENCE;
   }
+  static inline bool IsWasmGlobalReference(Mode mode) {
+    return mode == WASM_GLOBAL_REFERENCE;
+  }
   static inline int ModeMask(Mode mode) { return 1 << mode; }
 
   // Accessors
@@ -556,44 +560,42 @@
   bool IsInConstantPool();
 
   Address wasm_memory_reference();
+  Address wasm_global_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);
+  void update_wasm_global_reference(
+      Address old_base, Address new_base,
+      ICacheFlushMode icache_flush_mode = SKIP_ICACHE_FLUSH);
 
   // this relocation applies to;
   // can only be called if IsCodeTarget(rmode_) || IsRuntimeEntry(rmode_)
   INLINE(Address target_address());
-  INLINE(void set_target_address(Address target,
-                                 WriteBarrierMode write_barrier_mode =
-                                     UPDATE_WRITE_BARRIER,
-                                 ICacheFlushMode icache_flush_mode =
-                                     FLUSH_ICACHE_IF_NEEDED));
+  INLINE(void set_target_address(
+      Address target,
+      WriteBarrierMode write_barrier_mode = UPDATE_WRITE_BARRIER,
+      ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED));
   INLINE(Object* target_object());
   INLINE(Handle<Object> target_object_handle(Assembler* origin));
-  INLINE(void set_target_object(Object* target,
-                                WriteBarrierMode write_barrier_mode =
-                                    UPDATE_WRITE_BARRIER,
-                                ICacheFlushMode icache_flush_mode =
-                                    FLUSH_ICACHE_IF_NEEDED));
+  INLINE(void set_target_object(
+      Object* target,
+      WriteBarrierMode write_barrier_mode = UPDATE_WRITE_BARRIER,
+      ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED));
   INLINE(Address target_runtime_entry(Assembler* origin));
-  INLINE(void set_target_runtime_entry(Address target,
-                                       WriteBarrierMode write_barrier_mode =
-                                           UPDATE_WRITE_BARRIER,
-                                       ICacheFlushMode icache_flush_mode =
-                                           FLUSH_ICACHE_IF_NEEDED));
+  INLINE(void set_target_runtime_entry(
+      Address target,
+      WriteBarrierMode write_barrier_mode = UPDATE_WRITE_BARRIER,
+      ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED));
   INLINE(Cell* target_cell());
   INLINE(Handle<Cell> target_cell_handle());
-  INLINE(void set_target_cell(Cell* cell,
-                              WriteBarrierMode write_barrier_mode =
-                                  UPDATE_WRITE_BARRIER,
-                              ICacheFlushMode icache_flush_mode =
-                                  FLUSH_ICACHE_IF_NEEDED));
+  INLINE(void set_target_cell(
+      Cell* cell, WriteBarrierMode write_barrier_mode = UPDATE_WRITE_BARRIER,
+      ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED));
   INLINE(Handle<Object> code_age_stub_handle(Assembler* origin));
   INLINE(Code* code_age_stub());
-  INLINE(void set_code_age_stub(Code* stub,
-                                ICacheFlushMode icache_flush_mode =
-                                    FLUSH_ICACHE_IF_NEEDED));
+  INLINE(void set_code_age_stub(
+      Code* stub, ICacheFlushMode icache_flush_mode = FLUSH_ICACHE_IF_NEEDED));
 
   // Returns the address of the constant pool entry where the target address
   // is held.  This should only be called if IsInConstantPool returns true.
@@ -674,6 +676,11 @@
   static const int kApplyMask;  // Modes affected by apply.  Depends on arch.
 
  private:
+  void unchecked_update_wasm_memory_reference(Address address,
+                                              ICacheFlushMode flush_mode);
+  void unchecked_update_wasm_memory_size(uint32_t size,
+                                         ICacheFlushMode flush_mode);
+
   Isolate* isolate_;
   // On ARM, note that pc_ is the address of the constant pool entry
   // to be relocated and not the address of the instruction
@@ -889,8 +896,6 @@
   };
 
   static void SetUp();
-  static void InitializeMathExpData();
-  static void TearDownMathExpData();
 
   typedef void* ExternalReferenceRedirector(Isolate* isolate, void* original,
                                             Type type);
@@ -968,13 +973,6 @@
 
   static ExternalReference f64_acos_wrapper_function(Isolate* isolate);
   static ExternalReference f64_asin_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_atan_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_cos_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_sin_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_tan_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_exp_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_log_wrapper_function(Isolate* isolate);
-  static ExternalReference f64_atan2_wrapper_function(Isolate* isolate);
   static ExternalReference f64_pow_wrapper_function(Isolate* isolate);
   static ExternalReference f64_mod_wrapper_function(Isolate* isolate);
 
@@ -1036,10 +1034,20 @@
   static ExternalReference address_of_the_hole_nan();
   static ExternalReference address_of_uint32_bias();
 
-  static ExternalReference math_log_double_function(Isolate* isolate);
-
-  static ExternalReference math_exp_constants(int constant_index);
-  static ExternalReference math_exp_log_table();
+  // IEEE 754 functions.
+  static ExternalReference ieee754_atan_function(Isolate* isolate);
+  static ExternalReference ieee754_atan2_function(Isolate* isolate);
+  static ExternalReference ieee754_atanh_function(Isolate* isolate);
+  static ExternalReference ieee754_cbrt_function(Isolate* isolate);
+  static ExternalReference ieee754_cos_function(Isolate* isolate);
+  static ExternalReference ieee754_exp_function(Isolate* isolate);
+  static ExternalReference ieee754_expm1_function(Isolate* isolate);
+  static ExternalReference ieee754_log_function(Isolate* isolate);
+  static ExternalReference ieee754_log1p_function(Isolate* isolate);
+  static ExternalReference ieee754_log10_function(Isolate* isolate);
+  static ExternalReference ieee754_log2_function(Isolate* isolate);
+  static ExternalReference ieee754_sin_function(Isolate* isolate);
+  static ExternalReference ieee754_tan_function(Isolate* isolate);
 
   static ExternalReference page_flags(Page* page);
 
@@ -1064,8 +1072,11 @@
 
   Address address() const { return reinterpret_cast<Address>(address_); }
 
-  // Used to check if single stepping is enabled in generated code.
-  static ExternalReference debug_step_in_enabled_address(Isolate* isolate);
+  // Used to read out the last step action of the debugger.
+  static ExternalReference debug_last_step_action_address(Isolate* isolate);
+
+  // Used to check for suspended generator, used for stepping across await call.
+  static ExternalReference debug_suspended_generator_address(Isolate* isolate);
 
 #ifndef V8_INTERPRETED_REGEXP
   // C functions called from RegExp generated code.
@@ -1128,23 +1139,14 @@
 // -----------------------------------------------------------------------------
 // Position recording support
 
-struct PositionState {
-  PositionState() : current_position(RelocInfo::kNoPosition),
-                    written_position(RelocInfo::kNoPosition),
-                    current_statement_position(RelocInfo::kNoPosition),
-                    written_statement_position(RelocInfo::kNoPosition) {}
-
-  int current_position;
-  int written_position;
-
-  int current_statement_position;
-  int written_statement_position;
-};
-
 class AssemblerPositionsRecorder : public PositionsRecorder {
  public:
   explicit AssemblerPositionsRecorder(Assembler* assembler)
-      : assembler_(assembler) {}
+      : assembler_(assembler),
+        current_position_(RelocInfo::kNoPosition),
+        written_position_(RelocInfo::kNoPosition),
+        current_statement_position_(RelocInfo::kNoPosition),
+        written_statement_position_(RelocInfo::kNoPosition) {}
 
   // Set current position to pos.
   void RecordPosition(int pos);
@@ -1152,18 +1154,17 @@
   // Set current statement position to pos.
   void RecordStatementPosition(int pos);
 
-  // Write recorded positions to relocation information.
-  bool WriteRecordedPositions();
-
-  int current_position() const { return state_.current_position; }
-
-  int current_statement_position() const {
-    return state_.current_statement_position;
-  }
-
  private:
+  // Write recorded positions to relocation information.
+  void WriteRecordedPositions();
+
   Assembler* assembler_;
-  PositionState state_;
+
+  int current_position_;
+  int written_position_;
+
+  int current_statement_position_;
+  int written_statement_position_;
 
   DISALLOW_COPY_AND_ASSIGN(AssemblerPositionsRecorder);
 };
diff --git a/src/ast/ast-expression-visitor.cc b/src/ast/ast-expression-visitor.cc
index 91d4afb..7536d90 100644
--- a/src/ast/ast-expression-visitor.cc
+++ b/src/ast/ast-expression-visitor.cc
@@ -13,395 +13,153 @@
 namespace v8 {
 namespace internal {
 
-
-#define RECURSE(call)               \
-  do {                              \
-    DCHECK(!HasStackOverflow());    \
-    call;                           \
-    if (HasStackOverflow()) return; \
-  } while (false)
-
-
-#define RECURSE_EXPRESSION(call)    \
-  do {                              \
-    DCHECK(!HasStackOverflow());    \
-    ++depth_;                       \
-    call;                           \
-    --depth_;                       \
-    if (HasStackOverflow()) return; \
-  } while (false)
-
-
 AstExpressionVisitor::AstExpressionVisitor(Isolate* isolate, Expression* root)
-    : root_(root), depth_(0) {
-  InitializeAstVisitor(isolate);
-}
-
+    : AstTraversalVisitor(isolate), root_(root) {}
 
 AstExpressionVisitor::AstExpressionVisitor(uintptr_t stack_limit,
                                            Expression* root)
-    : root_(root), depth_(0) {
-  InitializeAstVisitor(stack_limit);
-}
+    : AstTraversalVisitor(stack_limit), root_(root) {}
 
-
-void AstExpressionVisitor::Run() { RECURSE(Visit(root_)); }
-
-
-void AstExpressionVisitor::VisitVariableDeclaration(VariableDeclaration* decl) {
-}
-
-
-void AstExpressionVisitor::VisitFunctionDeclaration(FunctionDeclaration* decl) {
-  RECURSE(Visit(decl->fun()));
-}
-
-
-void AstExpressionVisitor::VisitImportDeclaration(ImportDeclaration* decl) {}
-
-
-void AstExpressionVisitor::VisitExportDeclaration(ExportDeclaration* decl) {}
-
-
-void AstExpressionVisitor::VisitStatements(ZoneList<Statement*>* stmts) {
-  for (int i = 0; i < stmts->length(); ++i) {
-    Statement* stmt = stmts->at(i);
-    RECURSE(Visit(stmt));
-    if (stmt->IsJump()) break;
-  }
-}
-
-
-void AstExpressionVisitor::VisitBlock(Block* stmt) {
-  RECURSE(VisitStatements(stmt->statements()));
-}
-
-
-void AstExpressionVisitor::VisitExpressionStatement(ExpressionStatement* stmt) {
-  RECURSE(Visit(stmt->expression()));
-}
-
-
-void AstExpressionVisitor::VisitEmptyStatement(EmptyStatement* stmt) {}
-
-
-void AstExpressionVisitor::VisitSloppyBlockFunctionStatement(
-    SloppyBlockFunctionStatement* stmt) {
-  RECURSE(Visit(stmt->statement()));
-}
-
-
-void AstExpressionVisitor::VisitIfStatement(IfStatement* stmt) {
-  RECURSE(Visit(stmt->condition()));
-  RECURSE(Visit(stmt->then_statement()));
-  RECURSE(Visit(stmt->else_statement()));
-}
-
-
-void AstExpressionVisitor::VisitContinueStatement(ContinueStatement* stmt) {}
-
-
-void AstExpressionVisitor::VisitBreakStatement(BreakStatement* stmt) {}
-
-
-void AstExpressionVisitor::VisitReturnStatement(ReturnStatement* stmt) {
-  RECURSE(Visit(stmt->expression()));
-}
-
-
-void AstExpressionVisitor::VisitWithStatement(WithStatement* stmt) {
-  RECURSE(stmt->expression());
-  RECURSE(stmt->statement());
-}
-
-
-void AstExpressionVisitor::VisitSwitchStatement(SwitchStatement* stmt) {
-  RECURSE(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();
-      RECURSE(Visit(label));
-    }
-    ZoneList<Statement*>* stmts = clause->statements();
-    RECURSE(VisitStatements(stmts));
-  }
-}
-
-
-void AstExpressionVisitor::VisitCaseClause(CaseClause* clause) {
-  UNREACHABLE();
-}
-
-
-void AstExpressionVisitor::VisitDoWhileStatement(DoWhileStatement* stmt) {
-  RECURSE(Visit(stmt->body()));
-  RECURSE(Visit(stmt->cond()));
-}
-
-
-void AstExpressionVisitor::VisitWhileStatement(WhileStatement* stmt) {
-  RECURSE(Visit(stmt->cond()));
-  RECURSE(Visit(stmt->body()));
-}
-
-
-void AstExpressionVisitor::VisitForStatement(ForStatement* stmt) {
-  if (stmt->init() != NULL) {
-    RECURSE(Visit(stmt->init()));
-  }
-  if (stmt->cond() != NULL) {
-    RECURSE(Visit(stmt->cond()));
-  }
-  if (stmt->next() != NULL) {
-    RECURSE(Visit(stmt->next()));
-  }
-  RECURSE(Visit(stmt->body()));
-}
-
-
-void AstExpressionVisitor::VisitForInStatement(ForInStatement* stmt) {
-  RECURSE(Visit(stmt->enumerable()));
-  RECURSE(Visit(stmt->body()));
-}
-
-
-void AstExpressionVisitor::VisitForOfStatement(ForOfStatement* stmt) {
-  RECURSE(Visit(stmt->assign_iterator()));
-  RECURSE(Visit(stmt->next_result()));
-  RECURSE(Visit(stmt->result_done()));
-  RECURSE(Visit(stmt->assign_each()));
-  RECURSE(Visit(stmt->body()));
-}
-
-
-void AstExpressionVisitor::VisitTryCatchStatement(TryCatchStatement* stmt) {
-  RECURSE(Visit(stmt->try_block()));
-  RECURSE(Visit(stmt->catch_block()));
-}
-
-
-void AstExpressionVisitor::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
-  RECURSE(Visit(stmt->try_block()));
-  RECURSE(Visit(stmt->finally_block()));
-}
-
-
-void AstExpressionVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {}
-
+void AstExpressionVisitor::Run() { Visit(root_); }
 
 void AstExpressionVisitor::VisitFunctionLiteral(FunctionLiteral* expr) {
-  Scope* scope = expr->scope();
   VisitExpression(expr);
-  RECURSE_EXPRESSION(VisitDeclarations(scope->declarations()));
-  RECURSE_EXPRESSION(VisitStatements(expr->body()));
+  AstTraversalVisitor::VisitFunctionLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitNativeFunctionLiteral(
-    NativeFunctionLiteral* expr) {}
-
+    NativeFunctionLiteral* expr) {
+  AstTraversalVisitor::VisitNativeFunctionLiteral(expr);
+}
 
 void AstExpressionVisitor::VisitDoExpression(DoExpression* expr) {
   VisitExpression(expr);
-  RECURSE(VisitBlock(expr->block()));
-  RECURSE(VisitVariableProxy(expr->result()));
+  AstTraversalVisitor::VisitDoExpression(expr);
 }
 
-
 void AstExpressionVisitor::VisitConditional(Conditional* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->condition()));
-  RECURSE_EXPRESSION(Visit(expr->then_expression()));
-  RECURSE_EXPRESSION(Visit(expr->else_expression()));
+  AstTraversalVisitor::VisitConditional(expr);
 }
 
-
 void AstExpressionVisitor::VisitVariableProxy(VariableProxy* expr) {
   VisitExpression(expr);
+  AstTraversalVisitor::VisitVariableProxy(expr);
 }
 
-
 void AstExpressionVisitor::VisitLiteral(Literal* expr) {
   VisitExpression(expr);
+  AstTraversalVisitor::VisitLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitRegExpLiteral(RegExpLiteral* expr) {
   VisitExpression(expr);
+  AstTraversalVisitor::VisitRegExpLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitObjectLiteral(ObjectLiteral* expr) {
   VisitExpression(expr);
-  ZoneList<ObjectLiteralProperty*>* props = expr->properties();
-  for (int i = 0; i < props->length(); ++i) {
-    ObjectLiteralProperty* prop = props->at(i);
-    if (!prop->key()->IsLiteral()) {
-      RECURSE_EXPRESSION(Visit(prop->key()));
-    }
-    RECURSE_EXPRESSION(Visit(prop->value()));
-  }
+  AstTraversalVisitor::VisitObjectLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitArrayLiteral(ArrayLiteral* expr) {
   VisitExpression(expr);
-  ZoneList<Expression*>* values = expr->values();
-  for (int i = 0; i < values->length(); ++i) {
-    Expression* value = values->at(i);
-    RECURSE_EXPRESSION(Visit(value));
-  }
+  AstTraversalVisitor::VisitArrayLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitAssignment(Assignment* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->target()));
-  RECURSE_EXPRESSION(Visit(expr->value()));
+  AstTraversalVisitor::VisitAssignment(expr);
 }
 
-
 void AstExpressionVisitor::VisitYield(Yield* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->generator_object()));
-  RECURSE_EXPRESSION(Visit(expr->expression()));
+  AstTraversalVisitor::VisitYield(expr);
 }
 
-
 void AstExpressionVisitor::VisitThrow(Throw* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->exception()));
+  AstTraversalVisitor::VisitThrow(expr);
 }
 
-
 void AstExpressionVisitor::VisitProperty(Property* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->obj()));
-  RECURSE_EXPRESSION(Visit(expr->key()));
+  AstTraversalVisitor::VisitProperty(expr);
 }
 
-
 void AstExpressionVisitor::VisitCall(Call* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->expression()));
-  ZoneList<Expression*>* args = expr->arguments();
-  for (int i = 0; i < args->length(); ++i) {
-    Expression* arg = args->at(i);
-    RECURSE_EXPRESSION(Visit(arg));
-  }
+  AstTraversalVisitor::VisitCall(expr);
 }
 
-
 void AstExpressionVisitor::VisitCallNew(CallNew* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->expression()));
-  ZoneList<Expression*>* args = expr->arguments();
-  for (int i = 0; i < args->length(); ++i) {
-    Expression* arg = args->at(i);
-    RECURSE_EXPRESSION(Visit(arg));
-  }
+  AstTraversalVisitor::VisitCallNew(expr);
 }
 
-
 void AstExpressionVisitor::VisitCallRuntime(CallRuntime* expr) {
   VisitExpression(expr);
-  ZoneList<Expression*>* args = expr->arguments();
-  for (int i = 0; i < args->length(); ++i) {
-    Expression* arg = args->at(i);
-    RECURSE_EXPRESSION(Visit(arg));
-  }
+  AstTraversalVisitor::VisitCallRuntime(expr);
 }
 
-
 void AstExpressionVisitor::VisitUnaryOperation(UnaryOperation* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->expression()));
+  AstTraversalVisitor::VisitUnaryOperation(expr);
 }
 
-
 void AstExpressionVisitor::VisitCountOperation(CountOperation* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->expression()));
+  AstTraversalVisitor::VisitCountOperation(expr);
 }
 
-
 void AstExpressionVisitor::VisitBinaryOperation(BinaryOperation* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->left()));
-  RECURSE_EXPRESSION(Visit(expr->right()));
+  AstTraversalVisitor::VisitBinaryOperation(expr);
 }
 
-
 void AstExpressionVisitor::VisitCompareOperation(CompareOperation* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->left()));
-  RECURSE_EXPRESSION(Visit(expr->right()));
+  AstTraversalVisitor::VisitCompareOperation(expr);
 }
 
-
 void AstExpressionVisitor::VisitThisFunction(ThisFunction* expr) {
   VisitExpression(expr);
+  AstTraversalVisitor::VisitThisFunction(expr);
 }
 
-
-void AstExpressionVisitor::VisitDeclarations(ZoneList<Declaration*>* decls) {
-  for (int i = 0; i < decls->length(); ++i) {
-    Declaration* decl = decls->at(i);
-    RECURSE(Visit(decl));
-  }
-}
-
-
 void AstExpressionVisitor::VisitClassLiteral(ClassLiteral* expr) {
   VisitExpression(expr);
-  if (expr->extends() != nullptr) {
-    RECURSE_EXPRESSION(Visit(expr->extends()));
-  }
-  RECURSE_EXPRESSION(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()) {
-      RECURSE_EXPRESSION(Visit(prop->key()));
-    }
-    RECURSE_EXPRESSION(Visit(prop->value()));
-  }
+  AstTraversalVisitor::VisitClassLiteral(expr);
 }
 
-
 void AstExpressionVisitor::VisitSpread(Spread* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(Visit(expr->expression()));
+  AstTraversalVisitor::VisitSpread(expr);
 }
 
-
-void AstExpressionVisitor::VisitEmptyParentheses(EmptyParentheses* expr) {}
-
-
 void AstExpressionVisitor::VisitSuperPropertyReference(
     SuperPropertyReference* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_var()));
-  RECURSE_EXPRESSION(Visit(expr->home_object()));
+  AstTraversalVisitor::VisitSuperPropertyReference(expr);
 }
 
-
 void AstExpressionVisitor::VisitSuperCallReference(SuperCallReference* expr) {
   VisitExpression(expr);
-  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_var()));
-  RECURSE_EXPRESSION(VisitVariableProxy(expr->new_target_var()));
-  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_function_var()));
+  AstTraversalVisitor::VisitSuperCallReference(expr);
 }
 
+void AstExpressionVisitor::VisitCaseClause(CaseClause* expr) {
+  AstTraversalVisitor::VisitCaseClause(expr);
+}
+
+void AstExpressionVisitor::VisitEmptyParentheses(EmptyParentheses* expr) {
+  AstTraversalVisitor::VisitEmptyParentheses(expr);
+}
 
 void AstExpressionVisitor::VisitRewritableExpression(
     RewritableExpression* expr) {
   VisitExpression(expr);
-  RECURSE(Visit(expr->expression()));
+  AstTraversalVisitor::VisitRewritableExpression(expr);
 }
 
 
diff --git a/src/ast/ast-expression-visitor.h b/src/ast/ast-expression-visitor.h
index 283bc7b..3f7b9f7 100644
--- a/src/ast/ast-expression-visitor.h
+++ b/src/ast/ast-expression-visitor.h
@@ -17,7 +17,7 @@
 // A Visitor over a CompilationInfo's AST that invokes
 // VisitExpression on each expression node.
 
-class AstExpressionVisitor : public AstVisitor {
+class AstExpressionVisitor : public AstTraversalVisitor {
  public:
   AstExpressionVisitor(Isolate* isolate, Expression* root);
   AstExpressionVisitor(uintptr_t stack_limit, Expression* root);
@@ -25,20 +25,13 @@
 
  protected:
   virtual void VisitExpression(Expression* expression) = 0;
-  int depth() { return depth_; }
-
-  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;
-  AST_NODE_LIST(DECLARE_VISIT)
+  EXPRESSION_NODE_LIST(DECLARE_VISIT)
 #undef DECLARE_VISIT
 
   Expression* root_;
-  int depth_;
 
   DISALLOW_COPY_AND_ASSIGN(AstExpressionVisitor);
 };
diff --git a/src/ast/ast-numbering.cc b/src/ast/ast-numbering.cc
index bd96026..dd6ce4a 100644
--- a/src/ast/ast-numbering.cc
+++ b/src/ast/ast-numbering.cc
@@ -220,7 +220,6 @@
   node->set_yield_id(yield_count_);
   yield_count_++;
   IncrementNodeCount();
-  DisableOptimization(kYield);
   ReserveFeedbackSlots(node);
   node->set_base_id(ReserveIdRange(Yield::num_ids()));
   Visit(node->generator_object());
@@ -306,7 +305,7 @@
 
 void AstNumberingVisitor::VisitTryCatchStatement(TryCatchStatement* node) {
   IncrementNodeCount();
-  DisableOptimization(kTryCatchStatement);
+  DisableCrankshaft(kTryCatchStatement);
   Visit(node->try_block());
   Visit(node->catch_block());
 }
@@ -314,7 +313,7 @@
 
 void AstNumberingVisitor::VisitTryFinallyStatement(TryFinallyStatement* node) {
   IncrementNodeCount();
-  DisableOptimization(kTryFinallyStatement);
+  DisableCrankshaft(kTryFinallyStatement);
   Visit(node->try_block());
   Visit(node->finally_block());
 }
@@ -579,6 +578,13 @@
     DisableCrankshaft(kRestParameter);
   }
 
+  if (IsGeneratorFunction(node->kind()) || IsAsyncFunction(node->kind())) {
+    // TODO(neis): We may want to allow Turbofan optimization here if
+    // --turbo-from-bytecode is set and we know that Ignition is used.
+    // Unfortunately we can't express that here.
+    DisableOptimization(kGenerator);
+  }
+
   VisitDeclarations(scope->declarations());
   VisitStatements(node->body());
 
diff --git a/src/ast/ast-value-factory.cc b/src/ast/ast-value-factory.cc
index 189d4cc..92322a0 100644
--- a/src/ast/ast-value-factory.cc
+++ b/src/ast/ast-value-factory.cc
@@ -360,7 +360,7 @@
   // against the AstRawStrings which are in the string_table_. We should not
   // return this AstRawString.
   AstRawString key(is_one_byte, literal_bytes, hash);
-  HashMap::Entry* entry = string_table_.LookupOrInsert(&key, hash);
+  base::HashMap::Entry* entry = string_table_.LookupOrInsert(&key, hash);
   if (entry->value == NULL) {
     // Copy literal contents for later comparison.
     int length = literal_bytes.length();
diff --git a/src/ast/ast-value-factory.h b/src/ast/ast-value-factory.h
index 041581b..b0019a5 100644
--- a/src/ast/ast-value-factory.h
+++ b/src/ast/ast-value-factory.h
@@ -29,7 +29,7 @@
 #define V8_AST_AST_VALUE_FACTORY_H_
 
 #include "src/api.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/utils.h"
 
 // AstString, AstValue and AstValueFactory are for storing strings and values
@@ -265,7 +265,6 @@
   F(next, "next")                               \
   F(proto, "__proto__")                         \
   F(prototype, "prototype")                     \
-  F(rest_parameter, ".rest_parameter")          \
   F(return, "return")                           \
   F(set_space, "set ")                          \
   F(this, "this")                               \
@@ -352,7 +351,7 @@
   static bool AstRawStringCompare(void* a, void* b);
 
   // All strings are copied here, one after another (no NULLs inbetween).
-  HashMap string_table_;
+  base::HashMap string_table_;
   // For keeping track of all AstValues and AstRawStrings we've created (so that
   // they can be internalized later).
   List<AstValue*> values_;
diff --git a/src/ast/ast.cc b/src/ast/ast.cc
index 7c83e3b..4ad4585 100644
--- a/src/ast/ast.cc
+++ b/src/ast/ast.cc
@@ -8,14 +8,14 @@
 
 #include "src/ast/prettyprinter.h"
 #include "src/ast/scopes.h"
+#include "src/base/hashmap.h"
 #include "src/builtins.h"
 #include "src/code-stubs.h"
 #include "src/contexts.h"
 #include "src/conversions.h"
-#include "src/hashmap.h"
 #include "src/parsing/parser.h"
-#include "src/property.h"
 #include "src/property-details.h"
+#include "src/property.h"
 #include "src/string-stream.h"
 #include "src/type-info.h"
 
@@ -59,12 +59,19 @@
 
 
 bool Expression::IsNullLiteral() const {
-  return IsLiteral() && AsLiteral()->value()->IsNull();
+  if (!IsLiteral()) return false;
+  Handle<Object> value = AsLiteral()->value();
+  return !value->IsSmi() &&
+         value->IsNull(HeapObject::cast(*value)->GetIsolate());
 }
 
 bool Expression::IsUndefinedLiteral() const {
-  if (IsLiteral() && AsLiteral()->value()->IsUndefined()) {
-    return true;
+  if (IsLiteral()) {
+    Handle<Object> value = AsLiteral()->value();
+    if (!value->IsSmi() &&
+        value->IsUndefined(HeapObject::cast(*value)->GetIsolate())) {
+      return true;
+    }
   }
 
   const VariableProxy* var_proxy = AsVariableProxy();
@@ -120,17 +127,17 @@
   if (UsesVariableFeedbackSlot()) {
     // VariableProxies that point to the same Variable within a function can
     // make their loads from the same IC slot.
-    if (var()->IsUnallocated()) {
+    if (var()->IsUnallocated() || var()->mode() == DYNAMIC_GLOBAL) {
       ZoneHashMap::Entry* entry = cache->Get(var());
       if (entry != NULL) {
         variable_feedback_slot_ = FeedbackVectorSlot(
             static_cast<int>(reinterpret_cast<intptr_t>(entry->value)));
         return;
       }
-    }
-    variable_feedback_slot_ = spec->AddLoadICSlot();
-    if (var()->IsUnallocated()) {
+      variable_feedback_slot_ = spec->AddLoadGlobalICSlot(var()->name());
       cache->Put(var(), variable_feedback_slot_);
+    } else {
+      variable_feedback_slot_ = spec->AddLoadICSlot();
     }
   }
 }
@@ -387,7 +394,7 @@
     if (property->is_computed_name()) continue;
     if (property->kind() == ObjectLiteral::Property::PROTOTYPE) continue;
     Literal* literal = property->key()->AsLiteral();
-    DCHECK(!literal->value()->IsNull());
+    DCHECK(!literal->IsNullLiteral());
 
     // If there is an existing entry do not emit a store unless the previous
     // entry was also an accessor.
@@ -457,11 +464,11 @@
     // (value->IsNumber()).
     // TODO(verwaest): Remove once we can store them inline.
     if (FLAG_track_double_fields &&
-        (value->IsNumber() || value->IsUninitialized())) {
+        (value->IsNumber() || value->IsUninitialized(isolate))) {
       may_store_doubles_ = true;
     }
 
-    is_simple = is_simple && !value->IsUninitialized();
+    is_simple = is_simple && !value->IsUninitialized(isolate);
 
     // Keep track of the number of elements in the object literal and
     // the largest element index.  If the largest element index is
@@ -524,12 +531,12 @@
     // New handle scope here, needs to be after BuildContants().
     HandleScope scope(isolate);
     Handle<Object> boilerplate_value = GetBoilerplateValue(element, isolate);
-    if (boilerplate_value->IsTheHole()) {
+    if (boilerplate_value->IsTheHole(isolate)) {
       is_holey = true;
       continue;
     }
 
-    if (boilerplate_value->IsUninitialized()) {
+    if (boilerplate_value->IsUninitialized(isolate)) {
       boilerplate_value = handle(Smi::FromInt(0), isolate);
       is_simple = false;
     }
@@ -816,54 +823,74 @@
 // ----------------------------------------------------------------------------
 // Implementation of AstTraversalVisitor
 
-AstTraversalVisitor::AstTraversalVisitor(Isolate* isolate) {
+#define RECURSE(call)               \
+  do {                              \
+    DCHECK(!HasStackOverflow());    \
+    call;                           \
+    if (HasStackOverflow()) return; \
+  } while (false)
+
+#define RECURSE_EXPRESSION(call)    \
+  do {                              \
+    DCHECK(!HasStackOverflow());    \
+    ++depth_;                       \
+    call;                           \
+    --depth_;                       \
+    if (HasStackOverflow()) return; \
+  } while (false)
+
+AstTraversalVisitor::AstTraversalVisitor(Isolate* isolate) : depth_(0) {
   InitializeAstVisitor(isolate);
 }
 
+AstTraversalVisitor::AstTraversalVisitor(uintptr_t stack_limit) : depth_(0) {
+  InitializeAstVisitor(stack_limit);
+}
+
+void AstTraversalVisitor::VisitDeclarations(ZoneList<Declaration*>* decls) {
+  for (int i = 0; i < decls->length(); ++i) {
+    Declaration* decl = decls->at(i);
+    RECURSE(Visit(decl));
+  }
+}
+
+void AstTraversalVisitor::VisitStatements(ZoneList<Statement*>* stmts) {
+  for (int i = 0; i < stmts->length(); ++i) {
+    Statement* stmt = stmts->at(i);
+    RECURSE(Visit(stmt));
+    if (stmt->IsJump()) break;
+  }
+}
+
 void AstTraversalVisitor::VisitVariableDeclaration(VariableDeclaration* decl) {}
 
 void AstTraversalVisitor::VisitFunctionDeclaration(FunctionDeclaration* decl) {
-  Visit(decl->fun());
+  RECURSE(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());
+  RECURSE(VisitStatements(stmt->statements()));
 }
 
 void AstTraversalVisitor::VisitExpressionStatement(ExpressionStatement* stmt) {
-  Visit(stmt->expression());
+  RECURSE(Visit(stmt->expression()));
 }
 
 void AstTraversalVisitor::VisitEmptyStatement(EmptyStatement* stmt) {}
 
 void AstTraversalVisitor::VisitSloppyBlockFunctionStatement(
     SloppyBlockFunctionStatement* stmt) {
-  Visit(stmt->statement());
+  RECURSE(Visit(stmt->statement()));
 }
 
 void AstTraversalVisitor::VisitIfStatement(IfStatement* stmt) {
-  Visit(stmt->condition());
-  Visit(stmt->then_statement());
-  Visit(stmt->else_statement());
+  RECURSE(Visit(stmt->condition()));
+  RECURSE(Visit(stmt->then_statement()));
+  RECURSE(Visit(stmt->else_statement()));
 }
 
 void AstTraversalVisitor::VisitContinueStatement(ContinueStatement* stmt) {}
@@ -871,16 +898,16 @@
 void AstTraversalVisitor::VisitBreakStatement(BreakStatement* stmt) {}
 
 void AstTraversalVisitor::VisitReturnStatement(ReturnStatement* stmt) {
-  Visit(stmt->expression());
+  RECURSE(Visit(stmt->expression()));
 }
 
 void AstTraversalVisitor::VisitWithStatement(WithStatement* stmt) {
-  stmt->expression();
-  stmt->statement();
+  RECURSE(stmt->expression());
+  RECURSE(stmt->statement());
 }
 
 void AstTraversalVisitor::VisitSwitchStatement(SwitchStatement* stmt) {
-  Visit(stmt->tag());
+  RECURSE(Visit(stmt->tag()));
 
   ZoneList<CaseClause*>* clauses = stmt->cases();
 
@@ -888,81 +915,81 @@
     CaseClause* clause = clauses->at(i);
     if (!clause->is_default()) {
       Expression* label = clause->label();
-      Visit(label);
+      RECURSE(Visit(label));
     }
     ZoneList<Statement*>* stmts = clause->statements();
-    VisitStatements(stmts);
+    RECURSE(VisitStatements(stmts));
   }
 }
 
 void AstTraversalVisitor::VisitCaseClause(CaseClause* clause) { UNREACHABLE(); }
 
 void AstTraversalVisitor::VisitDoWhileStatement(DoWhileStatement* stmt) {
-  Visit(stmt->body());
-  Visit(stmt->cond());
+  RECURSE(Visit(stmt->body()));
+  RECURSE(Visit(stmt->cond()));
 }
 
 void AstTraversalVisitor::VisitWhileStatement(WhileStatement* stmt) {
-  Visit(stmt->cond());
-  Visit(stmt->body());
+  RECURSE(Visit(stmt->cond()));
+  RECURSE(Visit(stmt->body()));
 }
 
 void AstTraversalVisitor::VisitForStatement(ForStatement* stmt) {
   if (stmt->init() != NULL) {
-    Visit(stmt->init());
+    RECURSE(Visit(stmt->init()));
   }
   if (stmt->cond() != NULL) {
-    Visit(stmt->cond());
+    RECURSE(Visit(stmt->cond()));
   }
   if (stmt->next() != NULL) {
-    Visit(stmt->next());
+    RECURSE(Visit(stmt->next()));
   }
-  Visit(stmt->body());
+  RECURSE(Visit(stmt->body()));
 }
 
 void AstTraversalVisitor::VisitForInStatement(ForInStatement* stmt) {
-  Visit(stmt->enumerable());
-  Visit(stmt->body());
+  RECURSE(Visit(stmt->enumerable()));
+  RECURSE(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());
+  RECURSE(Visit(stmt->assign_iterator()));
+  RECURSE(Visit(stmt->next_result()));
+  RECURSE(Visit(stmt->result_done()));
+  RECURSE(Visit(stmt->assign_each()));
+  RECURSE(Visit(stmt->body()));
 }
 
 void AstTraversalVisitor::VisitTryCatchStatement(TryCatchStatement* stmt) {
-  Visit(stmt->try_block());
-  Visit(stmt->catch_block());
+  RECURSE(Visit(stmt->try_block()));
+  RECURSE(Visit(stmt->catch_block()));
 }
 
 void AstTraversalVisitor::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
-  Visit(stmt->try_block());
-  Visit(stmt->finally_block());
+  RECURSE(Visit(stmt->try_block()));
+  RECURSE(Visit(stmt->finally_block()));
 }
 
 void AstTraversalVisitor::VisitDebuggerStatement(DebuggerStatement* stmt) {}
 
 void AstTraversalVisitor::VisitFunctionLiteral(FunctionLiteral* expr) {
   Scope* scope = expr->scope();
-  VisitDeclarations(scope->declarations());
-  VisitStatements(expr->body());
+  RECURSE_EXPRESSION(VisitDeclarations(scope->declarations()));
+  RECURSE_EXPRESSION(VisitStatements(expr->body()));
 }
 
 void AstTraversalVisitor::VisitNativeFunctionLiteral(
     NativeFunctionLiteral* expr) {}
 
 void AstTraversalVisitor::VisitDoExpression(DoExpression* expr) {
-  VisitBlock(expr->block());
-  VisitVariableProxy(expr->result());
+  RECURSE(VisitBlock(expr->block()));
+  RECURSE(VisitVariableProxy(expr->result()));
 }
 
 void AstTraversalVisitor::VisitConditional(Conditional* expr) {
-  Visit(expr->condition());
-  Visit(expr->then_expression());
-  Visit(expr->else_expression());
+  RECURSE_EXPRESSION(Visit(expr->condition()));
+  RECURSE_EXPRESSION(Visit(expr->then_expression()));
+  RECURSE_EXPRESSION(Visit(expr->else_expression()));
 }
 
 void AstTraversalVisitor::VisitVariableProxy(VariableProxy* expr) {}
@@ -976,9 +1003,9 @@
   for (int i = 0; i < props->length(); ++i) {
     ObjectLiteralProperty* prop = props->at(i);
     if (!prop->key()->IsLiteral()) {
-      Visit(prop->key());
+      RECURSE_EXPRESSION(Visit(prop->key()));
     }
-    Visit(prop->value());
+    RECURSE_EXPRESSION(Visit(prop->value()));
   }
 }
 
@@ -986,42 +1013,44 @@
   ZoneList<Expression*>* values = expr->values();
   for (int i = 0; i < values->length(); ++i) {
     Expression* value = values->at(i);
-    Visit(value);
+    RECURSE_EXPRESSION(Visit(value));
   }
 }
 
 void AstTraversalVisitor::VisitAssignment(Assignment* expr) {
-  Visit(expr->target());
-  Visit(expr->value());
+  RECURSE_EXPRESSION(Visit(expr->target()));
+  RECURSE_EXPRESSION(Visit(expr->value()));
 }
 
 void AstTraversalVisitor::VisitYield(Yield* expr) {
-  Visit(expr->generator_object());
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->generator_object()));
+  RECURSE_EXPRESSION(Visit(expr->expression()));
 }
 
-void AstTraversalVisitor::VisitThrow(Throw* expr) { Visit(expr->exception()); }
+void AstTraversalVisitor::VisitThrow(Throw* expr) {
+  RECURSE_EXPRESSION(Visit(expr->exception()));
+}
 
 void AstTraversalVisitor::VisitProperty(Property* expr) {
-  Visit(expr->obj());
-  Visit(expr->key());
+  RECURSE_EXPRESSION(Visit(expr->obj()));
+  RECURSE_EXPRESSION(Visit(expr->key()));
 }
 
 void AstTraversalVisitor::VisitCall(Call* expr) {
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->expression()));
   ZoneList<Expression*>* args = expr->arguments();
   for (int i = 0; i < args->length(); ++i) {
     Expression* arg = args->at(i);
-    Visit(arg);
+    RECURSE_EXPRESSION(Visit(arg));
   }
 }
 
 void AstTraversalVisitor::VisitCallNew(CallNew* expr) {
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->expression()));
   ZoneList<Expression*>* args = expr->arguments();
   for (int i = 0; i < args->length(); ++i) {
     Expression* arg = args->at(i);
-    Visit(arg);
+    RECURSE_EXPRESSION(Visit(arg));
   }
 }
 
@@ -1029,75 +1058,71 @@
   ZoneList<Expression*>* args = expr->arguments();
   for (int i = 0; i < args->length(); ++i) {
     Expression* arg = args->at(i);
-    Visit(arg);
+    RECURSE_EXPRESSION(Visit(arg));
   }
 }
 
 void AstTraversalVisitor::VisitUnaryOperation(UnaryOperation* expr) {
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->expression()));
 }
 
 void AstTraversalVisitor::VisitCountOperation(CountOperation* expr) {
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->expression()));
 }
 
 void AstTraversalVisitor::VisitBinaryOperation(BinaryOperation* expr) {
-  Visit(expr->left());
-  Visit(expr->right());
+  RECURSE_EXPRESSION(Visit(expr->left()));
+  RECURSE_EXPRESSION(Visit(expr->right()));
 }
 
 void AstTraversalVisitor::VisitCompareOperation(CompareOperation* expr) {
-  Visit(expr->left());
-  Visit(expr->right());
+  RECURSE_EXPRESSION(Visit(expr->left()));
+  RECURSE_EXPRESSION(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());
+    RECURSE_EXPRESSION(Visit(expr->extends()));
   }
-  Visit(expr->constructor());
+  RECURSE_EXPRESSION(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());
+      RECURSE_EXPRESSION(Visit(prop->key()));
     }
-    Visit(prop->value());
+    RECURSE_EXPRESSION(Visit(prop->value()));
   }
 }
 
 void AstTraversalVisitor::VisitSpread(Spread* expr) {
-  Visit(expr->expression());
+  RECURSE_EXPRESSION(Visit(expr->expression()));
 }
 
 void AstTraversalVisitor::VisitEmptyParentheses(EmptyParentheses* expr) {}
 
 void AstTraversalVisitor::VisitSuperPropertyReference(
     SuperPropertyReference* expr) {
-  VisitVariableProxy(expr->this_var());
-  Visit(expr->home_object());
+  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_var()));
+  RECURSE_EXPRESSION(Visit(expr->home_object()));
 }
 
 void AstTraversalVisitor::VisitSuperCallReference(SuperCallReference* expr) {
-  VisitVariableProxy(expr->this_var());
-  VisitVariableProxy(expr->new_target_var());
-  VisitVariableProxy(expr->this_function_var());
+  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_var()));
+  RECURSE_EXPRESSION(VisitVariableProxy(expr->new_target_var()));
+  RECURSE_EXPRESSION(VisitVariableProxy(expr->this_function_var()));
 }
 
 void AstTraversalVisitor::VisitRewritableExpression(
     RewritableExpression* expr) {
-  Visit(expr->expression());
+  RECURSE(Visit(expr->expression()));
 }
 
+#undef RECURSE_EXPRESSION
+#undef RECURSE
+
 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 bee0bab..5ae90f8 100644
--- a/src/ast/ast.h
+++ b/src/ast/ast.h
@@ -130,7 +130,8 @@
  public:
   explicit FeedbackVectorSlotCache(Zone* zone)
       : zone_(zone),
-        hash_map_(HashMap::PointersMatch, ZoneHashMap::kDefaultHashMapCapacity,
+        hash_map_(base::HashMap::PointersMatch,
+                  ZoneHashMap::kDefaultHashMapCapacity,
                   ZoneAllocationPolicy(zone)) {}
 
   void Put(Variable* variable, FeedbackVectorSlot slot) {
@@ -1501,9 +1502,10 @@
   };
 
   struct Accessors: public ZoneObject {
-    Accessors() : getter(NULL), setter(NULL) {}
+    Accessors() : getter(NULL), setter(NULL), bailout_id(BailoutId::None()) {}
     ObjectLiteralProperty* getter;
     ObjectLiteralProperty* setter;
+    BailoutId bailout_id;
   };
 
   BailoutId CreateLiteralId() const { return BailoutId(local_id(0)); }
@@ -1551,13 +1553,14 @@
 
 
 // A map from property names to getter/setter pairs allocated in the zone.
-class AccessorTable : public TemplateHashMap<Literal, ObjectLiteral::Accessors,
-                                             ZoneAllocationPolicy> {
+class AccessorTable
+    : public base::TemplateHashMap<Literal, ObjectLiteral::Accessors,
+                                   ZoneAllocationPolicy> {
  public:
   explicit AccessorTable(Zone* zone)
-      : TemplateHashMap<Literal, ObjectLiteral::Accessors,
-                        ZoneAllocationPolicy>(Literal::Match,
-                                              ZoneAllocationPolicy(zone)),
+      : base::TemplateHashMap<Literal, ObjectLiteral::Accessors,
+                              ZoneAllocationPolicy>(Literal::Match,
+                                                    ZoneAllocationPolicy(zone)),
         zone_(zone) {}
 
   Iterator lookup(Literal* literal) {
@@ -2004,6 +2007,9 @@
   void AssignFeedbackVectorSlots(Isolate* isolate, FeedbackVectorSpec* spec,
                                  FeedbackVectorSlotCache* cache) override {
     callnew_feedback_slot_ = spec->AddGeneralSlot();
+    // Construct calls have two slots, one right after the other.
+    // The second slot stores the call count for monomorphic calls.
+    spec->AddGeneralSlot();
   }
 
   FeedbackVectorSlot CallNewFeedbackSlot() {
@@ -3053,20 +3059,26 @@
 class AstTraversalVisitor : public AstVisitor {
  public:
   explicit AstTraversalVisitor(Isolate* isolate);
+  explicit AstTraversalVisitor(uintptr_t stack_limit);
   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
 
+ protected:
+  int depth() { return depth_; }
+
  private:
   DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
+
+  int depth_;
+
   DISALLOW_COPY_AND_ASSIGN(AstTraversalVisitor);
 };
 
diff --git a/src/ast/prettyprinter.cc b/src/ast/prettyprinter.cc
index 49bff08..d1673c3 100644
--- a/src/ast/prettyprinter.cc
+++ b/src/ast/prettyprinter.cc
@@ -14,6 +14,7 @@
 namespace internal {
 
 CallPrinter::CallPrinter(Isolate* isolate, bool is_builtin) {
+  isolate_ = isolate;
   output_ = NULL;
   size_ = 0;
   pos_ = 0;
@@ -440,13 +441,13 @@
     if (quote) Print("\"");
     Print("%s", String::cast(object)->ToCString().get());
     if (quote) Print("\"");
-  } else if (object->IsNull()) {
+  } else if (object->IsNull(isolate_)) {
     Print("null");
-  } else if (object->IsTrue()) {
+  } else if (object->IsTrue(isolate_)) {
     Print("true");
-  } else if (object->IsFalse()) {
+  } else if (object->IsFalse(isolate_)) {
     Print("false");
-  } else if (object->IsUndefined()) {
+  } else if (object->IsUndefined(isolate_)) {
     Print("undefined");
   } else if (object->IsNumber()) {
     Print("%g", object->Number());
@@ -479,6 +480,7 @@
 
 
 PrettyPrinter::PrettyPrinter(Isolate* isolate) {
+  isolate_ = isolate;
   output_ = NULL;
   size_ = 0;
   pos_ = 0;
@@ -1067,13 +1069,13 @@
       Print("%c", string->Get(i));
     }
     if (quote) Print("\"");
-  } else if (object->IsNull()) {
+  } else if (object->IsNull(isolate_)) {
     Print("null");
-  } else if (object->IsTrue()) {
+  } else if (object->IsTrue(isolate_)) {
     Print("true");
-  } else if (object->IsFalse()) {
+  } else if (object->IsFalse(isolate_)) {
     Print("false");
-  } else if (object->IsUndefined()) {
+  } else if (object->IsUndefined(isolate_)) {
     Print("undefined");
   } else if (object->IsNumber()) {
     Print("%g", object->Number());
@@ -1092,7 +1094,7 @@
   } else if (object->IsFixedArray()) {
     Print("FixedArray");
   } else {
-    Print("<unknown literal %p>", object);
+    Print("<unknown literal %p>", static_cast<void*>(object));
   }
 }
 
diff --git a/src/ast/prettyprinter.h b/src/ast/prettyprinter.h
index 4e90294..bb36c2b 100644
--- a/src/ast/prettyprinter.h
+++ b/src/ast/prettyprinter.h
@@ -32,6 +32,7 @@
 
  private:
   void Init();
+  Isolate* isolate_;
   char* output_;  // output string buffer
   int size_;      // output_ size
   int pos_;       // current printing position
@@ -74,6 +75,7 @@
 #undef DECLARE_VISIT
 
  private:
+  Isolate* isolate_;
   char* output_;  // output string buffer
   int size_;  // output_ size
   int pos_;  // current printing position
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
index beffa53..77c5d62 100644
--- a/src/ast/scopes.cc
+++ b/src/ast/scopes.cc
@@ -560,6 +560,11 @@
 
 int Scope::RemoveTemporary(Variable* var) {
   DCHECK_NOT_NULL(var);
+  // Temporaries are only placed in ClosureScopes.
+  DCHECK_EQ(ClosureScope(), this);
+  DCHECK_EQ(var->scope()->ClosureScope(), var->scope());
+  // If the temporary is not here, return quickly.
+  if (var->scope() != this) return -1;
   // 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;) {
@@ -816,21 +821,6 @@
 }
 
 
-void Scope::ReportMessage(int start_position, int end_position,
-                          MessageTemplate::Template message,
-                          const AstRawString* arg) {
-  // Propagate the error to the topmost scope targeted by this scope analysis
-  // phase.
-  Scope* top = this;
-  while (!top->is_script_scope() && !top->outer_scope()->already_resolved()) {
-    top = top->outer_scope();
-  }
-
-  top->pending_error_handler_.ReportMessageAt(start_position, end_position,
-                                              message, arg, kReferenceError);
-}
-
-
 #ifdef DEBUG
 static const char* Header(ScopeType scope_type, FunctionKind function_kind,
                           bool is_declaration_scope) {
@@ -838,7 +828,10 @@
     case EVAL_SCOPE: return "eval";
     // TODO(adamk): Should we print concise method scopes specially?
     case FUNCTION_SCOPE:
-      return IsArrowFunction(function_kind) ? "arrow" : "function";
+      if (IsGeneratorFunction(function_kind)) return "function*";
+      if (IsAsyncFunction(function_kind)) return "async function";
+      if (IsArrowFunction(function_kind)) return "arrow";
+      return "function";
     case MODULE_SCOPE: return "module";
     case SCRIPT_SCOPE: return "global";
     case CATCH_SCOPE: return "catch";
diff --git a/src/ast/scopes.h b/src/ast/scopes.h
index d767a33..e420cfe 100644
--- a/src/ast/scopes.h
+++ b/src/ast/scopes.h
@@ -6,7 +6,7 @@
 #define V8_AST_SCOPES_H_
 
 #include "src/ast/ast.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/pending-compilation-error-handler.h"
 #include "src/zone.h"
 
@@ -216,7 +216,11 @@
   // Adds a temporary variable in this scope's TemporaryScope. This is for
   // adjusting the scope of temporaries used when desugaring parameter
   // initializers.
-  void AddTemporary(Variable* var) { temps_.Add(var, zone()); }
+  void AddTemporary(Variable* var) {
+    // Temporaries are only placed in ClosureScopes.
+    DCHECK_EQ(ClosureScope(), this);
+    temps_.Add(var, zone());
+  }
 
   // Adds the specific declaration node to the list of declarations in
   // this scope. The declarations are processed as part of entering
@@ -571,11 +575,6 @@
     return &sloppy_block_function_map_;
   }
 
-  // Error handling.
-  void ReportMessage(int start_position, int end_position,
-                     MessageTemplate::Template message,
-                     const AstRawString* arg);
-
   // ---------------------------------------------------------------------------
   // Debugging.
 
diff --git a/src/ast/variables.cc b/src/ast/variables.cc
index 2950db4..9048f79 100644
--- a/src/ast/variables.cc
+++ b/src/ast/variables.cc
@@ -40,7 +40,6 @@
       index_(-1),
       initializer_position_(RelocInfo::kNoPosition),
       local_if_not_shadowed_(NULL),
-      is_from_eval_(false),
       force_context_allocation_(false),
       is_used_(false),
       initialization_flag_(initialization_flag),
diff --git a/src/ast/variables.h b/src/ast/variables.h
index b8bb07e..7d54bc0 100644
--- a/src/ast/variables.h
+++ b/src/ast/variables.h
@@ -119,21 +119,8 @@
     index_ = index;
   }
 
-  void SetFromEval() { is_from_eval_ = true; }
-
   static int CompareIndex(Variable* const* v, Variable* const* w);
 
-  PropertyAttributes DeclarationPropertyAttributes() const {
-    int property_attributes = NONE;
-    if (IsImmutableVariableMode(mode_)) {
-      property_attributes |= READ_ONLY;
-    }
-    if (is_from_eval_) {
-      property_attributes |= EVAL_DECLARED;
-    }
-    return static_cast<PropertyAttributes>(property_attributes);
-  }
-
  private:
   Scope* scope_;
   const AstRawString* name_;
@@ -149,9 +136,6 @@
   // binding scope (exclusive).
   Variable* local_if_not_shadowed_;
 
-  // True if this variable is introduced by a sloppy eval
-  bool is_from_eval_;
-
   // Usage info.
   bool force_context_allocation_;  // set by variable resolver
   bool is_used_;
diff --git a/src/bailout-reason.h b/src/bailout-reason.h
index c44ad85..e47a93c 100644
--- a/src/bailout-reason.h
+++ b/src/bailout-reason.h
@@ -267,8 +267,7 @@
   V(kWrongArgumentCountForInvokeIntrinsic,                                     \
     "Wrong number of arguments for intrinsic")                                 \
   V(kShouldNotDirectlyEnterOsrFunction,                                        \
-    "Should not directly enter OSR-compiled function")                         \
-  V(kYield, "Yield")
+    "Should not directly enter OSR-compiled function")
 
 #define ERROR_MESSAGES_CONSTANTS(C, T) C,
 enum BailoutReason {
diff --git a/src/base/atomicops_internals_mips64_gcc.h b/src/base/atomicops_internals_mips64_gcc.h
index 85b4e46..cf2e194 100644
--- a/src/base/atomicops_internals_mips64_gcc.h
+++ b/src/base/atomicops_internals_mips64_gcc.h
@@ -91,18 +91,19 @@
                                           Atomic32 increment) {
   Atomic32 temp, temp2;
 
-  __asm__ __volatile__(".set push\n"
-                       ".set noreorder\n"
-                       "1:\n"
-                       "ll %0, %2\n"  // temp = *ptr
-                       "addu %1, %0, %3\n"  // temp2 = temp + increment
-                       "sc %1, %2\n"  // *ptr = temp2 (with atomic check)
-                       "beqz %1, 1b\n"  // start again on atomic error
-                       "addu %1, %0, %3\n"  // temp2 = temp + increment
-                       ".set pop\n"
-                       : "=&r" (temp), "=&r" (temp2), "=m" (*ptr)
-                       : "Ir" (increment), "m" (*ptr)
-                       : "memory");
+  __asm__ __volatile__(
+      ".set push\n"
+      ".set noreorder\n"
+      "1:\n"
+      "ll %0, %2\n"        // temp = *ptr
+      "addu %1, %0, %3\n"  // temp2 = temp + increment
+      "sc %1, %2\n"        // *ptr = temp2 (with atomic check)
+      "beqz %1, 1b\n"      // start again on atomic error
+      "addu %1, %0, %3\n"  // temp2 = temp + increment
+      ".set pop\n"
+      : "=&r"(temp), "=&r"(temp2), "=ZC"(*ptr)
+      : "Ir"(increment), "m"(*ptr)
+      : "memory");
   // temp2 now holds the final value.
   return temp2;
 }
@@ -228,18 +229,19 @@
                                           Atomic64 increment) {
   Atomic64 temp, temp2;
 
-  __asm__ __volatile__(".set push\n"
-                       ".set noreorder\n"
-                       "1:\n"
-                       "lld %0, %2\n"  // temp = *ptr
-                       "daddu %1, %0, %3\n"  // temp2 = temp + increment
-                       "scd %1, %2\n"  // *ptr = temp2 (with atomic check)
-                       "beqz %1, 1b\n"  // start again on atomic error
-                       "daddu %1, %0, %3\n"  // temp2 = temp + increment
-                       ".set pop\n"
-                       : "=&r" (temp), "=&r" (temp2), "=m" (*ptr)
-                       : "Ir" (increment), "m" (*ptr)
-                       : "memory");
+  __asm__ __volatile__(
+      ".set push\n"
+      ".set noreorder\n"
+      "1:\n"
+      "lld %0, %2\n"        // temp = *ptr
+      "daddu %1, %0, %3\n"  // temp2 = temp + increment
+      "scd %1, %2\n"        // *ptr = temp2 (with atomic check)
+      "beqz %1, 1b\n"       // start again on atomic error
+      "daddu %1, %0, %3\n"  // temp2 = temp + increment
+      ".set pop\n"
+      : "=&r"(temp), "=&r"(temp2), "=ZC"(*ptr)
+      : "Ir"(increment), "m"(*ptr)
+      : "memory");
   // temp2 now holds the final value.
   return temp2;
 }
diff --git a/src/base/bits.h b/src/base/bits.h
index 2e6527b..1bb3a0f 100644
--- a/src/base/bits.h
+++ b/src/base/bits.h
@@ -111,7 +111,6 @@
   return result;
 }
 
-
 // CountTrailingZeros32(value) returns the number of zero bits preceding the
 // least significant 1 bit in |value| if |value| is non-zero, otherwise it
 // returns 32.
@@ -147,6 +146,14 @@
 #endif
 }
 
+// Overloaded versions of CountTrailingZeros32/64.
+inline unsigned CountTrailingZeros(uint32_t value) {
+  return CountTrailingZeros32(value);
+}
+
+inline unsigned CountTrailingZeros(uint64_t value) {
+  return CountTrailingZeros64(value);
+}
 
 // Returns true iff |value| is a power of 2.
 inline bool IsPowerOfTwo32(uint32_t value) {
diff --git a/src/base/cpu.cc b/src/base/cpu.cc
index 12a3881..16eb7c9 100644
--- a/src/base/cpu.cc
+++ b/src/base/cpu.cc
@@ -338,7 +338,8 @@
       has_vfp_(false),
       has_vfp3_(false),
       has_vfp3_d32_(false),
-      is_fp64_mode_(false) {
+      is_fp64_mode_(false),
+      has_non_stop_time_stamp_counter_(false) {
   memcpy(vendor_, "Unknown", 8);
 #if V8_OS_NACL
 // Portable host shouldn't do feature detection.
@@ -419,6 +420,13 @@
     has_sahf_ = (cpu_info[2] & 0x00000001) != 0;
   }
 
+  // Check if CPU has non stoppable time stamp counter.
+  const int parameter_containing_non_stop_time_stamp_counter = 0x80000007;
+  if (num_ext_ids >= parameter_containing_non_stop_time_stamp_counter) {
+    __cpuid(cpu_info, parameter_containing_non_stop_time_stamp_counter);
+    has_non_stop_time_stamp_counter_ = (cpu_info[3] & (1 << 8)) != 0;
+  }
+
 #elif V8_HOST_ARCH_ARM
 
 #if V8_OS_LINUX
diff --git a/src/base/cpu.h b/src/base/cpu.h
index 3778d27..19d4102 100644
--- a/src/base/cpu.h
+++ b/src/base/cpu.h
@@ -97,6 +97,9 @@
   bool has_lzcnt() const { return has_lzcnt_; }
   bool has_popcnt() const { return has_popcnt_; }
   bool is_atom() const { return is_atom_; }
+  bool has_non_stop_time_stamp_counter() const {
+    return has_non_stop_time_stamp_counter_;
+  }
 
   // arm features
   bool has_idiva() const { return has_idiva_; }
@@ -148,6 +151,7 @@
   bool has_vfp3_;
   bool has_vfp3_d32_;
   bool is_fp64_mode_;
+  bool has_non_stop_time_stamp_counter_;
 };
 
 }  // namespace base
diff --git a/src/base/file-utils.cc b/src/base/file-utils.cc
new file mode 100644
index 0000000..2262df9
--- /dev/null
+++ b/src/base/file-utils.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/base/file-utils.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "src/base/platform/platform.h"
+
+namespace v8 {
+namespace internal {
+
+char* RelativePath(char** buffer, const char* exec_path, const char* name) {
+  DCHECK(exec_path);
+  int path_separator = static_cast<int>(strlen(exec_path)) - 1;
+  while (path_separator >= 0 &&
+         !base::OS::isDirectorySeparator(exec_path[path_separator])) {
+    path_separator--;
+  }
+  if (path_separator >= 0) {
+    int name_length = static_cast<int>(strlen(name));
+    *buffer =
+        reinterpret_cast<char*>(calloc(path_separator + name_length + 2, 1));
+    *buffer[0] = '\0';
+    strncat(*buffer, exec_path, path_separator + 1);
+    strncat(*buffer, name, name_length);
+  } else {
+    *buffer = strdup(name);
+  }
+  return *buffer;
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/base/file-utils.h b/src/base/file-utils.h
new file mode 100644
index 0000000..ce9e9a1
--- /dev/null
+++ b/src/base/file-utils.h
@@ -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.
+
+#ifndef V8_FILE_UTILS_H_
+#define V8_FILE_UTILS_H_
+
+namespace v8 {
+namespace internal {
+
+// Helper functions to manipulate file paths.
+
+char* RelativePath(char** buffer, const char* exec_path, const char* name);
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_FILE_UTILS_H_
diff --git a/src/hashmap.h b/src/base/hashmap.h
similarity index 84%
rename from src/hashmap.h
rename to src/base/hashmap.h
index f94def7..efb5dc8 100644
--- a/src/hashmap.h
+++ b/src/base/hashmap.h
@@ -2,21 +2,31 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef V8_HASHMAP_H_
-#define V8_HASHMAP_H_
+// The reason we write our own hash map instead of using unordered_map in STL,
+// is that STL containers use a mutex pool on debug build, which will lead to
+// deadlock when we are using async signal handler.
 
-#include "src/allocation.h"
+#ifndef V8_BASE_HASHMAP_H_
+#define V8_BASE_HASHMAP_H_
+
+#include <stdlib.h>
+
 #include "src/base/bits.h"
 #include "src/base/logging.h"
-#include "src/utils.h"
 
 namespace v8 {
-namespace internal {
+namespace base {
 
-template<class AllocationPolicy>
+class DefaultAllocationPolicy {
+ public:
+  V8_INLINE void* New(size_t size) { return malloc(size); }
+  V8_INLINE static void Delete(void* p) { free(p); }
+};
+
+template <class AllocationPolicy>
 class TemplateHashMapImpl {
  public:
-  typedef bool (*MatchFun) (void* key1, void* key2);
+  typedef bool (*MatchFun)(void* key1, void* key2);
 
   // The default capacity.  This is used by the call sites which want
   // to pass in a non-default AllocationPolicy but want to use the
@@ -38,7 +48,7 @@
     void* key;
     void* value;
     uint32_t hash;  // The full hash value for key
-    int order;  // If you never remove entries this is the insertion order.
+    int order;      // If you never remove entries this is the insertion order.
   };
 
   // If an entry with matching key is found, returns that entry.
@@ -79,9 +89,7 @@
   Entry* Next(Entry* p) const;
 
   // Some match functions defined for convenience.
-  static bool PointersMatch(void* key1, void* key2) {
-    return key1 == key2;
-  }
+  static bool PointersMatch(void* key1, void* key2) { return key1 == key2; }
 
  private:
   MatchFun match_;
@@ -95,22 +103,20 @@
   void Resize(AllocationPolicy allocator);
 };
 
-typedef TemplateHashMapImpl<FreeStoreAllocationPolicy> HashMap;
+typedef TemplateHashMapImpl<DefaultAllocationPolicy> HashMap;
 
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 TemplateHashMapImpl<AllocationPolicy>::TemplateHashMapImpl(
     MatchFun match, uint32_t initial_capacity, AllocationPolicy allocator) {
   match_ = match;
   Initialize(initial_capacity, allocator);
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 TemplateHashMapImpl<AllocationPolicy>::~TemplateHashMapImpl() {
   AllocationPolicy::Delete(map_);
 }
 
-
 template <class AllocationPolicy>
 typename TemplateHashMapImpl<AllocationPolicy>::Entry*
 TemplateHashMapImpl<AllocationPolicy>::Lookup(void* key, uint32_t hash) const {
@@ -118,7 +124,6 @@
   return p->key != NULL ? p : NULL;
 }
 
-
 template <class AllocationPolicy>
 typename TemplateHashMapImpl<AllocationPolicy>::Entry*
 TemplateHashMapImpl<AllocationPolicy>::LookupOrInsert(
@@ -145,8 +150,7 @@
   return p;
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 void* TemplateHashMapImpl<AllocationPolicy>::Remove(void* key, uint32_t hash) {
   // Lookup the entry for the key to remove.
   Entry* p = Probe(key, hash);
@@ -194,8 +198,7 @@
     // If the entry at position q has its initial position outside the range
     // between p and q it can be moved forward to position p and will still be
     // found. There is now a new candidate entry for clearing.
-    if ((q > p && (r <= p || r > q)) ||
-        (q < p && (r <= p && r > q))) {
+    if ((q > p && (r <= p || r > q)) || (q < p && (r <= p && r > q))) {
       *p = *q;
       p = q;
     }
@@ -207,8 +210,7 @@
   return value;
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 void TemplateHashMapImpl<AllocationPolicy>::Clear() {
   // Mark all entries as empty.
   const Entry* end = map_end();
@@ -218,17 +220,15 @@
   occupancy_ = 0;
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 typename TemplateHashMapImpl<AllocationPolicy>::Entry*
-    TemplateHashMapImpl<AllocationPolicy>::Start() const {
+TemplateHashMapImpl<AllocationPolicy>::Start() const {
   return Next(map_ - 1);
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 typename TemplateHashMapImpl<AllocationPolicy>::Entry*
-    TemplateHashMapImpl<AllocationPolicy>::Next(Entry* p) const {
+TemplateHashMapImpl<AllocationPolicy>::Next(Entry* p) const {
   const Entry* end = map_end();
   DCHECK(map_ - 1 <= p && p < end);
   for (p++; p < end; p++) {
@@ -239,7 +239,6 @@
   return NULL;
 }
 
-
 template <class AllocationPolicy>
 typename TemplateHashMapImpl<AllocationPolicy>::Entry*
 TemplateHashMapImpl<AllocationPolicy>::Probe(void* key, uint32_t hash) const {
@@ -261,22 +260,20 @@
   return p;
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 void TemplateHashMapImpl<AllocationPolicy>::Initialize(
     uint32_t capacity, AllocationPolicy allocator) {
   DCHECK(base::bits::IsPowerOfTwo32(capacity));
   map_ = reinterpret_cast<Entry*>(allocator.New(capacity * sizeof(Entry)));
   if (map_ == NULL) {
-    v8::internal::FatalProcessOutOfMemory("HashMap::Initialize");
+    FATAL("Out of memory: HashMap::Initialize");
     return;
   }
   capacity_ = capacity;
   Clear();
 }
 
-
-template<class AllocationPolicy>
+template <class AllocationPolicy>
 void TemplateHashMapImpl<AllocationPolicy>::Resize(AllocationPolicy allocator) {
   Entry* map = map_;
   uint32_t n = occupancy_;
@@ -298,12 +295,11 @@
   AllocationPolicy::Delete(map);
 }
 
-
 // A hash map for pointer keys and values with an STL-like interface.
-template<class Key, class Value, class AllocationPolicy>
-class TemplateHashMap: private TemplateHashMapImpl<AllocationPolicy> {
+template <class Key, class Value, class AllocationPolicy>
+class TemplateHashMap : private TemplateHashMapImpl<AllocationPolicy> {
  public:
-  STATIC_ASSERT(sizeof(Key*) == sizeof(void*));  // NOLINT
+  STATIC_ASSERT(sizeof(Key*) == sizeof(void*));    // NOLINT
   STATIC_ASSERT(sizeof(Value*) == sizeof(void*));  // NOLINT
   struct value_type {
     Key* first;
@@ -318,12 +314,12 @@
     }
 
     value_type* operator->() { return reinterpret_cast<value_type*>(entry_); }
-    bool operator!=(const Iterator& other) { return  entry_ != other.entry_; }
+    bool operator!=(const Iterator& other) { return entry_ != other.entry_; }
 
    private:
     Iterator(const TemplateHashMapImpl<AllocationPolicy>* map,
-             typename TemplateHashMapImpl<AllocationPolicy>::Entry* entry) :
-        map_(map), entry_(entry) { }
+             typename TemplateHashMapImpl<AllocationPolicy>::Entry* entry)
+        : map_(map), entry_(entry) {}
 
     const TemplateHashMapImpl<AllocationPolicy>* map_;
     typename TemplateHashMapImpl<AllocationPolicy>::Entry* entry_;
@@ -334,10 +330,10 @@
   TemplateHashMap(
       typename TemplateHashMapImpl<AllocationPolicy>::MatchFun match,
       AllocationPolicy allocator = AllocationPolicy())
-        : TemplateHashMapImpl<AllocationPolicy>(
+      : TemplateHashMapImpl<AllocationPolicy>(
             match,
             TemplateHashMapImpl<AllocationPolicy>::kDefaultHashMapCapacity,
-            allocator) { }
+            allocator) {}
 
   Iterator begin() const { return Iterator(this, this->Start()); }
   Iterator end() const { return Iterator(this, NULL); }
@@ -350,7 +346,7 @@
   }
 };
 
-}  // namespace internal
+}  // namespace base
 }  // namespace v8
 
-#endif  // V8_HASHMAP_H_
+#endif  // V8_BASE_HASHMAP_H_
diff --git a/src/base/ieee754.cc b/src/base/ieee754.cc
new file mode 100644
index 0000000..b7178ca
--- /dev/null
+++ b/src/base/ieee754.cc
@@ -0,0 +1,2313 @@
+// The following is adapted from fdlibm (http://www.netlib.org/fdlibm).
+//
+// ====================================================
+// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+//
+// Developed at SunSoft, a Sun Microsystems, Inc. business.
+// Permission to use, copy, modify, and distribute this
+// software is freely granted, provided that this notice
+// is preserved.
+// ====================================================
+//
+// The original source code covered by the above license above has been
+// modified significantly by Google Inc.
+// Copyright 2016 the V8 project authors. All rights reserved.
+
+#include "src/base/ieee754.h"
+
+#include <cmath>
+#include <limits>
+
+#include "src/base/build_config.h"
+#include "src/base/macros.h"
+
+namespace v8 {
+namespace base {
+namespace ieee754 {
+
+namespace {
+
+/* Disable "potential divide by 0" warning in Visual Studio compiler. */
+
+#if V8_CC_MSVC
+
+#pragma warning(disable : 4723)
+
+#endif
+
+/*
+ * The original fdlibm code used statements like:
+ *  n0 = ((*(int*)&one)>>29)^1;   * index of high word *
+ *  ix0 = *(n0+(int*)&x);     * high word of x *
+ *  ix1 = *((1-n0)+(int*)&x);   * low word of x *
+ * to dig two 32 bit words out of the 64 bit IEEE floating point
+ * value.  That is non-ANSI, and, moreover, the gcc instruction
+ * scheduler gets it wrong.  We instead use the following macros.
+ * Unlike the original code, we determine the endianness at compile
+ * time, not at run time; I don't see much benefit to selecting
+ * endianness at run time.
+ */
+
+/*
+ * A union which permits us to convert between a double and two 32 bit
+ * ints.
+ */
+
+#if V8_TARGET_LITTLE_ENDIAN
+
+typedef union {
+  double value;
+  struct {
+    uint32_t lsw;
+    uint32_t msw;
+  } parts;
+  struct {
+    uint64_t w;
+  } xparts;
+} ieee_double_shape_type;
+
+#else
+
+typedef union {
+  double value;
+  struct {
+    uint32_t msw;
+    uint32_t lsw;
+  } parts;
+  struct {
+    uint64_t w;
+  } xparts;
+} ieee_double_shape_type;
+
+#endif
+
+/* Get two 32 bit ints from a double.  */
+
+#define EXTRACT_WORDS(ix0, ix1, d) \
+  do {                             \
+    ieee_double_shape_type ew_u;   \
+    ew_u.value = (d);              \
+    (ix0) = ew_u.parts.msw;        \
+    (ix1) = ew_u.parts.lsw;        \
+  } while (0)
+
+/* Get a 64-bit int from a double. */
+#define EXTRACT_WORD64(ix, d)    \
+  do {                           \
+    ieee_double_shape_type ew_u; \
+    ew_u.value = (d);            \
+    (ix) = ew_u.xparts.w;        \
+  } while (0)
+
+/* Get the more significant 32 bit int from a double.  */
+
+#define GET_HIGH_WORD(i, d)      \
+  do {                           \
+    ieee_double_shape_type gh_u; \
+    gh_u.value = (d);            \
+    (i) = gh_u.parts.msw;        \
+  } while (0)
+
+/* Get the less significant 32 bit int from a double.  */
+
+#define GET_LOW_WORD(i, d)       \
+  do {                           \
+    ieee_double_shape_type gl_u; \
+    gl_u.value = (d);            \
+    (i) = gl_u.parts.lsw;        \
+  } while (0)
+
+/* Set a double from two 32 bit ints.  */
+
+#define INSERT_WORDS(d, ix0, ix1) \
+  do {                            \
+    ieee_double_shape_type iw_u;  \
+    iw_u.parts.msw = (ix0);       \
+    iw_u.parts.lsw = (ix1);       \
+    (d) = iw_u.value;             \
+  } while (0)
+
+/* Set a double from a 64-bit int. */
+#define INSERT_WORD64(d, ix)     \
+  do {                           \
+    ieee_double_shape_type iw_u; \
+    iw_u.xparts.w = (ix);        \
+    (d) = iw_u.value;            \
+  } while (0)
+
+/* Set the more significant 32 bits of a double from an int.  */
+
+#define SET_HIGH_WORD(d, v)      \
+  do {                           \
+    ieee_double_shape_type sh_u; \
+    sh_u.value = (d);            \
+    sh_u.parts.msw = (v);        \
+    (d) = sh_u.value;            \
+  } while (0)
+
+/* Set the less significant 32 bits of a double from an int.  */
+
+#define SET_LOW_WORD(d, v)       \
+  do {                           \
+    ieee_double_shape_type sl_u; \
+    sl_u.value = (d);            \
+    sl_u.parts.lsw = (v);        \
+    (d) = sl_u.value;            \
+  } while (0)
+
+/* Support macro. */
+
+#define STRICT_ASSIGN(type, lval, rval) ((lval) = (rval))
+
+int32_t __ieee754_rem_pio2(double x, double *y) WARN_UNUSED_RESULT;
+double __kernel_cos(double x, double y) WARN_UNUSED_RESULT;
+int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec,
+                      const int32_t *ipio2) WARN_UNUSED_RESULT;
+double __kernel_sin(double x, double y, int iy) WARN_UNUSED_RESULT;
+
+/* __ieee754_rem_pio2(x,y)
+ *
+ * return the remainder of x rem pi/2 in y[0]+y[1]
+ * use __kernel_rem_pio2()
+ */
+int32_t __ieee754_rem_pio2(double x, double *y) {
+  /*
+   * Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
+   */
+  static const int32_t two_over_pi[] = {
+      0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C,
+      0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649,
+      0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44,
+      0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B,
+      0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D,
+      0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
+      0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330,
+      0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08,
+      0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA,
+      0x73A8C9, 0x60E27B, 0xC08C6B,
+  };
+
+  static const int32_t npio2_hw[] = {
+      0x3FF921FB, 0x400921FB, 0x4012D97C, 0x401921FB, 0x401F6A7A, 0x4022D97C,
+      0x4025FDBB, 0x402921FB, 0x402C463A, 0x402F6A7A, 0x4031475C, 0x4032D97C,
+      0x40346B9C, 0x4035FDBB, 0x40378FDB, 0x403921FB, 0x403AB41B, 0x403C463A,
+      0x403DD85A, 0x403F6A7A, 0x40407E4C, 0x4041475C, 0x4042106C, 0x4042D97C,
+      0x4043A28C, 0x40446B9C, 0x404534AC, 0x4045FDBB, 0x4046C6CB, 0x40478FDB,
+      0x404858EB, 0x404921FB,
+  };
+
+  /*
+   * invpio2:  53 bits of 2/pi
+   * pio2_1:   first  33 bit of pi/2
+   * pio2_1t:  pi/2 - pio2_1
+   * pio2_2:   second 33 bit of pi/2
+   * pio2_2t:  pi/2 - (pio2_1+pio2_2)
+   * pio2_3:   third  33 bit of pi/2
+   * pio2_3t:  pi/2 - (pio2_1+pio2_2+pio2_3)
+   */
+
+  static const double
+      zero = 0.00000000000000000000e+00,    /* 0x00000000, 0x00000000 */
+      half = 5.00000000000000000000e-01,    /* 0x3FE00000, 0x00000000 */
+      two24 = 1.67772160000000000000e+07,   /* 0x41700000, 0x00000000 */
+      invpio2 = 6.36619772367581382433e-01, /* 0x3FE45F30, 0x6DC9C883 */
+      pio2_1 = 1.57079632673412561417e+00,  /* 0x3FF921FB, 0x54400000 */
+      pio2_1t = 6.07710050650619224932e-11, /* 0x3DD0B461, 0x1A626331 */
+      pio2_2 = 6.07710050630396597660e-11,  /* 0x3DD0B461, 0x1A600000 */
+      pio2_2t = 2.02226624879595063154e-21, /* 0x3BA3198A, 0x2E037073 */
+      pio2_3 = 2.02226624871116645580e-21,  /* 0x3BA3198A, 0x2E000000 */
+      pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
+
+  double z, w, t, r, fn;
+  double tx[3];
+  int32_t e0, i, j, nx, n, ix, hx;
+  uint32_t low;
+
+  z = 0;
+  GET_HIGH_WORD(hx, x); /* high word of x */
+  ix = hx & 0x7fffffff;
+  if (ix <= 0x3fe921fb) { /* |x| ~<= pi/4 , no need for reduction */
+    y[0] = x;
+    y[1] = 0;
+    return 0;
+  }
+  if (ix < 0x4002d97c) { /* |x| < 3pi/4, special case with n=+-1 */
+    if (hx > 0) {
+      z = x - pio2_1;
+      if (ix != 0x3ff921fb) { /* 33+53 bit pi is good enough */
+        y[0] = z - pio2_1t;
+        y[1] = (z - y[0]) - pio2_1t;
+      } else { /* near pi/2, use 33+33+53 bit pi */
+        z -= pio2_2;
+        y[0] = z - pio2_2t;
+        y[1] = (z - y[0]) - pio2_2t;
+      }
+      return 1;
+    } else { /* negative x */
+      z = x + pio2_1;
+      if (ix != 0x3ff921fb) { /* 33+53 bit pi is good enough */
+        y[0] = z + pio2_1t;
+        y[1] = (z - y[0]) + pio2_1t;
+      } else { /* near pi/2, use 33+33+53 bit pi */
+        z += pio2_2;
+        y[0] = z + pio2_2t;
+        y[1] = (z - y[0]) + pio2_2t;
+      }
+      return -1;
+    }
+  }
+  if (ix <= 0x413921fb) { /* |x| ~<= 2^19*(pi/2), medium size */
+    t = fabs(x);
+    n = static_cast<int32_t>(t * invpio2 + half);
+    fn = static_cast<double>(n);
+    r = t - fn * pio2_1;
+    w = fn * pio2_1t; /* 1st round good to 85 bit */
+    if (n < 32 && ix != npio2_hw[n - 1]) {
+      y[0] = r - w; /* quick check no cancellation */
+    } else {
+      uint32_t high;
+      j = ix >> 20;
+      y[0] = r - w;
+      GET_HIGH_WORD(high, y[0]);
+      i = j - ((high >> 20) & 0x7ff);
+      if (i > 16) { /* 2nd iteration needed, good to 118 */
+        t = r;
+        w = fn * pio2_2;
+        r = t - w;
+        w = fn * pio2_2t - ((t - r) - w);
+        y[0] = r - w;
+        GET_HIGH_WORD(high, y[0]);
+        i = j - ((high >> 20) & 0x7ff);
+        if (i > 49) { /* 3rd iteration need, 151 bits acc */
+          t = r;      /* will cover all possible cases */
+          w = fn * pio2_3;
+          r = t - w;
+          w = fn * pio2_3t - ((t - r) - w);
+          y[0] = r - w;
+        }
+      }
+    }
+    y[1] = (r - y[0]) - w;
+    if (hx < 0) {
+      y[0] = -y[0];
+      y[1] = -y[1];
+      return -n;
+    } else {
+      return n;
+    }
+  }
+  /*
+   * all other (large) arguments
+   */
+  if (ix >= 0x7ff00000) { /* x is inf or NaN */
+    y[0] = y[1] = x - x;
+    return 0;
+  }
+  /* set z = scalbn(|x|,ilogb(x)-23) */
+  GET_LOW_WORD(low, x);
+  SET_LOW_WORD(z, low);
+  e0 = (ix >> 20) - 1046; /* e0 = ilogb(z)-23; */
+  SET_HIGH_WORD(z, ix - static_cast<int32_t>(e0 << 20));
+  for (i = 0; i < 2; i++) {
+    tx[i] = static_cast<double>(static_cast<int32_t>(z));
+    z = (z - tx[i]) * two24;
+  }
+  tx[2] = z;
+  nx = 3;
+  while (tx[nx - 1] == zero) nx--; /* skip zero term */
+  n = __kernel_rem_pio2(tx, y, e0, nx, 2, two_over_pi);
+  if (hx < 0) {
+    y[0] = -y[0];
+    y[1] = -y[1];
+    return -n;
+  }
+  return n;
+}
+
+/* __kernel_cos( x,  y )
+ * kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ *
+ * Algorithm
+ *      1. Since cos(-x) = cos(x), we need only to consider positive x.
+ *      2. if x < 2^-27 (hx<0x3e400000 0), return 1 with inexact if x!=0.
+ *      3. cos(x) is approximated by a polynomial of degree 14 on
+ *         [0,pi/4]
+ *                                       4            14
+ *              cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
+ *         where the remez error is
+ *
+ *      |              2     4     6     8     10    12     14 |     -58
+ *      |cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  )| <= 2
+ *      |                                                      |
+ *
+ *                     4     6     8     10    12     14
+ *      4. let r = C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  , then
+ *             cos(x) = 1 - x*x/2 + r
+ *         since cos(x+y) ~ cos(x) - sin(x)*y
+ *                        ~ cos(x) - x*y,
+ *         a correction term is necessary in cos(x) and hence
+ *              cos(x+y) = 1 - (x*x/2 - (r - x*y))
+ *         For better accuracy when x > 0.3, let qx = |x|/4 with
+ *         the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125.
+ *         Then
+ *              cos(x+y) = (1-qx) - ((x*x/2-qx) - (r-x*y)).
+ *         Note that 1-qx and (x*x/2-qx) is EXACT here, and the
+ *         magnitude of the latter is at least a quarter of x*x/2,
+ *         thus, reducing the rounding error in the subtraction.
+ */
+V8_INLINE double __kernel_cos(double x, double y) {
+  static const double
+      one = 1.00000000000000000000e+00, /* 0x3FF00000, 0x00000000 */
+      C1 = 4.16666666666666019037e-02,  /* 0x3FA55555, 0x5555554C */
+      C2 = -1.38888888888741095749e-03, /* 0xBF56C16C, 0x16C15177 */
+      C3 = 2.48015872894767294178e-05,  /* 0x3EFA01A0, 0x19CB1590 */
+      C4 = -2.75573143513906633035e-07, /* 0xBE927E4F, 0x809C52AD */
+      C5 = 2.08757232129817482790e-09,  /* 0x3E21EE9E, 0xBDB4B1C4 */
+      C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
+
+  double a, iz, z, r, qx;
+  int32_t ix;
+  GET_HIGH_WORD(ix, x);
+  ix &= 0x7fffffff;                           /* ix = |x|'s high word*/
+  if (ix < 0x3e400000) {                      /* if x < 2**27 */
+    if (static_cast<int>(x) == 0) return one; /* generate inexact */
+  }
+  z = x * x;
+  r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6)))));
+  if (ix < 0x3FD33333) { /* if |x| < 0.3 */
+    return one - (0.5 * z - (z * r - x * y));
+  } else {
+    if (ix > 0x3fe90000) { /* x > 0.78125 */
+      qx = 0.28125;
+    } else {
+      INSERT_WORDS(qx, ix - 0x00200000, 0); /* x/4 */
+    }
+    iz = 0.5 * z - qx;
+    a = one - qx;
+    return a - (iz - (z * r - x * y));
+  }
+}
+
+/* __kernel_rem_pio2(x,y,e0,nx,prec,ipio2)
+ * double x[],y[]; int e0,nx,prec; int ipio2[];
+ *
+ * __kernel_rem_pio2 return the last three digits of N with
+ *              y = x - N*pi/2
+ * so that |y| < pi/2.
+ *
+ * The method is to compute the integer (mod 8) and fraction parts of
+ * (2/pi)*x without doing the full multiplication. In general we
+ * skip the part of the product that are known to be a huge integer (
+ * more accurately, = 0 mod 8 ). Thus the number of operations are
+ * independent of the exponent of the input.
+ *
+ * (2/pi) is represented by an array of 24-bit integers in ipio2[].
+ *
+ * Input parameters:
+ *      x[]     The input value (must be positive) is broken into nx
+ *              pieces of 24-bit integers in double precision format.
+ *              x[i] will be the i-th 24 bit of x. The scaled exponent
+ *              of x[0] is given in input parameter e0 (i.e., x[0]*2^e0
+ *              match x's up to 24 bits.
+ *
+ *              Example of breaking a double positive z into x[0]+x[1]+x[2]:
+ *                      e0 = ilogb(z)-23
+ *                      z  = scalbn(z,-e0)
+ *              for i = 0,1,2
+ *                      x[i] = floor(z)
+ *                      z    = (z-x[i])*2**24
+ *
+ *
+ *      y[]     output result in an array of double precision numbers.
+ *              The dimension of y[] is:
+ *                      24-bit  precision       1
+ *                      53-bit  precision       2
+ *                      64-bit  precision       2
+ *                      113-bit precision       3
+ *              The actual value is the sum of them. Thus for 113-bit
+ *              precison, one may have to do something like:
+ *
+ *              long double t,w,r_head, r_tail;
+ *              t = (long double)y[2] + (long double)y[1];
+ *              w = (long double)y[0];
+ *              r_head = t+w;
+ *              r_tail = w - (r_head - t);
+ *
+ *      e0      The exponent of x[0]
+ *
+ *      nx      dimension of x[]
+ *
+ *      prec    an integer indicating the precision:
+ *                      0       24  bits (single)
+ *                      1       53  bits (double)
+ *                      2       64  bits (extended)
+ *                      3       113 bits (quad)
+ *
+ *      ipio2[]
+ *              integer array, contains the (24*i)-th to (24*i+23)-th
+ *              bit of 2/pi after binary point. The corresponding
+ *              floating value is
+ *
+ *                      ipio2[i] * 2^(-24(i+1)).
+ *
+ * External function:
+ *      double scalbn(), floor();
+ *
+ *
+ * Here is the description of some local variables:
+ *
+ *      jk      jk+1 is the initial number of terms of ipio2[] needed
+ *              in the computation. The recommended value is 2,3,4,
+ *              6 for single, double, extended,and quad.
+ *
+ *      jz      local integer variable indicating the number of
+ *              terms of ipio2[] used.
+ *
+ *      jx      nx - 1
+ *
+ *      jv      index for pointing to the suitable ipio2[] for the
+ *              computation. In general, we want
+ *                      ( 2^e0*x[0] * ipio2[jv-1]*2^(-24jv) )/8
+ *              is an integer. Thus
+ *                      e0-3-24*jv >= 0 or (e0-3)/24 >= jv
+ *              Hence jv = max(0,(e0-3)/24).
+ *
+ *      jp      jp+1 is the number of terms in PIo2[] needed, jp = jk.
+ *
+ *      q[]     double array with integral value, representing the
+ *              24-bits chunk of the product of x and 2/pi.
+ *
+ *      q0      the corresponding exponent of q[0]. Note that the
+ *              exponent for q[i] would be q0-24*i.
+ *
+ *      PIo2[]  double precision array, obtained by cutting pi/2
+ *              into 24 bits chunks.
+ *
+ *      f[]     ipio2[] in floating point
+ *
+ *      iq[]    integer array by breaking up q[] in 24-bits chunk.
+ *
+ *      fq[]    final product of x*(2/pi) in fq[0],..,fq[jk]
+ *
+ *      ih      integer. If >0 it indicates q[] is >= 0.5, hence
+ *              it also indicates the *sign* of the result.
+ *
+ */
+int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec,
+                      const int32_t *ipio2) {
+  /* Constants:
+   * The hexadecimal values are the intended ones for the following
+   * constants. The decimal values may be used, provided that the
+   * compiler will convert from decimal to binary accurately enough
+   * to produce the hexadecimal values shown.
+   */
+  static const int init_jk[] = {2, 3, 4, 6}; /* initial value for jk */
+
+  static const double PIo2[] = {
+      1.57079625129699707031e+00, /* 0x3FF921FB, 0x40000000 */
+      7.54978941586159635335e-08, /* 0x3E74442D, 0x00000000 */
+      5.39030252995776476554e-15, /* 0x3CF84698, 0x80000000 */
+      3.28200341580791294123e-22, /* 0x3B78CC51, 0x60000000 */
+      1.27065575308067607349e-29, /* 0x39F01B83, 0x80000000 */
+      1.22933308981111328932e-36, /* 0x387A2520, 0x40000000 */
+      2.73370053816464559624e-44, /* 0x36E38222, 0x80000000 */
+      2.16741683877804819444e-51, /* 0x3569F31D, 0x00000000 */
+  };
+
+  static const double
+      zero = 0.0,
+      one = 1.0,
+      two24 = 1.67772160000000000000e+07,  /* 0x41700000, 0x00000000 */
+      twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
+
+  int32_t jz, jx, jv, jp, jk, carry, n, iq[20], i, j, k, m, q0, ih;
+  double z, fw, f[20], fq[20], q[20];
+
+  /* initialize jk*/
+  jk = init_jk[prec];
+  jp = jk;
+
+  /* determine jx,jv,q0, note that 3>q0 */
+  jx = nx - 1;
+  jv = (e0 - 3) / 24;
+  if (jv < 0) jv = 0;
+  q0 = e0 - 24 * (jv + 1);
+
+  /* set up f[0] to f[jx+jk] where f[jx+jk] = ipio2[jv+jk] */
+  j = jv - jx;
+  m = jx + jk;
+  for (i = 0; i <= m; i++, j++) {
+    f[i] = (j < 0) ? zero : static_cast<double>(ipio2[j]);
+  }
+
+  /* compute q[0],q[1],...q[jk] */
+  for (i = 0; i <= jk; i++) {
+    for (j = 0, fw = 0.0; j <= jx; j++) fw += x[j] * f[jx + i - j];
+    q[i] = fw;
+  }
+
+  jz = jk;
+recompute:
+  /* distill q[] into iq[] reversingly */
+  for (i = 0, j = jz, z = q[jz]; j > 0; i++, j--) {
+    fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
+    iq[i] = static_cast<int32_t>(z - two24 * fw);
+    z = q[j - 1] + fw;
+  }
+
+  /* compute n */
+  z = scalbn(z, q0);           /* actual value of z */
+  z -= 8.0 * floor(z * 0.125); /* trim off integer >= 8 */
+  n = static_cast<int32_t>(z);
+  z -= static_cast<double>(n);
+  ih = 0;
+  if (q0 > 0) { /* need iq[jz-1] to determine n */
+    i = (iq[jz - 1] >> (24 - q0));
+    n += i;
+    iq[jz - 1] -= i << (24 - q0);
+    ih = iq[jz - 1] >> (23 - q0);
+  } else if (q0 == 0) {
+    ih = iq[jz - 1] >> 23;
+  } else if (z >= 0.5) {
+    ih = 2;
+  }
+
+  if (ih > 0) { /* q > 0.5 */
+    n += 1;
+    carry = 0;
+    for (i = 0; i < jz; i++) { /* compute 1-q */
+      j = iq[i];
+      if (carry == 0) {
+        if (j != 0) {
+          carry = 1;
+          iq[i] = 0x1000000 - j;
+        }
+      } else {
+        iq[i] = 0xffffff - j;
+      }
+    }
+    if (q0 > 0) { /* rare case: chance is 1 in 12 */
+      switch (q0) {
+        case 1:
+          iq[jz - 1] &= 0x7fffff;
+          break;
+        case 2:
+          iq[jz - 1] &= 0x3fffff;
+          break;
+      }
+    }
+    if (ih == 2) {
+      z = one - z;
+      if (carry != 0) z -= scalbn(one, q0);
+    }
+  }
+
+  /* check if recomputation is needed */
+  if (z == zero) {
+    j = 0;
+    for (i = jz - 1; i >= jk; i--) j |= iq[i];
+    if (j == 0) { /* need recomputation */
+      for (k = 1; jk >= k && iq[jk - k] == 0; k++) {
+        /* k = no. of terms needed */
+      }
+
+      for (i = jz + 1; i <= jz + k; i++) { /* add q[jz+1] to q[jz+k] */
+        f[jx + i] = ipio2[jv + i];
+        for (j = 0, fw = 0.0; j <= jx; j++) fw += x[j] * f[jx + i - j];
+        q[i] = fw;
+      }
+      jz += k;
+      goto recompute;
+    }
+  }
+
+  /* chop off zero terms */
+  if (z == 0.0) {
+    jz -= 1;
+    q0 -= 24;
+    while (iq[jz] == 0) {
+      jz--;
+      q0 -= 24;
+    }
+  } else { /* break z into 24-bit if necessary */
+    z = scalbn(z, -q0);
+    if (z >= two24) {
+      fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
+      iq[jz] = z - two24 * fw;
+      jz += 1;
+      q0 += 24;
+      iq[jz] = fw;
+    } else {
+      iq[jz] = z;
+    }
+  }
+
+  /* convert integer "bit" chunk to floating-point value */
+  fw = scalbn(one, q0);
+  for (i = jz; i >= 0; i--) {
+    q[i] = fw * iq[i];
+    fw *= twon24;
+  }
+
+  /* compute PIo2[0,...,jp]*q[jz,...,0] */
+  for (i = jz; i >= 0; i--) {
+    for (fw = 0.0, k = 0; k <= jp && k <= jz - i; k++) fw += PIo2[k] * q[i + k];
+    fq[jz - i] = fw;
+  }
+
+  /* compress fq[] into y[] */
+  switch (prec) {
+    case 0:
+      fw = 0.0;
+      for (i = jz; i >= 0; i--) fw += fq[i];
+      y[0] = (ih == 0) ? fw : -fw;
+      break;
+    case 1:
+    case 2:
+      fw = 0.0;
+      for (i = jz; i >= 0; i--) fw += fq[i];
+      y[0] = (ih == 0) ? fw : -fw;
+      fw = fq[0] - fw;
+      for (i = 1; i <= jz; i++) fw += fq[i];
+      y[1] = (ih == 0) ? fw : -fw;
+      break;
+    case 3: /* painful */
+      for (i = jz; i > 0; i--) {
+        fw = fq[i - 1] + fq[i];
+        fq[i] += fq[i - 1] - fw;
+        fq[i - 1] = fw;
+      }
+      for (i = jz; i > 1; i--) {
+        fw = fq[i - 1] + fq[i];
+        fq[i] += fq[i - 1] - fw;
+        fq[i - 1] = fw;
+      }
+      for (fw = 0.0, i = jz; i >= 2; i--) fw += fq[i];
+      if (ih == 0) {
+        y[0] = fq[0];
+        y[1] = fq[1];
+        y[2] = fw;
+      } else {
+        y[0] = -fq[0];
+        y[1] = -fq[1];
+        y[2] = -fw;
+      }
+  }
+  return n & 7;
+}
+
+/* __kernel_sin( x, y, iy)
+ * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input iy indicates whether y is 0. (if iy=0, y assume to be 0).
+ *
+ * Algorithm
+ *      1. Since sin(-x) = -sin(x), we need only to consider positive x.
+ *      2. if x < 2^-27 (hx<0x3e400000 0), return x with inexact if x!=0.
+ *      3. sin(x) is approximated by a polynomial of degree 13 on
+ *         [0,pi/4]
+ *                               3            13
+ *              sin(x) ~ x + S1*x + ... + S6*x
+ *         where
+ *
+ *      |sin(x)         2     4     6     8     10     12  |     -58
+ *      |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x  +S6*x   )| <= 2
+ *      |  x                                               |
+ *
+ *      4. sin(x+y) = sin(x) + sin'(x')*y
+ *                  ~ sin(x) + (1-x*x/2)*y
+ *         For better accuracy, let
+ *                   3      2      2      2      2
+ *              r = x *(S2+x *(S3+x *(S4+x *(S5+x *S6))))
+ *         then                   3    2
+ *              sin(x) = x + (S1*x + (x *(r-y/2)+y))
+ */
+V8_INLINE double __kernel_sin(double x, double y, int iy) {
+  static const double
+      half = 5.00000000000000000000e-01, /* 0x3FE00000, 0x00000000 */
+      S1 = -1.66666666666666324348e-01,  /* 0xBFC55555, 0x55555549 */
+      S2 = 8.33333333332248946124e-03,   /* 0x3F811111, 0x1110F8A6 */
+      S3 = -1.98412698298579493134e-04,  /* 0xBF2A01A0, 0x19C161D5 */
+      S4 = 2.75573137070700676789e-06,   /* 0x3EC71DE3, 0x57B1FE7D */
+      S5 = -2.50507602534068634195e-08,  /* 0xBE5AE5E6, 0x8A2B9CEB */
+      S6 = 1.58969099521155010221e-10;   /* 0x3DE5D93A, 0x5ACFD57C */
+
+  double z, r, v;
+  int32_t ix;
+  GET_HIGH_WORD(ix, x);
+  ix &= 0x7fffffff;      /* high word of x */
+  if (ix < 0x3e400000) { /* |x| < 2**-27 */
+    if (static_cast<int>(x) == 0) return x;
+  } /* generate inexact */
+  z = x * x;
+  v = z * x;
+  r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6)));
+  if (iy == 0) {
+    return x + v * (S1 + z * r);
+  } else {
+    return x - ((z * (half * y - v * r) - y) - v * S1);
+  }
+}
+
+/* __kernel_tan( x, y, k )
+ * kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
+ * Input x is assumed to be bounded by ~pi/4 in magnitude.
+ * Input y is the tail of x.
+ * Input k indicates whether tan (if k=1) or
+ * -1/tan (if k= -1) is returned.
+ *
+ * Algorithm
+ *      1. Since tan(-x) = -tan(x), we need only to consider positive x.
+ *      2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0.
+ *      3. tan(x) is approximated by a odd polynomial of degree 27 on
+ *         [0,0.67434]
+ *                               3             27
+ *              tan(x) ~ x + T1*x + ... + T13*x
+ *         where
+ *
+ *              |tan(x)         2     4            26   |     -59.2
+ *              |----- - (1+T1*x +T2*x +.... +T13*x    )| <= 2
+ *              |  x                                    |
+ *
+ *         Note: tan(x+y) = tan(x) + tan'(x)*y
+ *                        ~ tan(x) + (1+x*x)*y
+ *         Therefore, for better accuracy in computing tan(x+y), let
+ *                   3      2      2       2       2
+ *              r = x *(T2+x *(T3+x *(...+x *(T12+x *T13))))
+ *         then
+ *                                  3    2
+ *              tan(x+y) = x + (T1*x + (x *(r+y)+y))
+ *
+ *      4. For x in [0.67434,pi/4],  let y = pi/4 - x, then
+ *              tan(x) = tan(pi/4-y) = (1-tan(y))/(1+tan(y))
+ *                     = 1 - 2*(tan(y) - (tan(y)^2)/(1+tan(y)))
+ */
+double __kernel_tan(double x, double y, int iy) {
+  static const double xxx[] = {
+      3.33333333333334091986e-01,             /* 3FD55555, 55555563 */
+      1.33333333333201242699e-01,             /* 3FC11111, 1110FE7A */
+      5.39682539762260521377e-02,             /* 3FABA1BA, 1BB341FE */
+      2.18694882948595424599e-02,             /* 3F9664F4, 8406D637 */
+      8.86323982359930005737e-03,             /* 3F8226E3, E96E8493 */
+      3.59207910759131235356e-03,             /* 3F6D6D22, C9560328 */
+      1.45620945432529025516e-03,             /* 3F57DBC8, FEE08315 */
+      5.88041240820264096874e-04,             /* 3F4344D8, F2F26501 */
+      2.46463134818469906812e-04,             /* 3F3026F7, 1A8D1068 */
+      7.81794442939557092300e-05,             /* 3F147E88, A03792A6 */
+      7.14072491382608190305e-05,             /* 3F12B80F, 32F0A7E9 */
+      -1.85586374855275456654e-05,            /* BEF375CB, DB605373 */
+      2.59073051863633712884e-05,             /* 3EFB2A70, 74BF7AD4 */
+      /* one */ 1.00000000000000000000e+00,   /* 3FF00000, 00000000 */
+      /* pio4 */ 7.85398163397448278999e-01,  /* 3FE921FB, 54442D18 */
+      /* pio4lo */ 3.06161699786838301793e-17 /* 3C81A626, 33145C07 */
+  };
+#define one xxx[13]
+#define pio4 xxx[14]
+#define pio4lo xxx[15]
+#define T xxx
+
+  double z, r, v, w, s;
+  int32_t ix, hx;
+
+  GET_HIGH_WORD(hx, x);             /* high word of x */
+  ix = hx & 0x7fffffff;             /* high word of |x| */
+  if (ix < 0x3e300000) {            /* x < 2**-28 */
+    if (static_cast<int>(x) == 0) { /* generate inexact */
+      uint32_t low;
+      GET_LOW_WORD(low, x);
+      if (((ix | low) | (iy + 1)) == 0) {
+        return one / fabs(x);
+      } else {
+        if (iy == 1) {
+          return x;
+        } else { /* compute -1 / (x+y) carefully */
+          double a, t;
+
+          z = w = x + y;
+          SET_LOW_WORD(z, 0);
+          v = y - (z - x);
+          t = a = -one / w;
+          SET_LOW_WORD(t, 0);
+          s = one + t * z;
+          return t + a * (s + t * v);
+        }
+      }
+    }
+  }
+  if (ix >= 0x3FE59428) { /* |x| >= 0.6744 */
+    if (hx < 0) {
+      x = -x;
+      y = -y;
+    }
+    z = pio4 - x;
+    w = pio4lo - y;
+    x = z + w;
+    y = 0.0;
+  }
+  z = x * x;
+  w = z * z;
+  /*
+   * Break x^5*(T[1]+x^2*T[2]+...) into
+   * x^5(T[1]+x^4*T[3]+...+x^20*T[11]) +
+   * x^5(x^2*(T[2]+x^4*T[4]+...+x^22*[T12]))
+   */
+  r = T[1] + w * (T[3] + w * (T[5] + w * (T[7] + w * (T[9] + w * T[11]))));
+  v = z *
+      (T[2] + w * (T[4] + w * (T[6] + w * (T[8] + w * (T[10] + w * T[12])))));
+  s = z * x;
+  r = y + z * (s * (r + v) + y);
+  r += T[0] * s;
+  w = x + r;
+  if (ix >= 0x3FE59428) {
+    v = iy;
+    return (1 - ((hx >> 30) & 2)) * (v - 2.0 * (x - (w * w / (w + v) - r)));
+  }
+  if (iy == 1) {
+    return w;
+  } else {
+    /*
+     * if allow error up to 2 ulp, simply return
+     * -1.0 / (x+r) here
+     */
+    /* compute -1.0 / (x+r) accurately */
+    double a, t;
+    z = w;
+    SET_LOW_WORD(z, 0);
+    v = r - (z - x);  /* z+v = r+x */
+    t = a = -1.0 / w; /* a = -1.0/w */
+    SET_LOW_WORD(t, 0);
+    s = 1.0 + t * z;
+    return t + a * (s + t * v);
+  }
+
+#undef one
+#undef pio4
+#undef pio4lo
+#undef T
+}
+
+}  // namespace
+
+/* atan(x)
+ * Method
+ *   1. Reduce x to positive by atan(x) = -atan(-x).
+ *   2. According to the integer k=4t+0.25 chopped, t=x, the argument
+ *      is further reduced to one of the following intervals and the
+ *      arctangent of t is evaluated by the corresponding formula:
+ *
+ *      [0,7/16]      atan(x) = t-t^3*(a1+t^2*(a2+...(a10+t^2*a11)...)
+ *      [7/16,11/16]  atan(x) = atan(1/2) + atan( (t-0.5)/(1+t/2) )
+ *      [11/16.19/16] atan(x) = atan( 1 ) + atan( (t-1)/(1+t) )
+ *      [19/16,39/16] atan(x) = atan(3/2) + atan( (t-1.5)/(1+1.5t) )
+ *      [39/16,INF]   atan(x) = atan(INF) + atan( -1/t )
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+double atan(double x) {
+  static const double atanhi[] = {
+      4.63647609000806093515e-01, /* atan(0.5)hi 0x3FDDAC67, 0x0561BB4F */
+      7.85398163397448278999e-01, /* atan(1.0)hi 0x3FE921FB, 0x54442D18 */
+      9.82793723247329054082e-01, /* atan(1.5)hi 0x3FEF730B, 0xD281F69B */
+      1.57079632679489655800e+00, /* atan(inf)hi 0x3FF921FB, 0x54442D18 */
+  };
+
+  static const double atanlo[] = {
+      2.26987774529616870924e-17, /* atan(0.5)lo 0x3C7A2B7F, 0x222F65E2 */
+      3.06161699786838301793e-17, /* atan(1.0)lo 0x3C81A626, 0x33145C07 */
+      1.39033110312309984516e-17, /* atan(1.5)lo 0x3C700788, 0x7AF0CBBD */
+      6.12323399573676603587e-17, /* atan(inf)lo 0x3C91A626, 0x33145C07 */
+  };
+
+  static const double aT[] = {
+      3.33333333333329318027e-01,  /* 0x3FD55555, 0x5555550D */
+      -1.99999999998764832476e-01, /* 0xBFC99999, 0x9998EBC4 */
+      1.42857142725034663711e-01,  /* 0x3FC24924, 0x920083FF */
+      -1.11111104054623557880e-01, /* 0xBFBC71C6, 0xFE231671 */
+      9.09088713343650656196e-02,  /* 0x3FB745CD, 0xC54C206E */
+      -7.69187620504482999495e-02, /* 0xBFB3B0F2, 0xAF749A6D */
+      6.66107313738753120669e-02,  /* 0x3FB10D66, 0xA0D03D51 */
+      -5.83357013379057348645e-02, /* 0xBFADDE2D, 0x52DEFD9A */
+      4.97687799461593236017e-02,  /* 0x3FA97B4B, 0x24760DEB */
+      -3.65315727442169155270e-02, /* 0xBFA2B444, 0x2C6A6C2F */
+      1.62858201153657823623e-02,  /* 0x3F90AD3A, 0xE322DA11 */
+  };
+
+  static const double one = 1.0, huge = 1.0e300;
+
+  double w, s1, s2, z;
+  int32_t ix, hx, id;
+
+  GET_HIGH_WORD(hx, x);
+  ix = hx & 0x7fffffff;
+  if (ix >= 0x44100000) { /* if |x| >= 2^66 */
+    uint32_t low;
+    GET_LOW_WORD(low, x);
+    if (ix > 0x7ff00000 || (ix == 0x7ff00000 && (low != 0)))
+      return x + x; /* NaN */
+    if (hx > 0)
+      return atanhi[3] + *(volatile double *)&atanlo[3];
+    else
+      return -atanhi[3] - *(volatile double *)&atanlo[3];
+  }
+  if (ix < 0x3fdc0000) {            /* |x| < 0.4375 */
+    if (ix < 0x3e400000) {          /* |x| < 2^-27 */
+      if (huge + x > one) return x; /* raise inexact */
+    }
+    id = -1;
+  } else {
+    x = fabs(x);
+    if (ix < 0x3ff30000) {   /* |x| < 1.1875 */
+      if (ix < 0x3fe60000) { /* 7/16 <=|x|<11/16 */
+        id = 0;
+        x = (2.0 * x - one) / (2.0 + x);
+      } else { /* 11/16<=|x|< 19/16 */
+        id = 1;
+        x = (x - one) / (x + one);
+      }
+    } else {
+      if (ix < 0x40038000) { /* |x| < 2.4375 */
+        id = 2;
+        x = (x - 1.5) / (one + 1.5 * x);
+      } else { /* 2.4375 <= |x| < 2^66 */
+        id = 3;
+        x = -1.0 / x;
+      }
+    }
+  }
+  /* end of argument reduction */
+  z = x * x;
+  w = z * z;
+  /* break sum from i=0 to 10 aT[i]z**(i+1) into odd and even poly */
+  s1 = z * (aT[0] +
+            w * (aT[2] + w * (aT[4] + w * (aT[6] + w * (aT[8] + w * aT[10])))));
+  s2 = w * (aT[1] + w * (aT[3] + w * (aT[5] + w * (aT[7] + w * aT[9]))));
+  if (id < 0) {
+    return x - x * (s1 + s2);
+  } else {
+    z = atanhi[id] - ((x * (s1 + s2) - atanlo[id]) - x);
+    return (hx < 0) ? -z : z;
+  }
+}
+
+/* atan2(y,x)
+ * Method :
+ *  1. Reduce y to positive by atan2(y,x)=-atan2(-y,x).
+ *  2. Reduce x to positive by (if x and y are unexceptional):
+ *    ARG (x+iy) = arctan(y/x)       ... if x > 0,
+ *    ARG (x+iy) = pi - arctan[y/(-x)]   ... if x < 0,
+ *
+ * Special cases:
+ *
+ *  ATAN2((anything), NaN ) is NaN;
+ *  ATAN2(NAN , (anything) ) is NaN;
+ *  ATAN2(+-0, +(anything but NaN)) is +-0  ;
+ *  ATAN2(+-0, -(anything but NaN)) is +-pi ;
+ *  ATAN2(+-(anything but 0 and NaN), 0) is +-pi/2;
+ *  ATAN2(+-(anything but INF and NaN), +INF) is +-0 ;
+ *  ATAN2(+-(anything but INF and NaN), -INF) is +-pi;
+ *  ATAN2(+-INF,+INF ) is +-pi/4 ;
+ *  ATAN2(+-INF,-INF ) is +-3pi/4;
+ *  ATAN2(+-INF, (anything but,0,NaN, and INF)) is +-pi/2;
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+double atan2(double y, double x) {
+  static volatile double tiny = 1.0e-300;
+  static const double
+      zero = 0.0,
+      pi_o_4 = 7.8539816339744827900E-01, /* 0x3FE921FB, 0x54442D18 */
+      pi_o_2 = 1.5707963267948965580E+00, /* 0x3FF921FB, 0x54442D18 */
+      pi = 3.1415926535897931160E+00;     /* 0x400921FB, 0x54442D18 */
+  static volatile double pi_lo =
+      1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
+
+  double z;
+  int32_t k, m, hx, hy, ix, iy;
+  uint32_t lx, ly;
+
+  EXTRACT_WORDS(hx, lx, x);
+  ix = hx & 0x7fffffff;
+  EXTRACT_WORDS(hy, ly, y);
+  iy = hy & 0x7fffffff;
+  if (((ix | ((lx | -static_cast<int32_t>(lx)) >> 31)) > 0x7ff00000) ||
+      ((iy | ((ly | -static_cast<int32_t>(ly)) >> 31)) > 0x7ff00000)) {
+    return x + y; /* x or y is NaN */
+  }
+  if (((hx - 0x3ff00000) | lx) == 0) return atan(y); /* x=1.0 */
+  m = ((hy >> 31) & 1) | ((hx >> 30) & 2);           /* 2*sign(x)+sign(y) */
+
+  /* when y = 0 */
+  if ((iy | ly) == 0) {
+    switch (m) {
+      case 0:
+      case 1:
+        return y; /* atan(+-0,+anything)=+-0 */
+      case 2:
+        return pi + tiny; /* atan(+0,-anything) = pi */
+      case 3:
+        return -pi - tiny; /* atan(-0,-anything) =-pi */
+    }
+  }
+  /* when x = 0 */
+  if ((ix | lx) == 0) return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny;
+
+  /* when x is INF */
+  if (ix == 0x7ff00000) {
+    if (iy == 0x7ff00000) {
+      switch (m) {
+        case 0:
+          return pi_o_4 + tiny; /* atan(+INF,+INF) */
+        case 1:
+          return -pi_o_4 - tiny; /* atan(-INF,+INF) */
+        case 2:
+          return 3.0 * pi_o_4 + tiny; /*atan(+INF,-INF)*/
+        case 3:
+          return -3.0 * pi_o_4 - tiny; /*atan(-INF,-INF)*/
+      }
+    } else {
+      switch (m) {
+        case 0:
+          return zero; /* atan(+...,+INF) */
+        case 1:
+          return -zero; /* atan(-...,+INF) */
+        case 2:
+          return pi + tiny; /* atan(+...,-INF) */
+        case 3:
+          return -pi - tiny; /* atan(-...,-INF) */
+      }
+    }
+  }
+  /* when y is INF */
+  if (iy == 0x7ff00000) return (hy < 0) ? -pi_o_2 - tiny : pi_o_2 + tiny;
+
+  /* compute y/x */
+  k = (iy - ix) >> 20;
+  if (k > 60) { /* |y/x| >  2**60 */
+    z = pi_o_2 + 0.5 * pi_lo;
+    m &= 1;
+  } else if (hx < 0 && k < -60) {
+    z = 0.0; /* 0 > |y|/x > -2**-60 */
+  } else {
+    z = atan(fabs(y / x)); /* safe to do y/x */
+  }
+  switch (m) {
+    case 0:
+      return z; /* atan(+,+) */
+    case 1:
+      return -z; /* atan(-,+) */
+    case 2:
+      return pi - (z - pi_lo); /* atan(+,-) */
+    default:                   /* case 3 */
+      return (z - pi_lo) - pi; /* atan(-,-) */
+  }
+}
+
+/* cos(x)
+ * Return cosine function of x.
+ *
+ * kernel function:
+ *      __kernel_sin            ... sine function on [-pi/4,pi/4]
+ *      __kernel_cos            ... cosine function on [-pi/4,pi/4]
+ *      __ieee754_rem_pio2      ... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *      in [-pi/4 , +pi/4], and let n = k mod 4.
+ *      We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *          0          S           C             T
+ *          1          C          -S            -1/T
+ *          2         -S          -C             T
+ *          3         -C           S            -1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *      TRIG(x) returns trig(x) nearly rounded
+ */
+double cos(double x) {
+  double y[2], z = 0.0;
+  int32_t n, ix;
+
+  /* High word of x. */
+  GET_HIGH_WORD(ix, x);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffff;
+  if (ix <= 0x3fe921fb) {
+    return __kernel_cos(x, z);
+  } else if (ix >= 0x7ff00000) {
+    /* cos(Inf or NaN) is NaN */
+    return x - x;
+  } else {
+    /* argument reduction needed */
+    n = __ieee754_rem_pio2(x, y);
+    switch (n & 3) {
+      case 0:
+        return __kernel_cos(y[0], y[1]);
+      case 1:
+        return -__kernel_sin(y[0], y[1], 1);
+      case 2:
+        return -__kernel_cos(y[0], y[1]);
+      default:
+        return __kernel_sin(y[0], y[1], 1);
+    }
+  }
+}
+
+/* exp(x)
+ * Returns the exponential of x.
+ *
+ * Method
+ *   1. Argument reduction:
+ *      Reduce x to an r so that |r| <= 0.5*ln2 ~ 0.34658.
+ *      Given x, find r and integer k such that
+ *
+ *               x = k*ln2 + r,  |r| <= 0.5*ln2.
+ *
+ *      Here r will be represented as r = hi-lo for better
+ *      accuracy.
+ *
+ *   2. Approximation of exp(r) by a special rational function on
+ *      the interval [0,0.34658]:
+ *      Write
+ *          R(r**2) = r*(exp(r)+1)/(exp(r)-1) = 2 + r*r/6 - r**4/360 + ...
+ *      We use a special Remes algorithm on [0,0.34658] to generate
+ *      a polynomial of degree 5 to approximate R. The maximum error
+ *      of this polynomial approximation is bounded by 2**-59. In
+ *      other words,
+ *          R(z) ~ 2.0 + P1*z + P2*z**2 + P3*z**3 + P4*z**4 + P5*z**5
+ *      (where z=r*r, and the values of P1 to P5 are listed below)
+ *      and
+ *          |                  5          |     -59
+ *          | 2.0+P1*z+...+P5*z   -  R(z) | <= 2
+ *          |                             |
+ *      The computation of exp(r) thus becomes
+ *                             2*r
+ *              exp(r) = 1 + -------
+ *                            R - r
+ *                                 r*R1(r)
+ *                     = 1 + r + ----------- (for better accuracy)
+ *                                2 - R1(r)
+ *      where
+ *                               2       4             10
+ *              R1(r) = r - (P1*r  + P2*r  + ... + P5*r   ).
+ *
+ *   3. Scale back to obtain exp(x):
+ *      From step 1, we have
+ *         exp(x) = 2^k * exp(r)
+ *
+ * Special cases:
+ *      exp(INF) is INF, exp(NaN) is NaN;
+ *      exp(-INF) is 0, and
+ *      for finite argument, only exp(0)=1 is exact.
+ *
+ * Accuracy:
+ *      according to an error analysis, the error is always less than
+ *      1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ *      For IEEE double
+ *          if x >  7.09782712893383973096e+02 then exp(x) overflow
+ *          if x < -7.45133219101941108420e+02 then exp(x) underflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+double exp(double x) {
+  static const double
+      one = 1.0,
+      halF[2] = {0.5, -0.5},
+      o_threshold = 7.09782712893383973096e+02,  /* 0x40862E42, 0xFEFA39EF */
+      u_threshold = -7.45133219101941108420e+02, /* 0xc0874910, 0xD52D3051 */
+      ln2HI[2] = {6.93147180369123816490e-01,    /* 0x3fe62e42, 0xfee00000 */
+                  -6.93147180369123816490e-01},  /* 0xbfe62e42, 0xfee00000 */
+      ln2LO[2] = {1.90821492927058770002e-10,    /* 0x3dea39ef, 0x35793c76 */
+                  -1.90821492927058770002e-10},  /* 0xbdea39ef, 0x35793c76 */
+      invln2 = 1.44269504088896338700e+00,       /* 0x3ff71547, 0x652b82fe */
+      P1 = 1.66666666666666019037e-01,           /* 0x3FC55555, 0x5555553E */
+      P2 = -2.77777777770155933842e-03,          /* 0xBF66C16C, 0x16BEBD93 */
+      P3 = 6.61375632143793436117e-05,           /* 0x3F11566A, 0xAF25DE2C */
+      P4 = -1.65339022054652515390e-06,          /* 0xBEBBBD41, 0xC5D26BF1 */
+      P5 = 4.13813679705723846039e-08,           /* 0x3E663769, 0x72BEA4D0 */
+      E = 2.718281828459045;                     /* 0x4005bf0a, 0x8b145769 */
+
+  static volatile double
+      huge = 1.0e+300,
+      twom1000 = 9.33263618503218878990e-302, /* 2**-1000=0x01700000,0*/
+      two1023 = 8.988465674311579539e307;     /* 0x1p1023 */
+
+  double y, hi = 0.0, lo = 0.0, c, t, twopk;
+  int32_t k = 0, xsb;
+  uint32_t hx;
+
+  GET_HIGH_WORD(hx, x);
+  xsb = (hx >> 31) & 1; /* sign bit of x */
+  hx &= 0x7fffffff;     /* high word of |x| */
+
+  /* filter out non-finite argument */
+  if (hx >= 0x40862E42) { /* if |x|>=709.78... */
+    if (hx >= 0x7ff00000) {
+      uint32_t lx;
+      GET_LOW_WORD(lx, x);
+      if (((hx & 0xfffff) | lx) != 0)
+        return x + x; /* NaN */
+      else
+        return (xsb == 0) ? x : 0.0; /* exp(+-inf)={inf,0} */
+    }
+    if (x > o_threshold) return huge * huge;         /* overflow */
+    if (x < u_threshold) return twom1000 * twom1000; /* underflow */
+  }
+
+  /* argument reduction */
+  if (hx > 0x3fd62e42) {   /* if  |x| > 0.5 ln2 */
+    if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
+      /* TODO(rtoy): We special case exp(1) here to return the correct
+       * value of E, as the computation below would get the last bit
+       * wrong. We should probably fix the algorithm instead.
+       */
+      if (x == 1.0) return E;
+      hi = x - ln2HI[xsb];
+      lo = ln2LO[xsb];
+      k = 1 - xsb - xsb;
+    } else {
+      k = static_cast<int>(invln2 * x + halF[xsb]);
+      t = k;
+      hi = x - t * ln2HI[0]; /* t*ln2HI is exact here */
+      lo = t * ln2LO[0];
+    }
+    STRICT_ASSIGN(double, x, hi - lo);
+  } else if (hx < 0x3e300000) {         /* when |x|<2**-28 */
+    if (huge + x > one) return one + x; /* trigger inexact */
+  } else {
+    k = 0;
+  }
+
+  /* x is now in primary range */
+  t = x * x;
+  if (k >= -1021) {
+    INSERT_WORDS(twopk, 0x3ff00000 + (k << 20), 0);
+  } else {
+    INSERT_WORDS(twopk, 0x3ff00000 + ((k + 1000) << 20), 0);
+  }
+  c = x - t * (P1 + t * (P2 + t * (P3 + t * (P4 + t * P5))));
+  if (k == 0) {
+    return one - ((x * c) / (c - 2.0) - x);
+  } else {
+    y = one - ((lo - (x * c) / (2.0 - c)) - hi);
+  }
+  if (k >= -1021) {
+    if (k == 1024) return y * 2.0 * two1023;
+    return y * twopk;
+  } else {
+    return y * twopk * twom1000;
+  }
+}
+
+/*
+ * Method :
+ *    1.Reduced x to positive by atanh(-x) = -atanh(x)
+ *    2.For x>=0.5
+ *              1              2x                          x
+ *  atanh(x) = --- * log(1 + -------) = 0.5 * log1p(2 * --------)
+ *              2             1 - x                      1 - x
+ *
+ *   For x<0.5
+ *  atanh(x) = 0.5*log1p(2x+2x*x/(1-x))
+ *
+ * Special cases:
+ *  atanh(x) is NaN if |x| > 1 with signal;
+ *  atanh(NaN) is that NaN with no signal;
+ *  atanh(+-1) is +-INF with signal.
+ *
+ */
+double atanh(double x) {
+  static const double one = 1.0, huge = 1e300;
+  static const double zero = 0.0;
+
+  double t;
+  int32_t hx, ix;
+  uint32_t lx;
+  EXTRACT_WORDS(hx, lx, x);
+  ix = hx & 0x7fffffff;
+  if ((ix | ((lx | -static_cast<int32_t>(lx)) >> 31)) > 0x3ff00000) /* |x|>1 */
+    return (x - x) / (x - x);
+  if (ix == 0x3ff00000) return x / zero;
+  if (ix < 0x3e300000 && (huge + x) > zero) return x; /* x<2**-28 */
+  SET_HIGH_WORD(x, ix);
+  if (ix < 0x3fe00000) { /* x < 0.5 */
+    t = x + x;
+    t = 0.5 * log1p(t + t * x / (one - x));
+  } else {
+    t = 0.5 * log1p((x + x) / (one - x));
+  }
+  if (hx >= 0)
+    return t;
+  else
+    return -t;
+}
+
+/* log(x)
+ * Return the logrithm of x
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *     x = 2^k * (1+f),
+ *     where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *   2. Approximation of log(1+f).
+ *  Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *     = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *         = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *  a polynomial of degree 14 to approximate R The maximum error
+ *  of this polynomial approximation is bounded by 2**-58.45. In
+ *  other words,
+ *            2      4      6      8      10      12      14
+ *      R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s  +Lg6*s  +Lg7*s
+ *    (the values of Lg1 to Lg7 are listed in the program)
+ *  and
+ *      |      2          14          |     -58.45
+ *      | Lg1*s +...+Lg7*s    -  R(z) | <= 2
+ *      |                             |
+ *  Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *  In order to guarantee error in log below 1ulp, we compute log
+ *  by
+ *    log(1+f) = f - s*(f - R)  (if f is not too large)
+ *    log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
+ *
+ *  3. Finally,  log(x) = k*ln2 + log(1+f).
+ *          = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ *     Here ln2 is split into two floating point number:
+ *      ln2_hi + ln2_lo,
+ *     where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ *  log(x) is NaN with signal if x < 0 (including -INF) ;
+ *  log(+INF) is +INF; log(0) is -INF with signal;
+ *  log(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ *  according to an error analysis, the error is always less than
+ *  1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+double log(double x) {
+  static const double                      /* -- */
+      ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
+      ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
+      two54 = 1.80143985094819840000e+16,  /* 43500000 00000000 */
+      Lg1 = 6.666666666666735130e-01,      /* 3FE55555 55555593 */
+      Lg2 = 3.999999999940941908e-01,      /* 3FD99999 9997FA04 */
+      Lg3 = 2.857142874366239149e-01,      /* 3FD24924 94229359 */
+      Lg4 = 2.222219843214978396e-01,      /* 3FCC71C5 1D8E78AF */
+      Lg5 = 1.818357216161805012e-01,      /* 3FC74664 96CB03DE */
+      Lg6 = 1.531383769920937332e-01,      /* 3FC39A09 D078C69F */
+      Lg7 = 1.479819860511658591e-01;      /* 3FC2F112 DF3E5244 */
+
+  static const double zero = 0.0;
+  static volatile double vzero = 0.0;
+
+  double hfsq, f, s, z, R, w, t1, t2, dk;
+  int32_t k, hx, i, j;
+  uint32_t lx;
+
+  EXTRACT_WORDS(hx, lx, x);
+
+  k = 0;
+  if (hx < 0x00100000) { /* x < 2**-1022  */
+    if (((hx & 0x7fffffff) | lx) == 0)
+      return -two54 / vzero;           /* log(+-0)=-inf */
+    if (hx < 0) return (x - x) / zero; /* log(-#) = NaN */
+    k -= 54;
+    x *= two54; /* subnormal number, scale up x */
+    GET_HIGH_WORD(hx, x);
+  }
+  if (hx >= 0x7ff00000) return x + x;
+  k += (hx >> 20) - 1023;
+  hx &= 0x000fffff;
+  i = (hx + 0x95f64) & 0x100000;
+  SET_HIGH_WORD(x, hx | (i ^ 0x3ff00000)); /* normalize x or x/2 */
+  k += (i >> 20);
+  f = x - 1.0;
+  if ((0x000fffff & (2 + hx)) < 3) { /* -2**-20 <= f < 2**-20 */
+    if (f == zero) {
+      if (k == 0) {
+        return zero;
+      } else {
+        dk = static_cast<double>(k);
+        return dk * ln2_hi + dk * ln2_lo;
+      }
+    }
+    R = f * f * (0.5 - 0.33333333333333333 * f);
+    if (k == 0) {
+      return f - R;
+    } else {
+      dk = static_cast<double>(k);
+      return dk * ln2_hi - ((R - dk * ln2_lo) - f);
+    }
+  }
+  s = f / (2.0 + f);
+  dk = static_cast<double>(k);
+  z = s * s;
+  i = hx - 0x6147a;
+  w = z * z;
+  j = 0x6b851 - hx;
+  t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  i |= j;
+  R = t2 + t1;
+  if (i > 0) {
+    hfsq = 0.5 * f * f;
+    if (k == 0)
+      return f - (hfsq - s * (hfsq + R));
+    else
+      return dk * ln2_hi - ((hfsq - (s * (hfsq + R) + dk * ln2_lo)) - f);
+  } else {
+    if (k == 0)
+      return f - s * (f - R);
+    else
+      return dk * ln2_hi - ((s * (f - R) - dk * ln2_lo) - f);
+  }
+}
+
+/* double log1p(double x)
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *      1+x = 2^k * (1+f),
+ *     where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *      Note. If k=0, then f=x is exact. However, if k!=0, then f
+ *  may not be representable exactly. In that case, a correction
+ *  term is need. Let u=1+x rounded. Let c = (1+x)-u, then
+ *  log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u),
+ *  and add back the correction term c/u.
+ *  (Note: when x > 2**53, one can simply return log(x))
+ *
+ *   2. Approximation of log1p(f).
+ *  Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *     = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *         = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *  a polynomial of degree 14 to approximate R The maximum error
+ *  of this polynomial approximation is bounded by 2**-58.45. In
+ *  other words,
+ *            2      4      6      8      10      12      14
+ *      R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s  +Lp6*s  +Lp7*s
+ *    (the values of Lp1 to Lp7 are listed in the program)
+ *  and
+ *      |      2          14          |     -58.45
+ *      | Lp1*s +...+Lp7*s    -  R(z) | <= 2
+ *      |                             |
+ *  Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *  In order to guarantee error in log below 1ulp, we compute log
+ *  by
+ *    log1p(f) = f - (hfsq - s*(hfsq+R)).
+ *
+ *  3. Finally, log1p(x) = k*ln2 + log1p(f).
+ *           = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ *     Here ln2 is split into two floating point number:
+ *      ln2_hi + ln2_lo,
+ *     where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ *  log1p(x) is NaN with signal if x < -1 (including -INF) ;
+ *  log1p(+INF) is +INF; log1p(-1) is -INF with signal;
+ *  log1p(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ *  according to an error analysis, the error is always less than
+ *  1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ *
+ * Note: Assuming log() return accurate answer, the following
+ *   algorithm can be used to compute log1p(x) to within a few ULP:
+ *
+ *    u = 1+x;
+ *    if(u==1.0) return x ; else
+ *         return log(u)*(x/(u-1.0));
+ *
+ *   See HP-15C Advanced Functions Handbook, p.193.
+ */
+double log1p(double x) {
+  static const double                      /* -- */
+      ln2_hi = 6.93147180369123816490e-01, /* 3fe62e42 fee00000 */
+      ln2_lo = 1.90821492927058770002e-10, /* 3dea39ef 35793c76 */
+      two54 = 1.80143985094819840000e+16,  /* 43500000 00000000 */
+      Lp1 = 6.666666666666735130e-01,      /* 3FE55555 55555593 */
+      Lp2 = 3.999999999940941908e-01,      /* 3FD99999 9997FA04 */
+      Lp3 = 2.857142874366239149e-01,      /* 3FD24924 94229359 */
+      Lp4 = 2.222219843214978396e-01,      /* 3FCC71C5 1D8E78AF */
+      Lp5 = 1.818357216161805012e-01,      /* 3FC74664 96CB03DE */
+      Lp6 = 1.531383769920937332e-01,      /* 3FC39A09 D078C69F */
+      Lp7 = 1.479819860511658591e-01;      /* 3FC2F112 DF3E5244 */
+
+  static const double zero = 0.0;
+  static volatile double vzero = 0.0;
+
+  double hfsq, f, c, s, z, R, u;
+  int32_t k, hx, hu, ax;
+
+  GET_HIGH_WORD(hx, x);
+  ax = hx & 0x7fffffff;
+
+  k = 1;
+  if (hx < 0x3FDA827A) {    /* 1+x < sqrt(2)+ */
+    if (ax >= 0x3ff00000) { /* x <= -1.0 */
+      if (x == -1.0)
+        return -two54 / vzero; /* log1p(-1)=+inf */
+      else
+        return (x - x) / (x - x); /* log1p(x<-1)=NaN */
+    }
+    if (ax < 0x3e200000) {    /* |x| < 2**-29 */
+      if (two54 + x > zero    /* raise inexact */
+          && ax < 0x3c900000) /* |x| < 2**-54 */
+        return x;
+      else
+        return x - x * x * 0.5;
+    }
+    if (hx > 0 || hx <= static_cast<int32_t>(0xbfd2bec4)) {
+      k = 0;
+      f = x;
+      hu = 1;
+    } /* sqrt(2)/2- <= 1+x < sqrt(2)+ */
+  }
+  if (hx >= 0x7ff00000) return x + x;
+  if (k != 0) {
+    if (hx < 0x43400000) {
+      STRICT_ASSIGN(double, u, 1.0 + x);
+      GET_HIGH_WORD(hu, u);
+      k = (hu >> 20) - 1023;
+      c = (k > 0) ? 1.0 - (u - x) : x - (u - 1.0); /* correction term */
+      c /= u;
+    } else {
+      u = x;
+      GET_HIGH_WORD(hu, u);
+      k = (hu >> 20) - 1023;
+      c = 0;
+    }
+    hu &= 0x000fffff;
+    /*
+     * The approximation to sqrt(2) used in thresholds is not
+     * critical.  However, the ones used above must give less
+     * strict bounds than the one here so that the k==0 case is
+     * never reached from here, since here we have committed to
+     * using the correction term but don't use it if k==0.
+     */
+    if (hu < 0x6a09e) {                  /* u ~< sqrt(2) */
+      SET_HIGH_WORD(u, hu | 0x3ff00000); /* normalize u */
+    } else {
+      k += 1;
+      SET_HIGH_WORD(u, hu | 0x3fe00000); /* normalize u/2 */
+      hu = (0x00100000 - hu) >> 2;
+    }
+    f = u - 1.0;
+  }
+  hfsq = 0.5 * f * f;
+  if (hu == 0) { /* |f| < 2**-20 */
+    if (f == zero) {
+      if (k == 0) {
+        return zero;
+      } else {
+        c += k * ln2_lo;
+        return k * ln2_hi + c;
+      }
+    }
+    R = hfsq * (1.0 - 0.66666666666666666 * f);
+    if (k == 0)
+      return f - R;
+    else
+      return k * ln2_hi - ((R - (k * ln2_lo + c)) - f);
+  }
+  s = f / (2.0 + f);
+  z = s * s;
+  R = z * (Lp1 +
+           z * (Lp2 + z * (Lp3 + z * (Lp4 + z * (Lp5 + z * (Lp6 + z * Lp7))))));
+  if (k == 0)
+    return f - (hfsq - s * (hfsq + R));
+  else
+    return k * ln2_hi - ((hfsq - (s * (hfsq + R) + (k * ln2_lo + c))) - f);
+}
+
+/*
+ * k_log1p(f):
+ * Return log(1+f) - f for 1+f in ~[sqrt(2)/2, sqrt(2)].
+ *
+ * The following describes the overall strategy for computing
+ * logarithms in base e.  The argument reduction and adding the final
+ * term of the polynomial are done by the caller for increased accuracy
+ * when different bases are used.
+ *
+ * Method :
+ *   1. Argument Reduction: find k and f such that
+ *         x = 2^k * (1+f),
+ *         where  sqrt(2)/2 < 1+f < sqrt(2) .
+ *
+ *   2. Approximation of log(1+f).
+ *      Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
+ *            = 2s + 2/3 s**3 + 2/5 s**5 + .....,
+ *            = 2s + s*R
+ *      We use a special Reme algorithm on [0,0.1716] to generate
+ *      a polynomial of degree 14 to approximate R The maximum error
+ *      of this polynomial approximation is bounded by 2**-58.45. In
+ *      other words,
+ *          2      4      6      8      10      12      14
+ *          R(z) ~ Lg1*s +Lg2*s +Lg3*s +Lg4*s +Lg5*s  +Lg6*s  +Lg7*s
+ *      (the values of Lg1 to Lg7 are listed in the program)
+ *      and
+ *          |      2          14          |     -58.45
+ *          | Lg1*s +...+Lg7*s    -  R(z) | <= 2
+ *          |                             |
+ *      Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
+ *      In order to guarantee error in log below 1ulp, we compute log
+ *      by
+ *          log(1+f) = f - s*(f - R)            (if f is not too large)
+ *          log(1+f) = f - (hfsq - s*(hfsq+R)). (better accuracy)
+ *
+ *   3. Finally,  log(x) = k*ln2 + log(1+f).
+ *          = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
+ *      Here ln2 is split into two floating point number:
+ *          ln2_hi + ln2_lo,
+ *      where n*ln2_hi is always exact for |n| < 2000.
+ *
+ * Special cases:
+ *      log(x) is NaN with signal if x < 0 (including -INF) ;
+ *      log(+INF) is +INF; log(0) is -INF with signal;
+ *      log(NaN) is that NaN with no signal.
+ *
+ * Accuracy:
+ *      according to an error analysis, the error is always less than
+ *      1 ulp (unit in the last place).
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+
+static const double Lg1 = 6.666666666666735130e-01, /* 3FE55555 55555593 */
+    Lg2 = 3.999999999940941908e-01,                 /* 3FD99999 9997FA04 */
+    Lg3 = 2.857142874366239149e-01,                 /* 3FD24924 94229359 */
+    Lg4 = 2.222219843214978396e-01,                 /* 3FCC71C5 1D8E78AF */
+    Lg5 = 1.818357216161805012e-01,                 /* 3FC74664 96CB03DE */
+    Lg6 = 1.531383769920937332e-01,                 /* 3FC39A09 D078C69F */
+    Lg7 = 1.479819860511658591e-01;                 /* 3FC2F112 DF3E5244 */
+
+/*
+ * We always inline k_log1p(), since doing so produces a
+ * substantial performance improvement (~40% on amd64).
+ */
+static inline double k_log1p(double f) {
+  double hfsq, s, z, R, w, t1, t2;
+
+  s = f / (2.0 + f);
+  z = s * s;
+  w = z * z;
+  t1 = w * (Lg2 + w * (Lg4 + w * Lg6));
+  t2 = z * (Lg1 + w * (Lg3 + w * (Lg5 + w * Lg7)));
+  R = t2 + t1;
+  hfsq = 0.5 * f * f;
+  return s * (hfsq + R);
+}
+
+/*
+ * Return the base 2 logarithm of x.  See e_log.c and k_log.h for most
+ * comments.
+ *
+ * This reduces x to {k, 1+f} exactly as in e_log.c, then calls the kernel,
+ * then does the combining and scaling steps
+ *    log2(x) = (f - 0.5*f*f + k_log1p(f)) / ln2 + k
+ * in not-quite-routine extra precision.
+ */
+double log2(double x) {
+  static const double
+      two54 = 1.80143985094819840000e+16,   /* 0x43500000, 0x00000000 */
+      ivln2hi = 1.44269504072144627571e+00, /* 0x3ff71547, 0x65200000 */
+      ivln2lo = 1.67517131648865118353e-10; /* 0x3de705fc, 0x2eefa200 */
+
+  static const double zero = 0.0;
+  static volatile double vzero = 0.0;
+
+  double f, hfsq, hi, lo, r, val_hi, val_lo, w, y;
+  int32_t i, k, hx;
+  uint32_t lx;
+
+  EXTRACT_WORDS(hx, lx, x);
+
+  k = 0;
+  if (hx < 0x00100000) { /* x < 2**-1022  */
+    if (((hx & 0x7fffffff) | lx) == 0)
+      return -two54 / vzero;           /* log(+-0)=-inf */
+    if (hx < 0) return (x - x) / zero; /* log(-#) = NaN */
+    k -= 54;
+    x *= two54; /* subnormal number, scale up x */
+    GET_HIGH_WORD(hx, x);
+  }
+  if (hx >= 0x7ff00000) return x + x;
+  if (hx == 0x3ff00000 && lx == 0) return zero; /* log(1) = +0 */
+  k += (hx >> 20) - 1023;
+  hx &= 0x000fffff;
+  i = (hx + 0x95f64) & 0x100000;
+  SET_HIGH_WORD(x, hx | (i ^ 0x3ff00000)); /* normalize x or x/2 */
+  k += (i >> 20);
+  y = static_cast<double>(k);
+  f = x - 1.0;
+  hfsq = 0.5 * f * f;
+  r = k_log1p(f);
+
+  /*
+   * f-hfsq must (for args near 1) be evaluated in extra precision
+   * to avoid a large cancellation when x is near sqrt(2) or 1/sqrt(2).
+   * This is fairly efficient since f-hfsq only depends on f, so can
+   * be evaluated in parallel with R.  Not combining hfsq with R also
+   * keeps R small (though not as small as a true `lo' term would be),
+   * so that extra precision is not needed for terms involving R.
+   *
+   * Compiler bugs involving extra precision used to break Dekker's
+   * theorem for spitting f-hfsq as hi+lo, unless double_t was used
+   * or the multi-precision calculations were avoided when double_t
+   * has extra precision.  These problems are now automatically
+   * avoided as a side effect of the optimization of combining the
+   * Dekker splitting step with the clear-low-bits step.
+   *
+   * y must (for args near sqrt(2) and 1/sqrt(2)) be added in extra
+   * precision to avoid a very large cancellation when x is very near
+   * these values.  Unlike the above cancellations, this problem is
+   * specific to base 2.  It is strange that adding +-1 is so much
+   * harder than adding +-ln2 or +-log10_2.
+   *
+   * This uses Dekker's theorem to normalize y+val_hi, so the
+   * compiler bugs are back in some configurations, sigh.  And I
+   * don't want to used double_t to avoid them, since that gives a
+   * pessimization and the support for avoiding the pessimization
+   * is not yet available.
+   *
+   * The multi-precision calculations for the multiplications are
+   * routine.
+   */
+  hi = f - hfsq;
+  SET_LOW_WORD(hi, 0);
+  lo = (f - hi) - hfsq + r;
+  val_hi = hi * ivln2hi;
+  val_lo = (lo + hi) * ivln2lo + lo * ivln2hi;
+
+  /* spadd(val_hi, val_lo, y), except for not using double_t: */
+  w = y + val_hi;
+  val_lo += (y - w) + val_hi;
+  val_hi = w;
+
+  return val_lo + val_hi;
+}
+
+/*
+ * Return the base 10 logarithm of x
+ *
+ * Method :
+ *      Let log10_2hi = leading 40 bits of log10(2) and
+ *          log10_2lo = log10(2) - log10_2hi,
+ *          ivln10   = 1/log(10) rounded.
+ *      Then
+ *              n = ilogb(x),
+ *              if(n<0)  n = n+1;
+ *              x = scalbn(x,-n);
+ *              log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x))
+ *
+ *  Note 1:
+ *     To guarantee log10(10**n)=n, where 10**n is normal, the rounding
+ *     mode must set to Round-to-Nearest.
+ *  Note 2:
+ *      [1/log(10)] rounded to 53 bits has error .198 ulps;
+ *      log10 is monotonic at all binary break points.
+ *
+ *  Special cases:
+ *      log10(x) is NaN if x < 0;
+ *      log10(+INF) is +INF; log10(0) is -INF;
+ *      log10(NaN) is that NaN;
+ *      log10(10**N) = N  for N=0,1,...,22.
+ */
+double log10(double x) {
+  static const double
+      two54 = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
+      ivln10 = 4.34294481903251816668e-01,
+      log10_2hi = 3.01029995663611771306e-01, /* 0x3FD34413, 0x509F6000 */
+      log10_2lo = 3.69423907715893078616e-13; /* 0x3D59FEF3, 0x11F12B36 */
+
+  static const double zero = 0.0;
+  static volatile double vzero = 0.0;
+
+  double y;
+  int32_t i, k, hx;
+  uint32_t lx;
+
+  EXTRACT_WORDS(hx, lx, x);
+
+  k = 0;
+  if (hx < 0x00100000) { /* x < 2**-1022  */
+    if (((hx & 0x7fffffff) | lx) == 0)
+      return -two54 / vzero;           /* log(+-0)=-inf */
+    if (hx < 0) return (x - x) / zero; /* log(-#) = NaN */
+    k -= 54;
+    x *= two54; /* subnormal number, scale up x */
+    GET_HIGH_WORD(hx, x);
+    GET_LOW_WORD(lx, x);
+  }
+  if (hx >= 0x7ff00000) return x + x;
+  if (hx == 0x3ff00000 && lx == 0) return zero; /* log(1) = +0 */
+  k += (hx >> 20) - 1023;
+
+  i = (k & 0x80000000) >> 31;
+  hx = (hx & 0x000fffff) | ((0x3ff - i) << 20);
+  y = k + i;
+  SET_HIGH_WORD(x, hx);
+  SET_LOW_WORD(x, lx);
+
+  double z = y * log10_2lo + ivln10 * log(x);
+  return z + y * log10_2hi;
+}
+
+/* expm1(x)
+ * Returns exp(x)-1, the exponential of x minus 1.
+ *
+ * Method
+ *   1. Argument reduction:
+ *  Given x, find r and integer k such that
+ *
+ *               x = k*ln2 + r,  |r| <= 0.5*ln2 ~ 0.34658
+ *
+ *      Here a correction term c will be computed to compensate
+ *  the error in r when rounded to a floating-point number.
+ *
+ *   2. Approximating expm1(r) by a special rational function on
+ *  the interval [0,0.34658]:
+ *  Since
+ *      r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ...
+ *  we define R1(r*r) by
+ *      r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r)
+ *  That is,
+ *      R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
+ *         = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
+ *         = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
+ *      We use a special Reme algorithm on [0,0.347] to generate
+ *   a polynomial of degree 5 in r*r to approximate R1. The
+ *  maximum error of this polynomial approximation is bounded
+ *  by 2**-61. In other words,
+ *      R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
+ *  where   Q1  =  -1.6666666666666567384E-2,
+ *     Q2  =   3.9682539681370365873E-4,
+ *     Q3  =  -9.9206344733435987357E-6,
+ *     Q4  =   2.5051361420808517002E-7,
+ *     Q5  =  -6.2843505682382617102E-9;
+ *    z   =  r*r,
+ *  with error bounded by
+ *      |                  5           |     -61
+ *      | 1.0+Q1*z+...+Q5*z   -  R1(z) | <= 2
+ *      |                              |
+ *
+ *  expm1(r) = exp(r)-1 is then computed by the following
+ *   specific way which minimize the accumulation rounding error:
+ *             2     3
+ *            r     r    [ 3 - (R1 + R1*r/2)  ]
+ *        expm1(r) = r + --- + --- * [--------------------]
+ *                  2     2    [ 6 - r*(3 - R1*r/2) ]
+ *
+ *  To compensate the error in the argument reduction, we use
+ *    expm1(r+c) = expm1(r) + c + expm1(r)*c
+ *         ~ expm1(r) + c + r*c
+ *  Thus c+r*c will be added in as the correction terms for
+ *  expm1(r+c). Now rearrange the term to avoid optimization
+ *   screw up:
+ *            (      2                                    2 )
+ *            ({  ( r    [ R1 -  (3 - R1*r/2) ]  )  }    r  )
+ *   expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
+ *                  ({  ( 2    [ 6 - r*(3 - R1*r/2) ]  )  }    2  )
+ *                      (                                             )
+ *
+ *       = r - E
+ *   3. Scale back to obtain expm1(x):
+ *  From step 1, we have
+ *     expm1(x) = either 2^k*[expm1(r)+1] - 1
+ *        = or     2^k*[expm1(r) + (1-2^-k)]
+ *   4. Implementation notes:
+ *  (A). To save one multiplication, we scale the coefficient Qi
+ *       to Qi*2^i, and replace z by (x^2)/2.
+ *  (B). To achieve maximum accuracy, we compute expm1(x) by
+ *    (i)   if x < -56*ln2, return -1.0, (raise inexact if x!=inf)
+ *    (ii)  if k=0, return r-E
+ *    (iii) if k=-1, return 0.5*(r-E)-0.5
+ *        (iv)  if k=1 if r < -0.25, return 2*((r+0.5)- E)
+ *                  else       return  1.0+2.0*(r-E);
+ *    (v)   if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
+ *    (vi)  if k <= 20, return 2^k((1-2^-k)-(E-r)), else
+ *    (vii) return 2^k(1-((E+2^-k)-r))
+ *
+ * Special cases:
+ *  expm1(INF) is INF, expm1(NaN) is NaN;
+ *  expm1(-INF) is -1, and
+ *  for finite argument, only expm1(0)=0 is exact.
+ *
+ * Accuracy:
+ *  according to an error analysis, the error is always less than
+ *  1 ulp (unit in the last place).
+ *
+ * Misc. info.
+ *  For IEEE double
+ *      if x >  7.09782712893383973096e+02 then expm1(x) overflow
+ *
+ * Constants:
+ * The hexadecimal values are the intended ones for the following
+ * constants. The decimal values may be used, provided that the
+ * compiler will convert from decimal to binary accurately enough
+ * to produce the hexadecimal values shown.
+ */
+double expm1(double x) {
+  static const double
+      one = 1.0,
+      tiny = 1.0e-300,
+      o_threshold = 7.09782712893383973096e+02, /* 0x40862E42, 0xFEFA39EF */
+      ln2_hi = 6.93147180369123816490e-01,      /* 0x3fe62e42, 0xfee00000 */
+      ln2_lo = 1.90821492927058770002e-10,      /* 0x3dea39ef, 0x35793c76 */
+      invln2 = 1.44269504088896338700e+00,      /* 0x3ff71547, 0x652b82fe */
+      /* Scaled Q's: Qn_here = 2**n * Qn_above, for R(2*z) where z = hxs =
+         x*x/2: */
+      Q1 = -3.33333333333331316428e-02, /* BFA11111 111110F4 */
+      Q2 = 1.58730158725481460165e-03,  /* 3F5A01A0 19FE5585 */
+      Q3 = -7.93650757867487942473e-05, /* BF14CE19 9EAADBB7 */
+      Q4 = 4.00821782732936239552e-06,  /* 3ED0CFCA 86E65239 */
+      Q5 = -2.01099218183624371326e-07; /* BE8AFDB7 6E09C32D */
+
+  static volatile double huge = 1.0e+300;
+
+  double y, hi, lo, c, t, e, hxs, hfx, r1, twopk;
+  int32_t k, xsb;
+  uint32_t hx;
+
+  GET_HIGH_WORD(hx, x);
+  xsb = hx & 0x80000000; /* sign bit of x */
+  hx &= 0x7fffffff;      /* high word of |x| */
+
+  /* filter out huge and non-finite argument */
+  if (hx >= 0x4043687A) {   /* if |x|>=56*ln2 */
+    if (hx >= 0x40862E42) { /* if |x|>=709.78... */
+      if (hx >= 0x7ff00000) {
+        uint32_t low;
+        GET_LOW_WORD(low, x);
+        if (((hx & 0xfffff) | low) != 0)
+          return x + x; /* NaN */
+        else
+          return (xsb == 0) ? x : -1.0; /* exp(+-inf)={inf,-1} */
+      }
+      if (x > o_threshold) return huge * huge; /* overflow */
+    }
+    if (xsb != 0) {        /* x < -56*ln2, return -1.0 with inexact */
+      if (x + tiny < 0.0)  /* raise inexact */
+        return tiny - one; /* return -1 */
+    }
+  }
+
+  /* argument reduction */
+  if (hx > 0x3fd62e42) {   /* if  |x| > 0.5 ln2 */
+    if (hx < 0x3FF0A2B2) { /* and |x| < 1.5 ln2 */
+      if (xsb == 0) {
+        hi = x - ln2_hi;
+        lo = ln2_lo;
+        k = 1;
+      } else {
+        hi = x + ln2_hi;
+        lo = -ln2_lo;
+        k = -1;
+      }
+    } else {
+      k = invln2 * x + ((xsb == 0) ? 0.5 : -0.5);
+      t = k;
+      hi = x - t * ln2_hi; /* t*ln2_hi is exact here */
+      lo = t * ln2_lo;
+    }
+    STRICT_ASSIGN(double, x, hi - lo);
+    c = (hi - x) - lo;
+  } else if (hx < 0x3c900000) { /* when |x|<2**-54, return x */
+    t = huge + x;               /* return x with inexact flags when x!=0 */
+    return x - (t - (huge + x));
+  } else {
+    k = 0;
+  }
+
+  /* x is now in primary range */
+  hfx = 0.5 * x;
+  hxs = x * hfx;
+  r1 = one + hxs * (Q1 + hxs * (Q2 + hxs * (Q3 + hxs * (Q4 + hxs * Q5))));
+  t = 3.0 - r1 * hfx;
+  e = hxs * ((r1 - t) / (6.0 - x * t));
+  if (k == 0) {
+    return x - (x * e - hxs); /* c is 0 */
+  } else {
+    INSERT_WORDS(twopk, 0x3ff00000 + (k << 20), 0); /* 2^k */
+    e = (x * (e - c) - c);
+    e -= hxs;
+    if (k == -1) return 0.5 * (x - e) - 0.5;
+    if (k == 1) {
+      if (x < -0.25)
+        return -2.0 * (e - (x + 0.5));
+      else
+        return one + 2.0 * (x - e);
+    }
+    if (k <= -2 || k > 56) { /* suffice to return exp(x)-1 */
+      y = one - (e - x);
+      // TODO(mvstanton): is this replacement for the hex float
+      // sufficient?
+      // if (k == 1024) y = y*2.0*0x1p1023;
+      if (k == 1024)
+        y = y * 2.0 * 8.98846567431158e+307;
+      else
+        y = y * twopk;
+      return y - one;
+    }
+    t = one;
+    if (k < 20) {
+      SET_HIGH_WORD(t, 0x3ff00000 - (0x200000 >> k)); /* t=1-2^-k */
+      y = t - (e - x);
+      y = y * twopk;
+    } else {
+      SET_HIGH_WORD(t, ((0x3ff - k) << 20)); /* 2^-k */
+      y = x - (e + t);
+      y += one;
+      y = y * twopk;
+    }
+  }
+  return y;
+}
+
+double cbrt(double x) {
+  static const uint32_t
+      B1 = 715094163, /* B1 = (1023-1023/3-0.03306235651)*2**20 */
+      B2 = 696219795; /* B2 = (1023-1023/3-54/3-0.03306235651)*2**20 */
+
+  /* |1/cbrt(x) - p(x)| < 2**-23.5 (~[-7.93e-8, 7.929e-8]). */
+  static const double P0 = 1.87595182427177009643, /* 0x3ffe03e6, 0x0f61e692 */
+      P1 = -1.88497979543377169875,                /* 0xbffe28e0, 0x92f02420 */
+      P2 = 1.621429720105354466140,                /* 0x3ff9f160, 0x4a49d6c2 */
+      P3 = -0.758397934778766047437,               /* 0xbfe844cb, 0xbee751d9 */
+      P4 = 0.145996192886612446982;                /* 0x3fc2b000, 0xd4e4edd7 */
+
+  int32_t hx;
+  union {
+    double value;
+    uint64_t bits;
+  } u;
+  double r, s, t = 0.0, w;
+  uint32_t sign;
+  uint32_t high, low;
+
+  EXTRACT_WORDS(hx, low, x);
+  sign = hx & 0x80000000; /* sign= sign(x) */
+  hx ^= sign;
+  if (hx >= 0x7ff00000) return (x + x); /* cbrt(NaN,INF) is itself */
+
+  /*
+   * Rough cbrt to 5 bits:
+   *    cbrt(2**e*(1+m) ~= 2**(e/3)*(1+(e%3+m)/3)
+   * where e is integral and >= 0, m is real and in [0, 1), and "/" and
+   * "%" are integer division and modulus with rounding towards minus
+   * infinity.  The RHS is always >= the LHS and has a maximum relative
+   * error of about 1 in 16.  Adding a bias of -0.03306235651 to the
+   * (e%3+m)/3 term reduces the error to about 1 in 32. With the IEEE
+   * floating point representation, for finite positive normal values,
+   * ordinary integer divison of the value in bits magically gives
+   * almost exactly the RHS of the above provided we first subtract the
+   * exponent bias (1023 for doubles) and later add it back.  We do the
+   * subtraction virtually to keep e >= 0 so that ordinary integer
+   * division rounds towards minus infinity; this is also efficient.
+   */
+  if (hx < 0x00100000) {             /* zero or subnormal? */
+    if ((hx | low) == 0) return (x); /* cbrt(0) is itself */
+    SET_HIGH_WORD(t, 0x43500000);    /* set t= 2**54 */
+    t *= x;
+    GET_HIGH_WORD(high, t);
+    INSERT_WORDS(t, sign | ((high & 0x7fffffff) / 3 + B2), 0);
+  } else {
+    INSERT_WORDS(t, sign | (hx / 3 + B1), 0);
+  }
+
+  /*
+   * New cbrt to 23 bits:
+   *    cbrt(x) = t*cbrt(x/t**3) ~= t*P(t**3/x)
+   * where P(r) is a polynomial of degree 4 that approximates 1/cbrt(r)
+   * to within 2**-23.5 when |r - 1| < 1/10.  The rough approximation
+   * has produced t such than |t/cbrt(x) - 1| ~< 1/32, and cubing this
+   * gives us bounds for r = t**3/x.
+   *
+   * Try to optimize for parallel evaluation as in k_tanf.c.
+   */
+  r = (t * t) * (t / x);
+  t = t * ((P0 + r * (P1 + r * P2)) + ((r * r) * r) * (P3 + r * P4));
+
+  /*
+   * Round t away from zero to 23 bits (sloppily except for ensuring that
+   * the result is larger in magnitude than cbrt(x) but not much more than
+   * 2 23-bit ulps larger).  With rounding towards zero, the error bound
+   * would be ~5/6 instead of ~4/6.  With a maximum error of 2 23-bit ulps
+   * in the rounded t, the infinite-precision error in the Newton
+   * approximation barely affects third digit in the final error
+   * 0.667; the error in the rounded t can be up to about 3 23-bit ulps
+   * before the final error is larger than 0.667 ulps.
+   */
+  u.value = t;
+  u.bits = (u.bits + 0x80000000) & 0xffffffffc0000000ULL;
+  t = u.value;
+
+  /* one step Newton iteration to 53 bits with error < 0.667 ulps */
+  s = t * t;             /* t*t is exact */
+  r = x / s;             /* error <= 0.5 ulps; |r| < |t| */
+  w = t + t;             /* t+t is exact */
+  r = (r - t) / (w + r); /* r-t is exact; w+r ~= 3*t */
+  t = t + t * r;         /* error <= 0.5 + 0.5/3 + epsilon */
+
+  return (t);
+}
+
+/* sin(x)
+ * Return sine function of x.
+ *
+ * kernel function:
+ *      __kernel_sin            ... sine function on [-pi/4,pi/4]
+ *      __kernel_cos            ... cose function on [-pi/4,pi/4]
+ *      __ieee754_rem_pio2      ... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *      in [-pi/4 , +pi/4], and let n = k mod 4.
+ *      We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *          0          S           C             T
+ *          1          C          -S            -1/T
+ *          2         -S          -C             T
+ *          3         -C           S            -1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *      TRIG(x) returns trig(x) nearly rounded
+ */
+double sin(double x) {
+  double y[2], z = 0.0;
+  int32_t n, ix;
+
+  /* High word of x. */
+  GET_HIGH_WORD(ix, x);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffff;
+  if (ix <= 0x3fe921fb) {
+    return __kernel_sin(x, z, 0);
+  } else if (ix >= 0x7ff00000) {
+    /* sin(Inf or NaN) is NaN */
+    return x - x;
+  } else {
+    /* argument reduction needed */
+    n = __ieee754_rem_pio2(x, y);
+    switch (n & 3) {
+      case 0:
+        return __kernel_sin(y[0], y[1], 1);
+      case 1:
+        return __kernel_cos(y[0], y[1]);
+      case 2:
+        return -__kernel_sin(y[0], y[1], 1);
+      default:
+        return -__kernel_cos(y[0], y[1]);
+    }
+  }
+}
+
+/* tan(x)
+ * Return tangent function of x.
+ *
+ * kernel function:
+ *      __kernel_tan            ... tangent function on [-pi/4,pi/4]
+ *      __ieee754_rem_pio2      ... argument reduction routine
+ *
+ * Method.
+ *      Let S,C and T denote the sin, cos and tan respectively on
+ *      [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2
+ *      in [-pi/4 , +pi/4], and let n = k mod 4.
+ *      We have
+ *
+ *          n        sin(x)      cos(x)        tan(x)
+ *     ----------------------------------------------------------
+ *          0          S           C             T
+ *          1          C          -S            -1/T
+ *          2         -S          -C             T
+ *          3         -C           S            -1/T
+ *     ----------------------------------------------------------
+ *
+ * Special cases:
+ *      Let trig be any of sin, cos, or tan.
+ *      trig(+-INF)  is NaN, with signals;
+ *      trig(NaN)    is that NaN;
+ *
+ * Accuracy:
+ *      TRIG(x) returns trig(x) nearly rounded
+ */
+double tan(double x) {
+  double y[2], z = 0.0;
+  int32_t n, ix;
+
+  /* High word of x. */
+  GET_HIGH_WORD(ix, x);
+
+  /* |x| ~< pi/4 */
+  ix &= 0x7fffffff;
+  if (ix <= 0x3fe921fb) {
+    return __kernel_tan(x, z, 1);
+  } else if (ix >= 0x7ff00000) {
+    /* tan(Inf or NaN) is NaN */
+    return x - x; /* NaN */
+  } else {
+    /* argument reduction needed */
+    n = __ieee754_rem_pio2(x, y);
+    /* 1 -> n even, -1 -> n odd */
+    return __kernel_tan(y[0], y[1], 1 - ((n & 1) << 1));
+  }
+}
+
+}  // namespace ieee754
+}  // namespace base
+}  // namespace v8
diff --git a/src/base/ieee754.h b/src/base/ieee754.h
new file mode 100644
index 0000000..cf33580
--- /dev/null
+++ b/src/base/ieee754.h
@@ -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.
+
+#ifndef V8_BASE_IEEE754_H_
+#define V8_BASE_IEEE754_H_
+
+namespace v8 {
+namespace base {
+namespace ieee754 {
+
+// Returns the principal value of the arc tangent of |x|; that is the value
+// whose tangent is |x|.
+double atan(double x);
+
+// Returns the principal value of the arc tangent of |y/x|, using the signs of
+// the two arguments to determine the quadrant of the result.
+double atan2(double y, double x);
+
+// Returns the cosine of |x|, where |x| is given in radians.
+double cos(double x);
+
+// Returns the base-e exponential of |x|.
+double exp(double x);
+
+double atanh(double x);
+
+// Returns the natural logarithm of |x|.
+double log(double x);
+
+// Returns a value equivalent to |log(1+x)|, but computed in a way that is
+// accurate even if the value of |x| is near zero.
+double log1p(double x);
+
+// Returns the base 2 logarithm of |x|.
+double log2(double x);
+
+// Returns the base 10 logarithm of |x|.
+double log10(double x);
+
+// Returns the cube root of |x|.
+double cbrt(double x);
+
+// Returns exp(x)-1, the exponential of |x| minus 1.
+double expm1(double x);
+
+// Returns the sine of |x|, where |x| is given in radians.
+double sin(double x);
+
+// Returns the tangent of |x|, where |x| is given in radians.
+double tan(double x);
+
+}  // namespace ieee754
+}  // namespace base
+}  // namespace v8
+
+#endif  // V8_BASE_IEEE754_H_
diff --git a/src/base/platform/semaphore.cc b/src/base/platform/semaphore.cc
index a7e522a..7bf5986 100644
--- a/src/base/platform/semaphore.cc
+++ b/src/base/platform/semaphore.cc
@@ -87,10 +87,6 @@
       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.
-  memset(&native_handle_, 0, sizeof(native_handle_));
-#endif
   int result = sem_init(&native_handle_, 0, count);
   DCHECK_EQ(0, result);
   USE(result);
@@ -105,6 +101,9 @@
 
 void Semaphore::Signal() {
   int result = sem_post(&native_handle_);
+  // This check may fail with <libc-2.21, which we use on the try bots, if the
+  // semaphore is destroyed while sem_post is still executed. A work around is
+  // to extend the lifetime of the semaphore.
   CHECK_EQ(0, result);
 }
 
diff --git a/src/base/platform/time.cc b/src/base/platform/time.cc
index b2355a3..786ef2e 100644
--- a/src/base/platform/time.cc
+++ b/src/base/platform/time.cc
@@ -41,9 +41,11 @@
   CHECK(kr == KERN_SUCCESS);
 
   v8::base::CheckedNumeric<int64_t> absolute_micros(
-      thread_info_data.user_time.seconds);
+      thread_info_data.user_time.seconds +
+      thread_info_data.system_time.seconds);
   absolute_micros *= v8::base::Time::kMicrosecondsPerSecond;
-  absolute_micros += thread_info_data.user_time.microseconds;
+  absolute_micros += (thread_info_data.user_time.microseconds +
+                      thread_info_data.system_time.microseconds);
   return absolute_micros.ValueOrDie();
 }
 #elif V8_OS_POSIX
@@ -51,9 +53,20 @@
 // 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) {
+V8_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)
+// On AIX clock_gettime for CLOCK_THREAD_CPUTIME_ID outputs time with
+// resolution of 10ms. thread_cputime API provides the time in ns
+#if defined(V8_OS_AIX)
+  thread_cputime_t tc;
+  if (clk_id == CLOCK_THREAD_CPUTIME_ID) {
+    if (thread_cputime(-1, &tc) != 0) {
+      UNREACHABLE();
+      return 0;
+    }
+  }
+#endif
   struct timespec ts;
   if (clock_gettime(clk_id, &ts) != 0) {
     UNREACHABLE();
@@ -61,12 +74,38 @@
   }
   v8::base::internal::CheckedNumeric<int64_t> result(ts.tv_sec);
   result *= v8::base::Time::kMicrosecondsPerSecond;
+#if defined(V8_OS_AIX)
+  if (clk_id == CLOCK_THREAD_CPUTIME_ID) {
+    result += (tc.stime / v8::base::Time::kNanosecondsPerMicrosecond);
+  } else {
+    result += (ts.tv_nsec / v8::base::Time::kNanosecondsPerMicrosecond);
+  }
+#else
   result += (ts.tv_nsec / v8::base::Time::kNanosecondsPerMicrosecond);
+#endif
   return result.ValueOrDie();
 #else  // Monotonic clock not supported.
   return 0;
 #endif
 }
+#elif V8_OS_WIN
+V8_INLINE bool IsQPCReliable() {
+  v8::base::CPU cpu;
+  // On Athlon X2 CPUs (e.g. model 15) QueryPerformanceCounter is unreliable.
+  return strcmp(cpu.vendor(), "AuthenticAMD") == 0 && cpu.family() == 15;
+}
+
+// Returns the current value of the performance counter.
+V8_INLINE uint64_t QPCNowRaw() {
+  LARGE_INTEGER perf_counter_now = {};
+  // According to the MSDN documentation for QueryPerformanceCounter(), this
+  // will never fail on systems that run XP or later.
+  // https://msdn.microsoft.com/library/windows/desktop/ms644904.aspx
+  BOOL result = ::QueryPerformanceCounter(&perf_counter_now);
+  DCHECK(result);
+  USE(result);
+  return perf_counter_now.QuadPart;
+}
 #endif  // V8_OS_MACOSX
 
 
@@ -456,15 +495,12 @@
   virtual ~HighResolutionTickClock() {}
 
   int64_t Now() override {
-    LARGE_INTEGER now;
-    BOOL result = QueryPerformanceCounter(&now);
-    DCHECK(result);
-    USE(result);
+    uint64_t now = QPCNowRaw();
 
     // Intentionally calculate microseconds in a round about manner to avoid
     // overflow and precision issues. Think twice before simplifying!
-    int64_t whole_seconds = now.QuadPart / ticks_per_second_;
-    int64_t leftover_ticks = now.QuadPart % ticks_per_second_;
+    int64_t whole_seconds = now / ticks_per_second_;
+    int64_t leftover_ticks = now % ticks_per_second_;
     int64_t ticks = (whole_seconds * Time::kMicrosecondsPerSecond) +
         ((leftover_ticks * Time::kMicrosecondsPerSecond) / ticks_per_second_);
 
@@ -529,10 +565,8 @@
       return tick_clock.Pointer();
     }
 
-    // On Athlon X2 CPUs (e.g. model 15) the QueryPerformanceCounter
-    // is unreliable, fallback to the low-resolution tick clock.
-    CPU cpu;
-    if (strcmp(cpu.vendor(), "AuthenticAMD") == 0 && cpu.family() == 15) {
+    // If QPC not reliable, fallback to low-resolution tick clock.
+    if (IsQPCReliable()) {
       return tick_clock.Pointer();
     }
 
@@ -621,11 +655,106 @@
 #elif(defined(_POSIX_THREAD_CPUTIME) && (_POSIX_THREAD_CPUTIME >= 0)) || \
   defined(V8_OS_ANDROID)
   return ThreadTicks(ClockNow(CLOCK_THREAD_CPUTIME_ID));
+#elif V8_OS_WIN
+  return ThreadTicks::GetForThread(::GetCurrentThread());
 #else
   UNREACHABLE();
   return ThreadTicks();
 #endif
 }
 
+
+#if V8_OS_WIN
+ThreadTicks ThreadTicks::GetForThread(const HANDLE& thread_handle) {
+  DCHECK(IsSupported());
+
+  // Get the number of TSC ticks used by the current thread.
+  ULONG64 thread_cycle_time = 0;
+  ::QueryThreadCycleTime(thread_handle, &thread_cycle_time);
+
+  // Get the frequency of the TSC.
+  double tsc_ticks_per_second = TSCTicksPerSecond();
+  if (tsc_ticks_per_second == 0)
+    return ThreadTicks();
+
+  // Return the CPU time of the current thread.
+  double thread_time_seconds = thread_cycle_time / tsc_ticks_per_second;
+  return ThreadTicks(
+      static_cast<int64_t>(thread_time_seconds * Time::kMicrosecondsPerSecond));
+}
+
+// static
+bool ThreadTicks::IsSupportedWin() {
+  static bool is_supported = base::CPU().has_non_stop_time_stamp_counter() &&
+                             !IsQPCReliable();
+  return is_supported;
+}
+
+// static
+void ThreadTicks::WaitUntilInitializedWin() {
+  while (TSCTicksPerSecond() == 0)
+    ::Sleep(10);
+}
+
+double ThreadTicks::TSCTicksPerSecond() {
+  DCHECK(IsSupported());
+
+  // The value returned by QueryPerformanceFrequency() cannot be used as the TSC
+  // frequency, because there is no guarantee that the TSC frequency is equal to
+  // the performance counter frequency.
+
+  // The TSC frequency is cached in a static variable because it takes some time
+  // to compute it.
+  static double tsc_ticks_per_second = 0;
+  if (tsc_ticks_per_second != 0)
+    return tsc_ticks_per_second;
+
+  // Increase the thread priority to reduces the chances of having a context
+  // switch during a reading of the TSC and the performance counter.
+  int previous_priority = ::GetThreadPriority(::GetCurrentThread());
+  ::SetThreadPriority(::GetCurrentThread(), THREAD_PRIORITY_HIGHEST);
+
+  // The first time that this function is called, make an initial reading of the
+  // TSC and the performance counter.
+  static const uint64_t tsc_initial = __rdtsc();
+  static const uint64_t perf_counter_initial = QPCNowRaw();
+
+  // Make a another reading of the TSC and the performance counter every time
+  // that this function is called.
+  uint64_t tsc_now = __rdtsc();
+  uint64_t perf_counter_now = QPCNowRaw();
+
+  // Reset the thread priority.
+  ::SetThreadPriority(::GetCurrentThread(), previous_priority);
+
+  // Make sure that at least 50 ms elapsed between the 2 readings. The first
+  // time that this function is called, we don't expect this to be the case.
+  // Note: The longer the elapsed time between the 2 readings is, the more
+  //   accurate the computed TSC frequency will be. The 50 ms value was
+  //   chosen because local benchmarks show that it allows us to get a
+  //   stddev of less than 1 tick/us between multiple runs.
+  // Note: According to the MSDN documentation for QueryPerformanceFrequency(),
+  //   this will never fail on systems that run XP or later.
+  //   https://msdn.microsoft.com/library/windows/desktop/ms644905.aspx
+  LARGE_INTEGER perf_counter_frequency = {};
+  ::QueryPerformanceFrequency(&perf_counter_frequency);
+  DCHECK_GE(perf_counter_now, perf_counter_initial);
+  uint64_t perf_counter_ticks = perf_counter_now - perf_counter_initial;
+  double elapsed_time_seconds =
+      perf_counter_ticks / static_cast<double>(perf_counter_frequency.QuadPart);
+
+  const double kMinimumEvaluationPeriodSeconds = 0.05;
+  if (elapsed_time_seconds < kMinimumEvaluationPeriodSeconds)
+    return 0;
+
+  // Compute the frequency of the TSC.
+  DCHECK_GE(tsc_now, tsc_initial);
+  uint64_t tsc_ticks = tsc_now - tsc_initial;
+  tsc_ticks_per_second = tsc_ticks / elapsed_time_seconds;
+
+  return tsc_ticks_per_second;
+}
+#endif  // V8_OS_WIN
+
 }  // namespace base
 }  // namespace v8
diff --git a/src/base/platform/time.h b/src/base/platform/time.h
index e17fc1d..be62014 100644
--- a/src/base/platform/time.h
+++ b/src/base/platform/time.h
@@ -12,6 +12,9 @@
 #include "src/base/bits.h"
 #include "src/base/macros.h"
 #include "src/base/safe_math.h"
+#if V8_OS_WIN
+#include "src/base/win32-headers.h"
+#endif
 
 // Forward declarations.
 extern "C" {
@@ -380,17 +383,42 @@
   // Returns true if ThreadTicks::Now() is supported on this system.
   static bool IsSupported();
 
+  // Waits until the initialization is completed. Needs to be guarded with a
+  // call to IsSupported().
+  static void WaitUntilInitialized() {
+#if V8_OS_WIN
+    WaitUntilInitializedWin();
+#endif
+  }
+
   // 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.
+  // object until the initialization is completed. If a clock reading is
+  // absolutely needed, call WaitUntilInitialized() before this method.
   static ThreadTicks Now();
 
+#if V8_OS_WIN
+  // Similar to Now() above except this returns thread-specific CPU time for an
+  // arbitrary thread. All comments for Now() method above apply apply to this
+  // method as well.
+  static ThreadTicks GetForThread(const HANDLE& thread_handle);
+#endif
+
  private:
-  // This is for internal use and testing. Ticks are in microseconds.
+  // Please use Now() or GetForThread() to create a new object. This is for
+  // internal use and testing. Ticks are in microseconds.
   explicit ThreadTicks(int64_t ticks) : TimeBase(ticks) {}
+
+#if V8_OS_WIN
+  // Returns the frequency of the TSC in ticks per second, or 0 if it hasn't
+  // been measured yet. Needs to be guarded with a call to IsSupported().
+  static double TSCTicksPerSecond();
+  static bool IsSupportedWin();
+  static void WaitUntilInitializedWin();
+#endif
 };
 
 }  // namespace base
diff --git a/src/base/utils/random-number-generator.cc b/src/base/utils/random-number-generator.cc
index ff42840..3a6f2c6 100644
--- a/src/base/utils/random-number-generator.cc
+++ b/src/base/utils/random-number-generator.cc
@@ -124,10 +124,10 @@
 
 
 void RandomNumberGenerator::SetSeed(int64_t seed) {
-  if (seed == 0) seed = 1;
   initial_seed_ = seed;
   state0_ = MurmurHash3(bit_cast<uint64_t>(seed));
-  state1_ = MurmurHash3(state0_);
+  state1_ = MurmurHash3(~state0_);
+  CHECK(state0_ != 0 || state1_ != 0);
 }
 
 
diff --git a/src/base/win32-headers.h b/src/base/win32-headers.h
index 20ec8e0..b61ce71 100644
--- a/src/base/win32-headers.h
+++ b/src/base/win32-headers.h
@@ -27,10 +27,10 @@
 #ifndef NOMCX
 #define NOMCX
 #endif
-// Require Windows XP or higher (this is required for the RtlCaptureContext
-// function to be present).
+// Require Windows Vista or higher (this is required for the
+// QueryThreadCycleTime function to be present).
 #ifndef _WIN32_WINNT
-#define _WIN32_WINNT 0x501
+#define _WIN32_WINNT 0x0600
 #endif
 
 #include <windows.h>
diff --git a/src/bootstrapper.cc b/src/bootstrapper.cc
index 70eec2b..0be96ea 100644
--- a/src/bootstrapper.cc
+++ b/src/bootstrapper.cc
@@ -6,6 +6,7 @@
 
 #include "src/accessors.h"
 #include "src/api-natives.h"
+#include "src/base/ieee754.h"
 #include "src/code-stubs.h"
 #include "src/extensions/externalize-string-extension.h"
 #include "src/extensions/free-buffer-extension.h"
@@ -31,17 +32,15 @@
 Handle<String> Bootstrapper::SourceLookup(int index) {
   DCHECK(0 <= index && index < Source::GetBuiltinsCount());
   Heap* heap = isolate_->heap();
-  if (Source::GetSourceCache(heap)->get(index)->IsUndefined()) {
+  if (Source::GetSourceCache(heap)->get(index)->IsUndefined(isolate_)) {
     // We can use external strings for the natives.
     Vector<const char> source = Source::GetScriptSource(index);
     NativesExternalStringResource* resource =
         new NativesExternalStringResource(source.start(), source.length());
-    // We do not expect this to throw an exception. Change this if it does.
-    Handle<String> source_code = isolate_->factory()
-                                     ->NewExternalStringFromOneByte(resource)
-                                     .ToHandleChecked();
+    Handle<ExternalOneByteString> source_code =
+        isolate_->factory()->NewNativeSourceString(resource);
     // Mark this external string with a special map.
-    source_code->set_map(isolate_->heap()->native_source_string_map());
+    DCHECK(source_code->is_short());
     Source::GetSourceCache(heap)->set(index, *source_code);
   }
   Handle<Object> cached_source(Source::GetSourceCache(heap)->get(index),
@@ -111,9 +110,10 @@
 void DeleteNativeSources(Object* maybe_array) {
   if (maybe_array->IsFixedArray()) {
     FixedArray* array = FixedArray::cast(maybe_array);
+    Isolate* isolate = array->GetIsolate();
     for (int i = 0; i < array->length(); i++) {
       Object* natives_source = array->get(i);
-      if (!natives_source->IsUndefined()) {
+      if (!natives_source->IsUndefined(isolate)) {
         const NativesExternalStringResource* resource =
             reinterpret_cast<const NativesExternalStringResource*>(
                 ExternalOneByteString::cast(natives_source)->resource());
@@ -139,7 +139,7 @@
  public:
   Genesis(Isolate* isolate, MaybeHandle<JSGlobalProxy> maybe_global_proxy,
           v8::Local<v8::ObjectTemplate> global_proxy_template,
-          v8::ExtensionConfiguration* extensions,
+          v8::ExtensionConfiguration* extensions, size_t context_snapshot_index,
           GlobalContextType context_type);
   ~Genesis() { }
 
@@ -167,7 +167,7 @@
   void CreateJSProxyMaps();
 
   // Make the "arguments" and "caller" properties throw a TypeError on access.
-  void AddRestrictedFunctionProperties(Handle<Map> map);
+  void AddRestrictedFunctionProperties(Handle<JSFunction> empty);
 
   // Creates the global objects using the global proxy and the template passed
   // in through the API.  We call this regardless of whether we are building a
@@ -237,7 +237,7 @@
     void set_state(RegisteredExtension* extension,
                    ExtensionTraversalState state);
    private:
-    HashMap map_;
+    base::HashMap map_;
     DISALLOW_COPY_AND_ASSIGN(ExtensionStates);
   };
 
@@ -325,13 +325,13 @@
 Handle<Context> Bootstrapper::CreateEnvironment(
     MaybeHandle<JSGlobalProxy> maybe_global_proxy,
     v8::Local<v8::ObjectTemplate> global_proxy_template,
-    v8::ExtensionConfiguration* extensions, GlobalContextType context_type) {
+    v8::ExtensionConfiguration* extensions, size_t context_snapshot_index,
+    GlobalContextType context_type) {
   HandleScope scope(isolate_);
   Genesis genesis(isolate_, maybe_global_proxy, global_proxy_template,
-                  extensions, context_type);
+                  extensions, context_snapshot_index, context_type);
   Handle<Context> env = genesis.result();
-  if (env.is_null() ||
-      (context_type != THIN_CONTEXT && !InstallExtensions(env, extensions))) {
+  if (env.is_null() || !InstallExtensions(env, extensions)) {
     return Handle<Context>();
   }
   return scope.CloseAndEscape(env);
@@ -380,6 +380,16 @@
   InstallFunction(target, name, function, name_string, attributes);
 }
 
+Handle<JSFunction> InstallGetter(Handle<JSObject> target,
+                                 Handle<Name> property_name,
+                                 Handle<JSFunction> getter,
+                                 PropertyAttributes attributes = DONT_ENUM) {
+  Handle<Object> setter = target->GetIsolate()->factory()->undefined_value();
+  JSObject::DefineAccessor(target, property_name, getter, setter, attributes)
+      .Check();
+  return getter;
+}
+
 Handle<JSFunction> CreateFunction(Isolate* isolate, Handle<String> name,
                                   InstanceType type, int instance_size,
                                   MaybeHandle<JSObject> maybe_prototype,
@@ -388,12 +398,9 @@
   Factory* factory = isolate->factory();
   Handle<Code> call_code(isolate->builtins()->builtin(call));
   Handle<JSObject> prototype;
-  static const bool kReadOnlyPrototype = false;
-  static const bool kInstallConstructor = false;
   return maybe_prototype.ToHandle(&prototype)
              ? factory->NewFunction(name, call_code, prototype, type,
-                                    instance_size, kReadOnlyPrototype,
-                                    kInstallConstructor, strict_function_map)
+                                    instance_size, strict_function_map)
              : factory->NewFunctionWithoutPrototype(name, call_code,
                                                     strict_function_map);
 }
@@ -457,6 +464,27 @@
                                len, adapt);
 }
 
+Handle<JSFunction> SimpleInstallGetter(Handle<JSObject> base,
+                                       Handle<String> name, Builtins::Name call,
+                                       bool adapt) {
+  Isolate* const isolate = base->GetIsolate();
+  Handle<String> fun_name =
+      Name::ToFunctionName(name, isolate->factory()->get_string())
+          .ToHandleChecked();
+  Handle<JSFunction> fun =
+      SimpleCreateFunction(isolate, fun_name, call, 0, adapt);
+  InstallGetter(base, name, fun);
+  return fun;
+}
+
+Handle<JSFunction> SimpleInstallGetter(Handle<JSObject> base,
+                                       Handle<String> name, Builtins::Name call,
+                                       bool adapt, BuiltinFunctionId id) {
+  Handle<JSFunction> fun = SimpleInstallGetter(base, name, call, adapt);
+  fun->shared()->set_builtin_function_id(id);
+  return fun;
+}
+
 }  // namespace
 
 void Genesis::SetFunctionInstanceDescriptor(Handle<Map> map,
@@ -469,6 +497,7 @@
   PropertyAttributes roc_attribs =
       static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY);
 
+  STATIC_ASSERT(JSFunction::kLengthDescriptorIndex == 0);
   Handle<AccessorInfo> length =
       Accessors::FunctionLengthInfo(isolate(), roc_attribs);
   {  // Add length.
@@ -476,6 +505,8 @@
                                  length, roc_attribs);
     map->AppendDescriptor(&d);
   }
+
+  STATIC_ASSERT(JSFunction::kNameDescriptorIndex == 1);
   Handle<AccessorInfo> name =
       Accessors::FunctionNameInfo(isolate(), ro_attribs);
   {  // Add name.
@@ -611,9 +642,6 @@
   Map::SetPrototype(sloppy_function_without_prototype_map, empty_function);
   Map::SetPrototype(sloppy_function_map_writable_prototype_, empty_function);
 
-  // ES6 draft 03-17-2015, section 8.2.2 step 12
-  AddRestrictedFunctionProperties(empty_function_map);
-
   return empty_function;
 }
 
@@ -633,17 +661,20 @@
   DCHECK(function_mode == FUNCTION_WITH_WRITEABLE_PROTOTYPE ||
          function_mode == FUNCTION_WITH_READONLY_PROTOTYPE ||
          function_mode == FUNCTION_WITHOUT_PROTOTYPE);
+  STATIC_ASSERT(JSFunction::kLengthDescriptorIndex == 0);
   {  // Add length.
     Handle<AccessorInfo> length =
         Accessors::FunctionLengthInfo(isolate(), roc_attribs);
-    AccessorConstantDescriptor d(Handle<Name>(Name::cast(length->name())),
-                                 length, roc_attribs);
+    AccessorConstantDescriptor d(handle(Name::cast(length->name())), length,
+                                 roc_attribs);
     map->AppendDescriptor(&d);
   }
+
+  STATIC_ASSERT(JSFunction::kNameDescriptorIndex == 1);
   {  // Add name.
     Handle<AccessorInfo> name =
         Accessors::FunctionNameInfo(isolate(), roc_attribs);
-    AccessorConstantDescriptor d(Handle<Name>(Name::cast(name->name())), name,
+    AccessorConstantDescriptor d(handle(Name::cast(name->name())), name,
                                  roc_attribs);
     map->AppendDescriptor(&d);
   }
@@ -668,7 +699,7 @@
       factory()->InternalizeOneByteString(STATIC_CHAR_VECTOR("ThrowTypeError"));
   Handle<Code> code(isolate()->builtins()->builtin(builtin_name));
   Handle<JSFunction> function =
-      factory()->NewFunctionWithoutPrototype(name, code);
+      factory()->NewFunctionWithoutPrototype(name, code, true);
   function->shared()->DontAdaptArguments();
 
   // %ThrowTypeError% must not have a name property.
@@ -741,6 +772,10 @@
   // This map is installed in MakeFunctionInstancePrototypeWritable.
   strict_function_map_writable_prototype_ =
       CreateStrictFunctionMap(FUNCTION_WITH_WRITEABLE_PROTOTYPE, empty);
+
+  // Now that the strict mode function map is available, set up the
+  // restricted "arguments" and "caller" getters.
+  AddRestrictedFunctionProperties(empty);
 }
 
 void Genesis::CreateIteratorMaps(Handle<JSFunction> empty) {
@@ -870,14 +905,14 @@
   descriptors->Replace(idx, &descriptor);
 }
 
-
-void Genesis::AddRestrictedFunctionProperties(Handle<Map> map) {
+void Genesis::AddRestrictedFunctionProperties(Handle<JSFunction> empty) {
   PropertyAttributes rw_attribs = static_cast<PropertyAttributes>(DONT_ENUM);
   Handle<JSFunction> thrower = GetRestrictedFunctionPropertiesThrower();
   Handle<AccessorPair> accessors = factory()->NewAccessorPair();
   accessors->set_getter(*thrower);
   accessors->set_setter(*thrower);
 
+  Handle<Map> map(empty->map());
   ReplaceAccessors(map, factory()->arguments_string(), rw_attribs, accessors);
   ReplaceAccessors(map, factory()->caller_string(), rw_attribs, accessors);
 }
@@ -885,13 +920,14 @@
 
 static void AddToWeakNativeContextList(Context* context) {
   DCHECK(context->IsNativeContext());
-  Heap* heap = context->GetIsolate()->heap();
+  Isolate* isolate = context->GetIsolate();
+  Heap* heap = isolate->heap();
 #ifdef DEBUG
   { // NOLINT
-    DCHECK(context->next_context_link()->IsUndefined());
+    DCHECK(context->next_context_link()->IsUndefined(isolate));
     // Check that context is not in the list yet.
     for (Object* current = heap->native_contexts_list();
-         !current->IsUndefined();
+         !current->IsUndefined(isolate);
          current = Context::cast(current)->next_context_link()) {
       DCHECK(current != context);
     }
@@ -966,7 +1002,7 @@
             FunctionTemplateInfo::cast(data->constructor()));
     Handle<Object> proto_template(global_constructor->prototype_template(),
                                   isolate());
-    if (!proto_template->IsUndefined()) {
+    if (!proto_template->IsUndefined(isolate())) {
       js_global_object_template =
           Handle<ObjectTemplateInfo>::cast(proto_template);
     }
@@ -1036,7 +1072,9 @@
   global_proxy->set_native_context(*native_context());
   // If we deserialized the context, the global proxy is already
   // correctly set up. Otherwise it's undefined.
-  DCHECK(native_context()->get(Context::GLOBAL_PROXY_INDEX)->IsUndefined() ||
+  DCHECK(native_context()
+             ->get(Context::GLOBAL_PROXY_INDEX)
+             ->IsUndefined(isolate()) ||
          native_context()->global_proxy() == *global_proxy);
   native_context()->set_global_proxy(*global_proxy);
 }
@@ -1180,8 +1218,15 @@
     // Setup the methods on the %FunctionPrototype%.
     SimpleInstallFunction(prototype, factory->apply_string(),
                           Builtins::kFunctionPrototypeApply, 2, false);
-    SimpleInstallFunction(prototype, factory->bind_string(),
-                          Builtins::kFunctionPrototypeBind, 1, false);
+
+    FastFunctionBindStub bind_stub(isolate);
+    Handle<JSFunction> bind_function = factory->NewFunctionWithoutPrototype(
+        factory->bind_string(), bind_stub.GetCode(), false);
+    bind_function->shared()->DontAdaptArguments();
+    bind_function->shared()->set_length(1);
+    InstallFunction(prototype, bind_function, factory->bind_string(),
+                    DONT_ENUM);
+
     SimpleInstallFunction(prototype, factory->call_string(),
                           Builtins::kFunctionPrototypeCall, 1, false);
     SimpleInstallFunction(prototype, factory->toString_string(),
@@ -1324,7 +1369,11 @@
 
     // Install the String.fromCharCode function.
     SimpleInstallFunction(string_fun, "fromCharCode",
-                          Builtins::kStringFromCharCode, 1, false);
+                          Builtins::kStringFromCharCode, 1, true);
+
+    // Install the String.fromCodePoint function.
+    SimpleInstallFunction(string_fun, "fromCodePoint",
+                          Builtins::kStringFromCodePoint, 1, false);
 
     // Create the %StringPrototype%
     Handle<JSValue> prototype =
@@ -1341,6 +1390,12 @@
                           1, true);
     SimpleInstallFunction(prototype, "charCodeAt",
                           Builtins::kStringPrototypeCharCodeAt, 1, true);
+    SimpleInstallFunction(prototype, "trim", Builtins::kStringPrototypeTrim, 0,
+                          false);
+    SimpleInstallFunction(prototype, "trimLeft",
+                          Builtins::kStringPrototypeTrimLeft, 0, false);
+    SimpleInstallFunction(prototype, "trimRight",
+                          Builtins::kStringPrototypeTrimRight, 0, false);
   }
 
   {
@@ -1470,6 +1525,8 @@
                           0, true);
     SimpleInstallFunction(prototype, "setYear", Builtins::kDatePrototypeSetYear,
                           1, false);
+    SimpleInstallFunction(prototype, "toJSON", Builtins::kDatePrototypeToJson,
+                          1, false);
 
     // Install i18n fallback functions.
     SimpleInstallFunction(prototype, "toLocaleString",
@@ -1528,7 +1585,7 @@
 
   {  // -- E r r o r
     Handle<JSFunction> error_fun = InstallFunction(
-        global, "Error", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "Error", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, error_fun,
                                      Context::ERROR_FUNCTION_INDEX);
@@ -1536,7 +1593,7 @@
 
   {  // -- E v a l E r r o r
     Handle<JSFunction> eval_error_fun = InstallFunction(
-        global, "EvalError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "EvalError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, eval_error_fun,
                                      Context::EVAL_ERROR_FUNCTION_INDEX);
@@ -1544,7 +1601,7 @@
 
   {  // -- R a n g e E r r o r
     Handle<JSFunction> range_error_fun = InstallFunction(
-        global, "RangeError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "RangeError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, range_error_fun,
                                      Context::RANGE_ERROR_FUNCTION_INDEX);
@@ -1552,7 +1609,7 @@
 
   {  // -- R e f e r e n c e E r r o r
     Handle<JSFunction> reference_error_fun = InstallFunction(
-        global, "ReferenceError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "ReferenceError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, reference_error_fun,
                                      Context::REFERENCE_ERROR_FUNCTION_INDEX);
@@ -1560,7 +1617,7 @@
 
   {  // -- S y n t a x E r r o r
     Handle<JSFunction> syntax_error_fun = InstallFunction(
-        global, "SyntaxError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "SyntaxError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, syntax_error_fun,
                                      Context::SYNTAX_ERROR_FUNCTION_INDEX);
@@ -1568,7 +1625,7 @@
 
   {  // -- T y p e E r r o r
     Handle<JSFunction> type_error_fun = InstallFunction(
-        global, "TypeError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "TypeError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, type_error_fun,
                                      Context::TYPE_ERROR_FUNCTION_INDEX);
@@ -1576,7 +1633,7 @@
 
   {  // -- U R I E r r o r
     Handle<JSFunction> uri_error_fun = InstallFunction(
-        global, "URIError", JS_OBJECT_TYPE, JSObject::kHeaderSize,
+        global, "URIError", JS_ERROR_TYPE, JSObject::kHeaderSize,
         isolate->initial_object_prototype(), Builtins::kIllegal);
     InstallWithIntrinsicDefaultProto(isolate, uri_error_fun,
                                      Context::URI_ERROR_FUNCTION_INDEX);
@@ -1586,17 +1643,21 @@
   Handle<FixedArray> embedder_data = factory->NewFixedArray(3);
   native_context()->set_embedder_data(*embedder_data);
 
-  if (context_type == THIN_CONTEXT) return;
-
   {  // -- J S O N
     Handle<String> name = factory->InternalizeUtf8String("JSON");
     Handle<JSFunction> cons = factory->NewFunction(name);
     JSFunction::SetInstancePrototype(cons,
         Handle<Object>(native_context()->initial_object_prototype(), isolate));
-    cons->shared()->set_instance_class_name(*name);
     Handle<JSObject> json_object = factory->NewJSObject(cons, TENURED);
     DCHECK(json_object->IsJSObject());
     JSObject::AddProperty(global, name, json_object, DONT_ENUM);
+    SimpleInstallFunction(json_object, "parse", Builtins::kJsonParse, 2, false);
+    SimpleInstallFunction(json_object, "stringify", Builtins::kJsonStringify, 3,
+                          true);
+    JSObject::AddProperty(
+        json_object, factory->to_string_tag_symbol(),
+        factory->NewStringFromAsciiChecked("JSON"),
+        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
   }
 
   {  // -- M a t h
@@ -1605,27 +1666,64 @@
     JSFunction::SetInstancePrototype(
         cons,
         Handle<Object>(native_context()->initial_object_prototype(), isolate));
-    cons->shared()->set_instance_class_name(*name);
     Handle<JSObject> math = factory->NewJSObject(cons, TENURED);
     DCHECK(math->IsJSObject());
     JSObject::AddProperty(global, name, math, DONT_ENUM);
     SimpleInstallFunction(math, "acos", Builtins::kMathAcos, 1, true);
     SimpleInstallFunction(math, "asin", Builtins::kMathAsin, 1, true);
     SimpleInstallFunction(math, "atan", Builtins::kMathAtan, 1, true);
+    SimpleInstallFunction(math, "atan2", Builtins::kMathAtan2, 2, true);
+    SimpleInstallFunction(math, "atanh", Builtins::kMathAtanh, 1, true);
     SimpleInstallFunction(math, "ceil", Builtins::kMathCeil, 1, true);
+    SimpleInstallFunction(math, "cbrt", Builtins::kMathCbrt, 1, true);
+    SimpleInstallFunction(math, "expm1", Builtins::kMathExpm1, 1, true);
     SimpleInstallFunction(math, "clz32", Builtins::kMathClz32, 1, true);
+    SimpleInstallFunction(math, "cos", Builtins::kMathCos, 1, true);
+    Handle<JSFunction> math_exp =
+        SimpleInstallFunction(math, "exp", Builtins::kMathExp, 1, true);
+    native_context()->set_math_exp(*math_exp);
     Handle<JSFunction> math_floor =
         SimpleInstallFunction(math, "floor", Builtins::kMathFloor, 1, true);
     native_context()->set_math_floor(*math_floor);
     SimpleInstallFunction(math, "fround", Builtins::kMathFround, 1, true);
     SimpleInstallFunction(math, "imul", Builtins::kMathImul, 2, true);
+    Handle<JSFunction> math_log =
+        SimpleInstallFunction(math, "log", Builtins::kMathLog, 1, true);
+    native_context()->set_math_log(*math_log);
+    SimpleInstallFunction(math, "log1p", Builtins::kMathLog1p, 1, true);
+    SimpleInstallFunction(math, "log2", Builtins::kMathLog2, 1, true);
+    SimpleInstallFunction(math, "log10", Builtins::kMathLog10, 1, true);
     SimpleInstallFunction(math, "max", Builtins::kMathMax, 2, false);
     SimpleInstallFunction(math, "min", Builtins::kMathMin, 2, false);
     SimpleInstallFunction(math, "round", Builtins::kMathRound, 1, true);
+    SimpleInstallFunction(math, "sin", Builtins::kMathSin, 1, true);
     Handle<JSFunction> math_sqrt =
         SimpleInstallFunction(math, "sqrt", Builtins::kMathSqrt, 1, true);
     native_context()->set_math_sqrt(*math_sqrt);
+    SimpleInstallFunction(math, "tan", Builtins::kMathTan, 1, true);
     SimpleInstallFunction(math, "trunc", Builtins::kMathTrunc, 1, true);
+
+    // Install math constants.
+    double const kE = base::ieee754::exp(1.0);
+    JSObject::AddProperty(
+        math, factory->NewStringFromAsciiChecked("E"), factory->NewNumber(kE),
+        static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+    JSObject::AddProperty(
+        math, factory->NewStringFromAsciiChecked("LN10"),
+        factory->NewNumber(base::ieee754::log(10.0)),
+        static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+    JSObject::AddProperty(
+        math, factory->NewStringFromAsciiChecked("LN2"),
+        factory->NewNumber(base::ieee754::log(2.0)),
+        static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+    JSObject::AddProperty(
+        math, factory->NewStringFromAsciiChecked("LOG10E"),
+        factory->NewNumber(base::ieee754::log10(kE)),
+        static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
+    JSObject::AddProperty(
+        math, factory->NewStringFromAsciiChecked("LOG2E"),
+        factory->NewNumber(base::ieee754::log2(kE)),
+        static_cast<PropertyAttributes>(DONT_DELETE | DONT_ENUM | READ_ONLY));
   }
 
   {  // -- A r r a y B u f f e r
@@ -1635,6 +1733,36 @@
                                      Context::ARRAY_BUFFER_FUN_INDEX);
   }
 
+  {  // -- T y p e d A r r a y
+    Handle<JSObject> prototype =
+        factory->NewJSObject(isolate->object_function(), TENURED);
+    native_context()->set_typed_array_prototype(*prototype);
+
+    Handle<JSFunction> typed_array_fun =
+        CreateFunction(isolate, factory->InternalizeUtf8String("TypedArray"),
+                       JS_TYPED_ARRAY_TYPE, JSTypedArray::kSize, prototype,
+                       Builtins::kIllegal);
+
+    // Install the "constructor" property on the {prototype}.
+    JSObject::AddProperty(prototype, factory->constructor_string(),
+                          typed_array_fun, DONT_ENUM);
+    native_context()->set_typed_array_function(*typed_array_fun);
+
+    // Install the "buffer", "byteOffset", "byteLength" and "length"
+    // getters on the {prototype}.
+    SimpleInstallGetter(prototype, factory->buffer_string(),
+                        Builtins::kTypedArrayPrototypeBuffer, false);
+    SimpleInstallGetter(prototype, factory->byte_length_string(),
+                        Builtins::kTypedArrayPrototypeByteLength, true,
+                        kTypedArrayByteLength);
+    SimpleInstallGetter(prototype, factory->byte_offset_string(),
+                        Builtins::kTypedArrayPrototypeByteOffset, true,
+                        kTypedArrayByteOffset);
+    SimpleInstallGetter(prototype, factory->length_string(),
+                        Builtins::kTypedArrayPrototypeLength, true,
+                        kTypedArrayLength);
+  }
+
   {  // -- T y p e d A r r a y s
 #define INSTALL_TYPED_ARRAY(Type, type, TYPE, ctype, size)             \
   {                                                                    \
@@ -1645,17 +1773,43 @@
   }
     TYPED_ARRAYS(INSTALL_TYPED_ARRAY)
 #undef INSTALL_TYPED_ARRAY
+  }
 
-    Handle<JSFunction> data_view_fun = InstallFunction(
-        global, "DataView", JS_DATA_VIEW_TYPE,
-        JSDataView::kSizeWithInternalFields,
-        isolate->initial_object_prototype(), Builtins::kDataViewConstructor);
+  {  // -- D a t a V i e w
+    Handle<JSObject> prototype =
+        factory->NewJSObject(isolate->object_function(), TENURED);
+    Handle<JSFunction> data_view_fun =
+        InstallFunction(global, "DataView", JS_DATA_VIEW_TYPE,
+                        JSDataView::kSizeWithInternalFields, prototype,
+                        Builtins::kDataViewConstructor);
     InstallWithIntrinsicDefaultProto(isolate, data_view_fun,
                                      Context::DATA_VIEW_FUN_INDEX);
     data_view_fun->shared()->set_construct_stub(
         *isolate->builtins()->DataViewConstructor_ConstructStub());
     data_view_fun->shared()->set_length(3);
     data_view_fun->shared()->DontAdaptArguments();
+
+    // Install the @@toStringTag property on the {prototype}.
+    JSObject::AddProperty(
+        prototype, factory->to_string_tag_symbol(),
+        factory->NewStringFromAsciiChecked("DataView"),
+        static_cast<PropertyAttributes>(DONT_ENUM | READ_ONLY));
+
+    // Install the "constructor" property on the {prototype}.
+    JSObject::AddProperty(prototype, factory->constructor_string(),
+                          data_view_fun, DONT_ENUM);
+
+    // Install the "buffer", "byteOffset" and "byteLength" getters
+    // on the {prototype}.
+    SimpleInstallGetter(prototype, factory->buffer_string(),
+                        Builtins::kDataViewPrototypeGetBuffer, false,
+                        kDataViewBuffer);
+    SimpleInstallGetter(prototype, factory->byte_length_string(),
+                        Builtins::kDataViewPrototypeGetByteLength, false,
+                        kDataViewByteLength);
+    SimpleInstallGetter(prototype, factory->byte_offset_string(),
+                        Builtins::kDataViewPrototypeGetByteOffset, false,
+                        kDataViewByteOffset);
   }
 
   {  // -- M a p
@@ -1824,7 +1978,7 @@
     function->shared()->set_instance_class_name(*arguments_string);
 
     Handle<Map> map = factory->NewMap(
-        JS_OBJECT_TYPE, JSSloppyArgumentsObject::kSize, FAST_ELEMENTS);
+        JS_ARGUMENTS_TYPE, JSSloppyArgumentsObject::kSize, FAST_ELEMENTS);
     // Create the descriptor array for the arguments object.
     Map::EnsureDescriptorSlack(map, 2);
 
@@ -1884,7 +2038,7 @@
 
     // Create the map. Allocate one in-object field for length.
     Handle<Map> map = factory->NewMap(
-        JS_OBJECT_TYPE, JSStrictArgumentsObject::kSize, FAST_ELEMENTS);
+        JS_ARGUMENTS_TYPE, JSStrictArgumentsObject::kSize, FAST_ELEMENTS);
     // Create the descriptor array for the arguments object.
     Map::EnsureDescriptorSlack(map, 3);
 
@@ -1954,13 +2108,20 @@
   }
 }  // NOLINT(readability/fn_size)
 
-
 void Genesis::InstallTypedArray(const char* name, ElementsKind elements_kind,
                                 Handle<JSFunction>* fun) {
   Handle<JSObject> global = Handle<JSObject>(native_context()->global_object());
-  Handle<JSFunction> result = InstallFunction(
-      global, name, JS_TYPED_ARRAY_TYPE, JSTypedArray::kSize,
-      isolate()->initial_object_prototype(), Builtins::kIllegal);
+
+  Handle<JSObject> typed_array_prototype =
+      Handle<JSObject>(isolate()->typed_array_prototype());
+  Handle<JSFunction> typed_array_function =
+      Handle<JSFunction>(isolate()->typed_array_function());
+
+  Handle<JSObject> prototype =
+      factory()->NewJSObject(isolate()->object_function(), TENURED);
+  Handle<JSFunction> result =
+      InstallFunction(global, name, JS_TYPED_ARRAY_TYPE, JSTypedArray::kSize,
+                      prototype, Builtins::kIllegal);
 
   Handle<Map> initial_map = isolate()->factory()->NewMap(
       JS_TYPED_ARRAY_TYPE,
@@ -1968,6 +2129,14 @@
       elements_kind);
   JSFunction::SetInitialMap(result, initial_map,
                             handle(initial_map->prototype(), isolate()));
+
+  CHECK(JSObject::SetPrototype(result, typed_array_function, false,
+                               Object::DONT_THROW)
+            .FromJust());
+
+  CHECK(JSObject::SetPrototype(prototype, typed_array_prototype, false,
+                               Object::DONT_THROW)
+            .FromJust());
   *fun = result;
 }
 
@@ -2191,8 +2360,6 @@
       JSObject::AddProperty(global, natives_key, utils, DONT_ENUM);
       break;
     }
-    case THIN_CONTEXT:
-      break;
   }
 
   // The utils object can be removed for cases that reach this point.
@@ -2443,6 +2610,13 @@
     }
 
     {
+      // TODO(mvstanton): Remove this when MathSinh, MathCosh and MathTanh are
+      // no longer implemented in fdlibm.js.
+      SimpleInstallFunction(container, "MathExpm1", Builtins::kMathExpm1, 1,
+                            true);
+    }
+
+    {
       PrototypeIterator iter(native_context->sloppy_async_function_map());
       Handle<JSObject> async_function_prototype(iter.GetCurrent<JSObject>());
 
@@ -2470,12 +2644,12 @@
 
       Handle<JSFunction> async_function_next =
           SimpleInstallFunction(container, "AsyncFunctionNext",
-                                Builtins::kGeneratorPrototypeNext, 2, false);
+                                Builtins::kGeneratorPrototypeNext, 1, true);
       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);
+                                Builtins::kGeneratorPrototypeThrow, 1, true);
+      async_function_next->shared()->set_native(false);
+      async_function_throw->shared()->set_native(false);
     }
   }
 }
@@ -2493,7 +2667,6 @@
                           isolate->factory()->ToBoolean(FLAG), NONE); \
   }
 
-  INITIALIZE_FLAG(FLAG_harmony_species)
   INITIALIZE_FLAG(FLAG_intl_extra)
 
 #undef INITIALIZE_FLAG
@@ -2503,20 +2676,16 @@
 #define EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(id) \
   void Genesis::InitializeGlobal_##id() {}
 
-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)
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_regexp_named_captures)
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_regexp_property)
-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)
@@ -2524,6 +2693,7 @@
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(icu_case_mapping)
 #endif
 EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_async_await)
+EMPTY_INITIALIZE_GLOBAL_FOR_FEATURE(harmony_restrictive_generators)
 
 void InstallPublicSymbol(Factory* factory, Handle<Context> native_context,
                          const char* name, Handle<Symbol> value) {
@@ -2539,19 +2709,6 @@
 }
 
 
-void Genesis::InitializeGlobal_harmony_regexp_subclass() {
-  if (!FLAG_harmony_regexp_subclass) return;
-  InstallPublicSymbol(factory(), native_context(), "match",
-                      factory()->match_symbol());
-  InstallPublicSymbol(factory(), native_context(), "replace",
-                      factory()->replace_symbol());
-  InstallPublicSymbol(factory(), native_context(), "search",
-                      factory()->search_symbol());
-  InstallPublicSymbol(factory(), native_context(), "split",
-                      factory()->split_symbol());
-}
-
-
 void Genesis::InitializeGlobal_harmony_sharedarraybuffer() {
   if (!FLAG_harmony_sharedarraybuffer) return;
 
@@ -2690,13 +2847,6 @@
 }
 
 
-void Genesis::InitializeGlobal_harmony_species() {
-  if (!FLAG_harmony_species) return;
-  InstallPublicSymbol(factory(), native_context(), "species",
-                      factory()->species_symbol());
-}
-
-
 Handle<JSFunction> Genesis::InstallInternalArray(Handle<JSObject> target,
                                                  const char* name,
                                                  ElementsKind elements_kind) {
@@ -2763,9 +2913,6 @@
   DCHECK_EQ(builtin_index, Natives::GetIndex("runtime"));
   if (!Bootstrapper::CompileBuiltin(isolate(), builtin_index++)) return false;
 
-  // A thin context is ready at this point.
-  if (context_type == THIN_CONTEXT) return true;
-
   {
     // Builtin function for OpaqueReference -- a JSValue-based object,
     // that keeps its field isolated from JavaScript code. It may store
@@ -2814,6 +2961,14 @@
   native_context()->set_object_function_prototype_map(
       HeapObject::cast(object_function->initial_map()->prototype())->map());
 
+  // Set up the map for Object.create(null) instances.
+  Handle<Map> object_with_null_prototype_map =
+      Map::CopyInitialMap(handle(object_function->initial_map(), isolate()));
+  Map::SetPrototype(object_with_null_prototype_map,
+                    isolate()->factory()->null_value());
+  native_context()->set_object_with_null_prototype_map(
+      *object_with_null_prototype_map);
+
   // Store the map for the %StringPrototype% after the natives has been compiled
   // and the String function has been set up.
   Handle<JSFunction> string_function(native_context()->string_function());
@@ -2825,6 +2980,14 @@
   Handle<JSGlobalObject> global_object =
       handle(native_context()->global_object());
 
+  // Install Global.decodeURI.
+  SimpleInstallFunction(global_object, "decodeURI", Builtins::kGlobalDecodeURI,
+                        1, false);
+
+  // Install Global.decodeURIComponent.
+  SimpleInstallFunction(global_object, "decodeURIComponent",
+                        Builtins::kGlobalDecodeURIComponent, 1, false);
+
   // Install Global.encodeURI.
   SimpleInstallFunction(global_object, "encodeURI", Builtins::kGlobalEncodeURI,
                         1, false);
@@ -2833,6 +2996,14 @@
   SimpleInstallFunction(global_object, "encodeURIComponent",
                         Builtins::kGlobalEncodeURIComponent, 1, false);
 
+  // Install Global.escape.
+  SimpleInstallFunction(global_object, "escape", Builtins::kGlobalEscape, 1,
+                        false);
+
+  // Install Global.unescape.
+  SimpleInstallFunction(global_object, "unescape", Builtins::kGlobalUnescape, 1,
+                        false);
+
   // Install Global.eval.
   {
     Handle<JSFunction> eval =
@@ -3071,27 +3242,18 @@
 
 
 bool Genesis::InstallExperimentalNatives() {
-  static const char* harmony_iterator_close_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_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};
   static const char* harmony_regexp_lookbehind_natives[] = {nullptr};
-  static const char* harmony_instanceof_natives[] = {nullptr};
   static const char* harmony_restrictive_declarations_natives[] = {nullptr};
+  static const char* harmony_regexp_named_captures_natives[] = {nullptr};
   static const char* harmony_regexp_property_natives[] = {nullptr};
-  static const char* harmony_function_name_natives[] = {nullptr};
   static const char* harmony_function_sent_natives[] = {nullptr};
   static const char* promise_extra_natives[] = {"native promise-extra.js",
                                                 nullptr};
@@ -3109,6 +3271,7 @@
 #endif
   static const char* harmony_async_await_natives[] = {
       "native harmony-async-await.js", nullptr};
+  static const char* harmony_restrictive_generators_natives[] = {nullptr};
 
   for (int i = ExperimentalNatives::GetDebuggerCount();
        i < ExperimentalNatives::GetBuiltinsCount(); i++) {
@@ -3295,12 +3458,12 @@
   return v8::internal::ComputePointerHash(extension);
 }
 
-
-Genesis::ExtensionStates::ExtensionStates() : map_(HashMap::PointersMatch, 8) {}
+Genesis::ExtensionStates::ExtensionStates()
+    : map_(base::HashMap::PointersMatch, 8) {}
 
 Genesis::ExtensionTraversalState Genesis::ExtensionStates::get_state(
     RegisteredExtension* extension) {
-  i::HashMap::Entry* entry = map_.Lookup(extension, Hash(extension));
+  base::HashMap::Entry* entry = map_.Lookup(extension, Hash(extension));
   if (entry == NULL) {
     return UNVISITED;
   }
@@ -3437,7 +3600,7 @@
     // Configure the global object.
     Handle<FunctionTemplateInfo> proxy_constructor(
         FunctionTemplateInfo::cast(global_proxy_data->constructor()));
-    if (!proxy_constructor->prototype_template()->IsUndefined()) {
+    if (!proxy_constructor->prototype_template()->IsUndefined(isolate())) {
       Handle<ObjectTemplateInfo> global_object_data(
           ObjectTemplateInfo::cast(proxy_constructor->prototype_template()));
       if (!ConfigureApiObject(global_object, global_object_data)) return false;
@@ -3533,7 +3696,7 @@
     int capacity = properties->Capacity();
     for (int i = 0; i < capacity; i++) {
       Object* raw_key(properties->KeyAt(i));
-      if (properties->IsKey(raw_key)) {
+      if (properties->IsKey(isolate(), raw_key)) {
         DCHECK(raw_key->IsName());
         // If the property is already there we skip it.
         Handle<Name> key(Name::cast(raw_key));
@@ -3544,7 +3707,7 @@
         DCHECK(properties->ValueAt(i)->IsPropertyCell());
         Handle<PropertyCell> cell(PropertyCell::cast(properties->ValueAt(i)));
         Handle<Object> value(cell->value(), isolate());
-        if (value->IsTheHole()) continue;
+        if (value->IsTheHole(isolate())) continue;
         PropertyDetails details = cell->property_details();
         DCHECK_EQ(kData, details.kind());
         JSObject::AddProperty(to, key, value, details.attributes());
@@ -3556,7 +3719,7 @@
     int capacity = properties->Capacity();
     for (int i = 0; i < capacity; i++) {
       Object* raw_key(properties->KeyAt(i));
-      if (properties->IsKey(raw_key)) {
+      if (properties->IsKey(isolate(), raw_key)) {
         DCHECK(raw_key->IsName());
         // If the property is already there we skip it.
         Handle<Name> key(Name::cast(raw_key));
@@ -3567,7 +3730,7 @@
         Handle<Object> value = Handle<Object>(properties->ValueAt(i),
                                               isolate());
         DCHECK(!value->IsCell());
-        DCHECK(!value->IsTheHole());
+        DCHECK(!value->IsTheHole(isolate()));
         PropertyDetails details = properties->DetailsAt(i);
         DCHECK_EQ(kData, details.kind());
         JSObject::AddProperty(to, key, value, details.attributes());
@@ -3644,7 +3807,7 @@
                  MaybeHandle<JSGlobalProxy> maybe_global_proxy,
                  v8::Local<v8::ObjectTemplate> global_proxy_template,
                  v8::ExtensionConfiguration* extensions,
-                 GlobalContextType context_type)
+                 size_t context_snapshot_index, GlobalContextType context_type)
     : isolate_(isolate), active_(isolate->bootstrapper()) {
   NoTrackDoubleFieldsForSerializerScope disable_scope(isolate);
   result_ = Handle<Context>::null();
@@ -3673,7 +3836,8 @@
   // a snapshot. Otherwise we have to build the context from scratch.
   // Also create a context from scratch to expose natives, if required by flag.
   if (!isolate->initialized_from_snapshot() ||
-      !Snapshot::NewContextFromSnapshot(isolate, global_proxy)
+      !Snapshot::NewContextFromSnapshot(isolate, global_proxy,
+                                        context_snapshot_index)
            .ToHandle(&native_context_)) {
     native_context_ = Handle<Context>();
   }
@@ -3715,10 +3879,9 @@
 
     MakeFunctionInstancePrototypeWritable();
 
-    if (context_type != THIN_CONTEXT) {
-      if (!InstallExtraNatives()) return;
-      if (!ConfigureGlobalObjects(global_proxy_template)) return;
-    }
+    if (!InstallExtraNatives()) return;
+    if (!ConfigureGlobalObjects(global_proxy_template)) return;
+
     isolate->counters()->contexts_created_from_scratch()->Increment();
     // Re-initialize the counter because it got incremented during snapshot
     // creation.
diff --git a/src/bootstrapper.h b/src/bootstrapper.h
index 5563eea..66a3d8a 100644
--- a/src/bootstrapper.h
+++ b/src/bootstrapper.h
@@ -61,7 +61,7 @@
   DISALLOW_COPY_AND_ASSIGN(SourceCodeCache);
 };
 
-enum GlobalContextType { FULL_CONTEXT, THIN_CONTEXT, DEBUG_CONTEXT };
+enum GlobalContextType { FULL_CONTEXT, DEBUG_CONTEXT };
 
 // The Boostrapper is the public interface for creating a JavaScript global
 // context.
@@ -79,7 +79,7 @@
   Handle<Context> CreateEnvironment(
       MaybeHandle<JSGlobalProxy> maybe_global_proxy,
       v8::Local<v8::ObjectTemplate> global_object_template,
-      v8::ExtensionConfiguration* extensions,
+      v8::ExtensionConfiguration* extensions, size_t context_snapshot_index,
       GlobalContextType context_type = FULL_CONTEXT);
 
   // Detach the environment from its outer global object.
diff --git a/src/builtins.cc b/src/builtins.cc
index 75f6150..24abb72 100644
--- a/src/builtins.cc
+++ b/src/builtins.cc
@@ -7,6 +7,7 @@
 #include "src/api-arguments.h"
 #include "src/api-natives.h"
 #include "src/api.h"
+#include "src/base/ieee754.h"
 #include "src/base/once.h"
 #include "src/bootstrapper.h"
 #include "src/code-factory.h"
@@ -18,8 +19,9 @@
 #include "src/ic/handler-compiler.h"
 #include "src/ic/ic.h"
 #include "src/isolate-inl.h"
+#include "src/json-parser.h"
+#include "src/json-stringifier.h"
 #include "src/messages.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/property-descriptor.h"
 #include "src/prototype.h"
 #include "src/string-builder.h"
@@ -32,7 +34,6 @@
 namespace {
 
 // Arguments object passed to C++ builtins.
-template <BuiltinExtraArguments extra_args>
 class BuiltinArguments : public Arguments {
  public:
   BuiltinArguments(int length, Object** arguments)
@@ -63,70 +64,19 @@
   }
 
   template <class S>
-  Handle<S> target();
-  Handle<HeapObject> new_target();
+  Handle<S> target() {
+    return Arguments::at<S>(Arguments::length() - 2);
+  }
+  Handle<HeapObject> new_target() {
+    return Arguments::at<HeapObject>(Arguments::length() - 1);
+  }
 
   // Gets the total number of arguments including the receiver (but
   // excluding extra arguments).
-  int length() const;
+  int length() const { return Arguments::length() - 2; }
 };
 
 
-// Specialize BuiltinArguments for the extra arguments.
-
-template <>
-int BuiltinArguments<BuiltinExtraArguments::kNone>::length() const {
-  return Arguments::length();
-}
-
-template <>
-int BuiltinArguments<BuiltinExtraArguments::kTarget>::length() const {
-  return Arguments::length() - 1;
-}
-
-template <>
-template <class S>
-Handle<S> BuiltinArguments<BuiltinExtraArguments::kTarget>::target() {
-  return Arguments::at<S>(Arguments::length() - 1);
-}
-
-template <>
-int BuiltinArguments<BuiltinExtraArguments::kNewTarget>::length() const {
-  return Arguments::length() - 1;
-}
-
-template <>
-Handle<HeapObject>
-BuiltinArguments<BuiltinExtraArguments::kNewTarget>::new_target() {
-  return Arguments::at<HeapObject>(Arguments::length() - 1);
-}
-
-template <>
-int BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>::length()
-    const {
-  return Arguments::length() - 2;
-}
-
-template <>
-template <class S>
-Handle<S>
-BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>::target() {
-  return Arguments::at<S>(Arguments::length() - 2);
-}
-
-template <>
-Handle<HeapObject>
-BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>::new_target() {
-  return Arguments::at<HeapObject>(Arguments::length() - 1);
-}
-
-
-#define DEF_ARG_TYPE(name, spec) \
-  typedef BuiltinArguments<BuiltinExtraArguments::spec> name##ArgumentsType;
-BUILTIN_LIST_C(DEF_ARG_TYPE)
-#undef DEF_ARG_TYPE
-
-
 // ----------------------------------------------------------------------------
 // Support macro for defining builtins in C++.
 // ----------------------------------------------------------------------------
@@ -141,29 +91,29 @@
 // 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);        \
-                                                                               \
-  V8_NOINLINE static Object* Builtin_Impl_Stats_##name(                        \
-      int args_length, Object** args_object, Isolate* isolate) {               \
-    name##ArgumentsType args(args_length, args_object);                        \
-    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name);   \
-    TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),                      \
-                 "V8.Builtin_" #name);                                         \
-    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) {                                             \
-      return Builtin_Impl_Stats_##name(args_length, args_object, isolate);     \
-    }                                                                          \
-    name##ArgumentsType args(args_length, args_object);                        \
-    return Builtin_Impl_##name(args, isolate);                                 \
-  }                                                                            \
-                                                                               \
-  MUST_USE_RESULT static Object* Builtin_Impl_##name(name##ArgumentsType args, \
+#define BUILTIN(name)                                                        \
+  MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \
+                                                     Isolate* isolate);      \
+                                                                             \
+  V8_NOINLINE static Object* Builtin_Impl_Stats_##name(                      \
+      int args_length, Object** args_object, Isolate* isolate) {             \
+    BuiltinArguments args(args_length, args_object);                         \
+    RuntimeCallTimerScope timer(isolate, &RuntimeCallStats::Builtin_##name); \
+    TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8.runtime"),                    \
+                 "V8.Builtin_" #name);                                       \
+    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) {                                           \
+      return Builtin_Impl_Stats_##name(args_length, args_object, isolate);   \
+    }                                                                        \
+    BuiltinArguments args(args_length, args_object);                         \
+    return Builtin_Impl_##name(args, isolate);                               \
+  }                                                                          \
+                                                                             \
+  MUST_USE_RESULT static Object* Builtin_Impl_##name(BuiltinArguments args,  \
                                                      Isolate* isolate)
 
 // ----------------------------------------------------------------------------
@@ -178,8 +128,22 @@
   }                                                                         \
   Handle<Type> name = Handle<Type>::cast(args.receiver())
 
+// Throws a TypeError for {method} if the receiver is not coercible to Object,
+// or converts the receiver to a String otherwise and assigns it to a new var
+// with the given {name}.
+#define TO_THIS_STRING(name, method)                                          \
+  if (args.receiver()->IsNull(isolate) ||                                     \
+      args.receiver()->IsUndefined(isolate)) {                                \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                           \
+        isolate,                                                              \
+        NewTypeError(MessageTemplate::kCalledOnNullOrUndefined,               \
+                     isolate->factory()->NewStringFromAsciiChecked(method))); \
+  }                                                                           \
+  Handle<String> name;                                                        \
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(                                         \
+      isolate, name, Object::ToString(isolate, args.receiver()))
 
-inline bool ClampedToInteger(Object* object, int* out) {
+inline bool ClampedToInteger(Isolate* isolate, Object* object, int* out) {
   // This is an extended version of ECMA-262 7.1.11 handling signed values
   // Try to convert object to a number and clamp values to [kMinInt, kMaxInt]
   if (object->IsSmi()) {
@@ -197,11 +161,11 @@
       *out = static_cast<int>(value);
     }
     return true;
-  } else if (object->IsUndefined() || object->IsNull()) {
+  } else if (object->IsUndefined(isolate) || object->IsNull(isolate)) {
     *out = 0;
     return true;
   } else if (object->IsBoolean()) {
-    *out = object->IsTrue();
+    *out = object->IsTrue(isolate);
     return true;
   }
   return false;
@@ -257,8 +221,7 @@
 
 inline bool HasOnlySimpleElements(Isolate* isolate, JSReceiver* receiver) {
   DisallowHeapAllocation no_gc;
-  PrototypeIterator iter(isolate, receiver,
-                         PrototypeIterator::START_AT_RECEIVER);
+  PrototypeIterator iter(isolate, receiver, kStartAtReceiver);
   for (; !iter.IsAtEnd(); iter.Advance()) {
     if (iter.GetCurrent()->IsJSProxy()) return false;
     JSObject* current = iter.GetCurrent<JSObject>();
@@ -271,7 +234,7 @@
 MUST_USE_RESULT
 inline bool EnsureJSArrayWithWritableFastElements(Isolate* isolate,
                                                   Handle<Object> receiver,
-                                                  Arguments* args,
+                                                  BuiltinArguments* args,
                                                   int first_added_arg) {
   if (!receiver->IsJSArray()) return false;
   Handle<JSArray> array = Handle<JSArray>::cast(receiver);
@@ -318,25 +281,18 @@
   return true;
 }
 
-
-MUST_USE_RESULT static Object* CallJsIntrinsic(
-    Isolate* isolate, Handle<JSFunction> function,
-    BuiltinArguments<BuiltinExtraArguments::kNone> args) {
+MUST_USE_RESULT static Object* CallJsIntrinsic(Isolate* isolate,
+                                               Handle<JSFunction> function,
+                                               BuiltinArguments args) {
   HandleScope handleScope(isolate);
   int argc = args.length() - 1;
   ScopedVector<Handle<Object> > argv(argc);
   for (int i = 0; i < argc; ++i) {
     argv[i] = args.at<Object>(i + 1);
   }
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      Execution::Call(isolate,
-                      function,
-                      args.receiver(),
-                      argc,
-                      argv.start()));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
+      Execution::Call(isolate, function, args.receiver(), argc, argv.start()));
 }
 
 
@@ -412,7 +368,7 @@
                        &call_runtime);
 
   assembler->Bind(&if_iskeyunique);
-  assembler->TryLookupProperty(object, map, instance_type, key, &return_true,
+  assembler->TryHasOwnProperty(object, map, instance_type, key, &return_true,
                                &return_false, &call_runtime);
 
   assembler->Bind(&keyisindex);
@@ -432,8 +388,7 @@
 
 namespace {
 
-Object* DoArrayPush(Isolate* isolate,
-                    BuiltinArguments<BuiltinExtraArguments::kNone> args) {
+Object* DoArrayPush(Isolate* isolate, BuiltinArguments args) {
   HandleScope scope(isolate);
   Handle<Object> receiver = args.receiver();
   if (!EnsureJSArrayWithWritableFastElements(isolate, receiver, &args, 1)) {
@@ -467,8 +422,8 @@
   DCHECK_EQ(2, args.length());
   Arguments* incoming = reinterpret_cast<Arguments*>(args[0]);
   // Rewrap the arguments as builtins arguments.
-  BuiltinArguments<BuiltinExtraArguments::kNone> caller_args(
-      incoming->length() + 1, incoming->arguments() + 1);
+  BuiltinArguments caller_args(incoming->length() + 3,
+                               incoming->arguments() + 1);
   return DoArrayPush(isolate, caller_args);
 }
 
@@ -588,16 +543,16 @@
   relative_end = len;
   if (argument_count > 0) {
     DisallowHeapAllocation no_gc;
-    if (!ClampedToInteger(args[1], &relative_start)) {
+    if (!ClampedToInteger(isolate, args[1], &relative_start)) {
       AllowHeapAllocation allow_allocation;
       return CallJsIntrinsic(isolate, isolate->array_slice(), args);
     }
     if (argument_count > 1) {
       Object* end_arg = args[2];
       // slice handles the end_arg specially
-      if (end_arg->IsUndefined()) {
+      if (end_arg->IsUndefined(isolate)) {
         relative_end = len;
-      } else if (!ClampedToInteger(end_arg, &relative_end)) {
+      } else if (!ClampedToInteger(isolate, end_arg, &relative_end)) {
         AllowHeapAllocation allow_allocation;
         return CallJsIntrinsic(isolate, isolate->array_slice(), args);
       }
@@ -635,7 +590,7 @@
   int relative_start = 0;
   if (argument_count > 0) {
     DisallowHeapAllocation no_gc;
-    if (!ClampedToInteger(args[1], &relative_start)) {
+    if (!ClampedToInteger(isolate, args[1], &relative_start)) {
       AllowHeapAllocation allow_allocation;
       return CallJsIntrinsic(isolate, isolate->array_splice(), args);
     }
@@ -657,7 +612,7 @@
     int delete_count = 0;
     DisallowHeapAllocation no_gc;
     if (argument_count > 1) {
-      if (!ClampedToInteger(args[2], &delete_count)) {
+      if (!ClampedToInteger(isolate, args[2], &delete_count)) {
         AllowHeapAllocation allow_allocation;
         return CallJsIntrinsic(isolate, isolate->array_splice(), args);
       }
@@ -810,7 +765,7 @@
     FOR_WITH_HANDLE_SCOPE(
         isolate_, uint32_t, i = 0, i, i < current_length, i++, {
           Handle<Object> element(current_storage->get(i), isolate_);
-          if (!element->IsTheHole()) {
+          if (!element->IsTheHole(isolate_)) {
             // The object holding this backing store has just been allocated, so
             // it cannot yet be used as a prototype.
             Handle<SeededNumberDictionary> new_storage =
@@ -856,6 +811,7 @@
 
 
 uint32_t EstimateElementCount(Handle<JSArray> array) {
+  DisallowHeapAllocation no_gc;
   uint32_t length = static_cast<uint32_t>(array->length()->Number());
   int element_count = 0;
   switch (array->GetElementsKind()) {
@@ -867,9 +823,10 @@
       // a 32-bit signed integer.
       DCHECK(static_cast<int32_t>(FixedArray::kMaxLength) >= 0);
       int fast_length = static_cast<int>(length);
-      Handle<FixedArray> elements(FixedArray::cast(array->elements()));
+      Isolate* isolate = array->GetIsolate();
+      FixedArray* elements = FixedArray::cast(array->elements());
       for (int i = 0; i < fast_length; i++) {
-        if (!elements->get(i)->IsTheHole()) element_count++;
+        if (!elements->get(i)->IsTheHole(isolate)) element_count++;
       }
       break;
     }
@@ -883,20 +840,20 @@
         DCHECK(FixedArray::cast(array->elements())->length() == 0);
         break;
       }
-      Handle<FixedDoubleArray> elements(
-          FixedDoubleArray::cast(array->elements()));
+      FixedDoubleArray* elements = FixedDoubleArray::cast(array->elements());
       for (int i = 0; i < fast_length; i++) {
         if (!elements->is_the_hole(i)) element_count++;
       }
       break;
     }
     case DICTIONARY_ELEMENTS: {
-      Handle<SeededNumberDictionary> dictionary(
-          SeededNumberDictionary::cast(array->elements()));
+      SeededNumberDictionary* dictionary =
+          SeededNumberDictionary::cast(array->elements());
+      Isolate* isolate = dictionary->GetIsolate();
       int capacity = dictionary->Capacity();
       for (int i = 0; i < capacity; i++) {
-        Handle<Object> key(dictionary->KeyAt(i), array->GetIsolate());
-        if (dictionary->IsKey(*key)) {
+        Object* key = dictionary->KeyAt(i);
+        if (dictionary->IsKey(isolate, key)) {
           element_count++;
         }
       }
@@ -945,7 +902,7 @@
       uint32_t length = static_cast<uint32_t>(elements->length());
       if (range < length) length = range;
       for (uint32_t i = 0; i < length; i++) {
-        if (!elements->get(i)->IsTheHole()) {
+        if (!elements->get(i)->IsTheHole(isolate)) {
           indices->Add(i);
         }
       }
@@ -973,13 +930,9 @@
       SeededNumberDictionary* dict =
           SeededNumberDictionary::cast(object->elements());
       uint32_t capacity = dict->Capacity();
-      Heap* heap = isolate->heap();
-      Object* undefined = heap->undefined_value();
-      Object* the_hole = heap->the_hole_value();
       FOR_WITH_HANDLE_SCOPE(isolate, uint32_t, j = 0, j, j < capacity, j++, {
         Object* k = dict->KeyAt(j);
-        if (k == undefined) continue;
-        if (k == the_hole) continue;
+        if (!dict->IsKey(isolate, k)) continue;
         DCHECK(k->IsNumber());
         uint32_t index = static_cast<uint32_t>(k->Number());
         if (index < range) {
@@ -1088,12 +1041,8 @@
     length = static_cast<uint32_t>(array->length()->Number());
   } else {
     Handle<Object> val;
-    Handle<Object> key = isolate->factory()->length_string();
     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate, val, Runtime::GetObjectProperty(isolate, receiver, key),
-        false);
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, val,
-                                     Object::ToLength(isolate, val), false);
+        isolate, val, Object::GetLengthFromArrayLike(isolate, receiver), false);
     // TODO(caitp): Support larger element indexes (up to 2^53-1).
     if (!val->ToUint32(&length)) {
       length = 0;
@@ -1119,7 +1068,7 @@
       DCHECK(fast_length <= elements->length());
       FOR_WITH_HANDLE_SCOPE(isolate, int, j = 0, j, j < fast_length, j++, {
         Handle<Object> element_value(elements->get(j), isolate);
-        if (!element_value->IsTheHole()) {
+        if (!element_value->IsTheHole(isolate)) {
           if (!visitor->visit(j, element_value)) return false;
         } else {
           Maybe<bool> maybe = JSReceiver::HasElement(array, j);
@@ -1233,13 +1182,12 @@
     MaybeHandle<Object> maybeValue =
         i::Runtime::GetObjectProperty(isolate, obj, key);
     if (!maybeValue.ToHandle(&value)) return Nothing<bool>();
-    if (!value->IsUndefined()) return Just(value->BooleanValue());
+    if (!value->IsUndefined(isolate)) return Just(value->BooleanValue());
   }
   return Object::IsArray(obj);
 }
 
-
-Object* Slow_ArrayConcat(Arguments* args, Handle<Object> species,
+Object* Slow_ArrayConcat(BuiltinArguments* args, Handle<Object> species,
                          Isolate* isolate) {
   int argument_count = args->length();
 
@@ -1436,7 +1384,8 @@
   return false;
 }
 
-MaybeHandle<JSArray> Fast_ArrayConcat(Isolate* isolate, Arguments* args) {
+MaybeHandle<JSArray> Fast_ArrayConcat(Isolate* isolate,
+                                      BuiltinArguments* args) {
   if (!isolate->IsIsConcatSpreadableLookupChainIntact()) {
     return MaybeHandle<JSArray>();
   }
@@ -1471,7 +1420,8 @@
       result_len += Smi::cast(array->length())->value();
       DCHECK(result_len >= 0);
       // Throw an Error if we overflow the FixedArray limits
-      if (FixedArray::kMaxLength < result_len) {
+      if (FixedDoubleArray::kMaxLength < result_len ||
+          FixedArray::kMaxLength < result_len) {
         AllowHeapAllocation gc;
         THROW_NEW_ERROR(isolate,
                         NewRangeError(MessageTemplate::kInvalidArrayLength),
@@ -1491,7 +1441,7 @@
 
   Handle<Object> receiver = args.receiver();
   // TODO(bmeurer): Do we really care about the exact exception message here?
-  if (receiver->IsNull() || receiver->IsUndefined()) {
+  if (receiver->IsNull(isolate) || receiver->IsUndefined(isolate)) {
     THROW_NEW_ERROR_RETURN_FAILURE(
         isolate, NewTypeError(MessageTemplate::kCalledOnNullOrUndefined,
                               isolate->factory()->NewStringFromAsciiChecked(
@@ -1636,8 +1586,9 @@
     // 4b ii. Let keys be ? from.[[OwnPropertyKeys]]().
     Handle<FixedArray> keys;
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, keys,
-        JSReceiver::GetKeys(from, OWN_ONLY, ALL_PROPERTIES, KEEP_NUMBERS));
+        isolate, keys, KeyAccumulator::GetKeys(
+                           from, KeyCollectionMode::kOwnOnly, ALL_PROPERTIES,
+                           GetKeysConversion::kKeepNumbers));
     // 4c. Repeat for each element nextKey of keys in List order,
     for (int j = 0; j < keys->length(); ++j) {
       Handle<Object> next_key(keys->get(j), isolate);
@@ -1667,10 +1618,12 @@
 
 
 // ES6 section 19.1.2.2 Object.create ( O [ , Properties ] )
+// TODO(verwaest): Support the common cases with precached map directly in
+// an Object.create stub.
 BUILTIN(ObjectCreate) {
   HandleScope scope(isolate);
   Handle<Object> prototype = args.atOrUndefined(isolate, 1);
-  if (!prototype->IsNull() && !prototype->IsJSReceiver()) {
+  if (!prototype->IsNull(isolate) && !prototype->IsJSReceiver()) {
     THROW_NEW_ERROR_RETURN_FAILURE(
         isolate, NewTypeError(MessageTemplate::kProtoObjectOrNull, prototype));
   }
@@ -1682,7 +1635,26 @@
   Handle<Map> map(isolate->native_context()->object_function()->initial_map(),
                   isolate);
   if (map->prototype() != *prototype) {
-    map = Map::TransitionToPrototype(map, prototype, FAST_PROTOTYPE);
+    if (prototype->IsNull(isolate)) {
+      map = isolate->object_with_null_prototype_map();
+    } else if (prototype->IsJSObject()) {
+      Handle<JSObject> js_prototype = Handle<JSObject>::cast(prototype);
+      if (!js_prototype->map()->is_prototype_map()) {
+        JSObject::OptimizeAsPrototype(js_prototype, FAST_PROTOTYPE);
+      }
+      Handle<PrototypeInfo> info =
+          Map::GetOrCreatePrototypeInfo(js_prototype, isolate);
+      // TODO(verwaest): Use inobject slack tracking for this map.
+      if (info->HasObjectCreateMap()) {
+        map = handle(info->ObjectCreateMap(), isolate);
+      } else {
+        map = Map::CopyInitialMap(map);
+        Map::SetPrototype(map, prototype, FAST_PROTOTYPE);
+        PrototypeInfo::SetObjectCreateMap(info, map);
+      }
+    } else {
+      map = Map::TransitionToPrototype(map, prototype, REGULAR_PROTOTYPE);
+    }
   }
 
   // Actually allocate the object.
@@ -1690,7 +1662,7 @@
 
   // Define the properties if properties was specified and is not undefined.
   Handle<Object> properties = args.atOrUndefined(isolate, 2);
-  if (!properties->IsUndefined()) {
+  if (!properties->IsUndefined(isolate)) {
     RETURN_FAILURE_ON_EXCEPTION(
         isolate, JSReceiver::DefineProperties(isolate, object, properties));
   }
@@ -1705,11 +1677,8 @@
   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;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, JSReceiver::DefineProperties(isolate, target, properties));
 }
 
 // ES6 section 19.1.2.4 Object.defineProperty
@@ -1760,6 +1729,9 @@
   Maybe<bool> success = JSReceiver::DefineOwnProperty(
       isolate, receiver, name, &desc, Object::DONT_THROW);
   MAYBE_RETURN(success, isolate->heap()->exception());
+  if (!success.FromJust()) {
+    isolate->CountUsage(v8::Isolate::kDefineGetterOrSetterWouldThrow);
+  }
   // 6. Return undefined.
   return isolate->heap()->undefined_value();
 }
@@ -1871,11 +1843,8 @@
   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;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           JSReceiver::GetPrototype(isolate, receiver));
 }
 
 
@@ -1905,8 +1874,7 @@
 
 namespace {
 
-Object* GetOwnPropertyKeys(Isolate* isolate,
-                           BuiltinArguments<BuiltinExtraArguments::kNone> args,
+Object* GetOwnPropertyKeys(Isolate* isolate, BuiltinArguments args,
                            PropertyFilter filter) {
   HandleScope scope(isolate);
   Handle<Object> object = args.atOrUndefined(isolate, 1);
@@ -1916,7 +1884,8 @@
   Handle<FixedArray> keys;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, keys,
-      JSReceiver::GetKeys(receiver, OWN_ONLY, filter, CONVERT_TO_STRING));
+      KeyAccumulator::GetKeys(receiver, KeyCollectionMode::kOwnOnly, filter,
+                              GetKeysConversion::kConvertToString));
   return *isolate->factory()->NewJSArrayWithElements(keys);
 }
 
@@ -2012,8 +1981,9 @@
   } else {
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
         isolate, keys,
-        JSReceiver::GetKeys(receiver, OWN_ONLY, ENUMERABLE_STRINGS,
-                            CONVERT_TO_STRING));
+        KeyAccumulator::GetKeys(receiver, KeyCollectionMode::kOwnOnly,
+                                ENUMERABLE_STRINGS,
+                                GetKeysConversion::kConvertToString));
   }
   return *isolate->factory()->NewJSArrayWithElements(keys, FAST_ELEMENTS);
 }
@@ -2055,8 +2025,9 @@
 
   Handle<FixedArray> keys;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, keys, JSReceiver::GetKeys(receiver, OWN_ONLY, ALL_PROPERTIES,
-                                         CONVERT_TO_STRING));
+      isolate, keys, KeyAccumulator::GetKeys(
+                         receiver, KeyCollectionMode::kOwnOnly, ALL_PROPERTIES,
+                         GetKeysConversion::kConvertToString));
 
   Handle<JSObject> descriptors =
       isolate->factory()->NewJSObject(isolate->object_function());
@@ -2107,6 +2078,29 @@
   return *object;
 }
 
+// ES6 section 18.2.6.2 decodeURI (encodedURI)
+BUILTIN(GlobalDecodeURI) {
+  HandleScope scope(isolate);
+  Handle<String> encoded_uri;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, encoded_uri,
+      Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  RETURN_RESULT_OR_FAILURE(isolate, Uri::DecodeUri(isolate, encoded_uri));
+}
+
+// ES6 section 18.2.6.3 decodeURIComponent (encodedURIComponent)
+BUILTIN(GlobalDecodeURIComponent) {
+  HandleScope scope(isolate);
+  Handle<String> encoded_uri_component;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, encoded_uri_component,
+      Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Uri::DecodeUriComponent(isolate, encoded_uri_component));
+}
+
 // ES6 section 18.2.6.4 encodeURI (uri)
 BUILTIN(GlobalEncodeURI) {
   HandleScope scope(isolate);
@@ -2114,25 +2108,48 @@
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, uri, Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
 
-  return Uri::EncodeUri(isolate, uri);
+  RETURN_RESULT_OR_FAILURE(isolate, Uri::EncodeUri(isolate, uri));
 }
 
 // ES6 section 18.2.6.5 encodeURIComponenet (uriComponent)
 BUILTIN(GlobalEncodeURIComponent) {
   HandleScope scope(isolate);
-  Handle<String> uriComponent;
+  Handle<String> uri_component;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, uriComponent,
+      isolate, uri_component,
       Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
 
-  return Uri::EncodeUriComponent(isolate, uriComponent);
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Uri::EncodeUriComponent(isolate, uri_component));
+}
+
+// ES6 section B.2.1.1 escape (string)
+BUILTIN(GlobalEscape) {
+  HandleScope scope(isolate);
+  Handle<String> string;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, string,
+      Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  RETURN_RESULT_OR_FAILURE(isolate, Uri::Escape(isolate, string));
+}
+
+// ES6 section B.2.1.2 unescape (string)
+BUILTIN(GlobalUnescape) {
+  HandleScope scope(isolate);
+  Handle<String> string;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, string,
+      Object::ToString(isolate, args.atOrUndefined(isolate, 1)));
+
+  RETURN_RESULT_OR_FAILURE(isolate, Uri::Unescape(isolate, string));
 }
 
 namespace {
 
 bool CodeGenerationFromStringsAllowed(Isolate* isolate,
                                       Handle<Context> context) {
-  DCHECK(context->allow_code_gen_from_strings()->IsFalse());
+  DCHECK(context->allow_code_gen_from_strings()->IsFalse(isolate));
   // Check with callback if set.
   AllowCodeGenerationFromStringsCallback callback =
       isolate->allow_code_gen_callback();
@@ -2155,7 +2172,7 @@
 
   // Check if native context allows code generation from
   // strings. Throw an exception if it doesn't.
-  if (native_context->allow_code_gen_from_strings()->IsFalse() &&
+  if (native_context->allow_code_gen_from_strings()->IsFalse(isolate) &&
       !CodeGenerationFromStringsAllowed(isolate, native_context)) {
     Handle<Object> error_message =
         native_context->ErrorMessageForCodeGenerationFromStrings();
@@ -2188,13 +2205,36 @@
       isolate, function,
       CompileString(handle(target->native_context(), isolate),
                     Handle<String>::cast(x), NO_PARSE_RESTRICTION));
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Execution::Call(isolate, function, target_global_proxy, 0, nullptr));
-  return *result;
 }
 
+// ES6 section 24.3.1 JSON.parse.
+BUILTIN(JsonParse) {
+  HandleScope scope(isolate);
+  Handle<Object> source = args.atOrUndefined(isolate, 1);
+  Handle<Object> reviver = args.atOrUndefined(isolate, 2);
+  Handle<String> string;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, string,
+                                     Object::ToString(isolate, source));
+  string = String::Flatten(string);
+  RETURN_RESULT_OR_FAILURE(
+      isolate, string->IsSeqOneByteString()
+                   ? JsonParser<true>::Parse(isolate, string, reviver)
+                   : JsonParser<false>::Parse(isolate, string, reviver));
+}
+
+// ES6 section 24.3.2 JSON.stringify.
+BUILTIN(JsonStringify) {
+  HandleScope scope(isolate);
+  JsonStringifier stringifier(isolate);
+  Handle<Object> object = args.atOrUndefined(isolate, 1);
+  Handle<Object> replacer = args.atOrUndefined(isolate, 2);
+  Handle<Object> indent = args.atOrUndefined(isolate, 3);
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           stringifier.Stringify(object, replacer, indent));
+}
 
 // -----------------------------------------------------------------------------
 // ES6 section 20.2.2 Function Properties of the Math Object
@@ -2219,14 +2259,42 @@
   return *isolate->factory()->NewHeapNumber(std::asin(x->Number()));
 }
 
-
 // ES6 section 20.2.2.6 Math.atan ( x )
-BUILTIN(MathAtan) {
-  HandleScope scope(isolate);
-  DCHECK_EQ(2, args.length());
-  Handle<Object> x = args.at<Object>(1);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, x, Object::ToNumber(x));
-  return *isolate->factory()->NewHeapNumber(std::atan(x->Number()));
+void Builtins::Generate_MathAtan(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Atan(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.8 Math.atan2 ( y, x )
+void Builtins::Generate_MathAtan2(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* y = assembler->Parameter(1);
+  Node* x = assembler->Parameter(2);
+  Node* context = assembler->Parameter(5);
+  Node* y_value = assembler->TruncateTaggedToFloat64(context, y);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Atan2(y_value, x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.7 Math.atanh ( x )
+void Builtins::Generate_MathAtanh(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Atanh(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
 }
 
 namespace {
@@ -2297,6 +2365,18 @@
   Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Ceil);
 }
 
+// ES6 section 20.2.2.9 Math.cbrt ( x )
+void Builtins::Generate_MathCbrt(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Cbrt(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
 // ES6 section 20.2.2.11 Math.clz32 ( x )
 void Builtins::Generate_MathClz32(CodeStubAssembler* assembler) {
   typedef CodeStubAssembler::Label Label;
@@ -2365,6 +2445,30 @@
   }
 }
 
+// ES6 section 20.2.2.12 Math.cos ( x )
+void Builtins::Generate_MathCos(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Cos(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.14 Math.exp ( x )
+void Builtins::Generate_MathExp(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Exp(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
 // ES6 section 20.2.2.16 Math.floor ( x )
 void Builtins::Generate_MathFloor(CodeStubAssembler* assembler) {
   Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Floor);
@@ -2392,11 +2496,83 @@
   return *isolate->factory()->NewNumberFromInt(product);
 }
 
+// ES6 section 20.2.2.20 Math.log ( x )
+void Builtins::Generate_MathLog(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Log(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.21 Math.log1p ( x )
+void Builtins::Generate_MathLog1p(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Log1p(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.23 Math.log2 ( x )
+void Builtins::Generate_MathLog2(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Log2(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.22 Math.log10 ( x )
+void Builtins::Generate_MathLog10(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Log10(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
+// ES6 section 20.2.2.15 Math.expm1 ( x )
+void Builtins::Generate_MathExpm1(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Expm1(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
 // ES6 section 20.2.2.28 Math.round ( x )
 void Builtins::Generate_MathRound(CodeStubAssembler* assembler) {
   Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Round);
 }
 
+// ES6 section 20.2.2.30 Math.sin ( x )
+void Builtins::Generate_MathSin(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Sin(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
 // ES6 section 20.2.2.32 Math.sqrt ( x )
 void Builtins::Generate_MathSqrt(CodeStubAssembler* assembler) {
   using compiler::Node;
@@ -2409,6 +2585,18 @@
   assembler->Return(result);
 }
 
+// ES6 section 20.2.2.33 Math.tan ( x )
+void Builtins::Generate_MathTan(CodeStubAssembler* assembler) {
+  using compiler::Node;
+
+  Node* x = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+  Node* x_value = assembler->TruncateTaggedToFloat64(context, x);
+  Node* value = assembler->Float64Tan(x_value);
+  Node* result = assembler->ChangeFloat64ToTagged(value);
+  assembler->Return(result);
+}
+
 // ES6 section 20.2.2.35 Math.trunc ( x )
 void Builtins::Generate_MathTrunc(CodeStubAssembler* assembler) {
   Generate_MathRoundingOperation(assembler, &CodeStubAssembler::Float64Trunc);
@@ -2612,12 +2800,9 @@
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, name,
                                      Object::ToName(isolate, key));
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::GetPropertyOrElement(
-                           receiver, name, Handle<JSReceiver>::cast(target)));
-
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::GetPropertyOrElement(receiver, name,
+                                            Handle<JSReceiver>::cast(target)));
 }
 
 
@@ -2660,11 +2845,9 @@
                               isolate->factory()->NewStringFromAsciiChecked(
                                   "Reflect.getPrototypeOf")));
   }
-  Handle<Object> prototype;
   Handle<JSReceiver> receiver = Handle<JSReceiver>::cast(target);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, prototype, JSReceiver::GetPrototype(isolate, receiver));
-  return *prototype;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           JSReceiver::GetPrototype(isolate, receiver));
 }
 
 
@@ -2729,8 +2912,9 @@
   Handle<FixedArray> keys;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, keys,
-      JSReceiver::GetKeys(Handle<JSReceiver>::cast(target), OWN_ONLY,
-                          ALL_PROPERTIES, CONVERT_TO_STRING));
+      KeyAccumulator::GetKeys(Handle<JSReceiver>::cast(target),
+                              KeyCollectionMode::kOwnOnly, ALL_PROPERTIES,
+                              GetKeysConversion::kConvertToString));
   return *isolate->factory()->NewJSArrayWithElements(keys);
 }
 
@@ -2797,7 +2981,7 @@
                                   "Reflect.setPrototypeOf")));
   }
 
-  if (!proto->IsJSReceiver() && !proto->IsNull()) {
+  if (!proto->IsJSReceiver() && !proto->IsNull(isolate)) {
     THROW_NEW_ERROR_RETURN_FAILURE(
         isolate, NewTypeError(MessageTemplate::kProtoObjectOrNull, proto));
   }
@@ -2905,7 +3089,7 @@
 
   // 4. Let numberOffset be ? ToNumber(byteOffset).
   Handle<Object> number_offset;
-  if (byte_offset->IsUndefined()) {
+  if (byte_offset->IsUndefined(isolate)) {
     // We intentionally violate the specification at this point to allow
     // for new DataView(buffer) invocations to be equivalent to the full
     // new DataView(buffer, 0) invocation.
@@ -2940,7 +3124,7 @@
   }
 
   Handle<Object> view_byte_length;
-  if (byte_length->IsUndefined()) {
+  if (byte_length->IsUndefined(isolate)) {
     // 10. If byteLength is undefined, then
     //       a. Let viewByteLength be bufferByteLength - offset.
     view_byte_length =
@@ -2982,6 +3166,119 @@
   return *result;
 }
 
+// ES6 section 24.2.4.1 get DataView.prototype.buffer
+BUILTIN(DataViewPrototypeGetBuffer) {
+  HandleScope scope(isolate);
+  CHECK_RECEIVER(JSDataView, data_view, "get DataView.prototype.buffer");
+  return data_view->buffer();
+}
+
+// ES6 section 24.2.4.2 get DataView.prototype.byteLength
+BUILTIN(DataViewPrototypeGetByteLength) {
+  HandleScope scope(isolate);
+  CHECK_RECEIVER(JSDataView, data_view, "get DataView.prototype.byteLength");
+  // TODO(bmeurer): According to the ES6 spec, we should throw a TypeError
+  // here if the JSArrayBuffer of the {data_view} was neutered.
+  return data_view->byte_length();
+}
+
+// ES6 section 24.2.4.3 get DataView.prototype.byteOffset
+BUILTIN(DataViewPrototypeGetByteOffset) {
+  HandleScope scope(isolate);
+  CHECK_RECEIVER(JSDataView, data_view, "get DataView.prototype.byteOffset");
+  // TODO(bmeurer): According to the ES6 spec, we should throw a TypeError
+  // here if the JSArrayBuffer of the {data_view} was neutered.
+  return data_view->byte_offset();
+}
+
+// -----------------------------------------------------------------------------
+// ES6 section 22.2 TypedArray Objects
+
+// ES6 section 22.2.3.1 get %TypedArray%.prototype.buffer
+BUILTIN(TypedArrayPrototypeBuffer) {
+  HandleScope scope(isolate);
+  CHECK_RECEIVER(JSTypedArray, typed_array, "get TypedArray.prototype.buffer");
+  return *typed_array->GetBuffer();
+}
+
+namespace {
+
+void Generate_TypedArrayProtoypeGetter(CodeStubAssembler* assembler,
+                                       const char* method_name,
+                                       int object_offset) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* context = assembler->Parameter(3);
+
+  // Check if the {receiver} is actually a JSTypedArray.
+  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_TYPED_ARRAY_TYPE)),
+      &if_receiverisincompatible);
+
+  // Check if the {receiver}'s JSArrayBuffer was neutered.
+  Node* receiver_buffer =
+      assembler->LoadObjectField(receiver, JSTypedArray::kBufferOffset);
+  Node* receiver_buffer_bit_field = assembler->LoadObjectField(
+      receiver_buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32());
+  Label if_receiverisneutered(assembler, Label::kDeferred);
+  assembler->GotoUnless(
+      assembler->Word32Equal(
+          assembler->Word32And(
+              receiver_buffer_bit_field,
+              assembler->Int32Constant(JSArrayBuffer::WasNeutered::kMask)),
+          assembler->Int32Constant(0)),
+      &if_receiverisneutered);
+  assembler->Return(assembler->LoadObjectField(receiver, object_offset));
+
+  assembler->Bind(&if_receiverisneutered);
+  {
+    // The {receiver}s buffer was neutered, default to zero.
+    assembler->Return(assembler->SmiConstant(0));
+  }
+
+  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.
+  }
+}
+
+}  // namespace
+
+// ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength
+void Builtins::Generate_TypedArrayPrototypeByteLength(
+    CodeStubAssembler* assembler) {
+  Generate_TypedArrayProtoypeGetter(assembler,
+                                    "get TypedArray.prototype.byteLength",
+                                    JSTypedArray::kByteLengthOffset);
+}
+
+// ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset
+void Builtins::Generate_TypedArrayPrototypeByteOffset(
+    CodeStubAssembler* assembler) {
+  Generate_TypedArrayProtoypeGetter(assembler,
+                                    "get TypedArray.prototype.byteOffset",
+                                    JSTypedArray::kByteOffsetOffset);
+}
+
+// ES6 section 22.2.3.18 get %TypedArray%.prototype.length
+void Builtins::Generate_TypedArrayPrototypeLength(
+    CodeStubAssembler* assembler) {
+  Generate_TypedArrayProtoypeGetter(assembler,
+                                    "get TypedArray.prototype.length",
+                                    JSTypedArray::kLengthOffset);
+}
 
 // -----------------------------------------------------------------------------
 // ES6 section 20.3 Date Objects
@@ -3100,11 +3397,9 @@
   String::FlatContent str_content = str->GetFlatContent();
   bool result;
   if (str_content.IsOneByte()) {
-    result = DateParser::Parse(str_content.ToOneByteVector(), *tmp,
-                               isolate->unicode_cache());
+    result = DateParser::Parse(isolate, str_content.ToOneByteVector(), *tmp);
   } else {
-    result = DateParser::Parse(str_content.ToUC16Vector(), *tmp,
-                               isolate->unicode_cache());
+    result = DateParser::Parse(isolate, str_content.ToUC16Vector(), *tmp);
   }
   if (!result) return std::numeric_limits<double>::quiet_NaN();
   double const day = MakeDay(tmp->get(0)->Number(), tmp->get(1)->Number(),
@@ -3112,7 +3407,7 @@
   double const time = MakeTime(tmp->get(3)->Number(), tmp->get(4)->Number(),
                                tmp->get(5)->Number(), tmp->get(6)->Number());
   double date = MakeDate(day, time);
-  if (tmp->get(7)->IsNull()) {
+  if (tmp->get(7)->IsNull(isolate)) {
     if (!std::isnan(date)) {
       date = isolate->date_cache()->ToUTC(static_cast<int64_t>(date));
     }
@@ -3183,11 +3478,8 @@
   double const time_val = JSDate::CurrentTimeValue(isolate);
   char buffer[128];
   ToDateString(time_val, ArrayVector(buffer), isolate->date_cache());
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
 }
 
 
@@ -3269,10 +3561,7 @@
       time_val = std::numeric_limits<double>::quiet_NaN();
     }
   }
-  Handle<JSDate> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     JSDate::New(target, new_target, time_val));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSDate::New(target, new_target, time_val));
 }
 
 
@@ -3767,11 +4056,8 @@
   char buffer[128];
   ToDateString(date->value()->Number(), ArrayVector(buffer),
                isolate->date_cache(), kDateOnly);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
 }
 
 
@@ -3810,11 +4096,8 @@
   char buffer[128];
   ToDateString(date->value()->Number(), ArrayVector(buffer),
                isolate->date_cache());
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
 }
 
 
@@ -3825,11 +4108,8 @@
   char buffer[128];
   ToDateString(date->value()->Number(), ArrayVector(buffer),
                isolate->date_cache(), kTimeOnly);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromUtf8(CStrVector(buffer)));
 }
 
 
@@ -3867,10 +4147,7 @@
   DCHECK_EQ(2, args.length());
   CHECK_RECEIVER(JSReceiver, receiver, "Date.prototype [ @@toPrimitive ]");
   Handle<Object> hint = args.at<Object>(1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     JSDate::ToPrimitive(receiver, hint));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSDate::ToPrimitive(receiver, hint));
 }
 
 
@@ -3914,6 +4191,33 @@
   return SetLocalDateValue(date, time_val);
 }
 
+// ES6 section 20.3.4.37 Date.prototype.toJSON ( key )
+BUILTIN(DatePrototypeToJson) {
+  HandleScope scope(isolate);
+  Handle<Object> receiver = args.atOrUndefined(isolate, 0);
+  Handle<JSReceiver> receiver_obj;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver_obj,
+                                     Object::ToObject(isolate, receiver));
+  Handle<Object> primitive;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, primitive,
+      Object::ToPrimitive(receiver_obj, ToPrimitiveHint::kNumber));
+  if (primitive->IsNumber() && !std::isfinite(primitive->Number())) {
+    return isolate->heap()->null_value();
+  } else {
+    Handle<String> name =
+        isolate->factory()->NewStringFromAsciiChecked("toISOString");
+    Handle<Object> function;
+    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, function,
+                                       Object::GetProperty(receiver_obj, name));
+    if (!function->IsCallable()) {
+      THROW_NEW_ERROR_RETURN_FAILURE(
+          isolate, NewTypeError(MessageTemplate::kCalledNonCallable, name));
+    }
+    RETURN_RESULT_OR_FAILURE(
+        isolate, Execution::Call(isolate, function, receiver_obj, 0, NULL));
+  }
+}
 
 // static
 void Builtins::Generate_DatePrototypeGetDate(MacroAssembler* masm) {
@@ -4026,10 +4330,9 @@
 namespace {
 
 // ES6 section 19.2.1.1.1 CreateDynamicFunction
-MaybeHandle<JSFunction> CreateDynamicFunction(
-    Isolate* isolate,
-    BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget> args,
-    const char* token) {
+MaybeHandle<JSFunction> CreateDynamicFunction(Isolate* isolate,
+                                              BuiltinArguments args,
+                                              const char* token) {
   // Compute number of arguments, ignoring the receiver.
   DCHECK_LE(1, args.length());
   int const argc = args.length() - 1;
@@ -4115,7 +4418,7 @@
   // function has wrong initial map. To fix that we create a new
   // function object with correct initial map.
   Handle<Object> unchecked_new_target = args.new_target();
-  if (!unchecked_new_target->IsUndefined() &&
+  if (!unchecked_new_target->IsUndefined(isolate) &&
       !unchecked_new_target.is_identical_to(target)) {
     Handle<JSReceiver> new_target =
         Handle<JSReceiver>::cast(unchecked_new_target);
@@ -4147,9 +4450,9 @@
   return *result;
 }
 
+namespace {
 
-// ES6 section 19.2.3.2 Function.prototype.bind ( thisArg, ...args )
-BUILTIN(FunctionPrototypeBind) {
+Object* DoFunctionBind(Isolate* isolate, BuiltinArguments args) {
   HandleScope scope(isolate);
   DCHECK_LE(1, args.length());
   if (!args.receiver()->IsCallable()) {
@@ -4233,6 +4536,22 @@
   return *function;
 }
 
+}  // namespace
+
+// ES6 section 19.2.3.2 Function.prototype.bind ( thisArg, ...args )
+BUILTIN(FunctionPrototypeBind) { return DoFunctionBind(isolate, args); }
+
+// TODO(verwaest): This is a temporary helper until the FastFunctionBind stub
+// can tailcall to the builtin directly.
+RUNTIME_FUNCTION(Runtime_FunctionBind) {
+  DCHECK_EQ(2, args.length());
+  Arguments* incoming = reinterpret_cast<Arguments*>(args[0]);
+  // Rewrap the arguments as builtins arguments.
+  BuiltinArguments caller_args(incoming->length() + 3,
+                               incoming->arguments() + 1);
+  return DoFunctionBind(isolate, caller_args);
+}
+
 // ES6 section 19.2.3.5 Function.prototype.toString ( )
 BUILTIN(FunctionPrototypeToString) {
   HandleScope scope(isolate);
@@ -4252,18 +4571,23 @@
 // ES6 section 25.2.1.1 GeneratorFunction (p1, p2, ... , pn, body)
 BUILTIN(GeneratorFunctionConstructor) {
   HandleScope scope(isolate);
-  Handle<JSFunction> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, CreateDynamicFunction(isolate, args, "function*"));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           CreateDynamicFunction(isolate, args, "function*"));
 }
 
 BUILTIN(AsyncFunctionConstructor) {
   HandleScope scope(isolate);
-  Handle<JSFunction> result;
+  Handle<JSFunction> func;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, CreateDynamicFunction(isolate, args, "async function"));
-  return *result;
+      isolate, func, CreateDynamicFunction(isolate, args, "async function"));
+
+  // Do not lazily compute eval position for AsyncFunction, as they may not be
+  // determined after the function is resumed.
+  Handle<Script> script = handle(Script::cast(func->shared()->script()));
+  int position = script->GetEvalPosition();
+  USE(position);
+
+  return *func;
 }
 
 // ES6 section 19.4.1.1 Symbol ( [ description ] ) for the [[Call]] case.
@@ -4271,7 +4595,7 @@
   HandleScope scope(isolate);
   Handle<Symbol> result = isolate->factory()->NewSymbol();
   Handle<Object> description = args.atOrUndefined(isolate, 1);
-  if (!description->IsUndefined()) {
+  if (!description->IsUndefined(isolate)) {
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, description,
                                        Object::ToString(isolate, description));
     result->set_name(*description);
@@ -4293,75 +4617,290 @@
 BUILTIN(ObjectProtoToString) {
   HandleScope scope(isolate);
   Handle<Object> object = args.at<Object>(0);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::ObjectProtoToString(isolate, object));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Object::ObjectProtoToString(isolate, object));
 }
 
 // -----------------------------------------------------------------------------
 // ES6 section 21.1 String Objects
 
-namespace {
+// ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits )
+void Builtins::Generate_StringFromCharCode(CodeStubAssembler* assembler) {
+  typedef CodeStubAssembler::Label Label;
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
 
-bool ToUint16(Handle<Object> value, uint16_t* result) {
-  if (value->IsNumber() || Object::ToNumber(value).ToHandle(&value)) {
-    *result = DoubleToUint32(value->Number());
-    return true;
+  Node* code = assembler->Parameter(1);
+  Node* context = assembler->Parameter(4);
+
+  // Check if we have exactly one argument (plus the implicit receiver), i.e.
+  // if the parent frame is not an arguments adaptor frame.
+  Label if_oneargument(assembler), if_notoneargument(assembler);
+  Node* parent_frame_pointer = assembler->LoadParentFramePointer();
+  Node* parent_frame_type =
+      assembler->Load(MachineType::Pointer(), parent_frame_pointer,
+                      assembler->IntPtrConstant(
+                          CommonFrameConstants::kContextOrFrameTypeOffset));
+  assembler->Branch(
+      assembler->WordEqual(
+          parent_frame_type,
+          assembler->SmiConstant(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR))),
+      &if_notoneargument, &if_oneargument);
+
+  assembler->Bind(&if_oneargument);
+  {
+    // Single argument case, perform fast single character string cache lookup
+    // for one-byte code units, or fall back to creating a single character
+    // string on the fly otherwise.
+    Node* code32 = assembler->TruncateTaggedToWord32(context, code);
+    Node* code16 = assembler->Word32And(
+        code32, assembler->Int32Constant(String::kMaxUtf16CodeUnit));
+    Node* result = assembler->StringFromCharCode(code16);
+    assembler->Return(result);
   }
-  return false;
+
+  assembler->Bind(&if_notoneargument);
+  {
+    // Determine the resulting string length.
+    Node* parent_frame_length =
+        assembler->Load(MachineType::Pointer(), parent_frame_pointer,
+                        assembler->IntPtrConstant(
+                            ArgumentsAdaptorFrameConstants::kLengthOffset));
+    Node* length = assembler->SmiToWord(parent_frame_length);
+
+    // Assume that the resulting string contains only one-byte characters.
+    Node* result = assembler->AllocateSeqOneByteString(context, length);
+
+    // Truncate all input parameters and append them to the resulting string.
+    Variable var_offset(assembler, MachineType::PointerRepresentation());
+    Label loop(assembler, &var_offset), done_loop(assembler);
+    var_offset.Bind(assembler->IntPtrConstant(0));
+    assembler->Goto(&loop);
+    assembler->Bind(&loop);
+    {
+      // Load the current {offset}.
+      Node* offset = var_offset.value();
+
+      // Check if we're done with the string.
+      assembler->GotoIf(assembler->WordEqual(offset, length), &done_loop);
+
+      // Load the next code point and truncate it to a 16-bit value.
+      Node* code = assembler->Load(
+          MachineType::AnyTagged(), parent_frame_pointer,
+          assembler->IntPtrAdd(
+              assembler->WordShl(assembler->IntPtrSub(length, offset),
+                                 assembler->IntPtrConstant(kPointerSizeLog2)),
+              assembler->IntPtrConstant(
+                  CommonFrameConstants::kFixedFrameSizeAboveFp -
+                  kPointerSize)));
+      Node* code32 = assembler->TruncateTaggedToWord32(context, code);
+      Node* code16 = assembler->Word32And(
+          code32, assembler->Int32Constant(String::kMaxUtf16CodeUnit));
+
+      // Check if {code16} fits into a one-byte string.
+      Label if_codeisonebyte(assembler), if_codeistwobyte(assembler);
+      assembler->Branch(
+          assembler->Int32LessThanOrEqual(
+              code16, assembler->Int32Constant(String::kMaxOneByteCharCode)),
+          &if_codeisonebyte, &if_codeistwobyte);
+
+      assembler->Bind(&if_codeisonebyte);
+      {
+        // The {code16} fits into the SeqOneByteString {result}.
+        assembler->StoreNoWriteBarrier(
+            MachineRepresentation::kWord8, result,
+            assembler->IntPtrAdd(
+                assembler->IntPtrConstant(SeqOneByteString::kHeaderSize -
+                                          kHeapObjectTag),
+                offset),
+            code16);
+        var_offset.Bind(
+            assembler->IntPtrAdd(offset, assembler->IntPtrConstant(1)));
+        assembler->Goto(&loop);
+      }
+
+      assembler->Bind(&if_codeistwobyte);
+      {
+        // Allocate a SeqTwoByteString to hold the resulting string.
+        Node* cresult = assembler->AllocateSeqTwoByteString(context, length);
+
+        // Copy all characters that were previously written to the
+        // SeqOneByteString in {result} over to the new {cresult}.
+        Variable var_coffset(assembler, MachineType::PointerRepresentation());
+        Label cloop(assembler, &var_coffset), done_cloop(assembler);
+        var_coffset.Bind(assembler->IntPtrConstant(0));
+        assembler->Goto(&cloop);
+        assembler->Bind(&cloop);
+        {
+          Node* coffset = var_coffset.value();
+          assembler->GotoIf(assembler->WordEqual(coffset, offset), &done_cloop);
+          Node* ccode = assembler->Load(
+              MachineType::Uint8(), result,
+              assembler->IntPtrAdd(
+                  assembler->IntPtrConstant(SeqOneByteString::kHeaderSize -
+                                            kHeapObjectTag),
+                  coffset));
+          assembler->StoreNoWriteBarrier(
+              MachineRepresentation::kWord16, cresult,
+              assembler->IntPtrAdd(
+                  assembler->IntPtrConstant(SeqTwoByteString::kHeaderSize -
+                                            kHeapObjectTag),
+                  assembler->WordShl(coffset, 1)),
+              ccode);
+          var_coffset.Bind(
+              assembler->IntPtrAdd(coffset, assembler->IntPtrConstant(1)));
+          assembler->Goto(&cloop);
+        }
+
+        // Write the pending {code16} to {offset}.
+        assembler->Bind(&done_cloop);
+        assembler->StoreNoWriteBarrier(
+            MachineRepresentation::kWord16, cresult,
+            assembler->IntPtrAdd(
+                assembler->IntPtrConstant(SeqTwoByteString::kHeaderSize -
+                                          kHeapObjectTag),
+                assembler->WordShl(offset, 1)),
+            code16);
+
+        // Copy the remaining parameters to the SeqTwoByteString {cresult}.
+        Label floop(assembler, &var_offset), done_floop(assembler);
+        assembler->Goto(&floop);
+        assembler->Bind(&floop);
+        {
+          // Compute the next {offset}.
+          Node* offset = assembler->IntPtrAdd(var_offset.value(),
+                                              assembler->IntPtrConstant(1));
+
+          // Check if we're done with the string.
+          assembler->GotoIf(assembler->WordEqual(offset, length), &done_floop);
+
+          // Load the next code point and truncate it to a 16-bit value.
+          Node* code = assembler->Load(
+              MachineType::AnyTagged(), parent_frame_pointer,
+              assembler->IntPtrAdd(
+                  assembler->WordShl(
+                      assembler->IntPtrSub(length, offset),
+                      assembler->IntPtrConstant(kPointerSizeLog2)),
+                  assembler->IntPtrConstant(
+                      CommonFrameConstants::kFixedFrameSizeAboveFp -
+                      kPointerSize)));
+          Node* code32 = assembler->TruncateTaggedToWord32(context, code);
+          Node* code16 = assembler->Word32And(
+              code32, assembler->Int32Constant(String::kMaxUtf16CodeUnit));
+
+          // Store the truncated {code} point at the next offset.
+          assembler->StoreNoWriteBarrier(
+              MachineRepresentation::kWord16, cresult,
+              assembler->IntPtrAdd(
+                  assembler->IntPtrConstant(SeqTwoByteString::kHeaderSize -
+                                            kHeapObjectTag),
+                  assembler->WordShl(offset, 1)),
+              code16);
+          var_offset.Bind(offset);
+          assembler->Goto(&floop);
+        }
+
+        // Return the SeqTwoByteString.
+        assembler->Bind(&done_floop);
+        assembler->Return(cresult);
+      }
+    }
+
+    assembler->Bind(&done_loop);
+    assembler->Return(result);
+  }
+}
+
+namespace {  // for String.fromCodePoint
+
+bool IsValidCodePoint(Isolate* isolate, Handle<Object> value) {
+  if (!value->IsNumber() && !Object::ToNumber(value).ToHandle(&value)) {
+    return false;
+  }
+
+  if (Object::ToInteger(isolate, value).ToHandleChecked()->Number() !=
+      value->Number()) {
+    return false;
+  }
+
+  if (value->Number() < 0 || value->Number() > 0x10FFFF) {
+    return false;
+  }
+
+  return true;
+}
+
+uc32 NextCodePoint(Isolate* isolate, BuiltinArguments args, int index) {
+  Handle<Object> value = args.at<Object>(1 + index);
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, value, Object::ToNumber(value), -1);
+  if (!IsValidCodePoint(isolate, value)) {
+    isolate->Throw(*isolate->factory()->NewRangeError(
+        MessageTemplate::kInvalidCodePoint, value));
+    return -1;
+  }
+  return DoubleToUint32(value->Number());
 }
 
 }  // namespace
 
-// ES6 21.1.2.1 String.fromCharCode ( ...codeUnits )
-BUILTIN(StringFromCharCode) {
+// ES6 section 21.1.2.2 String.fromCodePoint ( ...codePoints )
+BUILTIN(StringFromCodePoint) {
   HandleScope scope(isolate);
-  // Check resulting string length.
-  int index = 0;
-  Handle<String> result;
   int const length = args.length() - 1;
   if (length == 0) return isolate->heap()->empty_string();
   DCHECK_LT(0, length);
-  // Load the first character code.
-  uint16_t code;
-  if (!ToUint16(args.at<Object>(1), &code)) return isolate->heap()->exception();
-  // Assume that the resulting String contains only one byte characters.
-  if (code <= String::kMaxOneByteCharCodeU) {
-    // Check for single one-byte character fast case.
-    if (length == 1) {
-      return *isolate->factory()->LookupSingleCharacterStringFromCode(code);
+
+  // Optimistically assume that the resulting String contains only one byte
+  // characters.
+  List<uint8_t> one_byte_buffer(length);
+  uc32 code = 0;
+  int index;
+  for (index = 0; index < length; index++) {
+    code = NextCodePoint(isolate, args, index);
+    if (code < 0) {
+      return isolate->heap()->exception();
     }
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, isolate->factory()->NewRawOneByteString(length));
-    do {
-      Handle<SeqOneByteString>::cast(result)->Set(index, code);
-      if (++index == length) break;
-      if (!ToUint16(args.at<Object>(1 + index), &code)) {
-        return isolate->heap()->exception();
-      }
-    } while (code <= String::kMaxOneByteCharCodeU);
+    if (code > String::kMaxOneByteCharCode) {
+      break;
+    }
+    one_byte_buffer.Add(code);
   }
-  // Check if all characters fit into the one byte range.
-  if (index < length) {
-    // Fallback to two byte string.
-    Handle<String> new_result;
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, new_result, isolate->factory()->NewRawTwoByteString(length));
-    for (int new_index = 0; new_index < index; ++new_index) {
-      uint16_t new_code =
-          Handle<SeqOneByteString>::cast(result)->Get(new_index);
-      Handle<SeqTwoByteString>::cast(new_result)->Set(new_index, new_code);
-    }
-    while (true) {
-      Handle<SeqTwoByteString>::cast(new_result)->Set(index, code);
-      if (++index == length) break;
-      if (!ToUint16(args.at<Object>(1 + index), &code)) {
-        return isolate->heap()->exception();
-      }
-    }
-    result = new_result;
+
+  if (index == length) {
+    RETURN_RESULT_OR_FAILURE(isolate, isolate->factory()->NewStringFromOneByte(
+                                          one_byte_buffer.ToConstVector()));
   }
+
+  List<uc16> two_byte_buffer(length - index);
+
+  while (true) {
+    if (code <= unibrow::Utf16::kMaxNonSurrogateCharCode) {
+      two_byte_buffer.Add(code);
+    } else {
+      two_byte_buffer.Add(unibrow::Utf16::LeadSurrogate(code));
+      two_byte_buffer.Add(unibrow::Utf16::TrailSurrogate(code));
+    }
+
+    if (++index == length) {
+      break;
+    }
+    code = NextCodePoint(isolate, args, index);
+    if (code < 0) {
+      return isolate->heap()->exception();
+    }
+  }
+
+  Handle<SeqTwoByteString> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result,
+      isolate->factory()->NewRawTwoByteString(one_byte_buffer.length() +
+                                              two_byte_buffer.length()));
+
+  CopyChars(result->GetChars(), one_byte_buffer.ToConstVector().start(),
+            one_byte_buffer.length());
+  CopyChars(result->GetChars() + one_byte_buffer.length(),
+            two_byte_buffer.ToConstVector().start(), two_byte_buffer.length());
+
   return *result;
 }
 
@@ -4552,6 +5091,27 @@
   assembler->Return(result);
 }
 
+// ES6 section 21.1.3.25 String.prototype.trim ()
+BUILTIN(StringPrototypeTrim) {
+  HandleScope scope(isolate);
+  TO_THIS_STRING(string, "String.prototype.trim");
+  return *String::Trim(string, String::kTrim);
+}
+
+// Non-standard WebKit extension
+BUILTIN(StringPrototypeTrimLeft) {
+  HandleScope scope(isolate);
+  TO_THIS_STRING(string, "String.prototype.trimLeft");
+  return *String::Trim(string, String::kTrimLeft);
+}
+
+// Non-standard WebKit extension
+BUILTIN(StringPrototypeTrimRight) {
+  HandleScope scope(isolate);
+  TO_THIS_STRING(string, "String.prototype.trimRight");
+  return *String::Trim(string, String::kTrimRight);
+}
+
 // -----------------------------------------------------------------------------
 // ES6 section 21.1 ArrayBuffer Objects
 
@@ -4629,10 +5189,7 @@
   DCHECK(isolate->proxy_function()->IsConstructor());
   Handle<Object> target = args.atOrUndefined(isolate, 1);
   Handle<Object> handler = args.atOrUndefined(isolate, 2);
-  Handle<JSProxy> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     JSProxy::New(isolate, target, handler));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSProxy::New(isolate, target, handler));
 }
 
 
@@ -4661,25 +5218,38 @@
 
 namespace {
 
+// Returns the holder JSObject if the function can legally be called with this
+// receiver.  Returns nullptr if the call is illegal.
+// TODO(dcarney): CallOptimization duplicates this logic, merge.
+JSObject* GetCompatibleReceiver(Isolate* isolate, FunctionTemplateInfo* info,
+                                JSObject* receiver) {
+  Object* recv_type = info->signature();
+  // No signature, return holder.
+  if (!recv_type->IsFunctionTemplateInfo()) return receiver;
+  FunctionTemplateInfo* signature = FunctionTemplateInfo::cast(recv_type);
+
+  // Check the receiver. Fast path for receivers with no hidden prototypes.
+  if (signature->IsTemplateFor(receiver)) return receiver;
+  if (!receiver->map()->has_hidden_prototype()) return nullptr;
+  for (PrototypeIterator iter(isolate, receiver, kStartAtPrototype,
+                              PrototypeIterator::END_AT_NON_HIDDEN);
+       !iter.IsAtEnd(); iter.Advance()) {
+    JSObject* current = iter.GetCurrent<JSObject>();
+    if (signature->IsTemplateFor(current)) return current;
+  }
+  return nullptr;
+}
+
+template <bool is_construct>
 MUST_USE_RESULT MaybeHandle<Object> HandleApiCallHelper(
-    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() ||
-         Handle<JSFunction>::cast(function)->shared()->IsApiFunction());
-
-  Handle<FunctionTemplateInfo> fun_data =
-      function->IsFunctionTemplateInfo()
-          ? Handle<FunctionTemplateInfo>::cast(function)
-          : handle(JSFunction::cast(*function)->shared()->get_api_func_data());
+    Isolate* isolate, Handle<HeapObject> function,
+    Handle<HeapObject> new_target, Handle<FunctionTemplateInfo> fun_data,
+    Handle<Object> receiver, BuiltinArguments args) {
+  Handle<JSObject> js_receiver;
+  JSObject* raw_holder;
   if (is_construct) {
-    DCHECK(args.receiver()->IsTheHole());
-    if (fun_data->instance_template()->IsUndefined()) {
+    DCHECK(args.receiver()->IsTheHole(isolate));
+    if (fun_data->instance_template()->IsUndefined(isolate)) {
       v8::Local<ObjectTemplate> templ =
           ObjectTemplate::New(reinterpret_cast<v8::Isolate*>(isolate),
                               ToApiHandle<v8::FunctionTemplate>(fun_data));
@@ -4688,37 +5258,43 @@
     Handle<ObjectTemplateInfo> instance_template(
         ObjectTemplateInfo::cast(fun_data->instance_template()), isolate);
     ASSIGN_RETURN_ON_EXCEPTION(
-        isolate, receiver,
+        isolate, js_receiver,
         ApiNatives::InstantiateObject(instance_template,
                                       Handle<JSReceiver>::cast(new_target)),
         Object);
-    args[0] = *receiver;
-    DCHECK_EQ(*receiver, *args.receiver());
-  } else {
-    DCHECK(args.receiver()->IsJSReceiver());
-    receiver = args.at<JSReceiver>(0);
-  }
+    args[0] = *js_receiver;
+    DCHECK_EQ(*js_receiver, *args.receiver());
 
-  if (!is_construct && !fun_data->accept_any_receiver()) {
-    if (receiver->IsJSObject() && receiver->IsAccessCheckNeeded()) {
-      Handle<JSObject> js_receiver = Handle<JSObject>::cast(receiver);
-      if (!isolate->MayAccess(handle(isolate->context()), js_receiver)) {
-        isolate->ReportFailedAccessCheck(js_receiver);
-        RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
-      }
+    raw_holder = *js_receiver;
+  } else {
+    DCHECK(receiver->IsJSReceiver());
+
+    if (!receiver->IsJSObject()) {
+      // This function cannot be called with the given receiver.  Abort!
+      THROW_NEW_ERROR(
+          isolate, NewTypeError(MessageTemplate::kIllegalInvocation), Object);
+    }
+
+    js_receiver = Handle<JSObject>::cast(receiver);
+
+    if (!fun_data->accept_any_receiver() &&
+        js_receiver->IsAccessCheckNeeded() &&
+        !isolate->MayAccess(handle(isolate->context()), js_receiver)) {
+      isolate->ReportFailedAccessCheck(js_receiver);
+      RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
+    }
+
+    raw_holder = GetCompatibleReceiver(isolate, *fun_data, *js_receiver);
+
+    if (raw_holder == nullptr) {
+      // This function cannot be called with the given receiver.  Abort!
+      THROW_NEW_ERROR(
+          isolate, NewTypeError(MessageTemplate::kIllegalInvocation), Object);
     }
   }
 
-  Object* raw_holder = fun_data->GetCompatibleReceiver(isolate, *receiver);
-
-  if (raw_holder->IsNull()) {
-    // This function cannot be called with the given receiver.  Abort!
-    THROW_NEW_ERROR(isolate, NewTypeError(MessageTemplate::kIllegalInvocation),
-                    Object);
-  }
-
   Object* raw_call_data = fun_data->call_code();
-  if (!raw_call_data->IsUndefined()) {
+  if (!raw_call_data->IsUndefined(isolate)) {
     DCHECK(raw_call_data->IsCallHandlerInfo());
     CallHandlerInfo* call_data = CallHandlerInfo::cast(raw_call_data);
     Object* callback_obj = call_data->callback();
@@ -4726,23 +5302,25 @@
         v8::ToCData<v8::FunctionCallback>(callback_obj);
     Object* data_obj = call_data->data();
 
-    LOG(isolate, ApiObjectAccess("call", JSObject::cast(*args.receiver())));
-    DCHECK(raw_holder->IsJSObject());
+    LOG(isolate, ApiObjectAccess("call", JSObject::cast(*js_receiver)));
 
     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();
 
     RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
-    if (!is_construct || result->IsJSObject()) {
-      return scope.CloseAndEscape(result);
+    if (result.is_null()) {
+      if (is_construct) return js_receiver;
+      return isolate->factory()->undefined_value();
     }
+    // Rebox the result.
+    result->VerifyApiCallResultType();
+    if (!is_construct || result->IsJSObject()) return handle(*result, isolate);
   }
 
-  return scope.CloseAndEscape(receiver);
+  return js_receiver;
 }
 
 }  // namespace
@@ -4750,10 +5328,20 @@
 
 BUILTIN(HandleApiCall) {
   HandleScope scope(isolate);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     HandleApiCallHelper(isolate, args));
-  return *result;
+  Handle<JSFunction> function = args.target<JSFunction>();
+  Handle<Object> receiver = args.receiver();
+  Handle<HeapObject> new_target = args.new_target();
+  Handle<FunctionTemplateInfo> fun_data(function->shared()->get_api_func_data(),
+                                        isolate);
+  if (new_target->IsJSReceiver()) {
+    RETURN_RESULT_OR_FAILURE(
+        isolate, HandleApiCallHelper<true>(isolate, function, new_target,
+                                           fun_data, receiver, args));
+  } else {
+    RETURN_RESULT_OR_FAILURE(
+        isolate, HandleApiCallHelper<false>(isolate, function, new_target,
+                                            fun_data, receiver, args));
+  }
 }
 
 
@@ -4837,14 +5425,10 @@
 
 namespace {
 
-class RelocatableArguments
-    : public BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>,
-      public Relocatable {
+class RelocatableArguments : public BuiltinArguments, public Relocatable {
  public:
   RelocatableArguments(Isolate* isolate, int length, Object** arguments)
-      : BuiltinArguments<BuiltinExtraArguments::kTargetAndNewTarget>(length,
-                                                                     arguments),
-        Relocatable(isolate) {}
+      : BuiltinArguments(length, arguments), Relocatable(isolate) {}
 
   virtual inline void IterateInstance(ObjectVisitor* v) {
     if (length() == 0) return;
@@ -4857,14 +5441,17 @@
 
 }  // namespace
 
-MaybeHandle<Object> Builtins::InvokeApiFunction(Handle<HeapObject> function,
+MaybeHandle<Object> Builtins::InvokeApiFunction(Isolate* isolate,
+                                                Handle<HeapObject> function,
                                                 Handle<Object> receiver,
                                                 int argc,
                                                 Handle<Object> args[]) {
-  Isolate* isolate = function->GetIsolate();
+  DCHECK(function->IsFunctionTemplateInfo() ||
+         (function->IsJSFunction() &&
+          JSFunction::cast(*function)->shared()->IsApiFunction()));
+
   // Do proper receiver conversion for non-strict mode api functions.
   if (!receiver->IsJSReceiver()) {
-    DCHECK(function->IsFunctionTemplateInfo() || function->IsJSFunction());
     if (function->IsFunctionTemplateInfo() ||
         is_sloppy(JSFunction::cast(*function)->shared()->language_mode())) {
       ASSIGN_RETURN_ON_EXCEPTION(isolate, receiver,
@@ -4872,6 +5459,13 @@
                                  Object);
     }
   }
+
+  Handle<FunctionTemplateInfo> fun_data =
+      function->IsFunctionTemplateInfo()
+          ? Handle<FunctionTemplateInfo>::cast(function)
+          : handle(JSFunction::cast(*function)->shared()->get_api_func_data(),
+                   isolate);
+  Handle<HeapObject> new_target = isolate->factory()->undefined_value();
   // Construct BuiltinArguments object:
   // new target, function, arguments reversed, receiver.
   const int kBufferSize = 32;
@@ -4887,15 +5481,14 @@
     argv[argc - i + 1] = *args[i];
   }
   argv[1] = *function;
-  argv[0] = isolate->heap()->undefined_value();  // new target
+  argv[0] = *new_target;
   MaybeHandle<Object> result;
   {
     RelocatableArguments arguments(isolate, argc + 3, &argv[argc] + 2);
-    result = HandleApiCallHelper(isolate, arguments);
+    result = HandleApiCallHelper<false>(isolate, function, new_target, fun_data,
+                                        receiver, arguments);
   }
-  if (argv != small_argv) {
-    delete[] argv;
-  }
+  if (argv != small_argv) delete[] argv;
   return result;
 }
 
@@ -4904,8 +5497,7 @@
 // API. The object can be called as either a constructor (using new) or just as
 // a function (without new).
 MUST_USE_RESULT static Object* HandleApiCallAsFunctionOrConstructor(
-    Isolate* isolate, bool is_construct_call,
-    BuiltinArguments<BuiltinExtraArguments::kNone> args) {
+    Isolate* isolate, bool is_construct_call, BuiltinArguments args) {
   Handle<Object> receiver = args.receiver();
 
   // Get the object called.
@@ -4931,7 +5523,7 @@
   CHECK(constructor->shared()->IsApiFunction());
   Object* handler =
       constructor->shared()->get_api_func_data()->instance_call_handler();
-  DCHECK(!handler->IsUndefined());
+  DCHECK(!handler->IsUndefined(isolate));
   // TODO(ishell): remove this debugging code.
   CHECK(handler->IsCallHandlerInfo());
   CallHandlerInfo* call_data = CallHandlerInfo::cast(handler);
@@ -4974,106 +5566,122 @@
   return HandleApiCallAsFunctionOrConstructor(isolate, true, args);
 }
 
+namespace {
 
-static void Generate_LoadIC_Miss(MacroAssembler* masm) {
-  LoadIC::GenerateMiss(masm);
+void Generate_LoadIC_Miss(CodeStubAssembler* assembler) {
+  typedef compiler::Node Node;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* name = assembler->Parameter(1);
+  Node* slot = assembler->Parameter(2);
+  Node* vector = assembler->Parameter(3);
+  Node* context = assembler->Parameter(4);
+
+  assembler->TailCallRuntime(Runtime::kLoadIC_Miss, context, receiver, name,
+                             slot, vector);
 }
 
+void Generate_LoadGlobalIC_Miss(CodeStubAssembler* assembler) {
+  typedef compiler::Node Node;
 
-static void Generate_LoadIC_Normal(MacroAssembler* masm) {
+  Node* slot = assembler->Parameter(0);
+  Node* vector = assembler->Parameter(1);
+  Node* context = assembler->Parameter(2);
+
+  assembler->TailCallRuntime(Runtime::kLoadGlobalIC_Miss, context, slot,
+                             vector);
+}
+
+void Generate_LoadIC_Normal(MacroAssembler* masm) {
   LoadIC::GenerateNormal(masm);
 }
 
-
-static void Generate_LoadIC_Getter_ForDeopt(MacroAssembler* masm) {
+void Generate_LoadIC_Getter_ForDeopt(MacroAssembler* masm) {
   NamedLoadHandlerCompiler::GenerateLoadViaGetterForDeopt(masm);
 }
 
+void Generate_LoadIC_Slow(CodeStubAssembler* assembler) {
+  typedef compiler::Node Node;
 
-static void Generate_LoadIC_Slow(MacroAssembler* masm) {
-  LoadIC::GenerateRuntimeGetProperty(masm);
+  Node* receiver = assembler->Parameter(0);
+  Node* name = assembler->Parameter(1);
+  // Node* slot = assembler->Parameter(2);
+  // Node* vector = assembler->Parameter(3);
+  Node* context = assembler->Parameter(4);
+
+  assembler->TailCallRuntime(Runtime::kGetProperty, context, receiver, name);
 }
 
+void Generate_LoadGlobalIC_Slow(CodeStubAssembler* assembler) {
+  typedef compiler::Node Node;
 
-static void Generate_KeyedLoadIC_Slow(MacroAssembler* masm) {
+  Node* slot = assembler->Parameter(0);
+  Node* vector = assembler->Parameter(1);
+  Node* context = assembler->Parameter(2);
+
+  assembler->TailCallRuntime(Runtime::kLoadGlobalIC_Slow, context, slot,
+                             vector);
+}
+
+void Generate_KeyedLoadIC_Slow(MacroAssembler* masm) {
   KeyedLoadIC::GenerateRuntimeGetProperty(masm);
 }
 
-
-static void Generate_KeyedLoadIC_Miss(MacroAssembler* masm) {
+void Generate_KeyedLoadIC_Miss(MacroAssembler* masm) {
   KeyedLoadIC::GenerateMiss(masm);
 }
 
-
-static void Generate_KeyedLoadIC_Megamorphic(MacroAssembler* masm) {
+void Generate_KeyedLoadIC_Megamorphic(MacroAssembler* masm) {
   KeyedLoadIC::GenerateMegamorphic(masm);
 }
 
-
-static void Generate_StoreIC_Miss(MacroAssembler* masm) {
+void Generate_StoreIC_Miss(MacroAssembler* masm) {
   StoreIC::GenerateMiss(masm);
 }
 
-
-static void Generate_StoreIC_Normal(MacroAssembler* masm) {
+void Generate_StoreIC_Normal(MacroAssembler* masm) {
   StoreIC::GenerateNormal(masm);
 }
 
-
-static void Generate_StoreIC_Slow(MacroAssembler* masm) {
+void Generate_StoreIC_Slow(MacroAssembler* masm) {
   NamedStoreHandlerCompiler::GenerateSlow(masm);
 }
 
-
-static void Generate_KeyedStoreIC_Slow(MacroAssembler* masm) {
+void Generate_KeyedStoreIC_Slow(MacroAssembler* masm) {
   ElementHandlerCompiler::GenerateStoreSlow(masm);
 }
 
-
-static void Generate_StoreIC_Setter_ForDeopt(MacroAssembler* masm) {
+void Generate_StoreIC_Setter_ForDeopt(MacroAssembler* masm) {
   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) {
+void Generate_KeyedStoreIC_Megamorphic(MacroAssembler* masm) {
   KeyedStoreIC::GenerateMegamorphic(masm, SLOPPY);
 }
 
-
-static void Generate_KeyedStoreIC_Megamorphic_Strict(MacroAssembler* masm) {
+void Generate_KeyedStoreIC_Megamorphic_Strict(MacroAssembler* masm) {
   KeyedStoreIC::GenerateMegamorphic(masm, STRICT);
 }
 
-
-static void Generate_KeyedStoreIC_Miss(MacroAssembler* masm) {
+void Generate_KeyedStoreIC_Miss(MacroAssembler* masm) {
   KeyedStoreIC::GenerateMiss(masm);
 }
 
-
-static void Generate_Return_DebugBreak(MacroAssembler* masm) {
+void Generate_Return_DebugBreak(MacroAssembler* masm) {
   DebugCodegen::GenerateDebugBreakStub(masm,
                                        DebugCodegen::SAVE_RESULT_REGISTER);
 }
 
-
-static void Generate_Slot_DebugBreak(MacroAssembler* masm) {
+void Generate_Slot_DebugBreak(MacroAssembler* masm) {
   DebugCodegen::GenerateDebugBreakStub(masm,
                                        DebugCodegen::IGNORE_RESULT_REGISTER);
 }
 
-
-static void Generate_FrameDropper_LiveEdit(MacroAssembler* masm) {
+void Generate_FrameDropper_LiveEdit(MacroAssembler* masm) {
   DebugCodegen::GenerateFrameDropperLiveEdit(masm);
 }
 
+}  // namespace
 
 Builtins::Builtins() : initialized_(false) {
   memset(builtins_, 0, sizeof(builtins_[0]) * builtin_count);
@@ -5084,8 +5692,7 @@
 Builtins::~Builtins() {
 }
 
-
-#define DEF_ENUM_C(name, ignore) FUNCTION_ADDR(Builtin_##name),
+#define DEF_ENUM_C(name) FUNCTION_ADDR(Builtin_##name),
 Address const Builtins::c_functions_[cfunction_count] = {
   BUILTIN_LIST_C(DEF_ENUM_C)
 };
@@ -5099,7 +5706,6 @@
   const char* s_name;  // name is only used for generating log information.
   int name;
   Code::Flags flags;
-  BuiltinExtraArguments extra_args;
   int argc;
 };
 
@@ -5144,13 +5750,13 @@
   MacroAssembler masm(isolate, u.buffer, sizeof(u.buffer),
                       CodeObjectRequired::kYes);
   // Generate the code/adaptor.
-  typedef void (*Generator)(MacroAssembler*, int, BuiltinExtraArguments);
+  typedef void (*Generator)(MacroAssembler*, int);
   Generator g = FUNCTION_CAST<Generator>(builtin_desc->generator);
   // We pass all arguments to the generator, but it may not use all of
   // them.  This works because the first arguments are on top of the
   // stack.
   DCHECK(!masm.has_frame());
-  g(&masm, builtin_desc->name, builtin_desc->extra_args);
+  g(&masm, builtin_desc->name);
   // Move the code into the object heap.
   CodeDesc desc;
   masm.GetCode(&desc);
@@ -5158,8 +5764,9 @@
   return isolate->factory()->NewCode(desc, flags, masm.CodeObject());
 }
 
-Handle<Code> CodeStubAssemblerBuilder(Isolate* isolate,
-                                      BuiltinDesc const* builtin_desc) {
+// Builder for builtins implemented in TurboFan with JS linkage.
+Handle<Code> CodeStubAssemblerBuilderJS(Isolate* isolate,
+                                        BuiltinDesc const* builtin_desc) {
   Zone zone(isolate->allocator());
   CodeStubAssembler assembler(isolate, &zone, builtin_desc->argc,
                               builtin_desc->flags, builtin_desc->s_name);
@@ -5170,6 +5777,25 @@
   return assembler.GenerateCode();
 }
 
+// Builder for builtins implemented in TurboFan with CallStub linkage.
+Handle<Code> CodeStubAssemblerBuilderCS(Isolate* isolate,
+                                        BuiltinDesc const* builtin_desc) {
+  Zone zone(isolate->allocator());
+  // The interface descriptor with given key must be initialized at this point
+  // and this construction just queries the details from the descriptors table.
+  CallInterfaceDescriptor descriptor(
+      isolate, static_cast<CallDescriptors::Key>(builtin_desc->argc));
+  // Ensure descriptor is already initialized.
+  DCHECK_NOT_NULL(descriptor.GetFunctionType());
+  CodeStubAssembler assembler(isolate, &zone, descriptor, builtin_desc->flags,
+                              builtin_desc->s_name);
+  // Generate the code/adaptor.
+  typedef void (*Generator)(CodeStubAssembler*);
+  Generator g = FUNCTION_CAST<Generator>(builtin_desc->generator);
+  g(&assembler);
+  return assembler.GenerateCode();
+}
+
 }  // namespace
 
 // Define array of pointers to generators and C builtin functions.
@@ -5184,41 +5810,46 @@
   functions[builtin_count].s_name = nullptr;
   functions[builtin_count].name = builtin_count;
   functions[builtin_count].flags = static_cast<Code::Flags>(0);
-  functions[builtin_count].extra_args = BuiltinExtraArguments::kNone;
   functions[builtin_count].argc = 0;
 
-#define DEF_FUNCTION_PTR_C(aname, aextra_args)                \
-  functions->builder = &MacroAssemblerBuilder;                \
-  functions->generator = FUNCTION_ADDR(Generate_Adaptor);     \
-  functions->c_code = FUNCTION_ADDR(Builtin_##aname);         \
-  functions->s_name = #aname;                                 \
-  functions->name = c_##aname;                                \
-  functions->flags = Code::ComputeFlags(Code::BUILTIN);       \
-  functions->extra_args = BuiltinExtraArguments::aextra_args; \
-  functions->argc = 0;                                        \
+#define DEF_FUNCTION_PTR_C(aname)                         \
+  functions->builder = &MacroAssemblerBuilder;            \
+  functions->generator = FUNCTION_ADDR(Generate_Adaptor); \
+  functions->c_code = FUNCTION_ADDR(Builtin_##aname);     \
+  functions->s_name = #aname;                             \
+  functions->name = c_##aname;                            \
+  functions->flags = Code::ComputeFlags(Code::BUILTIN);   \
+  functions->argc = 0;                                    \
   ++functions;
 
-#define DEF_FUNCTION_PTR_A(aname, kind, state, extra)              \
-  functions->builder = &MacroAssemblerBuilder;                     \
-  functions->generator = FUNCTION_ADDR(Generate_##aname);          \
-  functions->c_code = NULL;                                        \
-  functions->s_name = #aname;                                      \
-  functions->name = k##aname;                                      \
-  functions->flags = Code::ComputeFlags(Code::kind, state, extra); \
-  functions->extra_args = BuiltinExtraArguments::kNone;            \
-  functions->argc = 0;                                             \
+#define DEF_FUNCTION_PTR_A(aname, kind, extra)              \
+  functions->builder = &MacroAssemblerBuilder;              \
+  functions->generator = FUNCTION_ADDR(Generate_##aname);   \
+  functions->c_code = NULL;                                 \
+  functions->s_name = #aname;                               \
+  functions->name = k##aname;                               \
+  functions->flags = Code::ComputeFlags(Code::kind, extra); \
+  functions->argc = 0;                                      \
   ++functions;
 
-#define DEF_FUNCTION_PTR_T(aname, aargc)                                 \
-  functions->builder = &CodeStubAssemblerBuilder;                        \
-  functions->generator = FUNCTION_ADDR(Generate_##aname);                \
-  functions->c_code = NULL;                                              \
-  functions->s_name = #aname;                                            \
-  functions->name = k##aname;                                            \
-  functions->flags =                                                     \
-      Code::ComputeFlags(Code::BUILTIN, UNINITIALIZED, kNoExtraICState); \
-  functions->extra_args = BuiltinExtraArguments::kNone;                  \
-  functions->argc = aargc;                                               \
+#define DEF_FUNCTION_PTR_T(aname, aargc)                  \
+  functions->builder = &CodeStubAssemblerBuilderJS;       \
+  functions->generator = FUNCTION_ADDR(Generate_##aname); \
+  functions->c_code = NULL;                               \
+  functions->s_name = #aname;                             \
+  functions->name = k##aname;                             \
+  functions->flags = Code::ComputeFlags(Code::BUILTIN);   \
+  functions->argc = aargc;                                \
+  ++functions;
+
+#define DEF_FUNCTION_PTR_S(aname, kind, extra, interface_descriptor) \
+  functions->builder = &CodeStubAssemblerBuilderCS;                  \
+  functions->generator = FUNCTION_ADDR(Generate_##aname);            \
+  functions->c_code = NULL;                                          \
+  functions->s_name = #aname;                                        \
+  functions->name = k##aname;                                        \
+  functions->flags = Code::ComputeFlags(Code::kind, extra);          \
+  functions->argc = CallDescriptors::interface_descriptor;           \
   ++functions;
 
 #define DEF_FUNCTION_PTR_H(aname, kind)                     \
@@ -5228,20 +5859,21 @@
   functions->s_name = #aname;                               \
   functions->name = k##aname;                               \
   functions->flags = Code::ComputeHandlerFlags(Code::kind); \
-  functions->extra_args = BuiltinExtraArguments::kNone;     \
   functions->argc = 0;                                      \
   ++functions;
 
   BUILTIN_LIST_C(DEF_FUNCTION_PTR_C)
   BUILTIN_LIST_A(DEF_FUNCTION_PTR_A)
   BUILTIN_LIST_T(DEF_FUNCTION_PTR_T)
+  BUILTIN_LIST_S(DEF_FUNCTION_PTR_S)
   BUILTIN_LIST_H(DEF_FUNCTION_PTR_H)
   BUILTIN_LIST_DEBUG_A(DEF_FUNCTION_PTR_A)
 
 #undef DEF_FUNCTION_PTR_C
 #undef DEF_FUNCTION_PTR_A
-#undef DEF_FUNCTION_PTR_H
 #undef DEF_FUNCTION_PTR_T
+#undef DEF_FUNCTION_PTR_S
+#undef DEF_FUNCTION_PTR_H
 }
 
 
@@ -5251,6 +5883,11 @@
   // Create a scope for the handles in the builtins.
   HandleScope scope(isolate);
 
+#define INITIALIZE_CALL_DESCRIPTOR(name, kind, extra, interface_descriptor) \
+  { interface_descriptor##Descriptor descriptor(isolate); }
+  BUILTIN_LIST_S(INITIALIZE_CALL_DESCRIPTOR)
+#undef INITIALIZE_CALL_DESCRIPTOR
+
   const BuiltinDesc* functions = builtin_function_table.functions();
 
   // Traverse the list of builtins and generate an adaptor in a
@@ -5260,8 +5897,8 @@
       Handle<Code> code = (*functions[i].builder)(isolate, functions + i);
       // Log the event and add the code to the builtins array.
       PROFILE(isolate,
-              CodeCreateEvent(Logger::BUILTIN_TAG, AbstractCode::cast(*code),
-                              functions[i].s_name));
+              CodeCreateEvent(CodeEventListener::BUILTIN_TAG,
+                              AbstractCode::cast(*code), functions[i].s_name));
       builtins_[i] = *code;
       code->set_builtin_index(i);
 #ifdef ENABLE_DISASSEMBLER
@@ -5555,23 +6192,26 @@
   a->Return(a->Int32Constant(0));
 }
 
-#define DEFINE_BUILTIN_ACCESSOR_C(name, ignore)               \
-Handle<Code> Builtins::name() {                               \
-  Code** code_address =                                       \
-      reinterpret_cast<Code**>(builtin_address(k##name));     \
-  return Handle<Code>(code_address);                          \
-}
-#define DEFINE_BUILTIN_ACCESSOR_A(name, kind, state, extra) \
-Handle<Code> Builtins::name() {                             \
-  Code** code_address =                                     \
-      reinterpret_cast<Code**>(builtin_address(k##name));   \
-  return Handle<Code>(code_address);                        \
-}
+#define DEFINE_BUILTIN_ACCESSOR_C(name)                                       \
+  Handle<Code> Builtins::name() {                                             \
+    Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \
+    return Handle<Code>(code_address);                                        \
+  }
+#define DEFINE_BUILTIN_ACCESSOR_A(name, kind, extra)                          \
+  Handle<Code> Builtins::name() {                                             \
+    Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \
+    return Handle<Code>(code_address);                                        \
+  }
 #define DEFINE_BUILTIN_ACCESSOR_T(name, argc)                                 \
   Handle<Code> Builtins::name() {                                             \
     Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \
     return Handle<Code>(code_address);                                        \
   }
+#define DEFINE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor)    \
+  Handle<Code> Builtins::name() {                                             \
+    Code** code_address = reinterpret_cast<Code**>(builtin_address(k##name)); \
+    return Handle<Code>(code_address);                                        \
+  }
 #define DEFINE_BUILTIN_ACCESSOR_H(name, kind)               \
 Handle<Code> Builtins::name() {                             \
   Code** code_address =                                     \
@@ -5581,11 +6221,13 @@
 BUILTIN_LIST_C(DEFINE_BUILTIN_ACCESSOR_C)
 BUILTIN_LIST_A(DEFINE_BUILTIN_ACCESSOR_A)
 BUILTIN_LIST_T(DEFINE_BUILTIN_ACCESSOR_T)
+BUILTIN_LIST_S(DEFINE_BUILTIN_ACCESSOR_S)
 BUILTIN_LIST_H(DEFINE_BUILTIN_ACCESSOR_H)
 BUILTIN_LIST_DEBUG_A(DEFINE_BUILTIN_ACCESSOR_A)
 #undef DEFINE_BUILTIN_ACCESSOR_C
 #undef DEFINE_BUILTIN_ACCESSOR_A
 #undef DEFINE_BUILTIN_ACCESSOR_T
+#undef DEFINE_BUILTIN_ACCESSOR_S
 #undef DEFINE_BUILTIN_ACCESSOR_H
 
 }  // namespace internal
diff --git a/src/builtins.h b/src/builtins.h
index ff1d77d..cbce375 100644
--- a/src/builtins.h
+++ b/src/builtins.h
@@ -1,3 +1,4 @@
+
 // Copyright 2011 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.
@@ -14,19 +15,6 @@
 // Forward declarations.
 class CodeStubAssembler;
 
-// Specifies extra arguments required by a C++ builtin.
-enum class BuiltinExtraArguments : uint8_t {
-  kNone = 0u,
-  kTarget = 1u << 0,
-  kNewTarget = 1u << 1,
-  kTargetAndNewTarget = kTarget | kNewTarget
-};
-
-inline bool operator&(BuiltinExtraArguments lhs, BuiltinExtraArguments rhs) {
-  return static_cast<uint8_t>(lhs) & static_cast<uint8_t>(rhs);
-}
-
-
 #define CODE_AGE_LIST_WITH_ARG(V, A)     \
   V(Quadragenarian, A)                   \
   V(Quinquagenarian, A)                  \
@@ -46,290 +34,317 @@
   V(NoAge)                                         \
   CODE_AGE_LIST_WITH_ARG(CODE_AGE_LIST_IGNORE_ARG, V)
 
-#define DECLARE_CODE_AGE_BUILTIN(C, V)             \
-  V(Make##C##CodeYoungAgainOddMarking, BUILTIN,    \
-    UNINITIALIZED, kNoExtraICState)                \
-  V(Make##C##CodeYoungAgainEvenMarking, BUILTIN,   \
-    UNINITIALIZED, kNoExtraICState)
-
+#define DECLARE_CODE_AGE_BUILTIN(C, V)                           \
+  V(Make##C##CodeYoungAgainOddMarking, BUILTIN, kNoExtraICState) \
+  V(Make##C##CodeYoungAgainEvenMarking, BUILTIN, kNoExtraICState)
 
 // Define list of builtins implemented in C++.
-#define BUILTIN_LIST_C(V)                                      \
-  V(Illegal, kNone)                                            \
-                                                               \
-  V(EmptyFunction, kNone)                                      \
-                                                               \
-  V(ArrayConcat, kNone)                                        \
-  V(ArrayPop, kNone)                                           \
-  V(ArrayPush, kNone)                                          \
-  V(ArrayShift, kNone)                                         \
-  V(ArraySlice, kNone)                                         \
-  V(ArraySplice, kNone)                                        \
-  V(ArrayUnshift, kNone)                                       \
-                                                               \
-  V(ArrayBufferConstructor, kTarget)                           \
-  V(ArrayBufferConstructor_ConstructStub, kTargetAndNewTarget) \
-  V(ArrayBufferIsView, kNone)                                  \
-                                                               \
-  V(BooleanConstructor, kNone)                                 \
-  V(BooleanConstructor_ConstructStub, kTargetAndNewTarget)     \
-  V(BooleanPrototypeToString, kNone)                           \
-  V(BooleanPrototypeValueOf, kNone)                            \
-                                                               \
-  V(DataViewConstructor, kNone)                                \
-  V(DataViewConstructor_ConstructStub, kTargetAndNewTarget)    \
-                                                               \
-  V(DateConstructor, kNone)                                    \
-  V(DateConstructor_ConstructStub, kTargetAndNewTarget)        \
-  V(DateNow, kNone)                                            \
-  V(DateParse, kNone)                                          \
-  V(DateUTC, kNone)                                            \
-  V(DatePrototypeSetDate, kNone)                               \
-  V(DatePrototypeSetFullYear, kNone)                           \
-  V(DatePrototypeSetHours, kNone)                              \
-  V(DatePrototypeSetMilliseconds, kNone)                       \
-  V(DatePrototypeSetMinutes, kNone)                            \
-  V(DatePrototypeSetMonth, kNone)                              \
-  V(DatePrototypeSetSeconds, kNone)                            \
-  V(DatePrototypeSetTime, kNone)                               \
-  V(DatePrototypeSetUTCDate, kNone)                            \
-  V(DatePrototypeSetUTCFullYear, kNone)                        \
-  V(DatePrototypeSetUTCHours, kNone)                           \
-  V(DatePrototypeSetUTCMilliseconds, kNone)                    \
-  V(DatePrototypeSetUTCMinutes, kNone)                         \
-  V(DatePrototypeSetUTCMonth, kNone)                           \
-  V(DatePrototypeSetUTCSeconds, kNone)                         \
-  V(DatePrototypeToDateString, kNone)                          \
-  V(DatePrototypeToISOString, kNone)                           \
-  V(DatePrototypeToPrimitive, kNone)                           \
-  V(DatePrototypeToUTCString, kNone)                           \
-  V(DatePrototypeToString, kNone)                              \
-  V(DatePrototypeToTimeString, kNone)                          \
-  V(DatePrototypeValueOf, kNone)                               \
-  V(DatePrototypeGetYear, kNone)                               \
-  V(DatePrototypeSetYear, kNone)                               \
-                                                               \
-  V(FunctionConstructor, kTargetAndNewTarget)                  \
-  V(FunctionPrototypeBind, kNone)                              \
-  V(FunctionPrototypeToString, kNone)                          \
-                                                               \
-  V(GeneratorFunctionConstructor, kTargetAndNewTarget)         \
-  V(AsyncFunctionConstructor, kTargetAndNewTarget)             \
-                                                               \
-  V(GlobalEncodeURI, kNone)                                    \
-  V(GlobalEncodeURIComponent, kNone)                           \
-                                                               \
-  V(GlobalEval, kTarget)                                       \
-                                                               \
-  V(MathAcos, kNone)                                           \
-  V(MathAsin, kNone)                                           \
-  V(MathAtan, kNone)                                           \
-  V(MathFround, kNone)                                         \
-  V(MathImul, kNone)                                           \
-                                                               \
-  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(ObjectLookupGetter, kNone)                                 \
-  V(ObjectLookupSetter, kNone)                                 \
-  V(ObjectPreventExtensions, kNone)                            \
-  V(ObjectProtoToString, kNone)                                \
-  V(ObjectSeal, kNone)                                         \
-  V(ObjectValues, kNone)                                       \
-                                                               \
-  V(ProxyConstructor, kNone)                                   \
-  V(ProxyConstructor_ConstructStub, kTarget)                   \
-                                                               \
-  V(ReflectDefineProperty, kNone)                              \
-  V(ReflectDeleteProperty, kNone)                              \
-  V(ReflectGet, kNone)                                         \
-  V(ReflectGetOwnPropertyDescriptor, kNone)                    \
-  V(ReflectGetPrototypeOf, kNone)                              \
-  V(ReflectHas, kNone)                                         \
-  V(ReflectIsExtensible, kNone)                                \
-  V(ReflectOwnKeys, kNone)                                     \
-  V(ReflectPreventExtensions, kNone)                           \
-  V(ReflectSet, kNone)                                         \
-  V(ReflectSetPrototypeOf, kNone)                              \
-                                                               \
-  V(StringFromCharCode, kNone)                                 \
-                                                               \
-  V(SymbolConstructor, kNone)                                  \
-  V(SymbolConstructor_ConstructStub, kTarget)                  \
-                                                               \
-  V(HandleApiCall, kTargetAndNewTarget)                        \
-  V(HandleApiCallAsFunction, kNone)                            \
-  V(HandleApiCallAsConstructor, kNone)                         \
-                                                               \
-  V(RestrictedFunctionPropertiesThrower, kNone)                \
-  V(RestrictedStrictArgumentsPropertiesThrower, kNone)
+#define BUILTIN_LIST_C(V)                 \
+  V(Illegal)                              \
+                                          \
+  V(EmptyFunction)                        \
+                                          \
+  V(ArrayConcat)                          \
+  V(ArrayPop)                             \
+  V(ArrayPush)                            \
+  V(ArrayShift)                           \
+  V(ArraySlice)                           \
+  V(ArraySplice)                          \
+  V(ArrayUnshift)                         \
+                                          \
+  V(ArrayBufferConstructor)               \
+  V(ArrayBufferConstructor_ConstructStub) \
+  V(ArrayBufferIsView)                    \
+                                          \
+  V(BooleanConstructor)                   \
+  V(BooleanConstructor_ConstructStub)     \
+  V(BooleanPrototypeToString)             \
+  V(BooleanPrototypeValueOf)              \
+                                          \
+  V(DataViewConstructor)                  \
+  V(DataViewConstructor_ConstructStub)    \
+  V(DataViewPrototypeGetBuffer)           \
+  V(DataViewPrototypeGetByteLength)       \
+  V(DataViewPrototypeGetByteOffset)       \
+                                          \
+  V(DateConstructor)                      \
+  V(DateConstructor_ConstructStub)        \
+  V(DateNow)                              \
+  V(DateParse)                            \
+  V(DateUTC)                              \
+  V(DatePrototypeSetDate)                 \
+  V(DatePrototypeSetFullYear)             \
+  V(DatePrototypeSetHours)                \
+  V(DatePrototypeSetMilliseconds)         \
+  V(DatePrototypeSetMinutes)              \
+  V(DatePrototypeSetMonth)                \
+  V(DatePrototypeSetSeconds)              \
+  V(DatePrototypeSetTime)                 \
+  V(DatePrototypeSetUTCDate)              \
+  V(DatePrototypeSetUTCFullYear)          \
+  V(DatePrototypeSetUTCHours)             \
+  V(DatePrototypeSetUTCMilliseconds)      \
+  V(DatePrototypeSetUTCMinutes)           \
+  V(DatePrototypeSetUTCMonth)             \
+  V(DatePrototypeSetUTCSeconds)           \
+  V(DatePrototypeToDateString)            \
+  V(DatePrototypeToISOString)             \
+  V(DatePrototypeToPrimitive)             \
+  V(DatePrototypeToUTCString)             \
+  V(DatePrototypeToString)                \
+  V(DatePrototypeToTimeString)            \
+  V(DatePrototypeValueOf)                 \
+  V(DatePrototypeGetYear)                 \
+  V(DatePrototypeSetYear)                 \
+  V(DatePrototypeToJson)                  \
+                                          \
+  V(FunctionConstructor)                  \
+  V(FunctionPrototypeBind)                \
+  V(FunctionPrototypeToString)            \
+                                          \
+  V(GeneratorFunctionConstructor)         \
+  V(AsyncFunctionConstructor)             \
+                                          \
+  V(GlobalDecodeURI)                      \
+  V(GlobalDecodeURIComponent)             \
+  V(GlobalEncodeURI)                      \
+  V(GlobalEncodeURIComponent)             \
+  V(GlobalEscape)                         \
+  V(GlobalUnescape)                       \
+                                          \
+  V(GlobalEval)                           \
+                                          \
+  V(JsonParse)                            \
+  V(JsonStringify)                        \
+                                          \
+  V(MathAcos)                             \
+  V(MathAsin)                             \
+  V(MathFround)                           \
+  V(MathImul)                             \
+                                          \
+  V(ObjectAssign)                         \
+  V(ObjectCreate)                         \
+  V(ObjectDefineGetter)                   \
+  V(ObjectDefineProperties)               \
+  V(ObjectDefineProperty)                 \
+  V(ObjectDefineSetter)                   \
+  V(ObjectEntries)                        \
+  V(ObjectFreeze)                         \
+  V(ObjectGetOwnPropertyDescriptor)       \
+  V(ObjectGetOwnPropertyDescriptors)      \
+  V(ObjectGetOwnPropertyNames)            \
+  V(ObjectGetOwnPropertySymbols)          \
+  V(ObjectGetPrototypeOf)                 \
+  V(ObjectIs)                             \
+  V(ObjectIsExtensible)                   \
+  V(ObjectIsFrozen)                       \
+  V(ObjectIsSealed)                       \
+  V(ObjectKeys)                           \
+  V(ObjectLookupGetter)                   \
+  V(ObjectLookupSetter)                   \
+  V(ObjectPreventExtensions)              \
+  V(ObjectProtoToString)                  \
+  V(ObjectSeal)                           \
+  V(ObjectValues)                         \
+                                          \
+  V(ProxyConstructor)                     \
+  V(ProxyConstructor_ConstructStub)       \
+                                          \
+  V(ReflectDefineProperty)                \
+  V(ReflectDeleteProperty)                \
+  V(ReflectGet)                           \
+  V(ReflectGetOwnPropertyDescriptor)      \
+  V(ReflectGetPrototypeOf)                \
+  V(ReflectHas)                           \
+  V(ReflectIsExtensible)                  \
+  V(ReflectOwnKeys)                       \
+  V(ReflectPreventExtensions)             \
+  V(ReflectSet)                           \
+  V(ReflectSetPrototypeOf)                \
+                                          \
+  V(StringFromCodePoint)                  \
+                                          \
+  V(StringPrototypeTrim)                  \
+  V(StringPrototypeTrimLeft)              \
+  V(StringPrototypeTrimRight)             \
+                                          \
+  V(SymbolConstructor)                    \
+  V(SymbolConstructor_ConstructStub)      \
+                                          \
+  V(TypedArrayPrototypeBuffer)            \
+                                          \
+  V(HandleApiCall)                        \
+  V(HandleApiCallAsFunction)              \
+  V(HandleApiCallAsConstructor)           \
+                                          \
+  V(RestrictedFunctionPropertiesThrower)  \
+  V(RestrictedStrictArgumentsPropertiesThrower)
 
 // 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)      \
-                                                                               \
-  V(CallFunction_ReceiverIsNullOrUndefined, BUILTIN, UNINITIALIZED,            \
-    kNoExtraICState)                                                           \
-  V(CallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, UNINITIALIZED,         \
-    kNoExtraICState)                                                           \
-  V(CallFunction_ReceiverIsAny, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(TailCallFunction_ReceiverIsNullOrUndefined, BUILTIN, UNINITIALIZED,        \
-    kNoExtraICState)                                                           \
-  V(TailCallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, UNINITIALIZED,     \
-    kNoExtraICState)                                                           \
-  V(TailCallFunction_ReceiverIsAny, BUILTIN, UNINITIALIZED, kNoExtraICState)   \
-  V(CallBoundFunction, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(TailCallBoundFunction, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-  V(Call_ReceiverIsNullOrUndefined, BUILTIN, UNINITIALIZED, kNoExtraICState)   \
-  V(Call_ReceiverIsNotNullOrUndefined, BUILTIN, UNINITIALIZED,                 \
-    kNoExtraICState)                                                           \
-  V(Call_ReceiverIsAny, BUILTIN, UNINITIALIZED, kNoExtraICState)               \
-  V(TailCall_ReceiverIsNullOrUndefined, BUILTIN, UNINITIALIZED,                \
-    kNoExtraICState)                                                           \
-  V(TailCall_ReceiverIsNotNullOrUndefined, BUILTIN, UNINITIALIZED,             \
-    kNoExtraICState)                                                           \
-  V(TailCall_ReceiverIsAny, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-                                                                               \
-  V(ConstructFunction, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(ConstructBoundFunction, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-  V(ConstructProxy, BUILTIN, UNINITIALIZED, kNoExtraICState)                   \
-  V(Construct, BUILTIN, UNINITIALIZED, kNoExtraICState)                        \
-                                                                               \
-  V(Apply, BUILTIN, UNINITIALIZED, kNoExtraICState)                            \
-                                                                               \
-  V(HandleFastApiCall, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-                                                                               \
-  V(InOptimizationQueue, BUILTIN, UNINITIALIZED, kNoExtraICState)              \
-  V(JSConstructStubGeneric, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-  V(JSBuiltinsConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState)          \
-  V(JSBuiltinsConstructStubForDerived, BUILTIN, UNINITIALIZED,                 \
-    kNoExtraICState)                                                           \
-  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)                \
-  V(NotifySoftDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-  V(NotifyLazyDeoptimized, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-  V(NotifyStubFailure, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(NotifyStubFailureSaveDoubles, BUILTIN, UNINITIALIZED, kNoExtraICState)     \
-                                                                               \
-  V(InterpreterEntryTrampoline, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(InterpreterPushArgsAndCall, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(InterpreterPushArgsAndTailCall, BUILTIN, UNINITIALIZED, kNoExtraICState)   \
-  V(InterpreterPushArgsAndConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState)  \
-  V(InterpreterEnterBytecodeDispatch, BUILTIN, UNINITIALIZED, kNoExtraICState) \
-                                                                               \
-  V(LoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState)                      \
-  V(KeyedLoadIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState)                 \
-  V(StoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState)                     \
-  V(KeyedStoreIC_Miss, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(LoadIC_Getter_ForDeopt, LOAD_IC, MONOMORPHIC, kNoExtraICState)             \
-  V(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, MEGAMORPHIC, kNoExtraICState)      \
-                                                                               \
-  V(StoreIC_Setter_ForDeopt, STORE_IC, MONOMORPHIC,                            \
-    StoreICState::kStrictModeState)                                            \
-                                                                               \
-  V(StoreIC_Megamorphic, STORE_IC, MEGAMORPHIC, kNoExtraICState)               \
-  V(StoreIC_Megamorphic_Strict, STORE_IC, MEGAMORPHIC,                         \
-    StoreICState::kStrictModeState)                                            \
-                                                                               \
-  V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, MEGAMORPHIC, kNoExtraICState)    \
-  V(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC, MEGAMORPHIC,              \
-    StoreICState::kStrictModeState)                                            \
-                                                                               \
-  V(DatePrototypeGetDate, BUILTIN, UNINITIALIZED, kNoExtraICState)             \
-  V(DatePrototypeGetDay, BUILTIN, UNINITIALIZED, kNoExtraICState)              \
-  V(DatePrototypeGetFullYear, BUILTIN, UNINITIALIZED, kNoExtraICState)         \
-  V(DatePrototypeGetHours, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-  V(DatePrototypeGetMilliseconds, BUILTIN, UNINITIALIZED, kNoExtraICState)     \
-  V(DatePrototypeGetMinutes, BUILTIN, UNINITIALIZED, kNoExtraICState)          \
-  V(DatePrototypeGetMonth, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-  V(DatePrototypeGetSeconds, BUILTIN, UNINITIALIZED, kNoExtraICState)          \
-  V(DatePrototypeGetTime, BUILTIN, UNINITIALIZED, kNoExtraICState)             \
-  V(DatePrototypeGetTimezoneOffset, BUILTIN, UNINITIALIZED, kNoExtraICState)   \
-  V(DatePrototypeGetUTCDate, BUILTIN, UNINITIALIZED, kNoExtraICState)          \
-  V(DatePrototypeGetUTCDay, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-  V(DatePrototypeGetUTCFullYear, BUILTIN, UNINITIALIZED, kNoExtraICState)      \
-  V(DatePrototypeGetUTCHours, BUILTIN, UNINITIALIZED, kNoExtraICState)         \
-  V(DatePrototypeGetUTCMilliseconds, BUILTIN, UNINITIALIZED, kNoExtraICState)  \
-  V(DatePrototypeGetUTCMinutes, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(DatePrototypeGetUTCMonth, BUILTIN, UNINITIALIZED, kNoExtraICState)         \
-  V(DatePrototypeGetUTCSeconds, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-                                                                               \
-  V(FunctionPrototypeApply, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-  V(FunctionPrototypeCall, BUILTIN, UNINITIALIZED, kNoExtraICState)            \
-                                                                               \
-  V(ReflectApply, BUILTIN, UNINITIALIZED, kNoExtraICState)                     \
-  V(ReflectConstruct, BUILTIN, UNINITIALIZED, kNoExtraICState)                 \
-                                                                               \
-  V(InternalArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(ArrayCode, BUILTIN, UNINITIALIZED, kNoExtraICState)                        \
-                                                                               \
-  V(MathMax, BUILTIN, UNINITIALIZED, kNoExtraICState)                          \
-  V(MathMin, BUILTIN, UNINITIALIZED, kNoExtraICState)                          \
-                                                                               \
-  V(NumberConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(NumberConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState)  \
-                                                                               \
-  V(StringConstructor, BUILTIN, UNINITIALIZED, kNoExtraICState)                \
-  V(StringConstructor_ConstructStub, BUILTIN, UNINITIALIZED, kNoExtraICState)  \
-                                                                               \
-  V(OnStackReplacement, BUILTIN, UNINITIALIZED, kNoExtraICState)               \
-  V(InterruptCheck, BUILTIN, UNINITIALIZED, kNoExtraICState)                   \
-  V(StackCheck, BUILTIN, UNINITIALIZED, kNoExtraICState)                       \
-                                                                               \
-  V(MarkCodeAsToBeExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState)       \
-  V(MarkCodeAsExecutedOnce, BUILTIN, UNINITIALIZED, kNoExtraICState)           \
-  V(MarkCodeAsExecutedTwice, BUILTIN, UNINITIALIZED, kNoExtraICState)          \
+#define BUILTIN_LIST_A(V)                                                    \
+  V(AllocateInNewSpace, BUILTIN, kNoExtraICState)                            \
+  V(AllocateInOldSpace, BUILTIN, kNoExtraICState)                            \
+                                                                             \
+  V(ArgumentsAdaptorTrampoline, BUILTIN, kNoExtraICState)                    \
+                                                                             \
+  V(ConstructedNonConstructable, BUILTIN, kNoExtraICState)                   \
+                                                                             \
+  V(CallFunction_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState)        \
+  V(CallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState)     \
+  V(CallFunction_ReceiverIsAny, BUILTIN, kNoExtraICState)                    \
+  V(TailCallFunction_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState)    \
+  V(TailCallFunction_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState) \
+  V(TailCallFunction_ReceiverIsAny, BUILTIN, kNoExtraICState)                \
+  V(CallBoundFunction, BUILTIN, kNoExtraICState)                             \
+  V(TailCallBoundFunction, BUILTIN, kNoExtraICState)                         \
+  V(Call_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState)                \
+  V(Call_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState)             \
+  V(Call_ReceiverIsAny, BUILTIN, kNoExtraICState)                            \
+  V(TailCall_ReceiverIsNullOrUndefined, BUILTIN, kNoExtraICState)            \
+  V(TailCall_ReceiverIsNotNullOrUndefined, BUILTIN, kNoExtraICState)         \
+  V(TailCall_ReceiverIsAny, BUILTIN, kNoExtraICState)                        \
+                                                                             \
+  V(ConstructFunction, BUILTIN, kNoExtraICState)                             \
+  V(ConstructBoundFunction, BUILTIN, kNoExtraICState)                        \
+  V(ConstructProxy, BUILTIN, kNoExtraICState)                                \
+  V(Construct, BUILTIN, kNoExtraICState)                                     \
+                                                                             \
+  V(StringToNumber, BUILTIN, kNoExtraICState)                                \
+  V(NonNumberToNumber, BUILTIN, kNoExtraICState)                             \
+  V(ToNumber, BUILTIN, kNoExtraICState)                                      \
+                                                                             \
+  V(Apply, BUILTIN, kNoExtraICState)                                         \
+                                                                             \
+  V(HandleFastApiCall, BUILTIN, kNoExtraICState)                             \
+                                                                             \
+  V(InOptimizationQueue, BUILTIN, kNoExtraICState)                           \
+  V(JSConstructStubGeneric, BUILTIN, kNoExtraICState)                        \
+  V(JSBuiltinsConstructStub, BUILTIN, kNoExtraICState)                       \
+  V(JSBuiltinsConstructStubForDerived, BUILTIN, kNoExtraICState)             \
+  V(JSConstructStubApi, BUILTIN, kNoExtraICState)                            \
+  V(JSEntryTrampoline, BUILTIN, kNoExtraICState)                             \
+  V(JSConstructEntryTrampoline, BUILTIN, kNoExtraICState)                    \
+  V(ResumeGeneratorTrampoline, BUILTIN, kNoExtraICState)                     \
+  V(CompileLazy, BUILTIN, kNoExtraICState)                                   \
+  V(CompileBaseline, BUILTIN, kNoExtraICState)                               \
+  V(CompileOptimized, BUILTIN, kNoExtraICState)                              \
+  V(CompileOptimizedConcurrent, BUILTIN, kNoExtraICState)                    \
+  V(NotifyDeoptimized, BUILTIN, kNoExtraICState)                             \
+  V(NotifySoftDeoptimized, BUILTIN, kNoExtraICState)                         \
+  V(NotifyLazyDeoptimized, BUILTIN, kNoExtraICState)                         \
+  V(NotifyStubFailure, BUILTIN, kNoExtraICState)                             \
+  V(NotifyStubFailureSaveDoubles, BUILTIN, kNoExtraICState)                  \
+                                                                             \
+  V(InterpreterEntryTrampoline, BUILTIN, kNoExtraICState)                    \
+  V(InterpreterMarkBaselineOnReturn, BUILTIN, kNoExtraICState)               \
+  V(InterpreterPushArgsAndCall, BUILTIN, kNoExtraICState)                    \
+  V(InterpreterPushArgsAndTailCall, BUILTIN, kNoExtraICState)                \
+  V(InterpreterPushArgsAndConstruct, BUILTIN, kNoExtraICState)               \
+  V(InterpreterEnterBytecodeDispatch, BUILTIN, kNoExtraICState)              \
+                                                                             \
+  V(KeyedLoadIC_Miss, BUILTIN, kNoExtraICState)                              \
+  V(StoreIC_Miss, BUILTIN, kNoExtraICState)                                  \
+  V(KeyedStoreIC_Miss, BUILTIN, kNoExtraICState)                             \
+  V(LoadIC_Getter_ForDeopt, LOAD_IC, kNoExtraICState)                        \
+  V(KeyedLoadIC_Megamorphic, KEYED_LOAD_IC, kNoExtraICState)                 \
+                                                                             \
+  V(StoreIC_Setter_ForDeopt, STORE_IC, StoreICState::kStrictModeState)       \
+                                                                             \
+  V(KeyedStoreIC_Megamorphic, KEYED_STORE_IC, kNoExtraICState)               \
+  V(KeyedStoreIC_Megamorphic_Strict, KEYED_STORE_IC,                         \
+    StoreICState::kStrictModeState)                                          \
+                                                                             \
+  V(DatePrototypeGetDate, BUILTIN, kNoExtraICState)                          \
+  V(DatePrototypeGetDay, BUILTIN, kNoExtraICState)                           \
+  V(DatePrototypeGetFullYear, BUILTIN, kNoExtraICState)                      \
+  V(DatePrototypeGetHours, BUILTIN, kNoExtraICState)                         \
+  V(DatePrototypeGetMilliseconds, BUILTIN, kNoExtraICState)                  \
+  V(DatePrototypeGetMinutes, BUILTIN, kNoExtraICState)                       \
+  V(DatePrototypeGetMonth, BUILTIN, kNoExtraICState)                         \
+  V(DatePrototypeGetSeconds, BUILTIN, kNoExtraICState)                       \
+  V(DatePrototypeGetTime, BUILTIN, kNoExtraICState)                          \
+  V(DatePrototypeGetTimezoneOffset, BUILTIN, kNoExtraICState)                \
+  V(DatePrototypeGetUTCDate, BUILTIN, kNoExtraICState)                       \
+  V(DatePrototypeGetUTCDay, BUILTIN, kNoExtraICState)                        \
+  V(DatePrototypeGetUTCFullYear, BUILTIN, kNoExtraICState)                   \
+  V(DatePrototypeGetUTCHours, BUILTIN, kNoExtraICState)                      \
+  V(DatePrototypeGetUTCMilliseconds, BUILTIN, kNoExtraICState)               \
+  V(DatePrototypeGetUTCMinutes, BUILTIN, kNoExtraICState)                    \
+  V(DatePrototypeGetUTCMonth, BUILTIN, kNoExtraICState)                      \
+  V(DatePrototypeGetUTCSeconds, BUILTIN, kNoExtraICState)                    \
+                                                                             \
+  V(FunctionPrototypeApply, BUILTIN, kNoExtraICState)                        \
+  V(FunctionPrototypeCall, BUILTIN, kNoExtraICState)                         \
+                                                                             \
+  V(ReflectApply, BUILTIN, kNoExtraICState)                                  \
+  V(ReflectConstruct, BUILTIN, kNoExtraICState)                              \
+                                                                             \
+  V(InternalArrayCode, BUILTIN, kNoExtraICState)                             \
+  V(ArrayCode, BUILTIN, kNoExtraICState)                                     \
+                                                                             \
+  V(MathMax, BUILTIN, kNoExtraICState)                                       \
+  V(MathMin, BUILTIN, kNoExtraICState)                                       \
+                                                                             \
+  V(NumberConstructor, BUILTIN, kNoExtraICState)                             \
+  V(NumberConstructor_ConstructStub, BUILTIN, kNoExtraICState)               \
+                                                                             \
+  V(StringConstructor, BUILTIN, kNoExtraICState)                             \
+  V(StringConstructor_ConstructStub, BUILTIN, kNoExtraICState)               \
+                                                                             \
+  V(OnStackReplacement, BUILTIN, kNoExtraICState)                            \
+  V(InterruptCheck, BUILTIN, kNoExtraICState)                                \
+  V(StackCheck, BUILTIN, kNoExtraICState)                                    \
+                                                                             \
+  V(MarkCodeAsToBeExecutedOnce, BUILTIN, kNoExtraICState)                    \
+  V(MarkCodeAsExecutedOnce, BUILTIN, kNoExtraICState)                        \
+  V(MarkCodeAsExecutedTwice, BUILTIN, kNoExtraICState)                       \
   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(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)                  \
+#define BUILTIN_LIST_T(V)             \
+  V(FunctionPrototypeHasInstance, 2)  \
+  V(GeneratorPrototypeNext, 2)        \
+  V(GeneratorPrototypeReturn, 2)      \
+  V(GeneratorPrototypeThrow, 2)       \
+  V(MathAtan, 2)                      \
+  V(MathAtan2, 3)                     \
+  V(MathAtanh, 2)                     \
+  V(MathCeil, 2)                      \
+  V(MathCbrt, 2)                      \
+  V(MathExpm1, 2)                     \
+  V(MathClz32, 2)                     \
+  V(MathCos, 2)                       \
+  V(MathExp, 2)                       \
+  V(MathFloor, 2)                     \
+  V(MathLog, 2)                       \
+  V(MathLog1p, 2)                     \
+  V(MathLog2, 2)                      \
+  V(MathLog10, 2)                     \
+  V(MathRound, 2)                     \
+  V(MathSin, 2)                       \
+  V(MathTan, 2)                       \
+  V(MathSqrt, 2)                      \
+  V(MathTrunc, 2)                     \
+  V(ObjectHasOwnProperty, 2)          \
+  V(ArrayIsArray, 2)                  \
+  V(StringFromCharCode, 2)            \
+  V(StringPrototypeCharAt, 2)         \
+  V(StringPrototypeCharCodeAt, 2)     \
+  V(TypedArrayPrototypeByteLength, 1) \
+  V(TypedArrayPrototypeByteOffset, 1) \
+  V(TypedArrayPrototypeLength, 1)     \
+  V(AtomicsLoad, 3)                   \
   V(AtomicsStore, 4)
 
+// Define list of builtins implemented in TurboFan (with CallStub linkage).
+#define BUILTIN_LIST_S(V)                                                   \
+  V(LoadGlobalIC_Miss, BUILTIN, kNoExtraICState, LoadGlobalWithVector)      \
+  V(LoadGlobalIC_Slow, HANDLER, Code::LOAD_GLOBAL_IC, LoadGlobalWithVector) \
+  V(LoadIC_Miss, BUILTIN, kNoExtraICState, LoadWithVector)                  \
+  V(LoadIC_Slow, HANDLER, Code::LOAD_IC, LoadWithVector)
+
 // Define list of builtin handlers implemented in assembly.
 #define BUILTIN_LIST_H(V)                    \
-  V(LoadIC_Slow,             LOAD_IC)        \
   V(KeyedLoadIC_Slow,        KEYED_LOAD_IC)  \
   V(StoreIC_Slow,            STORE_IC)       \
   V(KeyedStoreIC_Slow,       KEYED_STORE_IC) \
@@ -337,11 +352,10 @@
   V(StoreIC_Normal,          STORE_IC)
 
 // Define list of builtins used by the debugger implemented in assembly.
-#define BUILTIN_LIST_DEBUG_A(V)                                 \
-  V(Return_DebugBreak, BUILTIN, DEBUG_STUB, kNoExtraICState)    \
-  V(Slot_DebugBreak, BUILTIN, DEBUG_STUB, kNoExtraICState)      \
-  V(FrameDropper_LiveEdit, BUILTIN, DEBUG_STUB, kNoExtraICState)
-
+#define BUILTIN_LIST_DEBUG_A(V)                  \
+  V(Return_DebugBreak, BUILTIN, kNoExtraICState) \
+  V(Slot_DebugBreak, BUILTIN, kNoExtraICState)   \
+  V(FrameDropper_LiveEdit, BUILTIN, kNoExtraICState)
 
 class BuiltinFunctionTable;
 class ObjectVisitor;
@@ -363,40 +377,45 @@
   const char* Lookup(byte* pc);
 
   enum Name {
-#define DEF_ENUM_C(name, ignore) k##name,
-#define DEF_ENUM_A(name, kind, state, extra) k##name,
+#define DEF_ENUM_C(name) k##name,
+#define DEF_ENUM_A(name, kind, extra) k##name,
 #define DEF_ENUM_T(name, argc) k##name,
+#define DEF_ENUM_S(name, kind, extra, interface_descriptor) k##name,
 #define DEF_ENUM_H(name, kind) k##name,
     BUILTIN_LIST_C(DEF_ENUM_C) BUILTIN_LIST_A(DEF_ENUM_A)
-        BUILTIN_LIST_T(DEF_ENUM_T) BUILTIN_LIST_H(DEF_ENUM_H)
-            BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
+        BUILTIN_LIST_T(DEF_ENUM_T) BUILTIN_LIST_S(DEF_ENUM_S)
+            BUILTIN_LIST_H(DEF_ENUM_H) BUILTIN_LIST_DEBUG_A(DEF_ENUM_A)
 #undef DEF_ENUM_C
 #undef DEF_ENUM_A
 #undef DEF_ENUM_T
+#undef DEF_ENUM_S
 #undef DEF_ENUM_H
                 builtin_count
   };
 
   enum CFunctionId {
-#define DEF_ENUM_C(name, ignore) c_##name,
+#define DEF_ENUM_C(name) c_##name,
     BUILTIN_LIST_C(DEF_ENUM_C)
 #undef DEF_ENUM_C
     cfunction_count
   };
 
-#define DECLARE_BUILTIN_ACCESSOR_C(name, ignore) Handle<Code> name();
-#define DECLARE_BUILTIN_ACCESSOR_A(name, kind, state, extra) \
-  Handle<Code> name();
+#define DECLARE_BUILTIN_ACCESSOR_C(name) Handle<Code> name();
+#define DECLARE_BUILTIN_ACCESSOR_A(name, kind, extra) Handle<Code> name();
 #define DECLARE_BUILTIN_ACCESSOR_T(name, argc) Handle<Code> name();
+#define DECLARE_BUILTIN_ACCESSOR_S(name, kind, extra, interface_descriptor) \
+  Handle<Code> name();
 #define DECLARE_BUILTIN_ACCESSOR_H(name, kind) Handle<Code> name();
   BUILTIN_LIST_C(DECLARE_BUILTIN_ACCESSOR_C)
   BUILTIN_LIST_A(DECLARE_BUILTIN_ACCESSOR_A)
   BUILTIN_LIST_T(DECLARE_BUILTIN_ACCESSOR_T)
+  BUILTIN_LIST_S(DECLARE_BUILTIN_ACCESSOR_S)
   BUILTIN_LIST_H(DECLARE_BUILTIN_ACCESSOR_H)
   BUILTIN_LIST_DEBUG_A(DECLARE_BUILTIN_ACCESSOR_A)
 #undef DECLARE_BUILTIN_ACCESSOR_C
 #undef DECLARE_BUILTIN_ACCESSOR_A
 #undef DECLARE_BUILTIN_ACCESSOR_T
+#undef DECLARE_BUILTIN_ACCESSOR_S
 #undef DECLARE_BUILTIN_ACCESSOR_H
 
   // Convenience wrappers.
@@ -431,8 +450,8 @@
   bool is_initialized() const { return initialized_; }
 
   MUST_USE_RESULT static MaybeHandle<Object> InvokeApiFunction(
-      Handle<HeapObject> function, Handle<Object> receiver, int argc,
-      Handle<Object> args[]);
+      Isolate* isolate, Handle<HeapObject> function, Handle<Object> receiver,
+      int argc, Handle<Object> args[]);
 
  private:
   Builtins();
@@ -446,9 +465,7 @@
   Object* builtins_[builtin_count];
   const char* names_[builtin_count];
 
-  static void Generate_Adaptor(MacroAssembler* masm,
-                               CFunctionId id,
-                               BuiltinExtraArguments extra_args);
+  static void Generate_Adaptor(MacroAssembler* masm, CFunctionId id);
   static void Generate_AllocateInNewSpace(MacroAssembler* masm);
   static void Generate_AllocateInOldSpace(MacroAssembler* masm);
   static void Generate_ConstructedNonConstructable(MacroAssembler* masm);
@@ -470,6 +487,9 @@
   static void Generate_NotifyStubFailure(MacroAssembler* masm);
   static void Generate_NotifyStubFailureSaveDoubles(MacroAssembler* masm);
   static void Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm);
+  static void Generate_StringToNumber(MacroAssembler* masm);
+  static void Generate_NonNumberToNumber(MacroAssembler* masm);
+  static void Generate_ToNumber(MacroAssembler* masm);
 
   static void Generate_Apply(MacroAssembler* masm);
 
@@ -601,12 +621,34 @@
   static void Generate_InternalArrayCode(MacroAssembler* masm);
   static void Generate_ArrayCode(MacroAssembler* masm);
 
+  // ES6 section 20.2.2.6 Math.atan ( x )
+  static void Generate_MathAtan(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.8 Math.atan2 ( y, x )
+  static void Generate_MathAtan2(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.7 Math.atanh ( x )
+  static void Generate_MathAtanh(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.10 Math.ceil ( x )
   static void Generate_MathCeil(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.9 Math.ceil ( x )
+  static void Generate_MathCbrt(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.15 Math.expm1 ( x )
+  static void Generate_MathExpm1(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.11 Math.clz32 ( x )
   static void Generate_MathClz32(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.12 Math.cos ( x )
+  static void Generate_MathCos(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.14 Math.exp ( x )
+  static void Generate_MathExp(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.16 Math.floor ( x )
   static void Generate_MathFloor(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.20 Math.log ( x )
+  static void Generate_MathLog(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.21 Math.log ( x )
+  static void Generate_MathLog1p(CodeStubAssembler* assembler);
+
+  static void Generate_MathLog2(CodeStubAssembler* assembler);
+  static void Generate_MathLog10(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 )
@@ -619,8 +661,12 @@
   }
   // ES6 section 20.2.2.28 Math.round ( x )
   static void Generate_MathRound(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.20 Math.sin ( x )
+  static void Generate_MathSin(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.32 Math.sqrt ( x )
   static void Generate_MathSqrt(CodeStubAssembler* assembler);
+  // ES6 section 20.2.2.33 Math.sin ( x )
+  static void Generate_MathTan(CodeStubAssembler* assembler);
   // ES6 section 20.2.2.35 Math.trunc ( x )
   static void Generate_MathTrunc(CodeStubAssembler* assembler);
 
@@ -646,6 +692,8 @@
   // ES6 section 22.1.2.2 Array.isArray
   static void Generate_ArrayIsArray(CodeStubAssembler* assembler);
 
+  // ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits )
+  static void Generate_StringFromCharCode(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 )
@@ -653,12 +701,23 @@
 
   static void Generate_StringConstructor(MacroAssembler* masm);
   static void Generate_StringConstructor_ConstructStub(MacroAssembler* masm);
+
+  // ES6 section 22.2.3.2 get %TypedArray%.prototype.byteLength
+  static void Generate_TypedArrayPrototypeByteLength(
+      CodeStubAssembler* assembler);
+  // ES6 section 22.2.3.3 get %TypedArray%.prototype.byteOffset
+  static void Generate_TypedArrayPrototypeByteOffset(
+      CodeStubAssembler* assembler);
+  // ES6 section 22.2.3.18 get %TypedArray%.prototype.length
+  static void Generate_TypedArrayPrototypeLength(CodeStubAssembler* assembler);
+
   static void Generate_OnStackReplacement(MacroAssembler* masm);
   static void Generate_InterruptCheck(MacroAssembler* masm);
   static void Generate_StackCheck(MacroAssembler* masm);
 
   static void Generate_InterpreterEntryTrampoline(MacroAssembler* masm);
   static void Generate_InterpreterEnterBytecodeDispatch(MacroAssembler* masm);
+  static void Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm);
   static void Generate_InterpreterPushArgsAndCall(MacroAssembler* masm) {
     return Generate_InterpreterPushArgsAndCallImpl(masm,
                                                    TailCallMode::kDisallow);
diff --git a/src/code-events.h b/src/code-events.h
new file mode 100644
index 0000000..9ae1cae
--- /dev/null
+++ b/src/code-events.h
@@ -0,0 +1,183 @@
+// 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_EVENTS_H_
+#define V8_CODE_EVENTS_H_
+
+#include <unordered_set>
+
+#include "src/globals.h"
+
+namespace v8 {
+namespace internal {
+
+class AbstractCode;
+class Name;
+class SharedFunctionInfo;
+class String;
+
+#define LOG_EVENTS_AND_TAGS_LIST(V)                                      \
+  V(CODE_CREATION_EVENT, "code-creation")                                \
+  V(CODE_DISABLE_OPT_EVENT, "code-disable-optimization")                 \
+  V(CODE_MOVE_EVENT, "code-move")                                        \
+  V(CODE_DELETE_EVENT, "code-delete")                                    \
+  V(CODE_MOVING_GC, "code-moving-gc")                                    \
+  V(SHARED_FUNC_MOVE_EVENT, "sfi-move")                                  \
+  V(SNAPSHOT_CODE_NAME_EVENT, "snapshot-code-name")                      \
+  V(TICK_EVENT, "tick")                                                  \
+  V(REPEAT_META_EVENT, "repeat")                                         \
+  V(BUILTIN_TAG, "Builtin")                                              \
+  V(CALL_DEBUG_BREAK_TAG, "CallDebugBreak")                              \
+  V(CALL_DEBUG_PREPARE_STEP_IN_TAG, "CallDebugPrepareStepIn")            \
+  V(CALL_INITIALIZE_TAG, "CallInitialize")                               \
+  V(CALL_MEGAMORPHIC_TAG, "CallMegamorphic")                             \
+  V(CALL_MISS_TAG, "CallMiss")                                           \
+  V(CALL_NORMAL_TAG, "CallNormal")                                       \
+  V(LOAD_INITIALIZE_TAG, "LoadInitialize")                               \
+  V(LOAD_MEGAMORPHIC_TAG, "LoadMegamorphic")                             \
+  V(STORE_INITIALIZE_TAG, "StoreInitialize")                             \
+  V(STORE_GENERIC_TAG, "StoreGeneric")                                   \
+  V(STORE_MEGAMORPHIC_TAG, "StoreMegamorphic")                           \
+  V(KEYED_CALL_DEBUG_BREAK_TAG, "KeyedCallDebugBreak")                   \
+  V(KEYED_CALL_DEBUG_PREPARE_STEP_IN_TAG, "KeyedCallDebugPrepareStepIn") \
+  V(KEYED_CALL_INITIALIZE_TAG, "KeyedCallInitialize")                    \
+  V(KEYED_CALL_MEGAMORPHIC_TAG, "KeyedCallMegamorphic")                  \
+  V(KEYED_CALL_MISS_TAG, "KeyedCallMiss")                                \
+  V(KEYED_CALL_NORMAL_TAG, "KeyedCallNormal")                            \
+  V(CALLBACK_TAG, "Callback")                                            \
+  V(EVAL_TAG, "Eval")                                                    \
+  V(FUNCTION_TAG, "Function")                                            \
+  V(HANDLER_TAG, "Handler")                                              \
+  V(BYTECODE_HANDLER_TAG, "BytecodeHandler")                             \
+  V(KEYED_LOAD_IC_TAG, "KeyedLoadIC")                                    \
+  V(KEYED_LOAD_POLYMORPHIC_IC_TAG, "KeyedLoadPolymorphicIC")             \
+  V(KEYED_EXTERNAL_ARRAY_LOAD_IC_TAG, "KeyedExternalArrayLoadIC")        \
+  V(KEYED_STORE_IC_TAG, "KeyedStoreIC")                                  \
+  V(KEYED_STORE_POLYMORPHIC_IC_TAG, "KeyedStorePolymorphicIC")           \
+  V(KEYED_EXTERNAL_ARRAY_STORE_IC_TAG, "KeyedExternalArrayStoreIC")      \
+  V(LAZY_COMPILE_TAG, "LazyCompile")                                     \
+  V(CALL_IC_TAG, "CallIC")                                               \
+  V(LOAD_IC_TAG, "LoadIC")                                               \
+  V(LOAD_GLOBAL_IC_TAG, "LoadGlobalIC")                                  \
+  V(LOAD_POLYMORPHIC_IC_TAG, "LoadPolymorphicIC")                        \
+  V(REG_EXP_TAG, "RegExp")                                               \
+  V(SCRIPT_TAG, "Script")                                                \
+  V(STORE_IC_TAG, "StoreIC")                                             \
+  V(STORE_POLYMORPHIC_IC_TAG, "StorePolymorphicIC")                      \
+  V(STUB_TAG, "Stub")                                                    \
+  V(NATIVE_FUNCTION_TAG, "Function")                                     \
+  V(NATIVE_LAZY_COMPILE_TAG, "LazyCompile")                              \
+  V(NATIVE_SCRIPT_TAG, "Script")
+// Note that 'NATIVE_' cases for functions and scripts are mapped onto
+// original tags when writing to the log.
+
+#define PROFILE(the_isolate, Call) (the_isolate)->code_event_dispatcher()->Call;
+
+class CodeEventListener {
+ public:
+#define DECLARE_ENUM(enum_item, _) enum_item,
+  enum LogEventsAndTags {
+    LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM) NUMBER_OF_LOG_EVENTS
+  };
+#undef DECLARE_ENUM
+
+  virtual ~CodeEventListener() {}
+
+  virtual void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                               const char* comment) = 0;
+  virtual void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                               Name* name) = 0;
+  virtual void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                               SharedFunctionInfo* shared, Name* name) = 0;
+  virtual void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                               SharedFunctionInfo* shared, Name* source,
+                               int line, int column) = 0;
+  virtual void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                               int args_count) = 0;
+  virtual void CallbackEvent(Name* name, Address entry_point) = 0;
+  virtual void GetterCallbackEvent(Name* name, Address entry_point) = 0;
+  virtual void SetterCallbackEvent(Name* name, Address entry_point) = 0;
+  virtual void RegExpCodeCreateEvent(AbstractCode* code, String* source) = 0;
+  virtual void CodeMoveEvent(AbstractCode* from, Address to) = 0;
+  virtual void SharedFunctionInfoMoveEvent(Address from, Address to) = 0;
+  virtual void CodeMovingGCEvent() = 0;
+  virtual void CodeDisableOptEvent(AbstractCode* code,
+                                   SharedFunctionInfo* shared) = 0;
+  virtual void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) = 0;
+};
+
+class CodeEventDispatcher {
+ public:
+  using LogEventsAndTags = CodeEventListener::LogEventsAndTags;
+
+  CodeEventDispatcher() {}
+
+  bool AddListener(CodeEventListener* listener) {
+    return listeners_.insert(listener).second;
+  }
+  void RemoveListener(CodeEventListener* listener) {
+    listeners_.erase(listener);
+  }
+
+#define CODE_EVENT_DISPATCH(code) \
+  for (auto it = listeners_.begin(); it != listeners_.end(); ++it) (*it)->code
+
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                       const char* comment) {
+    CODE_EVENT_DISPATCH(CodeCreateEvent(tag, code, comment));
+  }
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, Name* name) {
+    CODE_EVENT_DISPATCH(CodeCreateEvent(tag, code, name));
+  }
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                       SharedFunctionInfo* shared, Name* name) {
+    CODE_EVENT_DISPATCH(CodeCreateEvent(tag, code, shared, name));
+  }
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                       SharedFunctionInfo* shared, Name* source, int line,
+                       int column) {
+    CODE_EVENT_DISPATCH(
+        CodeCreateEvent(tag, code, shared, source, line, column));
+  }
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
+                       int args_count) {
+    CODE_EVENT_DISPATCH(CodeCreateEvent(tag, code, args_count));
+  }
+  void CallbackEvent(Name* name, Address entry_point) {
+    CODE_EVENT_DISPATCH(CallbackEvent(name, entry_point));
+  }
+  void GetterCallbackEvent(Name* name, Address entry_point) {
+    CODE_EVENT_DISPATCH(GetterCallbackEvent(name, entry_point));
+  }
+  void SetterCallbackEvent(Name* name, Address entry_point) {
+    CODE_EVENT_DISPATCH(SetterCallbackEvent(name, entry_point));
+  }
+  void RegExpCodeCreateEvent(AbstractCode* code, String* source) {
+    CODE_EVENT_DISPATCH(RegExpCodeCreateEvent(code, source));
+  }
+  void CodeMoveEvent(AbstractCode* from, Address to) {
+    CODE_EVENT_DISPATCH(CodeMoveEvent(from, to));
+  }
+  void SharedFunctionInfoMoveEvent(Address from, Address to) {
+    CODE_EVENT_DISPATCH(SharedFunctionInfoMoveEvent(from, to));
+  }
+  void CodeMovingGCEvent() { CODE_EVENT_DISPATCH(CodeMovingGCEvent()); }
+  void CodeDisableOptEvent(AbstractCode* code, SharedFunctionInfo* shared) {
+    CODE_EVENT_DISPATCH(CodeDisableOptEvent(code, shared));
+  }
+  void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) {
+    CODE_EVENT_DISPATCH(CodeDeoptEvent(code, pc, fp_to_sp_delta));
+  }
+#undef CODE_EVENT_DISPATCH
+
+ private:
+  std::unordered_set<CodeEventListener*> listeners_;
+
+  DISALLOW_COPY_AND_ASSIGN(CodeEventDispatcher);
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_CODE_EVENTS_H_
diff --git a/src/code-factory.cc b/src/code-factory.cc
index dd12b05..944f780 100644
--- a/src/code-factory.cc
+++ b/src/code-factory.cc
@@ -12,8 +12,12 @@
 
 
 // static
-Callable CodeFactory::LoadIC(Isolate* isolate, TypeofMode typeof_mode) {
-  LoadICTrampolineStub stub(isolate, LoadICState(typeof_mode));
+Callable CodeFactory::LoadIC(Isolate* isolate) {
+  if (FLAG_tf_load_ic_stub) {
+    LoadICTrampolineTFStub stub(isolate);
+    return Callable(stub.GetCode(), LoadDescriptor(isolate));
+  }
+  LoadICTrampolineStub stub(isolate);
   return Callable(stub.GetCode(), LoadDescriptor(isolate));
 }
 
@@ -24,32 +28,37 @@
 }
 
 // static
-Callable CodeFactory::LoadICInOptimizedCode(
-    Isolate* isolate, TypeofMode typeof_mode,
-    InlineCacheState initialization_state) {
-  auto code = LoadIC::initialize_stub_in_optimized_code(
-      isolate, LoadICState(typeof_mode).GetExtraICState(),
-      initialization_state);
+Callable CodeFactory::LoadICInOptimizedCode(Isolate* isolate) {
+  auto code = LoadIC::initialize_stub_in_optimized_code(isolate);
   return Callable(code, LoadWithVectorDescriptor(isolate));
 }
 
+// static
+Callable CodeFactory::LoadGlobalIC(Isolate* isolate, TypeofMode typeof_mode) {
+  LoadGlobalICTrampolineStub stub(isolate, LoadGlobalICState(typeof_mode));
+  return Callable(stub.GetCode(), LoadGlobalDescriptor(isolate));
+}
+
+// static
+Callable CodeFactory::LoadGlobalICInOptimizedCode(Isolate* isolate,
+                                                  TypeofMode typeof_mode) {
+  auto code = LoadGlobalIC::initialize_stub_in_optimized_code(
+      isolate, LoadGlobalICState(typeof_mode).GetExtraICState());
+  return Callable(code, LoadGlobalWithVectorDescriptor(isolate));
+}
 
 // static
 Callable CodeFactory::KeyedLoadIC(Isolate* isolate) {
-  KeyedLoadICTrampolineStub stub(isolate, LoadICState(kNoExtraICState));
+  KeyedLoadICTrampolineStub stub(isolate);
   return Callable(stub.GetCode(), LoadDescriptor(isolate));
 }
 
 
 // static
-Callable CodeFactory::KeyedLoadICInOptimizedCode(
-    Isolate* isolate, InlineCacheState initialization_state) {
-  auto code = KeyedLoadIC::initialize_stub_in_optimized_code(
-      isolate, initialization_state, kNoExtraICState);
-  if (initialization_state != MEGAMORPHIC) {
-    return Callable(code, LoadWithVectorDescriptor(isolate));
-  }
-  return Callable(code, LoadDescriptor(isolate));
+Callable CodeFactory::KeyedLoadICInOptimizedCode(Isolate* isolate) {
+  auto code =
+      KeyedLoadIC::initialize_stub_in_optimized_code(isolate, kNoExtraICState);
+  return Callable(code, LoadWithVectorDescriptor(isolate));
 }
 
 
@@ -80,15 +89,12 @@
 
 
 // static
-Callable CodeFactory::StoreICInOptimizedCode(
-    Isolate* isolate, LanguageMode language_mode,
-    InlineCacheState initialization_state) {
-  CallInterfaceDescriptor descriptor = initialization_state != MEGAMORPHIC
-                                           ? VectorStoreICDescriptor(isolate)
-                                           : StoreDescriptor(isolate);
-  return Callable(StoreIC::initialize_stub_in_optimized_code(
-                      isolate, language_mode, initialization_state),
-                  descriptor);
+Callable CodeFactory::StoreICInOptimizedCode(Isolate* isolate,
+                                             LanguageMode language_mode) {
+  CallInterfaceDescriptor descriptor = VectorStoreICDescriptor(isolate);
+  return Callable(
+      StoreIC::initialize_stub_in_optimized_code(isolate, language_mode),
+      descriptor);
 }
 
 
@@ -101,15 +107,12 @@
 
 
 // static
-Callable CodeFactory::KeyedStoreICInOptimizedCode(
-    Isolate* isolate, LanguageMode language_mode,
-    InlineCacheState initialization_state) {
-  CallInterfaceDescriptor descriptor = initialization_state != MEGAMORPHIC
-                                           ? VectorStoreICDescriptor(isolate)
-                                           : StoreDescriptor(isolate);
-  return Callable(KeyedStoreIC::initialize_stub_in_optimized_code(
-                      isolate, language_mode, initialization_state),
-                  descriptor);
+Callable CodeFactory::KeyedStoreICInOptimizedCode(Isolate* isolate,
+                                                  LanguageMode language_mode) {
+  CallInterfaceDescriptor descriptor = VectorStoreICDescriptor(isolate);
+  return Callable(
+      KeyedStoreIC::initialize_stub_in_optimized_code(isolate, language_mode),
+      descriptor);
 }
 
 
@@ -143,21 +146,21 @@
 
 // static
 Callable CodeFactory::ToNumber(Isolate* isolate) {
-  ToNumberStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+  return Callable(isolate->builtins()->ToNumber(),
+                  TypeConversionDescriptor(isolate));
 }
 
 
 // static
 Callable CodeFactory::NonNumberToNumber(Isolate* isolate) {
-  NonNumberToNumberStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+  return Callable(isolate->builtins()->NonNumberToNumber(),
+                  TypeConversionDescriptor(isolate));
 }
 
 // static
 Callable CodeFactory::StringToNumber(Isolate* isolate) {
-  StringToNumberStub stub(isolate);
-  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+  return Callable(isolate->builtins()->StringToNumber(),
+                  TypeConversionDescriptor(isolate));
 }
 
 // static
@@ -552,6 +555,12 @@
 }
 
 // static
+Callable CodeFactory::MathPow(Isolate* isolate) {
+  MathPowStub stub(isolate, MathPowStub::ON_STACK);
+  return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor());
+}
+
+// static
 Callable CodeFactory::InterpreterPushArgsAndCall(Isolate* isolate,
                                                  TailCallMode tail_call_mode) {
   return Callable(
diff --git a/src/code-factory.h b/src/code-factory.h
index 7b43cae..7fb7bc5 100644
--- a/src/code-factory.h
+++ b/src/code-factory.h
@@ -32,13 +32,13 @@
 class CodeFactory final {
  public:
   // Initial states for ICs.
-  static Callable LoadIC(Isolate* isolate, TypeofMode typeof_mode);
-  static Callable LoadICInOptimizedCode(Isolate* isolate,
-                                        TypeofMode typeof_mode,
-                                        InlineCacheState initialization_state);
+  static Callable LoadIC(Isolate* isolate);
+  static Callable LoadICInOptimizedCode(Isolate* isolate);
+  static Callable LoadGlobalIC(Isolate* isolate, TypeofMode typeof_mode);
+  static Callable LoadGlobalICInOptimizedCode(Isolate* isolate,
+                                              TypeofMode typeof_mode);
   static Callable KeyedLoadIC(Isolate* isolate);
-  static Callable KeyedLoadICInOptimizedCode(
-      Isolate* isolate, InlineCacheState initialization_state);
+  static Callable KeyedLoadICInOptimizedCode(Isolate* isolate);
   static Callable CallIC(Isolate* isolate, int argc,
                          ConvertReceiverMode mode = ConvertReceiverMode::kAny,
                          TailCallMode tail_call_mode = TailCallMode::kDisallow);
@@ -47,12 +47,10 @@
       ConvertReceiverMode mode = ConvertReceiverMode::kAny,
       TailCallMode tail_call_mode = TailCallMode::kDisallow);
   static Callable StoreIC(Isolate* isolate, LanguageMode mode);
-  static Callable StoreICInOptimizedCode(Isolate* isolate, LanguageMode mode,
-                                         InlineCacheState initialization_state);
+  static Callable StoreICInOptimizedCode(Isolate* isolate, LanguageMode mode);
   static Callable KeyedStoreIC(Isolate* isolate, LanguageMode mode);
-  static Callable KeyedStoreICInOptimizedCode(
-      Isolate* isolate, LanguageMode mode,
-      InlineCacheState initialization_state);
+  static Callable KeyedStoreICInOptimizedCode(Isolate* isolate,
+                                              LanguageMode mode);
 
   static Callable ResumeGenerator(Isolate* isolate);
 
@@ -148,6 +146,8 @@
   static Callable ConstructFunction(Isolate* isolate);
   static Callable HasProperty(Isolate* isolate);
 
+  static Callable MathPow(Isolate* isolate);
+
   static Callable InterpreterPushArgsAndCall(Isolate* isolate,
                                              TailCallMode tail_call_mode);
   static Callable InterpreterPushArgsAndConstruct(Isolate* isolate);
diff --git a/src/code-stub-assembler.cc b/src/code-stub-assembler.cc
index 3e26b52..dca2167 100644
--- a/src/code-stub-assembler.cc
+++ b/src/code-stub-assembler.cc
@@ -4,6 +4,9 @@
 
 #include "src/code-stub-assembler.h"
 #include "src/code-factory.h"
+#include "src/frames-inl.h"
+#include "src/frames.h"
+#include "src/ic/stub-cache.h"
 
 namespace v8 {
 namespace internal {
@@ -22,6 +25,18 @@
                                      const char* name)
     : compiler::CodeAssembler(isolate, zone, parameter_count, flags, name) {}
 
+void CodeStubAssembler::Assert(Node* condition) {
+#if defined(DEBUG)
+  Label ok(this);
+  Comment("[ Assert");
+  GotoIf(condition, &ok);
+  DebugBreak();
+  Goto(&ok);
+  Bind(&ok);
+  Comment("] Assert");
+#endif
+}
+
 Node* CodeStubAssembler::BooleanMapConstant() {
   return HeapConstant(isolate()->factory()->boolean_map());
 }
@@ -46,6 +61,14 @@
   return LoadRoot(Heap::kUndefinedValueRootIndex);
 }
 
+Node* CodeStubAssembler::TheHoleConstant() {
+  return LoadRoot(Heap::kTheHoleValueRootIndex);
+}
+
+Node* CodeStubAssembler::HashSeed() {
+  return SmiToWord32(LoadRoot(Heap::kHashSeedRootIndex));
+}
+
 Node* CodeStubAssembler::StaleRegisterConstant() {
   return LoadRoot(Heap::kStaleRegisterRootIndex);
 }
@@ -450,6 +473,17 @@
   return InnerAllocate(previous, IntPtrConstant(offset));
 }
 
+compiler::Node* CodeStubAssembler::LoadFromFrame(int offset, MachineType rep) {
+  Node* frame_pointer = LoadFramePointer();
+  return Load(rep, frame_pointer, IntPtrConstant(offset));
+}
+
+compiler::Node* CodeStubAssembler::LoadFromParentFrame(int offset,
+                                                       MachineType rep) {
+  Node* frame_pointer = LoadParentFramePointer();
+  return Load(rep, frame_pointer, IntPtrConstant(offset));
+}
+
 Node* CodeStubAssembler::LoadBufferObject(Node* buffer, int offset,
                                           MachineType rep) {
   return Load(rep, buffer, IntPtrConstant(offset));
@@ -460,9 +494,14 @@
   return Load(rep, object, IntPtrConstant(offset - kHeapObjectTag));
 }
 
+Node* CodeStubAssembler::LoadObjectField(Node* object, Node* offset,
+                                         MachineType rep) {
+  return Load(rep, object, IntPtrSub(offset, IntPtrConstant(kHeapObjectTag)));
+}
+
 Node* CodeStubAssembler::LoadHeapNumberValue(Node* object) {
-  return Load(MachineType::Float64(), object,
-              IntPtrConstant(HeapNumber::kValueOffset - kHeapObjectTag));
+  return LoadObjectField(object, HeapNumber::kValueOffset,
+                         MachineType::Float64());
 }
 
 Node* CodeStubAssembler::LoadMap(Node* object) {
@@ -473,6 +512,15 @@
   return LoadMapInstanceType(LoadMap(object));
 }
 
+void CodeStubAssembler::AssertInstanceType(Node* object,
+                                           InstanceType instance_type) {
+  Assert(Word32Equal(LoadInstanceType(object), Int32Constant(instance_type)));
+}
+
+Node* CodeStubAssembler::LoadProperties(Node* object) {
+  return LoadObjectField(object, JSObject::kPropertiesOffset);
+}
+
 Node* CodeStubAssembler::LoadElements(Node* object) {
   return LoadObjectField(object, JSObject::kElementsOffset);
 }
@@ -482,23 +530,19 @@
 }
 
 Node* CodeStubAssembler::LoadMapBitField(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kBitFieldOffset - kHeapObjectTag));
+  return LoadObjectField(map, Map::kBitFieldOffset, MachineType::Uint8());
 }
 
 Node* CodeStubAssembler::LoadMapBitField2(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kBitField2Offset - kHeapObjectTag));
+  return LoadObjectField(map, Map::kBitField2Offset, MachineType::Uint8());
 }
 
 Node* CodeStubAssembler::LoadMapBitField3(Node* map) {
-  return Load(MachineType::Uint32(), map,
-              IntPtrConstant(Map::kBitField3Offset - kHeapObjectTag));
+  return LoadObjectField(map, Map::kBitField3Offset, MachineType::Uint32());
 }
 
 Node* CodeStubAssembler::LoadMapInstanceType(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kInstanceTypeOffset - kHeapObjectTag));
+  return LoadObjectField(map, Map::kInstanceTypeOffset, MachineType::Uint8());
 }
 
 Node* CodeStubAssembler::LoadMapDescriptors(Node* map) {
@@ -509,9 +553,49 @@
   return LoadObjectField(map, Map::kPrototypeOffset);
 }
 
-Node* CodeStubAssembler::LoadNameHash(Node* name) {
-  return Load(MachineType::Uint32(), name,
-              IntPtrConstant(Name::kHashFieldOffset - kHeapObjectTag));
+Node* CodeStubAssembler::LoadMapInstanceSize(Node* map) {
+  return LoadObjectField(map, Map::kInstanceSizeOffset, MachineType::Uint8());
+}
+
+Node* CodeStubAssembler::LoadMapInobjectProperties(Node* map) {
+  // See Map::GetInObjectProperties() for details.
+  STATIC_ASSERT(LAST_JS_OBJECT_TYPE == LAST_TYPE);
+  Assert(Int32GreaterThanOrEqual(LoadMapInstanceType(map),
+                                 Int32Constant(FIRST_JS_OBJECT_TYPE)));
+  return LoadObjectField(
+      map, Map::kInObjectPropertiesOrConstructorFunctionIndexOffset,
+      MachineType::Uint8());
+}
+
+Node* CodeStubAssembler::LoadNameHashField(Node* name) {
+  return LoadObjectField(name, Name::kHashFieldOffset, MachineType::Uint32());
+}
+
+Node* CodeStubAssembler::LoadNameHash(Node* name, Label* if_hash_not_computed) {
+  Node* hash_field = LoadNameHashField(name);
+  if (if_hash_not_computed != nullptr) {
+    GotoIf(WordEqual(
+               Word32And(hash_field, Int32Constant(Name::kHashNotComputedMask)),
+               Int32Constant(0)),
+           if_hash_not_computed);
+  }
+  return Word32Shr(hash_field, Int32Constant(Name::kHashShift));
+}
+
+Node* CodeStubAssembler::LoadStringLength(Node* object) {
+  return LoadObjectField(object, String::kLengthOffset);
+}
+
+Node* CodeStubAssembler::LoadJSValueValue(Node* object) {
+  return LoadObjectField(object, JSValue::kValueOffset);
+}
+
+Node* CodeStubAssembler::LoadWeakCellValue(Node* weak_cell, Label* if_cleared) {
+  Node* value = LoadObjectField(weak_cell, WeakCell::kValueOffset);
+  if (if_cleared != nullptr) {
+    GotoIf(WordEqual(value, IntPtrConstant(0)), if_cleared);
+  }
+  return value;
 }
 
 Node* CodeStubAssembler::AllocateUninitializedFixedArray(Node* length) {
@@ -537,9 +621,14 @@
   return Load(MachineType::AnyTagged(), object, offset);
 }
 
-Node* CodeStubAssembler::LoadMapInstanceSize(Node* map) {
-  return Load(MachineType::Uint8(), map,
-              IntPtrConstant(Map::kInstanceSizeOffset - kHeapObjectTag));
+Node* CodeStubAssembler::LoadFixedDoubleArrayElement(
+    Node* object, Node* index_node, MachineType machine_type,
+    int additional_offset, ParameterMode parameter_mode) {
+  int32_t header_size =
+      FixedDoubleArray::kHeaderSize + additional_offset - kHeapObjectTag;
+  Node* offset = ElementOffsetFromIndex(index_node, FAST_HOLEY_DOUBLE_ELEMENTS,
+                                        parameter_mode, header_size);
+  return Load(machine_type, object, offset);
 }
 
 Node* CodeStubAssembler::LoadNativeContext(Node* context) {
@@ -620,21 +709,107 @@
   StoreMapNoWriteBarrier(result, LoadRoot(Heap::kOneByteStringMapRootIndex));
   StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kLengthOffset,
                                  SmiConstant(Smi::FromInt(length)));
-  StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kHashFieldSlot,
-                                 IntPtrConstant(String::kEmptyHashField));
+  StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kHashFieldOffset,
+                                 IntPtrConstant(String::kEmptyHashField),
+                                 MachineRepresentation::kWord32);
   return result;
 }
 
+Node* CodeStubAssembler::AllocateSeqOneByteString(Node* context, Node* length) {
+  Variable var_result(this, MachineRepresentation::kTagged);
+
+  // Compute the SeqOneByteString size and check if it fits into new space.
+  Label if_sizeissmall(this), if_notsizeissmall(this, Label::kDeferred),
+      if_join(this);
+  Node* size = WordAnd(
+      IntPtrAdd(
+          IntPtrAdd(length, IntPtrConstant(SeqOneByteString::kHeaderSize)),
+          IntPtrConstant(kObjectAlignmentMask)),
+      IntPtrConstant(~kObjectAlignmentMask));
+  Branch(IntPtrLessThanOrEqual(size,
+                               IntPtrConstant(Page::kMaxRegularHeapObjectSize)),
+         &if_sizeissmall, &if_notsizeissmall);
+
+  Bind(&if_sizeissmall);
+  {
+    // Just allocate the SeqOneByteString in new space.
+    Node* result = Allocate(size);
+    StoreMapNoWriteBarrier(result, LoadRoot(Heap::kOneByteStringMapRootIndex));
+    StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kLengthOffset,
+                                   SmiFromWord(length));
+    StoreObjectFieldNoWriteBarrier(result, SeqOneByteString::kHashFieldOffset,
+                                   IntPtrConstant(String::kEmptyHashField),
+                                   MachineRepresentation::kWord32);
+    var_result.Bind(result);
+    Goto(&if_join);
+  }
+
+  Bind(&if_notsizeissmall);
+  {
+    // We might need to allocate in large object space, go to the runtime.
+    Node* result = CallRuntime(Runtime::kAllocateSeqOneByteString, context,
+                               SmiFromWord(length));
+    var_result.Bind(result);
+    Goto(&if_join);
+  }
+
+  Bind(&if_join);
+  return var_result.value();
+}
+
 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));
+  StoreObjectFieldNoWriteBarrier(result, SeqTwoByteString::kHashFieldOffset,
+                                 IntPtrConstant(String::kEmptyHashField),
+                                 MachineRepresentation::kWord32);
   return result;
 }
 
+Node* CodeStubAssembler::AllocateSeqTwoByteString(Node* context, Node* length) {
+  Variable var_result(this, MachineRepresentation::kTagged);
+
+  // Compute the SeqTwoByteString size and check if it fits into new space.
+  Label if_sizeissmall(this), if_notsizeissmall(this, Label::kDeferred),
+      if_join(this);
+  Node* size = WordAnd(
+      IntPtrAdd(IntPtrAdd(WordShl(length, 1),
+                          IntPtrConstant(SeqTwoByteString::kHeaderSize)),
+                IntPtrConstant(kObjectAlignmentMask)),
+      IntPtrConstant(~kObjectAlignmentMask));
+  Branch(IntPtrLessThanOrEqual(size,
+                               IntPtrConstant(Page::kMaxRegularHeapObjectSize)),
+         &if_sizeissmall, &if_notsizeissmall);
+
+  Bind(&if_sizeissmall);
+  {
+    // Just allocate the SeqTwoByteString in new space.
+    Node* result = Allocate(size);
+    StoreMapNoWriteBarrier(result, LoadRoot(Heap::kStringMapRootIndex));
+    StoreObjectFieldNoWriteBarrier(result, SeqTwoByteString::kLengthOffset,
+                                   SmiFromWord(length));
+    StoreObjectFieldNoWriteBarrier(result, SeqTwoByteString::kHashFieldOffset,
+                                   IntPtrConstant(String::kEmptyHashField),
+                                   MachineRepresentation::kWord32);
+    var_result.Bind(result);
+    Goto(&if_join);
+  }
+
+  Bind(&if_notsizeissmall);
+  {
+    // We might need to allocate in large object space, go to the runtime.
+    Node* result = CallRuntime(Runtime::kAllocateSeqTwoByteString, context,
+                               SmiFromWord(length));
+    var_result.Bind(result);
+    Goto(&if_join);
+  }
+
+  Bind(&if_join);
+  return var_result.value();
+}
+
 Node* CodeStubAssembler::AllocateJSArray(ElementsKind kind, Node* array_map,
                                          Node* capacity_node, Node* length_node,
                                          compiler::Node* allocation_site,
@@ -643,6 +818,8 @@
   int base_size = JSArray::kSize + FixedArray::kHeaderSize;
   int elements_offset = JSArray::kSize;
 
+  Comment("begin allocation of JSArray");
+
   if (allocation_site != nullptr) {
     base_size += AllocationMemento::kSize;
     elements_offset += AllocationMemento::kSize;
@@ -714,8 +891,49 @@
       }
     }
   } else {
-    // TODO(danno): Add a loop for initialization
-    UNIMPLEMENTED();
+    Variable current(this, MachineRepresentation::kTagged);
+    Label test(this);
+    Label decrement(this, &current);
+    Label done(this);
+    Node* limit = IntPtrAdd(elements, IntPtrConstant(first_element_offset));
+    current.Bind(
+        IntPtrAdd(limit, ElementOffsetFromIndex(capacity_node, kind, mode, 0)));
+
+    Branch(WordEqual(current.value(), limit), &done, &decrement);
+
+    Bind(&decrement);
+    current.Bind(IntPtrSub(
+        current.value(),
+        Int32Constant(IsFastDoubleElementsKind(kind) ? kDoubleSize
+                                                     : kPointerSize)));
+    if (is_double) {
+      // 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, current.value(),
+                            double_hole);
+      } else {
+        StoreNoWriteBarrier(MachineRepresentation::kWord32, current.value(),
+                            double_hole);
+        StoreNoWriteBarrier(
+            MachineRepresentation::kWord32,
+            IntPtrAdd(current.value(), Int32Constant(kPointerSize)),
+            double_hole);
+      }
+    } else {
+      StoreNoWriteBarrier(MachineRepresentation::kTagged, current.value(),
+                          hole);
+    }
+    Node* compare = WordNotEqual(current.value(), limit);
+    Branch(compare, &decrement, &done);
+
+    Bind(&done);
   }
 
   return array;
@@ -1256,19 +1474,46 @@
                    Int32Constant(shift));
 }
 
+void CodeStubAssembler::SetCounter(StatsCounter* counter, int value) {
+  if (FLAG_native_code_counters && counter->Enabled()) {
+    Node* counter_address = ExternalConstant(ExternalReference(counter));
+    StoreNoWriteBarrier(MachineRepresentation::kWord32, counter_address,
+                        Int32Constant(value));
+  }
+}
+
+void CodeStubAssembler::IncrementCounter(StatsCounter* counter, int delta) {
+  DCHECK(delta > 0);
+  if (FLAG_native_code_counters && counter->Enabled()) {
+    Node* counter_address = ExternalConstant(ExternalReference(counter));
+    Node* value = Load(MachineType::Int32(), counter_address);
+    value = Int32Add(value, Int32Constant(delta));
+    StoreNoWriteBarrier(MachineRepresentation::kWord32, counter_address, value);
+  }
+}
+
+void CodeStubAssembler::DecrementCounter(StatsCounter* counter, int delta) {
+  DCHECK(delta > 0);
+  if (FLAG_native_code_counters && counter->Enabled()) {
+    Node* counter_address = ExternalConstant(ExternalReference(counter));
+    Node* value = Load(MachineType::Int32(), counter_address);
+    value = Int32Sub(value, Int32Constant(delta));
+    StoreNoWriteBarrier(MachineRepresentation::kWord32, counter_address, value);
+  }
+}
+
 void CodeStubAssembler::TryToName(Node* key, Label* if_keyisindex,
                                   Variable* var_index, Label* if_keyisunique,
-                                  Label* call_runtime) {
+                                  Label* if_bailout) {
   DCHECK_EQ(MachineRepresentation::kWord32, var_index->rep());
+  Comment("TryToName");
 
   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);
+    GotoUnless(WordIsPositiveSmi(key), if_bailout);
 
     var_index->Bind(SmiToWord32(key));
     Goto(if_keyisindex);
@@ -1277,125 +1522,659 @@
   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);
+  // Symbols are unique.
+  GotoIf(Word32Equal(key_instance_type, Int32Constant(SYMBOL_TYPE)),
+         if_keyisunique);
 
-    // 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);
-  }
+  Label if_keyisinternalized(this);
+  Node* bits =
+      WordAnd(key_instance_type,
+              Int32Constant(kIsNotStringMask | kIsNotInternalizedMask));
+  Branch(Word32Equal(bits, Int32Constant(kStringTag | kInternalizedTag)),
+         &if_keyisinternalized, if_bailout);
+  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 = LoadNameHashField(key);
+  Node* bit = Word32And(hash, Int32Constant(Name::kIsNotArrayIndexMask));
+  GotoIf(Word32NotEqual(bit, Int32Constant(0)), if_keyisunique);
+  // Key is an index. Check if it is small enough to be encoded in the
+  // hash_field. Handle too big array index in runtime.
+  bit = Word32And(hash, Int32Constant(Name::kContainsCachedArrayIndexMask));
+  GotoIf(Word32NotEqual(bit, Int32Constant(0)), if_bailout);
+  var_index->Bind(BitFieldDecode<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);
+template <typename Dictionary>
+Node* CodeStubAssembler::EntryToIndex(Node* entry, int field_index) {
+  Node* entry_index = Int32Mul(entry, Int32Constant(Dictionary::kEntrySize));
+  return Int32Add(entry_index,
+                  Int32Constant(Dictionary::kElementsStartIndex + field_index));
+}
+
+template <typename Dictionary>
+void CodeStubAssembler::NameDictionaryLookup(Node* dictionary,
+                                             Node* unique_name, Label* if_found,
+                                             Variable* var_name_index,
+                                             Label* if_not_found,
+                                             int inlined_probes) {
+  DCHECK_EQ(MachineRepresentation::kWord32, var_name_index->rep());
+  Comment("NameDictionaryLookup");
+
+  Node* capacity = SmiToWord32(LoadFixedArrayElement(
+      dictionary, Int32Constant(Dictionary::kCapacityIndex)));
+  Node* mask = Int32Sub(capacity, Int32Constant(1));
+  Node* hash = LoadNameHash(unique_name);
+
+  // See Dictionary::FirstProbe().
+  Node* count = Int32Constant(0);
+  Node* entry = Word32And(hash, mask);
+
+  for (int i = 0; i < inlined_probes; i++) {
+    Node* index = EntryToIndex<Dictionary>(entry);
+    var_name_index->Bind(index);
+
+    Node* current = LoadFixedArrayElement(dictionary, index);
+    GotoIf(WordEqual(current, unique_name), if_found);
+
+    // See Dictionary::NextProbe().
+    count = Int32Constant(i + 1);
+    entry = Word32And(Int32Add(entry, count), mask);
   }
 
-  // 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);
+  Node* undefined = UndefinedConstant();
 
-  Variable var_descriptor(this, MachineRepresentation::kWord32);
-  Label loop(this, &var_descriptor);
-  var_descriptor.Bind(Int32Constant(0));
+  Variable var_count(this, MachineRepresentation::kWord32);
+  Variable var_entry(this, MachineRepresentation::kWord32);
+  Variable* loop_vars[] = {&var_count, &var_entry, var_name_index};
+  Label loop(this, 3, loop_vars);
+  var_count.Bind(count);
+  var_entry.Bind(entry);
   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* count = var_count.value();
+    Node* entry = var_entry.value();
+
+    Node* index = EntryToIndex<Dictionary>(entry);
+    var_name_index->Bind(index);
+
+    Node* current = LoadFixedArrayElement(dictionary, index);
+    GotoIf(WordEqual(current, undefined), if_not_found);
+    GotoIf(WordEqual(current, unique_name), if_found);
+
+    // See Dictionary::NextProbe().
+    count = Int32Add(count, Int32Constant(1));
+    entry = Word32And(Int32Add(entry, count), mask);
+
+    var_count.Bind(count);
+    var_entry.Bind(entry);
+    Goto(&loop);
+  }
+}
+
+// Instantiate template methods to workaround GCC compilation issue.
+template void CodeStubAssembler::NameDictionaryLookup<NameDictionary>(
+    Node*, Node*, Label*, Variable*, Label*, int);
+template void CodeStubAssembler::NameDictionaryLookup<GlobalDictionary>(
+    Node*, Node*, Label*, Variable*, Label*, int);
+
+Node* CodeStubAssembler::ComputeIntegerHash(Node* key, Node* seed) {
+  // See v8::internal::ComputeIntegerHash()
+  Node* hash = key;
+  hash = Word32Xor(hash, seed);
+  hash = Int32Add(Word32Xor(hash, Int32Constant(0xffffffff)),
+                  Word32Shl(hash, Int32Constant(15)));
+  hash = Word32Xor(hash, Word32Shr(hash, Int32Constant(12)));
+  hash = Int32Add(hash, Word32Shl(hash, Int32Constant(2)));
+  hash = Word32Xor(hash, Word32Shr(hash, Int32Constant(4)));
+  hash = Int32Mul(hash, Int32Constant(2057));
+  hash = Word32Xor(hash, Word32Shr(hash, Int32Constant(16)));
+  return Word32And(hash, Int32Constant(0x3fffffff));
+}
+
+template <typename Dictionary>
+void CodeStubAssembler::NumberDictionaryLookup(Node* dictionary, Node* key,
+                                               Label* if_found,
+                                               Variable* var_entry,
+                                               Label* if_not_found) {
+  DCHECK_EQ(MachineRepresentation::kWord32, var_entry->rep());
+  Comment("NumberDictionaryLookup");
+
+  Node* capacity = SmiToWord32(LoadFixedArrayElement(
+      dictionary, Int32Constant(Dictionary::kCapacityIndex)));
+  Node* mask = Int32Sub(capacity, Int32Constant(1));
+
+  Node* seed;
+  if (Dictionary::ShapeT::UsesSeed) {
+    seed = HashSeed();
+  } else {
+    seed = Int32Constant(kZeroHashSeed);
+  }
+  Node* hash = ComputeIntegerHash(key, seed);
+  Node* key_as_float64 = ChangeUint32ToFloat64(key);
+
+  // See Dictionary::FirstProbe().
+  Node* count = Int32Constant(0);
+  Node* entry = Word32And(hash, mask);
+
+  Node* undefined = UndefinedConstant();
+  Node* the_hole = TheHoleConstant();
+
+  Variable var_count(this, MachineRepresentation::kWord32);
+  Variable* loop_vars[] = {&var_count, var_entry};
+  Label loop(this, 2, loop_vars);
+  var_count.Bind(count);
+  var_entry->Bind(entry);
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* count = var_count.value();
+    Node* entry = var_entry->value();
+
+    Node* index = EntryToIndex<Dictionary>(entry);
+    Node* current = LoadFixedArrayElement(dictionary, index);
+    GotoIf(WordEqual(current, undefined), if_not_found);
+    Label next_probe(this);
     {
-      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);
+      Label if_currentissmi(this), if_currentisnotsmi(this);
+      Branch(WordIsSmi(current), &if_currentissmi, &if_currentisnotsmi);
+      Bind(&if_currentissmi);
+      {
+        Node* current_value = SmiToWord32(current);
+        Branch(Word32Equal(current_value, key), if_found, &next_probe);
+      }
+      Bind(&if_currentisnotsmi);
+      {
+        GotoIf(WordEqual(current, the_hole), &next_probe);
+        // Current must be the Number.
+        Node* current_value = LoadHeapNumberValue(current);
+        Branch(Float64Equal(current_value, key_as_float64), if_found,
+               &next_probe);
+      }
+    }
+
+    Bind(&next_probe);
+    // See Dictionary::NextProbe().
+    count = Int32Add(count, Int32Constant(1));
+    entry = Word32And(Int32Add(entry, count), mask);
+
+    var_count.Bind(count);
+    var_entry->Bind(entry);
+    Goto(&loop);
+  }
+}
+
+void CodeStubAssembler::TryLookupProperty(
+    Node* object, Node* map, Node* instance_type, Node* unique_name,
+    Label* if_found_fast, Label* if_found_dict, Label* if_found_global,
+    Variable* var_meta_storage, Variable* var_name_index, Label* if_not_found,
+    Label* if_bailout) {
+  DCHECK_EQ(MachineRepresentation::kTagged, var_meta_storage->rep());
+  DCHECK_EQ(MachineRepresentation::kWord32, var_name_index->rep());
+
+  Label if_objectisspecial(this);
+  STATIC_ASSERT(JS_GLOBAL_OBJECT_TYPE <= LAST_SPECIAL_RECEIVER_TYPE);
+  GotoIf(Int32LessThanOrEqual(instance_type,
+                              Int32Constant(LAST_SPECIAL_RECEIVER_TYPE)),
+         &if_objectisspecial);
+
+  Node* bit_field = LoadMapBitField(map);
+  Node* mask = Int32Constant(1 << Map::kHasNamedInterceptor |
+                             1 << Map::kIsAccessCheckNeeded);
+  Assert(Word32Equal(Word32And(bit_field, mask), Int32Constant(0)));
+
+  Node* bit_field3 = LoadMapBitField3(map);
+  Node* bit = BitFieldDecode<Map::DictionaryMap>(bit_field3);
+  Label if_isfastmap(this), if_isslowmap(this);
+  Branch(Word32Equal(bit, Int32Constant(0)), &if_isfastmap, &if_isslowmap);
+  Bind(&if_isfastmap);
+  {
+    Comment("DescriptorArrayLookup");
+    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;
+      GotoIf(Int32GreaterThan(nof, Int32Constant(kMaxLinear)), if_bailout);
+    }
+    Node* descriptors = LoadMapDescriptors(map);
+    var_meta_storage->Bind(descriptors);
+
+    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* name_offset = Int32Constant(DescriptorArray::ToKeyIndex(0));
+      Node* factor = Int32Constant(DescriptorArray::kDescriptorSize);
+      GotoIf(Word32Equal(index, nof), if_not_found);
+
+      Node* name_index = Int32Add(name_offset, Int32Mul(index, factor));
+      Node* name = LoadFixedArrayElement(descriptors, name_index);
+
+      var_name_index->Bind(name_index);
+      GotoIf(WordEqual(name, unique_name), if_found_fast);
 
       var_descriptor.Bind(Int32Add(index, Int32Constant(1)));
       Goto(&loop);
     }
   }
+  Bind(&if_isslowmap);
+  {
+    Node* dictionary = LoadProperties(object);
+    var_meta_storage->Bind(dictionary);
+
+    NameDictionaryLookup<NameDictionary>(dictionary, unique_name, if_found_dict,
+                                         var_name_index, if_not_found);
+  }
+  Bind(&if_objectisspecial);
+  {
+    // Handle global object here and other special objects in runtime.
+    GotoUnless(Word32Equal(instance_type, Int32Constant(JS_GLOBAL_OBJECT_TYPE)),
+               if_bailout);
+
+    // Handle interceptors and access checks in runtime.
+    Node* bit_field = LoadMapBitField(map);
+    Node* mask = Int32Constant(1 << Map::kHasNamedInterceptor |
+                               1 << Map::kIsAccessCheckNeeded);
+    GotoIf(Word32NotEqual(Word32And(bit_field, mask), Int32Constant(0)),
+           if_bailout);
+
+    Node* dictionary = LoadProperties(object);
+    var_meta_storage->Bind(dictionary);
+
+    NameDictionaryLookup<GlobalDictionary>(
+        dictionary, unique_name, if_found_global, var_name_index, if_not_found);
+  }
+}
+
+void CodeStubAssembler::TryHasOwnProperty(compiler::Node* object,
+                                          compiler::Node* map,
+                                          compiler::Node* instance_type,
+                                          compiler::Node* unique_name,
+                                          Label* if_found, Label* if_not_found,
+                                          Label* if_bailout) {
+  Comment("TryHasOwnProperty");
+  Variable var_meta_storage(this, MachineRepresentation::kTagged);
+  Variable var_name_index(this, MachineRepresentation::kWord32);
+
+  Label if_found_global(this);
+  TryLookupProperty(object, map, instance_type, unique_name, if_found, if_found,
+                    &if_found_global, &var_meta_storage, &var_name_index,
+                    if_not_found, if_bailout);
+  Bind(&if_found_global);
+  {
+    Variable var_value(this, MachineRepresentation::kTagged);
+    Variable var_details(this, MachineRepresentation::kWord32);
+    // Check if the property cell is not deleted.
+    LoadPropertyFromGlobalDictionary(var_meta_storage.value(),
+                                     var_name_index.value(), &var_value,
+                                     &var_details, if_not_found);
+    Goto(if_found);
+  }
+}
+
+void CodeStubAssembler::LoadPropertyFromFastObject(Node* object, Node* map,
+                                                   Node* descriptors,
+                                                   Node* name_index,
+                                                   Variable* var_details,
+                                                   Variable* var_value) {
+  DCHECK_EQ(MachineRepresentation::kWord32, var_details->rep());
+  DCHECK_EQ(MachineRepresentation::kTagged, var_value->rep());
+  Comment("[ LoadPropertyFromFastObject");
+
+  const int name_to_details_offset =
+      (DescriptorArray::kDescriptorDetails - DescriptorArray::kDescriptorKey) *
+      kPointerSize;
+  const int name_to_value_offset =
+      (DescriptorArray::kDescriptorValue - DescriptorArray::kDescriptorKey) *
+      kPointerSize;
+
+  Node* details = SmiToWord32(
+      LoadFixedArrayElement(descriptors, name_index, name_to_details_offset));
+  var_details->Bind(details);
+
+  Node* location = BitFieldDecode<PropertyDetails::LocationField>(details);
+
+  Label if_in_field(this), if_in_descriptor(this), done(this);
+  Branch(Word32Equal(location, Int32Constant(kField)), &if_in_field,
+         &if_in_descriptor);
+  Bind(&if_in_field);
+  {
+    Node* field_index =
+        BitFieldDecode<PropertyDetails::FieldIndexField>(details);
+    Node* representation =
+        BitFieldDecode<PropertyDetails::RepresentationField>(details);
+
+    Node* inobject_properties = LoadMapInobjectProperties(map);
+
+    Label if_inobject(this), if_backing_store(this);
+    Variable var_double_value(this, MachineRepresentation::kFloat64);
+    Label rebox_double(this, &var_double_value);
+    BranchIfInt32LessThan(field_index, inobject_properties, &if_inobject,
+                          &if_backing_store);
+    Bind(&if_inobject);
+    {
+      Comment("if_inobject");
+      Node* field_offset = ChangeInt32ToIntPtr(
+          Int32Mul(Int32Sub(LoadMapInstanceSize(map),
+                            Int32Sub(inobject_properties, field_index)),
+                   Int32Constant(kPointerSize)));
+
+      Label if_double(this), if_tagged(this);
+      BranchIfWord32NotEqual(representation,
+                             Int32Constant(Representation::kDouble), &if_tagged,
+                             &if_double);
+      Bind(&if_tagged);
+      {
+        var_value->Bind(LoadObjectField(object, field_offset));
+        Goto(&done);
+      }
+      Bind(&if_double);
+      {
+        if (FLAG_unbox_double_fields) {
+          var_double_value.Bind(
+              LoadObjectField(object, field_offset, MachineType::Float64()));
+        } else {
+          Node* mutable_heap_number = LoadObjectField(object, field_offset);
+          var_double_value.Bind(LoadHeapNumberValue(mutable_heap_number));
+        }
+        Goto(&rebox_double);
+      }
+    }
+    Bind(&if_backing_store);
+    {
+      Comment("if_backing_store");
+      Node* properties = LoadProperties(object);
+      field_index = Int32Sub(field_index, inobject_properties);
+      Node* value = LoadFixedArrayElement(properties, field_index);
+
+      Label if_double(this), if_tagged(this);
+      BranchIfWord32NotEqual(representation,
+                             Int32Constant(Representation::kDouble), &if_tagged,
+                             &if_double);
+      Bind(&if_tagged);
+      {
+        var_value->Bind(value);
+        Goto(&done);
+      }
+      Bind(&if_double);
+      {
+        var_double_value.Bind(LoadHeapNumberValue(value));
+        Goto(&rebox_double);
+      }
+    }
+    Bind(&rebox_double);
+    {
+      Comment("rebox_double");
+      Node* heap_number = AllocateHeapNumber();
+      StoreHeapNumberValue(heap_number, var_double_value.value());
+      var_value->Bind(heap_number);
+      Goto(&done);
+    }
+  }
+  Bind(&if_in_descriptor);
+  {
+    Node* value =
+        LoadFixedArrayElement(descriptors, name_index, name_to_value_offset);
+    var_value->Bind(value);
+    Goto(&done);
+  }
+  Bind(&done);
+
+  Comment("] LoadPropertyFromFastObject");
+}
+
+void CodeStubAssembler::LoadPropertyFromNameDictionary(Node* dictionary,
+                                                       Node* name_index,
+                                                       Variable* var_details,
+                                                       Variable* var_value) {
+  Comment("LoadPropertyFromNameDictionary");
+
+  const int name_to_details_offset =
+      (NameDictionary::kEntryDetailsIndex - NameDictionary::kEntryKeyIndex) *
+      kPointerSize;
+  const int name_to_value_offset =
+      (NameDictionary::kEntryValueIndex - NameDictionary::kEntryKeyIndex) *
+      kPointerSize;
+
+  Node* details = SmiToWord32(
+      LoadFixedArrayElement(dictionary, name_index, name_to_details_offset));
+
+  var_details->Bind(details);
+  var_value->Bind(
+      LoadFixedArrayElement(dictionary, name_index, name_to_value_offset));
+
+  Comment("] LoadPropertyFromNameDictionary");
+}
+
+void CodeStubAssembler::LoadPropertyFromGlobalDictionary(Node* dictionary,
+                                                         Node* name_index,
+                                                         Variable* var_details,
+                                                         Variable* var_value,
+                                                         Label* if_deleted) {
+  Comment("[ LoadPropertyFromGlobalDictionary");
+
+  const int name_to_value_offset =
+      (GlobalDictionary::kEntryValueIndex - GlobalDictionary::kEntryKeyIndex) *
+      kPointerSize;
+
+  Node* property_cell =
+      LoadFixedArrayElement(dictionary, name_index, name_to_value_offset);
+
+  Node* value = LoadObjectField(property_cell, PropertyCell::kValueOffset);
+  GotoIf(WordEqual(value, TheHoleConstant()), if_deleted);
+
+  var_value->Bind(value);
+
+  Node* details =
+      SmiToWord32(LoadObjectField(property_cell, PropertyCell::kDetailsOffset));
+  var_details->Bind(details);
+
+  Comment("] LoadPropertyFromGlobalDictionary");
+}
+
+void CodeStubAssembler::TryGetOwnProperty(
+    Node* context, Node* receiver, Node* object, Node* map, Node* instance_type,
+    Node* unique_name, Label* if_found_value, Variable* var_value,
+    Label* if_not_found, Label* if_bailout) {
+  DCHECK_EQ(MachineRepresentation::kTagged, var_value->rep());
+  Comment("TryGetOwnProperty");
+
+  Variable var_meta_storage(this, MachineRepresentation::kTagged);
+  Variable var_entry(this, MachineRepresentation::kWord32);
+
+  Label if_found_fast(this), if_found_dict(this), if_found_global(this);
+
+  Variable var_details(this, MachineRepresentation::kWord32);
+  Variable* vars[] = {var_value, &var_details};
+  Label if_found(this, 2, vars);
+
+  TryLookupProperty(object, map, instance_type, unique_name, &if_found_fast,
+                    &if_found_dict, &if_found_global, &var_meta_storage,
+                    &var_entry, if_not_found, if_bailout);
+  Bind(&if_found_fast);
+  {
+    Node* descriptors = var_meta_storage.value();
+    Node* name_index = var_entry.value();
+
+    LoadPropertyFromFastObject(object, map, descriptors, name_index,
+                               &var_details, var_value);
+    Goto(&if_found);
+  }
+  Bind(&if_found_dict);
+  {
+    Node* dictionary = var_meta_storage.value();
+    Node* entry = var_entry.value();
+    LoadPropertyFromNameDictionary(dictionary, entry, &var_details, var_value);
+    Goto(&if_found);
+  }
+  Bind(&if_found_global);
+  {
+    Node* dictionary = var_meta_storage.value();
+    Node* entry = var_entry.value();
+
+    LoadPropertyFromGlobalDictionary(dictionary, entry, &var_details, var_value,
+                                     if_not_found);
+    Goto(&if_found);
+  }
+  // Here we have details and value which could be an accessor.
+  Bind(&if_found);
+  {
+    Node* details = var_details.value();
+    Node* kind = BitFieldDecode<PropertyDetails::KindField>(details);
+
+    Label if_accessor(this);
+    Branch(Word32Equal(kind, Int32Constant(kData)), if_found_value,
+           &if_accessor);
+    Bind(&if_accessor);
+    {
+      Node* accessor_pair = var_value->value();
+      GotoIf(Word32Equal(LoadInstanceType(accessor_pair),
+                         Int32Constant(ACCESSOR_INFO_TYPE)),
+             if_bailout);
+      AssertInstanceType(accessor_pair, ACCESSOR_PAIR_TYPE);
+      Node* getter =
+          LoadObjectField(accessor_pair, AccessorPair::kGetterOffset);
+      Node* getter_map = LoadMap(getter);
+      Node* instance_type = LoadMapInstanceType(getter_map);
+      // FunctionTemplateInfo getters are not supported yet.
+      GotoIf(Word32Equal(instance_type,
+                         Int32Constant(FUNCTION_TEMPLATE_INFO_TYPE)),
+             if_bailout);
+
+      // Return undefined if the {getter} is not callable.
+      var_value->Bind(UndefinedConstant());
+      GotoIf(Word32Equal(Word32And(LoadMapBitField(getter_map),
+                                   Int32Constant(1 << Map::kIsCallable)),
+                         Int32Constant(0)),
+             if_found_value);
+
+      // Call the accessor.
+      Callable callable = CodeFactory::Call(isolate());
+      Node* result = CallJS(callable, context, getter, receiver);
+      var_value->Bind(result);
+      Goto(if_found_value);
+    }
+  }
 }
 
 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);
-  }
+                                         Label* if_bailout) {
+  // Handle special objects in runtime.
+  GotoIf(Int32LessThanOrEqual(instance_type,
+                              Int32Constant(LAST_SPECIAL_RECEIVER_TYPE)),
+         if_bailout);
 
   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);
+  Label if_isobjectorsmi(this), if_isdouble(this), if_isdictionary(this),
+      if_isfaststringwrapper(this), if_isslowstringwrapper(this);
+  // clang-format off
+  int32_t values[] = {
+      // Handled by {if_isobjectorsmi}.
+      FAST_SMI_ELEMENTS, FAST_HOLEY_SMI_ELEMENTS, FAST_ELEMENTS,
+          FAST_HOLEY_ELEMENTS,
+      // Handled by {if_isdouble}.
+      FAST_DOUBLE_ELEMENTS, FAST_HOLEY_DOUBLE_ELEMENTS,
+      // Handled by {if_isdictionary}.
+      DICTIONARY_ELEMENTS,
+      // Handled by {if_isfaststringwrapper}.
+      FAST_STRING_WRAPPER_ELEMENTS,
+      // Handled by {if_isslowstringwrapper}.
+      SLOW_STRING_WRAPPER_ELEMENTS,
+      // Handled by {if_not_found}.
+      NO_ELEMENTS,
+  };
+  Label* labels[] = {
+      &if_isobjectorsmi, &if_isobjectorsmi, &if_isobjectorsmi,
+          &if_isobjectorsmi,
+      &if_isdouble, &if_isdouble,
+      &if_isdictionary,
+      &if_isfaststringwrapper,
+      &if_isslowstringwrapper,
+      if_not_found,
+  };
+  // clang-format on
+  STATIC_ASSERT(arraysize(values) == arraysize(labels));
+  Switch(elements_kind, if_bailout, values, labels, arraysize(values));
+
   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);
+    GotoIf(Int32GreaterThanOrEqual(index, SmiToWord32(length)), if_not_found);
 
-    Bind(&if_iskeyinrange);
     Node* element = LoadFixedArrayElement(elements, index);
-    Node* the_hole = LoadRoot(Heap::kTheHoleValueRootIndex);
+    Node* the_hole = TheHoleConstant();
     Branch(WordEqual(element, the_hole), if_not_found, if_found);
   }
+  Bind(&if_isdouble);
+  {
+    Node* elements = LoadElements(object);
+    Node* length = LoadFixedArrayBaseLength(elements);
+
+    GotoIf(Int32GreaterThanOrEqual(index, SmiToWord32(length)), if_not_found);
+
+    if (kPointerSize == kDoubleSize) {
+      Node* element =
+          LoadFixedDoubleArrayElement(elements, index, MachineType::Uint64());
+      Node* the_hole = Int64Constant(kHoleNanInt64);
+      Branch(Word64Equal(element, the_hole), if_not_found, if_found);
+    } else {
+      Node* element_upper =
+          LoadFixedDoubleArrayElement(elements, index, MachineType::Uint32(),
+                                      kIeeeDoubleExponentWordOffset);
+      Branch(Word32Equal(element_upper, Int32Constant(kHoleNanUpper32)),
+             if_not_found, if_found);
+    }
+  }
+  Bind(&if_isdictionary);
+  {
+    Variable var_entry(this, MachineRepresentation::kWord32);
+    Node* elements = LoadElements(object);
+    NumberDictionaryLookup<SeededNumberDictionary>(elements, index, if_found,
+                                                   &var_entry, if_not_found);
+  }
+  Bind(&if_isfaststringwrapper);
+  {
+    AssertInstanceType(object, JS_VALUE_TYPE);
+    Node* string = LoadJSValueValue(object);
+    Assert(Int32LessThan(LoadInstanceType(string),
+                         Int32Constant(FIRST_NONSTRING_TYPE)));
+    Node* length = LoadStringLength(string);
+    GotoIf(Int32LessThan(index, SmiToWord32(length)), if_found);
+    Goto(&if_isobjectorsmi);
+  }
+  Bind(&if_isslowstringwrapper);
+  {
+    AssertInstanceType(object, JS_VALUE_TYPE);
+    Node* string = LoadJSValueValue(object);
+    Assert(Int32LessThan(LoadInstanceType(string),
+                         Int32Constant(FIRST_NONSTRING_TYPE)));
+    Node* length = LoadStringLength(string);
+    GotoIf(Int32LessThan(index, SmiToWord32(length)), if_found);
+    Goto(&if_isdictionary);
+  }
 }
 
+// Instantiate template methods to workaround GCC compilation issue.
+template void CodeStubAssembler::NumberDictionaryLookup<SeededNumberDictionary>(
+    Node*, Node*, Label*, Variable*, Label*);
+template void CodeStubAssembler::NumberDictionaryLookup<
+    UnseededNumberDictionary>(Node*, Node*, Label*, Variable*, Label*);
+
 Node* CodeStubAssembler::OrdinaryHasInstance(Node* context, Node* callable,
                                              Node* object) {
   Variable var_result(this, MachineRepresentation::kTagged);
@@ -1500,8 +2279,8 @@
 
     // 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);
+    GotoIf(WordEqual(object_prototype, callable_prototype), &return_true);
 
     // Continue with the prototype.
     var_object_map.Bind(LoadMap(object_prototype));
@@ -1568,5 +2347,331 @@
           : WordShr(index_node, IntPtrConstant(-element_size_shift)));
 }
 
+compiler::Node* CodeStubAssembler::LoadTypeFeedbackVectorForStub() {
+  Node* function =
+      LoadFromParentFrame(JavaScriptFrameConstants::kFunctionOffset);
+  Node* literals = LoadObjectField(function, JSFunction::kLiteralsOffset);
+  return LoadObjectField(literals, LiteralsArray::kFeedbackVectorOffset);
+}
+
+compiler::Node* CodeStubAssembler::LoadReceiverMap(compiler::Node* receiver) {
+  Variable var_receiver_map(this, MachineRepresentation::kTagged);
+  // TODO(ishell): defer blocks when it works.
+  Label load_smi_map(this /*, Label::kDeferred*/), load_receiver_map(this),
+      if_result(this);
+
+  Branch(WordIsSmi(receiver), &load_smi_map, &load_receiver_map);
+  Bind(&load_smi_map);
+  {
+    var_receiver_map.Bind(LoadRoot(Heap::kHeapNumberMapRootIndex));
+    Goto(&if_result);
+  }
+  Bind(&load_receiver_map);
+  {
+    var_receiver_map.Bind(LoadMap(receiver));
+    Goto(&if_result);
+  }
+  Bind(&if_result);
+  return var_receiver_map.value();
+}
+
+compiler::Node* CodeStubAssembler::TryMonomorphicCase(
+    const LoadICParameters* p, compiler::Node* receiver_map, Label* if_handler,
+    Variable* var_handler, Label* if_miss) {
+  DCHECK_EQ(MachineRepresentation::kTagged, var_handler->rep());
+
+  // TODO(ishell): add helper class that hides offset computations for a series
+  // of loads.
+  int32_t header_size = FixedArray::kHeaderSize - kHeapObjectTag;
+  Node* offset = ElementOffsetFromIndex(p->slot, FAST_HOLEY_ELEMENTS,
+                                        SMI_PARAMETERS, header_size);
+  Node* feedback = Load(MachineType::AnyTagged(), p->vector, offset);
+
+  // Try to quickly handle the monomorphic case without knowing for sure
+  // if we have a weak cell in feedback. We do know it's safe to look
+  // at WeakCell::kValueOffset.
+  GotoUnless(WordEqual(receiver_map, LoadWeakCellValue(feedback)), if_miss);
+
+  Node* handler = Load(MachineType::AnyTagged(), p->vector,
+                       IntPtrAdd(offset, IntPtrConstant(kPointerSize)));
+
+  var_handler->Bind(handler);
+  Goto(if_handler);
+  return feedback;
+}
+
+void CodeStubAssembler::HandlePolymorphicCase(
+    const LoadICParameters* p, compiler::Node* receiver_map,
+    compiler::Node* feedback, Label* if_handler, Variable* var_handler,
+    Label* if_miss, int unroll_count) {
+  DCHECK_EQ(MachineRepresentation::kTagged, var_handler->rep());
+
+  // Iterate {feedback} array.
+  const int kEntrySize = 2;
+
+  for (int i = 0; i < unroll_count; i++) {
+    Label next_entry(this);
+    Node* cached_map = LoadWeakCellValue(
+        LoadFixedArrayElement(feedback, Int32Constant(i * kEntrySize)));
+    GotoIf(WordNotEqual(receiver_map, cached_map), &next_entry);
+
+    // Found, now call handler.
+    Node* handler =
+        LoadFixedArrayElement(feedback, Int32Constant(i * kEntrySize + 1));
+    var_handler->Bind(handler);
+    Goto(if_handler);
+
+    Bind(&next_entry);
+  }
+  Node* length = SmiToWord32(LoadFixedArrayBaseLength(feedback));
+
+  // Loop from {unroll_count}*kEntrySize to {length}.
+  Variable var_index(this, MachineRepresentation::kWord32);
+  Label loop(this, &var_index);
+  var_index.Bind(Int32Constant(unroll_count * kEntrySize));
+  Goto(&loop);
+  Bind(&loop);
+  {
+    Node* index = var_index.value();
+    GotoIf(Int32GreaterThanOrEqual(index, length), if_miss);
+
+    Node* cached_map =
+        LoadWeakCellValue(LoadFixedArrayElement(feedback, index));
+
+    Label next_entry(this);
+    GotoIf(WordNotEqual(receiver_map, cached_map), &next_entry);
+
+    // Found, now call handler.
+    Node* handler = LoadFixedArrayElement(feedback, index, kPointerSize);
+    var_handler->Bind(handler);
+    Goto(if_handler);
+
+    Bind(&next_entry);
+    var_index.Bind(Int32Add(index, Int32Constant(kEntrySize)));
+    Goto(&loop);
+  }
+}
+
+compiler::Node* CodeStubAssembler::StubCachePrimaryOffset(compiler::Node* name,
+                                                          Code::Flags flags,
+                                                          compiler::Node* map) {
+  // See v8::internal::StubCache::PrimaryOffset().
+  STATIC_ASSERT(StubCache::kCacheIndexShift == Name::kHashShift);
+  // Compute the hash of the name (use entire hash field).
+  Node* hash_field = LoadNameHashField(name);
+  Assert(WordEqual(
+      Word32And(hash_field, Int32Constant(Name::kHashNotComputedMask)),
+      Int32Constant(0)));
+
+  // Using only the low bits in 64-bit mode is unlikely to increase the
+  // risk of collision even if the heap is spread over an area larger than
+  // 4Gb (and not at all if it isn't).
+  Node* hash = Int32Add(hash_field, map);
+  // We always set the in_loop bit to zero when generating the lookup code
+  // so do it here too so the hash codes match.
+  uint32_t iflags =
+      (static_cast<uint32_t>(flags) & ~Code::kFlagsNotUsedInLookup);
+  // Base the offset on a simple combination of name, flags, and map.
+  hash = Word32Xor(hash, Int32Constant(iflags));
+  uint32_t mask = (StubCache::kPrimaryTableSize - 1)
+                  << StubCache::kCacheIndexShift;
+  return Word32And(hash, Int32Constant(mask));
+}
+
+compiler::Node* CodeStubAssembler::StubCacheSecondaryOffset(
+    compiler::Node* name, Code::Flags flags, compiler::Node* seed) {
+  // See v8::internal::StubCache::SecondaryOffset().
+
+  // Use the seed from the primary cache in the secondary cache.
+  Node* hash = Int32Sub(seed, name);
+  // We always set the in_loop bit to zero when generating the lookup code
+  // so do it here too so the hash codes match.
+  uint32_t iflags =
+      (static_cast<uint32_t>(flags) & ~Code::kFlagsNotUsedInLookup);
+  hash = Int32Add(hash, Int32Constant(iflags));
+  int32_t mask = (StubCache::kSecondaryTableSize - 1)
+                 << StubCache::kCacheIndexShift;
+  return Word32And(hash, Int32Constant(mask));
+}
+
+enum CodeStubAssembler::StubCacheTable : int {
+  kPrimary = static_cast<int>(StubCache::kPrimary),
+  kSecondary = static_cast<int>(StubCache::kSecondary)
+};
+
+void CodeStubAssembler::TryProbeStubCacheTable(
+    StubCache* stub_cache, StubCacheTable table_id,
+    compiler::Node* entry_offset, compiler::Node* name, Code::Flags flags,
+    compiler::Node* map, Label* if_handler, Variable* var_handler,
+    Label* if_miss) {
+  StubCache::Table table = static_cast<StubCache::Table>(table_id);
+#ifdef DEBUG
+  if (FLAG_test_secondary_stub_cache && table == StubCache::kPrimary) {
+    Goto(if_miss);
+    return;
+  } else if (FLAG_test_primary_stub_cache && table == StubCache::kSecondary) {
+    Goto(if_miss);
+    return;
+  }
+#endif
+  // The {table_offset} holds the entry offset times four (due to masking
+  // and shifting optimizations).
+  const int kMultiplier = sizeof(StubCache::Entry) >> Name::kHashShift;
+  entry_offset = Int32Mul(entry_offset, Int32Constant(kMultiplier));
+
+  // Check that the key in the entry matches the name.
+  Node* key_base =
+      ExternalConstant(ExternalReference(stub_cache->key_reference(table)));
+  Node* entry_key = Load(MachineType::Pointer(), key_base, entry_offset);
+  GotoIf(WordNotEqual(name, entry_key), if_miss);
+
+  // Get the map entry from the cache.
+  DCHECK_EQ(kPointerSize * 2, stub_cache->map_reference(table).address() -
+                                  stub_cache->key_reference(table).address());
+  Node* entry_map =
+      Load(MachineType::Pointer(), key_base,
+           Int32Add(entry_offset, Int32Constant(kPointerSize * 2)));
+  GotoIf(WordNotEqual(map, entry_map), if_miss);
+
+  // Check that the flags match what we're looking for.
+  DCHECK_EQ(kPointerSize, stub_cache->value_reference(table).address() -
+                              stub_cache->key_reference(table).address());
+  Node* code = Load(MachineType::Pointer(), key_base,
+                    Int32Add(entry_offset, Int32Constant(kPointerSize)));
+
+  Node* code_flags =
+      LoadObjectField(code, Code::kFlagsOffset, MachineType::Uint32());
+  GotoIf(Word32NotEqual(Int32Constant(flags),
+                        Word32And(code_flags,
+                                  Int32Constant(~Code::kFlagsNotUsedInLookup))),
+         if_miss);
+
+  // We found the handler.
+  var_handler->Bind(code);
+  Goto(if_handler);
+}
+
+void CodeStubAssembler::TryProbeStubCache(
+    StubCache* stub_cache, Code::Flags flags, compiler::Node* receiver,
+    compiler::Node* name, Label* if_handler, Variable* var_handler,
+    Label* if_miss) {
+  Label try_secondary(this), miss(this);
+
+  Counters* counters = isolate()->counters();
+  IncrementCounter(counters->megamorphic_stub_cache_probes(), 1);
+
+  // Check that the {receiver} isn't a smi.
+  GotoIf(WordIsSmi(receiver), &miss);
+
+  Node* receiver_map = LoadMap(receiver);
+
+  // Probe the primary table.
+  Node* primary_offset = StubCachePrimaryOffset(name, flags, receiver_map);
+  TryProbeStubCacheTable(stub_cache, kPrimary, primary_offset, name, flags,
+                         receiver_map, if_handler, var_handler, &try_secondary);
+
+  Bind(&try_secondary);
+  {
+    // Probe the secondary table.
+    Node* secondary_offset =
+        StubCacheSecondaryOffset(name, flags, primary_offset);
+    TryProbeStubCacheTable(stub_cache, kSecondary, secondary_offset, name,
+                           flags, receiver_map, if_handler, var_handler, &miss);
+  }
+
+  Bind(&miss);
+  {
+    IncrementCounter(counters->megamorphic_stub_cache_misses(), 1);
+    Goto(if_miss);
+  }
+}
+
+void CodeStubAssembler::LoadIC(const LoadICParameters* p) {
+  Variable var_handler(this, MachineRepresentation::kTagged);
+  // TODO(ishell): defer blocks when it works.
+  Label if_handler(this, &var_handler), try_polymorphic(this),
+      try_megamorphic(this /*, Label::kDeferred*/),
+      miss(this /*, Label::kDeferred*/);
+
+  Node* receiver_map = LoadReceiverMap(p->receiver);
+
+  // Check monomorphic case.
+  Node* feedback = TryMonomorphicCase(p, receiver_map, &if_handler,
+                                      &var_handler, &try_polymorphic);
+  Bind(&if_handler);
+  {
+    LoadWithVectorDescriptor descriptor(isolate());
+    TailCallStub(descriptor, var_handler.value(), p->context, p->receiver,
+                 p->name, p->slot, p->vector);
+  }
+
+  Bind(&try_polymorphic);
+  {
+    // Check polymorphic case.
+    GotoUnless(
+        WordEqual(LoadMap(feedback), LoadRoot(Heap::kFixedArrayMapRootIndex)),
+        &try_megamorphic);
+    HandlePolymorphicCase(p, receiver_map, feedback, &if_handler, &var_handler,
+                          &miss, 2);
+  }
+
+  Bind(&try_megamorphic);
+  {
+    // Check megamorphic case.
+    GotoUnless(
+        WordEqual(feedback, LoadRoot(Heap::kmegamorphic_symbolRootIndex)),
+        &miss);
+
+    Code::Flags code_flags =
+        Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
+
+    TryProbeStubCache(isolate()->stub_cache(), code_flags, p->receiver, p->name,
+                      &if_handler, &var_handler, &miss);
+  }
+  Bind(&miss);
+  {
+    TailCallRuntime(Runtime::kLoadIC_Miss, p->context, p->receiver, p->name,
+                    p->slot, p->vector);
+  }
+}
+
+void CodeStubAssembler::LoadGlobalIC(const LoadICParameters* p) {
+  Label try_handler(this), miss(this);
+  Node* weak_cell =
+      LoadFixedArrayElement(p->vector, p->slot, 0, SMI_PARAMETERS);
+  AssertInstanceType(weak_cell, WEAK_CELL_TYPE);
+
+  // Load value or try handler case if the {weak_cell} is cleared.
+  Node* property_cell = LoadWeakCellValue(weak_cell, &try_handler);
+  AssertInstanceType(property_cell, PROPERTY_CELL_TYPE);
+
+  Node* value = LoadObjectField(property_cell, PropertyCell::kValueOffset);
+  GotoIf(WordEqual(value, TheHoleConstant()), &miss);
+  Return(value);
+
+  Bind(&try_handler);
+  {
+    Node* handler =
+        LoadFixedArrayElement(p->vector, p->slot, kPointerSize, SMI_PARAMETERS);
+    GotoIf(WordEqual(handler, LoadRoot(Heap::kuninitialized_symbolRootIndex)),
+           &miss);
+
+    // In this case {handler} must be a Code object.
+    AssertInstanceType(handler, CODE_TYPE);
+    LoadWithVectorDescriptor descriptor(isolate());
+    Node* native_context = LoadNativeContext(p->context);
+    Node* receiver = LoadFixedArrayElement(
+        native_context, Int32Constant(Context::EXTENSION_INDEX));
+    Node* fake_name = IntPtrConstant(0);
+    TailCallStub(descriptor, handler, p->context, receiver, fake_name, p->slot,
+                 p->vector);
+  }
+  Bind(&miss);
+  {
+    TailCallRuntime(Runtime::kLoadGlobalIC_Miss, p->context, p->slot,
+                    p->vector);
+  }
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/code-stub-assembler.h b/src/code-stub-assembler.h
index 891fd24..f10e3ad 100644
--- a/src/code-stub-assembler.h
+++ b/src/code-stub-assembler.h
@@ -12,6 +12,8 @@
 namespace internal {
 
 class CallInterfaceDescriptor;
+class StatsCounter;
+class StubCache;
 
 // Provides JavaScript-specific "macro-assembler" functionality on top of the
 // CodeAssembler. By factoring the JavaScript-isms out of the CodeAssembler,
@@ -40,6 +42,8 @@
   compiler::Node* NoContextConstant();
   compiler::Node* NullConstant();
   compiler::Node* UndefinedConstant();
+  compiler::Node* TheHoleConstant();
+  compiler::Node* HashSeed();
   compiler::Node* StaleRegisterConstant();
 
   // Float64 operations.
@@ -55,6 +59,7 @@
 
   // Smi conversions.
   compiler::Node* SmiToFloat64(compiler::Node* value);
+  compiler::Node* SmiFromWord(compiler::Node* value) { return SmiTag(value); }
   compiler::Node* SmiFromWord32(compiler::Node* value);
   compiler::Node* SmiToWord(compiler::Node* value) { return SmiUntag(value); }
   compiler::Node* SmiToWord32(compiler::Node* value);
@@ -77,6 +82,8 @@
   compiler::Node* InnerAllocate(compiler::Node* previous,
                                 compiler::Node* offset);
 
+  void Assert(compiler::Node* condition);
+
   // Check a value for smi-ness
   compiler::Node* WordIsSmi(compiler::Node* a);
   // Check that the value is a positive smi.
@@ -97,18 +104,33 @@
     BranchIfFloat64Equal(value, value, if_false, if_true);
   }
 
+  // Load value from current frame by given offset in bytes.
+  compiler::Node* LoadFromFrame(int offset,
+                                MachineType rep = MachineType::AnyTagged());
+  // Load value from current parent frame by given offset in bytes.
+  compiler::Node* LoadFromParentFrame(
+      int offset, MachineType rep = MachineType::AnyTagged());
+
   // 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());
+  compiler::Node* LoadObjectField(compiler::Node* object,
+                                  compiler::Node* 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);
+  // Checks that given heap object has given instance type.
+  void AssertInstanceType(compiler::Node* object, InstanceType instance_type);
+  // Load the properties backing store of a JSObject.
+  compiler::Node* LoadProperties(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.
@@ -125,11 +147,25 @@
   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);
+  // Load the inobject properties count of a Map (valid only for JSObjects).
+  compiler::Node* LoadMapInobjectProperties(compiler::Node* map);
+
+  // Load the hash field of a name.
+  compiler::Node* LoadNameHashField(compiler::Node* name);
+  // Load the hash value of a name. If {if_hash_not_computed} label
+  // is specified then it also checks if hash is actually computed.
+  compiler::Node* LoadNameHash(compiler::Node* name,
+                               Label* if_hash_not_computed = nullptr);
+
+  // Load length field of a String object.
+  compiler::Node* LoadStringLength(compiler::Node* object);
+  // Load value field of a JSValue object.
+  compiler::Node* LoadJSValueValue(compiler::Node* object);
+  // Load value field of a WeakCell object.
+  compiler::Node* LoadWeakCellValue(compiler::Node* weak_cell,
+                                    Label* if_cleared = nullptr);
 
   compiler::Node* AllocateUninitializedFixedArray(compiler::Node* length);
 
@@ -138,6 +174,11 @@
       compiler::Node* object, compiler::Node* int32_index,
       int additional_offset = 0,
       ParameterMode parameter_mode = INTEGER_PARAMETERS);
+  // Load an array element from a FixedDoubleArray.
+  compiler::Node* LoadFixedDoubleArrayElement(
+      compiler::Node* object, compiler::Node* int32_index,
+      MachineType machine_type, int additional_offset = 0,
+      ParameterMode parameter_mode = INTEGER_PARAMETERS);
 
   // Context manipulation
   compiler::Node* LoadNativeContext(compiler::Node* context);
@@ -173,8 +214,12 @@
   compiler::Node* AllocateHeapNumberWithValue(compiler::Node* value);
   // Allocate a SeqOneByteString with the given length.
   compiler::Node* AllocateSeqOneByteString(int length);
+  compiler::Node* AllocateSeqOneByteString(compiler::Node* context,
+                                           compiler::Node* length);
   // Allocate a SeqTwoByteString with the given length.
   compiler::Node* AllocateSeqTwoByteString(int length);
+  compiler::Node* AllocateSeqTwoByteString(compiler::Node* context,
+                                           compiler::Node* length);
   // Allocated an JSArray
   compiler::Node* AllocateJSArray(ElementsKind kind, compiler::Node* array_map,
                                   compiler::Node* capacity,
@@ -221,19 +266,95 @@
   compiler::Node* BitFieldDecode(compiler::Node* word32, uint32_t shift,
                                  uint32_t mask);
 
+  void SetCounter(StatsCounter* counter, int value);
+  void IncrementCounter(StatsCounter* counter, int delta);
+  void DecrementCounter(StatsCounter* counter, int delta);
+
   // 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);
+                 Label* if_keyisunique, Label* if_bailout);
 
+  // Calculates array index for given dictionary entry and entry field.
+  // See Dictionary::EntryToIndex().
+  template <typename Dictionary>
+  compiler::Node* EntryToIndex(compiler::Node* entry, int field_index);
+  template <typename Dictionary>
+  compiler::Node* EntryToIndex(compiler::Node* entry) {
+    return EntryToIndex<Dictionary>(entry, Dictionary::kEntryKeyIndex);
+  }
+
+  // Looks up an entry in a NameDictionaryBase successor. If the entry is found
+  // control goes to {if_found} and {var_name_index} contains an index of the
+  // key field of the entry found. If the key is not found control goes to
+  // {if_not_found}.
+  static const int kInlinedDictionaryProbes = 4;
+  template <typename Dictionary>
+  void NameDictionaryLookup(compiler::Node* dictionary,
+                            compiler::Node* unique_name, Label* if_found,
+                            Variable* var_name_index, Label* if_not_found,
+                            int inlined_probes = kInlinedDictionaryProbes);
+
+  compiler::Node* ComputeIntegerHash(compiler::Node* key, compiler::Node* seed);
+
+  template <typename Dictionary>
+  void NumberDictionaryLookup(compiler::Node* dictionary, compiler::Node* key,
+                              Label* if_found, Variable* var_entry,
+                              Label* if_not_found);
+
+  // Tries to check if {object} has own {unique_name} property.
+  void TryHasOwnProperty(compiler::Node* object, compiler::Node* map,
+                         compiler::Node* instance_type,
+                         compiler::Node* unique_name, Label* if_found,
+                         Label* if_not_found, Label* if_bailout);
+
+  // Tries to get {object}'s own {unique_name} property value. If the property
+  // is an accessor then it also calls a getter. If the property is a double
+  // field it re-wraps value in an immutable heap number.
+  void TryGetOwnProperty(compiler::Node* context, compiler::Node* receiver,
+                         compiler::Node* object, compiler::Node* map,
+                         compiler::Node* instance_type,
+                         compiler::Node* unique_name, Label* if_found,
+                         Variable* var_value, Label* if_not_found,
+                         Label* if_bailout);
+
+  void LoadPropertyFromFastObject(compiler::Node* object, compiler::Node* map,
+                                  compiler::Node* descriptors,
+                                  compiler::Node* name_index,
+                                  Variable* var_details, Variable* var_value);
+
+  void LoadPropertyFromNameDictionary(compiler::Node* dictionary,
+                                      compiler::Node* entry,
+                                      Variable* var_details,
+                                      Variable* var_value);
+
+  void LoadPropertyFromGlobalDictionary(compiler::Node* dictionary,
+                                        compiler::Node* entry,
+                                        Variable* var_details,
+                                        Variable* var_value, Label* if_deleted);
+
+  // Generic property lookup generator. If the {object} is fast and
+  // {unique_name} property is found then the control goes to {if_found_fast}
+  // label and {var_meta_storage} and {var_name_index} will contain
+  // DescriptorArray and an index of the descriptor's name respectively.
+  // If the {object} is slow or global then the control goes to {if_found_dict}
+  // or {if_found_global} and the {var_meta_storage} and {var_name_index} will
+  // contain a dictionary and an index of the key field of the found entry.
+  // If property is not found or given lookup is not supported then
+  // the control goes to {if_not_found} or {if_bailout} respectively.
+  //
+  // Note: this code does not check if the global dictionary points to deleted
+  // entry! This has to be done by the caller.
   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);
+                         compiler::Node* instance_type,
+                         compiler::Node* unique_name, Label* if_found_fast,
+                         Label* if_found_dict, Label* if_found_global,
+                         Variable* var_meta_storage, Variable* var_name_index,
+                         Label* if_not_found, Label* if_bailout);
 
   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);
+                        Label* if_bailout);
 
   // Instanceof helpers.
   // ES6 section 7.3.19 OrdinaryHasInstance (C, O)
@@ -241,6 +362,66 @@
                                       compiler::Node* callable,
                                       compiler::Node* object);
 
+  // LoadIC helpers.
+  struct LoadICParameters {
+    LoadICParameters(compiler::Node* context, compiler::Node* receiver,
+                     compiler::Node* name, compiler::Node* slot,
+                     compiler::Node* vector)
+        : context(context),
+          receiver(receiver),
+          name(name),
+          slot(slot),
+          vector(vector) {}
+
+    compiler::Node* context;
+    compiler::Node* receiver;
+    compiler::Node* name;
+    compiler::Node* slot;
+    compiler::Node* vector;
+  };
+
+  // Load type feedback vector from the stub caller's frame.
+  compiler::Node* LoadTypeFeedbackVectorForStub();
+
+  compiler::Node* LoadReceiverMap(compiler::Node* receiver);
+
+  // Checks monomorphic case. Returns {feedback} entry of the vector.
+  compiler::Node* TryMonomorphicCase(const LoadICParameters* p,
+                                     compiler::Node* receiver_map,
+                                     Label* if_handler, Variable* var_handler,
+                                     Label* if_miss);
+  void HandlePolymorphicCase(const LoadICParameters* p,
+                             compiler::Node* receiver_map,
+                             compiler::Node* feedback, Label* if_handler,
+                             Variable* var_handler, Label* if_miss,
+                             int unroll_count);
+
+  compiler::Node* StubCachePrimaryOffset(compiler::Node* name,
+                                         Code::Flags flags,
+                                         compiler::Node* map);
+
+  compiler::Node* StubCacheSecondaryOffset(compiler::Node* name,
+                                           Code::Flags flags,
+                                           compiler::Node* seed);
+
+  // This enum is used here as a replacement for StubCache::Table to avoid
+  // including stub cache header.
+  enum StubCacheTable : int;
+
+  void TryProbeStubCacheTable(StubCache* stub_cache, StubCacheTable table_id,
+                              compiler::Node* entry_offset,
+                              compiler::Node* name, Code::Flags flags,
+                              compiler::Node* map, Label* if_handler,
+                              Variable* var_handler, Label* if_miss);
+
+  void TryProbeStubCache(StubCache* stub_cache, Code::Flags flags,
+                         compiler::Node* receiver, compiler::Node* name,
+                         Label* if_handler, Variable* var_handler,
+                         Label* if_miss);
+
+  void LoadIC(const LoadICParameters* p);
+  void LoadGlobalIC(const LoadICParameters* p);
+
  private:
   compiler::Node* ElementOffsetFromIndex(compiler::Node* index,
                                          ElementsKind kind, ParameterMode mode,
@@ -260,5 +441,4 @@
 
 }  // 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 6680e66..650e538 100644
--- a/src/code-stubs-hydrogen.cc
+++ b/src/code-stubs-hydrogen.cc
@@ -81,30 +81,14 @@
   HValue* BuildPushElement(HValue* object, HValue* argc,
                            HValue* argument_elements, ElementsKind kind);
 
-  enum ArgumentClass {
-    NONE,
-    SINGLE,
-    MULTIPLE
-  };
-
   HValue* UnmappedCase(HValue* elements, HValue* key, HValue* value);
   HValue* EmitKeyedSloppyArguments(HValue* receiver, HValue* key,
                                    HValue* value);
 
-  HValue* BuildArrayConstructor(ElementsKind kind,
-                                AllocationSiteOverrideMode override_mode,
-                                ArgumentClass argument_class);
-  HValue* BuildInternalArrayConstructor(ElementsKind kind,
-                                        ArgumentClass argument_class);
-
   HValue* BuildToString(HValue* input, bool convert);
   HValue* BuildToPrimitive(HValue* input, HValue* input_map);
 
  private:
-  HValue* BuildArraySingleArgumentConstructor(JSArrayBuilder* builder);
-  HValue* BuildArrayNArgumentsConstructor(JSArrayBuilder* builder,
-                                          ElementsKind kind);
-
   base::SmartArrayPointer<HParameter*> parameters_;
   HValue* arguments_length_;
   CompilationInfo* info_;
@@ -483,9 +467,14 @@
   HValue* closure = GetParameter(0);
   HValue* literal_index = GetParameter(1);
 
+  // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some
+  // point and wasn't caught since it wasn't built in the snapshot. We should
+  // probably just replace with a TurboFan stub rather than fixing it.
+#if !(V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87)
   // This stub is very performance sensitive, the generated code must be tuned
   // so that it doesn't build and eager frame.
   info()->MarkMustNotHaveEagerFrame();
+#endif
 
   HValue* literals_array = Add<HLoadNamedField>(
       closure, nullptr, HObjectAccess::ForLiteralsPointer());
@@ -710,7 +699,7 @@
         can_store.IfNot<HCompareMap>(argument,
                                      isolate()->factory()->heap_number_map());
       }
-      can_store.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+      can_store.ThenDeopt(Deoptimizer::kFastPathFailed);
       can_store.End();
     }
     builder.EndBody();
@@ -761,7 +750,7 @@
     IfBuilder check(this);
     check.If<HCompareNumericAndBranch>(
         bits, Add<HConstant>(1 << Map::kIsExtensible), Token::NE);
-    check.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+    check.ThenDeopt(Deoptimizer::kFastPathFailed);
     check.End();
   }
 
@@ -774,7 +763,7 @@
     HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask);
     IfBuilder check(this);
     check.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
-    check.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+    check.ThenDeopt(Deoptimizer::kFastPathFailed);
     check.End();
   }
 
@@ -792,7 +781,7 @@
     HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, details, mask);
     IfBuilder readonly(this);
     readonly.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
-    readonly.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+    readonly.ThenDeopt(Deoptimizer::kFastPathFailed);
     readonly.End();
   }
 
@@ -820,14 +809,14 @@
     check_instance_type.If<HCompareNumericAndBranch>(
         instance_type, Add<HConstant>(LAST_CUSTOM_ELEMENTS_RECEIVER),
         Token::LTE);
-    check_instance_type.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+    check_instance_type.ThenDeopt(Deoptimizer::kFastPathFailed);
     check_instance_type.End();
 
     HValue* elements = Add<HLoadNamedField>(
         prototype, nullptr, HObjectAccess::ForElementsPointer());
     IfBuilder no_elements(this);
     no_elements.IfNot<HCompareObjectEqAndBranch>(elements, empty);
-    no_elements.ThenDeopt(Deoptimizer::kFastArrayPushFailed);
+    no_elements.ThenDeopt(Deoptimizer::kFastPathFailed);
     no_elements.End();
 
     environment()->Push(prototype_map);
@@ -877,7 +866,7 @@
                                               FAST_HOLEY_DOUBLE_ELEMENTS);
         environment()->Push(new_length);
       }
-      has_double_elements.ElseDeopt(Deoptimizer::kFastArrayPushFailed);
+      has_double_elements.ElseDeopt(Deoptimizer::kFastPathFailed);
       has_double_elements.End();
     }
     has_object_elements.End();
@@ -890,6 +879,191 @@
 Handle<Code> FastArrayPushStub::GenerateCode() { return DoGenerateCode(this); }
 
 template <>
+HValue* CodeStubGraphBuilder<FastFunctionBindStub>::BuildCodeStub() {
+  // TODO(verwaest): Fix deoptimizer messages.
+  HValue* argc = GetArgumentsLength();
+  HInstruction* argument_elements = Add<HArgumentsElements>(false, false);
+  HInstruction* object = Add<HAccessArgumentsAt>(argument_elements, argc,
+                                                 graph()->GetConstantMinus1());
+  BuildCheckHeapObject(object);
+  HValue* map = Add<HLoadNamedField>(object, nullptr, HObjectAccess::ForMap());
+  Add<HCheckInstanceType>(object, HCheckInstanceType::IS_JS_FUNCTION);
+
+  // Disallow binding of slow-mode functions. We need to figure out whether the
+  // length and name property are in the original state.
+  {
+    HValue* bit_field3 =
+        Add<HLoadNamedField>(map, nullptr, HObjectAccess::ForMapBitField3());
+    HValue* mask = Add<HConstant>(static_cast<int>(Map::DictionaryMap::kMask));
+    HValue* bit = AddUncasted<HBitwise>(Token::BIT_AND, bit_field3, mask);
+    IfBuilder check(this);
+    check.If<HCompareNumericAndBranch>(bit, mask, Token::EQ);
+    check.ThenDeopt(Deoptimizer::kFastPathFailed);
+    check.End();
+  }
+
+  // Check whether the length and name properties are still present as
+  // AccessorInfo objects. In that case, their value can be recomputed even if
+  // the actual value on the object changes.
+  {
+    HValue* descriptors =
+        Add<HLoadNamedField>(map, nullptr, HObjectAccess::ForMapDescriptors());
+
+    HValue* descriptors_length = Add<HLoadNamedField>(
+        descriptors, nullptr, HObjectAccess::ForFixedArrayLength());
+    IfBuilder range(this);
+    range.If<HCompareNumericAndBranch>(descriptors_length,
+                                       graph()->GetConstant1(), Token::LTE);
+    range.ThenDeopt(Deoptimizer::kFastPathFailed);
+    range.End();
+
+    // Verify .length.
+    const int length_index = JSFunction::kLengthDescriptorIndex;
+    HValue* maybe_length = Add<HLoadKeyed>(
+        descriptors, Add<HConstant>(DescriptorArray::ToKeyIndex(length_index)),
+        nullptr, nullptr, FAST_ELEMENTS);
+    Unique<Name> length_string = Unique<Name>::CreateUninitialized(
+        isolate()->factory()->length_string());
+    Add<HCheckValue>(maybe_length, length_string, false);
+
+    HValue* maybe_length_accessor = Add<HLoadKeyed>(
+        descriptors,
+        Add<HConstant>(DescriptorArray::ToValueIndex(length_index)), nullptr,
+        nullptr, FAST_ELEMENTS);
+    BuildCheckHeapObject(maybe_length_accessor);
+    Add<HCheckMaps>(maybe_length_accessor,
+                    isolate()->factory()->accessor_info_map());
+
+    // Verify .name.
+    const int name_index = JSFunction::kNameDescriptorIndex;
+    HValue* maybe_name = Add<HLoadKeyed>(
+        descriptors, Add<HConstant>(DescriptorArray::ToKeyIndex(name_index)),
+        nullptr, nullptr, FAST_ELEMENTS);
+    Unique<Name> name_string =
+        Unique<Name>::CreateUninitialized(isolate()->factory()->name_string());
+    Add<HCheckValue>(maybe_name, name_string, false);
+
+    HValue* maybe_name_accessor = Add<HLoadKeyed>(
+        descriptors, Add<HConstant>(DescriptorArray::ToValueIndex(name_index)),
+        nullptr, nullptr, FAST_ELEMENTS);
+    BuildCheckHeapObject(maybe_name_accessor);
+    Add<HCheckMaps>(maybe_name_accessor,
+                    isolate()->factory()->accessor_info_map());
+  }
+
+  // Choose the right bound function map based on whether the target is
+  // constructable.
+  {
+    HValue* bit_field =
+        Add<HLoadNamedField>(map, nullptr, HObjectAccess::ForMapBitField());
+    HValue* mask = Add<HConstant>(static_cast<int>(1 << Map::kIsConstructor));
+    HValue* bits = AddUncasted<HBitwise>(Token::BIT_AND, bit_field, mask);
+
+    HValue* native_context = BuildGetNativeContext();
+    IfBuilder is_constructor(this);
+    is_constructor.If<HCompareNumericAndBranch>(bits, mask, Token::EQ);
+    is_constructor.Then();
+    {
+      HValue* map = Add<HLoadNamedField>(
+          native_context, nullptr,
+          HObjectAccess::ForContextSlot(
+              Context::BOUND_FUNCTION_WITH_CONSTRUCTOR_MAP_INDEX));
+      environment()->Push(map);
+    }
+    is_constructor.Else();
+    {
+      HValue* map = Add<HLoadNamedField>(
+          native_context, nullptr,
+          HObjectAccess::ForContextSlot(
+              Context::BOUND_FUNCTION_WITHOUT_CONSTRUCTOR_MAP_INDEX));
+      environment()->Push(map);
+    }
+    is_constructor.End();
+  }
+  HValue* bound_function_map = environment()->Pop();
+
+  // Verify that __proto__ matches that of a the target bound function.
+  {
+    HValue* prototype =
+        Add<HLoadNamedField>(map, nullptr, HObjectAccess::ForPrototype());
+    HValue* expected_prototype = Add<HLoadNamedField>(
+        bound_function_map, nullptr, HObjectAccess::ForPrototype());
+    IfBuilder equal_prototype(this);
+    equal_prototype.IfNot<HCompareObjectEqAndBranch>(prototype,
+                                                     expected_prototype);
+    equal_prototype.ThenDeopt(Deoptimizer::kFastPathFailed);
+    equal_prototype.End();
+  }
+
+  // Allocate the arguments array.
+  IfBuilder empty_args(this);
+  empty_args.If<HCompareNumericAndBranch>(argc, graph()->GetConstant1(),
+                                          Token::LTE);
+  empty_args.Then();
+  { environment()->Push(Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex)); }
+  empty_args.Else();
+  {
+    HValue* elements_length = AddUncasted<HSub>(argc, graph()->GetConstant1());
+    HValue* elements =
+        BuildAllocateAndInitializeArray(FAST_ELEMENTS, elements_length);
+
+    LoopBuilder builder(this, context(), LoopBuilder::kPostIncrement);
+    HValue* start = graph()->GetConstant1();
+    HValue* key = builder.BeginBody(start, argc, Token::LT);
+    {
+      HValue* argument = Add<HAccessArgumentsAt>(argument_elements, argc, key);
+      HValue* index = AddUncasted<HSub>(key, graph()->GetConstant1());
+      AddElementAccess(elements, index, argument, elements, nullptr,
+                       FAST_ELEMENTS, STORE);
+    }
+    builder.EndBody();
+    environment()->Push(elements);
+  }
+  empty_args.End();
+  HValue* elements = environment()->Pop();
+
+  // Find the 'this' to bind.
+  IfBuilder no_receiver(this);
+  no_receiver.If<HCompareNumericAndBranch>(argc, graph()->GetConstant0(),
+                                           Token::EQ);
+  no_receiver.Then();
+  { environment()->Push(Add<HLoadRoot>(Heap::kUndefinedValueRootIndex)); }
+  no_receiver.Else();
+  {
+    environment()->Push(Add<HAccessArgumentsAt>(argument_elements, argc,
+                                                graph()->GetConstant0()));
+  }
+  no_receiver.End();
+  HValue* receiver = environment()->Pop();
+
+  // Allocate the resulting bound function.
+  HValue* size = Add<HConstant>(JSBoundFunction::kSize);
+  HValue* bound_function =
+      Add<HAllocate>(size, HType::JSObject(), NOT_TENURED,
+                     JS_BOUND_FUNCTION_TYPE, graph()->GetConstant0());
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForMap(),
+                        bound_function_map);
+  HValue* empty_fixed_array = Add<HLoadRoot>(Heap::kEmptyFixedArrayRootIndex);
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForPropertiesPointer(),
+                        empty_fixed_array);
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForElementsPointer(),
+                        empty_fixed_array);
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForBoundTargetFunction(),
+                        object);
+
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForBoundThis(),
+                        receiver);
+  Add<HStoreNamedField>(bound_function, HObjectAccess::ForBoundArguments(),
+                        elements);
+
+  return bound_function;
+}
+
+Handle<Code> FastFunctionBindStub::GenerateCode() {
+  return DoGenerateCode(this);
+}
+
+template <>
 HValue* CodeStubGraphBuilder<GrowArrayElementsStub>::BuildCodeStub() {
   ElementsKind kind = casted_stub()->elements_kind();
   if (IsFastDoubleElementsKind(kind)) {
@@ -972,18 +1146,6 @@
 
 
 template <>
-HValue* CodeStubGraphBuilder<ArrayBufferViewLoadFieldStub>::BuildCodeStub() {
-  return BuildArrayBufferViewFieldAccessor(GetParameter(0), nullptr,
-                                           casted_stub()->index());
-}
-
-
-Handle<Code> ArrayBufferViewLoadFieldStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
-template <>
 HValue* CodeStubGraphBuilder<LoadConstantStub>::BuildCodeStub() {
   HValue* map = AddLoadMap(GetParameter(0), NULL);
   HObjectAccess descriptors_access = HObjectAccess::ForObservableJSObjectOffset(
@@ -1206,8 +1368,21 @@
 template <>
 HValue* CodeStubGraphBuilder<StoreTransitionStub>::BuildCodeStub() {
   HValue* object = GetParameter(StoreTransitionHelper::ReceiverIndex());
+  HValue* value = GetParameter(StoreTransitionHelper::ValueIndex());
+  StoreTransitionStub::StoreMode store_mode = casted_stub()->store_mode();
 
-  switch (casted_stub()->store_mode()) {
+  if (store_mode != StoreTransitionStub::StoreMapOnly) {
+    value = GetParameter(StoreTransitionHelper::ValueIndex());
+    Representation representation = casted_stub()->representation();
+    if (representation.IsDouble()) {
+      // In case we are storing a double, assure that the value is a double
+      // before manipulating the properties backing store. Otherwise the actual
+      // store may deopt, leaving the backing store in an overallocated state.
+      value = AddUncasted<HForceRepresentation>(value, representation);
+    }
+  }
+
+  switch (store_mode) {
     case StoreTransitionStub::ExtendStorageAndStoreMapAndValue: {
       HValue* properties = Add<HLoadNamedField>(
           object, nullptr, HObjectAccess::ForPropertiesPointer());
@@ -1235,9 +1410,8 @@
     // Fall through.
     case StoreTransitionStub::StoreMapAndValue:
       // Store the new value into the "extended" object.
-      BuildStoreNamedField(
-          object, GetParameter(StoreTransitionHelper::ValueIndex()),
-          casted_stub()->index(), casted_stub()->representation(), true);
+      BuildStoreNamedField(object, value, casted_stub()->index(),
+                           casted_stub()->representation(), true);
     // Fall through.
 
     case StoreTransitionStub::StoreMapOnly:
@@ -1246,7 +1420,7 @@
                             GetParameter(StoreTransitionHelper::MapIndex()));
       break;
   }
-  return GetParameter(StoreTransitionHelper::ValueIndex());
+  return value;
 }
 
 
@@ -1275,15 +1449,61 @@
 
 template <>
 HValue* CodeStubGraphBuilder<TransitionElementsKindStub>::BuildCodeStub() {
+  ElementsKind const from_kind = casted_stub()->from_kind();
+  ElementsKind const to_kind = casted_stub()->to_kind();
+  HValue* const object = GetParameter(0);
+  HValue* const map = GetParameter(1);
+
+  // The {object} is known to be a JSObject (otherwise it wouldn't have elements
+  // anyways).
+  object->set_type(HType::JSObject());
+
   info()->MarkAsSavesCallerDoubles();
 
-  BuildTransitionElementsKind(GetParameter(0),
-                              GetParameter(1),
-                              casted_stub()->from_kind(),
-                              casted_stub()->to_kind(),
-                              casted_stub()->is_js_array());
+  DCHECK_IMPLIES(IsFastHoleyElementsKind(from_kind),
+                 IsFastHoleyElementsKind(to_kind));
 
-  return GetParameter(0);
+  if (AllocationSite::GetMode(from_kind, to_kind) == TRACK_ALLOCATION_SITE) {
+    Add<HTrapAllocationMemento>(object);
+  }
+
+  if (!IsSimpleMapChangeTransition(from_kind, to_kind)) {
+    HInstruction* elements = AddLoadElements(object);
+
+    IfBuilder if_objecthaselements(this);
+    if_objecthaselements.IfNot<HCompareObjectEqAndBranch>(
+        elements, Add<HConstant>(isolate()->factory()->empty_fixed_array()));
+    if_objecthaselements.Then();
+    {
+      // Determine the elements capacity.
+      HInstruction* elements_length = AddLoadFixedArrayLength(elements);
+
+      // Determine the effective (array) length.
+      IfBuilder if_objectisarray(this);
+      if_objectisarray.If<HHasInstanceTypeAndBranch>(object, JS_ARRAY_TYPE);
+      if_objectisarray.Then();
+      {
+        // The {object} is a JSArray, load the special "length" property.
+        Push(Add<HLoadNamedField>(object, nullptr,
+                                  HObjectAccess::ForArrayLength(from_kind)));
+      }
+      if_objectisarray.Else();
+      {
+        // The {object} is some other JSObject.
+        Push(elements_length);
+      }
+      if_objectisarray.End();
+      HValue* length = Pop();
+
+      BuildGrowElementsCapacity(object, elements, from_kind, to_kind, length,
+                                elements_length);
+    }
+    if_objecthaselements.End();
+  }
+
+  Add<HStoreNamedField>(object, HObjectAccess::ForMap(), map);
+
+  return object;
 }
 
 
@@ -1291,185 +1511,6 @@
   return DoGenerateCode(this);
 }
 
-HValue* CodeStubGraphBuilderBase::BuildArrayConstructor(
-    ElementsKind kind,
-    AllocationSiteOverrideMode override_mode,
-    ArgumentClass argument_class) {
-  HValue* constructor = GetParameter(ArrayConstructorStubBase::kConstructor);
-  HValue* alloc_site = GetParameter(ArrayConstructorStubBase::kAllocationSite);
-  JSArrayBuilder array_builder(this, kind, alloc_site, constructor,
-                               override_mode);
-  HValue* result = NULL;
-  switch (argument_class) {
-    case NONE:
-      // This stub is very performance sensitive, the generated code must be
-      // tuned so that it doesn't build and eager frame.
-      info()->MarkMustNotHaveEagerFrame();
-      result = array_builder.AllocateEmptyArray();
-      break;
-    case SINGLE:
-      result = BuildArraySingleArgumentConstructor(&array_builder);
-      break;
-    case MULTIPLE:
-      result = BuildArrayNArgumentsConstructor(&array_builder, kind);
-      break;
-  }
-
-  return result;
-}
-
-
-HValue* CodeStubGraphBuilderBase::BuildInternalArrayConstructor(
-    ElementsKind kind, ArgumentClass argument_class) {
-  HValue* constructor = GetParameter(
-      InternalArrayConstructorStubBase::kConstructor);
-  JSArrayBuilder array_builder(this, kind, constructor);
-
-  HValue* result = NULL;
-  switch (argument_class) {
-    case NONE:
-      // This stub is very performance sensitive, the generated code must be
-      // tuned so that it doesn't build and eager frame.
-      info()->MarkMustNotHaveEagerFrame();
-      result = array_builder.AllocateEmptyArray();
-      break;
-    case SINGLE:
-      result = BuildArraySingleArgumentConstructor(&array_builder);
-      break;
-    case MULTIPLE:
-      result = BuildArrayNArgumentsConstructor(&array_builder, kind);
-      break;
-  }
-  return result;
-}
-
-
-HValue* CodeStubGraphBuilderBase::BuildArraySingleArgumentConstructor(
-    JSArrayBuilder* array_builder) {
-  // Smi check and range check on the input arg.
-  HValue* constant_one = graph()->GetConstant1();
-  HValue* constant_zero = graph()->GetConstant0();
-
-  HInstruction* elements = Add<HArgumentsElements>(false);
-  HInstruction* argument = Add<HAccessArgumentsAt>(
-      elements, constant_one, constant_zero);
-
-  return BuildAllocateArrayFromLength(array_builder, argument);
-}
-
-
-HValue* CodeStubGraphBuilderBase::BuildArrayNArgumentsConstructor(
-    JSArrayBuilder* array_builder, ElementsKind kind) {
-  // Insert a bounds check because the number of arguments might exceed
-  // the kInitialMaxFastElementArray limit. This cannot happen for code
-  // that was parsed, but calling via Array.apply(thisArg, [...]) might
-  // trigger it.
-  HValue* length = GetArgumentsLength();
-  HConstant* max_alloc_length =
-      Add<HConstant>(JSArray::kInitialMaxFastElementArray);
-  HValue* checked_length = Add<HBoundsCheck>(length, max_alloc_length);
-
-  // We need to fill with the hole if it's a smi array in the multi-argument
-  // case because we might have to bail out while copying arguments into
-  // the array because they aren't compatible with a smi array.
-  // If it's a double array, no problem, and if it's fast then no
-  // problem either because doubles are boxed.
-  //
-  // TODO(mvstanton): consider an instruction to memset fill the array
-  // with zero in this case instead.
-  JSArrayBuilder::FillMode fill_mode = IsFastSmiElementsKind(kind)
-      ? JSArrayBuilder::FILL_WITH_HOLE
-      : JSArrayBuilder::DONT_FILL_WITH_HOLE;
-  HValue* new_object = array_builder->AllocateArray(checked_length,
-                                                    checked_length,
-                                                    fill_mode);
-  HValue* elements = array_builder->GetElementsLocation();
-  DCHECK(elements != NULL);
-
-  // Now populate the elements correctly.
-  LoopBuilder builder(this,
-                      context(),
-                      LoopBuilder::kPostIncrement);
-  HValue* start = graph()->GetConstant0();
-  HValue* key = builder.BeginBody(start, checked_length, Token::LT);
-  HInstruction* argument_elements = Add<HArgumentsElements>(false);
-  HInstruction* argument = Add<HAccessArgumentsAt>(
-      argument_elements, checked_length, key);
-
-  Add<HStoreKeyed>(elements, key, argument, nullptr, kind);
-  builder.EndBody();
-  return new_object;
-}
-
-
-template <>
-HValue* CodeStubGraphBuilder<ArrayNoArgumentConstructorStub>::BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
-  return BuildArrayConstructor(kind, override_mode, NONE);
-}
-
-template <>
-HValue* CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::
-    BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
-  return BuildArrayConstructor(kind, override_mode, SINGLE);
-}
-
-
-Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
-template <>
-HValue* CodeStubGraphBuilder<ArrayNArgumentsConstructorStub>::BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  AllocationSiteOverrideMode override_mode = casted_stub()->override_mode();
-  return BuildArrayConstructor(kind, override_mode, MULTIPLE);
-}
-
-
-Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
-template <>
-HValue* CodeStubGraphBuilder<InternalArrayNoArgumentConstructorStub>::
-    BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  return BuildInternalArrayConstructor(kind, NONE);
-}
-
-
-template <>
-HValue* CodeStubGraphBuilder<InternalArraySingleArgumentConstructorStub>::
-    BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  return BuildInternalArrayConstructor(kind, SINGLE);
-}
-
-
-Handle<Code> InternalArraySingleArgumentConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
-template <>
-HValue* CodeStubGraphBuilder<InternalArrayNArgumentsConstructorStub>::
-    BuildCodeStub() {
-  ElementsKind kind = casted_stub()->elements_kind();
-  return BuildInternalArrayConstructor(kind, MULTIPLE);
-}
-
-
-Handle<Code> InternalArrayNArgumentsConstructorStub::GenerateCode() {
-  return DoGenerateCode(this);
-}
-
-
 template <>
 HValue* CodeStubGraphBuilder<BinaryOpICStub>::BuildCodeInitializedStub() {
   BinaryOpICState state = casted_stub()->state();
@@ -1890,6 +1931,8 @@
   Factory* factory = isolate()->factory();
   HInstruction* empty_fixed_array =
       Add<HConstant>(factory->empty_fixed_array());
+  HInstruction* empty_literals_array =
+      Add<HConstant>(factory->empty_literals_array());
   HValue* shared_info = GetParameter(0);
 
   AddIncrementCounter(counters->fast_new_closure_total());
@@ -1916,7 +1959,7 @@
   Add<HStoreNamedField>(js_function, HObjectAccess::ForElementsPointer(),
                         empty_fixed_array);
   Add<HStoreNamedField>(js_function, HObjectAccess::ForLiteralsPointer(),
-                        empty_fixed_array);
+                        empty_literals_array);
   Add<HStoreNamedField>(js_function, HObjectAccess::ForPrototypeOrInitialMap(),
                         graph()->GetConstantHole());
   Add<HStoreNamedField>(
@@ -2023,7 +2066,12 @@
   HValue* index = GetParameter(RegExpConstructResultStub::kIndex);
   HValue* input = GetParameter(RegExpConstructResultStub::kInput);
 
+  // TODO(turbofan): This codestub has regressed to need a frame on ia32 at some
+  // point and wasn't caught since it wasn't built in the snapshot. We should
+  // probably just replace with a TurboFan stub rather than fixing it.
+#if !(V8_TARGET_ARCH_IA32 || V8_TARGET_ARCH_X87)
   info()->MarkMustNotHaveEagerFrame();
+#endif
 
   return BuildRegExpConstructResult(length, index, input);
 }
diff --git a/src/code-stubs.cc b/src/code-stubs.cc
index d7ea506..ae3adb7 100644
--- a/src/code-stubs.cc
+++ b/src/code-stubs.cc
@@ -15,7 +15,6 @@
 #include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "src/parsing/parser.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -83,8 +82,8 @@
   std::ostringstream os;
   os << *this;
   PROFILE(isolate(),
-          CodeCreateEvent(Logger::STUB_TAG, AbstractCode::cast(*code),
-                          os.str().c_str()));
+          CodeCreateEvent(CodeEventListener::STUB_TAG,
+                          AbstractCode::cast(*code), os.str().c_str()));
   Counters* counters = isolate()->counters();
   counters->total_stubs_code_size()->Increment(code->instruction_size());
 #ifdef DEBUG
@@ -99,7 +98,7 @@
 
 
 Code::Flags CodeStub::GetCodeFlags() const {
-  return Code::ComputeFlags(GetCodeKind(), GetICState(), GetExtraICState());
+  return Code::ComputeFlags(GetCodeKind(), GetExtraICState());
 }
 
 
@@ -134,8 +133,7 @@
   CodeDesc desc;
   masm.GetCode(&desc);
   // Copy the generated code into a heap object.
-  Code::Flags flags =
-      Code::ComputeFlags(GetCodeKind(), GetICState(), GetExtraICState());
+  Code::Flags flags = Code::ComputeFlags(GetCodeKind(), GetExtraICState());
   Handle<Code> new_object = factory->NewCode(
       desc, flags, masm.CodeObject(), NeedsImmovableCode());
   return new_object;
@@ -373,40 +371,6 @@
 }
 
 
-void CompareICStub::AddToSpecialCache(Handle<Code> new_object) {
-  DCHECK(*known_map_ != NULL);
-  Isolate* isolate = new_object->GetIsolate();
-  Factory* factory = isolate->factory();
-  return Map::UpdateCodeCache(known_map_,
-                              strict() ?
-                                  factory->strict_compare_ic_string() :
-                                  factory->compare_ic_string(),
-                              new_object);
-}
-
-
-bool CompareICStub::FindCodeInSpecialCache(Code** code_out) {
-  Code::Flags flags = Code::ComputeFlags(
-      GetCodeKind(),
-      UNINITIALIZED);
-  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());
-    DCHECK(left() == decode.left());
-    DCHECK(right() == decode.right());
-    DCHECK(state() == decode.state());
-#endif
-    return true;
-  }
-  return false;
-}
-
-
 void CompareICStub::Generate(MacroAssembler* masm) {
   switch (state()) {
     case CompareICState::UNINITIALIZED:
@@ -443,7 +407,6 @@
   }
 }
 
-
 Handle<Code> TurboFanCodeStub::GenerateCode() {
   const char* name = CodeStub::MajorName(MajorKey());
   Zone zone(isolate()->allocator());
@@ -454,6 +417,58 @@
   return assembler.GenerateCode();
 }
 
+void LoadICTrampolineTFStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* name = assembler->Parameter(1);
+  Node* slot = assembler->Parameter(2);
+  Node* context = assembler->Parameter(3);
+  Node* vector = assembler->LoadTypeFeedbackVectorForStub();
+
+  CodeStubAssembler::LoadICParameters p(context, receiver, name, slot, vector);
+  assembler->LoadIC(&p);
+}
+
+void LoadICTFStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+
+  Node* receiver = assembler->Parameter(0);
+  Node* name = assembler->Parameter(1);
+  Node* slot = assembler->Parameter(2);
+  Node* vector = assembler->Parameter(3);
+  Node* context = assembler->Parameter(4);
+
+  CodeStubAssembler::LoadICParameters p(context, receiver, name, slot, vector);
+  assembler->LoadIC(&p);
+}
+
+void LoadGlobalICTrampolineStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+
+  Node* slot = assembler->Parameter(0);
+  Node* context = assembler->Parameter(1);
+  Node* vector = assembler->LoadTypeFeedbackVectorForStub();
+
+  CodeStubAssembler::LoadICParameters p(context, nullptr, nullptr, slot,
+                                        vector);
+  assembler->LoadGlobalIC(&p);
+}
+
+void LoadGlobalICStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+
+  Node* slot = assembler->Parameter(0);
+  Node* vector = assembler->Parameter(1);
+  Node* context = assembler->Parameter(2);
+
+  CodeStubAssembler::LoadICParameters p(context, nullptr, nullptr, slot,
+                                        vector);
+  assembler->LoadGlobalIC(&p);
+}
+
 void AllocateHeapNumberStub::GenerateAssembly(
     CodeStubAssembler* assembler) const {
   typedef compiler::Node Node;
@@ -1827,15 +1842,16 @@
   return result_var.value();
 }
 
-void InstanceOfStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+// static
+compiler::Node* InstanceOfStub::Generate(CodeStubAssembler* assembler,
+                                         compiler::Node* object,
+                                         compiler::Node* callable,
+                                         compiler::Node* context) {
   typedef CodeStubAssembler::Label Label;
-  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Variable Variable;
 
-  Node* object = assembler->Parameter(0);
-  Node* callable = assembler->Parameter(1);
-  Node* context = assembler->Parameter(2);
-
-  Label return_runtime(assembler, Label::kDeferred);
+  Label return_runtime(assembler, Label::kDeferred), end(assembler);
+  Variable result(assembler, MachineRepresentation::kTagged);
 
   // Check if no one installed @@hasInstance somewhere.
   assembler->GotoUnless(
@@ -1857,11 +1873,19 @@
       &return_runtime);
 
   // Use the inline OrdinaryHasInstance directly.
-  assembler->Return(assembler->OrdinaryHasInstance(context, callable, object));
+  result.Bind(assembler->OrdinaryHasInstance(context, callable, object));
+  assembler->Goto(&end);
 
   // TODO(bmeurer): Use GetPropertyStub here once available.
   assembler->Bind(&return_runtime);
-  assembler->TailCallRuntime(Runtime::kInstanceOf, context, object, callable);
+  {
+    result.Bind(assembler->CallRuntime(Runtime::kInstanceOf, context, object,
+                                       callable));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
 namespace {
@@ -1873,15 +1897,15 @@
   kGreaterThanOrEqual
 };
 
-void GenerateAbstractRelationalComparison(CodeStubAssembler* assembler,
-                                          RelationalComparisonMode mode) {
+compiler::Node* GenerateAbstractRelationalComparison(
+    CodeStubAssembler* assembler, RelationalComparisonMode mode,
+    compiler::Node* lhs, compiler::Node* rhs, compiler::Node* context) {
   typedef CodeStubAssembler::Label Label;
   typedef compiler::Node Node;
   typedef CodeStubAssembler::Variable Variable;
 
-  Node* context = assembler->Parameter(2);
-
-  Label return_true(assembler), return_false(assembler);
+  Label return_true(assembler), return_false(assembler), end(assembler);
+  Variable result(assembler, MachineRepresentation::kTagged);
 
   // Shared entry for floating point comparison.
   Label do_fcmp(assembler);
@@ -1894,14 +1918,14 @@
       var_rhs(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(lhs);
+  var_rhs.Bind(rhs);
   assembler->Goto(&loop);
   assembler->Bind(&loop);
   {
     // Load the current {lhs} and {rhs} values.
-    Node* lhs = var_lhs.value();
-    Node* rhs = var_rhs.value();
+    lhs = var_lhs.value();
+    rhs = var_rhs.value();
 
     // Check if the {lhs} is a Smi or a HeapObject.
     Label if_lhsissmi(assembler), if_lhsisnotsmi(assembler);
@@ -2074,7 +2098,7 @@
             Node* rhs_instance_type = assembler->LoadMapInstanceType(rhs_map);
 
             // Check if {rhs} is also a String.
-            Label if_rhsisstring(assembler),
+            Label if_rhsisstring(assembler, Label::kDeferred),
                 if_rhsisnotstring(assembler, Label::kDeferred);
             assembler->Branch(assembler->Int32LessThan(
                                   rhs_instance_type, assembler->Int32Constant(
@@ -2086,24 +2110,29 @@
               // Both {lhs} and {rhs} are strings.
               switch (mode) {
                 case kLessThan:
-                  assembler->TailCallStub(
+                  result.Bind(assembler->CallStub(
                       CodeFactory::StringLessThan(assembler->isolate()),
-                      context, lhs, rhs);
+                      context, lhs, rhs));
+                  assembler->Goto(&end);
                   break;
                 case kLessThanOrEqual:
-                  assembler->TailCallStub(
+                  result.Bind(assembler->CallStub(
                       CodeFactory::StringLessThanOrEqual(assembler->isolate()),
-                      context, lhs, rhs);
+                      context, lhs, rhs));
+                  assembler->Goto(&end);
                   break;
                 case kGreaterThan:
-                  assembler->TailCallStub(
+                  result.Bind(assembler->CallStub(
                       CodeFactory::StringGreaterThan(assembler->isolate()),
-                      context, lhs, rhs);
+                      context, lhs, rhs));
+                  assembler->Goto(&end);
                   break;
                 case kGreaterThanOrEqual:
-                  assembler->TailCallStub(CodeFactory::StringGreaterThanOrEqual(
+                  result.Bind(
+                      assembler->CallStub(CodeFactory::StringGreaterThanOrEqual(
                                               assembler->isolate()),
-                                          context, lhs, rhs);
+                                          context, lhs, rhs));
+                  assembler->Goto(&end);
                   break;
               }
             }
@@ -2208,10 +2237,19 @@
   }
 
   assembler->Bind(&return_true);
-  assembler->Return(assembler->BooleanConstant(true));
+  {
+    result.Bind(assembler->BooleanConstant(true));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&return_false);
-  assembler->Return(assembler->BooleanConstant(false));
+  {
+    result.Bind(assembler->BooleanConstant(false));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
 enum ResultMode { kDontNegateResult, kNegateResult };
@@ -2340,7 +2378,9 @@
 }
 
 // ES6 section 7.2.12 Abstract Equality Comparison
-void GenerateEqual(CodeStubAssembler* assembler, ResultMode mode) {
+compiler::Node* GenerateEqual(CodeStubAssembler* assembler, ResultMode mode,
+                              compiler::Node* lhs, compiler::Node* rhs,
+                              compiler::Node* context) {
   // 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
@@ -2349,9 +2389,9 @@
   typedef compiler::Node Node;
   typedef CodeStubAssembler::Variable Variable;
 
-  Node* context = assembler->Parameter(2);
-
-  Label if_equal(assembler), if_notequal(assembler);
+  Label if_equal(assembler), if_notequal(assembler),
+      do_rhsstringtonumber(assembler, Label::kDeferred), end(assembler);
+  Variable result(assembler, MachineRepresentation::kTagged);
 
   // Shared entry for floating point comparison.
   Label do_fcmp(assembler);
@@ -2364,14 +2404,14 @@
       var_rhs(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(lhs);
+  var_rhs.Bind(rhs);
   assembler->Goto(&loop);
   assembler->Bind(&loop);
   {
     // Load the current {lhs} and {rhs} values.
-    Node* lhs = var_lhs.value();
-    Node* rhs = var_rhs.value();
+    lhs = var_lhs.value();
+    rhs = var_rhs.value();
 
     // Check if {lhs} and {rhs} refer to the same object.
     Label if_same(assembler), if_notsame(assembler);
@@ -2399,6 +2439,8 @@
                           &if_rhsisnotsmi);
 
         assembler->Bind(&if_rhsissmi);
+        // We have already checked for {lhs} and {rhs} being the same value, so
+        // if both are Smis when we get here they must not be equal.
         assembler->Goto(&if_notequal);
 
         assembler->Bind(&if_rhsisnotsmi);
@@ -2408,8 +2450,7 @@
 
           // Check if {rhs} is a HeapNumber.
           Node* number_map = assembler->HeapNumberMapConstant();
-          Label if_rhsisnumber(assembler),
-              if_rhsisnotnumber(assembler, Label::kDeferred);
+          Label if_rhsisnumber(assembler), if_rhsisnotnumber(assembler);
           assembler->Branch(assembler->WordEqual(rhs_map, number_map),
                             &if_rhsisnumber, &if_rhsisnotnumber);
 
@@ -2429,7 +2470,7 @@
 
             // Check if the {rhs} is a String.
             Label if_rhsisstring(assembler, Label::kDeferred),
-                if_rhsisnotstring(assembler, Label::kDeferred);
+                if_rhsisnotstring(assembler);
             assembler->Branch(assembler->Int32LessThan(
                                   rhs_instance_type, assembler->Int32Constant(
                                                          FIRST_NONSTRING_TYPE)),
@@ -2437,19 +2478,17 @@
 
             assembler->Bind(&if_rhsisstring);
             {
-              // Convert the {rhs} to a Number.
-              Callable callable =
-                  CodeFactory::StringToNumber(assembler->isolate());
-              var_rhs.Bind(assembler->CallStub(callable, context, rhs));
-              assembler->Goto(&loop);
+              // The {rhs} is a String and the {lhs} is a Smi; we need
+              // to convert the {rhs} to a Number and compare the output to
+              // the Number on the {lhs}.
+              assembler->Goto(&do_rhsstringtonumber);
             }
 
             assembler->Bind(&if_rhsisnotstring);
             {
               // Check if the {rhs} is a Boolean.
               Node* boolean_map = assembler->BooleanMapConstant();
-              Label if_rhsisboolean(assembler, Label::kDeferred),
-                  if_rhsisnotboolean(assembler, Label::kDeferred);
+              Label if_rhsisboolean(assembler), if_rhsisnotboolean(assembler);
               assembler->Branch(assembler->WordEqual(rhs_map, boolean_map),
                                 &if_rhsisboolean, &if_rhsisnotboolean);
 
@@ -2466,7 +2505,7 @@
                 // Check if the {rhs} is a Receiver.
                 STATIC_ASSERT(LAST_JS_RECEIVER_TYPE == LAST_TYPE);
                 Label if_rhsisreceiver(assembler, Label::kDeferred),
-                    if_rhsisnotreceiver(assembler, Label::kDeferred);
+                    if_rhsisnotreceiver(assembler);
                 assembler->Branch(
                     assembler->Int32LessThanOrEqual(
                         assembler->Int32Constant(FIRST_JS_RECEIVER_TYPE),
@@ -2550,8 +2589,8 @@
           assembler->Bind(&if_lhsisstring);
           {
             // Check if {rhs} is also a String.
-            Label if_rhsisstring(assembler),
-                if_rhsisnotstring(assembler, Label::kDeferred);
+            Label if_rhsisstring(assembler, Label::kDeferred),
+                if_rhsisnotstring(assembler);
             assembler->Branch(assembler->Int32LessThan(
                                   rhs_instance_type, assembler->Int32Constant(
                                                          FIRST_NONSTRING_TYPE)),
@@ -2565,7 +2604,8 @@
                   (mode == kDontNegateResult)
                       ? CodeFactory::StringEqual(assembler->isolate())
                       : CodeFactory::StringNotEqual(assembler->isolate());
-              assembler->TailCallStub(callable, context, lhs, rhs);
+              result.Bind(assembler->CallStub(callable, context, lhs, rhs));
+              assembler->Goto(&end);
             }
 
             assembler->Bind(&if_rhsisnotstring);
@@ -2583,8 +2623,7 @@
           assembler->Bind(&if_lhsisnumber);
           {
             // Check if {rhs} is also a HeapNumber.
-            Label if_rhsisnumber(assembler),
-                if_rhsisnotnumber(assembler, Label::kDeferred);
+            Label if_rhsisnumber(assembler), if_rhsisnotnumber(assembler);
             assembler->Branch(
                 assembler->Word32Equal(lhs_instance_type, rhs_instance_type),
                 &if_rhsisnumber, &if_rhsisnotnumber);
@@ -2614,16 +2653,13 @@
                 // The {rhs} is a String and the {lhs} is a HeapNumber; we need
                 // to convert the {rhs} to a Number and compare the output to
                 // the Number on the {lhs}.
-                Callable callable =
-                    CodeFactory::StringToNumber(assembler->isolate());
-                var_rhs.Bind(assembler->CallStub(callable, context, rhs));
-                assembler->Goto(&loop);
+                assembler->Goto(&do_rhsstringtonumber);
               }
 
               assembler->Bind(&if_rhsisnotstring);
               {
                 // Check if the {rhs} is a JSReceiver.
-                Label if_rhsisreceiver(assembler, Label::kDeferred),
+                Label if_rhsisreceiver(assembler),
                     if_rhsisnotreceiver(assembler);
                 STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
                 assembler->Branch(
@@ -2715,8 +2751,7 @@
           assembler->Bind(&if_lhsissymbol);
           {
             // Check if the {rhs} is a JSReceiver.
-            Label if_rhsisreceiver(assembler, Label::kDeferred),
-                if_rhsisnotreceiver(assembler);
+            Label if_rhsisreceiver(assembler), if_rhsisnotreceiver(assembler);
             STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
             assembler->Branch(
                 assembler->Int32LessThanOrEqual(
@@ -2763,8 +2798,7 @@
             assembler->Bind(&if_rhsisnotsimd128value);
             {
               // Check if the {rhs} is a JSReceiver.
-              Label if_rhsisreceiver(assembler, Label::kDeferred),
-                  if_rhsisnotreceiver(assembler);
+              Label if_rhsisreceiver(assembler), if_rhsisnotreceiver(assembler);
               STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
               assembler->Branch(
                   assembler->Int32LessThanOrEqual(
@@ -2849,6 +2883,13 @@
         }
       }
     }
+
+    assembler->Bind(&do_rhsstringtonumber);
+    {
+      Callable callable = CodeFactory::StringToNumber(assembler->isolate());
+      var_rhs.Bind(assembler->CallStub(callable, context, rhs));
+      assembler->Goto(&loop);
+    }
   }
 
   assembler->Bind(&do_fcmp);
@@ -2862,13 +2903,25 @@
   }
 
   assembler->Bind(&if_equal);
-  assembler->Return(assembler->BooleanConstant(mode == kDontNegateResult));
+  {
+    result.Bind(assembler->BooleanConstant(mode == kDontNegateResult));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&if_notequal);
-  assembler->Return(assembler->BooleanConstant(mode == kNegateResult));
+  {
+    result.Bind(assembler->BooleanConstant(mode == kNegateResult));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
-void GenerateStrictEqual(CodeStubAssembler* assembler, ResultMode mode) {
+compiler::Node* GenerateStrictEqual(CodeStubAssembler* assembler,
+                                    ResultMode mode, compiler::Node* lhs,
+                                    compiler::Node* rhs,
+                                    compiler::Node* context) {
   // Here's pseudo-code for the algorithm below in case of kDontNegateResult
   // mode; for kNegateResult mode we properly negate the result.
   //
@@ -2918,13 +2971,11 @@
   // }
 
   typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
   typedef compiler::Node Node;
 
-  Node* lhs = assembler->Parameter(0);
-  Node* rhs = assembler->Parameter(1);
-  Node* context = assembler->Parameter(2);
-
-  Label if_equal(assembler), if_notequal(assembler);
+  Label if_equal(assembler), if_notequal(assembler), end(assembler);
+  Variable result(assembler, MachineRepresentation::kTagged);
 
   // Check if {lhs} and {rhs} refer to the same object.
   Label if_same(assembler), if_notsame(assembler);
@@ -3029,7 +3080,8 @@
             Node* rhs_instance_type = assembler->LoadInstanceType(rhs);
 
             // Check if {rhs} is also a String.
-            Label if_rhsisstring(assembler), if_rhsisnotstring(assembler);
+            Label if_rhsisstring(assembler, Label::kDeferred),
+                if_rhsisnotstring(assembler);
             assembler->Branch(assembler->Int32LessThan(
                                   rhs_instance_type, assembler->Int32Constant(
                                                          FIRST_NONSTRING_TYPE)),
@@ -3041,7 +3093,8 @@
                   (mode == kDontNegateResult)
                       ? CodeFactory::StringEqual(assembler->isolate())
                       : CodeFactory::StringNotEqual(assembler->isolate());
-              assembler->TailCallStub(callable, context, lhs, rhs);
+              result.Bind(assembler->CallStub(callable, context, lhs, rhs));
+              assembler->Goto(&end);
             }
 
             assembler->Bind(&if_rhsisnotstring);
@@ -3118,10 +3171,19 @@
   }
 
   assembler->Bind(&if_equal);
-  assembler->Return(assembler->BooleanConstant(mode == kDontNegateResult));
+  {
+    result.Bind(assembler->BooleanConstant(mode == kDontNegateResult));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&if_notequal);
-  assembler->Return(assembler->BooleanConstant(mode == kNegateResult));
+  {
+    result.Bind(assembler->BooleanConstant(mode == kNegateResult));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
 void GenerateStringRelationalComparison(CodeStubAssembler* assembler,
@@ -3501,37 +3563,69 @@
                           holder, callback);
 }
 
-void LessThanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateAbstractRelationalComparison(assembler, kLessThan);
+// static
+compiler::Node* LessThanStub::Generate(CodeStubAssembler* assembler,
+                                       compiler::Node* lhs, compiler::Node* rhs,
+                                       compiler::Node* context) {
+  return GenerateAbstractRelationalComparison(assembler, kLessThan, lhs, rhs,
+                                              context);
 }
 
-void LessThanOrEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateAbstractRelationalComparison(assembler, kLessThanOrEqual);
+// static
+compiler::Node* LessThanOrEqualStub::Generate(CodeStubAssembler* assembler,
+                                              compiler::Node* lhs,
+                                              compiler::Node* rhs,
+                                              compiler::Node* context) {
+  return GenerateAbstractRelationalComparison(assembler, kLessThanOrEqual, lhs,
+                                              rhs, context);
 }
 
-void GreaterThanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateAbstractRelationalComparison(assembler, kGreaterThan);
+// static
+compiler::Node* GreaterThanStub::Generate(CodeStubAssembler* assembler,
+                                          compiler::Node* lhs,
+                                          compiler::Node* rhs,
+                                          compiler::Node* context) {
+  return GenerateAbstractRelationalComparison(assembler, kGreaterThan, lhs, rhs,
+                                              context);
 }
 
-void GreaterThanOrEqualStub::GenerateAssembly(
-    CodeStubAssembler* assembler) const {
-  GenerateAbstractRelationalComparison(assembler, kGreaterThanOrEqual);
+// static
+compiler::Node* GreaterThanOrEqualStub::Generate(CodeStubAssembler* assembler,
+                                                 compiler::Node* lhs,
+                                                 compiler::Node* rhs,
+                                                 compiler::Node* context) {
+  return GenerateAbstractRelationalComparison(assembler, kGreaterThanOrEqual,
+                                              lhs, rhs, context);
 }
 
-void EqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateEqual(assembler, kDontNegateResult);
+// static
+compiler::Node* EqualStub::Generate(CodeStubAssembler* assembler,
+                                    compiler::Node* lhs, compiler::Node* rhs,
+                                    compiler::Node* context) {
+  return GenerateEqual(assembler, kDontNegateResult, lhs, rhs, context);
 }
 
-void NotEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateEqual(assembler, kNegateResult);
+// static
+compiler::Node* NotEqualStub::Generate(CodeStubAssembler* assembler,
+                                       compiler::Node* lhs, compiler::Node* rhs,
+                                       compiler::Node* context) {
+  return GenerateEqual(assembler, kNegateResult, lhs, rhs, context);
 }
 
-void StrictEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateStrictEqual(assembler, kDontNegateResult);
+// static
+compiler::Node* StrictEqualStub::Generate(CodeStubAssembler* assembler,
+                                          compiler::Node* lhs,
+                                          compiler::Node* rhs,
+                                          compiler::Node* context) {
+  return GenerateStrictEqual(assembler, kDontNegateResult, lhs, rhs, context);
 }
 
-void StrictNotEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
-  GenerateStrictEqual(assembler, kNegateResult);
+// static
+compiler::Node* StrictNotEqualStub::Generate(CodeStubAssembler* assembler,
+                                             compiler::Node* lhs,
+                                             compiler::Node* rhs,
+                                             compiler::Node* context) {
+  return GenerateStrictEqual(assembler, kNegateResult, lhs, rhs, context);
 }
 
 void StringEqualStub::GenerateAssembly(CodeStubAssembler* assembler) const {
@@ -3637,13 +3731,17 @@
   }
 }
 
-void ToBooleanStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+// static
+compiler::Node* ToBooleanStub::Generate(CodeStubAssembler* assembler,
+                                        compiler::Node* value,
+                                        compiler::Node* context) {
   typedef compiler::Node Node;
   typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
 
-  Node* value = assembler->Parameter(0);
+  Variable result(assembler, MachineRepresentation::kTagged);
   Label if_valueissmi(assembler), if_valueisnotsmi(assembler),
-      return_true(assembler), return_false(assembler);
+      return_true(assembler), return_false(assembler), end(assembler);
 
   // Check if {value} is a Smi or a HeapObject.
   assembler->Branch(assembler->WordIsSmi(value), &if_valueissmi,
@@ -3721,7 +3819,8 @@
       // The {value} is an Oddball, and every Oddball knows its boolean value.
       Node* value_toboolean =
           assembler->LoadObjectField(value, Oddball::kToBooleanOffset);
-      assembler->Return(value_toboolean);
+      result.Bind(value_toboolean);
+      assembler->Goto(&end);
     }
 
     assembler->Bind(&if_valueisother);
@@ -3739,11 +3838,21 @@
                         &return_true, &return_false);
     }
   }
+
   assembler->Bind(&return_false);
-  assembler->Return(assembler->BooleanConstant(false));
+  {
+    result.Bind(assembler->BooleanConstant(false));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&return_true);
-  assembler->Return(assembler->BooleanConstant(true));
+  {
+    result.Bind(assembler->BooleanConstant(true));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
 void ToIntegerStub::GenerateAssembly(CodeStubAssembler* assembler) const {
@@ -4183,17 +4292,17 @@
   stub.GetCode();
 }
 
-void HasPropertyStub::GenerateAssembly(CodeStubAssembler* assembler) const {
+// static
+compiler::Node* HasPropertyStub::Generate(CodeStubAssembler* assembler,
+                                          compiler::Node* key,
+                                          compiler::Node* object,
+                                          compiler::Node* context) {
   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);
+  Label call_runtime(assembler, Label::kDeferred), return_true(assembler),
+      return_false(assembler), end(assembler);
 
   // Ensure object is JSReceiver, otherwise call runtime to throw error.
   Label if_objectisnotsmi(assembler);
@@ -4234,7 +4343,7 @@
     assembler->Bind(&loop);
     {
       Label next_proto(assembler);
-      assembler->TryLookupProperty(var_object.value(), var_map.value(),
+      assembler->TryHasOwnProperty(var_object.value(), var_map.value(),
                                    var_instance_type.value(), key, &return_true,
                                    &next_proto, &call_runtime);
       assembler->Bind(&next_proto);
@@ -4291,14 +4400,29 @@
       assembler->Goto(&loop);
     }
   }
+
+  Variable result(assembler, MachineRepresentation::kTagged);
   assembler->Bind(&return_true);
-  assembler->Return(assembler->BooleanConstant(true));
+  {
+    result.Bind(assembler->BooleanConstant(true));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&return_false);
-  assembler->Return(assembler->BooleanConstant(false));
+  {
+    result.Bind(assembler->BooleanConstant(false));
+    assembler->Goto(&end);
+  }
 
   assembler->Bind(&call_runtime);
-  assembler->TailCallRuntime(Runtime::kHasProperty, context, key, object);
+  {
+    result.Bind(
+        assembler->CallRuntime(Runtime::kHasProperty, context, key, object));
+    assembler->Goto(&end);
+  }
+
+  assembler->Bind(&end);
+  return result.value();
 }
 
 void CreateAllocationSiteStub::GenerateAheadOfTime(Isolate* isolate) {
@@ -4354,20 +4478,10 @@
 }
 
 
-std::ostream& ArrayConstructorStubBase::BasePrintName(
-    std::ostream& os,  // NOLINT
-    const char* name) const {
-  os << name << "_" << ElementsKindToString(elements_kind());
-  if (override_mode() == DISABLE_ALLOCATION_SITES) {
-    os << "_DISABLE_ALLOCATION_SITES";
-  }
-  return os;
-}
-
 bool ToBooleanICStub::UpdateStatus(Handle<Object> object) {
   Types new_types = types();
   Types old_types = new_types;
-  bool to_boolean_value = new_types.UpdateStatus(object);
+  bool to_boolean_value = new_types.UpdateStatus(isolate(), object);
   TraceTransition(old_types, new_types);
   set_sub_minor_key(TypesBits::update(sub_minor_key(), new_types.ToIntegral()));
   return to_boolean_value;
@@ -4393,14 +4507,15 @@
   return os << ")";
 }
 
-bool ToBooleanICStub::Types::UpdateStatus(Handle<Object> object) {
-  if (object->IsUndefined()) {
+bool ToBooleanICStub::Types::UpdateStatus(Isolate* isolate,
+                                          Handle<Object> object) {
+  if (object->IsUndefined(isolate)) {
     Add(UNDEFINED);
     return false;
   } else if (object->IsBoolean()) {
     Add(BOOLEAN);
-    return object->IsTrue();
-  } else if (object->IsNull()) {
+    return object->IsTrue(isolate);
+  } else if (object->IsNull(isolate)) {
     Add(NULL_TYPE);
     return false;
   } else if (object->IsSmi()) {
@@ -4494,10 +4609,95 @@
   assembler->Return(array);
 }
 
+namespace {
+
+void SingleArgumentConstructorCommon(CodeStubAssembler* assembler,
+                                     ElementsKind elements_kind,
+                                     compiler::Node* array_map,
+                                     compiler::Node* allocation_site,
+                                     AllocationSiteMode mode) {
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Label Label;
+
+  Label ok(assembler);
+  Label smi_size(assembler);
+  Label small_smi_size(assembler);
+  Label call_runtime(assembler, Label::kDeferred);
+
+  Node* size = assembler->Parameter(
+      ArraySingleArgumentConstructorDescriptor::kArraySizeSmiParameterIndex);
+  assembler->Branch(assembler->WordIsSmi(size), &smi_size, &call_runtime);
+
+  assembler->Bind(&smi_size);
+  int element_size =
+      IsFastDoubleElementsKind(elements_kind) ? kDoubleSize : kPointerSize;
+  int max_fast_elements =
+      (Page::kMaxRegularHeapObjectSize - FixedArray::kHeaderSize -
+       JSArray::kSize - AllocationMemento::kSize) /
+      element_size;
+  assembler->Branch(
+      assembler->SmiAboveOrEqual(
+          size, assembler->SmiConstant(Smi::FromInt(max_fast_elements))),
+      &call_runtime, &small_smi_size);
+
+  assembler->Bind(&small_smi_size);
+  {
+    Node* array = assembler->AllocateJSArray(
+        elements_kind, array_map, size, size,
+        mode == DONT_TRACK_ALLOCATION_SITE ? nullptr : allocation_site,
+        CodeStubAssembler::SMI_PARAMETERS);
+    assembler->Return(array);
+  }
+
+  assembler->Bind(&call_runtime);
+  {
+    Node* context = assembler->Parameter(
+        ArraySingleArgumentConstructorDescriptor::kContextIndex);
+    Node* function = assembler->Parameter(
+        ArraySingleArgumentConstructorDescriptor::kFunctionIndex);
+    Node* array_size = assembler->Parameter(
+        ArraySingleArgumentConstructorDescriptor::kArraySizeSmiParameterIndex);
+    Node* allocation_site = assembler->Parameter(
+        ArraySingleArgumentConstructorDescriptor::kAllocationSiteIndex);
+    assembler->TailCallRuntime(Runtime::kNewArray, context, function,
+                               array_size, function, allocation_site);
+  }
+}
+}  // namespace
+
+void ArraySingleArgumentConstructorStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  Node* function = assembler->Parameter(
+      ArraySingleArgumentConstructorDescriptor::kFunctionIndex);
+  Node* native_context =
+      assembler->LoadObjectField(function, JSFunction::kContextOffset);
+  Node* array_map =
+      assembler->LoadJSArrayElementsMap(elements_kind(), native_context);
+  AllocationSiteMode mode = override_mode() == DISABLE_ALLOCATION_SITES
+                                ? DONT_TRACK_ALLOCATION_SITE
+                                : AllocationSite::GetMode(elements_kind());
+  Node* allocation_site = assembler->Parameter(
+      ArrayNoArgumentConstructorDescriptor::kAllocationSiteIndex);
+  SingleArgumentConstructorCommon(assembler, elements_kind(), array_map,
+                                  allocation_site, mode);
+}
+
+void InternalArraySingleArgumentConstructorStub::GenerateAssembly(
+    CodeStubAssembler* assembler) const {
+  typedef compiler::Node Node;
+  Node* function = assembler->Parameter(
+      ArraySingleArgumentConstructorDescriptor::kFunctionIndex);
+  Node* array_map = assembler->LoadObjectField(
+      function, JSFunction::kPrototypeOrInitialMapOffset);
+  SingleArgumentConstructorCommon(assembler, elements_kind(), array_map,
+                                  assembler->UndefinedConstant(),
+                                  DONT_TRACK_ALLOCATION_SITE);
+}
+
 ArrayConstructorStub::ArrayConstructorStub(Isolate* isolate)
     : PlatformCodeStub(isolate) {
   minor_key_ = ArgumentCountBits::encode(ANY);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
 }
 
 
@@ -4513,15 +4713,10 @@
   } else {
     UNREACHABLE();
   }
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
 }
 
-
-InternalArrayConstructorStub::InternalArrayConstructorStub(
-    Isolate* isolate) : PlatformCodeStub(isolate) {
-  InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
-}
-
+InternalArrayConstructorStub::InternalArrayConstructorStub(Isolate* isolate)
+    : PlatformCodeStub(isolate) {}
 
 Representation RepresentationFromType(Type* type) {
   if (type->Is(Type::UntaggedIntegral())) {
diff --git a/src/code-stubs.h b/src/code-stubs.h
index 7bccaa9..85b0883 100644
--- a/src/code-stubs.h
+++ b/src/code-stubs.h
@@ -35,6 +35,7 @@
   V(JSEntry)                                \
   V(KeyedLoadICTrampoline)                  \
   V(LoadICTrampoline)                       \
+  V(LoadGlobalICTrampoline)                 \
   V(CallICTrampoline)                       \
   V(LoadIndexedString)                      \
   V(MathPow)                                \
@@ -45,9 +46,6 @@
   V(StoreElement)                           \
   V(StubFailureTrampoline)                  \
   V(SubString)                              \
-  V(ToNumber)                               \
-  V(NonNumberToNumber)                      \
-  V(StringToNumber)                         \
   V(ToString)                               \
   V(ToName)                                 \
   V(ToObject)                               \
@@ -56,8 +54,6 @@
   V(VectorStoreIC)                          \
   V(VectorKeyedStoreIC)                     \
   /* HydrogenCodeStubs */                   \
-  V(ArrayNArgumentsConstructor)             \
-  V(ArraySingleArgumentConstructor)         \
   V(BinaryOpIC)                             \
   V(BinaryOpWithAllocationSite)             \
   V(CreateAllocationSite)                   \
@@ -66,6 +62,7 @@
   V(FastArrayPush)                          \
   V(FastCloneRegExp)                        \
   V(FastCloneShallowArray)                  \
+  V(FastFunctionBind)                       \
   V(FastNewClosure)                         \
   V(FastNewContext)                         \
   V(FastNewObject)                          \
@@ -73,10 +70,7 @@
   V(FastNewSloppyArguments)                 \
   V(FastNewStrictArguments)                 \
   V(GrowArrayElements)                      \
-  V(InternalArrayNArgumentsConstructor)     \
-  V(InternalArraySingleArgumentConstructor) \
   V(KeyedLoadGeneric)                       \
-  V(LoadGlobalViaContext)                   \
   V(LoadScriptContextField)                 \
   V(LoadDictionaryElement)                  \
   V(NameDictionaryLookup)                   \
@@ -91,6 +85,7 @@
   V(TransitionElementsKind)                 \
   V(KeyedLoadIC)                            \
   V(LoadIC)                                 \
+  V(LoadGlobalIC)                           \
   /* TurboFanCodeStubs */                   \
   V(AllocateHeapNumber)                     \
   V(AllocateFloat32x4)                      \
@@ -104,6 +99,8 @@
   V(AllocateUint8x16)                       \
   V(AllocateBool8x16)                       \
   V(ArrayNoArgumentConstructor)             \
+  V(ArraySingleArgumentConstructor)         \
+  V(ArrayNArgumentsConstructor)             \
   V(StringLength)                           \
   V(Add)                                    \
   V(Subtract)                               \
@@ -118,6 +115,7 @@
   V(BitwiseXor)                             \
   V(Inc)                                    \
   V(InternalArrayNoArgumentConstructor)     \
+  V(InternalArraySingleArgumentConstructor) \
   V(Dec)                                    \
   V(FastCloneShallowObject)                 \
   V(InstanceOf)                             \
@@ -139,8 +137,9 @@
   V(ToInteger)                              \
   V(ToLength)                               \
   V(HasProperty)                            \
+  V(LoadICTrampolineTF)                     \
+  V(LoadICTF)                               \
   /* IC Handler stubs */                    \
-  V(ArrayBufferViewLoadField)               \
   V(KeyedLoadSloppyArguments)               \
   V(KeyedStoreSloppyArguments)              \
   V(LoadApiGetter)                          \
@@ -290,7 +289,6 @@
   // BinaryOpStub needs to override this.
   virtual Code::Kind GetCodeKind() const;
 
-  virtual InlineCacheState GetICState() const { return UNINITIALIZED; }
   virtual ExtraICState GetExtraICState() const { return kNoExtraICState; }
 
   Code::Flags GetCodeFlags() const;
@@ -436,6 +434,12 @@
     return NAME##Descriptor(isolate());                                 \
   }
 
+#define DEFINE_ON_STACK_CALL_INTERFACE_DESCRIPTOR(PARAMETER_COUNT)         \
+ public:                                                                   \
+  CallInterfaceDescriptor GetCallInterfaceDescriptor() const override {    \
+    return OnStackArgsDescriptorBase::ForArgs(isolate(), PARAMETER_COUNT); \
+  }
+
 // There are some code stubs we just can't describe right now with a
 // CallInterfaceDescriptor. Isolate behavior for those cases with this macro.
 // An attempt to retrieve a descriptor will fail.
@@ -692,7 +696,6 @@
   explicit StringLengthStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::HANDLER; }
-  InlineCacheState GetICState() const override { return MONOMORPHIC; }
   ExtraICState GetExtraICState() const override { return Code::LOAD_IC; }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
@@ -810,7 +813,7 @@
 
  private:
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(InstanceOf, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(InstanceOf, TurboFanCodeStub);
 };
 
 class LessThanStub final : public TurboFanCodeStub {
@@ -818,7 +821,7 @@
   explicit LessThanStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(LessThan, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(LessThan, TurboFanCodeStub);
 };
 
 class LessThanOrEqualStub final : public TurboFanCodeStub {
@@ -826,7 +829,7 @@
   explicit LessThanOrEqualStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(LessThanOrEqual, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(LessThanOrEqual, TurboFanCodeStub);
 };
 
 class GreaterThanStub final : public TurboFanCodeStub {
@@ -834,7 +837,7 @@
   explicit GreaterThanStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(GreaterThan, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(GreaterThan, TurboFanCodeStub);
 };
 
 class GreaterThanOrEqualStub final : public TurboFanCodeStub {
@@ -843,7 +846,7 @@
       : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(GreaterThanOrEqual, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(GreaterThanOrEqual, TurboFanCodeStub);
 };
 
 class EqualStub final : public TurboFanCodeStub {
@@ -851,7 +854,7 @@
   explicit EqualStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(Equal, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(Equal, TurboFanCodeStub);
 };
 
 class NotEqualStub final : public TurboFanCodeStub {
@@ -859,7 +862,7 @@
   explicit NotEqualStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(NotEqual, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(NotEqual, TurboFanCodeStub);
 };
 
 class StrictEqualStub final : public TurboFanCodeStub {
@@ -867,7 +870,7 @@
   explicit StrictEqualStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(StrictEqual, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(StrictEqual, TurboFanCodeStub);
 };
 
 class StrictNotEqualStub final : public TurboFanCodeStub {
@@ -875,7 +878,7 @@
   explicit StrictNotEqualStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare);
-  DEFINE_TURBOFAN_CODE_STUB(StrictNotEqual, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(StrictNotEqual, TurboFanCodeStub);
 };
 
 class StringEqualStub final : public TurboFanCodeStub {
@@ -934,7 +937,7 @@
   explicit ToBooleanStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(TypeConversion);
-  DEFINE_TURBOFAN_CODE_STUB(ToBoolean, TurboFanCodeStub);
+  DEFINE_TURBOFAN_UNARY_OP_CODE_STUB(ToBoolean, TurboFanCodeStub);
 };
 
 class ToIntegerStub final : public TurboFanCodeStub {
@@ -961,7 +964,6 @@
 
   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);
@@ -974,7 +976,6 @@
 
   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);
@@ -986,7 +987,7 @@
   explicit HasPropertyStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(HasProperty);
-  DEFINE_TURBOFAN_CODE_STUB(HasProperty, TurboFanCodeStub);
+  DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(HasProperty, TurboFanCodeStub);
 };
 
 enum StringAddFlags {
@@ -1266,10 +1267,18 @@
   explicit FastArrayPushStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
 
  private:
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(FastArrayPush);
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction);
   DEFINE_HYDROGEN_CODE_STUB(FastArrayPush, HydrogenCodeStub);
 };
 
+class FastFunctionBindStub : public HydrogenCodeStub {
+ public:
+  explicit FastFunctionBindStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
+
+ private:
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(VarArgFunction);
+  DEFINE_HYDROGEN_CODE_STUB(FastFunctionBind, HydrogenCodeStub);
+};
 
 enum AllocationSiteOverrideMode {
   DONT_OVERRIDE,
@@ -1298,7 +1307,7 @@
 
   class ArgumentCountBits : public BitField<ArgumentCountKey, 0, 2> {};
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayConstructor);
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNArgumentsConstructor);
   DEFINE_PLATFORM_CODE_STUB(ArrayConstructor, PlatformCodeStub);
 };
 
@@ -1310,7 +1319,7 @@
  private:
   void GenerateCase(MacroAssembler* masm, ElementsKind kind);
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(InternalArrayConstructor);
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayNArgumentsConstructor);
   DEFINE_PLATFORM_CODE_STUB(InternalArrayConstructor, PlatformCodeStub);
 };
 
@@ -1325,13 +1334,17 @@
   }
 
   CallInterfaceDescriptor GetCallInterfaceDescriptor() const override {
-    if (exponent_type() == TAGGED) {
+    if (exponent_type() == ON_STACK) {
+      return OnStackArgsDescriptorBase::ForArgs(isolate(), 2);
+    } else if (exponent_type() == TAGGED) {
       return MathPowTaggedDescriptor(isolate());
     } else if (exponent_type() == INTEGER) {
       return MathPowIntegerDescriptor(isolate());
+    } else {
+      // A CallInterfaceDescriptor doesn't specify double registers (yet).
+      DCHECK_EQ(DOUBLE, exponent_type());
+      return ContextOnlyDescriptor(isolate());
     }
-    // A CallInterfaceDescriptor doesn't specify double registers (yet).
-    return ContextOnlyDescriptor(isolate());
   }
 
  private:
@@ -1354,8 +1367,6 @@
 
   Code::Kind GetCodeKind() const override { return Code::CALL_IC; }
 
-  InlineCacheState GetICState() const override { return GENERIC; }
-
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -1365,9 +1376,7 @@
   ConvertReceiverMode convert_mode() const { return state().convert_mode(); }
   TailCallMode tail_call_mode() const { return state().tail_call_mode(); }
 
-  CallICState state() const {
-    return CallICState(static_cast<ExtraICState>(minor_key_));
-  }
+  CallICState state() const { return CallICState(GetExtraICState()); }
 
   // Code generation helpers.
   void GenerateMiss(MacroAssembler* masm);
@@ -1416,7 +1425,6 @@
  public:
   Code::Kind GetCodeKind() const override { return Code::HANDLER; }
   ExtraICState GetExtraICState() const override { return kind(); }
-  InlineCacheState GetICState() const override { return MONOMORPHIC; }
 
   void InitializeDescriptor(CodeStubDescriptor* descriptor) override;
 
@@ -1453,31 +1461,6 @@
 };
 
 
-class ArrayBufferViewLoadFieldStub : public HandlerStub {
- public:
-  ArrayBufferViewLoadFieldStub(Isolate* isolate, FieldIndex index)
-      : HandlerStub(isolate) {
-    int property_index_key = index.GetFieldAccessStubKey();
-    set_sub_minor_key(
-        ArrayBufferViewLoadFieldByIndexBits::encode(property_index_key));
-  }
-
-  FieldIndex index() const {
-    int property_index_key =
-        ArrayBufferViewLoadFieldByIndexBits::decode(sub_minor_key());
-    return FieldIndex::FromFieldAccessStubKey(property_index_key);
-  }
-
- protected:
-  Code::Kind kind() const override { return Code::LOAD_IC; }
-
- private:
-  class ArrayBufferViewLoadFieldByIndexBits : public BitField<int, 0, 13> {};
-
-  DEFINE_HANDLER_CODE_STUB(ArrayBufferViewLoadField, HandlerStub);
-};
-
-
 class KeyedLoadSloppyArgumentsStub : public HandlerStub {
  public:
   explicit KeyedLoadSloppyArgumentsStub(Isolate* isolate)
@@ -1542,7 +1525,6 @@
 
   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 {
@@ -1764,26 +1746,6 @@
 };
 
 
-class LoadGlobalViaContextStub final : public PlatformCodeStub {
- public:
-  static const int kMaximumDepth = 15;
-
-  LoadGlobalViaContextStub(Isolate* isolate, int depth)
-      : PlatformCodeStub(isolate) {
-    minor_key_ = DepthBits::encode(depth);
-  }
-
-  int depth() const { return DepthBits::decode(minor_key_); }
-
- private:
-  class DepthBits : public BitField<int, 0, 4> {};
-  STATIC_ASSERT(DepthBits::kMax == kMaximumDepth);
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadGlobalViaContext);
-  DEFINE_PLATFORM_CODE_STUB(LoadGlobalViaContext, PlatformCodeStub);
-};
-
-
 class StoreGlobalViaContextStub final : public PlatformCodeStub {
  public:
   static const int kMaximumDepth = 15;
@@ -1882,8 +1844,6 @@
 
   Code::Kind GetCodeKind() const override { return Code::BINARY_OP_IC; }
 
-  InlineCacheState GetICState() const final { return state().GetICState(); }
-
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(sub_minor_key());
   }
@@ -1927,8 +1887,6 @@
 
   Code::Kind GetCodeKind() const override { return Code::BINARY_OP_IC; }
 
-  InlineCacheState GetICState() const override { return state().GetICState(); }
-
   ExtraICState GetExtraICState() const override {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -1937,7 +1895,7 @@
 
  private:
   BinaryOpICState state() const {
-    return BinaryOpICState(isolate(), static_cast<ExtraICState>(minor_key_));
+    return BinaryOpICState(isolate(), GetExtraICState());
   }
 
   static void GenerateAheadOfTime(Isolate* isolate,
@@ -2006,14 +1964,19 @@
                 CompareICState::State right, CompareICState::State state)
       : PlatformCodeStub(isolate) {
     DCHECK(Token::IsCompareOp(op));
+    DCHECK(OpBits::is_valid(op - Token::EQ));
     minor_key_ = OpBits::encode(op - Token::EQ) |
                  LeftStateBits::encode(left) | RightStateBits::encode(right) |
                  StateBits::encode(state);
   }
+  CompareICStub(Isolate* isolate, ExtraICState extra_ic_state)
+      : PlatformCodeStub(isolate) {
+    minor_key_ = extra_ic_state;
+  }
 
   void set_known_map(Handle<Map> map) { known_map_ = map; }
 
-  InlineCacheState GetICState() const override;
+  InlineCacheState GetICState() const;
 
   Token::Value op() const {
     return static_cast<Token::Value>(Token::EQ + OpBits::decode(minor_key_));
@@ -2044,8 +2007,9 @@
   bool strict() const { return op() == Token::EQ_STRICT; }
   Condition GetCondition() const;
 
-  void AddToSpecialCache(Handle<Code> new_object) override;
-  bool FindCodeInSpecialCache(Code** code_out) override;
+  // Although we don't cache anything in the special cache we have to define
+  // this predicate to avoid appearance of code stubs with embedded maps in
+  // the global stub cache.
   bool UseSpecialCache() override {
     return state() == CompareICState::KNOWN_RECEIVER;
   }
@@ -2129,7 +2093,7 @@
  public:
   explicit RegExpExecStub(Isolate* isolate) : PlatformCodeStub(isolate) { }
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly);
+  DEFINE_ON_STACK_CALL_INTERFACE_DESCRIPTOR(4);
   DEFINE_PLATFORM_CODE_STUB(RegExpExec, PlatformCodeStub);
 };
 
@@ -2159,17 +2123,6 @@
 };
 
 
-enum StringIndexFlags {
-  // Accepts smis or heap numbers.
-  STRING_INDEX_IS_NUMBER,
-
-  // Accepts smis or heap numbers that are valid array indices
-  // (ECMA-262 15.4). Invalid indices are reported as being out of
-  // range.
-  STRING_INDEX_IS_ARRAY_INDEX
-};
-
-
 enum ReceiverCheckMode {
   // We don't know anything about the receiver.
   RECEIVER_IS_UNKNOWN,
@@ -2203,7 +2156,6 @@
   StringCharCodeAtGenerator(Register object, Register index, Register result,
                             Label* receiver_not_string, Label* index_not_number,
                             Label* index_out_of_range,
-                            StringIndexFlags index_flags,
                             ReceiverCheckMode check_mode = RECEIVER_IS_UNKNOWN)
       : object_(object),
         index_(index),
@@ -2211,7 +2163,6 @@
         receiver_not_string_(receiver_not_string),
         index_not_number_(index_not_number),
         index_out_of_range_(index_out_of_range),
-        index_flags_(index_flags),
         check_mode_(check_mode) {
     DCHECK(!result_.is(object_));
     DCHECK(!result_.is(index_));
@@ -2243,7 +2194,6 @@
   Label* index_not_number_;
   Label* index_out_of_range_;
 
-  StringIndexFlags index_flags_;
   ReceiverCheckMode check_mode_;
 
   Label call_runtime_;
@@ -2307,11 +2257,10 @@
   StringCharAtGenerator(Register object, Register index, Register scratch,
                         Register result, Label* receiver_not_string,
                         Label* index_not_number, Label* index_out_of_range,
-                        StringIndexFlags index_flags,
                         ReceiverCheckMode check_mode = RECEIVER_IS_UNKNOWN)
       : char_code_at_generator_(object, index, scratch, receiver_not_string,
                                 index_not_number, index_out_of_range,
-                                index_flags, check_mode),
+                                check_mode),
         char_from_code_generator_(scratch, result) {}
 
   // Generates the fast case code. On the fallthrough path |result|
@@ -2346,64 +2295,72 @@
 
 class LoadDictionaryElementStub : public HydrogenCodeStub {
  public:
-  explicit LoadDictionaryElementStub(Isolate* isolate, const LoadICState& state)
-      : HydrogenCodeStub(isolate) {
-    minor_key_ = state.GetExtraICState();
-  }
+  explicit LoadDictionaryElementStub(Isolate* isolate)
+      : HydrogenCodeStub(isolate) {}
 
-  CallInterfaceDescriptor GetCallInterfaceDescriptor() const override {
-    return LoadWithVectorDescriptor(isolate());
-  }
-
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
   DEFINE_HYDROGEN_CODE_STUB(LoadDictionaryElement, HydrogenCodeStub);
 };
 
 
 class KeyedLoadGenericStub : public HydrogenCodeStub {
  public:
-  explicit KeyedLoadGenericStub(Isolate* isolate, const LoadICState& state)
-      : HydrogenCodeStub(isolate) {
-    minor_key_ = state.GetExtraICState();
-  }
+  explicit KeyedLoadGenericStub(Isolate* isolate) : HydrogenCodeStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::KEYED_LOAD_IC; }
-  InlineCacheState GetICState() const override { return GENERIC; }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
-
   DEFINE_HYDROGEN_CODE_STUB(KeyedLoadGeneric, HydrogenCodeStub);
 };
 
 
 class LoadICTrampolineStub : public PlatformCodeStub {
  public:
-  LoadICTrampolineStub(Isolate* isolate, const LoadICState& state)
-      : PlatformCodeStub(isolate) {
-    minor_key_ = state.GetExtraICState();
-  }
+  explicit LoadICTrampolineStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
 
-  InlineCacheState GetICState() const final { return GENERIC; }
-
-  ExtraICState GetExtraICState() const final {
-    return static_cast<ExtraICState>(minor_key_);
-  }
-
- protected:
-  LoadICState state() const {
-    return LoadICState(static_cast<ExtraICState>(minor_key_));
-  }
-
   DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
   DEFINE_PLATFORM_CODE_STUB(LoadICTrampoline, PlatformCodeStub);
 };
 
+class LoadICTrampolineTFStub : public TurboFanCodeStub {
+ public:
+  explicit LoadICTrampolineTFStub(Isolate* isolate)
+      : TurboFanCodeStub(isolate) {}
+
+  void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+  Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(Load);
+  DEFINE_CODE_STUB(LoadICTrampolineTF, TurboFanCodeStub);
+};
+
+class LoadGlobalICTrampolineStub : public TurboFanCodeStub {
+ public:
+  explicit LoadGlobalICTrampolineStub(Isolate* isolate,
+                                      const LoadGlobalICState& state)
+      : TurboFanCodeStub(isolate) {
+    minor_key_ = state.GetExtraICState();
+  }
+
+  void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+  Code::Kind GetCodeKind() const override { return Code::LOAD_GLOBAL_IC; }
+
+  ExtraICState GetExtraICState() const final {
+    return static_cast<ExtraICState>(minor_key_);
+  }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadGlobal);
+  DEFINE_CODE_STUB(LoadGlobalICTrampoline, TurboFanCodeStub);
+};
 
 class KeyedLoadICTrampolineStub : public LoadICTrampolineStub {
  public:
-  explicit KeyedLoadICTrampolineStub(Isolate* isolate, const LoadICState& state)
-      : LoadICTrampolineStub(isolate, state) {}
+  explicit KeyedLoadICTrampolineStub(Isolate* isolate)
+      : LoadICTrampolineStub(isolate) {}
 
   Code::Kind GetCodeKind() const override { return Code::KEYED_LOAD_IC; }
 
@@ -2420,8 +2377,6 @@
 
   Code::Kind GetCodeKind() const override { return Code::STORE_IC; }
 
-  InlineCacheState GetICState() const final { return GENERIC; }
-
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -2458,8 +2413,6 @@
 
   Code::Kind GetCodeKind() const override { return Code::CALL_IC; }
 
-  InlineCacheState GetICState() const final { return GENERIC; }
-
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -2476,18 +2429,11 @@
 
 class LoadICStub : public PlatformCodeStub {
  public:
-  explicit LoadICStub(Isolate* isolate, const LoadICState& state)
-      : PlatformCodeStub(isolate) {
-    minor_key_ = state.GetExtraICState();
-  }
+  explicit LoadICStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
 
   void GenerateForTrampoline(MacroAssembler* masm);
 
   Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
-  InlineCacheState GetICState() const final { return GENERIC; }
-  ExtraICState GetExtraICState() const final {
-    return static_cast<ExtraICState>(minor_key_);
-  }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
   DEFINE_PLATFORM_CODE_STUB(LoadIC, PlatformCodeStub);
@@ -2496,21 +2442,44 @@
   void GenerateImpl(MacroAssembler* masm, bool in_frame);
 };
 
+class LoadICTFStub : public TurboFanCodeStub {
+ public:
+  explicit LoadICTFStub(Isolate* isolate) : TurboFanCodeStub(isolate) {}
+
+  void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+  Code::Kind GetCodeKind() const override { return Code::LOAD_IC; }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
+  DEFINE_CODE_STUB(LoadICTF, TurboFanCodeStub);
+};
+
+class LoadGlobalICStub : public TurboFanCodeStub {
+ public:
+  explicit LoadGlobalICStub(Isolate* isolate, const LoadGlobalICState& state)
+      : TurboFanCodeStub(isolate) {
+    minor_key_ = state.GetExtraICState();
+  }
+
+  void GenerateAssembly(CodeStubAssembler* assembler) const override;
+
+  Code::Kind GetCodeKind() const override { return Code::LOAD_GLOBAL_IC; }
+
+  ExtraICState GetExtraICState() const final {
+    return static_cast<ExtraICState>(minor_key_);
+  }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadGlobalWithVector);
+  DEFINE_CODE_STUB(LoadGlobalIC, TurboFanCodeStub);
+};
 
 class KeyedLoadICStub : public PlatformCodeStub {
  public:
-  explicit KeyedLoadICStub(Isolate* isolate, const LoadICState& state)
-      : PlatformCodeStub(isolate) {
-    minor_key_ = state.GetExtraICState();
-  }
+  explicit KeyedLoadICStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
 
   void GenerateForTrampoline(MacroAssembler* masm);
 
   Code::Kind GetCodeKind() const override { return Code::KEYED_LOAD_IC; }
-  InlineCacheState GetICState() const final { return GENERIC; }
-  ExtraICState GetExtraICState() const final {
-    return static_cast<ExtraICState>(minor_key_);
-  }
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(LoadWithVector);
   DEFINE_PLATFORM_CODE_STUB(KeyedLoadIC, PlatformCodeStub);
@@ -2530,7 +2499,7 @@
   void GenerateForTrampoline(MacroAssembler* masm);
 
   Code::Kind GetCodeKind() const final { return Code::STORE_IC; }
-  InlineCacheState GetICState() const final { return GENERIC; }
+
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -2553,7 +2522,7 @@
   void GenerateForTrampoline(MacroAssembler* masm);
 
   Code::Kind GetCodeKind() const final { return Code::KEYED_STORE_IC; }
-  InlineCacheState GetICState() const final { return GENERIC; }
+
   ExtraICState GetExtraICState() const final {
     return static_cast<ExtraICState>(minor_key_);
   }
@@ -2742,13 +2711,11 @@
 
 class TransitionElementsKindStub : public HydrogenCodeStub {
  public:
-  TransitionElementsKindStub(Isolate* isolate,
-                             ElementsKind from_kind,
-                             ElementsKind to_kind,
-                             bool is_js_array) : HydrogenCodeStub(isolate) {
+  TransitionElementsKindStub(Isolate* isolate, ElementsKind from_kind,
+                             ElementsKind to_kind)
+      : HydrogenCodeStub(isolate) {
     set_sub_minor_key(FromKindBits::encode(from_kind) |
-                      ToKindBits::encode(to_kind) |
-                      IsJSArrayBits::encode(is_js_array));
+                      ToKindBits::encode(to_kind));
   }
 
   ElementsKind from_kind() const {
@@ -2757,12 +2724,9 @@
 
   ElementsKind to_kind() const { return ToKindBits::decode(sub_minor_key()); }
 
-  bool is_js_array() const { return IsJSArrayBits::decode(sub_minor_key()); }
-
  private:
   class FromKindBits: public BitField<ElementsKind, 8, 8> {};
   class ToKindBits: public BitField<ElementsKind, 0, 8> {};
-  class IsJSArrayBits: public BitField<bool, 16, 1> {};
 
   DEFINE_CALL_INTERFACE_DESCRIPTOR(TransitionElementsKind);
   DEFINE_HYDROGEN_CODE_STUB(TransitionElementsKind, HydrogenCodeStub);
@@ -2795,50 +2759,6 @@
 SIMD128_TYPES(SIMD128_ALLOC_STUB)
 #undef SIMD128_ALLOC_STUB
 
-class ArrayConstructorStubBase : public HydrogenCodeStub {
- public:
-  ArrayConstructorStubBase(Isolate* isolate,
-                           ElementsKind kind,
-                           AllocationSiteOverrideMode override_mode)
-      : HydrogenCodeStub(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));
-  }
-
-  ElementsKind elements_kind() const {
-    return ElementsKindBits::decode(sub_minor_key());
-  }
-
-  AllocationSiteOverrideMode override_mode() const {
-    return AllocationSiteOverrideModeBits::decode(sub_minor_key());
-  }
-
-  static void GenerateStubsAheadOfTime(Isolate* isolate);
-
-  // Parameters accessed via CodeStubGraphBuilder::GetParameter()
-  static const int kConstructor = 0;
-  static const int kAllocationSite = 1;
-
- protected:
-  std::ostream& BasePrintName(std::ostream& os,
-                              const char* name) const;  // NOLINT
-
- private:
-  // Ensure data fits within available bits.
-  STATIC_ASSERT(LAST_ALLOCATION_SITE_OVERRIDE_MODE == 1);
-
-  class ElementsKindBits: public BitField<ElementsKind, 0, 8> {};
-  class AllocationSiteOverrideModeBits: public
-      BitField<AllocationSiteOverrideMode, 8, 1> {};  // NOLINT
-
-  DEFINE_CODE_STUB_BASE(ArrayConstructorStubBase, HydrogenCodeStub);
-};
-
 class CommonArrayConstructorStub : public TurboFanCodeStub {
  protected:
   CommonArrayConstructorStub(Isolate* isolate, ElementsKind kind,
@@ -2869,6 +2789,8 @@
     return AllocationSiteOverrideModeBits::decode(sub_minor_key());
   }
 
+  static void GenerateStubsAheadOfTime(Isolate* isolate);
+
  private:
   // Ensure data fits within available bits.
   STATIC_ASSERT(LAST_ALLOCATION_SITE_OVERRIDE_MODE == 1);
@@ -2911,94 +2833,53 @@
                             CommonArrayConstructorStub);
 };
 
-class ArraySingleArgumentConstructorStub : public ArrayConstructorStubBase {
+class ArraySingleArgumentConstructorStub : public CommonArrayConstructorStub {
  public:
   ArraySingleArgumentConstructorStub(
-      Isolate* isolate,
-      ElementsKind kind,
+      Isolate* isolate, ElementsKind kind,
       AllocationSiteOverrideMode override_mode = DONT_OVERRIDE)
-      : ArrayConstructorStubBase(isolate, kind, override_mode) {
-  }
+      : CommonArrayConstructorStub(isolate, kind, override_mode) {}
 
  private:
   void PrintName(std::ostream& os) const override {  // NOLINT
-    BasePrintName(os, "ArraySingleArgumentConstructorStub");
+    os << "ArraySingleArgumentConstructorStub";
   }
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayConstructor);
-  DEFINE_HYDROGEN_CODE_STUB(ArraySingleArgumentConstructor,
-                            ArrayConstructorStubBase);
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArraySingleArgumentConstructor);
+  DEFINE_TURBOFAN_CODE_STUB(ArraySingleArgumentConstructor,
+                            CommonArrayConstructorStub);
 };
 
-
-class ArrayNArgumentsConstructorStub : public ArrayConstructorStubBase {
- public:
-  ArrayNArgumentsConstructorStub(
-      Isolate* isolate,
-      ElementsKind kind,
-      AllocationSiteOverrideMode override_mode = DONT_OVERRIDE)
-      : ArrayConstructorStubBase(isolate, kind, override_mode) {
-  }
-
- private:
-  void PrintName(std::ostream& os) const override {  // NOLINT
-    BasePrintName(os, "ArrayNArgumentsConstructorStub");
-  }
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArrayConstructor);
-  DEFINE_HYDROGEN_CODE_STUB(ArrayNArgumentsConstructor,
-                            ArrayConstructorStubBase);
-};
-
-
-class InternalArrayConstructorStubBase : public HydrogenCodeStub {
- public:
-  InternalArrayConstructorStubBase(Isolate* isolate, ElementsKind kind)
-      : HydrogenCodeStub(isolate) {
-    set_sub_minor_key(ElementsKindBits::encode(kind));
-  }
-
-  static void GenerateStubsAheadOfTime(Isolate* isolate);
-
-  // Parameters accessed via CodeStubGraphBuilder::GetParameter()
-  static const int kConstructor = 0;
-
-  ElementsKind elements_kind() const {
-    return ElementsKindBits::decode(sub_minor_key());
-  }
-
- private:
-  class ElementsKindBits : public BitField<ElementsKind, 0, 8> {};
-
-  DEFINE_CODE_STUB_BASE(InternalArrayConstructorStubBase, HydrogenCodeStub);
-};
-
-
-class InternalArraySingleArgumentConstructorStub : public
-    InternalArrayConstructorStubBase {
+class InternalArraySingleArgumentConstructorStub
+    : public CommonArrayConstructorStub {
  public:
   InternalArraySingleArgumentConstructorStub(Isolate* isolate,
                                              ElementsKind kind)
-      : InternalArrayConstructorStubBase(isolate, kind) { }
+      : CommonArrayConstructorStub(isolate, kind, DONT_OVERRIDE) {}
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(InternalArrayConstructor);
-  DEFINE_HYDROGEN_CODE_STUB(InternalArraySingleArgumentConstructor,
-                            InternalArrayConstructorStubBase);
+ private:
+  void PrintName(std::ostream& os) const override {  // NOLINT
+    os << "InternalArraySingleArgumentConstructorStub";
+  }
+
+  DEFINE_CALL_INTERFACE_DESCRIPTOR(ArraySingleArgumentConstructor);
+  DEFINE_TURBOFAN_CODE_STUB(InternalArraySingleArgumentConstructor,
+                            CommonArrayConstructorStub);
 };
 
-
-class InternalArrayNArgumentsConstructorStub : public
-    InternalArrayConstructorStubBase {
+class ArrayNArgumentsConstructorStub : public PlatformCodeStub {
  public:
-  InternalArrayNArgumentsConstructorStub(Isolate* isolate, ElementsKind kind)
-      : InternalArrayConstructorStubBase(isolate, kind) { }
+  explicit ArrayNArgumentsConstructorStub(Isolate* isolate)
+      : PlatformCodeStub(isolate) {}
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(InternalArrayConstructor);
-  DEFINE_HYDROGEN_CODE_STUB(InternalArrayNArgumentsConstructor,
-                            InternalArrayConstructorStubBase);
+  CallInterfaceDescriptor GetCallInterfaceDescriptor() const override {
+    return ArrayNArgumentsConstructorDescriptor(isolate());
+  }
+
+ private:
+  DEFINE_PLATFORM_CODE_STUB(ArrayNArgumentsConstructor, PlatformCodeStub);
 };
 
-
 class StoreElementStub : public PlatformCodeStub {
  public:
   StoreElementStub(Isolate* isolate, ElementsKind elements_kind,
@@ -3051,7 +2932,7 @@
     Types() : EnumSet<Type, uint16_t>(0) {}
     explicit Types(uint16_t bits) : EnumSet<Type, uint16_t>(bits) {}
 
-    bool UpdateStatus(Handle<Object> object);
+    bool UpdateStatus(Isolate* isolate, Handle<Object> object);
     bool NeedsMap() const;
     bool CanBeUndetectable() const {
       return Contains(ToBooleanICStub::SPEC_OBJECT);
@@ -3080,7 +2961,7 @@
 
   ExtraICState GetExtraICState() const override { return types().ToIntegral(); }
 
-  InlineCacheState GetICState() const override {
+  InlineCacheState GetICState() const {
     if (types().IsEmpty()) {
       return ::v8::internal::UNINITIALIZED;
     } else {
@@ -3197,37 +3078,10 @@
  public:
   explicit SubStringStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
 
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly);
+  DEFINE_ON_STACK_CALL_INTERFACE_DESCRIPTOR(3);
   DEFINE_PLATFORM_CODE_STUB(SubString, PlatformCodeStub);
 };
 
-
-class ToNumberStub final : public PlatformCodeStub {
- public:
-  explicit ToNumberStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(TypeConversion);
-  DEFINE_PLATFORM_CODE_STUB(ToNumber, PlatformCodeStub);
-};
-
-class NonNumberToNumberStub final : public PlatformCodeStub {
- public:
-  explicit NonNumberToNumberStub(Isolate* isolate)
-      : PlatformCodeStub(isolate) {}
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(TypeConversion);
-  DEFINE_PLATFORM_CODE_STUB(NonNumberToNumber, PlatformCodeStub);
-};
-
-class StringToNumberStub final : public PlatformCodeStub {
- public:
-  explicit StringToNumberStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
-
-  DEFINE_CALL_INTERFACE_DESCRIPTOR(TypeConversion);
-  DEFINE_PLATFORM_CODE_STUB(StringToNumber, PlatformCodeStub);
-};
-
-
 class ToStringStub final : public PlatformCodeStub {
  public:
   explicit ToStringStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
@@ -3236,7 +3090,6 @@
   DEFINE_PLATFORM_CODE_STUB(ToString, PlatformCodeStub);
 };
 
-
 class ToNameStub final : public PlatformCodeStub {
  public:
   explicit ToNameStub(Isolate* isolate) : PlatformCodeStub(isolate) {}
diff --git a/src/codegen.cc b/src/codegen.cc
index 93ae307..4597ae2 100644
--- a/src/codegen.cc
+++ b/src/codegen.cc
@@ -12,7 +12,6 @@
 #include "src/compiler.h"
 #include "src/debug/debug.h"
 #include "src/parsing/parser.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/runtime/runtime.h"
 
 namespace v8 {
@@ -61,7 +60,6 @@
   }
 
 UNARY_MATH_FUNCTION(sqrt, CreateSqrtFunction)
-UNARY_MATH_FUNCTION(exp, CreateExpFunction)
 
 #undef UNARY_MATH_FUNCTION
 
@@ -147,11 +145,12 @@
 void CodeGenerator::PrintCode(Handle<Code> code, CompilationInfo* info) {
 #ifdef ENABLE_DISASSEMBLER
   AllowDeferredHandleDereference allow_deference_for_print_code;
-  bool print_code = info->isolate()->bootstrapper()->IsActive()
-      ? FLAG_print_builtin_code
-      : (FLAG_print_code ||
-         (info->IsStub() && FLAG_print_code_stubs) ||
-         (info->IsOptimizing() && FLAG_print_opt_code));
+  Isolate* isolate = info->isolate();
+  bool print_code =
+      isolate->bootstrapper()->IsActive()
+          ? FLAG_print_builtin_code
+          : (FLAG_print_code || (info->IsStub() && FLAG_print_code_stubs) ||
+             (info->IsOptimizing() && FLAG_print_opt_code));
   if (print_code) {
     base::SmartArrayPointer<char> debug_name = info->GetDebugName();
     CodeTracer::Scope tracing_scope(info->isolate()->GetCodeTracer());
@@ -164,7 +163,8 @@
     if (print_source) {
       Handle<SharedFunctionInfo> shared = info->shared_info();
       Handle<Script> script = info->script();
-      if (!script->IsUndefined() && !script->source()->IsUndefined()) {
+      if (!script->IsUndefined(isolate) &&
+          !script->source()->IsUndefined(isolate)) {
         os << "--- Raw source ---\n";
         StringCharacterStream stream(String::cast(script->source()),
                                      shared->start_position());
diff --git a/src/codegen.h b/src/codegen.h
index f941696..82962ad 100644
--- a/src/codegen.h
+++ b/src/codegen.h
@@ -93,16 +93,13 @@
 // generated code both in runtime and compiled code.
 typedef double (*UnaryMathFunctionWithIsolate)(double x, Isolate* isolate);
 
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate);
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate);
 
 
 double modulo(double x, double y);
 
 // Custom implementation of math functions.
-double fast_exp(double input, Isolate* isolate);
 double fast_sqrt(double input, Isolate* isolate);
-void lazily_initialize_fast_exp(Isolate* isolate);
 void lazily_initialize_fast_sqrt(Isolate* isolate);
 
 
diff --git a/src/compilation-cache.cc b/src/compilation-cache.cc
index aca8cee..53e2190 100644
--- a/src/compilation-cache.cc
+++ b/src/compilation-cache.cc
@@ -41,7 +41,7 @@
 Handle<CompilationCacheTable> CompilationSubCache::GetTable(int generation) {
   DCHECK(generation < generations_);
   Handle<CompilationCacheTable> result;
-  if (tables_[generation]->IsUndefined()) {
+  if (tables_[generation]->IsUndefined(isolate())) {
     result = CompilationCacheTable::New(isolate(), kInitialCacheSize);
     tables_[generation] = *result;
   } else {
@@ -56,7 +56,7 @@
 void CompilationSubCache::Age() {
   // Don't directly age single-generation caches.
   if (generations_ == 1) {
-    if (tables_[0] != isolate()->heap()->undefined_value()) {
+    if (!tables_[0]->IsUndefined(isolate())) {
       CompilationCacheTable::cast(tables_[0])->Age();
     }
     return;
@@ -121,7 +121,7 @@
   // If the script name isn't set, the boilerplate script should have
   // an undefined name to have the same origin.
   if (name.is_null()) {
-    return script->name()->IsUndefined();
+    return script->name()->IsUndefined(isolate());
   }
   // Do the fast bailout checks first.
   if (line_offset != script->line_offset()) return false;
diff --git a/src/compilation-cache.h b/src/compilation-cache.h
index 2295f4c..973673c 100644
--- a/src/compilation-cache.h
+++ b/src/compilation-cache.h
@@ -210,7 +210,7 @@
   explicit CompilationCache(Isolate* isolate);
   ~CompilationCache();
 
-  HashMap* EagerOptimizingSet();
+  base::HashMap* EagerOptimizingSet();
 
   // The number of sub caches covering the different types to cache.
   static const int kSubCacheCount = 4;
diff --git a/src/compilation-statistics.cc b/src/compilation-statistics.cc
index c7e15b2..d4ca39d 100644
--- a/src/compilation-statistics.cc
+++ b/src/compilation-statistics.cc
@@ -54,8 +54,7 @@
   }
 }
 
-
-static void WriteLine(std::ostream& os, const char* name,
+static void WriteLine(std::ostream& os, bool machine_format, const char* name,
                       const CompilationStatistics::BasicStats& stats,
                       const CompilationStatistics::BasicStats& total_stats) {
   const size_t kBufferSize = 128;
@@ -66,17 +65,24 @@
   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%%)  %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_);
+  if (machine_format) {
+    base::OS::SNPrintF(buffer, kBufferSize,
+                       "\"%s_time\"=%.3f\n\"%s_space\"=%" PRIuS, name, ms, name,
+                       stats.total_allocated_bytes_);
+    os << buffer;
+  } else {
+    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_);
 
-  os << buffer;
-  if (stats.function_name_.size() > 0) {
-    os << "   " << stats.function_name_.c_str();
+    os << buffer;
+    if (stats.function_name_.size() > 0) {
+      os << "   " << stats.function_name_.c_str();
+    }
+    os << std::endl;
   }
-  os << std::endl;
 }
 
 
@@ -101,10 +107,10 @@
         "--------------------------------------------------------\n";
 }
 
-
-std::ostream& operator<<(std::ostream& os, const CompilationStatistics& s) {
+std::ostream& operator<<(std::ostream& os, const AsPrintableStatistics& ps) {
   // phase_kind_map_ and phase_map_ don't get mutated, so store a bunch of
   // pointers into them.
+  const CompilationStatistics& s = ps.s;
 
   typedef std::vector<CompilationStatistics::PhaseKindMap::const_iterator>
       SortedPhaseKinds;
@@ -121,22 +127,27 @@
     sorted_phases[it->second.insert_order_] = it;
   }
 
-  WriteHeader(os);
+  if (!ps.machine_output) WriteHeader(os);
   for (auto phase_kind_it : sorted_phase_kinds) {
     const auto& phase_kind_name = phase_kind_it->first;
-    for (auto phase_it : sorted_phases) {
-      const auto& phase_stats = phase_it->second;
-      if (phase_stats.phase_kind_name_ != phase_kind_name) continue;
-      const auto& phase_name = phase_it->first;
-      WriteLine(os, phase_name.c_str(), phase_stats, s.total_stats_);
+    if (!ps.machine_output) {
+      for (auto phase_it : sorted_phases) {
+        const auto& phase_stats = phase_it->second;
+        if (phase_stats.phase_kind_name_ != phase_kind_name) continue;
+        const auto& phase_name = phase_it->first;
+        WriteLine(os, ps.machine_output, phase_name.c_str(), phase_stats,
+                  s.total_stats_);
+      }
+      WritePhaseKindBreak(os);
     }
-    WritePhaseKindBreak(os);
     const auto& phase_kind_stats = phase_kind_it->second;
-    WriteLine(os, phase_kind_name.c_str(), phase_kind_stats, s.total_stats_);
+    WriteLine(os, ps.machine_output, phase_kind_name.c_str(), phase_kind_stats,
+              s.total_stats_);
     os << std::endl;
   }
-  WriteFullLine(os);
-  WriteLine(os, "totals", s.total_stats_, s.total_stats_);
+
+  if (!ps.machine_output) WriteFullLine(os);
+  WriteLine(os, ps.machine_output, "totals", s.total_stats_, s.total_stats_);
 
   return os;
 }
diff --git a/src/compilation-statistics.h b/src/compilation-statistics.h
index 6219180..ceffc2e 100644
--- a/src/compilation-statistics.h
+++ b/src/compilation-statistics.h
@@ -15,6 +15,12 @@
 namespace internal {
 
 class CompilationInfo;
+class CompilationStatistics;
+
+struct AsPrintableStatistics {
+  const CompilationStatistics& s;
+  const bool machine_output;
+};
 
 class CompilationStatistics final : public Malloced {
  public:
@@ -65,7 +71,7 @@
   };
 
   friend std::ostream& operator<<(std::ostream& os,
-                                  const CompilationStatistics& s);
+                                  const AsPrintableStatistics& s);
 
   typedef OrderedStats PhaseKindStats;
   typedef std::map<std::string, PhaseKindStats> PhaseKindMap;
@@ -78,7 +84,7 @@
   DISALLOW_COPY_AND_ASSIGN(CompilationStatistics);
 };
 
-std::ostream& operator<<(std::ostream& os, const CompilationStatistics& s);
+std::ostream& operator<<(std::ostream& os, const AsPrintableStatistics& s);
 
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler.cc b/src/compiler.cc
index d649950..2a0eda0 100644
--- a/src/compiler.cc
+++ b/src/compiler.cc
@@ -27,7 +27,6 @@
 #include "src/parsing/parser.h"
 #include "src/parsing/rewriter.h"
 #include "src/parsing/scanner-character-streams.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/runtime-profiler.h"
 #include "src/snapshot/code-serializer.h"
 #include "src/typing-asm.h"
@@ -135,7 +134,7 @@
       bailout_reason_(kNoReason),
       prologue_offset_(Code::kPrologueOffsetNotSet),
       track_positions_(FLAG_hydrogen_track_positions ||
-                       isolate->cpu_profiler()->is_profiling()),
+                       isolate->is_profiling()),
       parameter_count_(0),
       optimization_id_(-1),
       osr_expr_stack_height_(0),
@@ -200,6 +199,9 @@
     case Code::BYTECODE_HANDLER:
     case Code::HANDLER:
     case Code::BUILTIN:
+#define CASE_KIND(kind) case Code::kind:
+      IC_KIND_LIST(CASE_KIND)
+#undef CASE_KIND
       return StackFrame::STUB;
     case Code::WASM_FUNCTION:
       return StackFrame::WASM;
@@ -376,13 +378,13 @@
              Script::COMPILATION_TYPE_EVAL;
 }
 
-void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
+void RecordFunctionCompilation(CodeEventListener::LogEventsAndTags tag,
                                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()) {
+      info->isolate()->is_profiling()) {
     Handle<SharedFunctionInfo> shared = info->shared_info();
     Handle<Script> script = info->parse_info()->script();
     Handle<AbstractCode> abstract_code =
@@ -399,41 +401,55 @@
     String* script_name = script->name()->IsString()
                               ? String::cast(script->name())
                               : info->isolate()->heap()->empty_string();
-    Logger::LogEventsAndTags log_tag = Logger::ToNativeByScript(tag, *script);
+    CodeEventListener::LogEventsAndTags log_tag =
+        Logger::ToNativeByScript(tag, *script);
     PROFILE(info->isolate(),
             CodeCreateEvent(log_tag, *abstract_code, *shared, script_name,
                             line_num, column_num));
   }
 }
 
-void EnsureFeedbackVector(CompilationInfo* info) {
+void EnsureFeedbackMetadata(CompilationInfo* info) {
   DCHECK(info->has_shared_info());
 
-  // If no type feedback vector exists, we create one now. At this point the
+  // If no type feedback metadata exists, we create it now. At this point the
   // AstNumbering pass has already run. Note the snapshot can contain outdated
   // vectors for a different configuration, hence we also recreate a new vector
   // when the function is not compiled (i.e. no code was serialized).
-  if (info->shared_info()->feedback_vector()->is_empty() ||
+
+  // TODO(mvstanton): reintroduce is_empty() predicate to feedback_metadata().
+  if (info->shared_info()->feedback_metadata()->length() == 0 ||
       !info->shared_info()->is_compiled()) {
     Handle<TypeFeedbackMetadata> feedback_metadata = TypeFeedbackMetadata::New(
         info->isolate(), info->literal()->feedback_vector_spec());
-    Handle<TypeFeedbackVector> feedback_vector =
-        TypeFeedbackVector::New(info->isolate(), feedback_metadata);
-    info->shared_info()->set_feedback_vector(*feedback_vector);
+    info->shared_info()->set_feedback_metadata(*feedback_metadata);
   }
 
   // It's very important that recompiles do not alter the structure of the type
   // feedback vector. Verify that the structure fits the function literal.
-  CHECK(!info->shared_info()->feedback_vector()->metadata()->SpecDiffersFrom(
+  CHECK(!info->shared_info()->feedback_metadata()->SpecDiffersFrom(
       info->literal()->feedback_vector_spec()));
 }
 
 bool UseIgnition(CompilationInfo* info) {
-  if (info->is_debug()) return false;
+  DCHECK(info->has_shared_info());
+
+  // When requesting debug code as a replacement for existing code, we provide
+  // the same kind as the existing code (to prevent implicit tier-change).
+  if (info->is_debug() && info->shared_info()->is_compiled()) {
+    return info->shared_info()->HasBytecodeArray();
+  }
+
+  // For generator or async functions we might avoid Ignition wholesale.
   if (info->shared_info()->is_resumable() && !FLAG_ignition_generators) {
     return false;
   }
 
+  // Since we can't OSR from Ignition, skip Ignition for asm.js functions.
+  if (info->shared_info()->asm_function()) {
+    return false;
+  }
+
   // Checks whether top level functions should be passed by the filter.
   if (info->shared_info()->is_toplevel()) {
     Vector<const char> filter = CStrVector(FLAG_ignition_filter);
@@ -445,26 +461,15 @@
 }
 
 int CodeAndMetadataSize(CompilationInfo* info) {
-  int size = 0;
   if (info->has_bytecode_array()) {
-    Handle<BytecodeArray> bytecode_array = info->bytecode_array();
-    size += bytecode_array->BytecodeArraySize();
-    size += bytecode_array->constant_pool()->Size();
-    size += bytecode_array->handler_table()->Size();
-    size += bytecode_array->source_position_table()->Size();
-  } else {
-    Handle<Code> code = info->code();
-    size += code->CodeSize();
-    size += code->relocation_info()->Size();
-    size += code->deoptimization_data()->Size();
-    size += code->handler_table()->Size();
+    return info->bytecode_array()->SizeIncludingMetadata();
   }
-  return size;
+  return info->code()->SizeIncludingMetadata();
 }
 
 bool GenerateUnoptimizedCode(CompilationInfo* info) {
   bool success;
-  EnsureFeedbackVector(info);
+  EnsureFeedbackMetadata(info);
   if (FLAG_validate_asm && info->scope()->asm_module()) {
     AsmTyper typer(info->isolate(), info->zone(), *(info->script()),
                    info->literal());
@@ -511,6 +516,12 @@
 
 void InstallSharedCompilationResult(CompilationInfo* info,
                                     Handle<SharedFunctionInfo> shared) {
+  // TODO(mstarzinger): Compiling for debug code might be used to reveal inner
+  // functions via {FindSharedFunctionInfoInScript}, in which case we end up
+  // regenerating existing bytecode. Fix this!
+  if (info->is_debug() && info->has_bytecode_array()) {
+    shared->ClearBytecodeArray();
+  }
   // Assert that we are not overwriting (possibly patched) debug code.
   DCHECK(!shared->HasDebugInfo());
   DCHECK(!info->code().is_null());
@@ -540,7 +551,7 @@
   InstallSharedCompilationResult(info, shared);
 
   // Record the function compilation event.
-  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
+  RecordFunctionCompilation(CodeEventListener::LAZY_COMPILE_TAG, info);
 
   return info->code();
 }
@@ -639,9 +650,14 @@
   // Parsing is not required when optimizing from existing bytecode.
   if (!info->is_optimizing_from_bytecode()) {
     if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+    EnsureFeedbackMetadata(info);
   }
 
+  JSFunction::EnsureLiterals(info->closure());
+
   TimerEventScope<TimerEventRecompileSynchronous> timer(isolate);
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::RecompileSynchronous);
   TRACE_EVENT0("v8", "V8.RecompileSynchronous");
 
   if (job->CreateGraph() != CompilationJob::SUCCEEDED ||
@@ -659,7 +675,7 @@
   job->RecordOptimizationStats();
   DCHECK(!isolate->has_pending_exception());
   InsertCodeIntoOptimizedCodeMap(info);
-  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
+  RecordFunctionCompilation(CodeEventListener::LAZY_COMPILE_TAG, info);
   return true;
 }
 
@@ -683,13 +699,18 @@
   // Parsing is not required when optimizing from existing bytecode.
   if (!info->is_optimizing_from_bytecode()) {
     if (!Compiler::ParseAndAnalyze(info->parse_info())) return false;
+    EnsureFeedbackMetadata(info);
   }
 
+  JSFunction::EnsureLiterals(info->closure());
+
   // Reopen handles in the new CompilationHandleScope.
   info->ReopenHandlesInNewHandleScope();
   info->parse_info()->ReopenHandlesInNewHandleScope();
 
   TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
+  RuntimeCallTimerScope runtimeTimer(info->isolate(),
+                                     &RuntimeCallStats::RecompileSynchronous);
   TRACE_EVENT0("v8", "V8.RecompileSynchronous");
 
   if (job->CreateGraph() != CompilationJob::SUCCEEDED) return false;
@@ -757,6 +778,7 @@
 
   CanonicalHandleScope canonical(isolate);
   TimerEventScope<TimerEventOptimizeCode> optimize_code_timer(isolate);
+  RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::OptimizeCode);
   TRACE_EVENT0("v8", "V8.OptimizeCode");
 
   // TurboFan can optimize directly from existing bytecode.
@@ -789,18 +811,23 @@
 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) {
+    Address* activation_pc_address = nullptr;
     JavaScriptFrameIterator it(isolate, top);
-    for (; !it.done() && !has_activations_; it.Advance()) {
+    for (; !it.done(); it.Advance()) {
       JavaScriptFrame* frame = it.frame();
       if (!frame->is_interpreted()) continue;
-      if (frame->function()->shared() == shared_) has_activations_ = true;
+      if (frame->function()->shared() == shared_) {
+        has_activations_ = true;
+        activation_pc_address = frame->pc_address();
+      }
+    }
+
+    if (activation_pc_address) {
+      activation_pc_addresses_.push_back(activation_pc_address);
     }
   }
 
@@ -810,19 +837,39 @@
 
   void EnterContext(Context* context) {}
   void LeaveContext(Context* context) {}
+
+  bool MarkActivationsForBaselineOnReturn(Isolate* isolate) {
+    if (activation_pc_addresses_.empty()) return false;
+
+    for (Address* activation_pc_address : activation_pc_addresses_) {
+      DCHECK(isolate->inner_pointer_to_code_cache()
+                 ->GetCacheEntry(*activation_pc_address)
+                 ->code->is_interpreter_trampoline_builtin());
+      *activation_pc_address =
+          isolate->builtins()->InterpreterMarkBaselineOnReturn()->entry();
+    }
+    return true;
+  }
+
+  bool has_activations() { return has_activations_; }
+
+ private:
+  SharedFunctionInfo* shared_;
+  bool has_activations_;
+  std::vector<Address*> activation_pc_addresses_;
 };
 
-bool HasInterpreterActivations(Isolate* isolate, SharedFunctionInfo* shared) {
-  InterpreterActivationsFinder activations_finder(shared);
-  activations_finder.VisitThread(isolate, isolate->thread_local_top());
-  isolate->thread_manager()->IterateArchivedThreads(&activations_finder);
+bool HasInterpreterActivations(
+    Isolate* isolate, InterpreterActivationsFinder* activations_finder) {
+  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);
+    Deoptimizer::VisitAllOptimizedFunctions(isolate, activations_finder);
   }
-  return activations_finder.has_activations_;
+  return activations_finder->has_activations();
 }
 
 MaybeHandle<Code> GetBaselineCode(Handle<JSFunction> function) {
@@ -849,10 +896,11 @@
     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()) {
+  // TODO(4280): For now we do not switch generators or async functions 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_resumable()) {
     return MaybeHandle<Code>();
   }
 
@@ -860,12 +908,22 @@
   // 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())) {
+  InterpreterActivationsFinder activations_finder(function->shared());
+  if (HasInterpreterActivations(isolate, &activations_finder)) {
     if (FLAG_trace_opt) {
       OFStream os(stdout);
       os << "[unable to switch " << Brief(*function) << " due to activations]"
          << std::endl;
     }
+
+    if (activations_finder.MarkActivationsForBaselineOnReturn(isolate)) {
+      if (FLAG_trace_opt) {
+        OFStream os(stdout);
+        os << "[marking " << Brief(function->shared())
+           << " for baseline recompilation on return]" << std::endl;
+      }
+    }
+
     return MaybeHandle<Code>();
   }
 
@@ -899,7 +957,7 @@
   InstallSharedCompilationResult(&info, shared);
 
   // Record the function compilation event.
-  RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, &info);
+  RecordFunctionCompilation(CodeEventListener::LAZY_COMPILE_TAG, &info);
 
   return info.code();
 }
@@ -909,6 +967,8 @@
   DCHECK(!isolate->has_pending_exception());
   DCHECK(!function->is_compiled());
   TimerEventScope<TimerEventCompileCode> compile_timer(isolate);
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::CompileCodeLazy);
   TRACE_EVENT0("v8", "V8.CompileCode");
   AggregatedHistogramTimerScope timer(isolate->counters()->compile_lazy());
 
@@ -963,6 +1023,7 @@
 Handle<SharedFunctionInfo> CompileToplevel(CompilationInfo* info) {
   Isolate* isolate = info->isolate();
   TimerEventScope<TimerEventCompileCode> timer(isolate);
+  RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode);
   TRACE_EVENT0("v8", "V8.CompileCode");
   PostponeInterruptsScope postpone(isolate);
   DCHECK(!isolate->native_context().is_null());
@@ -1057,10 +1118,10 @@
         script->name()->IsString()
             ? Handle<String>(String::cast(script->name()))
             : isolate->factory()->empty_string();
-    Logger::LogEventsAndTags log_tag =
+    CodeEventListener::LogEventsAndTags log_tag =
         parse_info->is_eval()
-            ? Logger::EVAL_TAG
-            : Logger::ToNativeByScript(Logger::SCRIPT_TAG, *script);
+            ? CodeEventListener::EVAL_TAG
+            : Logger::ToNativeByScript(CodeEventListener::SCRIPT_TAG, *script);
 
     PROFILE(isolate, CodeCreateEvent(log_tag, result->abstract_code(), *result,
                                      *script_name));
@@ -1110,6 +1171,7 @@
 
   // Install code on closure.
   function->ReplaceCode(*code);
+  JSFunction::EnsureLiterals(function);
 
   // Check postconditions on success.
   DCHECK(!isolate->has_pending_exception());
@@ -1133,6 +1195,7 @@
 
   // Install code on closure.
   function->ReplaceCode(*code);
+  JSFunction::EnsureLiterals(function);
 
   // Check postconditions on success.
   DCHECK(!isolate->has_pending_exception());
@@ -1166,6 +1229,7 @@
 
   // Install code on closure.
   function->ReplaceCode(*code);
+  JSFunction::EnsureLiterals(function);
 
   // Check postconditions on success.
   DCHECK(!isolate->has_pending_exception());
@@ -1271,10 +1335,11 @@
     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 do not switch generators or async functions 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_resumable()) 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:
@@ -1282,9 +1347,11 @@
     //  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 (shared->HasBytecodeArray()) {
+      InterpreterActivationsFinder activations_finder(*shared);
+      if (HasInterpreterActivations(info->isolate(), &activations_finder)) {
+        return false;
+      }
     }
 
     // If the current code has reloc info for serialization, also include
@@ -1294,7 +1361,7 @@
         shared->code()->has_reloc_info_for_serialization()) {
       unoptimized.PrepareForSerializing();
     }
-    EnsureFeedbackVector(&unoptimized);
+    EnsureFeedbackMetadata(&unoptimized);
     if (!FullCodeGenerator::MakeCode(&unoptimized)) return false;
 
     // TODO(4280): For now we play it safe and remove the bytecode array when we
@@ -1312,7 +1379,8 @@
     shared->EnableDeoptimizationSupport(*unoptimized.code());
 
     // The existing unoptimized code was replaced with the new one.
-    RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, &unoptimized);
+    RecordFunctionCompilation(CodeEventListener::LAZY_COMPILE_TAG,
+                              &unoptimized);
   }
   return true;
 }
@@ -1421,6 +1489,8 @@
         !isolate->debug()->is_loaded()) {
       // Then check cached code provided by embedder.
       HistogramTimerScope timer(isolate->counters()->compile_deserialize());
+      RuntimeCallTimerScope runtimeTimer(isolate,
+                                         &RuntimeCallStats::CompileDeserialize);
       TRACE_EVENT0("v8", "V8.CompileDeserialize");
       Handle<SharedFunctionInfo> result;
       if (CodeSerializer::Deserialize(isolate, *cached_data, source)
@@ -1492,6 +1562,8 @@
           compile_options == ScriptCompiler::kProduceCodeCache) {
         HistogramTimerScope histogram_timer(
             isolate->counters()->compile_serialize());
+        RuntimeCallTimerScope runtimeTimer(isolate,
+                                           &RuntimeCallStats::CompileSerialize);
         TRACE_EVENT0("v8", "V8.CompileSerialize");
         *cached_data = CodeSerializer::Serialize(isolate, result, source);
         if (FLAG_profile_deserialization) {
@@ -1608,6 +1680,7 @@
 
   // Generate code
   TimerEventScope<TimerEventCompileCode> timer(isolate);
+  RuntimeCallTimerScope runtimeTimer(isolate, &RuntimeCallStats::CompileCode);
   TRACE_EVENT0("v8", "V8.CompileCode");
   if (lazy) {
     info.SetCode(isolate->builtins()->CompileLazy());
@@ -1628,7 +1701,7 @@
   }
 
   if (maybe_existing.is_null()) {
-    RecordFunctionCompilation(Logger::FUNCTION_TAG, &info);
+    RecordFunctionCompilation(CodeEventListener::FUNCTION_TAG, &info);
   }
 
   return result;
@@ -1649,14 +1722,13 @@
   Handle<JSFunction> fun = Handle<JSFunction>::cast(Utils::OpenHandle(
       *fun_template->GetFunction(v8_isolate->GetCurrentContext())
            .ToLocalChecked()));
-  const int literals = fun->NumberOfLiterals();
   Handle<Code> code = Handle<Code>(fun->shared()->code());
   Handle<Code> construct_stub = Handle<Code>(fun->shared()->construct_stub());
   Handle<SharedFunctionInfo> shared = isolate->factory()->NewSharedFunctionInfo(
-      name, literals, FunctionKind::kNormalFunction, code,
+      name, fun->shared()->num_literals(), FunctionKind::kNormalFunction, code,
       Handle<ScopeInfo>(fun->shared()->scope_info()));
   shared->set_construct_stub(*construct_stub);
-  shared->set_feedback_vector(fun->shared()->feedback_vector());
+  shared->set_feedback_metadata(fun->shared()->feedback_metadata());
 
   // Copy the function data to the shared function info.
   shared->set_function_data(fun->shared()->function_data());
@@ -1682,6 +1754,8 @@
 
   VMState<COMPILER> state(isolate);
   TimerEventScope<TimerEventRecompileSynchronous> timer(info->isolate());
+  RuntimeCallTimerScope runtimeTimer(isolate,
+                                     &RuntimeCallStats::RecompileSynchronous);
   TRACE_EVENT0("v8", "V8.RecompileSynchronous");
 
   Handle<SharedFunctionInfo> shared = info->shared_info();
@@ -1701,7 +1775,7 @@
       job->RetryOptimization(kBailedOutDueToDependencyChange);
     } else if (job->GenerateCode() == CompilationJob::SUCCEEDED) {
       job->RecordOptimizationStats();
-      RecordFunctionCompilation(Logger::LAZY_COMPILE_TAG, info);
+      RecordFunctionCompilation(CodeEventListener::LAZY_COMPILE_TAG, info);
       if (shared->SearchOptimizedCodeMap(info->context()->native_context(),
                                          info->osr_ast_id()).code == nullptr) {
         InsertCodeIntoOptimizedCodeMap(info);
@@ -1743,21 +1817,11 @@
   }
 
   if (cached.literals != nullptr) {
+    DCHECK(shared->is_compiled());
     function->set_literals(cached.literals);
-  } else {
-    Isolate* isolate = function->GetIsolate();
-    int number_of_literals = shared->num_literals();
-    Handle<LiteralsArray> literals =
-        LiteralsArray::New(isolate, handle(shared->feedback_vector()),
-                           number_of_literals, pretenure);
-    function->set_literals(*literals);
-
-    // Cache context-specific literals.
-    MaybeHandle<Code> code;
-    if (cached.code != nullptr) code = handle(cached.code);
-    Handle<Context> native_context(function->context()->native_context());
-    SharedFunctionInfo::AddToOptimizedCodeMap(shared, native_context, code,
-                                              literals, BailoutId::None());
+  } else if (shared->is_compiled()) {
+    // TODO(mvstanton): pass pretenure flag to EnsureLiterals.
+    JSFunction::EnsureLiterals(function);
   }
 }
 
diff --git a/src/compiler.h b/src/compiler.h
index 64bc88d..e0ebd45 100644
--- a/src/compiler.h
+++ b/src/compiler.h
@@ -146,6 +146,7 @@
     kSourcePositionsEnabled = 1 << 15,
     kBailoutOnUninitialized = 1 << 16,
     kOptimizeFromBytecode = 1 << 17,
+    kTypeFeedbackEnabled = 1 << 18,
   };
 
   CompilationInfo(ParseInfo* parse_info, Handle<JSFunction> closure);
@@ -256,6 +257,12 @@
     return GetFlag(kDeoptimizationEnabled);
   }
 
+  void MarkAsTypeFeedbackEnabled() { SetFlag(kTypeFeedbackEnabled); }
+
+  bool is_type_feedback_enabled() const {
+    return GetFlag(kTypeFeedbackEnabled);
+  }
+
   void MarkAsSourcePositionsEnabled() { SetFlag(kSourcePositionsEnabled); }
 
   bool is_source_positions_enabled() const {
diff --git a/src/compiler/OWNERS b/src/compiler/OWNERS
index 1257e23..02de4ed 100644
--- a/src/compiler/OWNERS
+++ b/src/compiler/OWNERS
@@ -1,6 +1,7 @@
 set noparent
 
 bmeurer@chromium.org
+epertoso@chromium.org
 jarin@chromium.org
 mstarzinger@chromium.org
 mtrofin@chromium.org
diff --git a/src/compiler/access-builder.cc b/src/compiler/access-builder.cc
index d4187fa..0eac109 100644
--- a/src/compiler/access-builder.cc
+++ b/src/compiler/access-builder.cc
@@ -98,7 +98,6 @@
   return access;
 }
 
-
 // static
 FieldAccess AccessBuilder::ForJSFunctionLiterals() {
   FieldAccess access = {
@@ -130,6 +129,63 @@
 }
 
 // static
+FieldAccess AccessBuilder::ForJSGeneratorObjectContext() {
+  FieldAccess access = {kTaggedBase,
+                        JSGeneratorObject::kContextOffset,
+                        Handle<Name>(),
+                        Type::Internal(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSGeneratorObjectContinuation() {
+  TypeCache const& type_cache = TypeCache::Get();
+  FieldAccess access = {kTaggedBase,
+                        JSGeneratorObject::kContinuationOffset,
+                        Handle<Name>(),
+                        type_cache.kSmi,
+                        MachineType::AnyTagged(),
+                        kNoWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSGeneratorObjectInputOrDebugPos() {
+  FieldAccess access = {kTaggedBase,
+                        JSGeneratorObject::kInputOrDebugPosOffset,
+                        Handle<Name>(),
+                        Type::Any(),
+                        MachineType::AnyTagged(),
+                        kFullWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSGeneratorObjectOperandStack() {
+  FieldAccess access = {kTaggedBase,
+                        JSGeneratorObject::kOperandStackOffset,
+                        Handle<Name>(),
+                        Type::Internal(),
+                        MachineType::AnyTagged(),
+                        kPointerWriteBarrier};
+  return access;
+}
+
+// static
+FieldAccess AccessBuilder::ForJSGeneratorObjectResumeMode() {
+  TypeCache const& type_cache = TypeCache::Get();
+  FieldAccess access = {kTaggedBase,
+                        JSGeneratorObject::kResumeModeOffset,
+                        Handle<Name>(),
+                        type_cache.kSmi,
+                        MachineType::AnyTagged(),
+                        kNoWriteBarrier};
+  return access;
+}
+
+// static
 FieldAccess AccessBuilder::ForJSArrayLength(ElementsKind elements_kind) {
   TypeCache const& type_cache = TypeCache::Get();
   FieldAccess access = {kTaggedBase,
@@ -312,6 +368,14 @@
 
 
 // static
+FieldAccess AccessBuilder::ForNameHashField() {
+  FieldAccess access = {kTaggedBase,           Name::kHashFieldOffset,
+                        Handle<Name>(),        Type::Internal(),
+                        MachineType::Uint32(), kNoWriteBarrier};
+  return access;
+}
+
+// static
 FieldAccess AccessBuilder::ForStringLength() {
   FieldAccess access = {kTaggedBase,
                         String::kLengthOffset,
@@ -419,19 +483,6 @@
   return access;
 }
 
-
-// static
-FieldAccess AccessBuilder::ForSharedFunctionInfoTypeFeedbackVector() {
-  FieldAccess access = {kTaggedBase,
-                        SharedFunctionInfo::kFeedbackVectorOffset,
-                        Handle<Name>(),
-                        Type::Any(),
-                        MachineType::AnyTagged(),
-                        kPointerWriteBarrier};
-  return access;
-}
-
-
 // static
 ElementAccess AccessBuilder::ForFixedArrayElement() {
   ElementAccess access = {kTaggedBase, FixedArray::kHeaderSize, Type::Tagged(),
diff --git a/src/compiler/access-builder.h b/src/compiler/access-builder.h
index b36277e..8345225 100644
--- a/src/compiler/access-builder.h
+++ b/src/compiler/access-builder.h
@@ -52,6 +52,21 @@
   // Provides access to JSFunction::next_function_link() field.
   static FieldAccess ForJSFunctionNextFunctionLink();
 
+  // Provides access to JSGeneratorObject::context() field.
+  static FieldAccess ForJSGeneratorObjectContext();
+
+  // Provides access to JSGeneratorObject::continuation() field.
+  static FieldAccess ForJSGeneratorObjectContinuation();
+
+  // Provides access to JSGeneratorObject::input_or_debug_pos() field.
+  static FieldAccess ForJSGeneratorObjectInputOrDebugPos();
+
+  // Provides access to JSGeneratorObject::operand_stack() field.
+  static FieldAccess ForJSGeneratorObjectOperandStack();
+
+  // Provides access to JSGeneratorObject::resume_mode() field.
+  static FieldAccess ForJSGeneratorObjectResumeMode();
+
   // Provides access to JSArray::length() field.
   static FieldAccess ForJSArrayLength(ElementsKind elements_kind);
 
@@ -103,6 +118,9 @@
   // Provides access to Map::prototype() field.
   static FieldAccess ForMapPrototype();
 
+  // Provides access to Name::hash_field() field.
+  static FieldAccess ForNameHashField();
+
   // Provides access to String::length() field.
   static FieldAccess ForStringLength();
 
@@ -129,9 +147,6 @@
   static FieldAccess ForPropertyCellValue();
   static FieldAccess ForPropertyCellValue(Type* type);
 
-  // Provides access to SharedFunctionInfo::feedback_vector() field.
-  static FieldAccess ForSharedFunctionInfoTypeFeedbackVector();
-
   // Provides access to FixedArray elements.
   static ElementAccess ForFixedArrayElement();
 
diff --git a/src/compiler/access-info.cc b/src/compiler/access-info.cc
index e38f629..768b985 100644
--- a/src/compiler/access-info.cc
+++ b/src/compiler/access-info.cc
@@ -9,7 +9,7 @@
 #include "src/compiler/access-info.h"
 #include "src/field-index-inl.h"
 #include "src/field-type.h"
-#include "src/objects-inl.h"  // TODO(mstarzinger): Temporary cycle breaker!
+#include "src/objects-inl.h"
 #include "src/type-cache.h"
 
 namespace v8 {
@@ -75,10 +75,9 @@
 // static
 PropertyAccessInfo PropertyAccessInfo::DataField(
     Type* receiver_type, FieldIndex field_index, Type* field_type,
-    FieldCheck field_check, MaybeHandle<JSObject> holder,
-    MaybeHandle<Map> transition_map) {
-  return PropertyAccessInfo(holder, transition_map, field_index, field_check,
-                            field_type, receiver_type);
+    MaybeHandle<JSObject> holder, MaybeHandle<Map> transition_map) {
+  return PropertyAccessInfo(holder, transition_map, field_index, field_type,
+                            receiver_type);
 }
 
 
@@ -114,21 +113,17 @@
       holder_(holder),
       field_type_(Type::Any()) {}
 
-
 PropertyAccessInfo::PropertyAccessInfo(MaybeHandle<JSObject> holder,
                                        MaybeHandle<Map> transition_map,
-                                       FieldIndex field_index,
-                                       FieldCheck field_check, Type* field_type,
+                                       FieldIndex field_index, Type* field_type,
                                        Type* receiver_type)
     : kind_(kDataField),
       receiver_type_(receiver_type),
       transition_map_(transition_map),
       holder_(holder),
       field_index_(field_index),
-      field_check_(field_check),
       field_type_(field_type) {}
 
-
 AccessInfoFactory::AccessInfoFactory(CompilationDependencies* dependencies,
                                      Handle<Context> native_context, Zone* zone)
     : dependencies_(dependencies),
@@ -299,8 +294,7 @@
           DCHECK(field_type->Is(Type::TaggedPointer()));
         }
         *access_info = PropertyAccessInfo::DataField(
-            Type::Class(receiver_map, zone()), field_index, field_type,
-            FieldCheck::kNone, holder);
+            Type::Class(receiver_map, zone()), field_index, field_type, holder);
         return true;
       } else {
         // TODO(bmeurer): Add support for accessors.
@@ -327,7 +321,7 @@
               .ToHandle(&constructor)) {
         map = handle(constructor->initial_map(), isolate());
         DCHECK(map->prototype()->IsJSObject());
-      } else if (map->prototype()->IsNull()) {
+      } else if (map->prototype()->IsNull(isolate())) {
         // Store to property not found on the receiver or any prototype, we need
         // to transition to a new data property.
         // Implemented according to ES6 section 9.1.9 [[Set]] (P, V, Receiver)
@@ -404,26 +398,6 @@
                                                  field_index, field_type);
     return true;
   }
-  // Check for special JSArrayBufferView field accessors.
-  if (Accessors::IsJSArrayBufferViewFieldAccessor(map, name, &offset)) {
-    FieldIndex field_index = FieldIndex::ForInObjectOffset(offset);
-    Type* field_type = Type::Tagged();
-    if (Name::Equals(factory()->byte_length_string(), name) ||
-        Name::Equals(factory()->byte_offset_string(), name)) {
-      // The JSArrayBufferView::byte_length and JSArrayBufferView::byte_offset
-      // properties are always numbers in the range [0, kMaxSafeInteger].
-      field_type = type_cache_.kPositiveSafeInteger;
-    } else if (map->IsJSTypedArrayMap()) {
-      DCHECK(Name::Equals(factory()->length_string(), name));
-      // The JSTypedArray::length property is always a number in the range
-      // [0, kMaxSafeInteger].
-      field_type = type_cache_.kPositiveSafeInteger;
-    }
-    *access_info = PropertyAccessInfo::DataField(
-        Type::Class(map, zone()), field_index, field_type,
-        FieldCheck::kJSArrayBufferViewBufferNotNeutered);
-    return true;
-  }
   return false;
 }
 
@@ -471,9 +445,9 @@
       DCHECK(field_type->Is(Type::TaggedPointer()));
     }
     dependencies()->AssumeMapNotDeprecated(transition_map);
-    *access_info = PropertyAccessInfo::DataField(
-        Type::Class(map, zone()), field_index, field_type, FieldCheck::kNone,
-        holder, transition_map);
+    *access_info =
+        PropertyAccessInfo::DataField(Type::Class(map, zone()), field_index,
+                                      field_type, holder, transition_map);
     return true;
   }
   return false;
diff --git a/src/compiler/access-info.h b/src/compiler/access-info.h
index cae1191..1556e0e 100644
--- a/src/compiler/access-info.h
+++ b/src/compiler/access-info.h
@@ -53,16 +53,6 @@
 };
 
 
-// Additional checks that need to be perform for data field accesses.
-enum class FieldCheck : uint8_t {
-  // No additional checking needed.
-  kNone,
-  // Check that the [[ViewedArrayBuffer]] of {JSArrayBufferView}s
-  // was not neutered.
-  kJSArrayBufferViewBufferNotNeutered,
-};
-
-
 // This class encapsulates all information required to access a certain
 // object property, either on the object itself or on the prototype chain.
 class PropertyAccessInfo final {
@@ -76,7 +66,6 @@
                                          MaybeHandle<JSObject> holder);
   static PropertyAccessInfo DataField(
       Type* receiver_type, FieldIndex field_index, Type* field_type,
-      FieldCheck field_check = FieldCheck::kNone,
       MaybeHandle<JSObject> holder = MaybeHandle<JSObject>(),
       MaybeHandle<Map> transition_map = MaybeHandle<Map>());
 
@@ -92,7 +81,6 @@
   MaybeHandle<JSObject> holder() const { return holder_; }
   MaybeHandle<Map> transition_map() const { return transition_map_; }
   Handle<Object> constant() const { return constant_; }
-  FieldCheck field_check() const { return field_check_; }
   FieldIndex field_index() const { return field_index_; }
   Type* field_type() const { return field_type_; }
   Type* receiver_type() const { return receiver_type_; }
@@ -103,8 +91,7 @@
                      Type* receiver_type);
   PropertyAccessInfo(MaybeHandle<JSObject> holder,
                      MaybeHandle<Map> transition_map, FieldIndex field_index,
-                     FieldCheck field_check, Type* field_type,
-                     Type* receiver_type);
+                     Type* field_type, Type* receiver_type);
 
   Kind kind_;
   Type* receiver_type_;
@@ -112,7 +99,6 @@
   MaybeHandle<Map> transition_map_;
   MaybeHandle<JSObject> holder_;
   FieldIndex field_index_;
-  FieldCheck field_check_;
   Type* field_type_;
 };
 
diff --git a/src/compiler/arm/code-generator-arm.cc b/src/compiler/arm/code-generator-arm.cc
index 2c9415e..e1cf2a6 100644
--- a/src/compiler/arm/code-generator-arm.cc
+++ b/src/compiler/arm/code-generator-arm.cc
@@ -27,30 +27,6 @@
   ArmOperandConverter(CodeGenerator* gen, Instruction* instr)
       : InstructionOperandConverter(gen, instr) {}
 
-  SwVfpRegister OutputFloat32Register(size_t index = 0) {
-    return ToFloat32Register(instr_->OutputAt(index));
-  }
-
-  SwVfpRegister InputFloat32Register(size_t index) {
-    return ToFloat32Register(instr_->InputAt(index));
-  }
-
-  SwVfpRegister ToFloat32Register(InstructionOperand* op) {
-    return ToFloat64Register(op).low();
-  }
-
-  LowDwVfpRegister OutputFloat64Register(size_t index = 0) {
-    return ToFloat64Register(instr_->OutputAt(index));
-  }
-
-  LowDwVfpRegister InputFloat64Register(size_t index) {
-    return ToFloat64Register(instr_->InputAt(index));
-  }
-
-  LowDwVfpRegister ToFloat64Register(InstructionOperand* op) {
-    return LowDwVfpRegister::from_code(ToDoubleRegister(op).code());
-  }
-
   SBit OutputSBit() const {
     switch (instr_->flags_mode()) {
       case kFlags_branch:
@@ -125,13 +101,16 @@
       case kMode_Operand2_R:
       case kMode_Operand2_R_ASR_I:
       case kMode_Operand2_R_ASR_R:
-      case kMode_Operand2_R_LSL_I:
       case kMode_Operand2_R_LSL_R:
       case kMode_Operand2_R_LSR_I:
       case kMode_Operand2_R_LSR_R:
       case kMode_Operand2_R_ROR_I:
       case kMode_Operand2_R_ROR_R:
         break;
+      case kMode_Operand2_R_LSL_I:
+        *first_index += 3;
+        return MemOperand(InputRegister(index + 0), InputRegister(index + 1),
+                          LSL, InputInt32(index + 2));
       case kMode_Offset_RI:
         *first_index += 2;
         return MemOperand(InputRegister(index + 0), InputInt32(index + 1));
@@ -162,9 +141,9 @@
 
 namespace {
 
-class OutOfLineLoadFloat32 final : public OutOfLineCode {
+class OutOfLineLoadFloat final : public OutOfLineCode {
  public:
-  OutOfLineLoadFloat32(CodeGenerator* gen, SwVfpRegister result)
+  OutOfLineLoadFloat(CodeGenerator* gen, SwVfpRegister result)
       : OutOfLineCode(gen), result_(result) {}
 
   void Generate() final {
@@ -177,10 +156,9 @@
   SwVfpRegister const result_;
 };
 
-
-class OutOfLineLoadFloat64 final : public OutOfLineCode {
+class OutOfLineLoadDouble final : public OutOfLineCode {
  public:
-  OutOfLineLoadFloat64(CodeGenerator* gen, DwVfpRegister result)
+  OutOfLineLoadDouble(CodeGenerator* gen, DwVfpRegister result)
       : OutOfLineCode(gen), result_(result) {}
 
   void Generate() final {
@@ -327,24 +305,22 @@
 
 }  // namespace
 
-
-#define ASSEMBLE_CHECKED_LOAD_FLOAT(width)                           \
-  do {                                                               \
-    auto result = i.OutputFloat##width##Register();                  \
-    auto offset = i.InputRegister(0);                                \
-    if (instr->InputAt(1)->IsRegister()) {                           \
-      __ cmp(offset, i.InputRegister(1));                            \
-    } else {                                                         \
-      __ cmp(offset, i.InputImmediate(1));                           \
-    }                                                                \
-    auto ool = new (zone()) OutOfLineLoadFloat##width(this, result); \
-    __ b(hs, ool->entry());                                          \
-    __ vldr(result, i.InputOffset(2));                               \
-    __ bind(ool->exit());                                            \
-    DCHECK_EQ(LeaveCC, i.OutputSBit());                              \
+#define ASSEMBLE_CHECKED_LOAD_FP(Type)                         \
+  do {                                                         \
+    auto result = i.Output##Type##Register();                  \
+    auto offset = i.InputRegister(0);                          \
+    if (instr->InputAt(1)->IsRegister()) {                     \
+      __ cmp(offset, i.InputRegister(1));                      \
+    } else {                                                   \
+      __ cmp(offset, i.InputImmediate(1));                     \
+    }                                                          \
+    auto ool = new (zone()) OutOfLineLoad##Type(this, result); \
+    __ b(hs, ool->entry());                                    \
+    __ vldr(result, i.InputOffset(2));                         \
+    __ bind(ool->exit());                                      \
+    DCHECK_EQ(LeaveCC, i.OutputSBit());                        \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr)                \
   do {                                                          \
     auto result = i.OutputRegister();                           \
@@ -361,21 +337,19 @@
     DCHECK_EQ(LeaveCC, i.OutputSBit());                         \
   } while (0)
 
-
-#define ASSEMBLE_CHECKED_STORE_FLOAT(width)        \
-  do {                                             \
-    auto offset = i.InputRegister(0);              \
-    if (instr->InputAt(1)->IsRegister()) {         \
-      __ cmp(offset, i.InputRegister(1));          \
-    } else {                                       \
-      __ cmp(offset, i.InputImmediate(1));         \
-    }                                              \
-    auto value = i.InputFloat##width##Register(2); \
-    __ vstr(value, i.InputOffset(3), lo);          \
-    DCHECK_EQ(LeaveCC, i.OutputSBit());            \
+#define ASSEMBLE_CHECKED_STORE_FP(Type)      \
+  do {                                       \
+    auto offset = i.InputRegister(0);        \
+    if (instr->InputAt(1)->IsRegister()) {   \
+      __ cmp(offset, i.InputRegister(1));    \
+    } else {                                 \
+      __ cmp(offset, i.InputImmediate(1));   \
+    }                                        \
+    auto value = i.Input##Type##Register(2); \
+    __ vstr(value, i.InputOffset(3), lo);    \
+    DCHECK_EQ(LeaveCC, i.OutputSBit());      \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_STORE_INTEGER(asm_instr) \
   do {                                            \
     auto offset = i.InputRegister(0);             \
@@ -404,6 +378,35 @@
     __ dmb(ISH);                                                      \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                           \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 2, kScratchReg);                                \
+    __ MovToFloatParameters(i.InputDoubleRegister(0),                          \
+                            i.InputDoubleRegister(1));                         \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 2);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+    DCHECK_EQ(LeaveCC, i.OutputSBit());                                        \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                            \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 1, kScratchReg);                                \
+    __ MovToFloatParameter(i.InputDoubleRegister(0));                          \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 1);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+    DCHECK_EQ(LeaveCC, i.OutputSBit());                                        \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ LeaveFrame(StackFrame::MANUAL);
 }
@@ -584,6 +587,14 @@
       AssembleArchTableSwitch(instr);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
+    case kArchDebugBreak:
+      __ stop("kArchDebugBreak");
+      break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -619,7 +630,7 @@
       }
       break;
     case kArchTruncateDoubleToI:
-      __ TruncateDoubleToI(i.OutputRegister(), i.InputFloat64Register(0));
+      __ TruncateDoubleToI(i.OutputRegister(), i.InputDoubleRegister(0));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArchStoreWithWriteBarrier: {
@@ -663,6 +674,45 @@
       __ add(i.OutputRegister(0), base, Operand(offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kArmAdd:
       __ add(i.OutputRegister(), i.InputRegister(0), i.InputOperand2(1),
              i.OutputSBit());
@@ -684,7 +734,7 @@
              i.InputRegister(2), i.OutputSBit());
       break;
     case kArmMls: {
-      CpuFeatureScope scope(masm(), MLS);
+      CpuFeatureScope scope(masm(), ARMv7);
       __ mls(i.OutputRegister(), i.InputRegister(0), i.InputRegister(1),
              i.InputRegister(2));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
@@ -882,95 +932,95 @@
       break;
     case kArmVcmpF32:
       if (instr->InputAt(1)->IsFPRegister()) {
-        __ VFPCompareAndSetFlags(i.InputFloat32Register(0),
-                                 i.InputFloat32Register(1));
+        __ VFPCompareAndSetFlags(i.InputFloatRegister(0),
+                                 i.InputFloatRegister(1));
       } else {
         DCHECK(instr->InputAt(1)->IsImmediate());
         // 0.0 is the only immediate supported by vcmp instructions.
         DCHECK(i.InputFloat32(1) == 0.0f);
-        __ VFPCompareAndSetFlags(i.InputFloat32Register(0), i.InputFloat32(1));
+        __ VFPCompareAndSetFlags(i.InputFloatRegister(0), i.InputFloat32(1));
       }
       DCHECK_EQ(SetCC, i.OutputSBit());
       break;
     case kArmVaddF32:
-      __ vadd(i.OutputFloat32Register(), i.InputFloat32Register(0),
-              i.InputFloat32Register(1));
+      __ vadd(i.OutputFloatRegister(), i.InputFloatRegister(0),
+              i.InputFloatRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVsubF32:
-      __ vsub(i.OutputFloat32Register(), i.InputFloat32Register(0),
-              i.InputFloat32Register(1));
+      __ vsub(i.OutputFloatRegister(), i.InputFloatRegister(0),
+              i.InputFloatRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmulF32:
-      __ vmul(i.OutputFloat32Register(), i.InputFloat32Register(0),
-              i.InputFloat32Register(1));
+      __ vmul(i.OutputFloatRegister(), i.InputFloatRegister(0),
+              i.InputFloatRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmlaF32:
-      __ vmla(i.OutputFloat32Register(), i.InputFloat32Register(1),
-              i.InputFloat32Register(2));
+      __ vmla(i.OutputFloatRegister(), i.InputFloatRegister(1),
+              i.InputFloatRegister(2));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmlsF32:
-      __ vmls(i.OutputFloat32Register(), i.InputFloat32Register(1),
-              i.InputFloat32Register(2));
+      __ vmls(i.OutputFloatRegister(), i.InputFloatRegister(1),
+              i.InputFloatRegister(2));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVdivF32:
-      __ vdiv(i.OutputFloat32Register(), i.InputFloat32Register(0),
-              i.InputFloat32Register(1));
+      __ vdiv(i.OutputFloatRegister(), i.InputFloatRegister(0),
+              i.InputFloatRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVsqrtF32:
-      __ vsqrt(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vsqrt(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVabsF32:
-      __ vabs(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vabs(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVnegF32:
-      __ vneg(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vneg(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVcmpF64:
       if (instr->InputAt(1)->IsFPRegister()) {
-        __ VFPCompareAndSetFlags(i.InputFloat64Register(0),
-                                 i.InputFloat64Register(1));
+        __ VFPCompareAndSetFlags(i.InputDoubleRegister(0),
+                                 i.InputDoubleRegister(1));
       } else {
         DCHECK(instr->InputAt(1)->IsImmediate());
         // 0.0 is the only immediate supported by vcmp instructions.
         DCHECK(i.InputDouble(1) == 0.0);
-        __ VFPCompareAndSetFlags(i.InputFloat64Register(0), i.InputDouble(1));
+        __ VFPCompareAndSetFlags(i.InputDoubleRegister(0), i.InputDouble(1));
       }
       DCHECK_EQ(SetCC, i.OutputSBit());
       break;
     case kArmVaddF64:
-      __ vadd(i.OutputFloat64Register(), i.InputFloat64Register(0),
-              i.InputFloat64Register(1));
+      __ vadd(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
+              i.InputDoubleRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVsubF64:
-      __ vsub(i.OutputFloat64Register(), i.InputFloat64Register(0),
-              i.InputFloat64Register(1));
+      __ vsub(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
+              i.InputDoubleRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmulF64:
-      __ vmul(i.OutputFloat64Register(), i.InputFloat64Register(0),
-              i.InputFloat64Register(1));
+      __ vmul(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
+              i.InputDoubleRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmlaF64:
-      __ vmla(i.OutputFloat64Register(), i.InputFloat64Register(1),
-              i.InputFloat64Register(2));
+      __ vmla(i.OutputDoubleRegister(), i.InputDoubleRegister(1),
+              i.InputDoubleRegister(2));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmlsF64:
-      __ vmls(i.OutputFloat64Register(), i.InputFloat64Register(1),
-              i.InputFloat64Register(2));
+      __ vmls(i.OutputDoubleRegister(), i.InputDoubleRegister(1),
+              i.InputDoubleRegister(2));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVdivF64:
-      __ vdiv(i.OutputFloat64Register(), i.InputFloat64Register(0),
-              i.InputFloat64Register(1));
+      __ vdiv(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
+              i.InputDoubleRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmodF64: {
@@ -978,136 +1028,143 @@
       // and generate a CallAddress instruction instead.
       FrameScope scope(masm(), StackFrame::MANUAL);
       __ PrepareCallCFunction(0, 2, kScratchReg);
-      __ MovToFloatParameters(i.InputFloat64Register(0),
-                              i.InputFloat64Register(1));
+      __ MovToFloatParameters(i.InputDoubleRegister(0),
+                              i.InputDoubleRegister(1));
       __ CallCFunction(ExternalReference::mod_two_doubles_operation(isolate()),
                        0, 2);
       // Move the result in the double result register.
-      __ MovFromFloatResult(i.OutputFloat64Register());
+      __ MovFromFloatResult(i.OutputDoubleRegister());
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVsqrtF64:
-      __ vsqrt(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vsqrt(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVabsF64:
-      __ vabs(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vabs(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVnegF64:
-      __ vneg(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vneg(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVrintmF32:
-      __ vrintm(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vrintm(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVrintmF64:
-      __ vrintm(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vrintm(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVrintpF32:
-      __ vrintp(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vrintp(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVrintpF64:
-      __ vrintp(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vrintp(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVrintzF32:
-      __ vrintz(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vrintz(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVrintzF64:
-      __ vrintz(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vrintz(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVrintaF64:
-      __ vrinta(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vrinta(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVrintnF32:
-      __ vrintn(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      __ vrintn(i.OutputFloatRegister(), i.InputFloatRegister(0));
       break;
     case kArmVrintnF64:
-      __ vrintn(i.OutputFloat64Register(), i.InputFloat64Register(0));
+      __ vrintn(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
       break;
     case kArmVcvtF32F64: {
-      __ vcvt_f32_f64(i.OutputFloat32Register(), i.InputFloat64Register(0));
+      __ vcvt_f32_f64(i.OutputFloatRegister(), i.InputDoubleRegister(0));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtF64F32: {
-      __ vcvt_f64_f32(i.OutputFloat64Register(), i.InputFloat32Register(0));
+      __ vcvt_f64_f32(i.OutputDoubleRegister(), i.InputFloatRegister(0));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtF32S32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
       __ vmov(scratch, i.InputRegister(0));
-      __ vcvt_f32_s32(i.OutputFloat32Register(), scratch);
+      __ vcvt_f32_s32(i.OutputFloatRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtF32U32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
       __ vmov(scratch, i.InputRegister(0));
-      __ vcvt_f32_u32(i.OutputFloat32Register(), scratch);
+      __ vcvt_f32_u32(i.OutputFloatRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtF64S32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
       __ vmov(scratch, i.InputRegister(0));
-      __ vcvt_f64_s32(i.OutputFloat64Register(), scratch);
+      __ vcvt_f64_s32(i.OutputDoubleRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtF64U32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
       __ vmov(scratch, i.InputRegister(0));
-      __ vcvt_f64_u32(i.OutputFloat64Register(), scratch);
+      __ vcvt_f64_u32(i.OutputDoubleRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtS32F32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
-      __ vcvt_s32_f32(scratch, i.InputFloat32Register(0));
+      __ vcvt_s32_f32(scratch, i.InputFloatRegister(0));
       __ vmov(i.OutputRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtU32F32: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
-      __ vcvt_u32_f32(scratch, i.InputFloat32Register(0));
+      __ vcvt_u32_f32(scratch, i.InputFloatRegister(0));
       __ vmov(i.OutputRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtS32F64: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
-      __ vcvt_s32_f64(scratch, i.InputFloat64Register(0));
+      __ vcvt_s32_f64(scratch, i.InputDoubleRegister(0));
       __ vmov(i.OutputRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
     case kArmVcvtU32F64: {
       SwVfpRegister scratch = kScratchDoubleReg.low();
-      __ vcvt_u32_f64(scratch, i.InputFloat64Register(0));
+      __ vcvt_u32_f64(scratch, i.InputDoubleRegister(0));
       __ vmov(i.OutputRegister(), scratch);
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
+    case kArmVmovU32F32:
+      __ vmov(i.OutputRegister(), i.InputFloatRegister(0));
+      DCHECK_EQ(LeaveCC, i.OutputSBit());
+      break;
+    case kArmVmovF32U32:
+      __ vmov(i.OutputFloatRegister(), i.InputRegister(0));
+      DCHECK_EQ(LeaveCC, i.OutputSBit());
+      break;
     case kArmVmovLowU32F64:
-      __ VmovLow(i.OutputRegister(), i.InputFloat64Register(0));
+      __ VmovLow(i.OutputRegister(), i.InputDoubleRegister(0));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmovLowF64U32:
-      __ VmovLow(i.OutputFloat64Register(), i.InputRegister(1));
+      __ VmovLow(i.OutputDoubleRegister(), i.InputRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmovHighU32F64:
-      __ VmovHigh(i.OutputRegister(), i.InputFloat64Register(0));
+      __ VmovHigh(i.OutputRegister(), i.InputDoubleRegister(0));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmovHighF64U32:
-      __ VmovHigh(i.OutputFloat64Register(), i.InputRegister(1));
+      __ VmovHigh(i.OutputDoubleRegister(), i.InputRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmVmovF64U32U32:
-      __ vmov(i.OutputFloat64Register(), i.InputRegister(0),
-              i.InputRegister(1));
+      __ vmov(i.OutputDoubleRegister(), i.InputRegister(0), i.InputRegister(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     case kArmLdrb:
@@ -1118,65 +1175,50 @@
       __ ldrsb(i.OutputRegister(), i.InputOffset());
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    case kArmStrb: {
-      size_t index = 0;
-      MemOperand operand = i.InputOffset(&index);
-      __ strb(i.InputRegister(index), operand);
+    case kArmStrb:
+      __ strb(i.InputRegister(0), i.InputOffset(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    }
     case kArmLdrh:
       __ ldrh(i.OutputRegister(), i.InputOffset());
       break;
     case kArmLdrsh:
       __ ldrsh(i.OutputRegister(), i.InputOffset());
       break;
-    case kArmStrh: {
-      size_t index = 0;
-      MemOperand operand = i.InputOffset(&index);
-      __ strh(i.InputRegister(index), operand);
+    case kArmStrh:
+      __ strh(i.InputRegister(0), i.InputOffset(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    }
     case kArmLdr:
       __ ldr(i.OutputRegister(), i.InputOffset());
       break;
-    case kArmStr: {
-      size_t index = 0;
-      MemOperand operand = i.InputOffset(&index);
-      __ str(i.InputRegister(index), operand);
+    case kArmStr:
+      __ str(i.InputRegister(0), i.InputOffset(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    }
     case kArmVldrF32: {
-      __ vldr(i.OutputFloat32Register(), i.InputOffset());
+      __ vldr(i.OutputFloatRegister(), i.InputOffset());
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
     }
-    case kArmVstrF32: {
-      size_t index = 0;
-      MemOperand operand = i.InputOffset(&index);
-      __ vstr(i.InputFloat32Register(index), operand);
+    case kArmVstrF32:
+      __ vstr(i.InputFloatRegister(0), i.InputOffset(1));
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    }
     case kArmVldrF64:
-      __ vldr(i.OutputFloat64Register(), i.InputOffset());
+      __ vldr(i.OutputDoubleRegister(), i.InputOffset());
       DCHECK_EQ(LeaveCC, i.OutputSBit());
       break;
-    case kArmVstrF64: {
-      size_t index = 0;
-      MemOperand operand = i.InputOffset(&index);
-      __ vstr(i.InputFloat64Register(index), operand);
+    case kArmVstrF64:
+      __ vstr(i.InputDoubleRegister(0), i.InputOffset(1));
       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);
+      SwVfpRegister a = i.InputFloatRegister(0);
+      SwVfpRegister b = i.InputFloatRegister(1);
+      SwVfpRegister result = i.OutputFloatRegister();
       __ VFPCompareAndSetFlags(a, b);
       __ vsel(gt, result, a, b);
       break;
@@ -1184,9 +1226,9 @@
     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);
+      SwVfpRegister a = i.InputFloatRegister(0);
+      SwVfpRegister b = i.InputFloatRegister(1);
+      SwVfpRegister result = i.OutputFloatRegister();
       __ VFPCompareAndSetFlags(b, a);
       __ vsel(gt, result, a, b);
       break;
@@ -1194,9 +1236,9 @@
     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);
+      DwVfpRegister a = i.InputDoubleRegister(0);
+      DwVfpRegister b = i.InputDoubleRegister(1);
+      DwVfpRegister result = i.OutputDoubleRegister();
       __ VFPCompareAndSetFlags(a, b);
       __ vsel(gt, result, a, b);
       break;
@@ -1204,17 +1246,30 @@
     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);
+      DwVfpRegister a = i.InputDoubleRegister(0);
+      DwVfpRegister b = i.InputDoubleRegister(1);
+      DwVfpRegister result = i.OutputDoubleRegister();
       __ VFPCompareAndSetFlags(b, a);
       __ vsel(gt, result, a, b);
       break;
     }
+    case kArmFloat64SilenceNaN: {
+      DwVfpRegister value = i.InputDoubleRegister(0);
+      DwVfpRegister result = i.OutputDoubleRegister();
+      __ VFPCanonicalizeNaN(result, value);
+      break;
+    }
     case kArmPush:
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ vpush(i.InputDoubleRegister(0));
-        frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ vpush(i.InputDoubleRegister(0));
+          frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        } else {
+          DCHECK_EQ(MachineRepresentation::kFloat32, op->representation());
+          __ vpush(i.InputFloatRegister(0));
+          frame_access_state()->IncreaseSPDelta(1);
+        }
       } else {
         __ push(i.InputRegister(0));
         frame_access_state()->IncreaseSPDelta(1);
@@ -1243,10 +1298,10 @@
       ASSEMBLE_CHECKED_LOAD_INTEGER(ldr);
       break;
     case kCheckedLoadFloat32:
-      ASSEMBLE_CHECKED_LOAD_FLOAT(32);
+      ASSEMBLE_CHECKED_LOAD_FP(Float);
       break;
     case kCheckedLoadFloat64:
-      ASSEMBLE_CHECKED_LOAD_FLOAT(64);
+      ASSEMBLE_CHECKED_LOAD_FP(Double);
       break;
     case kCheckedStoreWord8:
       ASSEMBLE_CHECKED_STORE_INTEGER(strb);
@@ -1258,10 +1313,10 @@
       ASSEMBLE_CHECKED_STORE_INTEGER(str);
       break;
     case kCheckedStoreFloat32:
-      ASSEMBLE_CHECKED_STORE_FLOAT(32);
+      ASSEMBLE_CHECKED_STORE_FP(Float);
       break;
     case kCheckedStoreFloat64:
-      ASSEMBLE_CHECKED_STORE_FLOAT(64);
+      ASSEMBLE_CHECKED_STORE_FP(Double);
       break;
     case kCheckedLoadWord64:
     case kCheckedStoreWord64:
@@ -1522,6 +1577,7 @@
       switch (src.type()) {
         case Constant::kInt32:
           if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
               src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
             __ mov(dst, Operand(src.ToInt32(), src.rmode()));
           } else {
@@ -1566,13 +1622,13 @@
         __ mov(ip, Operand(bit_cast<int32_t>(src.ToFloat32())));
         __ str(ip, dst);
       } else {
-        SwVfpRegister dst = g.ToFloat32Register(destination);
+        SwVfpRegister dst = g.ToFloatRegister(destination);
         __ vmov(dst, src.ToFloat32());
       }
     } else {
       DCHECK_EQ(Constant::kFloat64, src.type());
       DwVfpRegister dst = destination->IsFPRegister()
-                              ? g.ToFloat64Register(destination)
+                              ? g.ToDoubleRegister(destination)
                               : kScratchDoubleReg;
       __ vmov(dst, src.ToFloat64(), kScratchReg);
       if (destination->IsFPStackSlot()) {
@@ -1580,23 +1636,50 @@
       }
     }
   } else if (source->IsFPRegister()) {
-    DwVfpRegister src = g.ToDoubleRegister(source);
-    if (destination->IsFPRegister()) {
-      DwVfpRegister dst = g.ToDoubleRegister(destination);
-      __ Move(dst, src);
+    MachineRepresentation rep = LocationOperand::cast(source)->representation();
+    if (rep == MachineRepresentation::kFloat64) {
+      DwVfpRegister src = g.ToDoubleRegister(source);
+      if (destination->IsFPRegister()) {
+        DwVfpRegister dst = g.ToDoubleRegister(destination);
+        __ Move(dst, src);
+      } else {
+        DCHECK(destination->IsFPStackSlot());
+        __ vstr(src, g.ToMemOperand(destination));
+      }
     } else {
-      DCHECK(destination->IsFPStackSlot());
-      __ vstr(src, g.ToMemOperand(destination));
+      DCHECK_EQ(MachineRepresentation::kFloat32, rep);
+      SwVfpRegister src = g.ToFloatRegister(source);
+      if (destination->IsFPRegister()) {
+        SwVfpRegister dst = g.ToFloatRegister(destination);
+        __ Move(dst, src);
+      } else {
+        DCHECK(destination->IsFPStackSlot());
+        __ vstr(src, g.ToMemOperand(destination));
+      }
     }
   } else if (source->IsFPStackSlot()) {
-    DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
+    MachineRepresentation rep =
+        LocationOperand::cast(destination)->representation();
     if (destination->IsFPRegister()) {
-      __ vldr(g.ToDoubleRegister(destination), src);
+      if (rep == MachineRepresentation::kFloat64) {
+        __ vldr(g.ToDoubleRegister(destination), src);
+      } else {
+        DCHECK_EQ(MachineRepresentation::kFloat32, rep);
+        __ vldr(g.ToFloatRegister(destination), src);
+      }
     } else {
-      DwVfpRegister temp = kScratchDoubleReg;
-      __ vldr(temp, src);
-      __ vstr(temp, g.ToMemOperand(destination));
+      DCHECK(destination->IsFPStackSlot());
+      if (rep == MachineRepresentation::kFloat64) {
+        DwVfpRegister temp = kScratchDoubleReg;
+        __ vldr(temp, src);
+        __ vstr(temp, g.ToMemOperand(destination));
+      } else {
+        DCHECK_EQ(MachineRepresentation::kFloat32, rep);
+        SwVfpRegister temp = kScratchDoubleReg.low();
+        __ vldr(temp, src);
+        __ vstr(temp, g.ToMemOperand(destination));
+      }
     }
   } else {
     UNREACHABLE();
@@ -1636,34 +1719,61 @@
     __ str(temp_0, dst);
     __ vstr(temp_1, src);
   } else if (source->IsFPRegister()) {
-    DwVfpRegister temp = kScratchDoubleReg;
-    DwVfpRegister src = g.ToDoubleRegister(source);
-    if (destination->IsFPRegister()) {
-      DwVfpRegister dst = g.ToDoubleRegister(destination);
-      __ Move(temp, src);
-      __ Move(src, dst);
-      __ Move(dst, temp);
+    MachineRepresentation rep = LocationOperand::cast(source)->representation();
+    LowDwVfpRegister temp = kScratchDoubleReg;
+    if (rep == MachineRepresentation::kFloat64) {
+      DwVfpRegister src = g.ToDoubleRegister(source);
+      if (destination->IsFPRegister()) {
+        DwVfpRegister dst = g.ToDoubleRegister(destination);
+        __ Move(temp, src);
+        __ Move(src, dst);
+        __ Move(dst, temp);
+      } else {
+        DCHECK(destination->IsFPStackSlot());
+        MemOperand dst = g.ToMemOperand(destination);
+        __ Move(temp, src);
+        __ vldr(src, dst);
+        __ vstr(temp, dst);
+      }
     } else {
-      DCHECK(destination->IsFPStackSlot());
-      MemOperand dst = g.ToMemOperand(destination);
-      __ Move(temp, src);
-      __ vldr(src, dst);
-      __ vstr(temp, dst);
+      DCHECK_EQ(MachineRepresentation::kFloat32, rep);
+      SwVfpRegister src = g.ToFloatRegister(source);
+      if (destination->IsFPRegister()) {
+        SwVfpRegister dst = g.ToFloatRegister(destination);
+        __ Move(temp.low(), src);
+        __ Move(src, dst);
+        __ Move(dst, temp.low());
+      } else {
+        DCHECK(destination->IsFPStackSlot());
+        MemOperand dst = g.ToMemOperand(destination);
+        __ Move(temp.low(), src);
+        __ vldr(src, dst);
+        __ vstr(temp.low(), dst);
+      }
     }
   } else if (source->IsFPStackSlot()) {
     DCHECK(destination->IsFPStackSlot());
     Register temp_0 = kScratchReg;
-    DwVfpRegister temp_1 = kScratchDoubleReg;
+    LowDwVfpRegister temp_1 = kScratchDoubleReg;
     MemOperand src0 = g.ToMemOperand(source);
-    MemOperand src1(src0.rn(), src0.offset() + kPointerSize);
     MemOperand dst0 = g.ToMemOperand(destination);
-    MemOperand dst1(dst0.rn(), dst0.offset() + kPointerSize);
-    __ vldr(temp_1, dst0);  // Save destination in temp_1.
-    __ ldr(temp_0, src0);   // Then use temp_0 to copy source to destination.
-    __ str(temp_0, dst0);
-    __ ldr(temp_0, src1);
-    __ str(temp_0, dst1);
-    __ vstr(temp_1, src0);
+    MachineRepresentation rep = LocationOperand::cast(source)->representation();
+    if (rep == MachineRepresentation::kFloat64) {
+      MemOperand src1(src0.rn(), src0.offset() + kPointerSize);
+      MemOperand dst1(dst0.rn(), dst0.offset() + kPointerSize);
+      __ vldr(temp_1, dst0);  // Save destination in temp_1.
+      __ ldr(temp_0, src0);   // Then use temp_0 to copy source to destination.
+      __ str(temp_0, dst0);
+      __ ldr(temp_0, src1);
+      __ str(temp_0, dst1);
+      __ vstr(temp_1, src0);
+    } else {
+      DCHECK_EQ(MachineRepresentation::kFloat32, rep);
+      __ vldr(temp_1.low(), dst0);  // Save destination in temp_1.
+      __ ldr(temp_0, src0);  // Then use temp_0 to copy source to destination.
+      __ str(temp_0, dst0);
+      __ vstr(temp_1.low(), src0);
+    }
   } else {
     // No other combinations are possible.
     UNREACHABLE();
diff --git a/src/compiler/arm/instruction-codes-arm.h b/src/compiler/arm/instruction-codes-arm.h
index fc371e0..bc3336f 100644
--- a/src/compiler/arm/instruction-codes-arm.h
+++ b/src/compiler/arm/instruction-codes-arm.h
@@ -92,6 +92,8 @@
   V(ArmVcvtU32F32)                 \
   V(ArmVcvtS32F64)                 \
   V(ArmVcvtU32F64)                 \
+  V(ArmVmovU32F32)                 \
+  V(ArmVmovF32U32)                 \
   V(ArmVmovLowU32F64)              \
   V(ArmVmovLowF64U32)              \
   V(ArmVmovHighU32F64)             \
@@ -105,6 +107,7 @@
   V(ArmFloat32Min)                 \
   V(ArmFloat64Max)                 \
   V(ArmFloat64Min)                 \
+  V(ArmFloat64SilenceNaN)          \
   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 ec28b72..065fe52 100644
--- a/src/compiler/arm/instruction-scheduler-arm.cc
+++ b/src/compiler/arm/instruction-scheduler-arm.cc
@@ -94,6 +94,8 @@
     case kArmVcvtU32F32:
     case kArmVcvtS32F64:
     case kArmVcvtU32F64:
+    case kArmVmovU32F32:
+    case kArmVmovF32U32:
     case kArmVmovLowU32F64:
     case kArmVmovLowF64U32:
     case kArmVmovHighU32F64:
@@ -103,6 +105,7 @@
     case kArmFloat64Min:
     case kArmFloat32Max:
     case kArmFloat32Min:
+    case kArmFloat64SilenceNaN:
       return kNoOpcodeFlags;
 
     case kArmVldrF32:
diff --git a/src/compiler/arm/instruction-selector-arm.cc b/src/compiler/arm/instruction-selector-arm.cc
index b2b1a70..e21e63f 100644
--- a/src/compiler/arm/instruction-selector-arm.cc
+++ b/src/compiler/arm/instruction-selector-arm.cc
@@ -115,6 +115,24 @@
   return false;
 }
 
+template <IrOpcode::Value kOpcode, int kImmMin, int kImmMax,
+          AddressingMode kImmMode>
+bool TryMatchShiftImmediate(InstructionSelector* selector,
+                            InstructionCode* opcode_return, Node* node,
+                            InstructionOperand* value_return,
+                            InstructionOperand* shift_return) {
+  ArmOperandGenerator g(selector);
+  if (node->opcode() == kOpcode) {
+    Int32BinopMatcher m(node);
+    if (m.right().IsInRange(kImmMin, kImmMax)) {
+      *opcode_return |= AddressingModeField::encode(kImmMode);
+      *value_return = g.UseRegister(m.left().node());
+      *shift_return = g.UseImmediate(m.right().node());
+      return true;
+    }
+  }
+  return false;
+}
 
 bool TryMatchROR(InstructionSelector* selector, InstructionCode* opcode_return,
                  Node* node, InstructionOperand* value_return,
@@ -142,6 +160,14 @@
                                                value_return, shift_return);
 }
 
+bool TryMatchLSLImmediate(InstructionSelector* selector,
+                          InstructionCode* opcode_return, Node* node,
+                          InstructionOperand* value_return,
+                          InstructionOperand* shift_return) {
+  return TryMatchShiftImmediate<IrOpcode::kWord32Shl, 0, 31,
+                                kMode_Operand2_R_LSL_I>(
+      selector, opcode_return, node, value_return, shift_return);
+}
 
 bool TryMatchLSR(InstructionSelector* selector, InstructionCode* opcode_return,
                  Node* node, InstructionOperand* value_return,
@@ -226,7 +252,14 @@
     inputs[input_count++] = g.Label(cont->false_block());
   }
 
-  outputs[output_count++] = g.DefineAsRegister(node);
+  if (cont->IsDeoptimize()) {
+    // If we can deoptimize as a result of the binop, we need to make sure that
+    // the deopt inputs are not overwritten by the binop result. One way
+    // to achieve that is to declare the output register as same-as-first.
+    outputs[output_count++] = g.DefineSameAsFirst(node);
+  } else {
+    outputs[output_count++] = g.DefineAsRegister(node);
+  }
   if (cont->IsSet()) {
     outputs[output_count++] = g.DefineAsRegister(cont->result());
   }
@@ -294,13 +327,14 @@
   InstructionOperand right_operand = g.UseRegister(m.right().node());
   EmitDiv(selector, div_opcode, f64i32_opcode, i32f64_opcode, div_operand,
           left_operand, right_operand);
-  if (selector->IsSupported(MLS)) {
+  if (selector->IsSupported(ARMv7)) {
     selector->Emit(kArmMls, result_operand, div_operand, right_operand,
                    left_operand);
   } else {
     InstructionOperand mul_operand = g.TempRegister();
     selector->Emit(kArmMul, mul_operand, div_operand, right_operand);
-    selector->Emit(kArmSub, result_operand, left_operand, mul_operand);
+    selector->Emit(kArmSub | AddressingModeField::encode(kMode_Operand2_R),
+                   result_operand, left_operand, mul_operand);
   }
 }
 
@@ -312,8 +346,11 @@
   ArmOperandGenerator g(this);
   Node* base = node->InputAt(0);
   Node* index = node->InputAt(1);
+  InstructionOperand inputs[3];
+  size_t input_count = 0;
+  InstructionOperand outputs[1];
 
-  ArchOpcode opcode = kArchNop;
+  InstructionCode opcode = kArchNop;
   switch (load_rep.representation()) {
     case MachineRepresentation::kFloat32:
       opcode = kArmVldrF32;
@@ -339,13 +376,24 @@
       return;
   }
 
+  outputs[0] = g.DefineAsRegister(node);
+  inputs[0] = g.UseRegister(base);
+
   if (g.CanBeImmediate(index, opcode)) {
-    Emit(opcode | AddressingModeField::encode(kMode_Offset_RI),
-         g.DefineAsRegister(node), g.UseRegister(base), g.UseImmediate(index));
+    input_count = 2;
+    inputs[1] = g.UseImmediate(index);
+    opcode |= AddressingModeField::encode(kMode_Offset_RI);
+  } else if ((opcode == kArmLdr) &&
+             TryMatchLSLImmediate(this, &opcode, index, &inputs[1],
+                                  &inputs[2])) {
+    input_count = 3;
   } else {
-    Emit(opcode | AddressingModeField::encode(kMode_Offset_RR),
-         g.DefineAsRegister(node), g.UseRegister(base), g.UseRegister(index));
+    input_count = 2;
+    inputs[1] = g.UseRegister(index);
+    opcode |= AddressingModeField::encode(kMode_Offset_RR);
   }
+
+  Emit(opcode, arraysize(outputs), outputs, input_count, inputs);
 }
 
 
@@ -397,7 +445,10 @@
     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;
     switch (rep) {
       case MachineRepresentation::kFloat32:
         opcode = kArmVstrF32;
@@ -423,13 +474,23 @@
         return;
     }
 
+    inputs[0] = g.UseRegister(value);
+    inputs[1] = g.UseRegister(base);
+
     if (g.CanBeImmediate(index, opcode)) {
-      Emit(opcode | AddressingModeField::encode(kMode_Offset_RI), g.NoOutput(),
-           g.UseRegister(base), g.UseImmediate(index), g.UseRegister(value));
+      input_count = 3;
+      inputs[2] = g.UseImmediate(index);
+      opcode |= AddressingModeField::encode(kMode_Offset_RI);
+    } else if ((opcode == kArmStr) &&
+               TryMatchLSLImmediate(this, &opcode, index, &inputs[2],
+                                    &inputs[3])) {
+      input_count = 4;
     } else {
-      Emit(opcode | AddressingModeField::encode(kMode_Offset_RR), g.NoOutput(),
-           g.UseRegister(base), g.UseRegister(index), g.UseRegister(value));
+      input_count = 3;
+      inputs[2] = g.UseRegister(index);
+      opcode |= AddressingModeField::encode(kMode_Offset_RR);
     }
+    Emit(opcode, 0, nullptr, input_count, inputs);
   }
 }
 
@@ -1022,7 +1083,7 @@
 void InstructionSelector::VisitInt32Sub(Node* node) {
   ArmOperandGenerator g(this);
   Int32BinopMatcher m(node);
-  if (IsSupported(MLS) && m.right().IsInt32Mul() &&
+  if (IsSupported(ARMv7) && m.right().IsInt32Mul() &&
       CanCover(node, m.right().node())) {
     Int32BinopMatcher mright(m.right().node());
     Emit(kArmMls, g.DefineAsRegister(node), g.UseRegister(mright.left().node()),
@@ -1150,20 +1211,14 @@
   VisitRR(this, kArmVcvtS32F64, node);
 }
 
-
 void InstructionSelector::VisitBitcastFloat32ToInt32(Node* node) {
-  VisitRR(this, kArmVmovLowU32F64, node);
+  VisitRR(this, kArmVmovU32F32, node);
 }
 
-
 void InstructionSelector::VisitBitcastInt32ToFloat32(Node* node) {
-  ArmOperandGenerator g(this);
-  Emit(kArmVmovLowF64U32, g.DefineAsRegister(node),
-       ImmediateOperand(ImmediateOperand::INLINE, 0),
-       g.UseRegister(node->InputAt(0)));
+  VisitRR(this, kArmVmovF32U32, node);
 }
 
-
 void InstructionSelector::VisitFloat32Add(Node* node) {
   ArmOperandGenerator g(this);
   Float32BinopMatcher m(node);
@@ -1313,6 +1368,10 @@
   VisitRRR(this, kArmFloat64Max, node);
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  VisitRR(this, kArmFloat64SilenceNaN, node);
+}
+
 void InstructionSelector::VisitFloat32Min(Node* node) {
   DCHECK(IsSupported(ARMv8));
   VisitRRR(this, kArmFloat32Min, node);
@@ -1332,7 +1391,6 @@
   VisitRR(this, kArmVabsF64, node);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRR(this, kArmVsqrtF32, node);
 }
@@ -1387,6 +1445,28 @@
   VisitRR(this, kArmVrintnF64, node);
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) {
+  VisitRR(this, kArmVnegF32, node);
+}
+
+void InstructionSelector::VisitFloat64Neg(Node* node) {
+  VisitRR(this, kArmVnegF64, node);
+}
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  ArmOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0),
+       g.UseFixed(node->InputAt(1), d1))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  ArmOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1891,9 +1971,13 @@
 // static
 MachineOperatorBuilder::Flags
 InstructionSelector::SupportedMachineOperatorFlags() {
-  MachineOperatorBuilder::Flags flags =
-      MachineOperatorBuilder::kInt32DivIsSafe |
-      MachineOperatorBuilder::kUint32DivIsSafe;
+  MachineOperatorBuilder::Flags flags;
+  if (CpuFeatures::IsSupported(SUDIV)) {
+    // The sdiv and udiv instructions correctly return 0 if the divisor is 0,
+    // but the fall-back implementation does not.
+    flags |= MachineOperatorBuilder::kInt32DivIsSafe |
+             MachineOperatorBuilder::kUint32DivIsSafe;
+  }
   if (CpuFeatures::IsSupported(ARMv7)) {
     flags |= MachineOperatorBuilder::kWord32ReverseBits;
   }
@@ -1910,11 +1994,20 @@
              MachineOperatorBuilder::kFloat32Min |
              MachineOperatorBuilder::kFloat32Max |
              MachineOperatorBuilder::kFloat64Min |
-             MachineOperatorBuilder::kFloat64Max;
+             MachineOperatorBuilder::kFloat64Max |
+             MachineOperatorBuilder::kFloat32Neg |
+             MachineOperatorBuilder::kFloat64Neg;
   }
   return flags;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/arm64/code-generator-arm64.cc b/src/compiler/arm64/code-generator-arm64.cc
index 0f9fb7c..479af7a 100644
--- a/src/compiler/arm64/code-generator-arm64.cc
+++ b/src/compiler/arm64/code-generator-arm64.cc
@@ -210,7 +210,8 @@
           return Operand(constant.ToInt32());
         }
       case Constant::kInt64:
-        if (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+        if (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+            constant.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
           return Operand(constant.ToInt64(), constant.rmode());
         } else {
           DCHECK(constant.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
@@ -400,6 +401,17 @@
 
 }  // namespace
 
+#define ASSEMBLE_BOUNDS_CHECK(offset, length, out_of_bounds)   \
+  do {                                                         \
+    if (length.IsImmediate() &&                                \
+        base::bits::IsPowerOfTwo64(length.ImmediateValue())) { \
+      __ Tst(offset, ~(length.ImmediateValue() - 1));          \
+      __ B(ne, out_of_bounds);                                 \
+    } else {                                                   \
+      __ Cmp(offset, length);                                  \
+      __ B(hs, out_of_bounds);                                 \
+    }                                                          \
+  } while (0)
 
 #define ASSEMBLE_CHECKED_LOAD_FLOAT(width)                         \
   do {                                                             \
@@ -407,37 +419,32 @@
     auto buffer = i.InputRegister(0);                              \
     auto offset = i.InputRegister32(1);                            \
     auto length = i.InputOperand32(2);                             \
-    __ Cmp(offset, length);                                        \
     auto ool = new (zone()) OutOfLineLoadNaN##width(this, result); \
-    __ B(hs, ool->entry());                                        \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, ool->entry());           \
     __ Ldr(result, MemOperand(buffer, offset, UXTW));              \
     __ Bind(ool->exit());                                          \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_LOAD_INTEGER(asm_instr)             \
   do {                                                       \
     auto result = i.OutputRegister32();                      \
     auto buffer = i.InputRegister(0);                        \
     auto offset = i.InputRegister32(1);                      \
     auto length = i.InputOperand32(2);                       \
-    __ Cmp(offset, length);                                  \
     auto ool = new (zone()) OutOfLineLoadZero(this, result); \
-    __ B(hs, ool->entry());                                  \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, ool->entry());     \
     __ asm_instr(result, MemOperand(buffer, offset, UXTW));  \
     __ Bind(ool->exit());                                    \
   } while (0)
 
-
 #define ASSEMBLE_CHECKED_LOAD_INTEGER_64(asm_instr)          \
   do {                                                       \
     auto result = i.OutputRegister();                        \
     auto buffer = i.InputRegister(0);                        \
     auto offset = i.InputRegister32(1);                      \
     auto length = i.InputOperand32(2);                       \
-    __ Cmp(offset, length);                                  \
     auto ool = new (zone()) OutOfLineLoadZero(this, result); \
-    __ B(hs, ool->entry());                                  \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, ool->entry());     \
     __ asm_instr(result, MemOperand(buffer, offset, UXTW));  \
     __ Bind(ool->exit());                                    \
   } while (0)
@@ -448,9 +455,8 @@
     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);                                     \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, &done);        \
     __ Str(value, MemOperand(buffer, offset, UXTW));     \
     __ Bind(&done);                                      \
   } while (0)
@@ -461,9 +467,8 @@
     auto offset = i.InputRegister32(1);                    \
     auto length = i.InputOperand32(2);                     \
     auto value = i.InputOrZeroRegister32(3);               \
-    __ Cmp(offset, length);                                \
     Label done;                                            \
-    __ B(hs, &done);                                       \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, &done);          \
     __ asm_instr(value, MemOperand(buffer, offset, UXTW)); \
     __ Bind(&done);                                        \
   } while (0)
@@ -474,9 +479,8 @@
     auto offset = i.InputRegister32(1);                    \
     auto length = i.InputOperand32(2);                     \
     auto value = i.InputOrZeroRegister64(3);               \
-    __ Cmp(offset, length);                                \
     Label done;                                            \
-    __ B(hs, &done);                                       \
+    ASSEMBLE_BOUNDS_CHECK(offset, length, &done);          \
     __ asm_instr(value, MemOperand(buffer, offset, UXTW)); \
     __ Bind(&done);                                        \
   } while (0)
@@ -509,6 +513,20 @@
     __ Dmb(InnerShareable, BarrierAll);                               \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 2);                                                   \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 1);                                                   \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   const CallDescriptor* descriptor = linkage()->GetIncomingDescriptor();
   if (descriptor->IsCFunctionCall() || descriptor->UseNativeStack()) {
@@ -711,6 +729,14 @@
     case kArchLookupSwitch:
       AssembleArchLookupSwitch(instr);
       break;
+    case kArchDebugBreak:
+      __ Debug("kArchDebugBreak", 0, BREAK);
+      break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -781,6 +807,45 @@
       __ Add(i.OutputRegister(0), base, Operand(offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kArm64Float32RoundDown:
       __ Frintm(i.OutputFloat32Register(), i.InputFloat32Register(0));
       break;
@@ -1035,6 +1100,7 @@
       // Pseudo instructions turned into tbz/tbnz in AssembleArchBranch.
       break;
     case kArm64CompareAndBranch32:
+    case kArm64CompareAndBranch:
       // Pseudo instruction turned into cbz/cbnz in AssembleArchBranch.
       break;
     case kArm64ClaimCSP: {
@@ -1180,6 +1246,9 @@
     case kArm64Float32Abs:
       __ Fabs(i.OutputFloat32Register(), i.InputFloat32Register(0));
       break;
+    case kArm64Float32Neg:
+      __ Fneg(i.OutputFloat32Register(), i.InputFloat32Register(0));
+      break;
     case kArm64Float32Sqrt:
       __ Fsqrt(i.OutputFloat32Register(), i.InputFloat32Register(0));
       break;
@@ -1357,6 +1426,9 @@
     case kArm64Float64MoveU64:
       __ Fmov(i.OutputFloat64Register(), i.InputRegister(0));
       break;
+    case kArm64Float64SilenceNaN:
+      __ CanonicalizeNaN(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
+      break;
     case kArm64U64MoveFloat64:
       __ Fmov(i.OutputRegister(), i.InputDoubleRegister(0));
       break;
@@ -1497,6 +1569,17 @@
       default:
         UNREACHABLE();
     }
+  } else if (opcode == kArm64CompareAndBranch) {
+    switch (condition) {
+      case kEqual:
+        __ Cbz(i.InputRegister64(0), tlabel);
+        break;
+      case kNotEqual:
+        __ Cbnz(i.InputRegister64(0), tlabel);
+        break;
+      default:
+        UNREACHABLE();
+    }
   } else if (opcode == kArm64TestAndBranch32) {
     switch (condition) {
       case kEqual:
diff --git a/src/compiler/arm64/instruction-codes-arm64.h b/src/compiler/arm64/instruction-codes-arm64.h
index f03c2fb..2b5fe33 100644
--- a/src/compiler/arm64/instruction-codes-arm64.h
+++ b/src/compiler/arm64/instruction-codes-arm64.h
@@ -78,6 +78,7 @@
   V(Arm64TestAndBranch32)          \
   V(Arm64TestAndBranch)            \
   V(Arm64CompareAndBranch32)       \
+  V(Arm64CompareAndBranch)         \
   V(Arm64ClaimCSP)                 \
   V(Arm64ClaimJSSP)                \
   V(Arm64PokeCSP)                  \
@@ -91,6 +92,7 @@
   V(Arm64Float32Max)               \
   V(Arm64Float32Min)               \
   V(Arm64Float32Abs)               \
+  V(Arm64Float32Neg)               \
   V(Arm64Float32Sqrt)              \
   V(Arm64Float32RoundDown)         \
   V(Arm64Float64Cmp)               \
@@ -112,6 +114,7 @@
   V(Arm64Float64RoundTruncate)     \
   V(Arm64Float32RoundTiesEven)     \
   V(Arm64Float64RoundTiesEven)     \
+  V(Arm64Float64SilenceNaN)        \
   V(Arm64Float32ToFloat64)         \
   V(Arm64Float64ToFloat32)         \
   V(Arm64Float32ToInt32)           \
diff --git a/src/compiler/arm64/instruction-scheduler-arm64.cc b/src/compiler/arm64/instruction-scheduler-arm64.cc
index 4320d56..f3797c2 100644
--- a/src/compiler/arm64/instruction-scheduler-arm64.cc
+++ b/src/compiler/arm64/instruction-scheduler-arm64.cc
@@ -85,6 +85,7 @@
     case kArm64Float32Max:
     case kArm64Float32Min:
     case kArm64Float32Abs:
+    case kArm64Float32Neg:
     case kArm64Float32Sqrt:
     case kArm64Float32RoundDown:
     case kArm64Float64Cmp:
@@ -130,11 +131,13 @@
     case kArm64Float64InsertHighWord32:
     case kArm64Float64MoveU64:
     case kArm64U64MoveFloat64:
+    case kArm64Float64SilenceNaN:
       return kNoOpcodeFlags;
 
     case kArm64TestAndBranch32:
     case kArm64TestAndBranch:
     case kArm64CompareAndBranch32:
+    case kArm64CompareAndBranch:
       return kIsBlockTerminator;
 
     case kArm64LdrS:
@@ -291,6 +294,7 @@
 
     case kArm64Float32Abs:
     case kArm64Float32Cmp:
+    case kArm64Float32Neg:
     case kArm64Float64Abs:
     case kArm64Float64Cmp:
     case kArm64Float64Neg:
diff --git a/src/compiler/arm64/instruction-selector-arm64.cc b/src/compiler/arm64/instruction-selector-arm64.cc
index 240a4f2..637acac 100644
--- a/src/compiler/arm64/instruction-selector-arm64.cc
+++ b/src/compiler/arm64/instruction-selector-arm64.cc
@@ -256,36 +256,96 @@
   }
 }
 
+// Bitfields describing binary operator properties:
+// CanCommuteField is true if we can switch the two operands, potentially
+// requiring commuting the flags continuation condition.
+typedef BitField8<bool, 1, 1> CanCommuteField;
+// MustCommuteCondField is true when we need to commute the flags continuation
+// condition in order to switch the operands.
+typedef BitField8<bool, 2, 1> MustCommuteCondField;
+// IsComparisonField is true when the operation is a comparison and has no other
+// result other than the condition.
+typedef BitField8<bool, 3, 1> IsComparisonField;
+// IsAddSubField is true when an instruction is encoded as ADD or SUB.
+typedef BitField8<bool, 4, 1> IsAddSubField;
+
+// Get properties of a binary operator.
+uint8_t GetBinopProperties(InstructionCode opcode) {
+  uint8_t result = 0;
+  switch (opcode) {
+    case kArm64Cmp32:
+    case kArm64Cmp:
+      // We can commute CMP by switching the inputs and commuting
+      // the flags continuation.
+      result = CanCommuteField::update(result, true);
+      result = MustCommuteCondField::update(result, true);
+      result = IsComparisonField::update(result, true);
+      // The CMP and CMN instructions are encoded as SUB or ADD
+      // with zero output register, and therefore support the same
+      // operand modes.
+      result = IsAddSubField::update(result, true);
+      break;
+    case kArm64Cmn32:
+    case kArm64Cmn:
+      result = CanCommuteField::update(result, true);
+      result = IsComparisonField::update(result, true);
+      result = IsAddSubField::update(result, true);
+      break;
+    case kArm64Add32:
+    case kArm64Add:
+      result = CanCommuteField::update(result, true);
+      result = IsAddSubField::update(result, true);
+      break;
+    case kArm64Sub32:
+    case kArm64Sub:
+      result = IsAddSubField::update(result, true);
+      break;
+    case kArm64Tst32:
+    case kArm64Tst:
+      result = CanCommuteField::update(result, true);
+      result = IsComparisonField::update(result, true);
+      break;
+    case kArm64And32:
+    case kArm64And:
+    case kArm64Or32:
+    case kArm64Or:
+    case kArm64Eor32:
+    case kArm64Eor:
+      result = CanCommuteField::update(result, true);
+      break;
+    default:
+      UNREACHABLE();
+      return 0;
+  }
+  DCHECK_IMPLIES(MustCommuteCondField::decode(result),
+                 CanCommuteField::decode(result));
+  return result;
+}
+
 // Shared routine for multiple binary operations.
 template <typename Matcher>
 void VisitBinop(InstructionSelector* selector, Node* node,
                 InstructionCode opcode, ImmediateMode operand_mode,
                 FlagsContinuation* cont) {
   Arm64OperandGenerator g(selector);
-  Matcher m(node);
   InstructionOperand inputs[5];
   size_t input_count = 0;
   InstructionOperand outputs[2];
   size_t output_count = 0;
-  bool is_cmp = (opcode == kArm64Cmp32) || (opcode == kArm64Cmn32);
 
-  // We can commute cmp by switching the inputs and commuting the flags
-  // continuation.
-  bool can_commute = m.HasProperty(Operator::kCommutative) || is_cmp;
+  Node* left_node = node->InputAt(0);
+  Node* right_node = node->InputAt(1);
 
-  // The cmp and cmn instructions are encoded as sub or add with zero output
-  // register, and therefore support the same operand modes.
-  bool is_add_sub = m.IsInt32Add() || m.IsInt64Add() || m.IsInt32Sub() ||
-                    m.IsInt64Sub() || is_cmp;
-
-  Node* left_node = m.left().node();
-  Node* right_node = m.right().node();
+  uint8_t properties = GetBinopProperties(opcode);
+  bool can_commute = CanCommuteField::decode(properties);
+  bool must_commute_cond = MustCommuteCondField::decode(properties);
+  bool is_add_sub = IsAddSubField::decode(properties);
 
   if (g.CanBeImmediate(right_node, operand_mode)) {
     inputs[input_count++] = g.UseRegister(left_node);
     inputs[input_count++] = g.UseImmediate(right_node);
-  } else if (is_cmp && g.CanBeImmediate(left_node, operand_mode)) {
-    cont->Commute();
+  } else if (can_commute && g.CanBeImmediate(left_node, operand_mode)) {
+    if (must_commute_cond) cont->Commute();
     inputs[input_count++] = g.UseRegister(right_node);
     inputs[input_count++] = g.UseImmediate(left_node);
   } else if (is_add_sub &&
@@ -295,7 +355,7 @@
   } else if (is_add_sub && can_commute &&
              TryMatchAnyExtend(&g, selector, node, right_node, left_node,
                                &inputs[0], &inputs[1], &opcode)) {
-    if (is_cmp) cont->Commute();
+    if (must_commute_cond) cont->Commute();
     input_count += 2;
   } else if (TryMatchAnyShift(selector, node, right_node, &opcode,
                               !is_add_sub)) {
@@ -305,7 +365,7 @@
     inputs[input_count++] = g.UseImmediate(m_shift.right().node());
   } else if (can_commute && TryMatchAnyShift(selector, node, left_node, &opcode,
                                              !is_add_sub)) {
-    if (is_cmp) cont->Commute();
+    if (must_commute_cond) cont->Commute();
     Matcher m_shift(left_node);
     inputs[input_count++] = g.UseRegisterOrImmediateZero(right_node);
     inputs[input_count++] = g.UseRegister(m_shift.left().node());
@@ -320,7 +380,7 @@
     inputs[input_count++] = g.Label(cont->false_block());
   }
 
-  if (!is_cmp) {
+  if (!IsComparisonField::decode(properties)) {
     outputs[output_count++] = g.DefineAsRegister(node);
   }
 
@@ -329,7 +389,7 @@
   }
 
   DCHECK_NE(0u, input_count);
-  DCHECK((output_count != 0) || is_cmp);
+  DCHECK((output_count != 0) || IsComparisonField::decode(properties));
   DCHECK_GE(arraysize(inputs), input_count);
   DCHECK_GE(arraysize(outputs), output_count);
 
@@ -593,6 +653,17 @@
       UNREACHABLE();
       return;
   }
+  // If the length is a constant power of two, allow the code generator to
+  // pick a more efficient bounds check sequence by passing the length as an
+  // immediate.
+  if (length->opcode() == IrOpcode::kInt32Constant) {
+    Int32Matcher m(length);
+    if (m.IsPowerOf2()) {
+      Emit(opcode, g.DefineAsRegister(node), g.UseRegister(buffer),
+           g.UseRegister(offset), g.UseImmediate(length));
+      return;
+    }
+  }
   Emit(opcode, g.DefineAsRegister(node), g.UseRegister(buffer),
        g.UseRegister(offset), g.UseOperand(length, kArithmeticImm));
 }
@@ -632,6 +703,17 @@
       UNREACHABLE();
       return;
   }
+  // If the length is a constant power of two, allow the code generator to
+  // pick a more efficient bounds check sequence by passing the length as an
+  // immediate.
+  if (length->opcode() == IrOpcode::kInt32Constant) {
+    Int32Matcher m(length);
+    if (m.IsPowerOf2()) {
+      Emit(opcode, g.NoOutput(), g.UseRegister(buffer), g.UseRegister(offset),
+           g.UseImmediate(length), g.UseRegisterOrImmediateZero(value));
+      return;
+    }
+  }
   Emit(opcode, g.NoOutput(), g.UseRegister(buffer), g.UseRegister(offset),
        g.UseOperand(length, kArithmeticImm),
        g.UseRegisterOrImmediateZero(value));
@@ -1665,7 +1747,6 @@
   VisitRR(this, kArm64Float64Abs, node);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRR(this, kArm64Float32Sqrt, node);
 }
@@ -1720,6 +1801,28 @@
   VisitRR(this, kArm64Float64RoundTiesEven, node);
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) {
+  VisitRR(this, kArm64Float32Neg, node);
+}
+
+void InstructionSelector::VisitFloat64Neg(Node* node) {
+  VisitRR(this, kArm64Float64Neg, node);
+}
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  Arm64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0),
+       g.UseFixed(node->InputAt(1), d1))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  Arm64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1853,6 +1956,23 @@
   VisitWordTest(selector, node, kArm64Tst, cont);
 }
 
+template <typename Matcher, ArchOpcode kOpcode>
+bool TryEmitTestAndBranch(InstructionSelector* selector, Node* node,
+                          FlagsContinuation* cont) {
+  Arm64OperandGenerator g(selector);
+  Matcher m(node);
+  if (cont->IsBranch() && m.right().HasValue() &&
+      (base::bits::CountPopulation(m.right().Value()) == 1)) {
+    // If the mask has only one bit set, we can use tbz/tbnz.
+    DCHECK((cont->condition() == kEqual) || (cont->condition() == kNotEqual));
+    selector->Emit(
+        cont->Encode(kOpcode), g.NoOutput(), g.UseRegister(m.left().node()),
+        g.TempImmediate(base::bits::CountTrailingZeros(m.right().Value())),
+        g.Label(cont->true_block()), g.Label(cont->false_block()));
+    return true;
+  }
+  return false;
+}
 
 // Shared routine for multiple float32 compare operations.
 void VisitFloat32Compare(InstructionSelector* selector, Node* node,
@@ -1897,6 +2017,8 @@
   while (selector->CanCover(user, value)) {
     switch (value->opcode()) {
       case IrOpcode::kWord32Equal: {
+        // Combine with comparisons against 0 by simply inverting the
+        // continuation.
         Int32BinopMatcher m(value);
         if (m.right().Is(0)) {
           user = value;
@@ -1919,10 +2041,33 @@
       case IrOpcode::kUint32LessThanOrEqual:
         cont->OverwriteAndNegateIfEqual(kUnsignedLessThanOrEqual);
         return VisitWord32Compare(selector, value, cont);
-      case IrOpcode::kWord64Equal:
+      case IrOpcode::kWord64Equal: {
         cont->OverwriteAndNegateIfEqual(kEqual);
+        Int64BinopMatcher m(value);
+        if (m.right().Is(0)) {
+          Node* const left = m.left().node();
+          if (selector->CanCover(value, left) &&
+              left->opcode() == IrOpcode::kWord64And) {
+            // Attempt to merge the Word64Equal(Word64And(x, y), 0) comparison
+            // into a tbz/tbnz instruction.
+            if (TryEmitTestAndBranch<Uint64BinopMatcher, kArm64TestAndBranch>(
+                    selector, left, cont)) {
+              return;
+            }
+            return VisitWordCompare(selector, left, kArm64Tst, cont, true,
+                                    kLogical64Imm);
+          }
+          // Merge the Word64Equal(x, 0) comparison into a cbz instruction.
+          if (cont->IsBranch()) {
+            selector->Emit(cont->Encode(kArm64CompareAndBranch), g.NoOutput(),
+                           g.UseRegister(left), g.Label(cont->true_block()),
+                           g.Label(cont->false_block()));
+            return;
+          }
+        }
         return VisitWordCompare(selector, value, kArm64Cmp, cont, false,
                                 kArithmeticImm);
+      }
       case IrOpcode::kInt64LessThan:
         cont->OverwriteAndNegateIfEqual(kSignedLessThan);
         return VisitWordCompare(selector, value, kArm64Cmp, cont, false,
@@ -1997,42 +2142,20 @@
                                 kArithmeticImm);
       case IrOpcode::kInt32Sub:
         return VisitWord32Compare(selector, value, cont);
-      case IrOpcode::kWord32And: {
-        Int32BinopMatcher m(value);
-        if (cont->IsBranch() && m.right().HasValue() &&
-            (base::bits::CountPopulation32(m.right().Value()) == 1)) {
-          // If the mask has only one bit set, we can use tbz/tbnz.
-          DCHECK((cont->condition() == kEqual) ||
-                 (cont->condition() == kNotEqual));
-          selector->Emit(
-              cont->Encode(kArm64TestAndBranch32), g.NoOutput(),
-              g.UseRegister(m.left().node()),
-              g.TempImmediate(
-                  base::bits::CountTrailingZeros32(m.right().Value())),
-              g.Label(cont->true_block()), g.Label(cont->false_block()));
+      case IrOpcode::kWord32And:
+        if (TryEmitTestAndBranch<Uint32BinopMatcher, kArm64TestAndBranch32>(
+                selector, value, cont)) {
           return;
         }
         return VisitWordCompare(selector, value, kArm64Tst32, cont, true,
                                 kLogical32Imm);
-      }
-      case IrOpcode::kWord64And: {
-        Int64BinopMatcher m(value);
-        if (cont->IsBranch() && m.right().HasValue() &&
-            (base::bits::CountPopulation64(m.right().Value()) == 1)) {
-          // If the mask has only one bit set, we can use tbz/tbnz.
-          DCHECK((cont->condition() == kEqual) ||
-                 (cont->condition() == kNotEqual));
-          selector->Emit(
-              cont->Encode(kArm64TestAndBranch), g.NoOutput(),
-              g.UseRegister(m.left().node()),
-              g.TempImmediate(
-                  base::bits::CountTrailingZeros64(m.right().Value())),
-              g.Label(cont->true_block()), g.Label(cont->false_block()));
+      case IrOpcode::kWord64And:
+        if (TryEmitTestAndBranch<Uint64BinopMatcher, kArm64TestAndBranch>(
+                selector, value, cont)) {
           return;
         }
         return VisitWordCompare(selector, value, kArm64Tst, cont, true,
                                 kLogical64Imm);
-      }
       default:
         break;
     }
@@ -2338,6 +2461,10 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  VisitRR(this, kArm64Float64SilenceNaN, node);
+}
+
 void InstructionSelector::VisitAtomicLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
   Arm64OperandGenerator g(this);
@@ -2414,7 +2541,16 @@
          MachineOperatorBuilder::kInt32DivIsSafe |
          MachineOperatorBuilder::kUint32DivIsSafe |
          MachineOperatorBuilder::kWord32ReverseBits |
-         MachineOperatorBuilder::kWord64ReverseBits;
+         MachineOperatorBuilder::kWord64ReverseBits |
+         MachineOperatorBuilder::kFloat32Neg |
+         MachineOperatorBuilder::kFloat64Neg;
+}
+
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
 }
 
 }  // namespace compiler
diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc
index da8b626..d8d60f3 100644
--- a/src/compiler/ast-graph-builder.cc
+++ b/src/compiler/ast-graph-builder.cc
@@ -281,9 +281,9 @@
     return NewPathToken(TokenDispenserForFinally::kFallThroughToken);
   }
   Node* NewPathDispatchCondition(Node* t1, Node* t2) {
-    // TODO(mstarzinger): This should be machine()->WordEqual(), but our Phi
-    // nodes all have kRepTagged|kTypeAny, which causes representation mismatch.
-    return owner_->NewNode(owner_->javascript()->StrictEqual(), t1, t2);
+    return owner_->NewNode(
+        owner_->javascript()->StrictEqual(CompareOperationHints::Any()), t1,
+        t2);
   }
 
  private:
@@ -416,8 +416,15 @@
   FrameStateBeforeAndAfter(AstGraphBuilder* builder, BailoutId id_before)
       : builder_(builder), frame_state_before_(nullptr) {
     frame_state_before_ = id_before == BailoutId::None()
-                              ? builder_->jsgraph()->EmptyFrameState()
+                              ? builder_->GetEmptyFrameState()
                               : builder_->environment()->Checkpoint(id_before);
+    if (id_before != BailoutId::None()) {
+      // Create an explicit checkpoint node for before the operation.
+      Node* node = builder_->NewNode(builder_->common()->Checkpoint());
+      DCHECK_EQ(IrOpcode::kDead,
+                NodeProperties::GetFrameStateInput(node, 0)->opcode());
+      NodeProperties::ReplaceFrameStateInput(node, 0, frame_state_before_);
+    }
   }
 
   void AddToNode(
@@ -435,7 +442,7 @@
 
       Node* frame_state_after =
           id_after == BailoutId::None()
-              ? builder_->jsgraph()->EmptyFrameState()
+              ? builder_->GetEmptyFrameState()
               : builder_->environment()->Checkpoint(id_after, combine,
                                                     node_has_exception);
 
@@ -444,6 +451,7 @@
 
     if (count >= 2) {
       // Add the frame state for before the operation.
+      // TODO(mstarzinger): Get rid of frame state input before!
       DCHECK_EQ(IrOpcode::kDead,
                 NodeProperties::GetFrameStateInput(node, 1)->opcode());
       NodeProperties::ReplaceFrameStateInput(node, 1, frame_state_before_);
@@ -539,6 +547,18 @@
   return new_target_.get();
 }
 
+Node* AstGraphBuilder::GetEmptyFrameState() {
+  if (!empty_frame_state_.is_set()) {
+    const Operator* op = common()->FrameState(
+        BailoutId::None(), OutputFrameStateCombine::Ignore(), nullptr);
+    Node* node = graph()->NewNode(
+        op, jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(),
+        jsgraph()->EmptyStateValues(), jsgraph()->NoContextConstant(),
+        jsgraph()->UndefinedConstant(), graph()->start());
+    empty_frame_state_.set(node);
+  }
+  return empty_frame_state_.get();
+}
 
 bool AstGraphBuilder::CreateGraph(bool stack_check) {
   Scope* scope = info()->scope();
@@ -875,7 +895,7 @@
                                                OutputFrameStateCombine combine,
                                                bool owner_has_exception) {
   if (!builder()->info()->is_deoptimization_enabled()) {
-    return builder()->jsgraph()->EmptyFrameState();
+    return builder()->GetEmptyFrameState();
   }
 
   UpdateStateValues(&parameters_node_, 0, parameters_count());
@@ -1112,18 +1132,10 @@
       }
       break;
     case VariableLocation::LOOKUP: {
+      DCHECK(!hole_init);
       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);
+      const Operator* op = javascript()->CallRuntime(Runtime::kDeclareEvalVar);
+      Node* store = NewNode(op, name);
       PrepareFrameState(store, decl->proxy()->id());
       break;
     }
@@ -1162,11 +1174,9 @@
       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);
+          javascript()->CallRuntime(Runtime::kDeclareEvalFunction);
+      Node* store = NewNode(op, name, value);
       PrepareFrameState(store, decl->proxy()->id());
       break;
     }
@@ -1289,7 +1299,15 @@
     VisitForValue(clause->label());
     Node* label = environment()->Pop();
     Node* tag = environment()->Top();
-    const Operator* op = javascript()->StrictEqual();
+
+    CompareOperationHints hints;
+    if (!type_hint_analysis_ ||
+        !type_hint_analysis_->GetCompareOperationHints(clause->CompareId(),
+                                                       &hints)) {
+      hints = CompareOperationHints::Any();
+    }
+
+    const Operator* op = javascript()->StrictEqual(hints);
     Node* condition = NewNode(op, tag, label);
     compare_switch.BeginLabel(i, condition);
 
@@ -1365,10 +1383,12 @@
   for_block.BeginBlock();
   // Check for null or undefined before entering loop.
   Node* is_null_cond =
-      NewNode(javascript()->StrictEqual(), object, jsgraph()->NullConstant());
+      NewNode(javascript()->StrictEqual(CompareOperationHints::Any()), object,
+              jsgraph()->NullConstant());
   for_block.BreakWhen(is_null_cond, BranchHint::kFalse);
-  Node* is_undefined_cond = NewNode(javascript()->StrictEqual(), object,
-                                    jsgraph()->UndefinedConstant());
+  Node* is_undefined_cond =
+      NewNode(javascript()->StrictEqual(CompareOperationHints::Any()), object,
+              jsgraph()->UndefinedConstant());
   for_block.BreakWhen(is_undefined_cond, BranchHint::kFalse);
   {
     // Convert object to jsobject.
@@ -1411,8 +1431,9 @@
       PrepareFrameState(value, stmt->FilterId(),
                         OutputFrameStateCombine::Push());
       IfBuilder test_value(this);
-      Node* test_value_cond = NewNode(javascript()->StrictEqual(), value,
-                                      jsgraph()->UndefinedConstant());
+      Node* test_value_cond =
+          NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                  value, jsgraph()->UndefinedConstant());
       test_value.If(test_value_cond, BranchHint::kFalse);
       test_value.Then();
       test_value.Else();
@@ -1602,12 +1623,12 @@
   environment()->Push(literal);
 
   // Load the "prototype" from the constructor.
-  FrameStateBeforeAndAfter states(this, expr->CreateLiteralId());
+  PrepareEagerCheckpoint(expr->CreateLiteralId());
   Handle<Name> name = isolate()->factory()->prototype_string();
   VectorSlotPair pair = CreateVectorSlotPair(expr->PrototypeSlot());
   Node* prototype = BuildNamedLoad(literal, name, pair);
-  states.AddToNode(prototype, expr->PrototypeId(),
-                   OutputFrameStateCombine::Push());
+  PrepareFrameState(prototype, expr->PrototypeId(),
+                    OutputFrameStateCombine::Push());
   environment()->Push(prototype);
 
   // Create nodes to store method values into the literal.
@@ -1647,7 +1668,8 @@
             jsgraph()->Constant(property->NeedsSetFunctionName());
         const Operator* op =
             javascript()->CallRuntime(Runtime::kDefineDataPropertyInLiteral);
-        NewNode(op, receiver, key, value, attr, set_function_name);
+        Node* call = NewNode(op, receiver, key, value, attr, set_function_name);
+        PrepareFrameState(call, BailoutId::None());
         break;
       }
       case ObjectLiteral::Property::GETTER: {
@@ -1676,12 +1698,11 @@
   // Assign to class variable.
   if (expr->class_variable_proxy() != nullptr) {
     Variable* var = expr->class_variable_proxy()->var();
-    FrameStateBeforeAndAfter states(this, BailoutId::None());
     VectorSlotPair feedback = CreateVectorSlotPair(
         expr->NeedsProxySlot() ? expr->ProxySlot()
                                : FeedbackVectorSlot::Invalid());
     BuildVariableAssignment(var, literal, Token::INIT, feedback,
-                            BailoutId::None(), states);
+                            BailoutId::None());
   }
   ast_context()->ProduceValue(literal);
 }
@@ -1715,8 +1736,8 @@
 
 void AstGraphBuilder::VisitVariableProxy(VariableProxy* expr) {
   VectorSlotPair pair = CreateVectorSlotPair(expr->VariableFeedbackSlot());
-  FrameStateBeforeAndAfter states(this, BeforeId(expr));
-  Node* value = BuildVariableLoad(expr->var(), expr->id(), states, pair,
+  PrepareEagerCheckpoint(BeforeId(expr));
+  Node* value = BuildVariableLoad(expr->var(), expr->id(), pair,
                                   ast_context()->GetStateCombine());
   ast_context()->ProduceValue(value);
 }
@@ -1776,15 +1797,15 @@
         if (key->value()->IsInternalizedString()) {
           if (property->emit_store()) {
             VisitForValue(property->value());
-            FrameStateBeforeAndAfter states(this, property->value()->id());
+            PrepareEagerCheckpoint(property->value()->id());
             Node* value = environment()->Pop();
             Node* literal = environment()->Top();
             Handle<Name> name = key->AsPropertyName();
             VectorSlotPair feedback =
                 CreateVectorSlotPair(property->GetSlot(0));
             Node* store = BuildNamedStore(literal, name, value, feedback);
-            states.AddToNode(store, key->id(),
-                             OutputFrameStateCombine::Ignore());
+            PrepareFrameState(store, key->id(),
+                              OutputFrameStateCombine::Ignore());
             BuildSetHomeObject(value, literal, property, 1);
           } else {
             VisitForEffect(property->value());
@@ -1823,12 +1844,16 @@
       }
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1849,8 +1874,7 @@
     const Operator* op =
         javascript()->CallRuntime(Runtime::kDefineAccessorPropertyUnchecked);
     Node* call = NewNode(op, literal, name, getter, setter, attr);
-    // This should not lazy deopt on a new literal.
-    PrepareFrameState(call, BailoutId::None());
+    PrepareFrameState(call, it->second->bailout_id);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1896,7 +1920,8 @@
             jsgraph()->Constant(property->NeedsSetFunctionName());
         const Operator* op =
             javascript()->CallRuntime(Runtime::kDefineDataPropertyInLiteral);
-        NewNode(op, receiver, key, value, attr, set_function_name);
+        Node* call = NewNode(op, receiver, key, value, attr, set_function_name);
+        PrepareFrameState(call, expr->GetIdForPropertySet(property_index));
         break;
       }
       case ObjectLiteral::Property::PROTOTYPE:
@@ -1961,14 +1986,14 @@
 
     VisitForValue(subexpr);
     {
-      FrameStateBeforeAndAfter states(this, subexpr->id());
+      PrepareEagerCheckpoint(subexpr->id());
       VectorSlotPair pair = CreateVectorSlotPair(expr->LiteralFeedbackSlot());
       Node* value = environment()->Pop();
       Node* index = jsgraph()->Constant(array_index);
       Node* literal = environment()->Top();
       Node* store = BuildKeyedStore(literal, index, value, pair);
-      states.AddToNode(store, expr->GetIdForElement(array_index),
-                       OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, expr->GetIdForElement(array_index),
+                        OutputFrameStateCombine::Ignore());
     }
   }
 
@@ -2011,49 +2036,49 @@
     case VARIABLE: {
       Variable* var = expr->AsVariableProxy()->var();
       environment()->Push(value);
-      FrameStateBeforeAndAfter states(this, bailout_id_before);
+      PrepareEagerCheckpoint(bailout_id_before);
       value = environment()->Pop();
       BuildVariableAssignment(var, value, Token::ASSIGN, feedback,
-                              bailout_id_after, states);
+                              bailout_id_after);
       break;
     }
     case NAMED_PROPERTY: {
       environment()->Push(value);
       VisitForValue(property->obj());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Node* object = environment()->Pop();
       value = environment()->Pop();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedStore(object, name, value, feedback);
-      states.AddToNode(store, bailout_id_after,
-                       OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, bailout_id_after,
+                        OutputFrameStateCombine::Ignore());
       break;
     }
     case KEYED_PROPERTY: {
       environment()->Push(value);
       VisitForValue(property->obj());
       VisitForValue(property->key());
-      FrameStateBeforeAndAfter states(this, property->key()->id());
+      PrepareEagerCheckpoint(property->key()->id());
       Node* key = environment()->Pop();
       Node* object = environment()->Pop();
       value = environment()->Pop();
       Node* store = BuildKeyedStore(object, key, value, feedback);
-      states.AddToNode(store, bailout_id_after,
-                       OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, bailout_id_after,
+                        OutputFrameStateCombine::Ignore());
       break;
     }
     case NAMED_SUPER_PROPERTY: {
       environment()->Push(value);
       VisitForValue(property->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(property->obj()->AsSuperPropertyReference()->home_object());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Node* home_object = environment()->Pop();
       Node* receiver = environment()->Pop();
       value = environment()->Pop();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedSuperStore(receiver, home_object, name, value);
-      states.AddToNode(store, bailout_id_after,
-                       OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, bailout_id_after,
+                        OutputFrameStateCombine::Ignore());
       break;
     }
     case KEYED_SUPER_PROPERTY: {
@@ -2061,14 +2086,14 @@
       VisitForValue(property->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(property->obj()->AsSuperPropertyReference()->home_object());
       VisitForValue(property->key());
-      FrameStateBeforeAndAfter states(this, property->key()->id());
+      PrepareEagerCheckpoint(property->key()->id());
       Node* key = environment()->Pop();
       Node* home_object = environment()->Pop();
       Node* receiver = environment()->Pop();
       value = environment()->Pop();
       Node* store = BuildKeyedSuperStore(receiver, home_object, key, value);
-      states.AddToNode(store, bailout_id_after,
-                       OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, bailout_id_after,
+                        OutputFrameStateCombine::Ignore());
       break;
     }
   }
@@ -2122,10 +2147,9 @@
         VariableProxy* proxy = expr->target()->AsVariableProxy();
         VectorSlotPair pair =
             CreateVectorSlotPair(proxy->VariableFeedbackSlot());
-        FrameStateBeforeAndAfter states(this, BeforeId(proxy));
-        old_value =
-            BuildVariableLoad(proxy->var(), expr->target()->id(), states, pair,
-                              OutputFrameStateCombine::Push());
+        PrepareEagerCheckpoint(BeforeId(proxy));
+        old_value = BuildVariableLoad(proxy->var(), expr->target()->id(), pair,
+                                      OutputFrameStateCombine::Push());
         break;
       }
       case NAMED_PROPERTY: {
@@ -2133,10 +2157,10 @@
         Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
         VectorSlotPair pair =
             CreateVectorSlotPair(property->PropertyFeedbackSlot());
-        FrameStateBeforeAndAfter states(this, property->obj()->id());
+        PrepareEagerCheckpoint(property->obj()->id());
         old_value = BuildNamedLoad(object, name, pair);
-        states.AddToNode(old_value, property->LoadId(),
-                         OutputFrameStateCombine::Push());
+        PrepareFrameState(old_value, property->LoadId(),
+                          OutputFrameStateCombine::Push());
         break;
       }
       case KEYED_PROPERTY: {
@@ -2144,10 +2168,10 @@
         Node* object = environment()->Peek(1);
         VectorSlotPair pair =
             CreateVectorSlotPair(property->PropertyFeedbackSlot());
-        FrameStateBeforeAndAfter states(this, property->key()->id());
+        PrepareEagerCheckpoint(property->key()->id());
         old_value = BuildKeyedLoad(object, key, pair);
-        states.AddToNode(old_value, property->LoadId(),
-                         OutputFrameStateCombine::Push());
+        PrepareFrameState(old_value, property->LoadId(),
+                          OutputFrameStateCombine::Push());
         break;
       }
       case NAMED_SUPER_PROPERTY: {
@@ -2156,10 +2180,10 @@
         Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
         VectorSlotPair pair =
             CreateVectorSlotPair(property->PropertyFeedbackSlot());
-        FrameStateBeforeAndAfter states(this, property->obj()->id());
+        PrepareEagerCheckpoint(property->obj()->id());
         old_value = BuildNamedSuperLoad(receiver, home_object, name, pair);
-        states.AddToNode(old_value, property->LoadId(),
-                         OutputFrameStateCombine::Push());
+        PrepareFrameState(old_value, property->LoadId(),
+                          OutputFrameStateCombine::Push());
         break;
       }
       case KEYED_SUPER_PROPERTY: {
@@ -2168,10 +2192,10 @@
         Node* receiver = environment()->Peek(2);
         VectorSlotPair pair =
             CreateVectorSlotPair(property->PropertyFeedbackSlot());
-        FrameStateBeforeAndAfter states(this, property->key()->id());
+        PrepareEagerCheckpoint(property->key()->id());
         old_value = BuildKeyedSuperLoad(receiver, home_object, key, pair);
-        states.AddToNode(old_value, property->LoadId(),
-                         OutputFrameStateCombine::Push());
+        PrepareFrameState(old_value, property->LoadId(),
+                          OutputFrameStateCombine::Push());
         break;
       }
     }
@@ -2199,31 +2223,29 @@
     }
   }
 
-  FrameStateBeforeAndAfter store_states(this, before_store_id);
   // Store the value.
+  PrepareEagerCheckpoint(before_store_id);
   Node* value = environment()->Pop();
   VectorSlotPair feedback = CreateVectorSlotPair(expr->AssignmentSlot());
   switch (assign_type) {
     case VARIABLE: {
       Variable* variable = expr->target()->AsVariableProxy()->var();
       BuildVariableAssignment(variable, value, expr->op(), feedback, expr->id(),
-                              store_states, ast_context()->GetStateCombine());
+                              ast_context()->GetStateCombine());
       break;
     }
     case NAMED_PROPERTY: {
       Node* object = environment()->Pop();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedStore(object, name, value, feedback);
-      store_states.AddToNode(store, expr->id(),
-                             ast_context()->GetStateCombine());
+      PrepareFrameState(store, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case KEYED_PROPERTY: {
       Node* key = environment()->Pop();
       Node* object = environment()->Pop();
       Node* store = BuildKeyedStore(object, key, value, feedback);
-      store_states.AddToNode(store, expr->id(),
-                             ast_context()->GetStateCombine());
+      PrepareFrameState(store, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case NAMED_SUPER_PROPERTY: {
@@ -2231,8 +2253,7 @@
       Node* receiver = environment()->Pop();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedSuperStore(receiver, home_object, name, value);
-      store_states.AddToNode(store, expr->id(),
-                             ast_context()->GetStateCombine());
+      PrepareFrameState(store, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case KEYED_SUPER_PROPERTY: {
@@ -2240,8 +2261,7 @@
       Node* home_object = environment()->Pop();
       Node* receiver = environment()->Pop();
       Node* store = BuildKeyedSuperStore(receiver, home_object, key, value);
-      store_states.AddToNode(store, expr->id(),
-                             ast_context()->GetStateCombine());
+      PrepareFrameState(store, expr->id(), ast_context()->GetStateCombine());
       break;
     }
   }
@@ -2275,44 +2295,44 @@
       break;
     case NAMED_PROPERTY: {
       VisitForValue(expr->obj());
-      FrameStateBeforeAndAfter states(this, expr->obj()->id());
+      PrepareEagerCheckpoint(expr->obj()->id());
       Node* object = environment()->Pop();
       Handle<Name> name = expr->key()->AsLiteral()->AsPropertyName();
       value = BuildNamedLoad(object, name, pair);
-      states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+      PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case KEYED_PROPERTY: {
       VisitForValue(expr->obj());
       VisitForValue(expr->key());
-      FrameStateBeforeAndAfter states(this, expr->key()->id());
+      PrepareEagerCheckpoint(expr->key()->id());
       Node* key = environment()->Pop();
       Node* object = environment()->Pop();
       value = BuildKeyedLoad(object, key, pair);
-      states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+      PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case NAMED_SUPER_PROPERTY: {
       VisitForValue(expr->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(expr->obj()->AsSuperPropertyReference()->home_object());
-      FrameStateBeforeAndAfter states(this, expr->obj()->id());
+      PrepareEagerCheckpoint(expr->obj()->id());
       Node* home_object = environment()->Pop();
       Node* receiver = environment()->Pop();
       Handle<Name> name = expr->key()->AsLiteral()->AsPropertyName();
       value = BuildNamedSuperLoad(receiver, home_object, name, pair);
-      states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+      PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
       break;
     }
     case KEYED_SUPER_PROPERTY: {
       VisitForValue(expr->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(expr->obj()->AsSuperPropertyReference()->home_object());
       VisitForValue(expr->key());
-      FrameStateBeforeAndAfter states(this, expr->key()->id());
+      PrepareEagerCheckpoint(expr->key()->id());
       Node* key = environment()->Pop();
       Node* home_object = environment()->Pop();
       Node* receiver = environment()->Pop();
       value = BuildKeyedSuperLoad(receiver, home_object, key, pair);
-      states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+      PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
       break;
     }
   }
@@ -2334,10 +2354,9 @@
     case Call::GLOBAL_CALL: {
       VariableProxy* proxy = callee->AsVariableProxy();
       VectorSlotPair pair = CreateVectorSlotPair(proxy->VariableFeedbackSlot());
-      FrameStateBeforeAndAfter states(this, BeforeId(proxy));
-      callee_value =
-          BuildVariableLoad(proxy->var(), expr->expression()->id(), states,
-                            pair, OutputFrameStateCombine::Push());
+      PrepareEagerCheckpoint(BeforeId(proxy));
+      callee_value = BuildVariableLoad(proxy->var(), expr->expression()->id(),
+                                       pair, OutputFrameStateCombine::Push());
       receiver_hint = ConvertReceiverMode::kNullOrUndefined;
       receiver_value = jsgraph()->UndefinedConstant();
       break;
@@ -2360,12 +2379,12 @@
       VectorSlotPair feedback =
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       VisitForValue(property->obj());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* object = environment()->Top();
       callee_value = BuildNamedLoad(object, name, feedback);
-      states.AddToNode(callee_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(callee_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       // Note that a property call requires the receiver to be wrapped into
       // an object for sloppy callees. However the receiver is guaranteed
       // not to be null or undefined at this point.
@@ -2379,12 +2398,12 @@
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       VisitForValue(property->obj());
       VisitForValue(property->key());
-      FrameStateBeforeAndAfter states(this, property->key()->id());
+      PrepareEagerCheckpoint(property->key()->id());
       Node* key = environment()->Pop();
       Node* object = environment()->Top();
       callee_value = BuildKeyedLoad(object, key, feedback);
-      states.AddToNode(callee_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(callee_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       // Note that a property call requires the receiver to be wrapped into
       // an object for sloppy callees. However the receiver is guaranteed
       // not to be null or undefined at this point.
@@ -2401,10 +2420,10 @@
       Node* home = environment()->Peek(1);
       Node* object = environment()->Top();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       callee_value = BuildNamedSuperLoad(object, home, name, VectorSlotPair());
-      states.AddToNode(callee_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(callee_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       // Note that a property call requires the receiver to be wrapped into
       // an object for sloppy callees. Since the receiver is not the target of
       // the load, it could very well be null or undefined at this point.
@@ -2424,10 +2443,10 @@
       Node* key = environment()->Pop();
       Node* home = environment()->Pop();
       Node* object = environment()->Pop();
-      FrameStateBeforeAndAfter states(this, property->key()->id());
+      PrepareEagerCheckpoint(property->key()->id());
       callee_value = BuildKeyedSuperLoad(object, home, key, VectorSlotPair());
-      states.AddToNode(callee_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(callee_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       // Note that a property call requires the receiver to be wrapped into
       // an object for sloppy callees. Since the receiver is not the target of
       // the load, it could very well be null or undefined at this point.
@@ -2500,10 +2519,10 @@
   VectorSlotPair feedback = CreateVectorSlotPair(expr->CallFeedbackICSlot());
   const Operator* call = javascript()->CallFunction(
       args->length() + 2, feedback, receiver_hint, expr->tail_call_mode());
-  FrameStateBeforeAndAfter states(this, expr->CallId());
+  PrepareEagerCheckpoint(expr->CallId());
   Node* value = ProcessArguments(call, args->length() + 2);
   environment()->Push(value->InputAt(0));  // The callee passed to the call.
-  states.AddToNode(value, expr->ReturnId(), OutputFrameStateCombine::Push());
+  PrepareFrameState(value, expr->ReturnId(), OutputFrameStateCombine::Push());
   environment()->Drop(1);
   ast_context()->ProduceValue(value);
 }
@@ -2531,9 +2550,9 @@
   // Create node to perform the super call.
   const Operator* call =
       javascript()->CallConstruct(args->length() + 2, VectorSlotPair());
-  FrameStateBeforeAndAfter states(this, super->new_target_var()->id());
+  PrepareEagerCheckpoint(super->new_target_var()->id());
   Node* value = ProcessArguments(call, args->length() + 2);
-  states.AddToNode(value, expr->ReturnId(), OutputFrameStateCombine::Push());
+  PrepareFrameState(value, expr->ReturnId(), OutputFrameStateCombine::Push());
   ast_context()->ProduceValue(value);
 }
 
@@ -2547,8 +2566,8 @@
 
   // The baseline compiler doesn't push the new.target, so we need to record
   // the frame state before the push.
-  FrameStateBeforeAndAfter states(
-      this, args->is_empty() ? expr->expression()->id() : args->last()->id());
+  PrepareEagerCheckpoint(args->is_empty() ? expr->expression()->id()
+                                          : args->last()->id());
 
   // The new target is the same as the callee.
   environment()->Push(environment()->Peek(args->length()));
@@ -2558,7 +2577,7 @@
   const Operator* call =
       javascript()->CallConstruct(args->length() + 2, feedback);
   Node* value = ProcessArguments(call, args->length() + 2);
-  states.AddToNode(value, expr->ReturnId(), OutputFrameStateCombine::Push());
+  PrepareFrameState(value, expr->ReturnId(), OutputFrameStateCombine::Push());
   ast_context()->ProduceValue(value);
 }
 
@@ -2578,9 +2597,9 @@
 
   // Create node to perform the JS runtime call.
   const Operator* call = javascript()->CallFunction(args->length() + 2);
-  FrameStateBeforeAndAfter states(this, expr->CallId());
+  PrepareEagerCheckpoint(expr->CallId());
   Node* value = ProcessArguments(call, args->length() + 2);
-  states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+  PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
   ast_context()->ProduceValue(value);
 }
 
@@ -2599,9 +2618,9 @@
   // Create node to perform the runtime call.
   Runtime::FunctionId functionId = expr->function()->function_id;
   const Operator* call = javascript()->CallRuntime(functionId, args->length());
-  FrameStateBeforeAndAfter states(this, expr->CallId());
+  PrepareEagerCheckpoint(expr->CallId());
   Node* value = ProcessArguments(call, args->length());
-  states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+  PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
   ast_context()->ProduceValue(value);
 }
 
@@ -2642,52 +2661,51 @@
     case VARIABLE: {
       VariableProxy* proxy = expr->expression()->AsVariableProxy();
       VectorSlotPair pair = CreateVectorSlotPair(proxy->VariableFeedbackSlot());
-      FrameStateBeforeAndAfter states(this, BeforeId(proxy));
-      old_value =
-          BuildVariableLoad(proxy->var(), expr->expression()->id(), states,
-                            pair, OutputFrameStateCombine::Push());
+      PrepareEagerCheckpoint(BeforeId(proxy));
+      old_value = BuildVariableLoad(proxy->var(), expr->expression()->id(),
+                                    pair, OutputFrameStateCombine::Push());
       stack_depth = 0;
       break;
     }
     case NAMED_PROPERTY: {
       VisitForValue(property->obj());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Node* object = environment()->Top();
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       VectorSlotPair pair =
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       old_value = BuildNamedLoad(object, name, pair);
-      states.AddToNode(old_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(old_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       stack_depth = 1;
       break;
     }
     case KEYED_PROPERTY: {
       VisitForValue(property->obj());
       VisitForValue(property->key());
-      FrameStateBeforeAndAfter states(this, property->key()->id());
+      PrepareEagerCheckpoint(property->key()->id());
       Node* key = environment()->Top();
       Node* object = environment()->Peek(1);
       VectorSlotPair pair =
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       old_value = BuildKeyedLoad(object, key, pair);
-      states.AddToNode(old_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(old_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       stack_depth = 2;
       break;
     }
     case NAMED_SUPER_PROPERTY: {
       VisitForValue(property->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(property->obj()->AsSuperPropertyReference()->home_object());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Node* home_object = environment()->Top();
       Node* receiver = environment()->Peek(1);
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       VectorSlotPair pair =
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       old_value = BuildNamedSuperLoad(receiver, home_object, name, pair);
-      states.AddToNode(old_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(old_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       stack_depth = 2;
       break;
     }
@@ -2695,15 +2713,15 @@
       VisitForValue(property->obj()->AsSuperPropertyReference()->this_var());
       VisitForValue(property->obj()->AsSuperPropertyReference()->home_object());
       VisitForValue(property->key());
-      FrameStateBeforeAndAfter states(this, property->obj()->id());
+      PrepareEagerCheckpoint(property->obj()->id());
       Node* key = environment()->Top();
       Node* home_object = environment()->Peek(1);
       Node* receiver = environment()->Peek(2);
       VectorSlotPair pair =
           CreateVectorSlotPair(property->PropertyFeedbackSlot());
       old_value = BuildKeyedSuperLoad(receiver, home_object, key, pair);
-      states.AddToNode(old_value, property->LoadId(),
-                       OutputFrameStateCombine::Push());
+      PrepareFrameState(old_value, property->LoadId(),
+                        OutputFrameStateCombine::Push());
       stack_depth = 3;
       break;
     }
@@ -2716,7 +2734,7 @@
 
   // Create a proper eager frame state for the stores.
   environment()->Push(old_value);
-  FrameStateBeforeAndAfter store_states(this, expr->ToNumberId());
+  FrameStateBeforeAndAfter binop_states(this, expr->ToNumberId());
   old_value = environment()->Pop();
 
   // Save result for postfix expressions at correct stack depth.
@@ -2729,16 +2747,12 @@
   }
 
   // Create node to perform +1/-1 operation.
-  Node* value;
-  {
-    // TODO(bmeurer): Cleanup this feedback/bailout mess!
-    FrameStateBeforeAndAfter states(this, BailoutId::None());
-    value = BuildBinaryOp(old_value, jsgraph()->OneConstant(),
-                          expr->binary_op(), expr->CountBinOpFeedbackId());
-    // This should never deoptimize because we have converted to number before.
-    states.AddToNode(value, BailoutId::None(),
-                     OutputFrameStateCombine::Ignore());
-  }
+  // TODO(bmeurer): Cleanup this feedback/bailout mess!
+  Node* value = BuildBinaryOp(old_value, jsgraph()->OneConstant(),
+                              expr->binary_op(), expr->CountBinOpFeedbackId());
+  // This should never deoptimize because we have converted to number before.
+  binop_states.AddToNode(value, BailoutId::None(),
+                         OutputFrameStateCombine::Ignore());
 
   // Store the value.
   VectorSlotPair feedback = CreateVectorSlotPair(expr->CountSlot());
@@ -2747,7 +2761,7 @@
       Variable* variable = expr->expression()->AsVariableProxy()->var();
       environment()->Push(value);
       BuildVariableAssignment(variable, value, expr->op(), feedback,
-                              expr->AssignmentId(), store_states);
+                              expr->AssignmentId());
       environment()->Pop();
       break;
     }
@@ -2756,8 +2770,8 @@
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedStore(object, name, value, feedback);
       environment()->Push(value);
-      store_states.AddToNode(store, expr->AssignmentId(),
-                             OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, expr->AssignmentId(),
+                        OutputFrameStateCombine::Ignore());
       environment()->Pop();
       break;
     }
@@ -2766,8 +2780,8 @@
       Node* object = environment()->Pop();
       Node* store = BuildKeyedStore(object, key, value, feedback);
       environment()->Push(value);
-      store_states.AddToNode(store, expr->AssignmentId(),
-                             OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, expr->AssignmentId(),
+                        OutputFrameStateCombine::Ignore());
       environment()->Pop();
       break;
     }
@@ -2777,8 +2791,8 @@
       Handle<Name> name = property->key()->AsLiteral()->AsPropertyName();
       Node* store = BuildNamedSuperStore(receiver, home_object, name, value);
       environment()->Push(value);
-      store_states.AddToNode(store, expr->AssignmentId(),
-                             OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, expr->AssignmentId(),
+                        OutputFrameStateCombine::Ignore());
       environment()->Pop();
       break;
     }
@@ -2788,8 +2802,8 @@
       Node* receiver = environment()->Pop();
       Node* store = BuildKeyedSuperStore(receiver, home_object, key, value);
       environment()->Push(value);
-      store_states.AddToNode(store, expr->AssignmentId(),
-                             OutputFrameStateCombine::Ignore());
+      PrepareFrameState(store, expr->AssignmentId(),
+                        OutputFrameStateCombine::Ignore());
       environment()->Pop();
       break;
     }
@@ -2829,19 +2843,19 @@
   const Operator* op = nullptr;
   switch (expr->op()) {
     case Token::EQ:
-      op = javascript()->Equal();
+      op = javascript()->Equal(CompareOperationHints::Any());
       break;
     case Token::EQ_STRICT:
-      op = javascript()->StrictEqual();
+      op = javascript()->StrictEqual(CompareOperationHints::Any());
       break;
     default:
       UNREACHABLE();
   }
   VisitForValue(sub_expr);
-  FrameStateBeforeAndAfter states(this, sub_expr->id());
+  PrepareEagerCheckpoint(sub_expr->id());
   Node* value_to_compare = environment()->Pop();
   Node* value = NewNode(op, value_to_compare, nil_value);
-  states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+  PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
   return ast_context()->ProduceValue(value);
 }
 
@@ -2849,11 +2863,11 @@
                                                 Expression* sub_expr,
                                                 Handle<String> check) {
   VisitTypeofExpression(sub_expr);
-  FrameStateBeforeAndAfter states(this, sub_expr->id());
+  PrepareEagerCheckpoint(sub_expr->id());
   Node* typeof_arg = NewNode(javascript()->TypeOf(), environment()->Pop());
-  Node* value = NewNode(javascript()->StrictEqual(), typeof_arg,
-                        jsgraph()->Constant(check));
-  states.AddToNode(value, expr->id(), ast_context()->GetStateCombine());
+  Node* value = NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                        typeof_arg, jsgraph()->Constant(check));
+  PrepareFrameState(value, expr->id(), ast_context()->GetStateCombine());
   return ast_context()->ProduceValue(value);
 }
 
@@ -2874,31 +2888,38 @@
     return VisitLiteralCompareNil(expr, sub_expr, jsgraph()->NullConstant());
   }
 
+  CompareOperationHints hints;
+  if (!type_hint_analysis_ ||
+      !type_hint_analysis_->GetCompareOperationHints(
+          expr->CompareOperationFeedbackId(), &hints)) {
+    hints = CompareOperationHints::Any();
+  }
+
   const Operator* op;
   switch (expr->op()) {
     case Token::EQ:
-      op = javascript()->Equal();
+      op = javascript()->Equal(hints);
       break;
     case Token::NE:
-      op = javascript()->NotEqual();
+      op = javascript()->NotEqual(hints);
       break;
     case Token::EQ_STRICT:
-      op = javascript()->StrictEqual();
+      op = javascript()->StrictEqual(hints);
       break;
     case Token::NE_STRICT:
-      op = javascript()->StrictNotEqual();
+      op = javascript()->StrictNotEqual(hints);
       break;
     case Token::LT:
-      op = javascript()->LessThan();
+      op = javascript()->LessThan(hints);
       break;
     case Token::GT:
-      op = javascript()->GreaterThan();
+      op = javascript()->GreaterThan(hints);
       break;
     case Token::LTE:
-      op = javascript()->LessThanOrEqual();
+      op = javascript()->LessThanOrEqual(hints);
       break;
     case Token::GTE:
-      op = javascript()->GreaterThanOrEqual();
+      op = javascript()->GreaterThanOrEqual(hints);
       break;
     case Token::INSTANCEOF:
       op = javascript()->InstanceOf();
@@ -3039,9 +3060,9 @@
     // perform a non-contextual load in case the operand is a variable proxy.
     VariableProxy* proxy = expr->AsVariableProxy();
     VectorSlotPair pair = CreateVectorSlotPair(proxy->VariableFeedbackSlot());
-    FrameStateBeforeAndAfter states(this, BeforeId(proxy));
+    PrepareEagerCheckpoint(BeforeId(proxy));
     Node* load =
-        BuildVariableLoad(proxy->var(), expr->id(), states, pair,
+        BuildVariableLoad(proxy->var(), expr->id(), pair,
                           OutputFrameStateCombine::Push(), INSIDE_TYPEOF);
     environment()->Push(load);
   } else {
@@ -3109,7 +3130,7 @@
 
 VectorSlotPair AstGraphBuilder::CreateVectorSlotPair(
     FeedbackVectorSlot slot) const {
-  return VectorSlotPair(handle(info()->shared_info()->feedback_vector()), slot);
+  return VectorSlotPair(handle(info()->closure()->feedback_vector()), slot);
 }
 
 
@@ -3260,9 +3281,8 @@
   // Assign the object to the {arguments} variable. This should never lazy
   // deopt, so it is fine to send invalid bailout id.
   DCHECK(arguments->IsContextSlot() || arguments->IsStackAllocated());
-  FrameStateBeforeAndAfter states(this, BailoutId::None());
   BuildVariableAssignment(arguments, object, Token::ASSIGN, VectorSlotPair(),
-                          BailoutId::None(), states);
+                          BailoutId::None());
   return object;
 }
 
@@ -3279,9 +3299,8 @@
   // Assign the object to the {rest} variable. This should never lazy
   // deopt, so it is fine to send invalid bailout id.
   DCHECK(rest->IsContextSlot() || rest->IsStackAllocated());
-  FrameStateBeforeAndAfter states(this, BailoutId::None());
   BuildVariableAssignment(rest, object, Token::ASSIGN, VectorSlotPair(),
-                          BailoutId::None(), states);
+                          BailoutId::None());
   return object;
 }
 
@@ -3294,9 +3313,8 @@
 
   // Assign the object to the {.this_function} variable. This should never lazy
   // deopt, so it is fine to send invalid bailout id.
-  FrameStateBeforeAndAfter states(this, BailoutId::None());
   BuildVariableAssignment(this_function_var, this_function, Token::INIT,
-                          VectorSlotPair(), BailoutId::None(), states);
+                          VectorSlotPair(), BailoutId::None());
   return this_function;
 }
 
@@ -3309,9 +3327,8 @@
 
   // Assign the object to the {new.target} variable. This should never lazy
   // deopt, so it is fine to send invalid bailout id.
-  FrameStateBeforeAndAfter states(this, BailoutId::None());
   BuildVariableAssignment(new_target_var, object, Token::INIT, VectorSlotPair(),
-                          BailoutId::None(), states);
+                          BailoutId::None());
   return object;
 }
 
@@ -3321,7 +3338,8 @@
                                                BailoutId bailout_id) {
   IfBuilder hole_check(this);
   Node* the_hole = jsgraph()->TheHoleConstant();
-  Node* check = NewNode(javascript()->StrictEqual(), value, the_hole);
+  Node* check = NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                        value, the_hole);
   hole_check.If(check);
   hole_check.Then();
   Node* error = BuildThrowReferenceError(variable, bailout_id);
@@ -3338,7 +3356,8 @@
                                                BailoutId bailout_id) {
   IfBuilder hole_check(this);
   Node* the_hole = jsgraph()->TheHoleConstant();
-  Node* check = NewNode(javascript()->StrictEqual(), value, the_hole);
+  Node* check = NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                        value, the_hole);
   hole_check.If(check);
   hole_check.Then();
   environment()->Push(for_hole);
@@ -3355,7 +3374,8 @@
   IfBuilder prototype_check(this);
   Node* prototype_string =
       jsgraph()->Constant(isolate()->factory()->prototype_string());
-  Node* check = NewNode(javascript()->StrictEqual(), name, prototype_string);
+  Node* check = NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                        name, prototype_string);
   prototype_check.If(check);
   prototype_check.Then();
   Node* error = BuildThrowStaticPrototypeError(bailout_id);
@@ -3369,7 +3389,6 @@
 
 Node* AstGraphBuilder::BuildVariableLoad(Variable* variable,
                                          BailoutId bailout_id,
-                                         FrameStateBeforeAndAfter& states,
                                          const VectorSlotPair& feedback,
                                          OutputFrameStateCombine combine,
                                          TypeofMode typeof_mode) {
@@ -3382,7 +3401,7 @@
       Handle<Name> name = variable->name();
       if (Node* node = TryLoadGlobalConstant(name)) return node;
       Node* value = BuildGlobalLoad(name, feedback, typeof_mode);
-      states.AddToNode(value, bailout_id, combine);
+      PrepareFrameState(value, bailout_id, combine);
       return value;
     }
     case VariableLocation::PARAMETER:
@@ -3418,13 +3437,12 @@
     case VariableLocation::LOOKUP: {
       // Dynamic lookup of context variable (anywhere in the chain).
       Handle<String> name = variable->name();
-      if (Node* node =
-              TryLoadDynamicVariable(variable, name, bailout_id, states,
-                                     feedback, combine, typeof_mode)) {
+      if (Node* node = TryLoadDynamicVariable(variable, name, bailout_id,
+                                              feedback, combine, typeof_mode)) {
         return node;
       }
       Node* value = BuildDynamicLoad(name, typeof_mode);
-      states.AddToNode(value, bailout_id, combine);
+      PrepareFrameState(value, bailout_id, combine);
       return value;
     }
   }
@@ -3467,11 +3485,10 @@
   return nullptr;
 }
 
-
 Node* AstGraphBuilder::BuildVariableAssignment(
     Variable* variable, Node* value, Token::Value op,
     const VectorSlotPair& feedback, BailoutId bailout_id,
-    FrameStateBeforeAndAfter& states, OutputFrameStateCombine combine) {
+    OutputFrameStateCombine combine) {
   Node* the_hole = jsgraph()->TheHoleConstant();
   VariableMode mode = variable->mode();
   switch (variable->location()) {
@@ -3480,7 +3497,7 @@
       // Global var, const, or let variable.
       Handle<Name> name = variable->name();
       Node* store = BuildGlobalStore(name, value, feedback);
-      states.AddToNode(store, bailout_id, combine);
+      PrepareFrameState(store, bailout_id, combine);
       return store;
     }
     case VariableLocation::PARAMETER:
@@ -3740,11 +3757,11 @@
   Expression* expr = property->value();
   if (!FunctionLiteral::NeedsHomeObject(expr)) return value;
   Handle<Name> name = isolate()->factory()->home_object_symbol();
-  FrameStateBeforeAndAfter states(this, BailoutId::None());
   VectorSlotPair feedback =
       CreateVectorSlotPair(property->GetSlot(slot_number));
   Node* store = BuildNamedStore(value, name, home_object, feedback);
-  states.AddToNode(store, BailoutId::None(), OutputFrameStateCombine::Ignore());
+  PrepareFrameState(store, BailoutId::None(),
+                    OutputFrameStateCombine::Ignore());
   return store;
 }
 
@@ -3881,11 +3898,12 @@
   return nullptr;
 }
 
-
-Node* AstGraphBuilder::TryLoadDynamicVariable(
-    Variable* variable, Handle<String> name, BailoutId bailout_id,
-    FrameStateBeforeAndAfter& states, const VectorSlotPair& feedback,
-    OutputFrameStateCombine combine, TypeofMode typeof_mode) {
+Node* AstGraphBuilder::TryLoadDynamicVariable(Variable* variable,
+                                              Handle<String> name,
+                                              BailoutId bailout_id,
+                                              const VectorSlotPair& feedback,
+                                              OutputFrameStateCombine combine,
+                                              TypeofMode typeof_mode) {
   VariableMode mode = variable->mode();
 
   if (mode == DYNAMIC_GLOBAL) {
@@ -3907,8 +3925,9 @@
       Node* load = NewNode(
           javascript()->LoadContext(depth, Context::EXTENSION_INDEX, false),
           current_context());
-      Node* check = NewNode(javascript()->StrictEqual(), load,
-                            jsgraph()->TheHoleConstant());
+      Node* check =
+          NewNode(javascript()->StrictEqual(CompareOperationHints::Any()), load,
+                  jsgraph()->TheHoleConstant());
       fast_block.BreakUnless(check, BranchHint::kTrue);
     }
 
@@ -3918,7 +3937,7 @@
     } else {
       // Perform global slot load.
       Node* fast = BuildGlobalLoad(name, feedback, typeof_mode);
-      states.AddToNode(fast, bailout_id, combine);
+      PrepareFrameState(fast, bailout_id, combine);
       environment()->Push(fast);
     }
     slow_block.Break();
@@ -3927,7 +3946,7 @@
 
     // Slow case, because variable potentially shadowed. Perform dynamic lookup.
     Node* slow = BuildDynamicLoad(name, typeof_mode);
-    states.AddToNode(slow, bailout_id, combine);
+    PrepareFrameState(slow, bailout_id, combine);
     environment()->Push(slow);
     slow_block.EndBlock();
 
@@ -3953,16 +3972,17 @@
       Node* load = NewNode(
           javascript()->LoadContext(depth, Context::EXTENSION_INDEX, false),
           current_context());
-      Node* check = NewNode(javascript()->StrictEqual(), load,
-                            jsgraph()->TheHoleConstant());
+      Node* check =
+          NewNode(javascript()->StrictEqual(CompareOperationHints::Any()), load,
+                  jsgraph()->TheHoleConstant());
       fast_block.BreakUnless(check, BranchHint::kTrue);
     }
 
     // Fast case, because variable is not shadowed. Perform context slot load.
     Variable* local = variable->local_if_not_shadowed();
     DCHECK(local->location() == VariableLocation::CONTEXT);  // Must be context.
-    Node* fast = BuildVariableLoad(local, bailout_id, states, feedback, combine,
-                                   typeof_mode);
+    Node* fast =
+        BuildVariableLoad(local, bailout_id, feedback, combine, typeof_mode);
     environment()->Push(fast);
     slow_block.Break();
     environment()->Pop();
@@ -3970,7 +3990,7 @@
 
     // Slow case, because variable potentially shadowed. Perform dynamic lookup.
     Node* slow = BuildDynamicLoad(name, typeof_mode);
-    states.AddToNode(slow, bailout_id, combine);
+    PrepareFrameState(slow, bailout_id, combine);
     environment()->Push(slow);
     slow_block.EndBlock();
 
@@ -4053,6 +4073,20 @@
   }
 }
 
+void AstGraphBuilder::PrepareEagerCheckpoint(BailoutId ast_id) {
+  if (environment()->GetEffectDependency()->opcode() == IrOpcode::kCheckpoint) {
+    // We skip preparing a checkpoint if there already is one the current effect
+    // dependency. This is just an optimization and not need for correctness.
+    return;
+  }
+  if (ast_id != BailoutId::None()) {
+    Node* node = NewNode(common()->Checkpoint());
+    DCHECK_EQ(IrOpcode::kDead,
+              NodeProperties::GetFrameStateInput(node, 0)->opcode());
+    NodeProperties::ReplaceFrameStateInput(node, 0,
+                                           environment()->Checkpoint(ast_id));
+  }
+}
 
 BitVector* AstGraphBuilder::GetVariablesAssignedInLoop(
     IterationStatement* stmt) {
@@ -4298,7 +4332,6 @@
 }
 
 
-// TODO(mstarzinger): Revisit this once we have proper effect states.
 Node* AstGraphBuilder::NewEffectPhi(int count, Node* input, Node* control) {
   const Operator* phi_op = common()->EffectPhi(count);
   Node** buffer = EnsureInputBufferSize(count + 1);
diff --git a/src/compiler/ast-graph-builder.h b/src/compiler/ast-graph-builder.h
index 1d0fc90..8346a51 100644
--- a/src/compiler/ast-graph-builder.h
+++ b/src/compiler/ast-graph-builder.h
@@ -106,6 +106,9 @@
   // Optimization to cache loaded feedback vector.
   SetOncePointer<Node> feedback_vector_;
 
+  // Optimization to cache empty frame state.
+  SetOncePointer<Node> empty_frame_state_;
+
   // Control nodes that exit the function body.
   ZoneVector<Node*> exit_controls_;
 
@@ -167,6 +170,9 @@
   // Get or create the node that represents the incoming new target value.
   Node* GetNewTarget();
 
+  // Get or create the node that represents the empty frame state.
+  Node* GetEmptyFrameState();
+
   // Node creation helpers.
   Node* NewNode(const Operator* op, bool incomplete = false) {
     return MakeNode(op, 0, static_cast<Node**>(nullptr), incomplete);
@@ -225,11 +231,18 @@
   // Helper to indicate a node exits the function body.
   void UpdateControlDependencyToLeaveFunction(Node* exit);
 
-  // Builds deoptimization for a given node.
+  // Prepare information for lazy deoptimization. This information is attached
+  // to the given node and the output value produced by the node is combined.
+  // Conceptually this frame state is "after" a given operation.
   void PrepareFrameState(Node* node, BailoutId ast_id,
                          OutputFrameStateCombine framestate_combine =
                              OutputFrameStateCombine::Ignore());
 
+  // Prepare information for eager deoptimization. This information is carried
+  // by dedicated {Checkpoint} nodes that are wired into the effect chain.
+  // Conceptually this frame state is "before" a given operation.
+  void PrepareEagerCheckpoint(BailoutId ast_id);
+
   BitVector* GetVariablesAssignedInLoop(IterationStatement* stmt);
 
   // Check if the given statement is an OSR entry.
@@ -277,13 +290,11 @@
   Node* BuildVariableAssignment(Variable* variable, Node* value,
                                 Token::Value op, const VectorSlotPair& slot,
                                 BailoutId bailout_id,
-                                FrameStateBeforeAndAfter& states,
                                 OutputFrameStateCombine framestate_combine =
                                     OutputFrameStateCombine::Ignore());
   Node* BuildVariableDelete(Variable* variable, BailoutId bailout_id,
                             OutputFrameStateCombine framestate_combine);
   Node* BuildVariableLoad(Variable* variable, BailoutId bailout_id,
-                          FrameStateBeforeAndAfter& states,
                           const VectorSlotPair& feedback,
                           OutputFrameStateCombine framestate_combine,
                           TypeofMode typeof_mode = NOT_INSIDE_TYPEOF);
@@ -374,7 +385,6 @@
   // to resolve to a global slot or context slot (inferred from scope chain).
   Node* TryLoadDynamicVariable(Variable* variable, Handle<String> name,
                                BailoutId bailout_id,
-                               FrameStateBeforeAndAfter& states,
                                const VectorSlotPair& feedback,
                                OutputFrameStateCombine combine,
                                TypeofMode typeof_mode);
diff --git a/src/compiler/branch-elimination.cc b/src/compiler/branch-elimination.cc
index 427612c..236fbca 100644
--- a/src/compiler/branch-elimination.cc
+++ b/src/compiler/branch-elimination.cc
@@ -99,17 +99,17 @@
   if (condition_value.IsJust()) {
     // If we know the condition we can discard the branch.
     if (condition_is_true == condition_value.FromJust()) {
-      // We don't to update the conditions here, because we're replacing with
-      // the {control} node that already contains the right information.
-      return Replace(control);
+      // We don't update the conditions here, because we're replacing {node}
+      // with the {control} node that already contains the right information.
+      ReplaceWithValue(node, dead(), effect, control);
     } else {
       control = graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager),
                                  frame_state, effect, control);
       // TODO(bmeurer): This should be on the AdvancedReducer somehow.
       NodeProperties::MergeControlToEnd(graph(), common(), control);
       Revisit(graph()->end());
-      return Replace(dead());
     }
+    return Replace(dead());
   }
   return UpdateConditions(
       node, conditions->AddCondition(zone_, condition, condition_is_true));
diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
index 22299de..79d8ff2 100644
--- a/src/compiler/bytecode-graph-builder.cc
+++ b/src/compiler/bytecode-graph-builder.cc
@@ -109,6 +109,11 @@
         id_before, OutputFrameStateCombine::Ignore());
     id_after_ = BailoutId(id_before.ToInt() +
                           builder->bytecode_iterator().current_bytecode_size());
+    // Create an explicit checkpoint node for before the operation.
+    Node* node = builder_->NewNode(builder_->common()->Checkpoint());
+    DCHECK_EQ(IrOpcode::kDead,
+              NodeProperties::GetFrameStateInput(node, 0)->opcode());
+    NodeProperties::ReplaceFrameStateInput(node, 0, frame_state_before_);
   }
 
   ~FrameStateBeforeAndAfter() {
@@ -136,6 +141,7 @@
 
     if (count >= 2) {
       // Add the frame state for before the operation.
+      // TODO(mstarzinger): Get rid of frame state input before!
       DCHECK_EQ(IrOpcode::kDead,
                 NodeProperties::GetFrameStateInput(node, 1)->opcode());
       NodeProperties::ReplaceFrameStateInput(node, 1, frame_state_before_);
@@ -355,9 +361,6 @@
 
 bool BytecodeGraphBuilder::Environment::StateValuesRequireUpdate(
     Node** state_values, int offset, int count) {
-  if (!builder()->deoptimization_enabled_) {
-    return false;
-  }
   if (*state_values == nullptr) {
     return true;
   }
@@ -385,10 +388,6 @@
 
 Node* BytecodeGraphBuilder::Environment::Checkpoint(
     BailoutId bailout_id, OutputFrameStateCombine combine) {
-  if (!builder()->deoptimization_enabled_) {
-    return builder()->jsgraph()->EmptyFrameState();
-  }
-
   // TODO(rmcilroy): Consider using StateValuesCache for some state values.
   UpdateStateValues(&parameters_state_values_, 0, parameter_count());
   UpdateStateValues(&registers_state_values_, register_base(),
@@ -423,7 +422,6 @@
 
 bool BytecodeGraphBuilder::Environment::StateValuesAreUpToDate(
     int output_poke_offset, int output_poke_count) {
-  if (!builder()->deoptimization_enabled_) return true;
   // Poke offset is relative to the top of the stack (i.e., the accumulator).
   int output_poke_start = accumulator_base() - output_poke_offset;
   int output_poke_end = output_poke_start + output_poke_count;
@@ -444,12 +442,11 @@
       bytecode_array_(handle(info->shared_info()->bytecode_array())),
       exception_handler_table_(
           handle(HandlerTable::cast(bytecode_array()->handler_table()))),
-      feedback_vector_(handle(info->shared_info()->feedback_vector())),
+      feedback_vector_(handle(info->closure()->feedback_vector())),
       frame_state_function_info_(common()->CreateFrameStateFunctionInfo(
           FrameStateType::kInterpretedFunction,
           bytecode_array()->parameter_count(),
           bytecode_array()->register_count(), info->shared_info())),
-      deoptimization_enabled_(info->is_deoptimization_enabled()),
       merge_environments_(local_zone),
       exception_handlers_(local_zone),
       current_exception_handler_(0),
@@ -586,6 +583,11 @@
   environment()->BindAccumulator(node);
 }
 
+void BytecodeGraphBuilder::VisitLdrUndefined() {
+  Node* node = jsgraph()->UndefinedConstant();
+  environment()->BindRegister(bytecode_iterator().GetRegisterOperand(0), node);
+}
+
 void BytecodeGraphBuilder::VisitLdaNull() {
   Node* node = jsgraph()->NullConstant();
   environment()->BindAccumulator(node);
@@ -623,25 +625,33 @@
   environment()->BindRegister(bytecode_iterator().GetRegisterOperand(1), value);
 }
 
-void BytecodeGraphBuilder::BuildLoadGlobal(
-    TypeofMode typeof_mode) {
-  FrameStateBeforeAndAfter states(this);
-  Handle<Name> name =
-      Handle<Name>::cast(bytecode_iterator().GetConstantForIndexOperand(0));
+Node* BytecodeGraphBuilder::BuildLoadGlobal(TypeofMode typeof_mode) {
   VectorSlotPair feedback =
-      CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
-
+      CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(0));
+  DCHECK_EQ(FeedbackVectorSlotKind::LOAD_GLOBAL_IC,
+            feedback_vector()->GetKind(feedback.slot()));
+  Handle<Name> name(feedback_vector()->GetName(feedback.slot()));
   const Operator* op = javascript()->LoadGlobal(name, feedback, typeof_mode);
-  Node* node = NewNode(op, GetFunctionClosure());
-  environment()->BindAccumulator(node, &states);
+  return NewNode(op, GetFunctionClosure());
 }
 
 void BytecodeGraphBuilder::VisitLdaGlobal() {
-  BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
+  environment()->BindAccumulator(node, &states);
+}
+
+void BytecodeGraphBuilder::VisitLdrGlobal() {
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildLoadGlobal(TypeofMode::NOT_INSIDE_TYPEOF);
+  environment()->BindRegister(bytecode_iterator().GetRegisterOperand(1), node,
+                              &states);
 }
 
 void BytecodeGraphBuilder::VisitLdaGlobalInsideTypeof() {
-  BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildLoadGlobal(TypeofMode::INSIDE_TYPEOF);
+  environment()->BindAccumulator(node, &states);
 }
 
 void BytecodeGraphBuilder::BuildStoreGlobal(LanguageMode language_mode) {
@@ -665,7 +675,7 @@
   BuildStoreGlobal(LanguageMode::STRICT);
 }
 
-void BytecodeGraphBuilder::VisitLdaContextSlot() {
+Node* BytecodeGraphBuilder::BuildLoadContextSlot() {
   // TODO(mythria): LoadContextSlots are unrolled by the required depth when
   // generating bytecode. Hence the value of depth is always 0. Update this
   // code, when the implementation changes.
@@ -676,10 +686,19 @@
       0, bytecode_iterator().GetIndexOperand(1), false);
   Node* context =
       environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
-  Node* node = NewNode(op, context);
+  return NewNode(op, context);
+}
+
+void BytecodeGraphBuilder::VisitLdaContextSlot() {
+  Node* node = BuildLoadContextSlot();
   environment()->BindAccumulator(node);
 }
 
+void BytecodeGraphBuilder::VisitLdrContextSlot() {
+  Node* node = BuildLoadContextSlot();
+  environment()->BindRegister(bytecode_iterator().GetRegisterOperand(2), node);
+}
+
 void BytecodeGraphBuilder::VisitStaContextSlot() {
   // TODO(mythria): LoadContextSlots are unrolled by the required depth when
   // generating bytecode. Hence the value of depth is always 0. Update this
@@ -732,8 +751,7 @@
   BuildStaLookupSlot(LanguageMode::STRICT);
 }
 
-void BytecodeGraphBuilder::BuildNamedLoad() {
-  FrameStateBeforeAndAfter states(this);
+Node* BytecodeGraphBuilder::BuildNamedLoad() {
   Node* object =
       environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
   Handle<Name> name =
@@ -742,14 +760,23 @@
       CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(2));
 
   const Operator* op = javascript()->LoadNamed(name, feedback);
-  Node* node = NewNode(op, object, GetFunctionClosure());
+  return NewNode(op, object, GetFunctionClosure());
+}
+
+void BytecodeGraphBuilder::VisitLdaNamedProperty() {
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildNamedLoad();
   environment()->BindAccumulator(node, &states);
 }
 
-void BytecodeGraphBuilder::VisitLoadIC() { BuildNamedLoad(); }
-
-void BytecodeGraphBuilder::BuildKeyedLoad() {
+void BytecodeGraphBuilder::VisitLdrNamedProperty() {
   FrameStateBeforeAndAfter states(this);
+  Node* node = BuildNamedLoad();
+  environment()->BindRegister(bytecode_iterator().GetRegisterOperand(3), node,
+                              &states);
+}
+
+Node* BytecodeGraphBuilder::BuildKeyedLoad() {
   Node* key = environment()->LookupAccumulator();
   Node* object =
       environment()->LookupRegister(bytecode_iterator().GetRegisterOperand(0));
@@ -757,11 +784,21 @@
       CreateVectorSlotPair(bytecode_iterator().GetIndexOperand(1));
 
   const Operator* op = javascript()->LoadProperty(feedback);
-  Node* node = NewNode(op, object, key, GetFunctionClosure());
+  return NewNode(op, object, key, GetFunctionClosure());
+}
+
+void BytecodeGraphBuilder::VisitLdaKeyedProperty() {
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildKeyedLoad();
   environment()->BindAccumulator(node, &states);
 }
 
-void BytecodeGraphBuilder::VisitKeyedLoadIC() { BuildKeyedLoad(); }
+void BytecodeGraphBuilder::VisitLdrKeyedProperty() {
+  FrameStateBeforeAndAfter states(this);
+  Node* node = BuildKeyedLoad();
+  environment()->BindRegister(bytecode_iterator().GetRegisterOperand(2), node,
+                              &states);
+}
 
 void BytecodeGraphBuilder::BuildNamedStore(LanguageMode language_mode) {
   FrameStateBeforeAndAfter states(this);
@@ -778,11 +815,11 @@
   environment()->RecordAfterState(node, &states);
 }
 
-void BytecodeGraphBuilder::VisitStoreICSloppy() {
+void BytecodeGraphBuilder::VisitStaNamedPropertySloppy() {
   BuildNamedStore(LanguageMode::SLOPPY);
 }
 
-void BytecodeGraphBuilder::VisitStoreICStrict() {
+void BytecodeGraphBuilder::VisitStaNamedPropertyStrict() {
   BuildNamedStore(LanguageMode::STRICT);
 }
 
@@ -801,11 +838,11 @@
   environment()->RecordAfterState(node, &states);
 }
 
-void BytecodeGraphBuilder::VisitKeyedStoreICSloppy() {
+void BytecodeGraphBuilder::VisitStaKeyedPropertySloppy() {
   BuildKeyedStore(LanguageMode::SLOPPY);
 }
 
-void BytecodeGraphBuilder::VisitKeyedStoreICStrict() {
+void BytecodeGraphBuilder::VisitStaKeyedPropertyStrict() {
   BuildKeyedStore(LanguageMode::STRICT);
 }
 
@@ -965,8 +1002,7 @@
 
 void BytecodeGraphBuilder::VisitCallRuntime() {
   FrameStateBeforeAndAfter states(this);
-  Runtime::FunctionId functionId = static_cast<Runtime::FunctionId>(
-      bytecode_iterator().GetRuntimeIdOperand(0));
+  Runtime::FunctionId functionId = bytecode_iterator().GetRuntimeIdOperand(0);
   interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
   size_t arg_count = bytecode_iterator().GetRegisterCountOperand(2);
 
@@ -978,8 +1014,7 @@
 
 void BytecodeGraphBuilder::VisitCallRuntimeForPair() {
   FrameStateBeforeAndAfter states(this);
-  Runtime::FunctionId functionId = static_cast<Runtime::FunctionId>(
-      bytecode_iterator().GetRuntimeIdOperand(0));
+  Runtime::FunctionId functionId = bytecode_iterator().GetRuntimeIdOperand(0);
   interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
   size_t arg_count = bytecode_iterator().GetRegisterCountOperand(2);
   interpreter::Register first_return =
@@ -993,8 +1028,7 @@
 
 void BytecodeGraphBuilder::VisitInvokeIntrinsic() {
   FrameStateBeforeAndAfter states(this);
-  Runtime::FunctionId functionId = static_cast<Runtime::FunctionId>(
-      bytecode_iterator().GetRuntimeIdOperand(0));
+  Runtime::FunctionId functionId = bytecode_iterator().GetIntrinsicIdOperand(0);
   interpreter::Register first_arg = bytecode_iterator().GetRegisterOperand(1);
   size_t arg_count = bytecode_iterator().GetRegisterCountOperand(2);
 
@@ -1188,31 +1222,38 @@
 }
 
 void BytecodeGraphBuilder::VisitTestEqual() {
-  BuildCompareOp(javascript()->Equal());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->Equal(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestNotEqual() {
-  BuildCompareOp(javascript()->NotEqual());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->NotEqual(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestEqualStrict() {
-  BuildCompareOp(javascript()->StrictEqual());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->StrictEqual(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestLessThan() {
-  BuildCompareOp(javascript()->LessThan());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->LessThan(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestGreaterThan() {
-  BuildCompareOp(javascript()->GreaterThan());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->GreaterThan(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestLessThanOrEqual() {
-  BuildCompareOp(javascript()->LessThanOrEqual());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->LessThanOrEqual(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestGreaterThanOrEqual() {
-  BuildCompareOp(javascript()->GreaterThanOrEqual());
+  CompareOperationHints hints = CompareOperationHints::Any();
+  BuildCompareOp(javascript()->GreaterThanOrEqual(hints));
 }
 
 void BytecodeGraphBuilder::VisitTestIn() {
@@ -1376,16 +1417,26 @@
   Node* state = environment()->LookupAccumulator();
   Node* generator = environment()->LookupRegister(
       bytecode_iterator().GetRegisterOperand(0));
+  // The offsets used by the bytecode iterator are relative to a different base
+  // than what is used in the interpreter, hence the addition.
+  Node* offset =
+      jsgraph()->Constant(bytecode_iterator().current_offset() +
+                          (BytecodeArray::kHeaderSize - kHeapObjectTag));
 
-  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);
+  int register_count = environment()->register_count();
+  int value_input_count = 3 + register_count;
+
+  Node** value_inputs = local_zone()->NewArray<Node*>(value_input_count);
+  value_inputs[0] = generator;
+  value_inputs[1] = state;
+  value_inputs[2] = offset;
+  for (int i = 0; i < register_count; ++i) {
+    value_inputs[3 + i] =
+        environment()->LookupRegister(interpreter::Register(i));
   }
 
-  NewNode(javascript()->CallRuntime(Runtime::kGeneratorSetContext), generator);
-  NewNode(javascript()->CallRuntime(Runtime::kGeneratorSetContinuation),
-      generator, state);
+  MakeNode(javascript()->GeneratorStore(register_count), value_input_count,
+           value_inputs, false);
 }
 
 void BytecodeGraphBuilder::VisitResumeGenerator() {
@@ -1393,23 +1444,16 @@
 
   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));
+    Node* value = NewNode(javascript()->GeneratorRestoreRegister(i), generator);
     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));
+  Node* state =
+      NewNode(javascript()->GeneratorRestoreContinuation(), generator);
 
   environment()->BindAccumulator(state, &states);
 }
@@ -1485,7 +1529,8 @@
 void BytecodeGraphBuilder::BuildJumpIfEqual(Node* comperand) {
   Node* accumulator = environment()->LookupAccumulator();
   Node* condition =
-      NewNode(javascript()->StrictEqual(), accumulator, comperand);
+      NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+              accumulator, comperand);
   BuildConditionalJump(condition);
 }
 
@@ -1494,14 +1539,17 @@
   Node* accumulator = environment()->LookupAccumulator();
   Node* to_boolean =
       NewNode(javascript()->ToBoolean(ToBooleanHint::kAny), accumulator);
-  Node* condition = NewNode(javascript()->StrictEqual(), to_boolean, comperand);
+  Node* condition =
+      NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+              to_boolean, comperand);
   BuildConditionalJump(condition);
 }
 
 void BytecodeGraphBuilder::BuildJumpIfNotHole() {
   Node* accumulator = environment()->LookupAccumulator();
-  Node* condition = NewNode(javascript()->StrictEqual(), accumulator,
-                            jsgraph()->TheHoleConstant());
+  Node* condition =
+      NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+              accumulator, jsgraph()->TheHoleConstant());
   Node* node =
       NewNode(common()->Select(MachineRepresentation::kTagged), condition,
               jsgraph()->FalseConstant(), jsgraph()->TrueConstant());
diff --git a/src/compiler/bytecode-graph-builder.h b/src/compiler/bytecode-graph-builder.h
index c842c24..66cd96e 100644
--- a/src/compiler/bytecode-graph-builder.h
+++ b/src/compiler/bytecode-graph-builder.h
@@ -112,11 +112,12 @@
 
   void BuildCreateLiteral(const Operator* op);
   void BuildCreateArguments(CreateArgumentsType type);
-  void BuildLoadGlobal(TypeofMode typeof_mode);
+  Node* BuildLoadContextSlot();
+  Node* BuildLoadGlobal(TypeofMode typeof_mode);
   void BuildStoreGlobal(LanguageMode language_mode);
-  void BuildNamedLoad();
-  void BuildKeyedLoad();
+  Node* BuildNamedLoad();
   void BuildNamedStore(LanguageMode language_mode);
+  Node* BuildKeyedLoad();
   void BuildKeyedStore(LanguageMode language_mode);
   void BuildLdaLookupSlot(TypeofMode typeof_mode);
   void BuildStaLookupSlot(LanguageMode language_mode);
@@ -218,10 +219,6 @@
   const BytecodeBranchAnalysis* branch_analysis_;
   Environment* environment_;
 
-  // Indicates whether deoptimization support is enabled for this compilation
-  // and whether valid frame states need to be attached to deoptimizing nodes.
-  bool deoptimization_enabled_;
-
   // Merge environments are snapshots of the environment at points where the
   // control flow merges. This models a forward data flow propagation of all
   // values from all predecessors of the merge in question.
diff --git a/src/compiler/checkpoint-elimination.cc b/src/compiler/checkpoint-elimination.cc
new file mode 100644
index 0000000..d81e109
--- /dev/null
+++ b/src/compiler/checkpoint-elimination.cc
@@ -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.
+
+#include "src/compiler/checkpoint-elimination.h"
+
+#include "src/compiler/node-properties.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+CheckpointElimination::CheckpointElimination(Editor* editor)
+    : AdvancedReducer(editor) {}
+
+namespace {
+
+// The given checkpoint is redundant if it is effect-wise dominated by another
+// checkpoint and there is no observable write in between. For now we consider
+// a linear effect chain only instead of true effect-wise dominance.
+bool IsRedundantCheckpoint(Node* node) {
+  Node* effect = NodeProperties::GetEffectInput(node);
+  while (effect->op()->HasProperty(Operator::kNoWrite) &&
+         effect->op()->EffectInputCount() == 1) {
+    if (effect->opcode() == IrOpcode::kCheckpoint) return true;
+    effect = NodeProperties::GetEffectInput(effect);
+  }
+  return false;
+}
+
+}  // namespace
+
+Reduction CheckpointElimination::Reduce(Node* node) {
+  if (node->opcode() != IrOpcode::kCheckpoint) return NoChange();
+  if (IsRedundantCheckpoint(node)) {
+    return Replace(NodeProperties::GetEffectInput(node));
+  }
+  return NoChange();
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/checkpoint-elimination.h b/src/compiler/checkpoint-elimination.h
new file mode 100644
index 0000000..4d6aada
--- /dev/null
+++ b/src/compiler/checkpoint-elimination.h
@@ -0,0 +1,27 @@
+// 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_CHECKPOINT_ELIMINATION_H_
+#define V8_COMPILER_CHECKPOINT_ELIMINATION_H_
+
+#include "src/compiler/graph-reducer.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+// Performs elimination of redundant checkpoints within the graph.
+class CheckpointElimination final : public AdvancedReducer {
+ public:
+  explicit CheckpointElimination(Editor* editor);
+  ~CheckpointElimination() final {}
+
+  Reduction Reduce(Node* node) final;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_CHECKPOINT_ELIMINATION_H_
diff --git a/src/compiler/coalesced-live-ranges.cc b/src/compiler/coalesced-live-ranges.cc
deleted file mode 100644
index 4ac3e21..0000000
--- a/src/compiler/coalesced-live-ranges.cc
+++ /dev/null
@@ -1,143 +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/coalesced-live-ranges.h"
-#include "src/compiler/greedy-allocator.h"
-#include "src/compiler/register-allocator.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-
-LiveRangeConflictIterator::LiveRangeConflictIterator(const LiveRange* range,
-                                                     IntervalStore* storage)
-    : query_(range->first_interval()),
-      pos_(storage->end()),
-      intervals_(storage) {
-  MovePosAndQueryToFirstConflict();
-}
-
-
-LiveRange* LiveRangeConflictIterator::Current() const {
-  if (IsFinished()) return nullptr;
-  return pos_->range_;
-}
-
-
-void LiveRangeConflictIterator::MovePosToFirstConflictForQuery() {
-  DCHECK_NOT_NULL(query_);
-  auto end = intervals_->end();
-  LifetimePosition q_start = query_->start();
-  LifetimePosition q_end = query_->end();
-
-  if (intervals_->empty() || intervals_->rbegin()->end_ <= q_start ||
-      intervals_->begin()->start_ >= q_end) {
-    pos_ = end;
-    return;
-  }
-
-  pos_ = intervals_->upper_bound(AsAllocatedInterval(q_start));
-  // pos is either at the end (no start strictly greater than q_start) or
-  // at some position with the aforementioned property. In either case, the
-  // allocated interval before this one may intersect our query:
-  // either because, although it starts before this query's start, it ends
-  // after; or because it starts exactly at the query start. So unless we're
-  // right at the beginning of the storage - meaning the first allocated
-  // interval is also starting after this query's start - see what's behind.
-  if (pos_ != intervals_->begin()) {
-    --pos_;
-    if (!QueryIntersectsAllocatedInterval()) {
-      // The interval behind wasn't intersecting, so move back.
-      ++pos_;
-    }
-  }
-  if (pos_ == end || !QueryIntersectsAllocatedInterval()) {
-    pos_ = end;
-  }
-}
-
-
-void LiveRangeConflictIterator::MovePosAndQueryToFirstConflict() {
-  auto end = intervals_->end();
-  for (; query_ != nullptr; query_ = query_->next()) {
-    MovePosToFirstConflictForQuery();
-    if (pos_ != end) {
-      DCHECK(QueryIntersectsAllocatedInterval());
-      return;
-    }
-  }
-
-  Invalidate();
-}
-
-
-void LiveRangeConflictIterator::IncrementPosAndSkipOverRepetitions() {
-  auto end = intervals_->end();
-  DCHECK(pos_ != end);
-  LiveRange* current_conflict = Current();
-  while (pos_ != end && pos_->range_ == current_conflict) {
-    ++pos_;
-  }
-}
-
-
-LiveRange* LiveRangeConflictIterator::InternalGetNext(bool clean_behind) {
-  if (IsFinished()) return nullptr;
-
-  LiveRange* to_clear = Current();
-  IncrementPosAndSkipOverRepetitions();
-  // At this point, pos_ is either at the end, or on an interval that doesn't
-  // correspond to the same range as to_clear. This interval may not even be
-  // a conflict.
-  if (clean_behind) {
-    // Since we parked pos_ on an iterator that won't be affected by removal,
-    // we can safely delete to_clear's intervals.
-    for (auto interval = to_clear->first_interval(); interval != nullptr;
-         interval = interval->next()) {
-      AllocatedInterval erase_key(interval->start(), interval->end(), nullptr);
-      intervals_->erase(erase_key);
-    }
-  }
-  // We may have parked pos_ at the end, or on a non-conflict. In that case,
-  // move to the next query and reinitialize pos and query. This may invalidate
-  // the iterator, if no more conflicts are available.
-  if (!QueryIntersectsAllocatedInterval()) {
-    query_ = query_->next();
-    MovePosAndQueryToFirstConflict();
-  }
-  return Current();
-}
-
-
-LiveRangeConflictIterator CoalescedLiveRanges::GetConflicts(
-    const LiveRange* range) {
-  return LiveRangeConflictIterator(range, &intervals());
-}
-
-
-void CoalescedLiveRanges::AllocateRange(LiveRange* range) {
-  for (auto interval = range->first_interval(); interval != nullptr;
-       interval = interval->next()) {
-    AllocatedInterval to_insert(interval->start(), interval->end(), range);
-    intervals().insert(to_insert);
-  }
-}
-
-
-bool CoalescedLiveRanges::VerifyAllocationsAreValidForTesting() const {
-  LifetimePosition last_end = LifetimePosition::GapFromInstructionIndex(0);
-  for (auto i : intervals_) {
-    if (i.start_ < last_end) {
-      return false;
-    }
-    last_end = i.end_;
-  }
-  return true;
-}
-
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/src/compiler/coalesced-live-ranges.h b/src/compiler/coalesced-live-ranges.h
deleted file mode 100644
index 54bbce2..0000000
--- a/src/compiler/coalesced-live-ranges.h
+++ /dev/null
@@ -1,158 +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_COALESCED_LIVE_RANGES_H_
-#define V8_COALESCED_LIVE_RANGES_H_
-
-#include "src/compiler/register-allocator.h"
-#include "src/zone-containers.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-
-// Implementation detail for CoalescedLiveRanges.
-struct AllocatedInterval {
-  AllocatedInterval(LifetimePosition start, LifetimePosition end,
-                    LiveRange* range)
-      : start_(start), end_(end), range_(range) {}
-
-  LifetimePosition start_;
-  LifetimePosition end_;
-  LiveRange* range_;
-  bool operator<(const AllocatedInterval& other) const {
-    return start_ < other.start_;
-  }
-  bool operator>(const AllocatedInterval& other) const {
-    return start_ > other.start_;
-  }
-};
-typedef ZoneSet<AllocatedInterval> IntervalStore;
-
-
-// An iterator over conflicts of a live range, obtained from CoalescedLiveRanges
-// The design supports two main scenarios (see GreedyAllocator):
-// (1) observing each conflicting range, without mutating the allocations, and
-// (2) observing each conflicting range, and then moving to the next, after
-// removing the current conflict.
-class LiveRangeConflictIterator {
- public:
-  // Current conflict. nullptr if no conflicts, or if we reached the end of
-  // conflicts.
-  LiveRange* Current() const;
-
-  // Get the next conflict. Caller should handle non-consecutive repetitions of
-  // the same range.
-  LiveRange* GetNext() { return InternalGetNext(false); }
-
-  // Get the next conflict, after evicting the current one. Caller may expect
-  // to never observe the same live range more than once.
-  LiveRange* RemoveCurrentAndGetNext() { return InternalGetNext(true); }
-
- private:
-  friend class CoalescedLiveRanges;
-
-  typedef IntervalStore::const_iterator interval_iterator;
-  LiveRangeConflictIterator(const LiveRange* range, IntervalStore* store);
-
-  // Move the store iterator to  first interval intersecting query. Since the
-  // intervals are sorted, subsequent intervals intersecting query follow. May
-  // leave the store iterator at "end", meaning that the current query does not
-  // have an intersection.
-  void MovePosToFirstConflictForQuery();
-
-  // Move both query and store iterator to the first intersection, if any. If
-  // none, then it invalidates the iterator (IsFinished() == true)
-  void MovePosAndQueryToFirstConflict();
-
-  // Increment pos and skip over intervals belonging to the same range we
-  // started with (i.e. Current() before the call). It is possible that range
-  // will be seen again, but not consecutively.
-  void IncrementPosAndSkipOverRepetitions();
-
-  // Common implementation used by both GetNext as well as
-  // ClearCurrentAndGetNext.
-  LiveRange* InternalGetNext(bool clean_behind);
-
-  bool IsFinished() const { return query_ == nullptr; }
-
-  static AllocatedInterval AsAllocatedInterval(LifetimePosition pos) {
-    return AllocatedInterval(pos, LifetimePosition::Invalid(), nullptr);
-  }
-
-  // Intersection utilities.
-  static bool Intersects(LifetimePosition a_start, LifetimePosition a_end,
-                         LifetimePosition b_start, LifetimePosition b_end) {
-    return a_start < b_end && b_start < a_end;
-  }
-
-  bool QueryIntersectsAllocatedInterval() const {
-    DCHECK_NOT_NULL(query_);
-    return pos_ != intervals_->end() &&
-           Intersects(query_->start(), query_->end(), pos_->start_, pos_->end_);
-  }
-
-  void Invalidate() {
-    query_ = nullptr;
-    pos_ = intervals_->end();
-  }
-
-  const UseInterval* query_;
-  interval_iterator pos_;
-  IntervalStore* intervals_;
-};
-
-// Collection of live ranges allocated to the same register.
-// It supports efficiently finding all conflicts for a given, non-allocated
-// range. See AllocatedInterval.
-// Allocated live ranges do not intersect. At most, individual use intervals
-// touch. We store, for a live range, an AllocatedInterval corresponding to each
-// of that range's UseIntervals. We keep the list of AllocatedIntervals sorted
-// by starts. Then, given the non-intersecting property, we know that
-// consecutive AllocatedIntervals have the property that the "smaller"'s end is
-// less or equal to the "larger"'s start.
-// This allows for quick (logarithmic complexity) identification of the first
-// AllocatedInterval to conflict with a given LiveRange, and then for efficient
-// traversal of conflicts.
-class CoalescedLiveRanges : public ZoneObject {
- public:
-  explicit CoalescedLiveRanges(Zone* zone) : intervals_(zone) {}
-  void clear() { intervals_.clear(); }
-
-  bool empty() const { return intervals_.empty(); }
-
-  // Iterate over each live range conflicting with the provided one.
-  // The same live range may be observed multiple, but non-consecutive times.
-  LiveRangeConflictIterator GetConflicts(const LiveRange* range);
-
-
-  // Allocates a range with a pre-calculated candidate weight.
-  void AllocateRange(LiveRange* range);
-
-  // Unit testing API, verifying that allocated intervals do not overlap.
-  bool VerifyAllocationsAreValidForTesting() const;
-
- private:
-  static const float kAllocatedRangeMultiplier;
-
-  IntervalStore& intervals() { return intervals_; }
-  const IntervalStore& intervals() const { return intervals_; }
-
-  // Augment the weight of a range that is about to be allocated.
-  static void UpdateWeightAtAllocation(LiveRange* range);
-
-  // Reduce the weight of a range that has lost allocation.
-  static void UpdateWeightAtEviction(LiveRange* range);
-
-
-  IntervalStore intervals_;
-  DISALLOW_COPY_AND_ASSIGN(CoalescedLiveRanges);
-};
-
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
-#endif  // V8_COALESCED_LIVE_RANGES_H_
diff --git a/src/compiler/code-assembler.cc b/src/compiler/code-assembler.cc
index 081f28b..e598c09 100644
--- a/src/compiler/code-assembler.cc
+++ b/src/compiler/code-assembler.cc
@@ -19,6 +19,7 @@
 #include "src/interpreter/bytecodes.h"
 #include "src/machine-type.h"
 #include "src/macro-assembler.h"
+#include "src/utils.h"
 #include "src/zone.h"
 
 namespace v8 {
@@ -160,6 +161,28 @@
   return raw_assembler_->Return(value);
 }
 
+void CodeAssembler::DebugBreak() { raw_assembler_->DebugBreak(); }
+
+void CodeAssembler::Comment(const char* format, ...) {
+  if (!FLAG_code_comments) return;
+  char buffer[4 * KB];
+  StringBuilder builder(buffer, arraysize(buffer));
+  va_list arguments;
+  va_start(arguments, format);
+  builder.AddFormattedList(format, arguments);
+  va_end(arguments);
+
+  // Copy the string before recording it in the assembler to avoid
+  // issues when the stack allocated buffer goes out of scope.
+  const int prefix_len = 2;
+  int length = builder.position() + 1;
+  char* copy = reinterpret_cast<char*>(malloc(length + prefix_len));
+  MemCopy(copy + prefix_len, builder.Finalize(), length);
+  copy[0] = ';';
+  copy[1] = ' ';
+  raw_assembler_->Comment(copy);
+}
+
 void CodeAssembler::Bind(CodeAssembler::Label* label) { return label->Bind(); }
 
 Node* CodeAssembler::LoadFramePointer() {
@@ -392,6 +415,12 @@
                   result_size);
 }
 
+Node* CodeAssembler::CallStubN(Callable const& callable, Node** args,
+                               size_t result_size) {
+  Node* target = HeapConstant(callable.code());
+  return CallStubN(callable.descriptor(), target, args, result_size);
+}
+
 Node* CodeAssembler::CallStub(const CallInterfaceDescriptor& descriptor,
                               Node* target, Node* context, Node* arg1,
                               size_t result_size) {
@@ -479,6 +508,16 @@
   return CallN(call_descriptor, target, args);
 }
 
+Node* CodeAssembler::CallStubN(const CallInterfaceDescriptor& descriptor,
+                               Node* target, Node** args, size_t result_size) {
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), descriptor, descriptor.GetStackParameterCount(),
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+
+  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());
@@ -527,6 +566,25 @@
   return raw_assembler_->TailCallN(call_descriptor, target, args);
 }
 
+Node* CodeAssembler::TailCallStub(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::kSupportsTailCalls, 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 raw_assembler_->TailCallN(call_descriptor, target, args);
+}
+
 Node* CodeAssembler::TailCallBytecodeDispatch(
     const CallInterfaceDescriptor& interface_descriptor,
     Node* code_target_address, Node** args) {
@@ -536,6 +594,66 @@
   return raw_assembler_->TailCallN(descriptor, code_target_address, args);
 }
 
+Node* CodeAssembler::CallJS(Callable const& callable, Node* context,
+                            Node* function, Node* receiver,
+                            size_t result_size) {
+  const int argc = 0;
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), callable.descriptor(), argc + 1,
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+  Node* target = HeapConstant(callable.code());
+
+  Node** args = zone()->NewArray<Node*>(argc + 4);
+  args[0] = function;
+  args[1] = Int32Constant(argc);
+  args[2] = receiver;
+  args[3] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallJS(Callable const& callable, Node* context,
+                            Node* function, Node* receiver, Node* arg1,
+                            size_t result_size) {
+  const int argc = 1;
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), callable.descriptor(), argc + 1,
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+  Node* target = HeapConstant(callable.code());
+
+  Node** args = zone()->NewArray<Node*>(argc + 4);
+  args[0] = function;
+  args[1] = Int32Constant(argc);
+  args[2] = receiver;
+  args[3] = arg1;
+  args[4] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
+Node* CodeAssembler::CallJS(Callable const& callable, Node* context,
+                            Node* function, Node* receiver, Node* arg1,
+                            Node* arg2, size_t result_size) {
+  const int argc = 2;
+  CallDescriptor* call_descriptor = Linkage::GetStubCallDescriptor(
+      isolate(), zone(), callable.descriptor(), argc + 1,
+      CallDescriptor::kNoFlags, Operator::kNoProperties,
+      MachineType::AnyTagged(), result_size);
+  Node* target = HeapConstant(callable.code());
+
+  Node** args = zone()->NewArray<Node*>(argc + 4);
+  args[0] = function;
+  args[1] = Int32Constant(argc);
+  args[2] = receiver;
+  args[3] = arg1;
+  args[4] = arg2;
+  args[5] = context;
+
+  return CallN(call_descriptor, target, args);
+}
+
 void CodeAssembler::Goto(CodeAssembler::Label* label) {
   label->MergeVariables();
   raw_assembler_->Goto(label->label_);
@@ -598,10 +716,12 @@
 
 CodeAssembler::Variable::Variable(CodeAssembler* assembler,
                                   MachineRepresentation rep)
-    : impl_(new (assembler->zone()) Impl(rep)) {
-  assembler->variables_.push_back(impl_);
+    : impl_(new (assembler->zone()) Impl(rep)), assembler_(assembler) {
+  assembler->variables_.insert(impl_);
 }
 
+CodeAssembler::Variable::~Variable() { assembler_->variables_.erase(impl_); }
+
 void CodeAssembler::Variable::Bind(Node* value) { impl_->value_ = value; }
 
 Node* CodeAssembler::Variable::value() const {
diff --git a/src/compiler/code-assembler.h b/src/compiler/code-assembler.h
index 39af56d..c33605c 100644
--- a/src/compiler/code-assembler.h
+++ b/src/compiler/code-assembler.h
@@ -72,6 +72,7 @@
   V(Float64Mul)                            \
   V(Float64Div)                            \
   V(Float64Mod)                            \
+  V(Float64Atan2)                          \
   V(Float64InsertLowWord32)                \
   V(Float64InsertHighWord32)               \
   V(IntPtrAdd)                             \
@@ -106,8 +107,20 @@
   V(Word64Ror)
 
 #define CODE_ASSEMBLER_UNARY_OP_LIST(V) \
+  V(Float64Atan)                        \
+  V(Float64Atanh)                       \
+  V(Float64Cos)                         \
+  V(Float64Exp)                         \
+  V(Float64Expm1)                       \
+  V(Float64Log)                         \
+  V(Float64Log1p)                       \
+  V(Float64Log2)                        \
+  V(Float64Log10)                       \
+  V(Float64Cbrt)                        \
   V(Float64Neg)                         \
+  V(Float64Sin)                         \
   V(Float64Sqrt)                        \
+  V(Float64Tan)                         \
   V(Float64ExtractLowWord32)            \
   V(Float64ExtractHighWord32)           \
   V(BitcastWordToTagged)                \
@@ -166,6 +179,7 @@
   class Variable {
    public:
     explicit Variable(CodeAssembler* assembler, MachineRepresentation rep);
+    ~Variable();
     void Bind(Node* value);
     Node* value() const;
     MachineRepresentation rep() const;
@@ -175,6 +189,7 @@
     friend class CodeAssembler;
     class Impl;
     Impl* impl_;
+    CodeAssembler* assembler_;
   };
 
   enum AllocationFlag : uint8_t {
@@ -208,6 +223,9 @@
   Node* Parameter(int value);
   void Return(Node* value);
 
+  void DebugBreak();
+  void Comment(const char* format, ...);
+
   void Bind(Label* label);
   void Goto(Label* label);
   void GotoIf(Node* condition, Label* true_label);
@@ -293,6 +311,8 @@
                  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* CallStubN(Callable const& callable, Node** args,
+                  size_t result_size = 1);
 
   Node* CallStub(const CallInterfaceDescriptor& descriptor, Node* target,
                  Node* context, Node* arg1, size_t result_size = 1);
@@ -307,6 +327,8 @@
   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* CallStubN(const CallInterfaceDescriptor& descriptor, Node* target,
+                  Node** args, size_t result_size = 1);
 
   Node* TailCallStub(Callable const& callable, Node* context, Node* arg1,
                      Node* arg2, size_t result_size = 1);
@@ -318,10 +340,20 @@
   Node* TailCallStub(const CallInterfaceDescriptor& descriptor, Node* target,
                      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, Node* arg3,
+                     Node* arg4, size_t result_size = 1);
 
   Node* TailCallBytecodeDispatch(const CallInterfaceDescriptor& descriptor,
                                  Node* code_target_address, Node** args);
 
+  Node* CallJS(Callable const& callable, Node* context, Node* function,
+               Node* receiver, size_t result_size = 1);
+  Node* CallJS(Callable const& callable, Node* context, Node* function,
+               Node* receiver, Node* arg1, size_t result_size = 1);
+  Node* CallJS(Callable const& callable, Node* context, Node* function,
+               Node* receiver, Node* arg1, Node* arg2, size_t result_size = 1);
+
   // Branching helpers.
   void BranchIf(Node* condition, Label* if_true, Label* if_false);
 
@@ -348,8 +380,6 @@
   virtual void CallEpilogue();
 
  private:
-  friend class CodeAssemblerTester;
-
   CodeAssembler(Isolate* isolate, Zone* zone, CallDescriptor* call_descriptor,
                 Code::Flags flags, const char* name);
 
@@ -360,7 +390,7 @@
   Code::Flags flags_;
   const char* name_;
   bool code_generated_;
-  ZoneVector<Variable::Impl*> variables_;
+  ZoneSet<Variable::Impl*> variables_;
 
   DISALLOW_COPY_AND_ASSIGN(CodeAssembler);
 };
diff --git a/src/compiler/code-generator-impl.h b/src/compiler/code-generator-impl.h
index adb8400..4e09a27 100644
--- a/src/compiler/code-generator-impl.h
+++ b/src/compiler/code-generator-impl.h
@@ -31,6 +31,10 @@
     return ToRegister(instr_->InputAt(index));
   }
 
+  FloatRegister InputFloatRegister(size_t index) {
+    return ToFloatRegister(instr_->InputAt(index));
+  }
+
   DoubleRegister InputDoubleRegister(size_t index) {
     return ToDoubleRegister(instr_->InputAt(index));
   }
@@ -89,6 +93,10 @@
     return ToRegister(instr_->TempAt(index));
   }
 
+  FloatRegister OutputFloatRegister() {
+    return ToFloatRegister(instr_->Output());
+  }
+
   DoubleRegister OutputDoubleRegister() {
     return ToDoubleRegister(instr_->Output());
   }
@@ -111,6 +119,10 @@
     return LocationOperand::cast(op)->GetDoubleRegister();
   }
 
+  FloatRegister ToFloatRegister(InstructionOperand* op) {
+    return LocationOperand::cast(op)->GetFloatRegister();
+  }
+
   Constant ToConstant(InstructionOperand* op) {
     if (op->IsImmediate()) {
       return gen_->code()->GetImmediate(ImmediateOperand::cast(op));
diff --git a/src/compiler/code-generator.cc b/src/compiler/code-generator.cc
index 5cf9d97..f388659 100644
--- a/src/compiler/code-generator.cc
+++ b/src/compiler/code-generator.cc
@@ -399,10 +399,10 @@
   if (source_position.IsUnknown()) return;
   int code_pos = source_position.raw();
   masm()->positions_recorder()->RecordPosition(code_pos);
-  masm()->positions_recorder()->WriteRecordedPositions();
   if (FLAG_code_comments) {
-    Vector<char> buffer = Vector<char>::New(256);
     CompilationInfo* info = this->info();
+    if (!info->parse_info()) return;
+    Vector<char> buffer = Vector<char>::New(256);
     int ln = Script::GetLineNumber(info->script(), code_pos);
     int cn = Script::GetColumnNumber(info->script(), code_pos);
     if (info->script()->name()->IsString()) {
@@ -716,8 +716,12 @@
       CHECK(false);
     }
   } else if (op->IsFPStackSlot()) {
-    DCHECK(IsFloatingPoint(type.representation()));
-    translation->StoreDoubleStackSlot(LocationOperand::cast(op)->index());
+    if (type.representation() == MachineRepresentation::kFloat64) {
+      translation->StoreDoubleStackSlot(LocationOperand::cast(op)->index());
+    } else {
+      DCHECK_EQ(MachineRepresentation::kFloat32, type.representation());
+      translation->StoreFloatStackSlot(LocationOperand::cast(op)->index());
+    }
   } else if (op->IsRegister()) {
     InstructionOperandConverter converter(this, instr);
     if (type.representation() == MachineRepresentation::kBit) {
@@ -734,9 +738,13 @@
       CHECK(false);
     }
   } else if (op->IsFPRegister()) {
-    DCHECK(IsFloatingPoint(type.representation()));
     InstructionOperandConverter converter(this, instr);
-    translation->StoreDoubleRegister(converter.ToDoubleRegister(op));
+    if (type.representation() == MachineRepresentation::kFloat64) {
+      translation->StoreDoubleRegister(converter.ToDoubleRegister(op));
+    } else {
+      DCHECK_EQ(MachineRepresentation::kFloat32, type.representation());
+      translation->StoreFloatRegister(converter.ToFloatRegister(op));
+    }
   } else if (op->IsImmediate()) {
     InstructionOperandConverter converter(this, instr);
     Constant constant = converter.ToConstant(op);
diff --git a/src/compiler/common-node-cache.h b/src/compiler/common-node-cache.h
index cee0c4e..1f07703 100644
--- a/src/compiler/common-node-cache.h
+++ b/src/compiler/common-node-cache.h
@@ -52,12 +52,14 @@
 
   Node** FindHeapConstant(Handle<HeapObject> value);
 
-  Node** FindRelocatableInt32Constant(int32_t value) {
-    return relocatable_int32_constants_.Find(zone(), value);
+  Node** FindRelocatableInt32Constant(int32_t value, RelocInfoMode rmode) {
+    return relocatable_int32_constants_.Find(zone(),
+                                             std::make_pair(value, rmode));
   }
 
-  Node** FindRelocatableInt64Constant(int64_t value) {
-    return relocatable_int64_constants_.Find(zone(), value);
+  Node** FindRelocatableInt64Constant(int64_t value, RelocInfoMode rmode) {
+    return relocatable_int64_constants_.Find(zone(),
+                                             std::make_pair(value, rmode));
   }
 
   // Return all nodes from the cache.
@@ -73,8 +75,8 @@
   IntPtrNodeCache external_constants_;
   Int64NodeCache number_constants_;
   IntPtrNodeCache heap_constants_;
-  Int32NodeCache relocatable_int32_constants_;
-  Int64NodeCache relocatable_int64_constants_;
+  RelocInt32NodeCache relocatable_int32_constants_;
+  RelocInt64NodeCache 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 2f48683..5c3d3d7 100644
--- a/src/compiler/common-operator-reducer.cc
+++ b/src/compiler/common-operator-reducer.cc
@@ -19,8 +19,6 @@
 
 namespace {
 
-enum class Decision { kUnknown, kTrue, kFalse };
-
 Decision DecideCondition(Node* const cond) {
   switch (cond->opcode()) {
     case IrOpcode::kInt32Constant: {
@@ -142,13 +140,14 @@
   Decision const decision = DecideCondition(condition);
   if (decision == Decision::kUnknown) return NoChange();
   if (condition_is_true == (decision == Decision::kTrue)) {
-    return Replace(control);
+    ReplaceWithValue(node, dead(), effect, control);
+  } else {
+    control = graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager),
+                               frame_state, effect, control);
+    // TODO(bmeurer): This should be on the AdvancedReducer somehow.
+    NodeProperties::MergeControlToEnd(graph(), common(), control);
+    Revisit(graph()->end());
   }
-  control = graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager),
-                             frame_state, effect, control);
-  // TODO(bmeurer): This should be on the AdvancedReducer somehow.
-  NodeProperties::MergeControlToEnd(graph(), common(), control);
-  Revisit(graph()->end());
   return Replace(dead());
 }
 
diff --git a/src/compiler/common-operator.cc b/src/compiler/common-operator.cc
index d3f6972..4f5ead8 100644
--- a/src/compiler/common-operator.cc
+++ b/src/compiler/common-operator.cc
@@ -167,10 +167,44 @@
   return os << p.value() << "|" << p.rmode() << "|" << p.type();
 }
 
+size_t hash_value(RegionObservability observability) {
+  return static_cast<size_t>(observability);
+}
+
+std::ostream& operator<<(std::ostream& os, RegionObservability observability) {
+  switch (observability) {
+    case RegionObservability::kObservable:
+      return os << "observable";
+    case RegionObservability::kNotObservable:
+      return os << "not-observable";
+  }
+  UNREACHABLE();
+  return os;
+}
+
+RegionObservability RegionObservabilityOf(Operator const* op) {
+  DCHECK_EQ(IrOpcode::kBeginRegion, op->opcode());
+  return OpParameter<RegionObservability>(op);
+}
+
+std::ostream& operator<<(std::ostream& os,
+                         const ZoneVector<MachineType>* types) {
+  // Print all the MachineTypes, separated by commas.
+  bool first = true;
+  for (MachineType elem : *types) {
+    if (!first) {
+      os << ", ";
+    }
+    first = false;
+    os << elem;
+  }
+  return os;
+}
+
 #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)     \
-  V(DeoptimizeUnless, Operator::kFoldable, 2, 1, 1, 0, 0, 1) \
+  V(DeoptimizeIf, Operator::kFoldable, 2, 1, 1, 0, 1, 1)     \
+  V(DeoptimizeUnless, Operator::kFoldable, 2, 1, 1, 0, 1, 1) \
   V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1)            \
   V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1)           \
   V(IfSuccess, Operator::kKontrol, 0, 0, 1, 0, 0, 1)         \
@@ -179,9 +213,8 @@
   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)
+  V(Checkpoint, Operator::kKontrol, 0, 1, 1, 0, 1, 0)        \
+  V(FinishRegion, Operator::kKontrol, 1, 1, 0, 1, 1, 0)
 
 #define CACHED_RETURN_LIST(V) \
   V(1)                        \
@@ -360,6 +393,20 @@
   CACHED_EFFECT_PHI_LIST(CACHED_EFFECT_PHI)
 #undef CACHED_EFFECT_PHI
 
+  template <RegionObservability kRegionObservability>
+  struct BeginRegionOperator final : public Operator1<RegionObservability> {
+    BeginRegionOperator()
+        : Operator1<RegionObservability>(                  // --
+              IrOpcode::kBeginRegion, Operator::kKontrol,  // opcode
+              "BeginRegion",                               // name
+              0, 1, 0, 0, 1, 0,                            // counts
+              kRegionObservability) {}                     // parameter
+  };
+  BeginRegionOperator<RegionObservability::kObservable>
+      kBeginRegionObservableOperator;
+  BeginRegionOperator<RegionObservability::kNotObservable>
+      kBeginRegionNotObservableOperator;
+
   template <size_t kInputCount>
   struct LoopOperator final : public Operator {
     LoopOperator()
@@ -422,7 +469,7 @@
               IrOpcode::kProjection,  // opcode
               Operator::kPure,        // flags
               "Projection",           // name
-              1, 0, 0, 1, 0, 0,       // counts,
+              1, 0, 1, 1, 0, 0,       // counts,
               kIndex) {}              // parameter
   };
 #define CACHED_PROJECTION(index) \
@@ -759,6 +806,17 @@
       0, effect_input_count, 1, 0, 1, 0);     // counts
 }
 
+const Operator* CommonOperatorBuilder::BeginRegion(
+    RegionObservability region_observability) {
+  switch (region_observability) {
+    case RegionObservability::kObservable:
+      return &cache_.kBeginRegionObservableOperator;
+    case RegionObservability::kNotObservable:
+      return &cache_.kBeginRegionNotObservableOperator;
+  }
+  UNREACHABLE();
+  return nullptr;
+}
 
 const Operator* CommonOperatorBuilder::StateValues(int arguments) {
   switch (arguments) {
@@ -857,12 +915,12 @@
       break;
   }
   // Uncached.
-  return new (zone()) Operator1<size_t>(         // --
-      IrOpcode::kProjection,                     // opcode
-      Operator::kFoldable | Operator::kNoThrow,  // flags
-      "Projection",                              // name
-      1, 0, 0, 1, 0, 0,                          // counts
-      index);                                    // parameter
+  return new (zone()) Operator1<size_t>(  // --
+      IrOpcode::kProjection,              // opcode
+      Operator::kPure,                    // flags
+      "Projection",                       // name
+      1, 0, 1, 1, 0, 0,                   // counts
+      index);                             // parameter
 }
 
 
diff --git a/src/compiler/common-operator.h b/src/compiler/common-operator.h
index c2a7a37..77d53de 100644
--- a/src/compiler/common-operator.h
+++ b/src/compiler/common-operator.h
@@ -134,9 +134,25 @@
                 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);
 
+// Used to mark a region (as identified by BeginRegion/FinishRegion) as either
+// JavaScript-observable or not (i.e. allocations are not JavaScript observable
+// themselves, but transitioning stores are).
+enum class RegionObservability : uint8_t { kObservable, kNotObservable };
+
+size_t hash_value(RegionObservability);
+
+std::ostream& operator<<(std::ostream&, RegionObservability);
+
+RegionObservability RegionObservabilityOf(Operator const*) WARN_UNUSED_RESULT;
+
+std::ostream& operator<<(std::ostream& os,
+                         const ZoneVector<MachineType>* types);
+
 // Interface for building common operators that can be used at any level of IR,
 // including JavaScript, mid-level, and low-level.
 class CommonOperatorBuilder final : public ZoneObject {
@@ -186,8 +202,8 @@
   const Operator* Phi(MachineRepresentation representation,
                       int value_input_count);
   const Operator* EffectPhi(int effect_input_count);
-  const Operator* CheckPoint();
-  const Operator* BeginRegion();
+  const Operator* Checkpoint();
+  const Operator* BeginRegion(RegionObservability);
   const Operator* FinishRegion();
   const Operator* StateValues(int arguments);
   const Operator* ObjectState(int pointer_slots, int id);
diff --git a/src/compiler/effect-control-linearizer.cc b/src/compiler/effect-control-linearizer.cc
index 716723b..b7f6b12 100644
--- a/src/compiler/effect-control-linearizer.cc
+++ b/src/compiler/effect-control-linearizer.cc
@@ -37,6 +37,7 @@
 struct BlockEffectControlData {
   Node* current_effect = nullptr;  // New effect.
   Node* current_control = nullptr;  // New control.
+  Node* current_frame_state = nullptr;  // New frame state.
 };
 
 // Effect phis that need to be updated after the first pass.
@@ -222,10 +223,30 @@
       NodeProperties::ReplaceEffectInput(terminate, effect);
     }
 
+    // The frame state at block entry is determined by the frame states leaving
+    // all predecessors. In case there is no frame state dominating this block,
+    // we can rely on a checkpoint being present before the next deoptimization.
+    // TODO(mstarzinger): Eventually we will need to go hunt for a frame state
+    // once deoptimizing nodes roam freely through the schedule.
+    Node* frame_state = nullptr;
+    if (block != schedule()->start()) {
+      // If all the predecessors have the same effect, we can use it
+      // as our current effect.
+      int rpo_number = block->PredecessorAt(0)->rpo_number();
+      frame_state = block_effects[rpo_number].current_frame_state;
+      for (size_t i = 1; i < block->PredecessorCount(); i++) {
+        int rpo_number = block->PredecessorAt(i)->rpo_number();
+        if (block_effects[rpo_number].current_frame_state != frame_state) {
+          frame_state = nullptr;
+          break;
+        }
+      }
+    }
+
     // Process the ordinary instructions.
     for (; instr < block->NodeCount(); instr++) {
       Node* node = block->NodeAt(instr);
-      ProcessNode(node, &effect, &control);
+      ProcessNode(node, &frame_state, &effect, &control);
     }
 
     switch (block->control()) {
@@ -240,13 +261,14 @@
       case BasicBlock::kReturn:
       case BasicBlock::kDeoptimize:
       case BasicBlock::kThrow:
-        ProcessNode(block->control_input(), &effect, &control);
+        ProcessNode(block->control_input(), &frame_state, &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;
+    block_effects[block->rpo_number()].current_frame_state = frame_state;
   }
 
   // Update the incoming edges of the effect phis that could not be processed
@@ -276,29 +298,49 @@
 
 }  // namespace
 
-void EffectControlLinearizer::ProcessNode(Node* node, Node** effect,
-                                          Node** control) {
+void EffectControlLinearizer::ProcessNode(Node* node, Node** frame_state,
+                                          Node** effect, Node** control) {
   // If the node needs to be wired into the effect/control chain, do this
-  // here.
-  if (TryWireInStateEffect(node, effect, control)) {
+  // here. Pass current frame state for lowering to eager deoptimization.
+  if (TryWireInStateEffect(node, *frame_state, effect, control)) {
     return;
   }
 
+  // If the node has a visible effect, then there must be a checkpoint in the
+  // effect chain before we are allowed to place another eager deoptimization
+  // point. We zap the frame state to ensure this invariant is maintained.
+  if (region_observability_ == RegionObservability::kObservable &&
+      !node->op()->HasProperty(Operator::kNoWrite)) {
+    *frame_state = nullptr;
+  }
+
   // 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) {
+  if (node->opcode() == IrOpcode::kFinishRegion) {
+    // Reset the current region observability.
+    region_observability_ = RegionObservability::kObservable;
+    // Update the value uses to the value input of the finish node and
+    // the effect uses to the effect input.
+    return RemoveRegionNode(node);
+  }
+  if (node->opcode() == IrOpcode::kBeginRegion) {
+    // Determine the observability for this region and use that for all
+    // nodes inside the region (i.e. ignore the absence of kNoWrite on
+    // StoreField and other operators).
+    DCHECK_NE(RegionObservability::kNotObservable, region_observability_);
+    region_observability_ = RegionObservabilityOf(node->op());
     // 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) {
+  // Special treatment for checkpoint nodes.
+  if (node->opcode() == IrOpcode::kCheckpoint) {
     // Unlink the check point; effect uses will be updated to the incoming
-    // effect that is passed.
-    node->Kill();
+    // effect that is passed. The frame state is preserved for lowering.
+    DCHECK_EQ(RegionObservability::kObservable, region_observability_);
+    *frame_state = NodeProperties::GetFrameStateInput(node, 0);
+    node->TrimInputCount(0);
     return;
   }
 
@@ -347,7 +389,9 @@
   }
 }
 
-bool EffectControlLinearizer::TryWireInStateEffect(Node* node, Node** effect,
+bool EffectControlLinearizer::TryWireInStateEffect(Node* node,
+                                                   Node* frame_state,
+                                                   Node** effect,
                                                    Node** control) {
   ValueEffectControl state(nullptr, nullptr, nullptr);
   switch (node->opcode()) {
@@ -384,6 +428,36 @@
     case IrOpcode::kChangeTaggedToFloat64:
       state = LowerChangeTaggedToFloat64(node, *effect, *control);
       break;
+    case IrOpcode::kTruncateTaggedToFloat64:
+      state = LowerTruncateTaggedToFloat64(node, *effect, *control);
+      break;
+    case IrOpcode::kCheckBounds:
+      state = LowerCheckBounds(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckTaggedPointer:
+      state = LowerCheckTaggedPointer(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckTaggedSigned:
+      state = LowerCheckTaggedSigned(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedInt32Add:
+      state = LowerCheckedInt32Add(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedInt32Sub:
+      state = LowerCheckedInt32Sub(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedUint32ToInt32:
+      state = LowerCheckedUint32ToInt32(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedFloat64ToInt32:
+      state = LowerCheckedFloat64ToInt32(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedTaggedToInt32:
+      state = LowerCheckedTaggedToInt32(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckedTaggedToFloat64:
+      state = LowerCheckedTaggedToFloat64(node, frame_state, *effect, *control);
+      break;
     case IrOpcode::kTruncateTaggedToWord32:
       state = LowerTruncateTaggedToWord32(node, *effect, *control);
       break;
@@ -405,10 +479,28 @@
     case IrOpcode::kObjectIsUndetectable:
       state = LowerObjectIsUndetectable(node, *effect, *control);
       break;
+    case IrOpcode::kStringFromCharCode:
+      state = LowerStringFromCharCode(node, *effect, *control);
+      break;
+    case IrOpcode::kCheckFloat64Hole:
+      state = LowerCheckFloat64Hole(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kCheckTaggedHole:
+      state = LowerCheckTaggedHole(node, frame_state, *effect, *control);
+      break;
+    case IrOpcode::kPlainPrimitiveToNumber:
+      state = LowerPlainPrimitiveToNumber(node, *effect, *control);
+      break;
+    case IrOpcode::kPlainPrimitiveToWord32:
+      state = LowerPlainPrimitiveToWord32(node, *effect, *control);
+      break;
+    case IrOpcode::kPlainPrimitiveToFloat64:
+      state = LowerPlainPrimitiveToFloat64(node, *effect, *control);
+      break;
     default:
       return false;
   }
-  NodeProperties::ReplaceUses(node, state.value);
+  NodeProperties::ReplaceUses(node, state.value, state.effect, state.control);
   *effect = state.effect;
   *control = state.control;
   return true;
@@ -465,10 +557,11 @@
   if (machine()->Is64()) {
     vsmi = ChangeInt32ToSmi(value32);
   } else {
-    Node* smi_tag =
-        graph()->NewNode(machine()->Int32AddWithOverflow(), value32, value32);
+    Node* smi_tag = graph()->NewNode(machine()->Int32AddWithOverflow(), value32,
+                                     value32, if_smi);
 
-    Node* check_ovf = graph()->NewNode(common()->Projection(1), smi_tag);
+    Node* check_ovf =
+        graph()->NewNode(common()->Projection(1), smi_tag, if_smi);
     Node* branch_ovf = graph()->NewNode(common()->Branch(BranchHint::kFalse),
                                         check_ovf, if_smi);
 
@@ -476,7 +569,7 @@
     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);
+    vsmi = graph()->NewNode(common()->Projection(0), smi_tag, if_smi);
   }
 
   // Allocate the box for the {value}.
@@ -528,9 +621,10 @@
     return ValueEffectControl(ChangeInt32ToSmi(value), effect, control);
   }
 
-  Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), value, value);
+  Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), value, value,
+                               control);
 
-  Node* ovf = graph()->NewNode(common()->Projection(1), add);
+  Node* ovf = graph()->NewNode(common()->Projection(1), add, control);
   Node* branch =
       graph()->NewNode(common()->Branch(BranchHint::kFalse), ovf, control);
 
@@ -539,7 +633,7 @@
       AllocateHeapNumberWithValue(ChangeInt32ToFloat64(value), effect, if_true);
 
   Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
-  Node* vfalse = graph()->NewNode(common()->Projection(0), add);
+  Node* vfalse = graph()->NewNode(common()->Projection(0), add, if_false);
 
   Node* merge = graph()->NewNode(common()->Merge(2), alloc.control, if_false);
   Node* phi = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
@@ -661,6 +755,12 @@
 EffectControlLinearizer::ValueEffectControl
 EffectControlLinearizer::LowerChangeTaggedToFloat64(Node* node, Node* effect,
                                                     Node* control) {
+  return LowerTruncateTaggedToFloat64(node, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerTruncateTaggedToFloat64(Node* node, Node* effect,
+                                                      Node* control) {
   Node* value = node->InputAt(0);
 
   Node* check = ObjectIsSmi(value);
@@ -694,6 +794,288 @@
 }
 
 EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckBounds(Node* node, Node* frame_state,
+                                          Node* effect, Node* control) {
+  Node* index = node->InputAt(0);
+  Node* limit = node->InputAt(1);
+
+  Node* check = graph()->NewNode(machine()->Uint32LessThan(), index, limit);
+  control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                      frame_state, effect, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(index, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckTaggedPointer(Node* node, Node* frame_state,
+                                                 Node* effect, Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                      frame_state, effect, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckTaggedSigned(Node* node, Node* frame_state,
+                                                Node* effect, Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                      frame_state, effect, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedInt32Add(Node* node, Node* frame_state,
+                                              Node* effect, Node* control) {
+  Node* lhs = node->InputAt(0);
+  Node* rhs = node->InputAt(1);
+
+  Node* value =
+      graph()->NewNode(machine()->Int32AddWithOverflow(), lhs, rhs, control);
+
+  Node* check = graph()->NewNode(common()->Projection(1), value, control);
+  control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                      frame_state, effect, control);
+
+  value = graph()->NewNode(common()->Projection(0), value, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedInt32Sub(Node* node, Node* frame_state,
+                                              Node* effect, Node* control) {
+  Node* lhs = node->InputAt(0);
+  Node* rhs = node->InputAt(1);
+
+  Node* value =
+      graph()->NewNode(machine()->Int32SubWithOverflow(), lhs, rhs, control);
+
+  Node* check = graph()->NewNode(common()->Projection(1), value, control);
+  control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                      frame_state, effect, control);
+
+  value = graph()->NewNode(common()->Projection(0), value, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedUint32ToInt32(Node* node,
+                                                   Node* frame_state,
+                                                   Node* effect,
+                                                   Node* control) {
+  Node* value = node->InputAt(0);
+  Node* max_int = jsgraph()->Int32Constant(std::numeric_limits<int32_t>::max());
+  Node* is_safe =
+      graph()->NewNode(machine()->Uint32LessThanOrEqual(), value, max_int);
+  control = effect = graph()->NewNode(common()->DeoptimizeUnless(), is_safe,
+                                      frame_state, effect, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::BuildCheckedFloat64ToInt32(Node* value,
+                                                    Node* frame_state,
+                                                    Node* effect,
+                                                    Node* control) {
+  Node* value32 = graph()->NewNode(machine()->RoundFloat64ToInt32(), value);
+  Node* check_same = graph()->NewNode(
+      machine()->Float64Equal(), value,
+      graph()->NewNode(machine()->ChangeInt32ToFloat64(), value32));
+  control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check_same,
+                                      frame_state, effect, control);
+
+  // 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, control);
+
+  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* deopt_minus_zero = graph()->NewNode(
+      common()->DeoptimizeIf(), check_negative, frame_state, effect, if_zero);
+
+  Node* merge =
+      graph()->NewNode(common()->Merge(2), deopt_minus_zero, if_notzero);
+
+  effect =
+      graph()->NewNode(common()->EffectPhi(2), deopt_minus_zero, effect, merge);
+
+  return ValueEffectControl(value32, effect, merge);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedFloat64ToInt32(Node* node,
+                                                    Node* frame_state,
+                                                    Node* effect,
+                                                    Node* control) {
+  Node* value = node->InputAt(0);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return BuildCheckedFloat64ToInt32(value, frame_state, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedTaggedToInt32(Node* node,
+                                                   Node* frame_state,
+                                                   Node* effect,
+                                                   Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  // In the Smi case, just convert to int32.
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = ChangeSmiToInt32(value);
+
+  // In the non-Smi case, check the heap numberness, load the number and convert
+  // to int32.
+  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* check = graph()->NewNode(machine()->WordEqual(), value_map,
+                                   jsgraph()->HeapNumberMapConstant());
+    if_false = efalse = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                         frame_state, efalse, if_false);
+    vfalse = efalse = graph()->NewNode(
+        simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+        efalse, if_false);
+    ValueEffectControl state =
+        BuildCheckedFloat64ToInt32(vfalse, frame_state, efalse, if_false);
+    if_false = state.control;
+    efalse = state.effect;
+    vfalse = state.value;
+  }
+
+  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);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::BuildCheckedHeapNumberOrOddballToFloat64(
+    Node* value, Node* frame_state, Node* effect, Node* control) {
+  Node* value_map = effect = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForMap()), value, effect, control);
+  Node* check_number = graph()->NewNode(machine()->WordEqual(), value_map,
+                                        jsgraph()->HeapNumberMapConstant());
+
+  Node* branch = graph()->NewNode(common()->Branch(BranchHint::kTrue),
+                                  check_number, control);
+
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  // For oddballs also contain the numeric value, let us just check that
+  // we have an oddball here.
+  Node* efalse = effect;
+  Node* instance_type = efalse = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForMapInstanceType()), value_map,
+      efalse, if_false);
+  Node* check_oddball =
+      graph()->NewNode(machine()->Word32Equal(), instance_type,
+                       jsgraph()->Int32Constant(ODDBALL_TYPE));
+  if_false = efalse =
+      graph()->NewNode(common()->DeoptimizeUnless(), check_oddball, frame_state,
+                       efalse, if_false);
+  STATIC_ASSERT(HeapNumber::kValueOffset == Oddball::kToNumberRawOffset);
+
+  control = graph()->NewNode(common()->Merge(2), if_true, if_false);
+  effect = graph()->NewNode(common()->EffectPhi(2), etrue, efalse, control);
+
+  Node* result = effect = graph()->NewNode(
+      simplified()->LoadField(AccessBuilder::ForHeapNumberValue()), value,
+      effect, control);
+  return ValueEffectControl(result, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckedTaggedToFloat64(Node* node,
+                                                     Node* frame_state,
+                                                     Node* effect,
+                                                     Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check = ObjectIsSmi(value);
+  Node* branch =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check, control);
+
+  // In the Smi case, just convert to int32 and then float64.
+  Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
+  Node* etrue = effect;
+  Node* vtrue = ChangeSmiToInt32(value);
+  vtrue = graph()->NewNode(machine()->ChangeInt32ToFloat64(), vtrue);
+
+  // Otherwise, check heap numberness and load the number.
+  Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
+  ValueEffectControl number_state = BuildCheckedHeapNumberOrOddballToFloat64(
+      value, frame_state, effect, if_false);
+
+  Node* merge =
+      graph()->NewNode(common()->Merge(2), if_true, number_state.control);
+  Node* effect_phi = graph()->NewNode(common()->EffectPhi(2), etrue,
+                                      number_state.effect, merge);
+  Node* result =
+      graph()->NewNode(common()->Phi(MachineRepresentation::kFloat64, 2), vtrue,
+                       number_state.value, merge);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(result, effect_phi, merge);
+}
+
+EffectControlLinearizer::ValueEffectControl
 EffectControlLinearizer::LowerTruncateTaggedToWord32(Node* node, Node* effect,
                                                      Node* control) {
   Node* value = node->InputAt(0);
@@ -918,6 +1300,170 @@
 }
 
 EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerStringFromCharCode(Node* node, Node* effect,
+                                                 Node* control) {
+  Node* value = node->InputAt(0);
+
+  // Compute the character code.
+  Node* code =
+      graph()->NewNode(machine()->Word32And(), value,
+                       jsgraph()->Int32Constant(String::kMaxUtf16CodeUnit));
+
+  // Check if the {code} is a one-byte char code.
+  Node* check0 =
+      graph()->NewNode(machine()->Int32LessThanOrEqual(), code,
+                       jsgraph()->Int32Constant(String::kMaxOneByteCharCode));
+  Node* branch0 =
+      graph()->NewNode(common()->Branch(BranchHint::kTrue), check0, control);
+
+  Node* if_true0 = graph()->NewNode(common()->IfTrue(), branch0);
+  Node* etrue0 = effect;
+  Node* vtrue0;
+  {
+    // Load the isolate wide single character string cache.
+    Node* cache =
+        jsgraph()->HeapConstant(factory()->single_character_string_cache());
+
+    // Compute the {cache} index for {code}.
+    Node* index =
+        machine()->Is32() ? code : graph()->NewNode(
+                                       machine()->ChangeUint32ToUint64(), code);
+
+    // Check if we have an entry for the {code} in the single character string
+    // cache already.
+    Node* entry = etrue0 = graph()->NewNode(
+        simplified()->LoadElement(AccessBuilder::ForFixedArrayElement()), cache,
+        index, etrue0, if_true0);
+
+    Node* check1 = graph()->NewNode(machine()->WordEqual(), entry,
+                                    jsgraph()->UndefinedConstant());
+    Node* branch1 = graph()->NewNode(common()->Branch(BranchHint::kFalse),
+                                     check1, if_true0);
+
+    Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
+    Node* etrue1 = etrue0;
+    Node* vtrue1;
+    {
+      // Allocate a new SeqOneByteString for {code}.
+      vtrue1 = etrue1 = graph()->NewNode(
+          simplified()->Allocate(NOT_TENURED),
+          jsgraph()->Int32Constant(SeqOneByteString::SizeFor(1)), etrue1,
+          if_true1);
+      etrue1 = graph()->NewNode(
+          simplified()->StoreField(AccessBuilder::ForMap()), vtrue1,
+          jsgraph()->HeapConstant(factory()->one_byte_string_map()), etrue1,
+          if_true1);
+      etrue1 = graph()->NewNode(
+          simplified()->StoreField(AccessBuilder::ForNameHashField()), vtrue1,
+          jsgraph()->IntPtrConstant(Name::kEmptyHashField), etrue1, if_true1);
+      etrue1 = graph()->NewNode(
+          simplified()->StoreField(AccessBuilder::ForStringLength()), vtrue1,
+          jsgraph()->SmiConstant(1), etrue1, if_true1);
+      etrue1 = graph()->NewNode(
+          machine()->Store(StoreRepresentation(MachineRepresentation::kWord8,
+                                               kNoWriteBarrier)),
+          vtrue1, jsgraph()->IntPtrConstant(SeqOneByteString::kHeaderSize -
+                                            kHeapObjectTag),
+          code, etrue1, if_true1);
+
+      // Remember it in the {cache}.
+      etrue1 = graph()->NewNode(
+          simplified()->StoreElement(AccessBuilder::ForFixedArrayElement()),
+          cache, index, vtrue1, etrue1, if_true1);
+    }
+
+    // Use the {entry} from the {cache}.
+    Node* if_false1 = graph()->NewNode(common()->IfFalse(), branch1);
+    Node* efalse1 = etrue0;
+    Node* vfalse1 = entry;
+
+    if_true0 = graph()->NewNode(common()->Merge(2), if_true1, if_false1);
+    etrue0 =
+        graph()->NewNode(common()->EffectPhi(2), etrue1, efalse1, if_true0);
+    vtrue0 = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                              vtrue1, vfalse1, if_true0);
+  }
+
+  Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0);
+  Node* efalse0 = effect;
+  Node* vfalse0;
+  {
+    // Allocate a new SeqTwoByteString for {code}.
+    vfalse0 = efalse0 =
+        graph()->NewNode(simplified()->Allocate(NOT_TENURED),
+                         jsgraph()->Int32Constant(SeqTwoByteString::SizeFor(1)),
+                         efalse0, if_false0);
+    efalse0 = graph()->NewNode(
+        simplified()->StoreField(AccessBuilder::ForMap()), vfalse0,
+        jsgraph()->HeapConstant(factory()->string_map()), efalse0, if_false0);
+    efalse0 = graph()->NewNode(
+        simplified()->StoreField(AccessBuilder::ForNameHashField()), vfalse0,
+        jsgraph()->IntPtrConstant(Name::kEmptyHashField), efalse0, if_false0);
+    efalse0 = graph()->NewNode(
+        simplified()->StoreField(AccessBuilder::ForStringLength()), vfalse0,
+        jsgraph()->SmiConstant(1), efalse0, if_false0);
+    efalse0 = graph()->NewNode(
+        machine()->Store(StoreRepresentation(MachineRepresentation::kWord16,
+                                             kNoWriteBarrier)),
+        vfalse0, jsgraph()->IntPtrConstant(SeqTwoByteString::kHeaderSize -
+                                           kHeapObjectTag),
+        code, efalse0, 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::kTagged, 2),
+                           vtrue0, vfalse0, control);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckFloat64Hole(Node* node, Node* frame_state,
+                                               Node* effect, Node* control) {
+  // If we reach this point w/o eliminating the {node} that's marked
+  // with allow-return-hole, we cannot do anything, so just deoptimize
+  // in case of the hole NaN (similar to Crankshaft).
+  Node* value = node->InputAt(0);
+  Node* check = graph()->NewNode(
+      machine()->Word32Equal(),
+      graph()->NewNode(machine()->Float64ExtractHighWord32(), value),
+      jsgraph()->Int32Constant(kHoleNanUpper32));
+  control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                      frame_state, effect, control);
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerCheckTaggedHole(Node* node, Node* frame_state,
+                                              Node* effect, Node* control) {
+  CheckTaggedHoleMode mode = CheckTaggedHoleModeOf(node->op());
+  Node* value = node->InputAt(0);
+  Node* check = graph()->NewNode(machine()->WordEqual(), value,
+                                 jsgraph()->TheHoleConstant());
+  switch (mode) {
+    case CheckTaggedHoleMode::kConvertHoleToUndefined:
+      value = graph()->NewNode(
+          common()->Select(MachineRepresentation::kTagged, BranchHint::kFalse),
+          check, jsgraph()->UndefinedConstant(), value);
+      break;
+    case CheckTaggedHoleMode::kNeverReturnHole:
+      control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                          frame_state, effect, control);
+      break;
+  }
+
+  // Make sure the lowered node does not appear in any use lists.
+  node->TrimInputCount(0);
+
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
 EffectControlLinearizer::AllocateHeapNumberWithValue(Node* value, Node* effect,
                                                      Node* control) {
   Node* result = effect = graph()->NewNode(
@@ -961,7 +1507,6 @@
   }
   return value;
 }
-
 Node* EffectControlLinearizer::ObjectIsSmi(Node* value) {
   return graph()->NewNode(
       machine()->WordEqual(),
@@ -978,6 +1523,148 @@
   return jsgraph()->IntPtrConstant(kSmiShiftSize + kSmiTagSize);
 }
 
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerPlainPrimitiveToNumber(Node* node, Node* effect,
+                                                     Node* control) {
+  Node* value = node->InputAt(0);
+  Node* result = effect =
+      graph()->NewNode(ToNumberOperator(), jsgraph()->ToNumberBuiltinConstant(),
+                       value, jsgraph()->NoContextConstant(), effect, control);
+  return ValueEffectControl(result, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerPlainPrimitiveToWord32(Node* node, Node* effect,
+                                                     Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check0 = 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 = ChangeSmiToInt32(value);
+
+  Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0);
+  Node* efalse0 = effect;
+  Node* vfalse0;
+  {
+    vfalse0 = efalse0 = graph()->NewNode(
+        ToNumberOperator(), jsgraph()->ToNumberBuiltinConstant(), value,
+        jsgraph()->NoContextConstant(), efalse0, if_false0);
+
+    Node* check1 = ObjectIsSmi(vfalse0);
+    Node* branch1 = graph()->NewNode(common()->Branch(), check1, if_false0);
+
+    Node* if_true1 = graph()->NewNode(common()->IfTrue(), branch1);
+    Node* etrue1 = efalse0;
+    Node* vtrue1 = ChangeSmiToInt32(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);
+  return ValueEffectControl(value, effect, control);
+}
+
+EffectControlLinearizer::ValueEffectControl
+EffectControlLinearizer::LowerPlainPrimitiveToFloat64(Node* node, Node* effect,
+                                                      Node* control) {
+  Node* value = node->InputAt(0);
+
+  Node* check0 = 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 = ChangeSmiToInt32(value);
+    vtrue0 = graph()->NewNode(machine()->ChangeInt32ToFloat64(), vtrue0);
+  }
+
+  Node* if_false0 = graph()->NewNode(common()->IfFalse(), branch0);
+  Node* efalse0 = effect;
+  Node* vfalse0;
+  {
+    vfalse0 = efalse0 = graph()->NewNode(
+        ToNumberOperator(), jsgraph()->ToNumberBuiltinConstant(), value,
+        jsgraph()->NoContextConstant(), efalse0, if_false0);
+
+    Node* check1 = 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 = ChangeSmiToInt32(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);
+  return ValueEffectControl(value, effect, control);
+}
+
+Factory* EffectControlLinearizer::factory() const {
+  return isolate()->factory();
+}
+
+Isolate* EffectControlLinearizer::isolate() const {
+  return jsgraph()->isolate();
+}
+
+Operator const* EffectControlLinearizer::ToNumberOperator() {
+  if (!to_number_operator_.is_set()) {
+    Callable callable = CodeFactory::ToNumber(isolate());
+    CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
+    CallDescriptor* desc = Linkage::GetStubCallDescriptor(
+        isolate(), graph()->zone(), callable.descriptor(), 0, flags,
+        Operator::kNoThrow);
+    to_number_operator_.set(common()->Call(desc));
+  }
+  return to_number_operator_.get();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/effect-control-linearizer.h b/src/compiler/effect-control-linearizer.h
index 7d7f938..280b4b7 100644
--- a/src/compiler/effect-control-linearizer.h
+++ b/src/compiler/effect-control-linearizer.h
@@ -30,7 +30,8 @@
   void Run();
 
  private:
-  void ProcessNode(Node* node, Node** current_effect, Node** control);
+  void ProcessNode(Node* node, Node** frame_state, Node** effect,
+                   Node** control);
 
   struct ValueEffectControl {
     Node* value;
@@ -40,7 +41,8 @@
         : value(value), effect(effect), control(control) {}
   };
 
-  bool TryWireInStateEffect(Node* node, Node** effect, Node** control);
+  bool TryWireInStateEffect(Node* node, Node* frame_state, Node** effect,
+                            Node** control);
   ValueEffectControl LowerTypeGuard(Node* node, Node* effect, Node* control);
   ValueEffectControl LowerChangeBitToTagged(Node* node, Node* effect,
                                             Node* control);
@@ -60,8 +62,28 @@
                                               Node* control);
   ValueEffectControl LowerChangeTaggedToUint32(Node* node, Node* effect,
                                                Node* control);
+  ValueEffectControl LowerCheckBounds(Node* node, Node* frame_state,
+                                      Node* effect, Node* control);
+  ValueEffectControl LowerCheckTaggedPointer(Node* node, Node* frame_state,
+                                             Node* effect, Node* control);
+  ValueEffectControl LowerCheckTaggedSigned(Node* node, Node* frame_state,
+                                            Node* effect, Node* control);
+  ValueEffectControl LowerCheckedInt32Add(Node* node, Node* frame_state,
+                                          Node* effect, Node* control);
+  ValueEffectControl LowerCheckedInt32Sub(Node* node, Node* frame_state,
+                                          Node* effect, Node* control);
+  ValueEffectControl LowerCheckedUint32ToInt32(Node* node, Node* frame_state,
+                                               Node* effect, Node* control);
+  ValueEffectControl LowerCheckedFloat64ToInt32(Node* node, Node* frame_state,
+                                                Node* effect, Node* control);
+  ValueEffectControl LowerCheckedTaggedToInt32(Node* node, Node* frame_state,
+                                               Node* effect, Node* control);
+  ValueEffectControl LowerCheckedTaggedToFloat64(Node* node, Node* frame_state,
+                                                 Node* effect, Node* control);
   ValueEffectControl LowerChangeTaggedToFloat64(Node* node, Node* effect,
                                                 Node* control);
+  ValueEffectControl LowerTruncateTaggedToFloat64(Node* node, Node* effect,
+                                                  Node* control);
   ValueEffectControl LowerTruncateTaggedToWord32(Node* node, Node* effect,
                                                  Node* control);
   ValueEffectControl LowerObjectIsCallable(Node* node, Node* effect,
@@ -75,8 +97,27 @@
                                          Node* control);
   ValueEffectControl LowerObjectIsUndetectable(Node* node, Node* effect,
                                                Node* control);
+  ValueEffectControl LowerStringFromCharCode(Node* node, Node* effect,
+                                             Node* control);
+  ValueEffectControl LowerCheckFloat64Hole(Node* node, Node* frame_state,
+                                           Node* effect, Node* control);
+  ValueEffectControl LowerCheckTaggedHole(Node* node, Node* frame_state,
+                                          Node* effect, Node* control);
+  ValueEffectControl LowerPlainPrimitiveToNumber(Node* node, Node* effect,
+                                                 Node* control);
+  ValueEffectControl LowerPlainPrimitiveToWord32(Node* node, Node* effect,
+                                                 Node* control);
+  ValueEffectControl LowerPlainPrimitiveToFloat64(Node* node, Node* effect,
+                                                  Node* control);
+
   ValueEffectControl AllocateHeapNumberWithValue(Node* node, Node* effect,
                                                  Node* control);
+  ValueEffectControl BuildCheckedFloat64ToInt32(Node* value, Node* frame_state,
+                                                Node* effect, Node* control);
+  ValueEffectControl BuildCheckedHeapNumberOrOddballToFloat64(Node* value,
+                                                              Node* frame_state,
+                                                              Node* effect,
+                                                              Node* control);
 
   Node* ChangeInt32ToSmi(Node* value);
   Node* ChangeUint32ToSmi(Node* value);
@@ -88,6 +129,8 @@
   Node* SmiMaxValueConstant();
   Node* SmiShiftBitsConstant();
 
+  Factory* factory() const;
+  Isolate* isolate() const;
   JSGraph* jsgraph() const { return js_graph_; }
   Graph* graph() const;
   Schedule* schedule() const { return schedule_; }
@@ -96,9 +139,14 @@
   SimplifiedOperatorBuilder* simplified() const;
   MachineOperatorBuilder* machine() const;
 
+  Operator const* ToNumberOperator();
+
   JSGraph* js_graph_;
   Schedule* schedule_;
   Zone* temp_zone_;
+  RegionObservability region_observability_ = RegionObservability::kObservable;
+
+  SetOncePointer<Operator const> to_number_operator_;
 };
 
 }  // namespace compiler
diff --git a/src/compiler/escape-analysis.cc b/src/compiler/escape-analysis.cc
index d11c3ab..9409a27 100644
--- a/src/compiler/escape-analysis.cc
+++ b/src/compiler/escape-analysis.cc
@@ -794,6 +794,12 @@
         break;
       case IrOpcode::kSelect:
       case IrOpcode::kTypeGuard:
+      // TODO(mstarzinger): The following list of operators will eventually be
+      // handled by the EscapeAnalysisReducer (similar to ObjectIsSmi).
+      case IrOpcode::kObjectIsCallable:
+      case IrOpcode::kObjectIsNumber:
+      case IrOpcode::kObjectIsString:
+      case IrOpcode::kObjectIsUndetectable:
         if (SetEscaped(rep)) {
           TRACE("Setting #%d (%s) to escaped because of use by #%d (%s)\n",
                 rep->id(), rep->op()->mnemonic(), use->id(),
@@ -843,6 +849,7 @@
 EscapeAnalysis::EscapeAnalysis(Graph* graph, CommonOperatorBuilder* common,
                                Zone* zone)
     : zone_(zone),
+      slot_not_analyzed_(graph->NewNode(common->NumberConstant(0x1c0debad))),
       common_(common),
       status_analysis_(new (zone) EscapeStatusAnalysis(this, graph, zone)),
       virtual_states_(zone),
@@ -1321,11 +1328,24 @@
   return false;
 }
 
-int EscapeAnalysis::OffsetFromAccess(Node* node) {
-  DCHECK(OpParameter<FieldAccess>(node).offset % kPointerSize == 0);
-  return OpParameter<FieldAccess>(node).offset / kPointerSize;
+namespace {
+
+int OffsetForFieldAccess(Node* node) {
+  FieldAccess access = FieldAccessOf(node->op());
+  DCHECK_EQ(access.offset % kPointerSize, 0);
+  return access.offset / kPointerSize;
 }
 
+int OffsetForElementAccess(Node* node, int index) {
+  ElementAccess access = ElementAccessOf(node->op());
+  DCHECK_GE(ElementSizeLog2Of(access.machine_type.representation()),
+            kPointerSizeLog2);
+  DCHECK_EQ(access.header_size % kPointerSize, 0);
+  return access.header_size / kPointerSize + index;
+}
+
+}  // namespace
+
 void EscapeAnalysis::ProcessLoadFromPhi(int offset, Node* from, Node* load,
                                         VirtualState* state) {
   TRACE("Load #%d from phi #%d", load->id(), from->id());
@@ -1368,11 +1388,9 @@
   Node* from = ResolveReplacement(NodeProperties::GetValueInput(node, 0));
   VirtualState* state = virtual_states_[node->id()];
   if (VirtualObject* object = GetVirtualObject(state, from)) {
-    int offset = OffsetFromAccess(node);
-    if (!object->IsTracked() ||
-        static_cast<size_t>(offset) >= object->field_count()) {
-      return;
-    }
+    if (!object->IsTracked()) return;
+    int offset = OffsetForFieldAccess(node);
+    if (static_cast<size_t>(offset) >= object->field_count()) return;
     Node* value = object->GetField(offset);
     if (value) {
       value = ResolveReplacement(value);
@@ -1380,8 +1398,8 @@
     // Record that the load has this alias.
     UpdateReplacement(state, node, value);
   } else if (from->opcode() == IrOpcode::kPhi &&
-             OpParameter<FieldAccess>(node).offset % kPointerSize == 0) {
-    int offset = OffsetFromAccess(node);
+             FieldAccessOf(node->op()).offset % kPointerSize == 0) {
+    int offset = OffsetForFieldAccess(node);
     // Only binary phis are supported for now.
     ProcessLoadFromPhi(offset, from, node, state);
   } else {
@@ -1400,19 +1418,11 @@
          index_node->opcode() != IrOpcode::kInt64Constant &&
          index_node->opcode() != IrOpcode::kFloat32Constant &&
          index_node->opcode() != IrOpcode::kFloat64Constant);
-  ElementAccess access = OpParameter<ElementAccess>(node);
   if (index.HasValue()) {
-    int offset = index.Value() + access.header_size / kPointerSize;
     if (VirtualObject* object = GetVirtualObject(state, from)) {
-      CHECK_GE(ElementSizeLog2Of(access.machine_type.representation()),
-               kPointerSizeLog2);
-      CHECK_EQ(access.header_size % kPointerSize, 0);
-
-      if (!object->IsTracked() ||
-          static_cast<size_t>(offset) >= object->field_count()) {
-        return;
-      }
-
+      if (!object->IsTracked()) return;
+      int offset = OffsetForElementAccess(node, index.Value());
+      if (static_cast<size_t>(offset) >= object->field_count()) return;
       Node* value = object->GetField(offset);
       if (value) {
         value = ResolveReplacement(value);
@@ -1420,8 +1430,7 @@
       // Record that the load has this alias.
       UpdateReplacement(state, node, value);
     } else if (from->opcode() == IrOpcode::kPhi) {
-      ElementAccess access = OpParameter<ElementAccess>(node);
-      int offset = index.Value() + access.header_size / kPointerSize;
+      int offset = OffsetForElementAccess(node, index.Value());
       ProcessLoadFromPhi(offset, from, node, state);
     } else {
       UpdateReplacement(state, node, nullptr);
@@ -1443,14 +1452,23 @@
   ForwardVirtualState(node);
   Node* to = ResolveReplacement(NodeProperties::GetValueInput(node, 0));
   VirtualState* state = virtual_states_[node->id()];
-  VirtualObject* obj = GetVirtualObject(state, to);
-  int offset = OffsetFromAccess(node);
-  if (obj && obj->IsTracked() &&
-      static_cast<size_t>(offset) < obj->field_count()) {
+  if (VirtualObject* object = GetVirtualObject(state, to)) {
+    if (!object->IsTracked()) return;
+    int offset = OffsetForFieldAccess(node);
+    if (static_cast<size_t>(offset) >= object->field_count()) return;
     Node* val = ResolveReplacement(NodeProperties::GetValueInput(node, 1));
-    if (obj->GetField(offset) != val) {
-      obj = CopyForModificationAt(obj, state, node);
-      obj->SetField(offset, val);
+    // TODO(mstarzinger): The following is a workaround to not track the code
+    // entry field in virtual JSFunction objects. We only ever store the inner
+    // pointer into the compile lazy stub in this field and the deoptimizer has
+    // this assumption hard-coded in {TranslatedState::MaterializeAt} as well.
+    if (val->opcode() == IrOpcode::kInt32Constant ||
+        val->opcode() == IrOpcode::kInt64Constant) {
+      DCHECK_EQ(JSFunction::kCodeEntryOffset, FieldAccessOf(node->op()).offset);
+      val = slot_not_analyzed_;
+    }
+    if (object->GetField(offset) != val) {
+      object = CopyForModificationAt(object, state, node);
+      object->SetField(offset, val);
     }
   }
 }
@@ -1465,20 +1483,16 @@
          index_node->opcode() != IrOpcode::kInt64Constant &&
          index_node->opcode() != IrOpcode::kFloat32Constant &&
          index_node->opcode() != IrOpcode::kFloat64Constant);
-  ElementAccess access = OpParameter<ElementAccess>(node);
   VirtualState* state = virtual_states_[node->id()];
-  VirtualObject* obj = GetVirtualObject(state, to);
   if (index.HasValue()) {
-    int offset = index.Value() + access.header_size / kPointerSize;
-    if (obj && obj->IsTracked() &&
-        static_cast<size_t>(offset) < obj->field_count()) {
-      CHECK_GE(ElementSizeLog2Of(access.machine_type.representation()),
-               kPointerSizeLog2);
-      CHECK_EQ(access.header_size % kPointerSize, 0);
+    if (VirtualObject* object = GetVirtualObject(state, to)) {
+      if (!object->IsTracked()) return;
+      int offset = OffsetForElementAccess(node, index.Value());
+      if (static_cast<size_t>(offset) >= object->field_count()) return;
       Node* val = ResolveReplacement(NodeProperties::GetValueInput(node, 2));
-      if (obj->GetField(offset) != val) {
-        obj = CopyForModificationAt(obj, state, node);
-        obj->SetField(offset, val);
+      if (object->GetField(offset) != val) {
+        object = CopyForModificationAt(object, state, node);
+        object->SetField(offset, val);
       }
     }
   } else {
@@ -1490,12 +1504,13 @@
           to->id(), to->op()->mnemonic(), node->id(), index_node->id(),
           index_node->op()->mnemonic());
     }
-    if (obj && obj->IsTracked()) {
-      if (!obj->AllFieldsClear()) {
-        obj = CopyForModificationAt(obj, state, node);
-        obj->ClearAllFields();
+    if (VirtualObject* object = GetVirtualObject(state, to)) {
+      if (!object->IsTracked()) return;
+      if (!object->AllFieldsClear()) {
+        object = CopyForModificationAt(object, state, node);
+        object->ClearAllFields();
         TRACE("Cleared all fields of @%d:#%d\n",
-              status_analysis_->GetAlias(obj->id()), obj->id());
+              status_analysis_->GetAlias(object->id()), object->id());
       }
     }
   }
diff --git a/src/compiler/escape-analysis.h b/src/compiler/escape-analysis.h
index 139abd7..839e54c 100644
--- a/src/compiler/escape-analysis.h
+++ b/src/compiler/escape-analysis.h
@@ -51,7 +51,6 @@
                           VirtualState* states);
 
   void ForwardVirtualState(Node* node);
-  int OffsetFromAccess(Node* node);
   VirtualState* CopyForModificationAt(VirtualState* state, Node* node);
   VirtualObject* CopyForModificationAt(VirtualObject* obj, VirtualState* state,
                                        Node* node);
@@ -71,6 +70,7 @@
   CommonOperatorBuilder* common() const { return common_; }
 
   Zone* const zone_;
+  Node* const slot_not_analyzed_;
   CommonOperatorBuilder* const common_;
   EscapeStatusAnalysis* status_analysis_;
   ZoneVector<VirtualState*> virtual_states_;
diff --git a/src/compiler/gap-resolver.cc b/src/compiler/gap-resolver.cc
index 9403d35..7c39700 100644
--- a/src/compiler/gap-resolver.cc
+++ b/src/compiler/gap-resolver.cc
@@ -75,7 +75,7 @@
   // This move's source may have changed due to swaps to resolve cycles and so
   // it may now be the last move in the cycle.  If so remove it.
   InstructionOperand source = move->source();
-  if (source.EqualsCanonicalized(destination)) {
+  if (source.InterferesWith(destination)) {
     move->Eliminate();
     return;
   }
diff --git a/src/compiler/graph-reducer.h b/src/compiler/graph-reducer.h
index 683c345..2ac60a6 100644
--- a/src/compiler/graph-reducer.h
+++ b/src/compiler/graph-reducer.h
@@ -74,8 +74,7 @@
     virtual void Revisit(Node* node) = 0;
     // Replace value uses of {node} with {value} and effect uses of {node} with
     // {effect}. If {effect == nullptr}, then use the effect input to {node}.
-    // All
-    // control uses will be relaxed assuming {node} cannot throw.
+    // All control uses will be relaxed assuming {node} cannot throw.
     virtual void ReplaceWithValue(Node* node, Node* value, Node* effect,
                                   Node* control) = 0;
   };
diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc
index 1dc38df..2e39764 100644
--- a/src/compiler/graph-visualizer.cc
+++ b/src/compiler/graph-visualizer.cc
@@ -36,14 +36,34 @@
   } else {
     SNPrintF(filename, "turbo-none-%s", phase);
   }
+  EmbeddedVector<char, 256> source_file(0);
+  bool source_available = false;
+  if (FLAG_trace_file_names && info->parse_info()) {
+    Object* source_name = info->script()->name();
+    if (source_name->IsString()) {
+      String* str = String::cast(source_name);
+      if (str->length() > 0) {
+        SNPrintF(source_file, "%s", str->ToCString().get());
+        std::replace(source_file.start(),
+                     source_file.start() + source_file.length(), '/', '_');
+        source_available = true;
+      }
+    }
+  }
   std::replace(filename.start(), filename.start() + filename.length(), ' ',
                '_');
 
   EmbeddedVector<char, 256> full_filename;
-  if (phase == nullptr) {
+  if (phase == nullptr && !source_available) {
     SNPrintF(full_filename, "%s.%s", filename.start(), suffix);
-  } else {
+  } else if (phase != nullptr && !source_available) {
     SNPrintF(full_filename, "%s-%s.%s", filename.start(), phase, suffix);
+  } else if (phase == nullptr && source_available) {
+    SNPrintF(full_filename, "%s_%s.%s", filename.start(), source_file.start(),
+             suffix);
+  } else {
+    SNPrintF(full_filename, "%s_%s-%s.%s", filename.start(),
+             source_file.start(), phase, suffix);
   }
 
   char* buffer = new char[full_filename.length() + 1];
@@ -494,9 +514,8 @@
       for (int j = instruction_block->first_instruction_index();
            j <= instruction_block->last_instruction_index(); j++) {
         PrintIndent();
-        PrintableInstruction printable = {
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN),
-            instructions->InstructionAt(j)};
+        PrintableInstruction printable = {RegisterConfiguration::Turbofan(),
+                                          instructions->InstructionAt(j)};
         os_ << j << " " << printable << " <|@\n";
       }
     }
@@ -539,13 +558,17 @@
     os_ << vreg << ":" << range->relative_id() << " " << type;
     if (range->HasRegisterAssigned()) {
       AllocatedOperand op = AllocatedOperand::cast(range->GetAssignedOperand());
-      if (op.IsFPRegister()) {
-        DoubleRegister assigned_reg = op.GetDoubleRegister();
-        os_ << " \"" << assigned_reg.ToString() << "\"";
+      const auto config = RegisterConfiguration::Turbofan();
+      if (op.IsRegister()) {
+        os_ << " \"" << config->GetGeneralRegisterName(op.register_code())
+            << "\"";
+      } else if (op.IsDoubleRegister()) {
+        os_ << " \"" << config->GetDoubleRegisterName(op.register_code())
+            << "\"";
       } else {
-        DCHECK(op.IsRegister());
-        Register assigned_reg = op.GetRegister();
-        os_ << " \"" << assigned_reg.ToString() << "\"";
+        DCHECK(op.IsFloatRegister());
+        os_ << " \"" << config->GetFloatRegisterName(op.register_code())
+            << "\"";
       }
     } else if (range->spilled()) {
       const TopLevelLiveRange* top = range->TopLevel();
@@ -618,6 +641,20 @@
 std::ostream& operator<<(std::ostream& os, const AsRPO& ar) {
   base::AccountingAllocator allocator;
   Zone local_zone(&allocator);
+
+  // Do a post-order depth-first search on the RPO graph. For every node,
+  // print:
+  //
+  //   - the node id
+  //   - the operator mnemonic
+  //   - in square brackets its parameter (if present)
+  //   - in parentheses the list of argument ids and their mnemonics
+  //   - the node type (if it is typed)
+
+  // Post-order guarantees that all inputs of a node will be printed before
+  // the node itself, if there are no cycles. Any cycles are broken
+  // arbitrarily.
+
   ZoneVector<byte> state(ar.graph.NodeCount(), kUnvisited, &local_zone);
   ZoneStack<Node*> stack(&local_zone);
 
@@ -638,12 +675,14 @@
       state[n->id()] = kVisited;
       stack.pop();
       os << "#" << n->id() << ":" << *n->op() << "(";
+      // Print the inputs.
       int j = 0;
       for (Node* const i : n->inputs()) {
         if (j++ > 0) os << ", ";
         os << "#" << SafeId(i) << ":" << SafeMnemonic(i);
       }
       os << ")";
+      // Print the node type, if any.
       if (NodeProperties::IsTyped(n)) {
         os << "  [Type: ";
         NodeProperties::GetType(n)->PrintTo(os);
diff --git a/src/compiler/graph.h b/src/compiler/graph.h
index 958a15d..a694a0b 100644
--- a/src/compiler/graph.h
+++ b/src/compiler/graph.h
@@ -28,11 +28,30 @@
 // out-of-line data associated with each node.
 typedef uint32_t NodeId;
 
-
-class Graph : public ZoneObject {
+class Graph final : public ZoneObject {
  public:
   explicit Graph(Zone* zone);
 
+  // Scope used when creating a subgraph for inlining. Automatically preserves
+  // the original start and end nodes of the graph, and resets them when you
+  // leave the scope.
+  class SubgraphScope final {
+   public:
+    explicit SubgraphScope(Graph* graph)
+        : graph_(graph), start_(graph->start()), end_(graph->end()) {}
+    ~SubgraphScope() {
+      graph_->SetStart(start_);
+      graph_->SetEnd(end_);
+    }
+
+   private:
+    Graph* const graph_;
+    Node* const start_;
+    Node* const end_;
+
+    DISALLOW_COPY_AND_ASSIGN(SubgraphScope);
+  };
+
   // Base implementation used by all factory methods.
   Node* NewNodeUnchecked(const Operator* op, int input_count,
                          Node* const* inputs, bool incomplete = false);
diff --git a/src/compiler/greedy-allocator.cc b/src/compiler/greedy-allocator.cc
deleted file mode 100644
index 683b75d..0000000
--- a/src/compiler/greedy-allocator.cc
+++ /dev/null
@@ -1,629 +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/greedy-allocator.h"
-#include "src/compiler/register-allocator.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-
-#define TRACE(...)                             \
-  do {                                         \
-    if (FLAG_trace_alloc) PrintF(__VA_ARGS__); \
-  } while (false)
-
-
-const float GreedyAllocator::kAllocatedRangeMultiplier = 10.0;
-
-
-namespace {
-
-void UpdateOperands(LiveRange* range, RegisterAllocationData* data) {
-  int reg_id = range->assigned_register();
-  range->SetUseHints(reg_id);
-  if (range->IsTopLevel() && range->TopLevel()->is_phi()) {
-    data->GetPhiMapValueFor(range->TopLevel())->set_assigned_register(reg_id);
-  }
-}
-
-
-void UnsetOperands(LiveRange* range, RegisterAllocationData* data) {
-  range->UnsetUseHints();
-  if (range->IsTopLevel() && range->TopLevel()->is_phi()) {
-    data->GetPhiMapValueFor(range->TopLevel())->UnsetAssignedRegister();
-  }
-}
-
-
-LiveRange* Split(LiveRange* range, RegisterAllocationData* data,
-                 LifetimePosition pos) {
-  DCHECK(range->Start() < pos && pos < range->End());
-  DCHECK(pos.IsStart() || pos.IsGapPosition() ||
-         (data->code()
-              ->GetInstructionBlock(pos.ToInstructionIndex())
-              ->last_instruction_index() != pos.ToInstructionIndex()));
-  LiveRange* result = range->SplitAt(pos, data->allocation_zone());
-  return result;
-}
-
-
-}  // namespace
-
-
-AllocationCandidate AllocationScheduler::GetNext() {
-  DCHECK(!queue_.empty());
-  AllocationCandidate ret = queue_.top();
-  queue_.pop();
-  return ret;
-}
-
-
-void AllocationScheduler::Schedule(LiveRange* range) {
-  TRACE("Scheduling live range %d:%d.\n", range->TopLevel()->vreg(),
-        range->relative_id());
-  queue_.push(AllocationCandidate(range));
-}
-
-
-void AllocationScheduler::Schedule(LiveRangeGroup* group) {
-  queue_.push(AllocationCandidate(group));
-}
-
-GreedyAllocator::GreedyAllocator(RegisterAllocationData* data,
-                                 RegisterKind kind, Zone* local_zone)
-    : RegisterAllocator(data, kind),
-      local_zone_(local_zone),
-      allocations_(local_zone),
-      scheduler_(local_zone),
-      groups_(local_zone) {}
-
-
-void GreedyAllocator::AssignRangeToRegister(int reg_id, LiveRange* range) {
-  TRACE("Assigning register %s to live range %d:%d\n", RegisterName(reg_id),
-        range->TopLevel()->vreg(), range->relative_id());
-
-  DCHECK(!range->HasRegisterAssigned());
-
-  AllocateRegisterToRange(reg_id, range);
-
-  TRACE("Assigning %s to range %d%d.\n", RegisterName(reg_id),
-        range->TopLevel()->vreg(), range->relative_id());
-  range->set_assigned_register(reg_id);
-  UpdateOperands(range, data());
-}
-
-
-void GreedyAllocator::PreallocateFixedRanges() {
-  allocations_.resize(num_registers());
-  for (int i = 0; i < num_registers(); i++) {
-    allocations_[i] = new (local_zone()) CoalescedLiveRanges(local_zone());
-  }
-
-  for (LiveRange* fixed_range : GetFixedRegisters()) {
-    if (fixed_range != nullptr) {
-      DCHECK_EQ(mode(), fixed_range->kind());
-      DCHECK(fixed_range->TopLevel()->IsFixed());
-
-      int reg_nr = fixed_range->assigned_register();
-      EnsureValidRangeWeight(fixed_range);
-      AllocateRegisterToRange(reg_nr, fixed_range);
-    }
-  }
-}
-
-
-void GreedyAllocator::GroupLiveRanges() {
-  CoalescedLiveRanges grouper(local_zone());
-  for (TopLevelLiveRange* range : data()->live_ranges()) {
-    grouper.clear();
-    // Skip splinters, because we do not want to optimize for them, and moves
-    // due to assigning them to different registers occur in deferred blocks.
-    if (!CanProcessRange(range) || range->IsSplinter() || !range->is_phi()) {
-      continue;
-    }
-
-    // A phi can't be a memory operand, so it couldn't have been split.
-    DCHECK(!range->spilled());
-
-    // Maybe this phi range is itself an input to another phi which was already
-    // processed.
-    LiveRangeGroup* latest_grp = range->group() != nullptr
-                                     ? range->group()
-                                     : new (local_zone())
-                                           LiveRangeGroup(local_zone());
-
-    // Populate the grouper.
-    if (range->group() == nullptr) {
-      grouper.AllocateRange(range);
-    } else {
-      for (LiveRange* member : range->group()->ranges()) {
-        grouper.AllocateRange(member);
-      }
-    }
-    for (int j : data()->GetPhiMapValueFor(range)->phi()->operands()) {
-      // skip output also in input, which may happen for loops.
-      if (j == range->vreg()) continue;
-
-      TopLevelLiveRange* other_top = data()->live_ranges()[j];
-
-      if (other_top->IsSplinter()) continue;
-      // If the other was a memory operand, it might have been split.
-      // So get the unsplit part.
-      LiveRange* other =
-          other_top->next() == nullptr ? other_top : other_top->next();
-
-      if (other->spilled()) continue;
-
-      LiveRangeGroup* other_group = other->group();
-      if (other_group != nullptr) {
-        bool can_merge = true;
-        for (LiveRange* member : other_group->ranges()) {
-          if (grouper.GetConflicts(member).Current() != nullptr) {
-            can_merge = false;
-            break;
-          }
-        }
-        // If each member doesn't conflict with the current group, then since
-        // the members don't conflict with eachother either, we can merge them.
-        if (can_merge) {
-          latest_grp->ranges().insert(latest_grp->ranges().end(),
-                                      other_group->ranges().begin(),
-                                      other_group->ranges().end());
-          for (LiveRange* member : other_group->ranges()) {
-            grouper.AllocateRange(member);
-            member->set_group(latest_grp);
-          }
-          // Clear the other range, so we avoid scheduling it.
-          other_group->ranges().clear();
-        }
-      } else if (grouper.GetConflicts(other).Current() == nullptr) {
-        grouper.AllocateRange(other);
-        latest_grp->ranges().push_back(other);
-        other->set_group(latest_grp);
-      }
-    }
-
-    if (latest_grp->ranges().size() > 0 && range->group() == nullptr) {
-      latest_grp->ranges().push_back(range);
-      DCHECK(latest_grp->ranges().size() > 1);
-      groups().push_back(latest_grp);
-      range->set_group(latest_grp);
-    }
-  }
-}
-
-
-void GreedyAllocator::ScheduleAllocationCandidates() {
-  for (LiveRangeGroup* group : groups()) {
-    if (group->ranges().size() > 0) {
-      // We shouldn't have added single-range groups.
-      DCHECK(group->ranges().size() != 1);
-      scheduler().Schedule(group);
-    }
-  }
-  for (LiveRange* range : data()->live_ranges()) {
-    if (CanProcessRange(range)) {
-      for (LiveRange* child = range; child != nullptr; child = child->next()) {
-        if (!child->spilled() && child->group() == nullptr) {
-          scheduler().Schedule(child);
-        }
-      }
-    }
-  }
-}
-
-
-void GreedyAllocator::TryAllocateCandidate(
-    const AllocationCandidate& candidate) {
-  if (candidate.is_group()) {
-    TryAllocateGroup(candidate.group());
-  } else {
-    TryAllocateLiveRange(candidate.live_range());
-  }
-}
-
-
-void GreedyAllocator::TryAllocateGroup(LiveRangeGroup* group) {
-  float group_weight = 0.0;
-  for (LiveRange* member : group->ranges()) {
-    EnsureValidRangeWeight(member);
-    group_weight = Max(group_weight, member->weight());
-  }
-
-  float eviction_weight = group_weight;
-  int eviction_reg = -1;
-  int free_reg = -1;
-  for (int i = 0; i < num_allocatable_registers(); ++i) {
-    int reg = allocatable_register_code(i);
-    float weight = GetMaximumConflictingWeight(reg, group, group_weight);
-    if (weight == LiveRange::kInvalidWeight) {
-      free_reg = reg;
-      break;
-    }
-    if (weight < eviction_weight) {
-      eviction_weight = weight;
-      eviction_reg = reg;
-    }
-  }
-  if (eviction_reg < 0 && free_reg < 0) {
-    for (LiveRange* member : group->ranges()) {
-      scheduler().Schedule(member);
-    }
-    return;
-  }
-  if (free_reg < 0) {
-    DCHECK(eviction_reg >= 0);
-    for (LiveRange* member : group->ranges()) {
-      EvictAndRescheduleConflicts(eviction_reg, member);
-    }
-    free_reg = eviction_reg;
-  }
-
-  DCHECK(free_reg >= 0);
-  for (LiveRange* member : group->ranges()) {
-    AssignRangeToRegister(free_reg, member);
-  }
-}
-
-
-void GreedyAllocator::TryAllocateLiveRange(LiveRange* range) {
-  // TODO(mtrofin): once we introduce groups, we'll want to first try and
-  // allocate at the preferred register.
-  TRACE("Attempting to allocate live range %d:%d.\n", range->TopLevel()->vreg(),
-        range->relative_id());
-  int free_reg = -1;
-  int evictable_reg = -1;
-  int hinted_reg = -1;
-
-  EnsureValidRangeWeight(range);
-  float competing_weight = range->weight();
-  DCHECK(competing_weight != LiveRange::kInvalidWeight);
-
-  // Can we allocate at the hinted register?
-  if (range->FirstHintPosition(&hinted_reg) != nullptr) {
-    DCHECK(hinted_reg >= 0);
-    float max_conflict_weight =
-        GetMaximumConflictingWeight(hinted_reg, range, competing_weight);
-    if (max_conflict_weight == LiveRange::kInvalidWeight) {
-      free_reg = hinted_reg;
-    } else if (max_conflict_weight < range->weight()) {
-      evictable_reg = hinted_reg;
-    }
-  }
-
-  if (free_reg < 0 && evictable_reg < 0) {
-    // There was no hinted reg, or we cannot allocate there.
-    float smallest_weight = LiveRange::kMaxWeight;
-
-    // Seek either the first free register, or, from the set of registers
-    // where the maximum conflict is lower than the candidate's weight, the one
-    // with the smallest such weight.
-    for (int i = 0; i < num_allocatable_registers(); i++) {
-      int reg = allocatable_register_code(i);
-      // Skip unnecessarily re-visiting the hinted register, if any.
-      if (reg == hinted_reg) continue;
-      float max_conflict_weight =
-          GetMaximumConflictingWeight(reg, range, competing_weight);
-      if (max_conflict_weight == LiveRange::kInvalidWeight) {
-        free_reg = reg;
-        break;
-      }
-      if (max_conflict_weight < range->weight() &&
-          max_conflict_weight < smallest_weight) {
-        smallest_weight = max_conflict_weight;
-        evictable_reg = reg;
-      }
-    }
-  }
-
-  // We have a free register, so we use it.
-  if (free_reg >= 0) {
-    TRACE("Found free register %s for live range %d:%d.\n",
-          RegisterName(free_reg), range->TopLevel()->vreg(),
-          range->relative_id());
-    AssignRangeToRegister(free_reg, range);
-    return;
-  }
-
-  // We found a register to perform evictions, so we evict and allocate our
-  // candidate.
-  if (evictable_reg >= 0) {
-    TRACE("Found evictable register %s for live range %d:%d.\n",
-          RegisterName(free_reg), range->TopLevel()->vreg(),
-          range->relative_id());
-    EvictAndRescheduleConflicts(evictable_reg, range);
-    AssignRangeToRegister(evictable_reg, range);
-    return;
-  }
-
-  // The range needs to be split or spilled.
-  SplitOrSpillBlockedRange(range);
-}
-
-
-void GreedyAllocator::EvictAndRescheduleConflicts(unsigned reg_id,
-                                                  const LiveRange* range) {
-  auto conflicts = current_allocations(reg_id)->GetConflicts(range);
-  for (LiveRange* conflict = conflicts.Current(); conflict != nullptr;
-       conflict = conflicts.RemoveCurrentAndGetNext()) {
-    DCHECK(conflict->HasRegisterAssigned());
-    CHECK(!conflict->TopLevel()->IsFixed());
-    conflict->UnsetAssignedRegister();
-    UnsetOperands(conflict, data());
-    UpdateWeightAtEviction(conflict);
-    scheduler().Schedule(conflict);
-    TRACE("Evicted range %d%d.\n", conflict->TopLevel()->vreg(),
-          conflict->relative_id());
-  }
-}
-
-
-void GreedyAllocator::AllocateRegisters() {
-  CHECK(scheduler().empty());
-  CHECK(allocations_.empty());
-
-  TRACE("Begin allocating function %s with the Greedy Allocator\n",
-        data()->debug_name());
-
-  SplitAndSpillRangesDefinedByMemoryOperand(true);
-  GroupLiveRanges();
-  ScheduleAllocationCandidates();
-  PreallocateFixedRanges();
-  while (!scheduler().empty()) {
-    AllocationCandidate candidate = scheduler().GetNext();
-    TryAllocateCandidate(candidate);
-  }
-
-  for (size_t i = 0; i < allocations_.size(); ++i) {
-    if (!allocations_[i]->empty()) {
-      data()->MarkAllocated(mode(), static_cast<int>(i));
-    }
-  }
-  allocations_.clear();
-
-  TryReuseSpillRangesForGroups();
-
-  TRACE("End allocating function %s with the Greedy Allocator\n",
-        data()->debug_name());
-}
-
-
-void GreedyAllocator::TryReuseSpillRangesForGroups() {
-  for (TopLevelLiveRange* top : data()->live_ranges()) {
-    if (!CanProcessRange(top) || !top->is_phi() || top->group() == nullptr) {
-      continue;
-    }
-
-    SpillRange* spill_range = nullptr;
-    for (LiveRange* member : top->group()->ranges()) {
-      if (!member->TopLevel()->HasSpillRange()) continue;
-      SpillRange* member_range = member->TopLevel()->GetSpillRange();
-      if (spill_range == nullptr) {
-        spill_range = member_range;
-      } else {
-        // This may not always succeed, because we group non-conflicting ranges
-        // that may have been splintered, and the splinters may cause conflicts
-        // in the spill ranges.
-        // TODO(mtrofin): should the splinters own their own spill ranges?
-        spill_range->TryMerge(member_range);
-      }
-    }
-  }
-}
-
-
-float GreedyAllocator::GetMaximumConflictingWeight(
-    unsigned reg_id, const LiveRange* range, float competing_weight) const {
-  float ret = LiveRange::kInvalidWeight;
-
-  auto conflicts = current_allocations(reg_id)->GetConflicts(range);
-  for (LiveRange* conflict = conflicts.Current(); conflict != nullptr;
-       conflict = conflicts.GetNext()) {
-    DCHECK_NE(conflict->weight(), LiveRange::kInvalidWeight);
-    if (competing_weight <= conflict->weight()) return LiveRange::kMaxWeight;
-    ret = Max(ret, conflict->weight());
-    DCHECK(ret < LiveRange::kMaxWeight);
-  }
-
-  return ret;
-}
-
-
-float GreedyAllocator::GetMaximumConflictingWeight(unsigned reg_id,
-                                                   const LiveRangeGroup* group,
-                                                   float group_weight) const {
-  float ret = LiveRange::kInvalidWeight;
-
-  for (LiveRange* member : group->ranges()) {
-    float member_conflict_weight =
-        GetMaximumConflictingWeight(reg_id, member, group_weight);
-    if (member_conflict_weight == LiveRange::kMaxWeight) {
-      return LiveRange::kMaxWeight;
-    }
-    if (member_conflict_weight > group_weight) return LiveRange::kMaxWeight;
-    ret = Max(member_conflict_weight, ret);
-  }
-
-  return ret;
-}
-
-
-void GreedyAllocator::EnsureValidRangeWeight(LiveRange* range) {
-  // The live range weight will be invalidated when ranges are created or split.
-  // Otherwise, it is consistently updated when the range is allocated or
-  // unallocated.
-  if (range->weight() != LiveRange::kInvalidWeight) return;
-
-  if (range->TopLevel()->IsFixed()) {
-    range->set_weight(LiveRange::kMaxWeight);
-    return;
-  }
-  if (!IsProgressPossible(range)) {
-    range->set_weight(LiveRange::kMaxWeight);
-    return;
-  }
-
-  float use_count = 0.0;
-  for (auto pos = range->first_pos(); pos != nullptr; pos = pos->next()) {
-    ++use_count;
-  }
-  range->set_weight(use_count / static_cast<float>(range->GetSize()));
-}
-
-
-void GreedyAllocator::SpillRangeAsLastResort(LiveRange* range) {
-  LifetimePosition start = range->Start();
-  CHECK(range->CanBeSpilled(start));
-
-  DCHECK(range->NextRegisterPosition(start) == nullptr);
-  Spill(range);
-}
-
-
-LiveRange* GreedyAllocator::GetRemainderAfterSplittingAroundFirstCall(
-    LiveRange* range) {
-  LiveRange* ret = range;
-  for (UseInterval* interval = range->first_interval(); interval != nullptr;
-       interval = interval->next()) {
-    LifetimePosition start = interval->start();
-    LifetimePosition end = interval->end();
-    // If the interval starts at instruction end, then the first instruction
-    // in the interval is the next one.
-    int first_full_instruction = (start.IsGapPosition() || start.IsStart())
-                                     ? start.ToInstructionIndex()
-                                     : start.ToInstructionIndex() + 1;
-    // If the interval ends in a gap or at instruction start, then the last
-    // instruction is the previous one.
-    int last_full_instruction = (end.IsGapPosition() || end.IsStart())
-                                    ? end.ToInstructionIndex() - 1
-                                    : end.ToInstructionIndex();
-
-    for (int instruction_index = first_full_instruction;
-         instruction_index <= last_full_instruction; ++instruction_index) {
-      if (!code()->InstructionAt(instruction_index)->IsCall()) continue;
-
-      LifetimePosition before =
-          GetSplitPositionForInstruction(range, instruction_index);
-      LiveRange* second_part =
-          before.IsValid() ? Split(range, data(), before) : range;
-
-      if (range != second_part) scheduler().Schedule(range);
-
-      LifetimePosition after =
-          FindSplitPositionAfterCall(second_part, instruction_index);
-
-      if (after.IsValid()) {
-        ret = Split(second_part, data(), after);
-      } else {
-        ret = nullptr;
-      }
-      Spill(second_part);
-      return ret;
-    }
-  }
-  return ret;
-}
-
-
-bool GreedyAllocator::TrySplitAroundCalls(LiveRange* range) {
-  bool modified = false;
-
-  while (range != nullptr) {
-    LiveRange* remainder = GetRemainderAfterSplittingAroundFirstCall(range);
-    // If we performed no modification, we're done.
-    if (remainder == range) {
-      break;
-    }
-    // We performed a modification.
-    modified = true;
-    range = remainder;
-  }
-  // If we have a remainder and we made modifications, it means the remainder
-  // has no calls and we should schedule it for further processing. If we made
-  // no modifications, we will just return false, because we want the algorithm
-  // to make progress by trying some other heuristic.
-  if (modified && range != nullptr) {
-    DCHECK(!range->spilled());
-    DCHECK(!range->HasRegisterAssigned());
-    scheduler().Schedule(range);
-  }
-  return modified;
-}
-
-
-LifetimePosition GreedyAllocator::FindSplitPositionAfterCall(
-    const LiveRange* range, int call_index) {
-  LifetimePosition after_call =
-      Max(range->Start(),
-          LifetimePosition::GapFromInstructionIndex(call_index + 1));
-  UsePosition* next_use = range->NextRegisterPosition(after_call);
-  if (!next_use) return LifetimePosition::Invalid();
-
-  LifetimePosition split_pos = FindOptimalSplitPos(after_call, next_use->pos());
-  split_pos =
-      GetSplitPositionForInstruction(range, split_pos.ToInstructionIndex());
-  return split_pos;
-}
-
-
-LifetimePosition GreedyAllocator::FindSplitPositionBeforeLoops(
-    LiveRange* range) {
-  LifetimePosition end = range->End();
-  if (end.ToInstructionIndex() >= code()->LastInstructionIndex()) {
-    end =
-        LifetimePosition::GapFromInstructionIndex(end.ToInstructionIndex() - 1);
-  }
-  LifetimePosition pos = FindOptimalSplitPos(range->Start(), end);
-  pos = GetSplitPositionForInstruction(range, pos.ToInstructionIndex());
-  return pos;
-}
-
-
-void GreedyAllocator::SplitOrSpillBlockedRange(LiveRange* range) {
-  if (TrySplitAroundCalls(range)) return;
-
-  LifetimePosition pos = FindSplitPositionBeforeLoops(range);
-
-  if (!pos.IsValid()) pos = GetLastResortSplitPosition(range);
-  if (pos.IsValid()) {
-    LiveRange* tail = Split(range, data(), pos);
-    DCHECK(tail != range);
-    scheduler().Schedule(tail);
-    scheduler().Schedule(range);
-    return;
-  }
-  SpillRangeAsLastResort(range);
-}
-
-
-// Basic heuristic for advancing the algorithm, if any other splitting heuristic
-// failed.
-LifetimePosition GreedyAllocator::GetLastResortSplitPosition(
-    const LiveRange* range) {
-  LifetimePosition previous = range->Start();
-  for (UsePosition *pos = range->NextRegisterPosition(previous); pos != nullptr;
-       previous = previous.NextFullStart(),
-                   pos = range->NextRegisterPosition(previous)) {
-    LifetimePosition optimal = FindOptimalSplitPos(previous, pos->pos());
-    LifetimePosition before =
-        GetSplitPositionForInstruction(range, optimal.ToInstructionIndex());
-    if (before.IsValid()) return before;
-    LifetimePosition after = GetSplitPositionForInstruction(
-        range, pos->pos().ToInstructionIndex() + 1);
-    if (after.IsValid()) return after;
-  }
-  return LifetimePosition::Invalid();
-}
-
-
-bool GreedyAllocator::IsProgressPossible(const LiveRange* range) {
-  return range->CanBeSpilled(range->Start()) ||
-         GetLastResortSplitPosition(range).IsValid();
-}
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/src/compiler/greedy-allocator.h b/src/compiler/greedy-allocator.h
deleted file mode 100644
index b61ba42..0000000
--- a/src/compiler/greedy-allocator.h
+++ /dev/null
@@ -1,199 +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_GREEDY_ALLOCATOR_H_
-#define V8_GREEDY_ALLOCATOR_H_
-
-#include "src/compiler/coalesced-live-ranges.h"
-#include "src/compiler/register-allocator.h"
-#include "src/zone-containers.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-
-// The object of allocation scheduling. At minimum, this is a LiveRange, but
-// we may extend this to groups of LiveRanges. It has to be comparable.
-class AllocationCandidate {
- public:
-  explicit AllocationCandidate(LiveRange* range)
-      : is_group_(false), size_(range->GetSize()) {
-    candidate_.range_ = range;
-  }
-
-  explicit AllocationCandidate(LiveRangeGroup* ranges)
-      : is_group_(true), size_(CalculateGroupSize(ranges)) {
-    candidate_.group_ = ranges;
-  }
-
-  // Strict ordering operators
-  bool operator<(const AllocationCandidate& other) const {
-    return size() < other.size();
-  }
-
-  bool operator>(const AllocationCandidate& other) const {
-    return size() > other.size();
-  }
-
-  bool is_group() const { return is_group_; }
-  LiveRange* live_range() const { return candidate_.range_; }
-  LiveRangeGroup* group() const { return candidate_.group_; }
-
- private:
-  unsigned CalculateGroupSize(LiveRangeGroup* group) {
-    unsigned ret = 0;
-    for (LiveRange* range : group->ranges()) {
-      ret += range->GetSize();
-    }
-    return ret;
-  }
-
-  unsigned size() const { return size_; }
-  bool is_group_;
-  unsigned size_;
-  union {
-    LiveRange* range_;
-    LiveRangeGroup* group_;
-  } candidate_;
-};
-
-
-// Schedule processing (allocating) of AllocationCandidates.
-class AllocationScheduler final : ZoneObject {
- public:
-  explicit AllocationScheduler(Zone* zone) : queue_(zone) {}
-  void Schedule(LiveRange* range);
-  void Schedule(LiveRangeGroup* group);
-  AllocationCandidate GetNext();
-  bool empty() const { return queue_.empty(); }
-
- private:
-  typedef ZonePriorityQueue<AllocationCandidate> ScheduleQueue;
-  ScheduleQueue queue_;
-
-  DISALLOW_COPY_AND_ASSIGN(AllocationScheduler);
-};
-
-
-// A variant of the LLVM Greedy Register Allocator. See
-// http://blog.llvm.org/2011/09/greedy-register-allocation-in-llvm-30.html
-class GreedyAllocator final : public RegisterAllocator {
- public:
-  explicit GreedyAllocator(RegisterAllocationData* data, RegisterKind kind,
-                           Zone* local_zone);
-
-  void AllocateRegisters();
-
- private:
-  static const float kAllocatedRangeMultiplier;
-
-  static void UpdateWeightAtAllocation(LiveRange* range) {
-    DCHECK_NE(range->weight(), LiveRange::kInvalidWeight);
-    range->set_weight(range->weight() * kAllocatedRangeMultiplier);
-  }
-
-
-  static void UpdateWeightAtEviction(LiveRange* range) {
-    DCHECK_NE(range->weight(), LiveRange::kInvalidWeight);
-    range->set_weight(range->weight() / kAllocatedRangeMultiplier);
-  }
-
-  AllocationScheduler& scheduler() { return scheduler_; }
-  CoalescedLiveRanges* current_allocations(unsigned i) {
-    return allocations_[i];
-  }
-
-  CoalescedLiveRanges* current_allocations(unsigned i) const {
-    return allocations_[i];
-  }
-
-  Zone* local_zone() const { return local_zone_; }
-  ZoneVector<LiveRangeGroup*>& groups() { return groups_; }
-  const ZoneVector<LiveRangeGroup*>& groups() const { return groups_; }
-
-  // Insert fixed ranges.
-  void PreallocateFixedRanges();
-
-  void GroupLiveRanges();
-
-  // Schedule unassigned live ranges for allocation.
-  void ScheduleAllocationCandidates();
-
-  void AllocateRegisterToRange(unsigned reg_id, LiveRange* range) {
-    UpdateWeightAtAllocation(range);
-    current_allocations(reg_id)->AllocateRange(range);
-  }
-  // Evict and reschedule conflicts of a given range, at a given register.
-  void EvictAndRescheduleConflicts(unsigned reg_id, const LiveRange* range);
-
-  void TryAllocateCandidate(const AllocationCandidate& candidate);
-  void TryAllocateLiveRange(LiveRange* range);
-  void TryAllocateGroup(LiveRangeGroup* group);
-
-  // Calculate the weight of a candidate for allocation.
-  void EnsureValidRangeWeight(LiveRange* range);
-
-  // Calculate the new weight of a range that is about to be allocated.
-  float GetAllocatedRangeWeight(float candidate_weight);
-
-  // Returns kInvalidWeight if there are no conflicts, or the largest weight of
-  // a range conflicting with the given range, at the given register.
-  float GetMaximumConflictingWeight(unsigned reg_id, const LiveRange* range,
-                                    float competing_weight) const;
-
-  // Returns kInvalidWeight if there are no conflicts, or the largest weight of
-  // a range conflicting with the given range, at the given register.
-  float GetMaximumConflictingWeight(unsigned reg_id,
-                                    const LiveRangeGroup* group,
-                                    float group_weight) const;
-
-  // This is the extension point for splitting heuristics.
-  void SplitOrSpillBlockedRange(LiveRange* range);
-
-  // Find a good position where to fill, after a range was spilled after a call.
-  LifetimePosition FindSplitPositionAfterCall(const LiveRange* range,
-                                              int call_index);
-  // Split a range around all calls it passes over. Returns true if any changes
-  // were made, or false if no calls were found.
-  bool TrySplitAroundCalls(LiveRange* range);
-
-  // Find a split position at the outmost loop.
-  LifetimePosition FindSplitPositionBeforeLoops(LiveRange* range);
-
-  // Finds the first call instruction in the path of this range. Splits before
-  // and requeues that segment (if any), spills the section over the call, and
-  // returns the section after the call. The return is:
-  // - same range, if no call was found
-  // - nullptr, if the range finished at the call and there's no "after the
-  //   call" portion.
-  // - the portion after the call.
-  LiveRange* GetRemainderAfterSplittingAroundFirstCall(LiveRange* range);
-
-  // While we attempt to merge spill ranges later on in the allocation pipeline,
-  // we want to ensure group elements get merged. Waiting until later may hinder
-  // merge-ability, since the pipeline merger (being naive) may create conflicts
-  // between spill ranges of group members.
-  void TryReuseSpillRangesForGroups();
-
-  LifetimePosition GetLastResortSplitPosition(const LiveRange* range);
-
-  bool IsProgressPossible(const LiveRange* range);
-
-  // Necessary heuristic: spill when all else failed.
-  void SpillRangeAsLastResort(LiveRange* range);
-
-  void AssignRangeToRegister(int reg_id, LiveRange* range);
-
-  Zone* local_zone_;
-  ZoneVector<CoalescedLiveRanges*> allocations_;
-  AllocationScheduler scheduler_;
-  ZoneVector<LiveRangeGroup*> groups_;
-
-  DISALLOW_COPY_AND_ASSIGN(GreedyAllocator);
-};
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
-#endif  // V8_GREEDY_ALLOCATOR_H_
diff --git a/src/compiler/ia32/code-generator-ia32.cc b/src/compiler/ia32/code-generator-ia32.cc
index a9083e1..6df22f6 100644
--- a/src/compiler/ia32/code-generator-ia32.cc
+++ b/src/compiler/ia32/code-generator-ia32.cc
@@ -67,6 +67,7 @@
     Constant constant = ToConstant(operand);
     if (constant.type() == Constant::kInt32 &&
         (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+         constant.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
          constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE)) {
       return Immediate(reinterpret_cast<Address>(constant.ToInt32()),
                        constant.rmode());
@@ -119,8 +120,8 @@
       }
       case kMode_MRI: {
         Register base = InputRegister(NextOffset(offset));
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(base, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(base, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_MR1:
       case kMode_MR2:
@@ -139,8 +140,8 @@
         Register base = InputRegister(NextOffset(offset));
         Register index = InputRegister(NextOffset(offset));
         ScaleFactor scale = ScaleFor(kMode_MR1I, mode);
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(base, index, scale, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(base, index, scale, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_M1:
       case kMode_M2:
@@ -157,12 +158,12 @@
       case kMode_M8I: {
         Register index = InputRegister(NextOffset(offset));
         ScaleFactor scale = ScaleFor(kMode_M1I, mode);
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(index, scale, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(index, scale, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_MI: {
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(Immediate(disp));
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(ctant.ToInt32(), ctant.rmode());
       }
       case kMode_None:
         UNREACHABLE();
@@ -363,6 +364,37 @@
     }                                                                 \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    /* Pass two doubles as arguments on the stack. */                         \
+    __ PrepareCallCFunction(4, eax);                                          \
+    __ movsd(Operand(esp, 0 * kDoubleSize), i.InputDoubleRegister(0));        \
+    __ movsd(Operand(esp, 1 * kDoubleSize), i.InputDoubleRegister(1));        \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     4);                                                      \
+    /* Return value is in st(0) on ia32. */                                   \
+    /* Store it into the result register. */                                  \
+    __ sub(esp, Immediate(kDoubleSize));                                      \
+    __ fstp_d(Operand(esp, 0));                                               \
+    __ movsd(i.OutputDoubleRegister(), Operand(esp, 0));                      \
+    __ add(esp, Immediate(kDoubleSize));                                      \
+  } while (false)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    /* Pass one double as argument on the stack. */                           \
+    __ PrepareCallCFunction(2, eax);                                          \
+    __ movsd(Operand(esp, 0 * kDoubleSize), i.InputDoubleRegister(0));        \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     2);                                                      \
+    /* Return value is in st(0) on ia32. */                                   \
+    /* Store it into the result register. */                                  \
+    __ sub(esp, Immediate(kDoubleSize));                                      \
+    __ fstp_d(Operand(esp, 0));                                               \
+    __ movsd(i.OutputDoubleRegister(), Operand(esp, 0));                      \
+    __ add(esp, Immediate(kDoubleSize));                                      \
+  } while (false)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(esp, ebp);
   __ pop(ebp);
@@ -539,6 +571,14 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
+    case kArchDebugBreak:
+      __ int3();
+      break;
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -609,6 +649,45 @@
       __ lea(i.OutputRegister(), Operand(base, offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kIA32Add:
       if (HasImmediateInput(instr, 1)) {
         __ add(i.InputOperand(0), i.InputImmediate(1));
@@ -1113,6 +1192,10 @@
       __ vxorpd(i.OutputDoubleRegister(), kScratchDoubleReg, i.InputOperand(0));
       break;
     }
+    case kSSEFloat64SilenceNaN:
+      __ xorpd(kScratchDoubleReg, kScratchDoubleReg);
+      __ subsd(i.InputDoubleRegister(0), kScratchDoubleReg);
+      break;
     case kIA32Movsxbl:
       __ movsx_b(i.OutputRegister(), i.MemoryOperand());
       break;
@@ -1227,9 +1310,9 @@
     }
     case kIA32PushFloat32:
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ sub(esp, Immediate(kDoubleSize));
+        __ sub(esp, Immediate(kFloatSize));
         __ movss(Operand(esp, 0), i.InputDoubleRegister(0));
-        frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        frame_access_state()->IncreaseSPDelta(kFloatSize / kPointerSize);
       } else if (HasImmediateInput(instr, 0)) {
         __ Move(kScratchDoubleReg, i.InputDouble(0));
         __ sub(esp, Immediate(kDoubleSize));
@@ -1261,9 +1344,9 @@
       break;
     case kIA32Push:
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ sub(esp, Immediate(kDoubleSize));
+        __ sub(esp, Immediate(kFloatSize));
         __ movsd(Operand(esp, 0), i.InputDoubleRegister(0));
-        frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        frame_access_state()->IncreaseSPDelta(kFloatSize / kPointerSize);
       } else if (HasImmediateInput(instr, 0)) {
         __ push(i.InputImmediate(0));
         frame_access_state()->IncreaseSPDelta(1);
diff --git a/src/compiler/ia32/instruction-codes-ia32.h b/src/compiler/ia32/instruction-codes-ia32.h
index 79dd05e..09d4615 100644
--- a/src/compiler/ia32/instruction-codes-ia32.h
+++ b/src/compiler/ia32/instruction-codes-ia32.h
@@ -81,6 +81,7 @@
   V(SSEFloat64InsertLowWord32)     \
   V(SSEFloat64InsertHighWord32)    \
   V(SSEFloat64LoadLowWord32)       \
+  V(SSEFloat64SilenceNaN)          \
   V(AVXFloat32Add)                 \
   V(AVXFloat32Sub)                 \
   V(AVXFloat32Mul)                 \
diff --git a/src/compiler/ia32/instruction-scheduler-ia32.cc b/src/compiler/ia32/instruction-scheduler-ia32.cc
index f341db4..f19c328 100644
--- a/src/compiler/ia32/instruction-scheduler-ia32.cc
+++ b/src/compiler/ia32/instruction-scheduler-ia32.cc
@@ -84,6 +84,7 @@
     case kSSEFloat64InsertLowWord32:
     case kSSEFloat64InsertHighWord32:
     case kSSEFloat64LoadLowWord32:
+    case kSSEFloat64SilenceNaN:
     case kAVXFloat32Add:
     case kAVXFloat32Sub:
     case kAVXFloat32Mul:
diff --git a/src/compiler/ia32/instruction-selector-ia32.cc b/src/compiler/ia32/instruction-selector-ia32.cc
index 9002d75..3ffdd30 100644
--- a/src/compiler/ia32/instruction-selector-ia32.cc
+++ b/src/compiler/ia32/instruction-selector-ia32.cc
@@ -1014,7 +1014,6 @@
   VisitFloatUnop(this, node, node->InputAt(0), kAVXFloat64Abs, kSSEFloat64Abs);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRO(this, node, kSSEFloat32Sqrt);
 }
@@ -1069,6 +1068,24 @@
   VisitRR(this, node, kSSEFloat64Round | MiscField::encode(kRoundToNearest));
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  IA32OperandGenerator g(this);
+  Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(node->InputAt(0)),
+       g.UseRegister(node->InputAt(1)))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  IA32OperandGenerator g(this);
+  Emit(opcode, g.DefineSameAsFirst(node), g.UseRegister(node->InputAt(0)))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1103,7 +1120,7 @@
           g.CanBeImmediate(input.node())
               ? g.UseImmediate(input.node())
               : IsSupported(ATOM) ||
-                        sequence()->IsFloat(GetVirtualRegister(input.node()))
+                        sequence()->IsFP(GetVirtualRegister(input.node()))
                     ? g.UseRegister(input.node())
                     : g.Use(input.node());
       if (input.type() == MachineType::Float32()) {
@@ -1583,6 +1600,12 @@
        g.UseRegister(left), g.Use(right));
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  IA32OperandGenerator g(this);
+  Emit(kSSEFloat64SilenceNaN, g.DefineSameAsFirst(node),
+       g.UseRegister(node->InputAt(0)));
+}
+
 void InstructionSelector::VisitAtomicLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
   DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
@@ -1656,6 +1679,13 @@
   return flags;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/instruction-codes.h b/src/compiler/instruction-codes.h
index 57868c6..0b3132f 100644
--- a/src/compiler/instruction-codes.h
+++ b/src/compiler/instruction-codes.h
@@ -56,6 +56,8 @@
   V(ArchLookupSwitch)                     \
   V(ArchTableSwitch)                      \
   V(ArchNop)                              \
+  V(ArchDebugBreak)                       \
+  V(ArchComment)                          \
   V(ArchThrowTerminator)                  \
   V(ArchDeoptimize)                       \
   V(ArchRet)                              \
@@ -86,7 +88,20 @@
   V(AtomicLoadWord32)                     \
   V(AtomicStoreWord8)                     \
   V(AtomicStoreWord16)                    \
-  V(AtomicStoreWord32)
+  V(AtomicStoreWord32)                    \
+  V(Ieee754Float64Atan)                   \
+  V(Ieee754Float64Atan2)                  \
+  V(Ieee754Float64Atanh)                  \
+  V(Ieee754Float64Cbrt)                   \
+  V(Ieee754Float64Cos)                    \
+  V(Ieee754Float64Exp)                    \
+  V(Ieee754Float64Expm1)                  \
+  V(Ieee754Float64Log)                    \
+  V(Ieee754Float64Log1p)                  \
+  V(Ieee754Float64Log10)                  \
+  V(Ieee754Float64Log2)                   \
+  V(Ieee754Float64Sin)                    \
+  V(Ieee754Float64Tan)
 
 #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 b3e4bbc..3ef7c08 100644
--- a/src/compiler/instruction-scheduler.cc
+++ b/src/compiler/instruction-scheduler.cc
@@ -222,6 +222,21 @@
     case kArchParentFramePointer:
     case kArchTruncateDoubleToI:
     case kArchStackSlot:
+    case kArchDebugBreak:
+    case kArchComment:
+    case kIeee754Float64Atan:
+    case kIeee754Float64Atan2:
+    case kIeee754Float64Atanh:
+    case kIeee754Float64Cbrt:
+    case kIeee754Float64Cos:
+    case kIeee754Float64Exp:
+    case kIeee754Float64Expm1:
+    case kIeee754Float64Log:
+    case kIeee754Float64Log1p:
+    case kIeee754Float64Log10:
+    case kIeee754Float64Log2:
+    case kIeee754Float64Sin:
+    case kIeee754Float64Tan:
       return kNoOpcodeFlags;
 
     case kArchStackPointer:
diff --git a/src/compiler/instruction-scheduler.h b/src/compiler/instruction-scheduler.h
index 23950f7..4f5b0f7 100644
--- a/src/compiler/instruction-scheduler.h
+++ b/src/compiler/instruction-scheduler.h
@@ -177,12 +177,12 @@
   // Identify nops used as a definition point for live-in registers at
   // function entry.
   bool IsFixedRegisterParameter(const Instruction* instr) const {
-    return (instr->arch_opcode() == kArchNop) &&
-      (instr->OutputCount() == 1) &&
-      (instr->OutputAt(0)->IsUnallocated()) &&
-      (UnallocatedOperand::cast(instr->OutputAt(0))->HasFixedRegisterPolicy() ||
-       UnallocatedOperand::cast(
-           instr->OutputAt(0))->HasFixedDoubleRegisterPolicy());
+    return (instr->arch_opcode() == kArchNop) && (instr->OutputCount() == 1) &&
+           (instr->OutputAt(0)->IsUnallocated()) &&
+           (UnallocatedOperand::cast(instr->OutputAt(0))
+                ->HasFixedRegisterPolicy() ||
+            UnallocatedOperand::cast(instr->OutputAt(0))
+                ->HasFixedFPRegisterPolicy());
   }
 
   void ComputeTotalLatencies();
diff --git a/src/compiler/instruction-selector-impl.h b/src/compiler/instruction-selector-impl.h
index 301612c..be24e2d 100644
--- a/src/compiler/instruction-selector-impl.h
+++ b/src/compiler/instruction-selector-impl.h
@@ -54,9 +54,10 @@
                                            reg.code(), GetVReg(node)));
   }
 
-  InstructionOperand DefineAsFixed(Node* node, DoubleRegister reg) {
+  template <typename FPRegType>
+  InstructionOperand DefineAsFixed(Node* node, FPRegType reg) {
     return Define(node,
-                  UnallocatedOperand(UnallocatedOperand::FIXED_DOUBLE_REGISTER,
+                  UnallocatedOperand(UnallocatedOperand::FIXED_FP_REGISTER,
                                      reg.code(), GetVReg(node)));
   }
 
@@ -122,10 +123,10 @@
                                         reg.code(), GetVReg(node)));
   }
 
-  InstructionOperand UseFixed(Node* node, DoubleRegister reg) {
-    return Use(node,
-               UnallocatedOperand(UnallocatedOperand::FIXED_DOUBLE_REGISTER,
-                                  reg.code(), GetVReg(node)));
+  template <typename FPRegType>
+  InstructionOperand UseFixed(Node* node, FPRegType reg) {
+    return Use(node, UnallocatedOperand(UnallocatedOperand::FIXED_FP_REGISTER,
+                                        reg.code(), GetVReg(node)));
   }
 
   InstructionOperand UseExplicit(LinkageLocation location) {
@@ -218,6 +219,7 @@
       case IrOpcode::kNumberConstant:
         return Constant(OpParameter<double>(node));
       case IrOpcode::kExternalConstant:
+      case IrOpcode::kComment:
         return Constant(OpParameter<ExternalReference>(node));
       case IrOpcode::kHeapConstant:
         return Constant(OpParameter<Handle<HeapObject>>(node));
@@ -274,7 +276,7 @@
     }
     // a fixed register.
     if (IsFloatingPoint(rep)) {
-      return UnallocatedOperand(UnallocatedOperand::FIXED_DOUBLE_REGISTER,
+      return UnallocatedOperand(UnallocatedOperand::FIXED_FP_REGISTER,
                                 location.AsRegister(), virtual_register);
     }
     return UnallocatedOperand(UnallocatedOperand::FIXED_REGISTER,
diff --git a/src/compiler/instruction-selector.cc b/src/compiler/instruction-selector.cc
index ea68c78..558aff3 100644
--- a/src/compiler/instruction-selector.cc
+++ b/src/compiler/instruction-selector.cc
@@ -906,6 +906,12 @@
     case IrOpcode::kStateValues:
     case IrOpcode::kObjectState:
       return;
+    case IrOpcode::kDebugBreak:
+      VisitDebugBreak(node);
+      return;
+    case IrOpcode::kComment:
+      VisitComment(node);
+      return;
     case IrOpcode::kLoad: {
       LoadRepresentation type = LoadRepresentationOf(node->op());
       MarkAsRepresentation(type.representation(), node);
@@ -1029,6 +1035,13 @@
       return MarkAsWord32(node), VisitChangeFloat64ToInt32(node);
     case IrOpcode::kChangeFloat64ToUint32:
       return MarkAsWord32(node), VisitChangeFloat64ToUint32(node);
+    case IrOpcode::kFloat64SilenceNaN:
+      MarkAsFloat64(node);
+      if (CanProduceSignalingNaN(node->InputAt(0))) {
+        return VisitFloat64SilenceNaN(node);
+      } else {
+        return EmitIdentity(node);
+      }
     case IrOpcode::kTruncateFloat64ToUint32:
       return MarkAsWord32(node), VisitTruncateFloat64ToUint32(node);
     case IrOpcode::kTruncateFloat32ToInt32:
@@ -1081,6 +1094,8 @@
       return MarkAsFloat32(node), VisitFloat32Sub(node);
     case IrOpcode::kFloat32SubPreserveNan:
       return MarkAsFloat32(node), VisitFloat32SubPreserveNan(node);
+    case IrOpcode::kFloat32Neg:
+      return MarkAsFloat32(node), VisitFloat32Neg(node);
     case IrOpcode::kFloat32Mul:
       return MarkAsFloat32(node), VisitFloat32Mul(node);
     case IrOpcode::kFloat32Div:
@@ -1105,6 +1120,8 @@
       return MarkAsFloat64(node), VisitFloat64Sub(node);
     case IrOpcode::kFloat64SubPreserveNan:
       return MarkAsFloat64(node), VisitFloat64SubPreserveNan(node);
+    case IrOpcode::kFloat64Neg:
+      return MarkAsFloat64(node), VisitFloat64Neg(node);
     case IrOpcode::kFloat64Mul:
       return MarkAsFloat64(node), VisitFloat64Mul(node);
     case IrOpcode::kFloat64Div:
@@ -1117,8 +1134,34 @@
       return MarkAsFloat64(node), VisitFloat64Max(node);
     case IrOpcode::kFloat64Abs:
       return MarkAsFloat64(node), VisitFloat64Abs(node);
+    case IrOpcode::kFloat64Atan:
+      return MarkAsFloat64(node), VisitFloat64Atan(node);
+    case IrOpcode::kFloat64Atan2:
+      return MarkAsFloat64(node), VisitFloat64Atan2(node);
+    case IrOpcode::kFloat64Atanh:
+      return MarkAsFloat64(node), VisitFloat64Atanh(node);
+    case IrOpcode::kFloat64Cbrt:
+      return MarkAsFloat64(node), VisitFloat64Cbrt(node);
+    case IrOpcode::kFloat64Cos:
+      return MarkAsFloat64(node), VisitFloat64Cos(node);
+    case IrOpcode::kFloat64Exp:
+      return MarkAsFloat64(node), VisitFloat64Exp(node);
+    case IrOpcode::kFloat64Expm1:
+      return MarkAsFloat64(node), VisitFloat64Expm1(node);
+    case IrOpcode::kFloat64Log:
+      return MarkAsFloat64(node), VisitFloat64Log(node);
+    case IrOpcode::kFloat64Log1p:
+      return MarkAsFloat64(node), VisitFloat64Log1p(node);
+    case IrOpcode::kFloat64Log10:
+      return MarkAsFloat64(node), VisitFloat64Log10(node);
+    case IrOpcode::kFloat64Log2:
+      return MarkAsFloat64(node), VisitFloat64Log2(node);
+    case IrOpcode::kFloat64Sin:
+      return MarkAsFloat64(node), VisitFloat64Sin(node);
     case IrOpcode::kFloat64Sqrt:
       return MarkAsFloat64(node), VisitFloat64Sqrt(node);
+    case IrOpcode::kFloat64Tan:
+      return MarkAsFloat64(node), VisitFloat64Tan(node);
     case IrOpcode::kFloat64Equal:
       return VisitFloat64Equal(node);
     case IrOpcode::kFloat64LessThan:
@@ -1222,6 +1265,58 @@
   Emit(kArchParentFramePointer, g.DefineAsRegister(node));
 }
 
+void InstructionSelector::VisitFloat64Atan(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Atan);
+}
+
+void InstructionSelector::VisitFloat64Atan2(Node* node) {
+  VisitFloat64Ieee754Binop(node, kIeee754Float64Atan2);
+}
+
+void InstructionSelector::VisitFloat64Atanh(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Atanh);
+}
+
+void InstructionSelector::VisitFloat64Cbrt(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Cbrt);
+}
+
+void InstructionSelector::VisitFloat64Cos(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Cos);
+}
+
+void InstructionSelector::VisitFloat64Exp(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Exp);
+}
+
+void InstructionSelector::VisitFloat64Expm1(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Expm1);
+}
+
+void InstructionSelector::VisitFloat64Log(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Log);
+}
+
+void InstructionSelector::VisitFloat64Log1p(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Log1p);
+}
+
+void InstructionSelector::VisitFloat64Log2(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Log2);
+}
+
+void InstructionSelector::VisitFloat64Log10(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Log10);
+}
+
+void InstructionSelector::VisitFloat64Sin(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Sin);
+}
+
+void InstructionSelector::VisitFloat64Tan(Node* node) {
+  VisitFloat64Ieee754Unop(node, kIeee754Float64Tan);
+}
+
 void InstructionSelector::EmitTableSwitch(const SwitchInfo& sw,
                                           InstructionOperand& index_operand) {
   OperandGenerator g(this);
@@ -1267,9 +1362,7 @@
 }
 
 void InstructionSelector::VisitBitcastWordToTagged(Node* node) {
-  OperandGenerator g(this);
-  Node* value = node->InputAt(0);
-  Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
+  EmitIdentity(node);
 }
 
 // 32 bit targets do not implement the following instructions.
@@ -1441,12 +1534,7 @@
 void InstructionSelector::VisitWord32PairSar(Node* node) { UNIMPLEMENTED(); }
 #endif  // V8_TARGET_ARCH_64_BIT
 
-void InstructionSelector::VisitFinishRegion(Node* node) {
-  OperandGenerator g(this);
-  Node* value = node->InputAt(0);
-  Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
-}
-
+void InstructionSelector::VisitFinishRegion(Node* node) { EmitIdentity(node); }
 
 void InstructionSelector::VisitParameter(Node* node) {
   OperandGenerator g(this);
@@ -1772,6 +1860,12 @@
               nullptr);
 }
 
+void InstructionSelector::EmitIdentity(Node* node) {
+  OperandGenerator g(this);
+  Node* value = node->InputAt(0);
+  Emit(kArchNop, g.DefineSameAsFirst(node), g.Use(value));
+}
+
 void InstructionSelector::VisitDeoptimize(DeoptimizeKind kind, Node* value) {
   InstructionCode opcode = kArchDeoptimize;
   switch (kind) {
@@ -1791,6 +1885,26 @@
   Emit(kArchThrowTerminator, g.NoOutput());
 }
 
+void InstructionSelector::VisitDebugBreak(Node* node) {
+  OperandGenerator g(this);
+  Emit(kArchDebugBreak, g.NoOutput());
+}
+
+void InstructionSelector::VisitComment(Node* node) {
+  OperandGenerator g(this);
+  InstructionOperand operand(g.UseImmediate(node));
+  Emit(kArchComment, 0, nullptr, 1, &operand);
+}
+
+bool InstructionSelector::CanProduceSignalingNaN(Node* node) {
+  // TODO(jarin) Improve the heuristic here.
+  if (node->opcode() == IrOpcode::kFloat64Add ||
+      node->opcode() == IrOpcode::kFloat64Sub ||
+      node->opcode() == IrOpcode::kFloat64Mul) {
+    return false;
+  }
+  return true;
+}
 
 FrameStateDescriptor* InstructionSelector::GetFrameStateDescriptor(
     Node* state) {
diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h
index 335099f..8ac8e7b 100644
--- a/src/compiler/instruction-selector.h
+++ b/src/compiler/instruction-selector.h
@@ -139,6 +139,8 @@
   // TODO(sigurds) This should take a CpuFeatures argument.
   static MachineOperatorBuilder::Flags SupportedMachineOperatorFlags();
 
+  static MachineOperatorBuilder::AlignmentRequirements AlignmentRequirements();
+
   // ===========================================================================
   // ============ Architecture-independent graph covering methods. =============
   // ===========================================================================
@@ -242,6 +244,10 @@
   // Visit the node and generate code, if any.
   void VisitNode(Node* node);
 
+  // Visit the node and generate code for IEEE 754 functions.
+  void VisitFloat64Ieee754Binop(Node*, InstructionCode code);
+  void VisitFloat64Ieee754Unop(Node*, InstructionCode code);
+
 #define DECLARE_GENERATOR(x) void Visit##x(Node* node);
   MACHINE_OP_LIST(DECLARE_GENERATOR)
 #undef DECLARE_GENERATOR
@@ -267,6 +273,9 @@
   void EmitPrepareArguments(ZoneVector<compiler::PushParameter>* arguments,
                             const CallDescriptor* descriptor, Node* node);
 
+  void EmitIdentity(Node* node);
+  bool CanProduceSignalingNaN(Node* node);
+
   // ===========================================================================
 
   Schedule* schedule() const { return schedule_; }
diff --git a/src/compiler/instruction.cc b/src/compiler/instruction.cc
index 26aebca..1ef42d6 100644
--- a/src/compiler/instruction.cc
+++ b/src/compiler/instruction.cc
@@ -12,6 +12,7 @@
 namespace internal {
 namespace compiler {
 
+const auto GetRegConfig = RegisterConfiguration::Turbofan;
 
 FlagsCondition CommuteFlagsCondition(FlagsCondition condition) {
   switch (condition) {
@@ -59,6 +60,16 @@
   return condition;
 }
 
+bool InstructionOperand::InterferesWith(const InstructionOperand& that) const {
+  if (!IsFPRegister() || !that.IsFPRegister() || kSimpleFPAliasing)
+    return EqualsCanonicalized(that);
+  // Both operands are fp registers and aliasing is non-simple.
+  const LocationOperand& loc1 = *LocationOperand::cast(this);
+  const LocationOperand& loc2 = LocationOperand::cast(that);
+  return GetRegConfig()->AreAliases(loc1.representation(), loc1.register_code(),
+                                    loc2.representation(),
+                                    loc2.register_code());
+}
 
 void InstructionOperand::Print(const RegisterConfiguration* config) const {
   OFStream os(stdout);
@@ -68,13 +79,7 @@
   os << wrapper << std::endl;
 }
 
-
-void InstructionOperand::Print() const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  Print(config);
-}
-
+void InstructionOperand::Print() const { Print(GetRegConfig()); }
 
 std::ostream& operator<<(std::ostream& os,
                          const PrintableInstructionOperand& printable) {
@@ -95,7 +100,7 @@
                     << conf->GetGeneralRegisterName(
                            unalloc->fixed_register_index())
                     << ")";
-        case UnallocatedOperand::FIXED_DOUBLE_REGISTER:
+        case UnallocatedOperand::FIXED_FP_REGISTER:
           return os << "(="
                     << conf->GetDoubleRegisterName(
                            unalloc->fixed_register_index())
@@ -126,14 +131,21 @@
     case InstructionOperand::ALLOCATED: {
       LocationOperand allocated = LocationOperand::cast(op);
       if (op.IsStackSlot()) {
-        os << "[stack:" << LocationOperand::cast(op).index();
+        os << "[stack:" << allocated.index();
       } else if (op.IsFPStackSlot()) {
-        os << "[fp_stack:" << LocationOperand::cast(op).index();
+        os << "[fp_stack:" << allocated.index();
       } else if (op.IsRegister()) {
-        os << "[" << LocationOperand::cast(op).GetRegister().ToString() << "|R";
+        os << "["
+           << GetRegConfig()->GetGeneralRegisterName(allocated.register_code())
+           << "|R";
+      } else if (op.IsDoubleRegister()) {
+        os << "["
+           << GetRegConfig()->GetDoubleRegisterName(allocated.register_code())
+           << "|R";
       } else {
-        DCHECK(op.IsFPRegister());
-        os << "[" << LocationOperand::cast(op).GetDoubleRegister().ToString()
+        DCHECK(op.IsFloatRegister());
+        os << "["
+           << GetRegConfig()->GetFloatRegisterName(allocated.register_code())
            << "|R";
       }
       if (allocated.IsExplicit()) {
@@ -180,7 +192,6 @@
   return os;
 }
 
-
 void MoveOperands::Print(const RegisterConfiguration* config) const {
   OFStream os(stdout);
   PrintableInstructionOperand wrapper;
@@ -191,13 +202,7 @@
   os << wrapper << std::endl;
 }
 
-
-void MoveOperands::Print() const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  Print(config);
-}
-
+void MoveOperands::Print() const { Print(GetRegConfig()); }
 
 std::ostream& operator<<(std::ostream& os,
                          const PrintableMoveOperands& printable) {
@@ -246,9 +251,11 @@
                                  int index)
     : LocationOperand(EXPLICIT, kind, rep, index) {
   DCHECK_IMPLIES(kind == REGISTER && !IsFloatingPoint(rep),
-                 Register::from_code(index).IsAllocatable());
-  DCHECK_IMPLIES(kind == REGISTER && IsFloatingPoint(rep),
-                 DoubleRegister::from_code(index).IsAllocatable());
+                 GetRegConfig()->IsAllocatableGeneralCode(index));
+  DCHECK_IMPLIES(kind == REGISTER && rep == MachineRepresentation::kFloat32,
+                 GetRegConfig()->IsAllocatableFloatCode(index));
+  DCHECK_IMPLIES(kind == REGISTER && (rep == MachineRepresentation::kFloat64),
+                 GetRegConfig()->IsAllocatableDoubleCode(index));
 }
 
 Instruction::Instruction(InstructionCode opcode)
@@ -309,13 +316,7 @@
   os << wrapper << std::endl;
 }
 
-
-void Instruction::Print() const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  Print(config);
-}
-
+void Instruction::Print() const { Print(GetRegConfig()); }
 
 std::ostream& operator<<(std::ostream& os,
                          const PrintableParallelMove& printable) {
@@ -343,9 +344,7 @@
 std::ostream& operator<<(std::ostream& os, const ReferenceMap& pm) {
   os << "{";
   bool first = true;
-  PrintableInstructionOperand poi = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN),
-      InstructionOperand()};
+  PrintableInstructionOperand poi = {GetRegConfig(), InstructionOperand()};
   for (const InstructionOperand& op : pm.reference_operands_) {
     if (!first) {
       os << ";";
@@ -880,12 +879,7 @@
   os << wrapper << std::endl;
 }
 
-
-void InstructionSequence::Print() const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  Print(config);
-}
+void InstructionSequence::Print() const { Print(GetRegConfig()); }
 
 void InstructionSequence::PrintBlock(const RegisterConfiguration* config,
                                      int block_id) const {
@@ -939,9 +933,7 @@
 }
 
 void InstructionSequence::PrintBlock(int block_id) const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  PrintBlock(config, block_id);
+  PrintBlock(GetRegConfig(), block_id);
 }
 
 FrameStateDescriptor::FrameStateDescriptor(
diff --git a/src/compiler/instruction.h b/src/compiler/instruction.h
index 851ba24..7130c3d 100644
--- a/src/compiler/instruction.h
+++ b/src/compiler/instruction.h
@@ -103,6 +103,8 @@
     return this->GetCanonicalizedValue() < that.GetCanonicalizedValue();
   }
 
+  bool InterferesWith(const InstructionOperand& that) const;
+
   void Print(const RegisterConfiguration* config) const;
   void Print() const;
 
@@ -155,7 +157,7 @@
     NONE,
     ANY,
     FIXED_REGISTER,
-    FIXED_DOUBLE_REGISTER,
+    FIXED_FP_REGISTER,
     MUST_HAVE_REGISTER,
     MUST_HAVE_SLOT,
     SAME_AS_FIRST_INPUT
@@ -192,7 +194,7 @@
 
   UnallocatedOperand(ExtendedPolicy policy, int index, int virtual_register)
       : UnallocatedOperand(virtual_register) {
-    DCHECK(policy == FIXED_REGISTER || policy == FIXED_DOUBLE_REGISTER);
+    DCHECK(policy == FIXED_REGISTER || policy == FIXED_FP_REGISTER);
     value_ |= BasicPolicyField::encode(EXTENDED_POLICY);
     value_ |= ExtendedPolicyField::encode(policy);
     value_ |= LifetimeField::encode(USED_AT_END);
@@ -220,7 +222,7 @@
   bool HasFixedPolicy() const {
     return basic_policy() == FIXED_SLOT ||
            extended_policy() == FIXED_REGISTER ||
-           extended_policy() == FIXED_DOUBLE_REGISTER;
+           extended_policy() == FIXED_FP_REGISTER;
   }
   bool HasRegisterPolicy() const {
     return basic_policy() == EXTENDED_POLICY &&
@@ -239,9 +241,9 @@
     return basic_policy() == EXTENDED_POLICY &&
            extended_policy() == FIXED_REGISTER;
   }
-  bool HasFixedDoubleRegisterPolicy() const {
+  bool HasFixedFPRegisterPolicy() const {
     return basic_policy() == EXTENDED_POLICY &&
-           extended_policy() == FIXED_DOUBLE_REGISTER;
+           extended_policy() == FIXED_FP_REGISTER;
   }
   bool HasSecondaryStorage() const {
     return basic_policy() == EXTENDED_POLICY &&
@@ -272,9 +274,9 @@
                             FixedSlotIndexField::kShift);
   }
 
-  // [fixed_register_index]: Only for FIXED_REGISTER or FIXED_DOUBLE_REGISTER.
+  // [fixed_register_index]: Only for FIXED_REGISTER or FIXED_FP_REGISTER.
   int fixed_register_index() const {
-    DCHECK(HasFixedRegisterPolicy() || HasFixedDoubleRegisterPolicy());
+    DCHECK(HasFixedRegisterPolicy() || HasFixedFPRegisterPolicy());
     return FixedRegisterField::decode(value_);
   }
 
@@ -421,30 +423,32 @@
     return static_cast<int64_t>(value_) >> IndexField::kShift;
   }
 
+  int register_code() const {
+    DCHECK(IsRegister() || IsFPRegister());
+    return static_cast<int64_t>(value_) >> IndexField::kShift;
+  }
+
   Register GetRegister() const {
     DCHECK(IsRegister());
-    return Register::from_code(static_cast<int64_t>(value_) >>
-                               IndexField::kShift);
+    return Register::from_code(register_code());
   }
 
   FloatRegister GetFloatRegister() const {
     DCHECK(IsFloatRegister());
-    return FloatRegister::from_code(static_cast<int64_t>(value_) >>
-                                    IndexField::kShift);
+    return FloatRegister::from_code(register_code());
   }
 
   DoubleRegister GetDoubleRegister() const {
-    // TODO(bbudge) Tighten this test to IsDoubleRegister when all code
-    // generators are changed to use the correct Get*Register method.
+    // On platforms where FloatRegister, DoubleRegister, and Simd128Register
+    // are all the same type, it's convenient to treat everything as a
+    // DoubleRegister, so be lax about type checking here.
     DCHECK(IsFPRegister());
-    return DoubleRegister::from_code(static_cast<int64_t>(value_) >>
-                                     IndexField::kShift);
+    return DoubleRegister::from_code(register_code());
   }
 
   Simd128Register GetSimd128Register() const {
     DCHECK(IsSimd128Register());
-    return Simd128Register::from_code(static_cast<int64_t>(value_) >>
-                                      IndexField::kShift);
+    return Simd128Register::from_code(register_code());
   }
 
   LocationKind location_kind() const {
@@ -601,20 +605,25 @@
 
 uint64_t InstructionOperand::GetCanonicalizedValue() const {
   if (IsAllocated() || IsExplicit()) {
-    // TODO(dcarney): put machine type last and mask.
-    MachineRepresentation canonicalized_representation =
-        IsFloatingPoint(LocationOperand::cast(this)->representation())
-            ? MachineRepresentation::kFloat64
-            : MachineRepresentation::kNone;
+    MachineRepresentation rep = LocationOperand::cast(this)->representation();
+    MachineRepresentation canonical = MachineRepresentation::kNone;
+    if (IsFloatingPoint(rep)) {
+      if (kSimpleFPAliasing) {
+        // Archs with simple aliasing can treat all FP operands the same.
+        canonical = MachineRepresentation::kFloat64;
+      } else {
+        // We need to distinguish FP operands of different reps when FP
+        // aliasing is not simple (e.g. ARM).
+        canonical = rep;
+      }
+    }
     return InstructionOperand::KindField::update(
-        LocationOperand::RepresentationField::update(
-            this->value_, canonicalized_representation),
+        LocationOperand::RepresentationField::update(this->value_, canonical),
         LocationOperand::EXPLICIT);
   }
   return this->value_;
 }
 
-
 // Required for maps that don't care about machine type.
 struct CompareOperandModuloType {
   bool operator()(const InstructionOperand& a,
@@ -649,9 +658,9 @@
   }
   void SetPending() { destination_ = InstructionOperand(); }
 
-  // True if this move a move into the given destination operand.
-  bool Blocks(const InstructionOperand& operand) const {
-    return !IsEliminated() && source().EqualsCanonicalized(operand);
+  // True if this move is a move into the given destination operand.
+  bool Blocks(const InstructionOperand& destination) const {
+    return !IsEliminated() && source().InterferesWith(destination);
   }
 
   // A move is redundant if it's been eliminated or if its source and
@@ -1326,9 +1335,17 @@
     return GetRepresentation(virtual_register) ==
            MachineRepresentation::kTagged;
   }
-  bool IsFloat(int virtual_register) const {
+  bool IsFP(int virtual_register) const {
     return IsFloatingPoint(GetRepresentation(virtual_register));
   }
+  bool IsFloat(int virtual_register) const {
+    return GetRepresentation(virtual_register) ==
+           MachineRepresentation::kFloat32;
+  }
+  bool IsDouble(int virtual_register) const {
+    return GetRepresentation(virtual_register) ==
+           MachineRepresentation::kFloat64;
+  }
 
   Instruction* GetBlockStart(RpoNumber rpo) const;
 
diff --git a/src/compiler/int64-lowering.cc b/src/compiler/int64-lowering.cc
index 830a0de..68d3772 100644
--- a/src/compiler/int64-lowering.cc
+++ b/src/compiler/int64-lowering.cc
@@ -32,6 +32,8 @@
       signature_(signature),
       placeholder_(graph->NewNode(common->Parameter(-2, "placeholder"),
                                   graph->start())) {
+  DCHECK_NOT_NULL(graph);
+  DCHECK_NOT_NULL(graph->end());
   replacements_ = zone->NewArray<Replacement>(graph->NodeCount());
   memset(replacements_, 0, sizeof(Replacement) * graph->NodeCount());
 }
@@ -98,6 +100,27 @@
   return result;
 }
 
+void Int64Lowering::GetIndexNodes(Node* index, Node*& index_low,
+                                  Node*& index_high) {
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+  index_low = index;
+  index_high = graph()->NewNode(machine()->Int32Add(), index,
+                                graph()->NewNode(common()->Int32Constant(4)));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+  index_low = graph()->NewNode(machine()->Int32Add(), index,
+                               graph()->NewNode(common()->Int32Constant(4)));
+  index_high = index;
+#endif
+}
+
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+const int Int64Lowering::kLowerWordOffset = 0;
+const int Int64Lowering::kHigherWordOffset = 4;
+#elif defined(V8_TARGET_BIG_ENDIAN)
+const int Int64Lowering::kLowerWordOffset = 4;
+const int Int64Lowering::kHigherWordOffset = 0;
+#endif
+
 void Int64Lowering::LowerNode(Node* node) {
   switch (node->opcode()) {
     case IrOpcode::kInt64Constant: {
@@ -115,10 +138,9 @@
       if (load_rep.representation() == MachineRepresentation::kWord64) {
         Node* base = node->InputAt(0);
         Node* index = node->InputAt(1);
-        Node* index_high =
-            graph()->NewNode(machine()->Int32Add(), index,
-                             graph()->NewNode(common()->Int32Constant(4)));
-
+        Node* index_low;
+        Node* index_high;
+        GetIndexNodes(index, index_low, index_high);
         const Operator* load_op = machine()->Load(MachineType::Int32());
         Node* high_node;
         if (node->InputCount() > 2) {
@@ -132,6 +154,7 @@
         } else {
           high_node = graph()->NewNode(load_op, base, index_high);
         }
+        node->ReplaceInput(1, index_low);
         NodeProperties::ChangeOp(node, load_op);
         ReplaceNode(node, node, high_node);
       } else {
@@ -150,10 +173,9 @@
 
         Node* base = node->InputAt(0);
         Node* index = node->InputAt(1);
-        Node* index_high =
-            graph()->NewNode(machine()->Int32Add(), index,
-                             graph()->NewNode(common()->Int32Constant(4)));
-
+        Node* index_low;
+        Node* index_high;
+        GetIndexNodes(index, index_low, index_high);
         Node* value = node->InputAt(2);
         DCHECK(HasReplacementLow(value));
         DCHECK(HasReplacementHigh(value));
@@ -175,6 +197,7 @@
                                        GetReplacementHigh(value));
         }
 
+        node->ReplaceInput(1, index_low);
         node->ReplaceInput(2, GetReplacementLow(value));
         NodeProperties::ChangeOp(node, store_op);
         ReplaceNode(node, node, high_node);
@@ -241,8 +264,10 @@
       if (descriptor->ReturnCount() == 1 &&
           descriptor->GetReturnType(0) == MachineType::Int64()) {
         // We access the additional return values through projections.
-        Node* low_node = graph()->NewNode(common()->Projection(0), node);
-        Node* high_node = graph()->NewNode(common()->Projection(1), node);
+        Node* low_node =
+            graph()->NewNode(common()->Projection(0), node, graph()->start());
+        Node* high_node =
+            graph()->NewNode(common()->Projection(1), node, graph()->start());
         ReplaceNode(node, low_node, high_node);
       }
       break;
@@ -281,8 +306,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Int32PairAdd());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -299,8 +326,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Int32PairSub());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -317,8 +346,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Int32PairMul());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -367,8 +398,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Word32PairShl());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -389,8 +422,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Word32PairShr());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -411,8 +446,10 @@
 
       NodeProperties::ChangeOp(node, machine()->Word32PairSar());
       // We access the additional return values through projections.
-      Node* low_node = graph()->NewNode(common()->Projection(0), node);
-      Node* high_node = graph()->NewNode(common()->Projection(1), node);
+      Node* low_node =
+          graph()->NewNode(common()->Projection(0), node, graph()->start());
+      Node* high_node =
+          graph()->NewNode(common()->Projection(1), node, graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
@@ -489,14 +526,16 @@
           machine()->Store(
               StoreRepresentation(MachineRepresentation::kWord32,
                                   WriteBarrierKind::kNoWriteBarrier)),
-          stack_slot, graph()->NewNode(common()->Int32Constant(4)),
+          stack_slot,
+          graph()->NewNode(common()->Int32Constant(kHigherWordOffset)),
           GetReplacementHigh(input), graph()->start(), graph()->start());
 
       Node* store_low_word = graph()->NewNode(
           machine()->Store(
               StoreRepresentation(MachineRepresentation::kWord32,
                                   WriteBarrierKind::kNoWriteBarrier)),
-          stack_slot, graph()->NewNode(common()->Int32Constant(0)),
+          stack_slot,
+          graph()->NewNode(common()->Int32Constant(kLowerWordOffset)),
           GetReplacementLow(input), store_high_word, graph()->start());
 
       Node* load =
@@ -522,15 +561,15 @@
           stack_slot, graph()->NewNode(common()->Int32Constant(0)), input,
           graph()->start(), graph()->start());
 
-      Node* high_node =
-          graph()->NewNode(machine()->Load(MachineType::Int32()), stack_slot,
-                           graph()->NewNode(common()->Int32Constant(4)), store,
-                           graph()->start());
+      Node* high_node = graph()->NewNode(
+          machine()->Load(MachineType::Int32()), stack_slot,
+          graph()->NewNode(common()->Int32Constant(kHigherWordOffset)), store,
+          graph()->start());
 
-      Node* low_node =
-          graph()->NewNode(machine()->Load(MachineType::Int32()), stack_slot,
-                           graph()->NewNode(common()->Int32Constant(0)), store,
-                           graph()->start());
+      Node* low_node = graph()->NewNode(
+          machine()->Load(MachineType::Int32()), stack_slot,
+          graph()->NewNode(common()->Int32Constant(kLowerWordOffset)), store,
+          graph()->start());
       ReplaceNode(node, low_node, high_node);
       break;
     }
diff --git a/src/compiler/int64-lowering.h b/src/compiler/int64-lowering.h
index 054c421..4ec4e82 100644
--- a/src/compiler/int64-lowering.h
+++ b/src/compiler/int64-lowering.h
@@ -26,6 +26,9 @@
   static int GetParameterCountAfterLowering(
       Signature<MachineRepresentation>* signature);
 
+  static const int kLowerWordOffset;
+  static const int kHigherWordOffset;
+
  private:
   enum class State : uint8_t { kUnvisited, kOnStack, kVisited };
 
@@ -54,6 +57,7 @@
   bool HasReplacementHigh(Node* node);
   Node* GetReplacementHigh(Node* node);
   void PreparePhiReplacement(Node* phi);
+  void GetIndexNodes(Node* index, Node*& index_low, Node*& index_high);
 
   struct NodeState {
     Node* node;
diff --git a/src/compiler/js-builtin-reducer.cc b/src/compiler/js-builtin-reducer.cc
index 0d69a89..81d6392 100644
--- a/src/compiler/js-builtin-reducer.cc
+++ b/src/compiler/js-builtin-reducer.cc
@@ -91,16 +91,211 @@
       jsgraph_(jsgraph),
       type_cache_(TypeCache::Get()) {}
 
-// ECMA-262, section 15.8.2.11.
+// ES6 section 20.2.2.1 Math.abs ( x )
+Reduction JSBuiltinReducer::ReduceMathAbs(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.abs(a:plain-primitive) -> NumberAbs(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberAbs(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.6 Math.atan ( x )
+Reduction JSBuiltinReducer::ReduceMathAtan(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.atan(a:plain-primitive) -> NumberAtan(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberAtan(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.8 Math.atan2 ( y, x )
+Reduction JSBuiltinReducer::ReduceMathAtan2(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchTwo(Type::PlainPrimitive(), Type::PlainPrimitive())) {
+    // Math.atan2(a:plain-primitive,
+    //            b:plain-primitive) -> NumberAtan2(ToNumber(a),
+    //                                              ToNumber(b))
+    Node* left = ToNumber(r.left());
+    Node* right = ToNumber(r.right());
+    Node* value = graph()->NewNode(simplified()->NumberAtan2(), left, right);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.7 Math.atanh ( x )
+Reduction JSBuiltinReducer::ReduceMathAtanh(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::Number())) {
+    // Math.atanh(a:number) -> NumberAtanh(a)
+    Node* value = graph()->NewNode(simplified()->NumberAtanh(), r.left());
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.10 Math.ceil ( x )
+Reduction JSBuiltinReducer::ReduceMathCeil(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.ceil(a:plain-primitive) -> NumberCeil(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberCeil(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.11 Math.clz32 ( x )
+Reduction JSBuiltinReducer::ReduceMathClz32(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.clz32(a:plain-primitive) -> NumberClz32(ToUint32(a))
+    Node* input = ToUint32(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberClz32(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.12 Math.cos ( x )
+Reduction JSBuiltinReducer::ReduceMathCos(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.cos(a:plain-primitive) -> NumberCos(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberCos(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.14 Math.exp ( x )
+Reduction JSBuiltinReducer::ReduceMathExp(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.exp(a:plain-primitive) -> NumberExp(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberExp(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.15 Math.expm1 ( x )
+Reduction JSBuiltinReducer::ReduceMathExpm1(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::Number())) {
+    // Math.expm1(a:number) -> NumberExpm1(a)
+    Node* value = graph()->NewNode(simplified()->NumberExpm1(), r.left());
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.16 Math.floor ( x )
+Reduction JSBuiltinReducer::ReduceMathFloor(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.floor(a:plain-primitive) -> NumberFloor(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberFloor(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.17 Math.fround ( x )
+Reduction JSBuiltinReducer::ReduceMathFround(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.fround(a:plain-primitive) -> NumberFround(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberFround(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.19 Math.imul ( x, y )
+Reduction JSBuiltinReducer::ReduceMathImul(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchTwo(Type::PlainPrimitive(), Type::PlainPrimitive())) {
+    // Math.imul(a:plain-primitive,
+    //           b:plain-primitive) -> NumberImul(ToUint32(a),
+    //                                            ToUint32(b))
+    Node* left = ToUint32(r.left());
+    Node* right = ToUint32(r.right());
+    Node* value = graph()->NewNode(simplified()->NumberImul(), left, right);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.20 Math.log ( x )
+Reduction JSBuiltinReducer::ReduceMathLog(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.log(a:plain-primitive) -> NumberLog(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberLog(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.21 Math.log1p ( x )
+Reduction JSBuiltinReducer::ReduceMathLog1p(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.log1p(a:plain-primitive) -> NumberLog1p(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberLog1p(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.22 Math.log10 ( x )
+Reduction JSBuiltinReducer::ReduceMathLog10(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::Number())) {
+    // Math.log10(a:number) -> NumberLog10(a)
+    Node* value = graph()->NewNode(simplified()->NumberLog10(), r.left());
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.23 Math.log2 ( x )
+Reduction JSBuiltinReducer::ReduceMathLog2(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::Number())) {
+    // Math.log2(a:number) -> NumberLog(a)
+    Node* value = graph()->NewNode(simplified()->NumberLog2(), r.left());
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.24 Math.max ( value1, value2, ...values )
 Reduction JSBuiltinReducer::ReduceMathMax(Node* node) {
   JSCallReduction r(node);
   if (r.InputsMatchZero()) {
     // Math.max() -> -Infinity
     return Replace(jsgraph()->Constant(-V8_INFINITY));
   }
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.max(a:number) -> a
-    return Replace(r.left());
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.max(a:plain-primitive) -> ToNumber(a)
+    Node* value = ToNumber(r.GetJSCallInput(0));
+    return Replace(value);
   }
   if (r.InputsMatchAll(Type::Integral32())) {
     // Math.max(a:int32, b:int32, ...)
@@ -117,67 +312,28 @@
   return NoChange();
 }
 
-// ES6 section 20.2.2.19 Math.imul ( x, y )
-Reduction JSBuiltinReducer::ReduceMathImul(Node* node) {
+// ES6 section 20.2.2.25 Math.min ( value1, value2, ...values )
+Reduction JSBuiltinReducer::ReduceMathMin(Node* node) {
   JSCallReduction r(node);
-  if (r.InputsMatchTwo(Type::Number(), Type::Number())) {
-    // Math.imul(a:number, b:number) -> NumberImul(NumberToUint32(a),
-    //                                             NumberToUint32(b))
-    Node* a = graph()->NewNode(simplified()->NumberToUint32(), r.left());
-    Node* b = graph()->NewNode(simplified()->NumberToUint32(), r.right());
-    Node* value = graph()->NewNode(simplified()->NumberImul(), a, b);
+  if (r.InputsMatchZero()) {
+    // Math.min() -> Infinity
+    return Replace(jsgraph()->Constant(V8_INFINITY));
+  }
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.min(a:plain-primitive) -> ToNumber(a)
+    Node* value = ToNumber(r.GetJSCallInput(0));
     return Replace(value);
   }
-  return NoChange();
-}
-
-// ES6 section 20.2.2.10 Math.ceil ( x )
-Reduction JSBuiltinReducer::ReduceMathCeil(Node* node) {
-  JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.ceil(a:number) -> NumberCeil(a)
-    Node* value = graph()->NewNode(simplified()->NumberCeil(), r.left());
-    return Replace(value);
-  }
-  return NoChange();
-}
-
-// ES6 section 20.2.2.11 Math.clz32 ( x )
-Reduction JSBuiltinReducer::ReduceMathClz32(Node* node) {
-  JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Unsigned32())) {
-    // Math.clz32(a:unsigned32) -> NumberClz32(a)
-    Node* value = graph()->NewNode(simplified()->NumberClz32(), r.left());
-    return Replace(value);
-  }
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.clz32(a:number) -> NumberClz32(NumberToUint32(a))
-    Node* value = graph()->NewNode(
-        simplified()->NumberClz32(),
-        graph()->NewNode(simplified()->NumberToUint32(), r.left()));
-    return Replace(value);
-  }
-  return NoChange();
-}
-
-// ES6 draft 08-24-14, section 20.2.2.16.
-Reduction JSBuiltinReducer::ReduceMathFloor(Node* node) {
-  JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.floor(a:number) -> NumberFloor(a)
-    Node* value = graph()->NewNode(simplified()->NumberFloor(), r.left());
-    return Replace(value);
-  }
-  return NoChange();
-}
-
-// ES6 draft 08-24-14, section 20.2.2.17.
-Reduction JSBuiltinReducer::ReduceMathFround(Node* node) {
-  JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::NumberOrUndefined())) {
-    // Math.fround(a:number) -> TruncateFloat64ToFloat32(a)
-    Node* value =
-        graph()->NewNode(machine()->TruncateFloat64ToFloat32(), r.left());
+  if (r.InputsMatchAll(Type::Integral32())) {
+    // Math.min(a:int32, b:int32, ...)
+    Node* value = r.GetJSCallInput(0);
+    for (int i = 1; i < r.GetJSCallArity(); i++) {
+      Node* const input = r.GetJSCallInput(i);
+      value = graph()->NewNode(
+          common()->Select(MachineRepresentation::kNone),
+          graph()->NewNode(simplified()->NumberLessThan(), input, value), input,
+          value);
+    }
     return Replace(value);
   }
   return NoChange();
@@ -186,9 +342,33 @@
 // ES6 section 20.2.2.28 Math.round ( x )
 Reduction JSBuiltinReducer::ReduceMathRound(Node* node) {
   JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.round(a:plain-primitive) -> NumberRound(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberRound(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.9 Math.cbrt ( x )
+Reduction JSBuiltinReducer::ReduceMathCbrt(Node* node) {
+  JSCallReduction r(node);
   if (r.InputsMatchOne(Type::Number())) {
-    // Math.round(a:number) -> NumberRound(a)
-    Node* value = graph()->NewNode(simplified()->NumberRound(), r.left());
+    // Math.cbrt(a:number) -> NumberCbrt(a)
+    Node* value = graph()->NewNode(simplified()->NumberCbrt(), r.left());
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.30 Math.sin ( x )
+Reduction JSBuiltinReducer::ReduceMathSin(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.sin(a:plain-primitive) -> NumberSin(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberSin(), input);
     return Replace(value);
   }
   return NoChange();
@@ -197,9 +377,22 @@
 // ES6 section 20.2.2.32 Math.sqrt ( x )
 Reduction JSBuiltinReducer::ReduceMathSqrt(Node* node) {
   JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.sqrt(a:number) -> Float64Sqrt(a)
-    Node* value = graph()->NewNode(machine()->Float64Sqrt(), r.left());
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.sqrt(a:plain-primitive) -> NumberSqrt(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberSqrt(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 20.2.2.33 Math.tan ( x )
+Reduction JSBuiltinReducer::ReduceMathTan(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.tan(a:plain-primitive) -> NumberTan(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberTan(), input);
     return Replace(value);
   }
   return NoChange();
@@ -208,9 +401,22 @@
 // ES6 section 20.2.2.35 Math.trunc ( x )
 Reduction JSBuiltinReducer::ReduceMathTrunc(Node* node) {
   JSCallReduction r(node);
-  if (r.InputsMatchOne(Type::Number())) {
-    // Math.trunc(a:number) -> NumberTrunc(a)
-    Node* value = graph()->NewNode(simplified()->NumberTrunc(), r.left());
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // Math.trunc(a:plain-primitive) -> NumberTrunc(ToNumber(a))
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->NumberTrunc(), input);
+    return Replace(value);
+  }
+  return NoChange();
+}
+
+// ES6 section 21.1.2.1 String.fromCharCode ( ...codeUnits )
+Reduction JSBuiltinReducer::ReduceStringFromCharCode(Node* node) {
+  JSCallReduction r(node);
+  if (r.InputsMatchOne(Type::PlainPrimitive())) {
+    // String.fromCharCode(a:plain-primitive) -> StringFromCharCode(a)
+    Node* input = ToNumber(r.GetJSCallInput(0));
+    Node* value = graph()->NewNode(simplified()->StringFromCharCode(), input);
     return Replace(value);
   }
   return NoChange();
@@ -223,11 +429,17 @@
   // Dispatch according to the BuiltinFunctionId if present.
   if (!r.HasBuiltinFunctionId()) return NoChange();
   switch (r.GetBuiltinFunctionId()) {
-    case kMathMax:
-      reduction = ReduceMathMax(node);
+    case kMathAbs:
+      reduction = ReduceMathAbs(node);
       break;
-    case kMathImul:
-      reduction = ReduceMathImul(node);
+    case kMathAtan:
+      reduction = ReduceMathAtan(node);
+      break;
+    case kMathAtan2:
+      reduction = ReduceMathAtan2(node);
+      break;
+    case kMathAtanh:
+      reduction = ReduceMathAtanh(node);
       break;
     case kMathClz32:
       reduction = ReduceMathClz32(node);
@@ -235,21 +447,63 @@
     case kMathCeil:
       reduction = ReduceMathCeil(node);
       break;
+    case kMathCos:
+      reduction = ReduceMathCos(node);
+      break;
+    case kMathExp:
+      reduction = ReduceMathExp(node);
+      break;
+    case kMathExpm1:
+      reduction = ReduceMathExpm1(node);
+      break;
     case kMathFloor:
       reduction = ReduceMathFloor(node);
       break;
     case kMathFround:
       reduction = ReduceMathFround(node);
       break;
+    case kMathImul:
+      reduction = ReduceMathImul(node);
+      break;
+    case kMathLog:
+      reduction = ReduceMathLog(node);
+      break;
+    case kMathLog1p:
+      reduction = ReduceMathLog1p(node);
+      break;
+    case kMathLog10:
+      reduction = ReduceMathLog10(node);
+      break;
+    case kMathLog2:
+      reduction = ReduceMathLog2(node);
+      break;
+    case kMathMax:
+      reduction = ReduceMathMax(node);
+      break;
+    case kMathMin:
+      reduction = ReduceMathMin(node);
+      break;
+    case kMathCbrt:
+      reduction = ReduceMathCbrt(node);
+      break;
     case kMathRound:
       reduction = ReduceMathRound(node);
       break;
+    case kMathSin:
+      reduction = ReduceMathSin(node);
+      break;
     case kMathSqrt:
       reduction = ReduceMathSqrt(node);
       break;
+    case kMathTan:
+      reduction = ReduceMathTan(node);
+      break;
     case kMathTrunc:
       reduction = ReduceMathTrunc(node);
       break;
+    case kStringFromCharCode:
+      reduction = ReduceStringFromCharCode(node);
+      break;
     default:
       break;
   }
@@ -261,6 +515,18 @@
   return reduction;
 }
 
+Node* JSBuiltinReducer::ToNumber(Node* input) {
+  Type* input_type = NodeProperties::GetType(input);
+  if (input_type->Is(Type::Number())) return input;
+  return graph()->NewNode(simplified()->PlainPrimitiveToNumber(), input);
+}
+
+Node* JSBuiltinReducer::ToUint32(Node* input) {
+  input = ToNumber(input);
+  Type* input_type = NodeProperties::GetType(input);
+  if (input_type->Is(Type::Unsigned32())) return input;
+  return graph()->NewNode(simplified()->NumberToUint32(), input);
+}
 
 Graph* JSBuiltinReducer::graph() const { return jsgraph()->graph(); }
 
@@ -273,11 +539,6 @@
 }
 
 
-MachineOperatorBuilder* JSBuiltinReducer::machine() const {
-  return jsgraph()->machine();
-}
-
-
 SimplifiedOperatorBuilder* JSBuiltinReducer::simplified() const {
   return jsgraph()->simplified();
 }
diff --git a/src/compiler/js-builtin-reducer.h b/src/compiler/js-builtin-reducer.h
index dfeb409..c915792 100644
--- a/src/compiler/js-builtin-reducer.h
+++ b/src/compiler/js-builtin-reducer.h
@@ -18,7 +18,6 @@
 // Forward declarations.
 class CommonOperatorBuilder;
 class JSGraph;
-class MachineOperatorBuilder;
 class SimplifiedOperatorBuilder;
 
 
@@ -30,22 +29,39 @@
   Reduction Reduce(Node* node) final;
 
  private:
-  Reduction ReduceFunctionCall(Node* node);
-  Reduction ReduceMathMax(Node* node);
-  Reduction ReduceMathImul(Node* node);
+  Reduction ReduceMathAbs(Node* node);
+  Reduction ReduceMathAtan(Node* node);
+  Reduction ReduceMathAtan2(Node* node);
+  Reduction ReduceMathAtanh(Node* node);
   Reduction ReduceMathCeil(Node* node);
   Reduction ReduceMathClz32(Node* node);
+  Reduction ReduceMathCos(Node* node);
+  Reduction ReduceMathExp(Node* node);
   Reduction ReduceMathFloor(Node* node);
   Reduction ReduceMathFround(Node* node);
+  Reduction ReduceMathImul(Node* node);
+  Reduction ReduceMathLog(Node* node);
+  Reduction ReduceMathLog1p(Node* node);
+  Reduction ReduceMathLog10(Node* node);
+  Reduction ReduceMathLog2(Node* node);
+  Reduction ReduceMathMax(Node* node);
+  Reduction ReduceMathMin(Node* node);
+  Reduction ReduceMathCbrt(Node* node);
+  Reduction ReduceMathExpm1(Node* node);
   Reduction ReduceMathRound(Node* node);
+  Reduction ReduceMathSin(Node* node);
   Reduction ReduceMathSqrt(Node* node);
+  Reduction ReduceMathTan(Node* node);
   Reduction ReduceMathTrunc(Node* node);
+  Reduction ReduceStringFromCharCode(Node* node);
+
+  Node* ToNumber(Node* value);
+  Node* ToUint32(Node* value);
 
   Graph* graph() const;
   JSGraph* jsgraph() const { return jsgraph_; }
   Isolate* isolate() const;
   CommonOperatorBuilder* common() const;
-  MachineOperatorBuilder* machine() const;
   SimplifiedOperatorBuilder* simplified() const;
 
   JSGraph* const jsgraph_;
diff --git a/src/compiler/js-call-reducer.cc b/src/compiler/js-call-reducer.cc
index b3561e9..f4b0d7b 100644
--- a/src/compiler/js-call-reducer.cc
+++ b/src/compiler/js-call-reducer.cc
@@ -71,7 +71,6 @@
   size_t const arity = p.arity() - 2;
   NodeProperties::ReplaceValueInput(node, target, 0);
   NodeProperties::ReplaceValueInput(node, target, 1);
-  NodeProperties::RemoveFrameStateInput(node, 1);
   // TODO(bmeurer): We might need to propagate the tail call mode to
   // the JSCreateArray operator, because an Array call in tail call
   // position must always properly consume the parent stack frame.
@@ -89,7 +88,6 @@
   DCHECK_LE(2u, p.arity());
   Node* value = (p.arity() == 2) ? jsgraph()->ZeroConstant()
                                  : NodeProperties::GetValueInput(node, 2);
-  NodeProperties::RemoveFrameStateInput(node, 1);
   NodeProperties::ReplaceValueInputs(node, value);
   NodeProperties::ChangeOp(node, javascript()->ToNumber());
   return Changed(node);
@@ -220,9 +218,9 @@
   CallFunctionParameters const& p = CallFunctionParametersOf(node->op());
   Node* target = NodeProperties::GetValueInput(node, 0);
   Node* context = NodeProperties::GetContextInput(node);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* control = NodeProperties::GetControlInput(node);
   Node* effect = NodeProperties::GetEffectInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Try to specialize JSCallFunction {node}s with constant {target}s.
   HeapObjectMatcher m(target);
@@ -233,7 +231,6 @@
 
       // Raise a TypeError if the {target} is a "classConstructor".
       if (IsClassConstructor(shared->kind())) {
-        NodeProperties::RemoveFrameStateInput(node, 0);
         NodeProperties::ReplaceValueInputs(node, target);
         NodeProperties::ChangeOp(
             node, javascript()->CallRuntime(
@@ -272,7 +269,7 @@
                                          isolate());
       CallFunctionParameters const& p = CallFunctionParametersOf(node->op());
       ConvertReceiverMode const convert_mode =
-          (bound_this->IsNull() || bound_this->IsUndefined())
+          (bound_this->IsNull(isolate()) || bound_this->IsUndefined(isolate()))
               ? ConvertReceiverMode::kNullOrUndefined
               : ConvertReceiverMode::kNotNullOrUndefined;
       size_t arity = p.arity();
@@ -326,10 +323,11 @@
     }
 
     // Check that the {target} is still the {array_function}.
-    Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
-                                   array_function, context);
-    control = graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
-                               effect, control);
+    Node* check = graph()->NewNode(
+        javascript()->StrictEqual(CompareOperationHints::Any()), target,
+        array_function, context);
+    control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                        frame_state, effect, control);
 
     // Turn the {node} into a {JSCreateArray} call.
     NodeProperties::ReplaceValueInput(node, array_function, 0);
@@ -343,13 +341,15 @@
           jsgraph()->Constant(handle(cell->value(), isolate()));
 
       // Check that the {target} is still the {target_function}.
-      Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
-                                     target_function, context);
-      control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                 frame_state, effect, control);
+      Node* check = graph()->NewNode(
+          javascript()->StrictEqual(CompareOperationHints::Any()), target,
+          target_function, context);
+      control = effect = 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}.
@@ -369,9 +369,9 @@
   Node* target = NodeProperties::GetValueInput(node, 0);
   Node* new_target = NodeProperties::GetValueInput(node, arity + 1);
   Node* context = NodeProperties::GetContextInput(node);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Try to specialize JSCallConstruct {node}s with constant {target}s.
   HeapObjectMatcher m(target);
@@ -381,11 +381,6 @@
 
       // Raise a TypeError if the {target} is not a constructor.
       if (!function->IsConstructor()) {
-        // Drop the lazy bailout location and use the eager bailout point for
-        // the runtime function (actually as lazy bailout point). It doesn't
-        // really matter which bailout location we use since we never really
-        // go back after throwing the exception.
-        NodeProperties::RemoveFrameStateInput(node, 0);
         NodeProperties::ReplaceValueInputs(node, target);
         NodeProperties::ChangeOp(
             node, javascript()->CallRuntime(Runtime::kThrowCalledNonCallable));
@@ -405,7 +400,6 @@
         }
 
         // Turn the {node} into a {JSCreateArray} call.
-        NodeProperties::RemoveFrameStateInput(node, 1);
         for (int i = arity; i > 0; --i) {
           NodeProperties::ReplaceValueInput(
               node, NodeProperties::GetValueInput(node, i), i + 1);
@@ -451,15 +445,15 @@
     }
 
     // Check that the {target} is still the {array_function}.
-    Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
-                                   array_function, context);
-    control = graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
-                               effect, control);
+    Node* check = graph()->NewNode(
+        javascript()->StrictEqual(CompareOperationHints::Any()), target,
+        array_function, context);
+    control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                        frame_state, effect, control);
 
     // Turn the {node} into a {JSCreateArray} call.
     NodeProperties::ReplaceEffectInput(node, effect);
     NodeProperties::ReplaceControlInput(node, control);
-    NodeProperties::RemoveFrameStateInput(node, 1);
     for (int i = arity; i > 0; --i) {
       NodeProperties::ReplaceValueInput(
           node, NodeProperties::GetValueInput(node, i), i + 1);
@@ -474,10 +468,11 @@
           jsgraph()->Constant(handle(cell->value(), isolate()));
 
       // Check that the {target} is still the {target_function}.
-      Node* check = graph()->NewNode(javascript()->StrictEqual(), target,
-                                     target_function, context);
-      control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                 frame_state, effect, control);
+      Node* check = graph()->NewNode(
+          javascript()->StrictEqual(CompareOperationHints::Any()), target,
+          target_function, context);
+      control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                          frame_state, effect, control);
 
       // Specialize the JSCallConstruct node to the {target_function}.
       NodeProperties::ReplaceValueInput(node, target_function, 0);
diff --git a/src/compiler/js-context-specialization.cc b/src/compiler/js-context-specialization.cc
index 4d9d1d9..e02fc49 100644
--- a/src/compiler/js-context-specialization.cc
+++ b/src/compiler/js-context-specialization.cc
@@ -70,7 +70,7 @@
   // before the function to which it belongs has initialized the slot.
   // We must be conservative and check if the value in the slot is currently the
   // hole or undefined. If it is neither of these, then it must be initialized.
-  if (value->IsUndefined() || value->IsTheHole()) {
+  if (value->IsUndefined(isolate()) || value->IsTheHole(isolate())) {
     return NoChange();
   }
 
diff --git a/src/compiler/js-create-lowering.cc b/src/compiler/js-create-lowering.cc
index 16e1666..0f829d4 100644
--- a/src/compiler/js-create-lowering.cc
+++ b/src/compiler/js-create-lowering.cc
@@ -37,7 +37,8 @@
 
   // Primitive allocation of static size.
   void Allocate(int size, PretenureFlag pretenure = NOT_TENURED) {
-    effect_ = graph()->NewNode(common()->BeginRegion(), effect_);
+    effect_ = graph()->NewNode(
+        common()->BeginRegion(RegionObservability::kNotObservable), effect_);
     allocation_ =
         graph()->NewNode(simplified()->Allocate(pretenure),
                          jsgraph()->Constant(size), effect_, control_);
@@ -311,11 +312,10 @@
         Operator::Properties properties = node->op()->properties();
         CallDescriptor* desc = Linkage::GetStubCallDescriptor(
             isolate(), graph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNoFlags, properties);
+            CallDescriptor::kNeedsFrameState, 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);
       }
@@ -324,11 +324,10 @@
         Operator::Properties properties = node->op()->properties();
         CallDescriptor* desc = Linkage::GetStubCallDescriptor(
             isolate(), graph()->zone(), callable.descriptor(), 0,
-            CallDescriptor::kNoFlags, properties);
+            CallDescriptor::kNeedsFrameState, 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);
       }
@@ -551,44 +550,40 @@
   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();
+  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* empty_literals_array = jsgraph()->EmptyLiteralsArrayConstant();
+  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_literals_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);
 }
 
 Reduction JSCreateLowering::ReduceJSCreateIterResultObject(Node* node) {
@@ -957,7 +952,8 @@
         site_context->ExitScope(current_site, boilerplate_object);
       } else if (property_details.representation().IsDouble()) {
         // Allocate a mutable HeapNumber box and store the value into it.
-        effect = graph()->NewNode(common()->BeginRegion(), effect);
+        effect = graph()->NewNode(
+            common()->BeginRegion(RegionObservability::kNotObservable), effect);
         value = effect = graph()->NewNode(
             simplified()->Allocate(NOT_TENURED),
             jsgraph()->Constant(HeapNumber::kSize), effect, control);
@@ -974,7 +970,7 @@
             graph()->NewNode(common()->FinishRegion(), value, effect);
       } else if (property_details.representation().IsSmi()) {
         // Ensure that value is stored as smi.
-        value = boilerplate_value->IsUninitialized()
+        value = boilerplate_value->IsUninitialized(isolate())
                     ? jsgraph()->ZeroConstant()
                     : jsgraph()->Constant(boilerplate_value);
       } else {
diff --git a/src/compiler/js-generic-lowering.cc b/src/compiler/js-generic-lowering.cc
index 105298e..47a82d2 100644
--- a/src/compiler/js-generic-lowering.cc
+++ b/src/compiler/js-generic-lowering.cc
@@ -156,17 +156,15 @@
   Node* control = NodeProperties::GetControlInput(node);
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   const PropertyAccess& p = PropertyAccessOf(node->op());
-  Callable callable =
-      CodeFactory::KeyedLoadICInOptimizedCode(isolate(), UNINITIALIZED);
+  Callable callable = CodeFactory::KeyedLoadICInOptimizedCode(isolate());
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
   node->InsertInput(zone(), 2, jsgraph()->SmiConstant(p.feedback().index()));
@@ -182,17 +180,15 @@
   Node* control = NodeProperties::GetControlInput(node);
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   NamedAccess const& p = NamedAccessOf(node->op());
-  Callable callable = CodeFactory::LoadICInOptimizedCode(
-      isolate(), NOT_INSIDE_TYPEOF, UNINITIALIZED);
+  Callable callable = CodeFactory::LoadICInOptimizedCode(isolate());
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
   node->InsertInput(zone(), 1, jsgraph()->HeapConstant(p.name()));
@@ -205,39 +201,25 @@
 
 void JSGenericLowering::LowerJSLoadGlobal(Node* node) {
   Node* closure = NodeProperties::GetValueInput(node, 0);
-  Node* context = NodeProperties::GetContextInput(node);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   const LoadGlobalParameters& p = LoadGlobalParametersOf(node->op());
-  Callable callable = CodeFactory::LoadICInOptimizedCode(
-      isolate(), p.typeof_mode(), UNINITIALIZED);
+  Callable callable =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), p.typeof_mode());
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
-  // Load global object from the context.
-  Node* native_context = effect =
-      graph()->NewNode(machine()->Load(MachineType::AnyTagged()), context,
-                       jsgraph()->IntPtrConstant(
-                           Context::SlotOffset(Context::NATIVE_CONTEXT_INDEX)),
-                       effect, control);
-  Node* global = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), native_context,
-      jsgraph()->IntPtrConstant(Context::SlotOffset(Context::EXTENSION_INDEX)),
-      effect, control);
-  node->InsertInput(zone(), 0, global);
-  node->InsertInput(zone(), 1, jsgraph()->HeapConstant(p.name()));
-  node->InsertInput(zone(), 2, jsgraph()->SmiConstant(p.feedback().index()));
-  node->ReplaceInput(3, vector);
-  node->ReplaceInput(6, effect);
+  node->InsertInput(zone(), 0, jsgraph()->SmiConstant(p.feedback().index()));
+  node->ReplaceInput(1, vector);
+  node->ReplaceInput(4, effect);
   ReplaceWithStubCall(node, callable, flags);
 }
 
@@ -249,17 +231,16 @@
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   PropertyAccess const& p = PropertyAccessOf(node->op());
   LanguageMode language_mode = p.language_mode();
-  Callable callable = CodeFactory::KeyedStoreICInOptimizedCode(
-      isolate(), language_mode, UNINITIALIZED);
+  Callable callable =
+      CodeFactory::KeyedStoreICInOptimizedCode(isolate(), language_mode);
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
   node->InsertInput(zone(), 3, jsgraph()->SmiConstant(p.feedback().index()));
@@ -275,17 +256,16 @@
   Node* control = NodeProperties::GetControlInput(node);
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   NamedAccess const& p = NamedAccessOf(node->op());
-  Callable callable = CodeFactory::StoreICInOptimizedCode(
-      isolate(), p.language_mode(), UNINITIALIZED);
+  Callable callable =
+      CodeFactory::StoreICInOptimizedCode(isolate(), p.language_mode());
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
   node->InsertInput(zone(), 1, jsgraph()->HeapConstant(p.name()));
@@ -303,17 +283,16 @@
   Node* control = NodeProperties::GetControlInput(node);
   CallDescriptor::Flags flags = AdjustFrameStatesForCall(node);
   const StoreGlobalParameters& p = StoreGlobalParametersOf(node->op());
-  Callable callable = CodeFactory::StoreICInOptimizedCode(
-      isolate(), p.language_mode(), UNINITIALIZED);
+  Callable callable =
+      CodeFactory::StoreICInOptimizedCode(isolate(), p.language_mode());
   // Load the type feedback vector from the closure.
-  Node* shared_info = effect = graph()->NewNode(
+  Node* literals = effect = graph()->NewNode(
       machine()->Load(MachineType::AnyTagged()), closure,
-      jsgraph()->IntPtrConstant(JSFunction::kSharedFunctionInfoOffset -
-                                kHeapObjectTag),
+      jsgraph()->IntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag),
       effect, control);
   Node* vector = effect = graph()->NewNode(
-      machine()->Load(MachineType::AnyTagged()), shared_info,
-      jsgraph()->IntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
+      machine()->Load(MachineType::AnyTagged()), literals,
+      jsgraph()->IntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
                                 kHeapObjectTag),
       effect, control);
   // Load global object from the context.
@@ -441,7 +420,8 @@
           CallDescriptor::kNeedsFrameState);
       node->ReplaceInput(0, jsgraph()->HeapConstant(stub.GetCode()));
       node->InsertInput(graph()->zone(), 2, jsgraph()->HeapConstant(site));
-      node->InsertInput(graph()->zone(), 3, jsgraph()->UndefinedConstant());
+      node->InsertInput(graph()->zone(), 3, jsgraph()->Int32Constant(0));
+      node->InsertInput(graph()->zone(), 4, jsgraph()->UndefinedConstant());
       NodeProperties::ChangeOp(node, common()->Call(desc));
     } else if (arity == 1) {
       // TODO(bmeurer): Optimize for the 0 length non-holey case?
@@ -456,8 +436,7 @@
       node->InsertInput(graph()->zone(), 4, jsgraph()->UndefinedConstant());
       NodeProperties::ChangeOp(node, common()->Call(desc));
     } else {
-      ArrayNArgumentsConstructorStub stub(isolate(), elements_kind,
-                                          override_mode);
+      ArrayNArgumentsConstructorStub stub(isolate());
       CallDescriptor* desc = Linkage::GetStubCallDescriptor(
           isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(),
           arity + 1, CallDescriptor::kNeedsFrameState);
@@ -485,9 +464,8 @@
   Handle<SharedFunctionInfo> const shared_info = p.shared_info();
   node->InsertInput(zone(), 0, jsgraph()->HeapConstant(shared_info));
 
-  // Use the FastNewClosureStub that allocates in new space only for nested
-  // functions that don't need literals cloning.
-  if (p.pretenure() == NOT_TENURED && shared_info->num_literals() == 0) {
+  // Use the FastNewClosureStub only for functions allocated in new space.
+  if (p.pretenure() == NOT_TENURED) {
     Callable callable = CodeFactory::FastNewClosure(
         isolate(), shared_info->language_mode(), shared_info->kind());
     ReplaceWithStubCall(node, callable, flags);
@@ -679,6 +657,17 @@
   NodeProperties::ChangeOp(node, machine()->Store(representation));
 }
 
+void JSGenericLowering::LowerJSGeneratorStore(Node* node) {
+  UNREACHABLE();  // Eliminated in typed lowering.
+}
+
+void JSGenericLowering::LowerJSGeneratorRestoreContinuation(Node* node) {
+  UNREACHABLE();  // Eliminated in typed lowering.
+}
+
+void JSGenericLowering::LowerJSGeneratorRestoreRegister(Node* node) {
+  UNREACHABLE();  // Eliminated in typed lowering.
+}
 
 void JSGenericLowering::LowerJSStackCheck(Node* node) {
   Node* effect = NodeProperties::GetEffectInput(node);
diff --git a/src/compiler/js-global-object-specialization.cc b/src/compiler/js-global-object-specialization.cc
index 81ea1ad..31407e8 100644
--- a/src/compiler/js-global-object-specialization.cc
+++ b/src/compiler/js-global-object-specialization.cc
@@ -12,7 +12,7 @@
 #include "src/compiler/node-properties.h"
 #include "src/compiler/simplified-operator.h"
 #include "src/lookup.h"
-#include "src/objects-inl.h"  // TODO(mstarzinger): Temporary cycle breaker!
+#include "src/objects-inl.h"
 #include "src/type-cache.h"
 
 namespace v8 {
@@ -131,9 +131,9 @@
   DCHECK_EQ(IrOpcode::kJSStoreGlobal, node->opcode());
   Handle<Name> name = StoreGlobalParametersOf(node->op()).name();
   Node* value = NodeProperties::GetValueInput(node, 0);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Retrieve the global object from the given {node}.
   Handle<JSGlobalObject> global_object;
@@ -173,8 +173,8 @@
       Node* check =
           graph()->NewNode(simplified()->ReferenceEqual(Type::Tagged()), value,
                            jsgraph()->Constant(property_cell_value));
-      control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                 frame_state, effect, control);
+      control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                          frame_state, effect, control);
       break;
     }
     case PropertyCellType::kConstantType: {
@@ -185,8 +185,8 @@
       Type* property_cell_value_type = Type::TaggedSigned();
       if (property_cell_value->IsHeapObject()) {
         // Deoptimize if the {value} is a Smi.
-        control = graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
-                                   effect, control);
+        control = effect = graph()->NewNode(common()->DeoptimizeIf(), check,
+                                            frame_state, effect, control);
 
         // Load the {value} map check against the {property_cell} map.
         Node* value_map = effect =
@@ -199,8 +199,8 @@
             jsgraph()->HeapConstant(property_cell_value_map));
         property_cell_value_type = Type::TaggedPointer();
       }
-      control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                 frame_state, effect, control);
+      control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                          frame_state, effect, control);
       effect = graph()->NewNode(
           simplified()->StoreField(
               AccessBuilder::ForPropertyCellValue(property_cell_value_type)),
diff --git a/src/compiler/js-graph.cc b/src/compiler/js-graph.cc
index 229169f..3f20daa 100644
--- a/src/compiler/js-graph.cc
+++ b/src/compiler/js-graph.cc
@@ -24,6 +24,11 @@
                 HeapConstant(isolate()->builtins()->AllocateInOldSpace()));
 }
 
+Node* JSGraph::ToNumberBuiltinConstant() {
+  return CACHED(kToNumberBuiltinConstant,
+                HeapConstant(isolate()->builtins()->ToNumber()));
+}
+
 Node* JSGraph::CEntryStubConstant(int result_size) {
   if (result_size == 1) {
     return CACHED(kCEntryStubConstant,
@@ -38,6 +43,11 @@
                 HeapConstant(factory()->empty_fixed_array()));
 }
 
+Node* JSGraph::EmptyLiteralsArrayConstant() {
+  return CACHED(kEmptyLiteralsArrayConstant,
+                HeapConstant(factory()->empty_literals_array()));
+}
+
 Node* JSGraph::HeapNumberMapConstant() {
   return CACHED(kHeapNumberMapConstant,
                 HeapConstant(factory()->heap_number_map()));
@@ -108,15 +118,15 @@
   // canonicalized node can be used.
   if (value->IsNumber()) {
     return Constant(value->Number());
-  } else if (value->IsUndefined()) {
+  } else if (value->IsUndefined(isolate())) {
     return UndefinedConstant();
-  } else if (value->IsTrue()) {
+  } else if (value->IsTrue(isolate())) {
     return TrueConstant();
-  } else if (value->IsFalse()) {
+  } else if (value->IsFalse(isolate())) {
     return FalseConstant();
-  } else if (value->IsNull()) {
+  } else if (value->IsNull(isolate())) {
     return NullConstant();
-  } else if (value->IsTheHole()) {
+  } else if (value->IsTheHole(isolate())) {
     return TheHoleConstant();
   } else {
     return HeapConstant(Handle<HeapObject>::cast(value));
@@ -156,7 +166,8 @@
 }
 
 Node* JSGraph::RelocatableInt32Constant(int32_t value, RelocInfo::Mode rmode) {
-  Node** loc = cache_.FindRelocatableInt32Constant(value);
+  Node** loc = cache_.FindRelocatableInt32Constant(
+      value, static_cast<RelocInfoMode>(rmode));
   if (*loc == nullptr) {
     *loc = graph()->NewNode(common()->RelocatableInt32Constant(value, rmode));
   }
@@ -164,7 +175,8 @@
 }
 
 Node* JSGraph::RelocatableInt64Constant(int64_t value, RelocInfo::Mode rmode) {
-  Node** loc = cache_.FindRelocatableInt64Constant(value);
+  Node** loc = cache_.FindRelocatableInt64Constant(
+      value, static_cast<RelocInfoMode>(rmode));
   if (*loc == nullptr) {
     *loc = graph()->NewNode(common()->RelocatableInt64Constant(value, rmode));
   }
@@ -218,22 +230,10 @@
   return ExternalConstant(ExternalReference(function_id, isolate()));
 }
 
-
-Node* JSGraph::EmptyFrameState() {
-  Node* empty_frame_state = cached_nodes_[kEmptyFrameState];
-  if (!empty_frame_state || empty_frame_state->IsDead()) {
-    Node* state_values = graph()->NewNode(common()->StateValues(0));
-    empty_frame_state = graph()->NewNode(
-        common()->FrameState(BailoutId::None(),
-                             OutputFrameStateCombine::Ignore(), nullptr),
-        state_values, state_values, state_values, NoContextConstant(),
-        UndefinedConstant(), graph()->start());
-    cached_nodes_[kEmptyFrameState] = empty_frame_state;
-  }
-  return empty_frame_state;
+Node* JSGraph::EmptyStateValues() {
+  return CACHED(kEmptyStateValues, graph()->NewNode(common()->StateValues(0)));
 }
 
-
 Node* JSGraph::Dead() {
   return CACHED(kDead, graph()->NewNode(common()->Dead()));
 }
diff --git a/src/compiler/js-graph.h b/src/compiler/js-graph.h
index e772da8..fe5545a 100644
--- a/src/compiler/js-graph.h
+++ b/src/compiler/js-graph.h
@@ -41,8 +41,10 @@
   // Canonicalized global constants.
   Node* AllocateInNewSpaceStubConstant();
   Node* AllocateInOldSpaceStubConstant();
+  Node* ToNumberBuiltinConstant();
   Node* CEntryStubConstant(int result_size);
   Node* EmptyFixedArrayConstant();
+  Node* EmptyLiteralsArrayConstant();
   Node* HeapNumberMapConstant();
   Node* OptimizedOutConstant();
   Node* StaleRegisterConstant();
@@ -123,9 +125,9 @@
   // stubs and runtime functions that do not require a context.
   Node* NoContextConstant() { return ZeroConstant(); }
 
-  // Creates an empty frame states for cases where we know that a function
-  // cannot deopt.
-  Node* EmptyFrameState();
+  // Creates an empty StateValues node, used when we don't have any concrete
+  // values for a certain part of the frame state.
+  Node* EmptyStateValues();
 
   // Create a control node that serves as dependency for dead nodes.
   Node* Dead();
@@ -145,8 +147,10 @@
   enum CachedNode {
     kAllocateInNewSpaceStubConstant,
     kAllocateInOldSpaceStubConstant,
+    kToNumberBuiltinConstant,
     kCEntryStubConstant,
     kEmptyFixedArrayConstant,
+    kEmptyLiteralsArrayConstant,
     kHeapNumberMapConstant,
     kOptimizedOutConstant,
     kStaleRegisterConstant,
@@ -158,7 +162,7 @@
     kZeroConstant,
     kOneConstant,
     kNaNConstant,
-    kEmptyFrameState,
+    kEmptyStateValues,
     kDead,
     kNumCachedNodes  // Must remain last.
   };
diff --git a/src/compiler/js-inlining-heuristic.cc b/src/compiler/js-inlining-heuristic.cc
index 0e0508b..0118b92 100644
--- a/src/compiler/js-inlining-heuristic.cc
+++ b/src/compiler/js-inlining-heuristic.cc
@@ -75,13 +75,24 @@
 
   // Gather feedback on how often this call site has been hit before.
   int calls = -1;  // Same default as CallICNexus::ExtractCallCount.
-  // TODO(turbofan): We also want call counts for constructor calls.
   if (node->opcode() == IrOpcode::kJSCallFunction) {
     CallFunctionParameters p = CallFunctionParametersOf(node->op());
     if (p.feedback().IsValid()) {
       CallICNexus nexus(p.feedback().vector(), p.feedback().slot());
       calls = nexus.ExtractCallCount();
     }
+  } else {
+    DCHECK_EQ(IrOpcode::kJSCallConstruct, node->opcode());
+    CallConstructParameters p = CallConstructParametersOf(node->op());
+    if (p.feedback().IsValid()) {
+      int const extra_index =
+          p.feedback().vector()->GetIndex(p.feedback().slot()) + 1;
+      Handle<Object> feedback_extra(p.feedback().vector()->get(extra_index),
+                                    function->GetIsolate());
+      if (feedback_extra->IsSmi()) {
+        calls = Handle<Smi>::cast(feedback_extra)->value();
+      }
+    }
   }
 
   // ---------------------------------------------------------------------------
diff --git a/src/compiler/js-inlining.cc b/src/compiler/js-inlining.cc
index 5c01ff3..0664105 100644
--- a/src/compiler/js-inlining.cc
+++ b/src/compiler/js-inlining.cc
@@ -4,18 +4,19 @@
 
 #include "src/compiler/js-inlining.h"
 
-#include "src/ast/ast.h"
 #include "src/ast/ast-numbering.h"
+#include "src/ast/ast.h"
 #include "src/ast/scopes.h"
 #include "src/compiler.h"
-#include "src/compiler/all-nodes.h"
 #include "src/compiler/ast-graph-builder.h"
+#include "src/compiler/ast-loop-assignment-analyzer.h"
 #include "src/compiler/common-operator.h"
 #include "src/compiler/graph-reducer.h"
 #include "src/compiler/js-operator.h"
 #include "src/compiler/node-matchers.h"
 #include "src/compiler/node-properties.h"
 #include "src/compiler/operator-properties.h"
+#include "src/compiler/type-hint-analyzer.h"
 #include "src/isolate-inl.h"
 #include "src/parsing/parser.h"
 #include "src/parsing/rewriter.h"
@@ -54,12 +55,8 @@
     return call_->InputAt(formal_arguments() + 1);
   }
 
-  Node* frame_state_before() {
-    return NodeProperties::GetFrameStateInput(call_, 1);
-  }
-
-  Node* frame_state_after() {
-    // Both, {JSCallFunction} and {JSCallConstruct}, have frame state after.
+  Node* frame_state() {
+    // Both, {JSCallFunction} and {JSCallConstruct}, have frame state.
     return NodeProperties::GetFrameStateInput(call_, 0);
   }
 
@@ -75,63 +72,6 @@
 };
 
 
-class CopyVisitor {
- public:
-  CopyVisitor(Graph* source_graph, Graph* target_graph, Zone* temp_zone)
-      : sentinel_op_(IrOpcode::kDead, Operator::kNoProperties, "Sentinel", 0, 0,
-                     0, 0, 0, 0),
-        sentinel_(target_graph->NewNode(&sentinel_op_)),
-        copies_(source_graph->NodeCount(), sentinel_, temp_zone),
-        source_graph_(source_graph),
-        target_graph_(target_graph),
-        temp_zone_(temp_zone) {}
-
-  Node* GetCopy(Node* orig) { return copies_[orig->id()]; }
-
-  void CopyGraph() {
-    NodeVector inputs(temp_zone_);
-    // TODO(bmeurer): AllNodes should be turned into something like
-    // Graph::CollectNodesReachableFromEnd() and the gray set stuff should be
-    // removed since it's only needed by the visualizer.
-    AllNodes all(temp_zone_, source_graph_);
-    // Copy all nodes reachable from end.
-    for (Node* orig : all.live) {
-      Node* copy = GetCopy(orig);
-      if (copy != sentinel_) {
-        // Mapping already exists.
-        continue;
-      }
-      // Copy the node.
-      inputs.clear();
-      for (Node* input : orig->inputs()) inputs.push_back(copies_[input->id()]);
-      copy = target_graph_->NewNode(orig->op(), orig->InputCount(),
-                                    inputs.empty() ? nullptr : &inputs[0]);
-      copies_[orig->id()] = copy;
-    }
-    // For missing inputs.
-    for (Node* orig : all.live) {
-      Node* copy = copies_[orig->id()];
-      for (int i = 0; i < copy->InputCount(); ++i) {
-        Node* input = copy->InputAt(i);
-        if (input == sentinel_) {
-          copy->ReplaceInput(i, GetCopy(orig->InputAt(i)));
-        }
-      }
-    }
-  }
-
-  const NodeVector& copies() const { return copies_; }
-
- private:
-  Operator const sentinel_op_;
-  Node* const sentinel_;
-  NodeVector copies_;
-  Graph* const source_graph_;
-  Graph* const target_graph_;
-  Zone* const temp_zone_;
-};
-
-
 Reduction JSInliner::InlineCall(Node* call, Node* new_target, Node* context,
                                 Node* frame_state, Node* start, Node* end) {
   // The scheduler is smart enough to place our code; we just ensure {control}
@@ -390,7 +330,7 @@
   // TODO(turbofan): TranslatedState::GetAdaptedArguments() currently relies on
   // not inlining recursive functions. We might want to relax that at some
   // point.
-  for (Node* frame_state = call.frame_state_after();
+  for (Node* frame_state = call.frame_state();
        frame_state->opcode() == IrOpcode::kFrameState;
        frame_state = frame_state->InputAt(kFrameStateOuterStateInput)) {
     FrameStateInfo const& frame_info = OpParameter<FrameStateInfo>(frame_state);
@@ -416,6 +356,7 @@
   ParseInfo parse_info(&zone, function);
   CompilationInfo info(&parse_info, function);
   if (info_->is_deoptimization_enabled()) info.MarkAsDeoptimizationEnabled();
+  if (info_->is_type_feedback_enabled()) info.MarkAsTypeFeedbackEnabled();
 
   if (!Compiler::ParseAndAnalyze(info.parse_info())) {
     TRACE("Not inlining %s into %s because parsing failed\n",
@@ -433,6 +374,7 @@
           info_->shared_info()->DebugName()->ToCString().get());
     return NoChange();
   }
+
   // Remember that we inlined this function. This needs to be called right
   // after we ensure deoptimization support so that the code flusher
   // does not remove the code with the deoptimization support.
@@ -446,59 +388,75 @@
         shared_info->DebugName()->ToCString().get(),
         info_->shared_info()->DebugName()->ToCString().get());
 
-  // TODO(mstarzinger): We could use the temporary zone for the graph because
-  // nodes are copied. This however leads to Zone-Types being allocated in the
-  // wrong zone and makes the engine explode at high speeds. Explosion bad!
-  Graph graph(jsgraph_->zone());
-  JSGraph jsgraph(info.isolate(), &graph, jsgraph_->common(),
-                  jsgraph_->javascript(), jsgraph_->simplified(),
-                  jsgraph_->machine());
-  AstGraphBuilder graph_builder(local_zone_, &info, &jsgraph);
-  graph_builder.CreateGraph(false);
+  // If function was lazily compiled, it's literals array may not yet be set up.
+  JSFunction::EnsureLiterals(function);
 
-  CopyVisitor visitor(&graph, jsgraph_->graph(), &zone);
-  visitor.CopyGraph();
+  // Create the subgraph for the inlinee.
+  Node* start;
+  Node* end;
+  {
+    // Run the loop assignment analyzer on the inlinee.
+    AstLoopAssignmentAnalyzer loop_assignment_analyzer(&zone, &info);
+    LoopAssignmentAnalysis* loop_assignment =
+        loop_assignment_analyzer.Analyze();
 
-  Node* start = visitor.GetCopy(graph.start());
-  Node* end = visitor.GetCopy(graph.end());
-  Node* frame_state = call.frame_state_after();
-  Node* new_target = jsgraph_->UndefinedConstant();
+    // Run the type hint analyzer on the inlinee.
+    TypeHintAnalyzer type_hint_analyzer(&zone);
+    TypeHintAnalysis* type_hint_analysis =
+        type_hint_analyzer.Analyze(handle(shared_info->code(), info.isolate()));
 
-  // Insert nodes around the call that model the behavior required for a
-  // constructor dispatch (allocate implicit receiver and check return value).
-  // This models the behavior usually accomplished by our {JSConstructStub}.
-  // Note that the context has to be the callers context (input to call node).
-  Node* receiver = jsgraph_->UndefinedConstant();  // Implicit receiver.
-  if (node->opcode() == IrOpcode::kJSCallConstruct &&
-      NeedsImplicitReceiver(shared_info)) {
-    Node* effect = NodeProperties::GetEffectInput(node);
-    Node* context = NodeProperties::GetContextInput(node);
-    Node* create = jsgraph_->graph()->NewNode(
-        jsgraph_->javascript()->Create(), call.target(), call.new_target(),
-        context, call.frame_state_before(), effect);
-    NodeProperties::ReplaceEffectInput(node, create);
-    // Insert a check of the return value to determine whether the return value
-    // or the implicit receiver should be selected as a result of the call.
-    Node* check = jsgraph_->graph()->NewNode(
-        jsgraph_->javascript()->CallRuntime(Runtime::kInlineIsJSReceiver, 1),
-        node, context, node, start);
-    Node* select = jsgraph_->graph()->NewNode(
-        jsgraph_->common()->Select(MachineRepresentation::kTagged), check, node,
-        create);
-    NodeProperties::ReplaceUses(node, select, check, node, node);
-    NodeProperties::ReplaceValueInput(select, node, 1);
-    NodeProperties::ReplaceValueInput(check, node, 0);
-    NodeProperties::ReplaceEffectInput(check, node);
-    receiver = create;  // The implicit receiver.
+    // Run the AstGraphBuilder to create the subgraph.
+    Graph::SubgraphScope scope(graph());
+    AstGraphBuilder graph_builder(&zone, &info, jsgraph(), loop_assignment,
+                                  type_hint_analysis);
+    graph_builder.CreateGraph(false);
+
+    // Extract the inlinee start/end nodes.
+    start = graph()->start();
+    end = graph()->end();
   }
 
-  // Swizzle the inputs of the {JSCallConstruct} node to look like inputs to a
-  // normal {JSCallFunction} node so that the rest of the inlining machinery
-  // behaves as if we were dealing with a regular function invocation.
+  Node* frame_state = call.frame_state();
+  Node* new_target = jsgraph_->UndefinedConstant();
+
+  // Inline {JSCallConstruct} requires some additional magic.
   if (node->opcode() == IrOpcode::kJSCallConstruct) {
+    // Insert nodes around the call that model the behavior required for a
+    // constructor dispatch (allocate implicit receiver and check return value).
+    // This models the behavior usually accomplished by our {JSConstructStub}.
+    // Note that the context has to be the callers context (input to call node).
+    Node* receiver = jsgraph_->UndefinedConstant();  // Implicit receiver.
+    if (NeedsImplicitReceiver(shared_info)) {
+      Node* frame_state_before = NodeProperties::FindFrameStateBefore(node);
+      Node* effect = NodeProperties::GetEffectInput(node);
+      Node* context = NodeProperties::GetContextInput(node);
+      Node* create = jsgraph_->graph()->NewNode(
+          jsgraph_->javascript()->Create(), call.target(), call.new_target(),
+          context, frame_state_before, effect);
+      NodeProperties::ReplaceEffectInput(node, create);
+      // Insert a check of the return value to determine whether the return
+      // value
+      // or the implicit receiver should be selected as a result of the call.
+      Node* check = jsgraph_->graph()->NewNode(
+          jsgraph_->javascript()->CallRuntime(Runtime::kInlineIsJSReceiver, 1),
+          node, context, node, start);
+      Node* select = jsgraph_->graph()->NewNode(
+          jsgraph_->common()->Select(MachineRepresentation::kTagged), check,
+          node, create);
+      NodeProperties::ReplaceUses(node, select, check, node, node);
+      NodeProperties::ReplaceValueInput(select, node, 1);
+      NodeProperties::ReplaceValueInput(check, node, 0);
+      NodeProperties::ReplaceEffectInput(check, node);
+      receiver = create;  // The implicit receiver.
+    }
+
+    // Swizzle the inputs of the {JSCallConstruct} node to look like inputs to a
+    // normal {JSCallFunction} node so that the rest of the inlining machinery
+    // behaves as if we were dealing with a regular function invocation.
     new_target = call.new_target();  // Retrieve new target value input.
     node->RemoveInput(call.formal_arguments() + 1);  // Drop new target.
     node->InsertInput(jsgraph_->graph()->zone(), 1, receiver);
+
     // Insert a construct stub frame into the chain of frame states. This will
     // reconstruct the proper frame when deoptimizing within the constructor.
     frame_state = CreateArtificialFrameState(
@@ -521,10 +479,11 @@
   if (node->opcode() == IrOpcode::kJSCallFunction &&
       is_sloppy(parse_info.language_mode()) && !shared_info->native()) {
     const CallFunctionParameters& p = CallFunctionParametersOf(node->op());
+    Node* frame_state_before = NodeProperties::FindFrameStateBefore(node);
     Node* effect = NodeProperties::GetEffectInput(node);
     Node* convert = jsgraph_->graph()->NewNode(
         jsgraph_->javascript()->ConvertReceiver(p.convert_mode()),
-        call.receiver(), context, call.frame_state_before(), effect, start);
+        call.receiver(), context, frame_state_before, effect, start);
     NodeProperties::ReplaceValueInput(node, convert, 1);
     NodeProperties::ReplaceEffectInput(node, convert);
   }
@@ -558,6 +517,8 @@
   return InlineCall(node, new_target, context, frame_state, start, end);
 }
 
+Graph* JSInliner::graph() const { return jsgraph()->graph(); }
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/js-inlining.h b/src/compiler/js-inlining.h
index d0ab7c0..88cbf89 100644
--- a/src/compiler/js-inlining.h
+++ b/src/compiler/js-inlining.h
@@ -36,9 +36,12 @@
   Reduction ReduceJSCall(Node* node, Handle<JSFunction> function);
 
  private:
-  Zone* local_zone_;
+  Graph* graph() const;
+  JSGraph* jsgraph() const { return jsgraph_; }
+
+  Zone* const local_zone_;
   CompilationInfo* info_;
-  JSGraph* jsgraph_;
+  JSGraph* const jsgraph_;
 
   Node* CreateArtificialFrameState(Node* node, Node* outer_frame_state,
                                    int parameter_count,
diff --git a/src/compiler/js-intrinsic-lowering.cc b/src/compiler/js-intrinsic-lowering.cc
index 70bcda5..8d24013 100644
--- a/src/compiler/js-intrinsic-lowering.cc
+++ b/src/compiler/js-intrinsic-lowering.cc
@@ -30,8 +30,6 @@
       Runtime::FunctionForId(CallRuntimeParametersOf(node->op()).id());
   if (f->intrinsic_type != Runtime::IntrinsicType::INLINE) return NoChange();
   switch (f->function_id) {
-    case Runtime::kInlineConstructDouble:
-      return ReduceConstructDouble(node);
     case Runtime::kInlineCreateIterResultObject:
       return ReduceCreateIterResultObject(node);
     case Runtime::kInlineDeoptimizeNow:
@@ -40,6 +38,12 @@
       return ReduceDoubleHi(node);
     case Runtime::kInlineDoubleLo:
       return ReduceDoubleLo(node);
+    case Runtime::kInlineGeneratorClose:
+      return ReduceGeneratorClose(node);
+    case Runtime::kInlineGeneratorGetInputOrDebugPos:
+      return ReduceGeneratorGetInputOrDebugPos(node);
+    case Runtime::kInlineGeneratorGetResumeMode:
+      return ReduceGeneratorGetResumeMode(node);
     case Runtime::kInlineIsArray:
       return ReduceIsInstanceType(node, JS_ARRAY_TYPE);
     case Runtime::kInlineIsTypedArray:
@@ -103,19 +107,6 @@
 }
 
 
-Reduction JSIntrinsicLowering::ReduceConstructDouble(Node* node) {
-  Node* high = NodeProperties::GetValueInput(node, 0);
-  Node* low = NodeProperties::GetValueInput(node, 1);
-  Node* value =
-      graph()->NewNode(machine()->Float64InsertHighWord32(),
-                       graph()->NewNode(machine()->Float64InsertLowWord32(),
-                                        jsgraph()->Constant(0), low),
-                       high);
-  ReplaceWithValue(node, value);
-  return Replace(value);
-}
-
-
 Reduction JSIntrinsicLowering::ReduceDeoptimizeNow(Node* node) {
   if (mode() != kDeoptimizationEnabled) return NoChange();
   Node* const frame_state = NodeProperties::GetFrameStateInput(node, 0);
@@ -152,6 +143,39 @@
   return Change(node, machine()->Float64ExtractLowWord32());
 }
 
+Reduction JSIntrinsicLowering::ReduceGeneratorClose(Node* node) {
+  Node* const generator = NodeProperties::GetValueInput(node, 0);
+  Node* const effect = NodeProperties::GetEffectInput(node);
+  Node* const control = NodeProperties::GetControlInput(node);
+  Node* const closed = jsgraph()->Constant(JSGeneratorObject::kGeneratorClosed);
+  Node* const undefined = jsgraph()->UndefinedConstant();
+  Operator const* const op = simplified()->StoreField(
+      AccessBuilder::ForJSGeneratorObjectContinuation());
+
+  ReplaceWithValue(node, undefined, node);
+  NodeProperties::RemoveType(node);
+  return Change(node, op, generator, closed, effect, control);
+}
+
+Reduction JSIntrinsicLowering::ReduceGeneratorGetInputOrDebugPos(Node* node) {
+  Node* const generator = NodeProperties::GetValueInput(node, 0);
+  Node* const effect = NodeProperties::GetEffectInput(node);
+  Node* const control = NodeProperties::GetControlInput(node);
+  Operator const* const op = simplified()->LoadField(
+      AccessBuilder::ForJSGeneratorObjectInputOrDebugPos());
+
+  return Change(node, op, generator, effect, control);
+}
+
+Reduction JSIntrinsicLowering::ReduceGeneratorGetResumeMode(Node* node) {
+  Node* const generator = NodeProperties::GetValueInput(node, 0);
+  Node* const effect = NodeProperties::GetEffectInput(node);
+  Node* const control = NodeProperties::GetControlInput(node);
+  Operator const* const op =
+      simplified()->LoadField(AccessBuilder::ForJSGeneratorObjectResumeMode());
+
+  return Change(node, op, generator, effect, control);
+}
 
 Reduction JSIntrinsicLowering::ReduceIsInstanceType(
     Node* node, InstanceType instance_type) {
diff --git a/src/compiler/js-intrinsic-lowering.h b/src/compiler/js-intrinsic-lowering.h
index 59e6f49..f4b8695 100644
--- a/src/compiler/js-intrinsic-lowering.h
+++ b/src/compiler/js-intrinsic-lowering.h
@@ -37,11 +37,13 @@
   Reduction Reduce(Node* node) final;
 
  private:
-  Reduction ReduceConstructDouble(Node* node);
   Reduction ReduceCreateIterResultObject(Node* node);
   Reduction ReduceDeoptimizeNow(Node* node);
   Reduction ReduceDoubleHi(Node* node);
   Reduction ReduceDoubleLo(Node* node);
+  Reduction ReduceGeneratorClose(Node* node);
+  Reduction ReduceGeneratorGetInputOrDebugPos(Node* node);
+  Reduction ReduceGeneratorGetResumeMode(Node* node);
   Reduction ReduceIsInstanceType(Node* node, InstanceType instance_type);
   Reduction ReduceIsJSReceiver(Node* node);
   Reduction ReduceIsSmi(Node* node);
diff --git a/src/compiler/js-native-context-specialization.cc b/src/compiler/js-native-context-specialization.cc
index fbc064c..81d4cd0 100644
--- a/src/compiler/js-native-context-specialization.cc
+++ b/src/compiler/js-native-context-specialization.cc
@@ -15,7 +15,6 @@
 #include "src/compiler/node-matchers.h"
 #include "src/field-index-inl.h"
 #include "src/isolate-inl.h"
-#include "src/objects-inl.h"  // TODO(mstarzinger): Temporary cycle breaker!
 #include "src/type-cache.h"
 #include "src/type-feedback-vector.h"
 
@@ -79,9 +78,9 @@
          node->opcode() == IrOpcode::kJSLoadProperty ||
          node->opcode() == IrOpcode::kJSStoreProperty);
   Node* receiver = NodeProperties::GetValueInput(node, 0);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Not much we can do if deoptimization support is disabled.
   if (!(flags() & kDeoptimizationEnabled)) return NoChange();
@@ -112,8 +111,8 @@
   if (index != nullptr) {
     Node* check = graph()->NewNode(simplified()->ReferenceEqual(Type::Name()),
                                    index, jsgraph()->HeapConstant(name));
-    control = graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
-                               effect, control);
+    control = effect = graph()->NewNode(common()->DeoptimizeUnless(), check,
+                                        frame_state, effect, control);
   }
 
   // Check if {receiver} may be a number.
@@ -126,17 +125,17 @@
   }
 
   // Ensure that {receiver} is a heap object.
-  Node* check = graph()->NewNode(simplified()->ObjectIsSmi(), receiver);
   Node* receiverissmi_control = nullptr;
   Node* receiverissmi_effect = effect;
   if (receiverissmi_possible) {
+    Node* check = graph()->NewNode(simplified()->ObjectIsSmi(), receiver);
     Node* branch = graph()->NewNode(common()->Branch(), check, control);
     control = graph()->NewNode(common()->IfFalse(), branch);
     receiverissmi_control = graph()->NewNode(common()->IfTrue(), branch);
     receiverissmi_effect = effect;
   } else {
-    control = graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
-                               effect, control);
+    receiver = effect = graph()->NewNode(simplified()->CheckTaggedPointer(),
+                                         receiver, effect, control);
   }
 
   // Load the {receiver} map. The resulting effect is the dominating effect for
@@ -159,7 +158,7 @@
     if (receiver_type->Is(Type::String())) {
       Node* check = graph()->NewNode(simplified()->ObjectIsString(), receiver);
       if (j == access_infos.size() - 1) {
-        this_control =
+        this_control = this_effect =
             graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                              this_effect, fallthrough_control);
         fallthrough_control = nullptr;
@@ -182,10 +181,11 @@
             graph()->NewNode(simplified()->ReferenceEqual(Type::Internal()),
                              receiver_map, jsgraph()->Constant(map));
         if (--num_classes == 0 && j == access_infos.size() - 1) {
-          this_controls.push_back(
+          Node* deoptimize =
               graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
-                               this_effect, fallthrough_control));
-          this_effects.push_back(this_effect);
+                               this_effect, fallthrough_control);
+          this_controls.push_back(deoptimize);
+          this_effects.push_back(deoptimize);
           fallthrough_control = nullptr;
         } else {
           Node* branch =
@@ -237,38 +237,14 @@
       if (access_mode == AccessMode::kStore) {
         Node* check = graph()->NewNode(
             simplified()->ReferenceEqual(Type::Tagged()), value, this_value);
-        this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                        frame_state, this_effect, this_control);
+        this_control = this_effect =
+            graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
+                             this_effect, this_control);
       }
     } else {
       DCHECK(access_info.IsDataField());
       FieldIndex const field_index = access_info.field_index();
-      FieldCheck const field_check = access_info.field_check();
       Type* const field_type = access_info.field_type();
-      switch (field_check) {
-        case FieldCheck::kNone:
-          break;
-        case FieldCheck::kJSArrayBufferViewBufferNotNeutered: {
-          Node* this_buffer = this_effect =
-              graph()->NewNode(simplified()->LoadField(
-                                   AccessBuilder::ForJSArrayBufferViewBuffer()),
-                               this_receiver, this_effect, this_control);
-          Node* this_buffer_bit_field = this_effect =
-              graph()->NewNode(simplified()->LoadField(
-                                   AccessBuilder::ForJSArrayBufferBitField()),
-                               this_buffer, this_effect, this_control);
-          Node* check = graph()->NewNode(
-              machine()->Word32Equal(),
-              graph()->NewNode(machine()->Word32And(), this_buffer_bit_field,
-                               jsgraph()->Int32Constant(
-                                   1 << JSArrayBuffer::WasNeutered::kShift)),
-              jsgraph()->Int32Constant(0));
-          this_control =
-              graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
-                               this_effect, this_control);
-          break;
-        }
-      }
       if (access_mode == AccessMode::kLoad &&
           access_info.holder().ToHandle(&holder)) {
         this_receiver = jsgraph()->Constant(holder);
@@ -284,6 +260,11 @@
           field_type,  MachineType::AnyTagged(), kFullWriteBarrier};
       if (access_mode == AccessMode::kLoad) {
         if (field_type->Is(Type::UntaggedFloat64())) {
+          // TODO(turbofan): We remove the representation axis from the type to
+          // avoid uninhabited representation types. This is a workaround until
+          // the {PropertyAccessInfo} is using {MachineRepresentation} instead.
+          field_access.type = Type::Union(
+              field_type, Type::Representation(Type::Number(), zone()), zone());
           if (!field_index.is_inobject() || field_index.is_hidden_field() ||
               !FLAG_unbox_double_fields) {
             this_storage = this_effect =
@@ -300,9 +281,14 @@
       } else {
         DCHECK_EQ(AccessMode::kStore, access_mode);
         if (field_type->Is(Type::UntaggedFloat64())) {
+          // TODO(turbofan): We remove the representation axis from the type to
+          // avoid uninhabited representation types. This is a workaround until
+          // the {PropertyAccessInfo} is using {MachineRepresentation} instead.
+          field_access.type = Type::Union(
+              field_type, Type::Representation(Type::Number(), zone()), zone());
           Node* check =
               graph()->NewNode(simplified()->ObjectIsNumber(), this_value);
-          this_control =
+          this_control = this_effect =
               graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                this_effect, this_control);
           this_value = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
@@ -312,8 +298,9 @@
               !FLAG_unbox_double_fields) {
             if (access_info.HasTransitionMap()) {
               // Allocate a MutableHeapNumber for the new property.
-              this_effect =
-                  graph()->NewNode(common()->BeginRegion(), this_effect);
+              this_effect = graph()->NewNode(
+                  common()->BeginRegion(RegionObservability::kNotObservable),
+                  this_effect);
               Node* this_box = this_effect =
                   graph()->NewNode(simplified()->Allocate(NOT_TENURED),
                                    jsgraph()->Constant(HeapNumber::kSize),
@@ -343,19 +330,12 @@
             field_access.machine_type = MachineType::Float64();
           }
         } else if (field_type->Is(Type::TaggedSigned())) {
-          Node* check =
-              graph()->NewNode(simplified()->ObjectIsSmi(), this_value);
-          this_control =
-              graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
+          this_value = this_effect =
+              graph()->NewNode(simplified()->CheckTaggedSigned(), this_value,
                                this_effect, 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);
-          this_control =
-              graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
+          this_value = this_effect =
+              graph()->NewNode(simplified()->CheckTaggedPointer(), this_value,
                                this_effect, this_control);
           if (field_type->NumClasses() == 1) {
             // Emit a map check for the value.
@@ -365,7 +345,7 @@
             Node* check = graph()->NewNode(
                 simplified()->ReferenceEqual(Type::Internal()), this_value_map,
                 jsgraph()->Constant(field_type->Classes().Current()));
-            this_control =
+            this_control = this_effect =
                 graph()->NewNode(common()->DeoptimizeUnless(), check,
                                  frame_state, this_effect, this_control);
           } else {
@@ -376,7 +356,9 @@
         }
         Handle<Map> transition_map;
         if (access_info.transition_map().ToHandle(&transition_map)) {
-          this_effect = graph()->NewNode(common()->BeginRegion(), this_effect);
+          this_effect = graph()->NewNode(
+              common()->BeginRegion(RegionObservability::kObservable),
+              this_effect);
           this_effect = graph()->NewNode(
               simplified()->StoreField(AccessBuilder::ForMap()), this_receiver,
               jsgraph()->Constant(transition_map), this_effect, this_control);
@@ -522,9 +504,9 @@
          node->opcode() == IrOpcode::kJSStoreProperty);
   Node* receiver = NodeProperties::GetValueInput(node, 0);
   Node* context = NodeProperties::GetContextInput(node);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Not much we can do if deoptimization support is disabled.
   if (!(flags() & kDeoptimizationEnabled)) return NoChange();
@@ -555,9 +537,8 @@
   ZoneVector<Node*> controls(zone());
 
   // Ensure that {receiver} is a heap object.
-  Node* check = graph()->NewNode(simplified()->ObjectIsSmi(), receiver);
-  control = graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
-                             effect, control);
+  receiver = effect = graph()->NewNode(simplified()->CheckTaggedPointer(),
+                                       receiver, effect, control);
 
   // Load the {receiver} map. The resulting effect is the dominating effect for
   // all (polymorphic) branches.
@@ -597,17 +578,19 @@
           // TODO(turbofan): This is ugly as hell! We should probably introduce
           // macro-ish operators for property access that encapsulate this whole
           // mess.
-          this_controls.push_back(graph()->NewNode(common()->DeoptimizeUnless(),
-                                                   check, frame_state, effect,
-                                                   fallthrough_control));
+          Node* deoptimize =
+              graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
+                               effect, fallthrough_control);
+          this_controls.push_back(deoptimize);
+          this_effects.push_back(deoptimize);
           fallthrough_control = nullptr;
         } else {
           Node* branch =
               graph()->NewNode(common()->Branch(), check, fallthrough_control);
           this_controls.push_back(graph()->NewNode(common()->IfTrue(), branch));
+          this_effects.push_back(effect);
           fallthrough_control = graph()->NewNode(common()->IfFalse(), branch);
         }
-        this_effects.push_back(effect);
         if (!map->IsJSArrayMap()) receiver_is_jsarray = false;
       }
 
@@ -624,7 +607,7 @@
             simplified()->ReferenceEqual(Type::Any()), receiver_map,
             jsgraph()->HeapConstant(transition_source));
         if (--num_transitions == 0 && j == access_infos.size() - 1) {
-          transition_control =
+          transition_control = transition_effect =
               graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
                                transition_effect, fallthrough_control);
           fallthrough_control = nullptr;
@@ -647,8 +630,7 @@
           // Instance migration, let the stub deal with the {receiver}.
           TransitionElementsKindStub stub(isolate(),
                                           transition_source->elements_kind(),
-                                          transition_target->elements_kind(),
-                                          transition_source->IsJSArrayMap());
+                                          transition_target->elements_kind());
           CallDescriptor const* const desc = Linkage::GetStubCallDescriptor(
               isolate(), graph()->zone(), stub.GetCallInterfaceDescriptor(), 0,
               CallDescriptor::kNeedsFrameState, node->op()->properties());
@@ -657,6 +639,7 @@
               receiver, jsgraph()->HeapConstant(transition_target), context,
               frame_state, transition_effect, transition_control);
         }
+
         this_controls.push_back(transition_control);
         this_effects.push_back(transition_effect);
       }
@@ -675,6 +658,14 @@
             graph()->NewNode(common()->EffectPhi(this_control_count),
                              this_control_count + 1, &this_effects.front());
       }
+
+      // TODO(turbofan): The effect/control linearization will not find a
+      // FrameState after the StoreField or Call that is generated for the
+      // elements kind transition above. This is because those operators
+      // don't have the kNoWrite flag on it, even though they are not
+      // observable by JavaScript.
+      this_effect = graph()->NewNode(common()->Checkpoint(), frame_state,
+                                     this_effect, this_control);
     }
 
     // Certain stores need a prototype chain check because shape changes
@@ -685,28 +676,6 @@
       AssumePrototypesStable(receiver_type, native_context, holder);
     }
 
-    // Check that the {index} is actually a Number.
-    if (!NumberMatcher(this_index).HasValue()) {
-      Node* check =
-          graph()->NewNode(simplified()->ObjectIsNumber(), this_index);
-      this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                      frame_state, this_effect, 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
-    // equal to the original {index}.
-    if (!NumberMatcher(this_index).IsInRange(0.0, kMaxUInt32)) {
-      Node* this_index32 =
-          graph()->NewNode(simplified()->NumberToUint32(), this_index);
-      Node* check = graph()->NewNode(simplified()->NumberEqual(), this_index32,
-                                     this_index);
-      this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                      frame_state, this_effect, this_control);
-      this_index = this_index32;
-    }
-
     // TODO(bmeurer): We currently specialize based on elements kind. We should
     // also be able to properly support strings and other JSObjects here.
     ElementsKind elements_kind = access_info.elements_kind();
@@ -725,8 +694,9 @@
       Node* check = graph()->NewNode(
           simplified()->ReferenceEqual(Type::Any()), this_elements_map,
           jsgraph()->HeapConstant(factory()->fixed_array_map()));
-      this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                      frame_state, this_effect, this_control);
+      this_control = this_effect =
+          graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
+                           this_effect, this_control);
     }
 
     // Load the length of the {receiver}.
@@ -741,10 +711,9 @@
                   this_elements, this_effect, this_control);
 
     // Check that the {index} is in the valid range for the {receiver}.
-    Node* check = graph()->NewNode(simplified()->NumberLessThan(), this_index,
-                                   this_length);
-    this_control = graph()->NewNode(common()->DeoptimizeUnless(), check,
-                                    frame_state, this_effect, this_control);
+    this_index = this_effect =
+        graph()->NewNode(simplified()->CheckBounds(), this_index, this_length,
+                         this_effect, this_control);
 
     // Compute the element access.
     Type* element_type = Type::Any();
@@ -781,45 +750,26 @@
       if (elements_kind == FAST_HOLEY_ELEMENTS ||
           elements_kind == FAST_HOLEY_SMI_ELEMENTS) {
         // Perform the hole check on the result.
-        Node* check =
-            graph()->NewNode(simplified()->ReferenceEqual(element_access.type),
-                             this_value, jsgraph()->TheHoleConstant());
+        CheckTaggedHoleMode mode = CheckTaggedHoleMode::kNeverReturnHole;
         // Check if we are allowed to turn the hole into undefined.
         Type* initial_holey_array_type = Type::Class(
             handle(isolate()->get_initial_js_array_map(elements_kind)),
             graph()->zone());
         if (receiver_type->NowIs(initial_holey_array_type) &&
             isolate()->IsFastArrayConstructorPrototypeChainIntact()) {
-          Node* branch = graph()->NewNode(common()->Branch(BranchHint::kFalse),
-                                          check, this_control);
-          Node* if_true = graph()->NewNode(common()->IfTrue(), branch);
-          Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
           // Add a code dependency on the array protector cell.
           AssumePrototypesStable(receiver_type, native_context,
                                  isolate()->initial_object_prototype());
           dependencies()->AssumePropertyCell(factory()->array_protector());
           // Turn the hole into undefined.
-          this_control =
-              graph()->NewNode(common()->Merge(2), if_true, if_false);
-          this_value = graph()->NewNode(
-              common()->Phi(MachineRepresentation::kTagged, 2),
-              jsgraph()->UndefinedConstant(), this_value, this_control);
-          element_type =
-              Type::Union(element_type, Type::Undefined(), graph()->zone());
-        } else {
-          // Deoptimize in case of the hole.
-          this_control =
-              graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
-                               this_effect, this_control);
+          mode = CheckTaggedHoleMode::kConvertHoleToUndefined;
         }
-        // Rename the result to represent the actual type (not polluted by the
-        // hole).
-        this_value = graph()->NewNode(simplified()->TypeGuard(element_type),
-                                      this_value, this_control);
+        this_value = this_effect =
+            graph()->NewNode(simplified()->CheckTaggedHole(mode), this_value,
+                             this_effect, this_control);
       } else if (elements_kind == FAST_HOLEY_DOUBLE_ELEMENTS) {
         // Perform the hole check on the result.
-        Node* check =
-            graph()->NewNode(simplified()->NumberIsHoleNaN(), this_value);
+        CheckFloat64HoleMode mode = CheckFloat64HoleMode::kNeverReturnHole;
         // Check if we are allowed to return the hole directly.
         Type* initial_holey_array_type = Type::Class(
             handle(isolate()->get_initial_js_array_map(elements_kind)),
@@ -830,33 +780,32 @@
           AssumePrototypesStable(receiver_type, native_context,
                                  isolate()->initial_object_prototype());
           dependencies()->AssumePropertyCell(factory()->array_protector());
-          // Turn the hole into undefined.
-          this_value = graph()->NewNode(
-              common()->Select(MachineRepresentation::kTagged,
-                               BranchHint::kFalse),
-              check, jsgraph()->UndefinedConstant(), this_value);
-        } else {
-          // Deoptimize in case of the hole.
-          this_control =
-              graph()->NewNode(common()->DeoptimizeIf(), check, frame_state,
-                               this_effect, this_control);
+          // Return the signaling NaN hole directly if all uses are truncating.
+          mode = CheckFloat64HoleMode::kAllowReturnHole;
         }
+        this_value = this_effect =
+            graph()->NewNode(simplified()->CheckFloat64Hole(mode), this_value,
+                             this_effect, this_control);
       }
     } else {
       DCHECK_EQ(AccessMode::kStore, access_mode);
       if (IsFastSmiElementsKind(elements_kind)) {
-        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(simplified()->TypeGuard(type_cache_.kSmi),
-                                      this_value, this_control);
+        this_value = this_effect =
+            graph()->NewNode(simplified()->CheckTaggedSigned(), this_value,
+                             this_effect, 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_control = this_effect =
+            graph()->NewNode(common()->DeoptimizeUnless(), check, frame_state,
+                             this_effect, this_control);
         this_value = graph()->NewNode(simplified()->TypeGuard(Type::Number()),
                                       this_value, this_control);
+        // Make sure we do not store signalling NaNs into holey double arrays.
+        if (elements_kind == FAST_HOLEY_DOUBLE_ELEMENTS) {
+          this_value =
+              graph()->NewNode(simplified()->NumberSilenceNaN(), this_value);
+        }
       }
       this_effect = graph()->NewNode(simplified()->StoreElement(element_access),
                                      this_elements, this_index, this_value,
@@ -960,9 +909,9 @@
 
 
 Reduction JSNativeContextSpecialization::ReduceSoftDeoptimize(Node* node) {
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
   Node* deoptimize =
       graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kSoft), frame_state,
                        effect, control);
diff --git a/src/compiler/js-operator.cc b/src/compiler/js-operator.cc
index dfbe742..89c0eee 100644
--- a/src/compiler/js-operator.cc
+++ b/src/compiler/js-operator.cc
@@ -9,8 +9,8 @@
 #include "src/base/lazy-instance.h"
 #include "src/compiler/opcodes.h"
 #include "src/compiler/operator.h"
-#include "src/objects-inl.h"  // TODO(mstarzinger): Temporary cycle breaker!
-#include "src/type-feedback-vector-inl.h"
+#include "src/handles-inl.h"
+#include "src/type-feedback-vector.h"
 
 namespace v8 {
 namespace internal {
@@ -376,34 +376,54 @@
   return OpParameter<CreateLiteralParameters>(op);
 }
 
-#define CACHED_OP_LIST(V)                                  \
-  V(Equal, Operator::kNoProperties, 2, 1)                  \
-  V(NotEqual, Operator::kNoProperties, 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)        \
-  V(GreaterThanOrEqual, Operator::kNoProperties, 2, 1)     \
-  V(ToInteger, Operator::kNoProperties, 1, 1)              \
-  V(ToLength, Operator::kNoProperties, 1, 1)               \
-  V(ToName, Operator::kNoProperties, 1, 1)                 \
-  V(ToNumber, Operator::kNoProperties, 1, 1)               \
-  V(ToObject, Operator::kFoldable, 1, 1)                   \
-  V(ToString, 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::kPure, 1, 1)                         \
-  V(InstanceOf, Operator::kNoProperties, 2, 1)             \
-  V(ForInDone, Operator::kPure, 2, 1)                      \
-  V(ForInNext, Operator::kNoProperties, 4, 1)              \
-  V(ForInPrepare, Operator::kNoProperties, 1, 3)           \
-  V(ForInStep, Operator::kPure, 1, 1)                      \
-  V(LoadMessage, Operator::kNoThrow, 0, 1)                 \
-  V(StoreMessage, Operator::kNoThrow, 1, 0)                \
-  V(StackCheck, Operator::kNoProperties, 0, 0)             \
-  V(CreateWithContext, Operator::kNoProperties, 2, 1)      \
+const BinaryOperationHints& BinaryOperationHintsOf(const Operator* op) {
+  DCHECK(op->opcode() == IrOpcode::kJSBitwiseOr ||
+         op->opcode() == IrOpcode::kJSBitwiseXor ||
+         op->opcode() == IrOpcode::kJSBitwiseAnd ||
+         op->opcode() == IrOpcode::kJSShiftLeft ||
+         op->opcode() == IrOpcode::kJSShiftRight ||
+         op->opcode() == IrOpcode::kJSShiftRightLogical ||
+         op->opcode() == IrOpcode::kJSAdd ||
+         op->opcode() == IrOpcode::kJSSubtract ||
+         op->opcode() == IrOpcode::kJSMultiply ||
+         op->opcode() == IrOpcode::kJSDivide ||
+         op->opcode() == IrOpcode::kJSModulus);
+  return OpParameter<BinaryOperationHints>(op);
+}
+
+const CompareOperationHints& CompareOperationHintsOf(const Operator* op) {
+  DCHECK(op->opcode() == IrOpcode::kJSEqual ||
+         op->opcode() == IrOpcode::kJSNotEqual ||
+         op->opcode() == IrOpcode::kJSStrictEqual ||
+         op->opcode() == IrOpcode::kJSStrictNotEqual ||
+         op->opcode() == IrOpcode::kJSLessThan ||
+         op->opcode() == IrOpcode::kJSGreaterThan ||
+         op->opcode() == IrOpcode::kJSLessThanOrEqual ||
+         op->opcode() == IrOpcode::kJSGreaterThanOrEqual);
+  return OpParameter<CompareOperationHints>(op);
+}
+
+#define CACHED_OP_LIST(V)                                   \
+  V(ToInteger, Operator::kNoProperties, 1, 1)               \
+  V(ToLength, Operator::kNoProperties, 1, 1)                \
+  V(ToName, Operator::kNoProperties, 1, 1)                  \
+  V(ToNumber, Operator::kNoProperties, 1, 1)                \
+  V(ToObject, Operator::kFoldable, 1, 1)                    \
+  V(ToString, 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::kPure, 1, 1)                          \
+  V(InstanceOf, Operator::kNoProperties, 2, 1)              \
+  V(ForInDone, Operator::kPure, 2, 1)                       \
+  V(ForInNext, Operator::kNoProperties, 4, 1)               \
+  V(ForInPrepare, Operator::kNoProperties, 1, 3)            \
+  V(ForInStep, Operator::kPure, 1, 1)                       \
+  V(LoadMessage, Operator::kNoThrow, 0, 1)                  \
+  V(StoreMessage, Operator::kNoThrow, 1, 0)                 \
+  V(GeneratorRestoreContinuation, Operator::kNoThrow, 1, 1) \
+  V(StackCheck, Operator::kNoProperties, 0, 0)              \
+  V(CreateWithContext, Operator::kNoProperties, 2, 1)       \
   V(CreateModuleContext, Operator::kNoProperties, 2, 1)
 
 struct JSOperatorGlobalCache final {
@@ -537,6 +557,79 @@
       hints);                                           // parameter
 }
 
+const Operator* JSOperatorBuilder::Equal(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(  //--
+      IrOpcode::kJSEqual, Operator::kNoProperties,       // opcode
+      "JSEqual",                                         // name
+      2, 1, 1, 1, 1, 2,                                  // inputs/outputs
+      hints);                                            // parameter
+}
+
+const Operator* JSOperatorBuilder::NotEqual(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(  //--
+      IrOpcode::kJSNotEqual, Operator::kNoProperties,    // opcode
+      "JSNotEqual",                                      // name
+      2, 1, 1, 1, 1, 2,                                  // inputs/outputs
+      hints);                                            // parameter
+}
+
+const Operator* JSOperatorBuilder::StrictEqual(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(  //--
+      IrOpcode::kJSStrictEqual, Operator::kPure,         // opcode
+      "JSStrictEqual",                                   // name
+      2, 0, 0, 1, 0, 0,                                  // inputs/outputs
+      hints);                                            // parameter
+}
+
+const Operator* JSOperatorBuilder::StrictNotEqual(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(  //--
+      IrOpcode::kJSStrictNotEqual, Operator::kPure,      // opcode
+      "JSStrictNotEqual",                                // name
+      2, 0, 0, 1, 0, 0,                                  // inputs/outputs
+      hints);                                            // parameter
+}
+
+const Operator* JSOperatorBuilder::LessThan(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(  //--
+      IrOpcode::kJSLessThan, Operator::kNoProperties,    // opcode
+      "JSLessThan",                                      // name
+      2, 1, 1, 1, 1, 2,                                  // inputs/outputs
+      hints);                                            // parameter
+}
+
+const Operator* JSOperatorBuilder::GreaterThan(CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(   //--
+      IrOpcode::kJSGreaterThan, Operator::kNoProperties,  // opcode
+      "JSGreaterThan",                                    // name
+      2, 1, 1, 1, 1, 2,                                   // inputs/outputs
+      hints);                                             // parameter
+}
+
+const Operator* JSOperatorBuilder::LessThanOrEqual(
+    CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(       //--
+      IrOpcode::kJSLessThanOrEqual, Operator::kNoProperties,  // opcode
+      "JSLessThanOrEqual",                                    // name
+      2, 1, 1, 1, 1, 2,                                       // inputs/outputs
+      hints);                                                 // parameter
+}
+
+const Operator* JSOperatorBuilder::GreaterThanOrEqual(
+    CompareOperationHints hints) {
+  // TODO(turbofan): Cache most important versions of this operator.
+  return new (zone()) Operator1<CompareOperationHints>(          //--
+      IrOpcode::kJSGreaterThanOrEqual, Operator::kNoProperties,  // opcode
+      "JSGreaterThanOrEqual",                                    // name
+      2, 1, 1, 1, 1, 2,  // inputs/outputs
+      hints);            // parameter
+}
 
 const Operator* JSOperatorBuilder::ToBoolean(ToBooleanHints hints) {
   // TODO(turbofan): Cache most important versions of this operator.
@@ -625,6 +718,21 @@
       access);                                             // parameter
 }
 
+const Operator* JSOperatorBuilder::GeneratorStore(int register_count) {
+  return new (zone()) Operator1<int>(                   // --
+      IrOpcode::kJSGeneratorStore, Operator::kNoThrow,  // opcode
+      "JSGeneratorStore",                               // name
+      3 + register_count, 1, 1, 0, 1, 0,                // counts
+      register_count);                                  // parameter
+}
+
+const Operator* JSOperatorBuilder::GeneratorRestoreRegister(int index) {
+  return new (zone()) Operator1<int>(                             // --
+      IrOpcode::kJSGeneratorRestoreRegister, Operator::kNoThrow,  // opcode
+      "JSGeneratorRestoreRegister",                               // name
+      1, 1, 1, 1, 1, 0,                                           // counts
+      index);                                                     // parameter
+}
 
 const Operator* JSOperatorBuilder::StoreNamed(LanguageMode language_mode,
                                               Handle<Name> name,
diff --git a/src/compiler/js-operator.h b/src/compiler/js-operator.h
index 750817a..8390cbd 100644
--- a/src/compiler/js-operator.h
+++ b/src/compiler/js-operator.h
@@ -344,7 +344,6 @@
 
 const CreateClosureParameters& CreateClosureParametersOf(const Operator* op);
 
-
 // Defines shared information for the literal that should be created. This is
 // used as parameter by JSCreateLiteralArray, JSCreateLiteralObject and
 // JSCreateLiteralRegExp operators.
@@ -375,6 +374,9 @@
 
 const CreateLiteralParameters& CreateLiteralParametersOf(const Operator* op);
 
+const BinaryOperationHints& BinaryOperationHintsOf(const Operator* op);
+
+const CompareOperationHints& CompareOperationHintsOf(const Operator* op);
 
 // Interface for building JavaScript-level operators, e.g. directly from the
 // AST. Most operators have no parameters, thus can be globally shared for all
@@ -383,14 +385,14 @@
  public:
   explicit JSOperatorBuilder(Zone* zone);
 
-  const Operator* Equal();
-  const Operator* NotEqual();
-  const Operator* StrictEqual();
-  const Operator* StrictNotEqual();
-  const Operator* LessThan();
-  const Operator* GreaterThan();
-  const Operator* LessThanOrEqual();
-  const Operator* GreaterThanOrEqual();
+  const Operator* Equal(CompareOperationHints hints);
+  const Operator* NotEqual(CompareOperationHints hints);
+  const Operator* StrictEqual(CompareOperationHints hints);
+  const Operator* StrictNotEqual(CompareOperationHints hints);
+  const Operator* LessThan(CompareOperationHints hints);
+  const Operator* GreaterThan(CompareOperationHints hints);
+  const Operator* LessThanOrEqual(CompareOperationHints hints);
+  const Operator* GreaterThanOrEqual(CompareOperationHints hints);
   const Operator* BitwiseOr(BinaryOperationHints hints);
   const Operator* BitwiseXor(BinaryOperationHints hints);
   const Operator* BitwiseAnd(BinaryOperationHints hints);
@@ -470,6 +472,13 @@
   const Operator* LoadMessage();
   const Operator* StoreMessage();
 
+  // Used to implement Ignition's SuspendGenerator bytecode.
+  const Operator* GeneratorStore(int register_count);
+
+  // Used to implement Ignition's ResumeGenerator bytecode.
+  const Operator* GeneratorRestoreContinuation();
+  const Operator* GeneratorRestoreRegister(int index);
+
   const Operator* StackCheck();
 
   const Operator* CreateFunctionContext(int slot_count);
diff --git a/src/compiler/js-typed-lowering.cc b/src/compiler/js-typed-lowering.cc
index 8099533..fcfe134 100644
--- a/src/compiler/js-typed-lowering.cc
+++ b/src/compiler/js-typed-lowering.cc
@@ -27,7 +27,42 @@
   JSBinopReduction(JSTypedLowering* lowering, Node* node)
       : lowering_(lowering), node_(node) {}
 
-  void ConvertInputsToNumberOrUndefined(Node* frame_state) {
+  BinaryOperationHints::Hint GetNumberBinaryOperationFeedback() {
+    if (!(lowering_->flags() & JSTypedLowering::kDeoptimizationEnabled) ||
+        !(lowering_->flags() & JSTypedLowering::kTypeFeedbackEnabled)) {
+      return BinaryOperationHints::kAny;
+    }
+    DCHECK_NE(0, node_->op()->ControlOutputCount());
+    DCHECK_EQ(1, node_->op()->EffectOutputCount());
+    DCHECK_EQ(2, OperatorProperties::GetFrameStateInputCount(node_->op()));
+    BinaryOperationHints hints = BinaryOperationHintsOf(node_->op());
+    BinaryOperationHints::Hint combined = hints.combined();
+    if (combined == BinaryOperationHints::kSignedSmall ||
+        combined == BinaryOperationHints::kSigned32 ||
+        combined == BinaryOperationHints::kNumberOrUndefined) {
+      return combined;
+    }
+    return BinaryOperationHints::kAny;
+  }
+
+  CompareOperationHints::Hint GetNumberCompareOperationFeedback() {
+    if (!(lowering_->flags() & JSTypedLowering::kDeoptimizationEnabled) ||
+        !(lowering_->flags() & JSTypedLowering::kTypeFeedbackEnabled)) {
+      return CompareOperationHints::kAny;
+    }
+    DCHECK_NE(0, node_->op()->ControlOutputCount());
+    DCHECK_EQ(1, node_->op()->EffectOutputCount());
+    DCHECK_EQ(2, OperatorProperties::GetFrameStateInputCount(node_->op()));
+    CompareOperationHints hints = CompareOperationHintsOf(node_->op());
+    CompareOperationHints::Hint combined = hints.combined();
+    if (combined == CompareOperationHints::kSignedSmall ||
+        combined == CompareOperationHints::kNumber) {
+      return combined;
+    }
+    return CompareOperationHints::kAny;
+  }
+
+  void ConvertInputsToNumber(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 +81,11 @@
       ConvertBothInputsToNumber(&left_input, &right_input, frame_state);
     } else {
       left_input = left_is_primitive
-                       ? ConvertPlainPrimitiveToNumberOrUndefined(left())
+                       ? ConvertPlainPrimitiveToNumber(left())
                        : ConvertSingleInputToNumber(
                              left(), CreateFrameStateForLeftInput(frame_state));
       right_input = right_is_primitive
-                        ? ConvertPlainPrimitiveToNumberOrUndefined(right())
+                        ? ConvertPlainPrimitiveToNumber(right())
                         : ConvertSingleInputToNumber(
                               right(), CreateFrameStateForRightInput(
                                            frame_state, left_input));
@@ -107,6 +142,53 @@
     return lowering_->Changed(node_);
   }
 
+  Reduction ChangeToSpeculativeOperator(const Operator* op, Type* upper_bound) {
+    DCHECK_EQ(1, op->EffectInputCount());
+    DCHECK_EQ(1, op->EffectOutputCount());
+    DCHECK_EQ(false, OperatorProperties::HasContextInput(op));
+    DCHECK_EQ(1, op->ControlInputCount());
+    DCHECK_EQ(0, op->ControlOutputCount());
+    DCHECK_EQ(0, OperatorProperties::GetFrameStateInputCount(op));
+    DCHECK_EQ(2, op->ValueInputCount());
+
+    DCHECK_EQ(1, node_->op()->EffectInputCount());
+    DCHECK_EQ(1, node_->op()->EffectOutputCount());
+    DCHECK_EQ(1, node_->op()->ControlInputCount());
+    DCHECK_LT(1, node_->op()->ControlOutputCount());
+    DCHECK_EQ(2, OperatorProperties::GetFrameStateInputCount(node_->op()));
+    DCHECK_EQ(2, node_->op()->ValueInputCount());
+
+    // Reconnect the control output to bypass the IfSuccess node and
+    // possibly disconnect from the IfException node.
+    for (Edge edge : node_->use_edges()) {
+      Node* const user = edge.from();
+      DCHECK(!user->IsDead());
+      if (NodeProperties::IsControlEdge(edge)) {
+        if (user->opcode() == IrOpcode::kIfSuccess) {
+          user->ReplaceUses(NodeProperties::GetControlInput(node_));
+          user->Kill();
+        } else {
+          DCHECK_EQ(user->opcode(), IrOpcode::kIfException);
+          edge.UpdateTo(jsgraph()->Dead());
+        }
+      }
+    }
+
+    // Remove both bailout frame states and the context.
+    node_->RemoveInput(NodeProperties::FirstFrameStateIndex(node_) + 1);
+    node_->RemoveInput(NodeProperties::FirstFrameStateIndex(node_));
+    node_->RemoveInput(NodeProperties::FirstContextIndex(node_));
+
+    NodeProperties::ChangeOp(node_, op);
+
+    // Update the type to number.
+    Type* node_type = NodeProperties::GetType(node_);
+    NodeProperties::SetType(node_,
+                            Type::Intersect(node_type, upper_bound, zone()));
+
+    return lowering_->Changed(node_);
+  }
+
   Reduction ChangeToPureOperator(const Operator* op, Type* type) {
     return ChangeToPureOperator(op, false, type);
   }
@@ -216,17 +298,15 @@
         frame_state->InputAt(kFrameStateOuterStateInput));
   }
 
-  Node* ConvertPlainPrimitiveToNumberOrUndefined(Node* node) {
+  Node* ConvertPlainPrimitiveToNumber(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();
-    if (NodeProperties::GetType(node)->Is(Type::NumberOrUndefined())) {
+    if (NodeProperties::GetType(node)->Is(Type::Number())) {
       return node;
     }
-    return graph()->NewNode(
-        javascript()->ToNumber(), node, jsgraph()->NoContextConstant(),
-        jsgraph()->EmptyFrameState(), graph()->start(), graph()->start());
+    return graph()->NewNode(simplified()->PlainPrimitiveToNumber(), node);
   }
 
   Node* ConvertSingleInputToNumber(Node* node, Node* frame_state) {
@@ -339,14 +419,31 @@
   if (flags() & kDisableBinaryOpReduction) return NoChange();
 
   JSBinopReduction r(this, node);
-  if (r.BothInputsAre(Type::NumberOrUndefined())) {
+
+  BinaryOperationHints::Hint feedback = r.GetNumberBinaryOperationFeedback();
+  if (feedback == BinaryOperationHints::kNumberOrUndefined &&
+      r.BothInputsAre(Type::PlainPrimitive()) &&
+      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);
+    return r.ChangeToPureOperator(simplified()->NumberAdd(), Type::Number());
+  }
+  if (feedback != BinaryOperationHints::kAny) {
+    // Lower to the optimistic number binop.
+    return r.ChangeToSpeculativeOperator(
+        simplified()->SpeculativeNumberAdd(feedback), Type::Number());
+  }
+  if (r.BothInputsAre(Type::Number())) {
     // JSAdd(x:number, y:number) => NumberAdd(x, y)
-    return ReduceNumberBinop(node, simplified()->NumberAdd());
+    Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
+    r.ConvertInputsToNumber(frame_state);
+    return r.ChangeToPureOperator(simplified()->NumberAdd(), Type::Number());
   }
   if (r.NeitherInputCanBe(Type::StringOrReceiver())) {
     // JSAdd(x:-string, y:-string) => NumberAdd(ToNumber(x), ToNumber(y))
     Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-    r.ConvertInputsToNumberOrUndefined(frame_state);
+    r.ConvertInputsToNumber(frame_state);
     return r.ChangeToPureOperator(simplified()->NumberAdd(), Type::Number());
   }
   if (r.OneInputIs(Type::String())) {
@@ -376,31 +473,69 @@
 
 Reduction JSTypedLowering::ReduceJSModulus(Node* node) {
   if (flags() & kDisableBinaryOpReduction) return NoChange();
-
   JSBinopReduction r(this, node);
   if (r.BothInputsAre(Type::Number())) {
     // JSModulus(x:number, x:number) => NumberModulus(x, y)
     return r.ChangeToPureOperator(simplified()->NumberModulus(),
                                   Type::Number());
   }
+  BinaryOperationHints::Hint feedback = r.GetNumberBinaryOperationFeedback();
+  if (feedback != BinaryOperationHints::kAny) {
+    return r.ChangeToSpeculativeOperator(
+        simplified()->SpeculativeNumberModulus(feedback), Type::Number());
+  }
   return NoChange();
 }
 
-
-Reduction JSTypedLowering::ReduceNumberBinop(Node* node,
-                                             const Operator* numberOp) {
+Reduction JSTypedLowering::ReduceJSSubtract(Node* node) {
   if (flags() & kDisableBinaryOpReduction) return NoChange();
-
   JSBinopReduction r(this, node);
-  if (numberOp == simplified()->NumberModulus()) {
-    if (r.BothInputsAre(Type::NumberOrUndefined())) {
-      return r.ChangeToPureOperator(numberOp, Type::Number());
-    }
-    return NoChange();
+  BinaryOperationHints::Hint feedback = r.GetNumberBinaryOperationFeedback();
+  if (feedback == BinaryOperationHints::kNumberOrUndefined &&
+      r.BothInputsAre(Type::PlainPrimitive())) {
+    // JSSubtract(x:plain-primitive, y:plain-primitive)
+    //   => NumberSubtract(ToNumber(x), ToNumber(y))
+    Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
+    r.ConvertInputsToNumber(frame_state);
+    return r.ChangeToPureOperator(simplified()->NumberSubtract(),
+                                  Type::Number());
+  }
+  if (feedback != BinaryOperationHints::kAny) {
+    // Lower to the optimistic number binop.
+    return r.ChangeToSpeculativeOperator(
+        simplified()->SpeculativeNumberSubtract(feedback), Type::Number());
   }
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumberOrUndefined(frame_state);
-  return r.ChangeToPureOperator(numberOp, Type::Number());
+  r.ConvertInputsToNumber(frame_state);
+  return r.ChangeToPureOperator(simplified()->NumberSubtract(), Type::Number());
+}
+
+Reduction JSTypedLowering::ReduceJSMultiply(Node* node) {
+  if (flags() & kDisableBinaryOpReduction) return NoChange();
+  JSBinopReduction r(this, node);
+
+  BinaryOperationHints::Hint feedback = r.GetNumberBinaryOperationFeedback();
+  if (feedback != BinaryOperationHints::kAny) {
+    return r.ChangeToSpeculativeOperator(
+        simplified()->SpeculativeNumberMultiply(feedback), Type::Number());
+  }
+
+  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
+  r.ConvertInputsToNumber(frame_state);
+  return r.ChangeToPureOperator(simplified()->NumberMultiply(), Type::Number());
+}
+
+Reduction JSTypedLowering::ReduceJSDivide(Node* node) {
+  if (flags() & kDisableBinaryOpReduction) return NoChange();
+  JSBinopReduction r(this, node);
+  BinaryOperationHints::Hint feedback = r.GetNumberBinaryOperationFeedback();
+  if (feedback != BinaryOperationHints::kAny) {
+    return r.ChangeToSpeculativeOperator(
+        simplified()->SpeculativeNumberDivide(feedback), Type::Number());
+  }
+  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
+  r.ConvertInputsToNumber(frame_state);
+  return r.ChangeToPureOperator(simplified()->NumberDivide(), Type::Number());
 }
 
 
@@ -409,7 +544,7 @@
 
   JSBinopReduction r(this, node);
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumberOrUndefined(frame_state);
+  r.ConvertInputsToNumber(frame_state);
   r.ConvertInputsToUI32(kSigned, kSigned);
   return r.ChangeToPureOperator(intOp, Type::Integral32());
 }
@@ -422,7 +557,7 @@
 
   JSBinopReduction r(this, node);
   Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-  r.ConvertInputsToNumberOrUndefined(frame_state);
+  r.ConvertInputsToNumber(frame_state);
   r.ConvertInputsToUI32(left_signedness, kUnsigned);
   return r.ChangeToPureOperator(shift_op);
 }
@@ -456,7 +591,10 @@
     r.ChangeToPureOperator(stringOp);
     return Changed(node);
   }
-  if (r.OneInputCannotBe(Type::StringOrReceiver())) {
+
+  CompareOperationHints::Hint hint = r.GetNumberCompareOperationFeedback();
+  if (hint != CompareOperationHints::kAny ||
+      r.OneInputCannotBe(Type::StringOrReceiver())) {
     const Operator* less_than;
     const Operator* less_than_or_equal;
     if (r.BothInputsAre(Type::Unsigned32())) {
@@ -465,10 +603,13 @@
     } else if (r.BothInputsAre(Type::Signed32())) {
       less_than = machine()->Int32LessThan();
       less_than_or_equal = machine()->Int32LessThanOrEqual();
+    } else if (hint != CompareOperationHints::kAny) {
+      less_than = simplified()->SpeculativeNumberLessThan(hint);
+      less_than_or_equal = simplified()->SpeculativeNumberLessThanOrEqual(hint);
     } else {
       // TODO(turbofan): mixed signed/unsigned int32 comparisons.
       Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
-      r.ConvertInputsToNumberOrUndefined(frame_state);
+      r.ConvertInputsToNumber(frame_state);
       less_than = simplified()->NumberLessThan();
       less_than_or_equal = simplified()->NumberLessThanOrEqual();
     }
@@ -491,7 +632,11 @@
       default:
         return NoChange();
     }
-    return r.ChangeToPureOperator(comparison);
+    if (comparison->EffectInputCount() > 0) {
+      return r.ChangeToSpeculativeOperator(comparison, Type::Boolean());
+    } else {
+      return r.ChangeToPureOperator(comparison);
+    }
   }
   // TODO(turbofan): relax/remove effects of this operator in other cases.
   return NoChange();  // Keep a generic comparison.
@@ -592,9 +737,10 @@
       return Replace(replacement);
     }
   }
-  if (r.OneInputCannotBe(Type::NumberOrString())) {
-    // For values with canonical representation (i.e. not string nor number) an
-    // empty type intersection means the values cannot be strictly equal.
+  if (r.OneInputCannotBe(Type::NumberOrSimdOrString())) {
+    // For values with canonical representation (i.e. neither String, nor
+    // Simd128Value nor Number) an empty type intersection means the values
+    // cannot be strictly equal.
     if (!r.left_type()->Maybe(r.right_type())) {
       Node* replacement = jsgraph()->BooleanConstant(invert);
       ReplaceWithValue(node, replacement);
@@ -636,7 +782,7 @@
   if (r.BothInputsAre(Type::String())) {
     return r.ChangeToPureOperator(simplified()->StringEqual(), invert);
   }
-  if (r.BothInputsAre(Type::NumberOrUndefined())) {
+  if (r.BothInputsAre(Type::Number())) {
     return r.ChangeToPureOperator(simplified()->NumberEqual(), invert);
   }
   // TODO(turbofan): js-typed-lowering of StrictEqual(mixed types)
@@ -719,21 +865,6 @@
 }
 
 Reduction JSTypedLowering::ReduceJSToNumberInput(Node* input) {
-  // Check for ToNumber truncation of signaling NaN to undefined mapping.
-  if (input->opcode() == IrOpcode::kSelect) {
-    Node* check = NodeProperties::GetValueInput(input, 0);
-    Node* vtrue = NodeProperties::GetValueInput(input, 1);
-    Type* vtrue_type = NodeProperties::GetType(vtrue);
-    Node* vfalse = NodeProperties::GetValueInput(input, 2);
-    Type* vfalse_type = NodeProperties::GetType(vfalse);
-    if (vtrue_type->Is(Type::Undefined()) && vfalse_type->Is(Type::Number())) {
-      if (check->opcode() == IrOpcode::kNumberIsHoleNaN &&
-          check->InputAt(0) == vfalse) {
-        // JSToNumber(Select(NumberIsHoleNaN(x), y:undefined, x:number)) => x
-        return Replace(vfalse);
-      }
-    }
-  }
   // Try constant-folding of JSToNumber with constant inputs.
   Type* input_type = NodeProperties::GetType(input);
   if (input_type->IsConstant()) {
@@ -780,21 +911,10 @@
   }
   Type* const input_type = NodeProperties::GetType(input);
   if (input_type->Is(Type::PlainPrimitive())) {
-    if (NodeProperties::GetContextInput(node) !=
-            jsgraph()->NoContextConstant() ||
-        NodeProperties::GetEffectInput(node) != graph()->start() ||
-        NodeProperties::GetControlInput(node) != graph()->start()) {
-      // JSToNumber(x:plain-primitive,context,effect,control)
-      //   => JSToNumber(x,no-context,start,start)
-      RelaxEffectsAndControls(node);
-      NodeProperties::ReplaceContextInput(node, jsgraph()->NoContextConstant());
-      NodeProperties::ReplaceControlInput(node, graph()->start());
-      NodeProperties::ReplaceEffectInput(node, graph()->start());
-      DCHECK_EQ(1, OperatorProperties::GetFrameStateInputCount(node->op()));
-      NodeProperties::ReplaceFrameStateInput(node, 0,
-                                             jsgraph()->EmptyFrameState());
-      return Changed(node);
-    }
+    RelaxEffectsAndControls(node);
+    node->TrimInputCount(1);
+    NodeProperties::ChangeOp(node, simplified()->PlainPrimitiveToNumber());
+    return Changed(node);
   }
   return NoChange();
 }
@@ -1013,13 +1133,13 @@
         Node* effect = NodeProperties::GetEffectInput(node);
         Node* control = NodeProperties::GetControlInput(node);
         // Convert to a number first.
-        if (!value_type->Is(Type::NumberOrUndefined())) {
+        if (!value_type->Is(Type::Number())) {
           Reduction number_reduction = ReduceJSToNumberInput(value);
           if (number_reduction.Changed()) {
             value = number_reduction.replacement();
           } else {
             Node* frame_state_for_to_number =
-                NodeProperties::GetFrameStateInput(node, 1);
+                NodeProperties::FindFrameStateBefore(node);
             value = effect =
                 graph()->NewNode(javascript()->ToNumber(), value, context,
                                  frame_state_for_to_number, effect, control);
@@ -1103,17 +1223,13 @@
   Node* prototype =
       jsgraph()->Constant(handle(initial_map->prototype(), isolate()));
 
-  Node* if_is_smi = nullptr;
-  Node* e_is_smi = nullptr;
   // If the left hand side is an object, no smi check is needed.
-  if (r.left_type()->Maybe(Type::TaggedSigned())) {
-    Node* is_smi = graph()->NewNode(simplified()->ObjectIsSmi(), r.left());
-    Node* branch_is_smi =
-        graph()->NewNode(common()->Branch(BranchHint::kFalse), is_smi, control);
-    if_is_smi = graph()->NewNode(common()->IfTrue(), branch_is_smi);
-    e_is_smi = effect;
-    control = graph()->NewNode(common()->IfFalse(), branch_is_smi);
-  }
+  Node* is_smi = graph()->NewNode(simplified()->ObjectIsSmi(), r.left());
+  Node* branch_is_smi =
+      graph()->NewNode(common()->Branch(BranchHint::kFalse), is_smi, control);
+  Node* if_is_smi = graph()->NewNode(common()->IfTrue(), branch_is_smi);
+  Node* e_is_smi = effect;
+  control = graph()->NewNode(common()->IfFalse(), branch_is_smi);
 
   Node* object_map = effect =
       graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
@@ -1179,6 +1295,17 @@
       simplified()->LoadField(AccessBuilder::ForMapPrototype()),
       loop_object_map, loop_effect, control);
 
+  // If not, check if object prototype is the null prototype.
+  Node* null_proto =
+      graph()->NewNode(simplified()->ReferenceEqual(r.right_type()),
+                       object_prototype, jsgraph()->NullConstant());
+  Node* branch_null_proto = graph()->NewNode(
+      common()->Branch(BranchHint::kFalse), null_proto, control);
+  Node* if_null_proto = graph()->NewNode(common()->IfTrue(), branch_null_proto);
+  Node* e_null_proto = effect;
+
+  control = graph()->NewNode(common()->IfFalse(), branch_null_proto);
+
   // Check if object prototype is equal to function prototype.
   Node* eq_proto =
       graph()->NewNode(simplified()->ReferenceEqual(r.right_type()),
@@ -1190,16 +1317,6 @@
 
   control = graph()->NewNode(common()->IfFalse(), branch_eq_proto);
 
-  // If not, check if object prototype is the null prototype.
-  Node* null_proto =
-      graph()->NewNode(simplified()->ReferenceEqual(r.right_type()),
-                       object_prototype, jsgraph()->NullConstant());
-  Node* branch_null_proto = graph()->NewNode(
-      common()->Branch(BranchHint::kFalse), null_proto, control);
-  Node* if_null_proto = graph()->NewNode(common()->IfTrue(), branch_null_proto);
-  Node* e_null_proto = effect;
-
-  control = graph()->NewNode(common()->IfFalse(), branch_null_proto);
   Node* load_object_map = effect =
       graph()->NewNode(simplified()->LoadField(AccessBuilder::ForMap()),
                        object_prototype, effect, control);
@@ -1219,14 +1336,12 @@
       bool_result_runtime_has_in_proto_chain_case, jsgraph()->TrueConstant(),
       jsgraph()->FalseConstant(), control);
 
-  if (if_is_smi != nullptr) {
-    DCHECK_NOT_NULL(e_is_smi);
-    control = graph()->NewNode(common()->Merge(2), if_is_smi, control);
-    effect =
-        graph()->NewNode(common()->EffectPhi(2), e_is_smi, effect, control);
-    result = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
-                              jsgraph()->FalseConstant(), result, control);
-  }
+  DCHECK_NOT_NULL(e_is_smi);
+  control = graph()->NewNode(common()->Merge(2), if_is_smi, control);
+  effect =
+      graph()->NewNode(common()->EffectPhi(2), e_is_smi, effect, control);
+  result = graph()->NewNode(common()->Phi(MachineRepresentation::kTagged, 2),
+                            jsgraph()->FalseConstant(), result, control);
 
   ReplaceWithValue(node, result, effect, control);
   return Changed(result);
@@ -1387,9 +1502,6 @@
         Handle<JSFunction>::cast(target_type->AsConstant()->Value());
     Handle<SharedFunctionInfo> shared(function->shared(), isolate());
 
-    // Remove the eager bailout frame state.
-    NodeProperties::RemoveFrameStateInput(node, 1);
-
     // Patch {node} to an indirect call via the {function}s construct stub.
     Callable callable(handle(shared->construct_stub(), isolate()),
                       ConstructStubDescriptor(isolate()));
@@ -1409,9 +1521,6 @@
 
   // Check if {target} is a JSFunction.
   if (target_type->Is(Type::Function())) {
-    // Remove the eager bailout frame state.
-    NodeProperties::RemoveFrameStateInput(node, 1);
-
     // Patch {node} to an indirect call via the ConstructFunction builtin.
     Callable callable = CodeFactory::ConstructFunction(isolate());
     node->RemoveInput(arity + 1);
@@ -1440,9 +1549,9 @@
   Type* target_type = NodeProperties::GetType(target);
   Node* receiver = NodeProperties::GetValueInput(node, 1);
   Type* receiver_type = NodeProperties::GetType(receiver);
-  Node* frame_state = NodeProperties::GetFrameStateInput(node, 1);
   Node* effect = NodeProperties::GetEffectInput(node);
   Node* control = NodeProperties::GetControlInput(node);
+  Node* frame_state = NodeProperties::FindFrameStateBefore(node);
 
   // Try to infer receiver {convert_mode} from {receiver} type.
   if (receiver_type->Is(Type::NullOrUndefined())) {
@@ -1480,9 +1589,6 @@
     // Update the effect dependency for the {node}.
     NodeProperties::ReplaceEffectInput(node, effect);
 
-    // Remove the eager bailout frame state.
-    NodeProperties::RemoveFrameStateInput(node, 1);
-
     // Compute flags for the call.
     CallDescriptor::Flags flags = CallDescriptor::kNeedsFrameState;
     if (p.tail_call_mode() == TailCallMode::kAllow) {
@@ -1520,9 +1626,6 @@
 
   // Check if {target} is a JSFunction.
   if (target_type->Is(Type::Function())) {
-    // Remove the eager bailout frame state.
-    NodeProperties::RemoveFrameStateInput(node, 1);
-
     // Compute flags for the call.
     CallDescriptor::Flags flags = CallDescriptor::kNeedsFrameState;
     if (p.tail_call_mode() == TailCallMode::kAllow) {
@@ -1630,6 +1733,84 @@
   return Changed(node);
 }
 
+Reduction JSTypedLowering::ReduceJSGeneratorStore(Node* node) {
+  DCHECK_EQ(IrOpcode::kJSGeneratorStore, node->opcode());
+  Node* generator = NodeProperties::GetValueInput(node, 0);
+  Node* continuation = NodeProperties::GetValueInput(node, 1);
+  Node* offset = NodeProperties::GetValueInput(node, 2);
+  Node* context = NodeProperties::GetContextInput(node);
+  Node* effect = NodeProperties::GetEffectInput(node);
+  Node* control = NodeProperties::GetControlInput(node);
+  int register_count = OpParameter<int>(node);
+
+  FieldAccess array_field = AccessBuilder::ForJSGeneratorObjectOperandStack();
+  FieldAccess context_field = AccessBuilder::ForJSGeneratorObjectContext();
+  FieldAccess continuation_field =
+      AccessBuilder::ForJSGeneratorObjectContinuation();
+  FieldAccess input_or_debug_pos_field =
+      AccessBuilder::ForJSGeneratorObjectInputOrDebugPos();
+
+  Node* array = effect = graph()->NewNode(simplified()->LoadField(array_field),
+                                          generator, effect, control);
+
+  for (int i = 0; i < register_count; ++i) {
+    Node* value = NodeProperties::GetValueInput(node, 3 + i);
+    effect = graph()->NewNode(
+        simplified()->StoreField(AccessBuilder::ForFixedArraySlot(i)), array,
+        value, effect, control);
+  }
+
+  effect = graph()->NewNode(simplified()->StoreField(context_field), generator,
+                            context, effect, control);
+  effect = graph()->NewNode(simplified()->StoreField(continuation_field),
+                            generator, continuation, effect, control);
+  effect = graph()->NewNode(simplified()->StoreField(input_or_debug_pos_field),
+                            generator, offset, effect, control);
+
+  ReplaceWithValue(node, effect, effect, control);
+  return Changed(effect);
+}
+
+Reduction JSTypedLowering::ReduceJSGeneratorRestoreContinuation(Node* node) {
+  DCHECK_EQ(IrOpcode::kJSGeneratorRestoreContinuation, node->opcode());
+  Node* generator = NodeProperties::GetValueInput(node, 0);
+  Node* effect = NodeProperties::GetEffectInput(node);
+  Node* control = NodeProperties::GetControlInput(node);
+
+  FieldAccess continuation_field =
+      AccessBuilder::ForJSGeneratorObjectContinuation();
+
+  Node* continuation = effect = graph()->NewNode(
+      simplified()->LoadField(continuation_field), generator, effect, control);
+  Node* executing = jsgraph()->Constant(JSGeneratorObject::kGeneratorExecuting);
+  effect = graph()->NewNode(simplified()->StoreField(continuation_field),
+                            generator, executing, effect, control);
+
+  ReplaceWithValue(node, continuation, effect, control);
+  return Changed(continuation);
+}
+
+Reduction JSTypedLowering::ReduceJSGeneratorRestoreRegister(Node* node) {
+  DCHECK_EQ(IrOpcode::kJSGeneratorRestoreRegister, node->opcode());
+  Node* generator = NodeProperties::GetValueInput(node, 0);
+  Node* effect = NodeProperties::GetEffectInput(node);
+  Node* control = NodeProperties::GetControlInput(node);
+  int index = OpParameter<int>(node);
+
+  FieldAccess array_field = AccessBuilder::ForJSGeneratorObjectOperandStack();
+  FieldAccess element_field = AccessBuilder::ForFixedArraySlot(index);
+
+  Node* array = effect = graph()->NewNode(simplified()->LoadField(array_field),
+                                          generator, effect, control);
+  Node* element = effect = graph()->NewNode(
+      simplified()->LoadField(element_field), array, effect, control);
+  Node* stale = jsgraph()->StaleRegisterConstant();
+  effect = graph()->NewNode(simplified()->StoreField(element_field), array,
+                            stale, effect, control);
+
+  ReplaceWithValue(node, element, effect, control);
+  return Changed(element);
+}
 
 Reduction JSTypedLowering::ReduceSelect(Node* node) {
   DCHECK_EQ(IrOpcode::kSelect, node->opcode());
@@ -1666,31 +1847,38 @@
   // result value and can simply replace the node if it's eliminable.
   if (!NodeProperties::IsConstant(node) && NodeProperties::IsTyped(node) &&
       node->op()->HasProperty(Operator::kEliminatable)) {
+    // We can only constant-fold nodes here, that are known to not cause any
+    // side-effect, may it be a JavaScript observable side-effect or a possible
+    // eager deoptimization exit (i.e. {node} has an operator that doesn't have
+    // the Operator::kNoDeopt property).
     Type* upper = NodeProperties::GetType(node);
-    if (upper->IsConstant()) {
-      Node* replacement = jsgraph()->Constant(upper->AsConstant()->Value());
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
-    } else if (upper->Is(Type::MinusZero())) {
-      Node* replacement = jsgraph()->Constant(factory()->minus_zero_value());
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
-    } else if (upper->Is(Type::NaN())) {
-      Node* replacement = jsgraph()->NaNConstant();
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
-    } else if (upper->Is(Type::Null())) {
-      Node* replacement = jsgraph()->NullConstant();
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
-    } else if (upper->Is(Type::PlainNumber()) && upper->Min() == upper->Max()) {
-      Node* replacement = jsgraph()->Constant(upper->Min());
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
-    } else if (upper->Is(Type::Undefined())) {
-      Node* replacement = jsgraph()->UndefinedConstant();
-      ReplaceWithValue(node, replacement);
-      return Changed(replacement);
+    if (upper->IsInhabited()) {
+      if (upper->IsConstant()) {
+        Node* replacement = jsgraph()->Constant(upper->AsConstant()->Value());
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      } else if (upper->Is(Type::MinusZero())) {
+        Node* replacement = jsgraph()->Constant(factory()->minus_zero_value());
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      } else if (upper->Is(Type::NaN())) {
+        Node* replacement = jsgraph()->NaNConstant();
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      } else if (upper->Is(Type::Null())) {
+        Node* replacement = jsgraph()->NullConstant();
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      } else if (upper->Is(Type::PlainNumber()) &&
+                 upper->Min() == upper->Max()) {
+        Node* replacement = jsgraph()->Constant(upper->Min());
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      } else if (upper->Is(Type::Undefined())) {
+        Node* replacement = jsgraph()->UndefinedConstant();
+        ReplaceWithValue(node, replacement);
+        return Changed(replacement);
+      }
     }
   }
   switch (node->opcode()) {
@@ -1723,11 +1911,11 @@
     case IrOpcode::kJSAdd:
       return ReduceJSAdd(node);
     case IrOpcode::kJSSubtract:
-      return ReduceNumberBinop(node, simplified()->NumberSubtract());
+      return ReduceJSSubtract(node);
     case IrOpcode::kJSMultiply:
-      return ReduceNumberBinop(node, simplified()->NumberMultiply());
+      return ReduceJSMultiply(node);
     case IrOpcode::kJSDivide:
-      return ReduceNumberBinop(node, simplified()->NumberDivide());
+      return ReduceJSDivide(node);
     case IrOpcode::kJSModulus:
       return ReduceJSModulus(node);
     case IrOpcode::kJSToBoolean:
@@ -1766,6 +1954,12 @@
       return ReduceJSForInNext(node);
     case IrOpcode::kJSForInStep:
       return ReduceJSForInStep(node);
+    case IrOpcode::kJSGeneratorStore:
+      return ReduceJSGeneratorStore(node);
+    case IrOpcode::kJSGeneratorRestoreContinuation:
+      return ReduceJSGeneratorRestoreContinuation(node);
+    case IrOpcode::kJSGeneratorRestoreRegister:
+      return ReduceJSGeneratorRestoreRegister(node);
     case IrOpcode::kSelect:
       return ReduceSelect(node);
     default:
@@ -1781,6 +1975,14 @@
                           jsgraph()->Int32Constant(rhs));
 }
 
+Node* JSTypedLowering::EmptyFrameState() {
+  return graph()->NewNode(
+      common()->FrameState(BailoutId::None(), OutputFrameStateCombine::Ignore(),
+                           nullptr),
+      jsgraph()->EmptyStateValues(), jsgraph()->EmptyStateValues(),
+      jsgraph()->EmptyStateValues(), jsgraph()->NoContextConstant(),
+      jsgraph()->UndefinedConstant(), graph()->start());
+}
 
 Factory* JSTypedLowering::factory() const { return jsgraph()->factory(); }
 
diff --git a/src/compiler/js-typed-lowering.h b/src/compiler/js-typed-lowering.h
index 8733e6c..a370b7a 100644
--- a/src/compiler/js-typed-lowering.h
+++ b/src/compiler/js-typed-lowering.h
@@ -36,6 +36,7 @@
     kNoFlags = 0u,
     kDeoptimizationEnabled = 1u << 0,
     kDisableBinaryOpReduction = 1u << 1,
+    kTypeFeedbackEnabled = 1u << 2,
   };
   typedef base::Flags<Flag> Flags;
 
@@ -76,14 +77,20 @@
   Reduction ReduceJSForInDone(Node* node);
   Reduction ReduceJSForInNext(Node* node);
   Reduction ReduceJSForInStep(Node* node);
+  Reduction ReduceJSGeneratorStore(Node* node);
+  Reduction ReduceJSGeneratorRestoreContinuation(Node* node);
+  Reduction ReduceJSGeneratorRestoreRegister(Node* node);
   Reduction ReduceSelect(Node* node);
-  Reduction ReduceNumberBinop(Node* node, const Operator* numberOp);
+  Reduction ReduceJSSubtract(Node* node);
+  Reduction ReduceJSDivide(Node* node);
   Reduction ReduceInt32Binop(Node* node, const Operator* intOp);
   Reduction ReduceUI32Shift(Node* node, Signedness left_signedness,
                             const Operator* shift_op);
 
   Node* Word32Shl(Node* const lhs, int32_t const rhs);
 
+  Node* EmptyFrameState();
+
   Factory* factory() const;
   Graph* graph() const;
   JSGraph* jsgraph() const { return jsgraph_; }
diff --git a/src/compiler/linkage.cc b/src/compiler/linkage.cc
index 5e217b0..c3b68d6 100644
--- a/src/compiler/linkage.cc
+++ b/src/compiler/linkage.cc
@@ -131,7 +131,7 @@
 
 
 // static
-int Linkage::FrameStateInputCount(Runtime::FunctionId function) {
+bool Linkage::NeedsFrameStateInput(Runtime::FunctionId function) {
   // Most runtime functions need a FrameState. A few chosen ones that we know
   // not to call into arbitrary JavaScript, not to throw, and not to deoptimize
   // are blacklisted here and can be called without a FrameState.
@@ -139,16 +139,11 @@
     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::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:
@@ -167,12 +162,15 @@
     case Runtime::kToFastProperties:  // TODO(conradw): Is it safe?
     case Runtime::kTraceEnter:
     case Runtime::kTraceExit:
-      return 0;
+      return false;
+    case Runtime::kInlineCall:
+    case Runtime::kInlineDeoptimizeNow:
     case Runtime::kInlineGetPrototype:
     case Runtime::kInlineNewObject:
     case Runtime::kInlineRegExpConstructResult:
     case Runtime::kInlineRegExpExec:
     case Runtime::kInlineSubString:
+    case Runtime::kInlineThrowNotDateError:
     case Runtime::kInlineToInteger:
     case Runtime::kInlineToLength:
     case Runtime::kInlineToName:
@@ -182,11 +180,7 @@
     case Runtime::kInlineToPrimitive_Number:
     case Runtime::kInlineToPrimitive_String:
     case Runtime::kInlineToString:
-      return 1;
-    case Runtime::kInlineCall:
-    case Runtime::kInlineDeoptimizeNow:
-    case Runtime::kInlineThrowNotDateError:
-      return 2;
+      return true;
     default:
       break;
   }
@@ -194,9 +188,9 @@
   // Most inlined runtime functions (except the ones listed above) can be called
   // without a FrameState or will be lowered by JSIntrinsicLowering internally.
   const Runtime::Function* const f = Runtime::FunctionForId(function);
-  if (f->intrinsic_type == Runtime::IntrinsicType::INLINE) return 0;
+  if (f->intrinsic_type == Runtime::IntrinsicType::INLINE) return false;
 
-  return 1;
+  return true;
 }
 
 
@@ -259,7 +253,7 @@
   locations.AddParam(regloc(kContextRegister));
   types.AddParam(MachineType::AnyTagged());
 
-  if (Linkage::FrameStateInputCount(function_id) == 0) {
+  if (!Linkage::NeedsFrameStateInput(function_id)) {
     flags = static_cast<CallDescriptor::Flags>(
         flags & ~CallDescriptor::kNeedsFrameState);
   }
diff --git a/src/compiler/linkage.h b/src/compiler/linkage.h
index 958e8dc..8596327 100644
--- a/src/compiler/linkage.h
+++ b/src/compiler/linkage.h
@@ -368,7 +368,7 @@
   bool ParameterHasSecondaryLocation(int index) const;
   LinkageLocation GetParameterSecondaryLocation(int index) const;
 
-  static int FrameStateInputCount(Runtime::FunctionId function);
+  static bool NeedsFrameStateInput(Runtime::FunctionId function);
 
   // Get the location where an incoming OSR value is stored.
   LinkageLocation GetOsrValueLocation(int index) const;
diff --git a/src/compiler/machine-operator-reducer.cc b/src/compiler/machine-operator-reducer.cc
index 4b50ffe..b566f48 100644
--- a/src/compiler/machine-operator-reducer.cc
+++ b/src/compiler/machine-operator-reducer.cc
@@ -6,6 +6,7 @@
 
 #include "src/base/bits.h"
 #include "src/base/division-by-constant.h"
+#include "src/base/ieee754.h"
 #include "src/codegen.h"
 #include "src/compiler/diamond.h"
 #include "src/compiler/graph.h"
@@ -152,14 +153,8 @@
     }
     case IrOpcode::kWord32Shl:
       return ReduceWord32Shl(node);
-    case IrOpcode::kWord32Shr: {
-      Uint32BinopMatcher m(node);
-      if (m.right().Is(0)) return Replace(m.left().node());  // x >>> 0 => x
-      if (m.IsFoldable()) {                                  // K >>> K => K
-        return ReplaceInt32(m.left().Value() >> m.right().Value());
-      }
-      return ReduceWord32Shifts(node);
-    }
+    case IrOpcode::kWord32Shr:
+      return ReduceWord32Shr(node);
     case IrOpcode::kWord32Sar:
       return ReduceWord32Sar(node);
     case IrOpcode::kWord32Ror: {
@@ -239,18 +234,6 @@
       if (m.IsFoldable()) {  // K < K => K
         return ReplaceBool(m.left().Value() < m.right().Value());
       }
-      if (m.left().IsInt32Sub() && m.right().Is(0)) {  // x - y < 0 => x < y
-        Int32BinopMatcher msub(m.left().node());
-        node->ReplaceInput(0, msub.left().node());
-        node->ReplaceInput(1, msub.right().node());
-        return Changed(node);
-      }
-      if (m.left().Is(0) && m.right().IsInt32Sub()) {  // 0 < x - y => y < x
-        Int32BinopMatcher msub(m.right().node());
-        node->ReplaceInput(0, msub.right().node());
-        node->ReplaceInput(1, msub.left().node());
-        return Changed(node);
-      }
       if (m.LeftEqualsRight()) return ReplaceBool(false);  // x < x => false
       break;
     }
@@ -259,18 +242,6 @@
       if (m.IsFoldable()) {  // K <= K => K
         return ReplaceBool(m.left().Value() <= m.right().Value());
       }
-      if (m.left().IsInt32Sub() && m.right().Is(0)) {  // x - y <= 0 => x <= y
-        Int32BinopMatcher msub(m.left().node());
-        node->ReplaceInput(0, msub.left().node());
-        node->ReplaceInput(1, msub.right().node());
-        return Changed(node);
-      }
-      if (m.left().Is(0) && m.right().IsInt32Sub()) {  // 0 <= x - y => y <= x
-        Int32BinopMatcher msub(m.right().node());
-        node->ReplaceInput(0, msub.right().node());
-        node->ReplaceInput(1, msub.left().node());
-        return Changed(node);
-      }
       if (m.LeftEqualsRight()) return ReplaceBool(true);  // x <= x => true
       break;
     }
@@ -382,6 +353,80 @@
       }
       break;
     }
+    case IrOpcode::kFloat64Atan: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::atan(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Atan2: {
+      Float64BinopMatcher m(node);
+      if (m.right().IsNaN()) {
+        return Replace(m.right().node());
+      }
+      if (m.left().IsNaN()) {
+        return Replace(m.left().node());
+      }
+      if (m.IsFoldable()) {
+        return ReplaceFloat64(
+            base::ieee754::atan2(m.left().Value(), m.right().Value()));
+      }
+      break;
+    }
+    case IrOpcode::kFloat64Atanh: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::atanh(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Cos: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::cos(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Exp: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::exp(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Expm1: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::expm1(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Log: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::log(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Log1p: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::log1p(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Log2: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::log2(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Log10: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::log10(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Cbrt: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::cbrt(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Sin: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::sin(m.Value()));
+      break;
+    }
+    case IrOpcode::kFloat64Tan: {
+      Float64Matcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceFloat64(base::ieee754::tan(m.Value()));
+      break;
+    }
     case IrOpcode::kChangeFloat32ToFloat64: {
       Float32Matcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceFloat64(m.Value());
@@ -785,6 +830,25 @@
   return ReduceWord32Shifts(node);
 }
 
+Reduction MachineOperatorReducer::ReduceWord32Shr(Node* node) {
+  Uint32BinopMatcher m(node);
+  if (m.right().Is(0)) return Replace(m.left().node());  // x >>> 0 => x
+  if (m.IsFoldable()) {                                  // K >>> K => K
+    return ReplaceInt32(m.left().Value() >> m.right().Value());
+  }
+  if (m.left().IsWord32And() && m.right().HasValue()) {
+    Uint32BinopMatcher mleft(m.left().node());
+    if (mleft.right().HasValue()) {
+      uint32_t shift = m.right().Value() & 0x1f;
+      uint32_t mask = mleft.right().Value();
+      if ((mask >> shift) == 0) {
+        // (m >>> s) == 0 implies ((x & m) >>> s) == 0
+        return ReplaceInt32(0);
+      }
+    }
+  }
+  return ReduceWord32Shifts(node);
+}
 
 Reduction MachineOperatorReducer::ReduceWord32Sar(Node* node) {
   Int32BinopMatcher m(node);
diff --git a/src/compiler/machine-operator-reducer.h b/src/compiler/machine-operator-reducer.h
index cddf13d..e44521e 100644
--- a/src/compiler/machine-operator-reducer.h
+++ b/src/compiler/machine-operator-reducer.h
@@ -74,6 +74,7 @@
   Reduction ReduceProjection(size_t index, Node* node);
   Reduction ReduceWord32Shifts(Node* node);
   Reduction ReduceWord32Shl(Node* node);
+  Reduction ReduceWord32Shr(Node* node);
   Reduction ReduceWord32Sar(Node* node);
   Reduction ReduceWord32And(Node* node);
   Reduction ReduceWord32Or(Node* node);
diff --git a/src/compiler/machine-operator.cc b/src/compiler/machine-operator.cc
index 0d229c7..3662d0a 100644
--- a/src/compiler/machine-operator.cc
+++ b/src/compiler/machine-operator.cc
@@ -88,10 +88,7 @@
   V(Word64Clz, Operator::kNoProperties, 1, 0, 1)                              \
   V(Word64Equal, Operator::kCommutative, 2, 0, 1)                             \
   V(Int32Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)       \
-  V(Int32AddWithOverflow, Operator::kAssociative | Operator::kCommutative, 2, \
-    0, 2)                                                                     \
   V(Int32Sub, Operator::kNoProperties, 2, 0, 1)                               \
-  V(Int32SubWithOverflow, Operator::kNoProperties, 2, 0, 2)                   \
   V(Int32Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)       \
   V(Int32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)   \
   V(Int32Div, Operator::kNoProperties, 2, 1, 1)                               \
@@ -104,10 +101,7 @@
   V(Uint32Mod, Operator::kNoProperties, 2, 1, 1)                              \
   V(Uint32MulHigh, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)  \
   V(Int64Add, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)       \
-  V(Int64AddWithOverflow, Operator::kAssociative | Operator::kCommutative, 2, \
-    0, 2)                                                                     \
   V(Int64Sub, Operator::kNoProperties, 2, 0, 1)                               \
-  V(Int64SubWithOverflow, Operator::kNoProperties, 2, 0, 2)                   \
   V(Int64Mul, Operator::kAssociative | Operator::kCommutative, 2, 0, 1)       \
   V(Int64Div, Operator::kNoProperties, 2, 1, 1)                               \
   V(Int64Mod, Operator::kNoProperties, 2, 1, 1)                               \
@@ -130,6 +124,7 @@
   V(TryTruncateFloat32ToUint64, Operator::kNoProperties, 1, 0, 2)             \
   V(TryTruncateFloat64ToUint64, Operator::kNoProperties, 1, 0, 2)             \
   V(ChangeInt32ToFloat64, Operator::kNoProperties, 1, 0, 1)                   \
+  V(Float64SilenceNaN, 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)                    \
@@ -154,13 +149,26 @@
   V(Float32Div, Operator::kNoProperties, 2, 0, 1)                             \
   V(Float32Sqrt, Operator::kNoProperties, 1, 0, 1)                            \
   V(Float64Abs, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Float64Atan, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Float64Atan2, Operator::kNoProperties, 2, 0, 1)                           \
+  V(Float64Atanh, Operator::kNoProperties, 1, 0, 1)                           \
+  V(Float64Cbrt, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Float64Cos, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Float64Exp, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Float64Expm1, Operator::kNoProperties, 1, 0, 1)                           \
+  V(Float64Log, Operator::kNoProperties, 1, 0, 1)                             \
+  V(Float64Log1p, Operator::kNoProperties, 1, 0, 1)                           \
+  V(Float64Log2, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Float64Log10, 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)                             \
+  V(Float64Sin, Operator::kNoProperties, 1, 0, 1)                             \
   V(Float64Sqrt, Operator::kNoProperties, 1, 0, 1)                            \
+  V(Float64Tan, Operator::kNoProperties, 1, 0, 1)                             \
   V(Float32Equal, Operator::kCommutative, 2, 0, 1)                            \
   V(Float32LessThan, Operator::kNoProperties, 2, 0, 1)                        \
   V(Float32LessThanOrEqual, Operator::kNoProperties, 2, 0, 1)                 \
@@ -372,7 +380,15 @@
   V(Float64RoundTruncate, Operator::kNoProperties, 1, 0, 1) \
   V(Float64RoundTiesAway, Operator::kNoProperties, 1, 0, 1) \
   V(Float32RoundTiesEven, Operator::kNoProperties, 1, 0, 1) \
-  V(Float64RoundTiesEven, Operator::kNoProperties, 1, 0, 1)
+  V(Float64RoundTiesEven, Operator::kNoProperties, 1, 0, 1) \
+  V(Float32Neg, Operator::kNoProperties, 1, 0, 1)           \
+  V(Float64Neg, Operator::kNoProperties, 1, 0, 1)
+
+#define OVERFLOW_OP_LIST(V)                                                \
+  V(Int32AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
+  V(Int32SubWithOverflow, Operator::kNoProperties)                         \
+  V(Int64AddWithOverflow, Operator::kAssociative | Operator::kCommutative) \
+  V(Int64SubWithOverflow, Operator::kNoProperties)
 
 #define MACHINE_TYPE_LIST(V) \
   V(Float32)                 \
@@ -426,33 +442,47 @@
   PURE_OPTIONAL_OP_LIST(PURE)
 #undef PURE
 
-#define LOAD(Type)                                                             \
-  struct Load##Type##Operator final : public Operator1<LoadRepresentation> {   \
-    Load##Type##Operator()                                                     \
-        : Operator1<LoadRepresentation>(                                       \
-              IrOpcode::kLoad, Operator::kNoThrow | Operator::kNoWrite,        \
-              "Load", 2, 1, 1, 1, 1, 0, MachineType::Type()) {}                \
-  };                                                                           \
-  struct CheckedLoad##Type##Operator final                                     \
-      : public Operator1<CheckedLoadRepresentation> {                          \
-    CheckedLoad##Type##Operator()                                              \
-        : Operator1<CheckedLoadRepresentation>(                                \
-              IrOpcode::kCheckedLoad, Operator::kNoThrow | Operator::kNoWrite, \
-              "CheckedLoad", 3, 1, 1, 1, 1, 0, MachineType::Type()) {}         \
-  };                                                                           \
-  Load##Type##Operator kLoad##Type;                                            \
+#define OVERFLOW_OP(Name, properties)                                        \
+  struct Name##Operator final : public Operator {                            \
+    Name##Operator()                                                         \
+        : Operator(IrOpcode::k##Name,                                        \
+                   Operator::kEliminatable | Operator::kNoRead | properties, \
+                   #Name, 2, 0, 1, 2, 0, 0) {}                               \
+  };                                                                         \
+  Name##Operator k##Name;
+  OVERFLOW_OP_LIST(OVERFLOW_OP)
+#undef OVERFLOW_OP
+
+#define LOAD(Type)                                                           \
+  struct Load##Type##Operator final : public Operator1<LoadRepresentation> { \
+    Load##Type##Operator()                                                   \
+        : Operator1<LoadRepresentation>(                                     \
+              IrOpcode::kLoad,                                               \
+              Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,  \
+              "Load", 2, 1, 1, 1, 1, 0, MachineType::Type()) {}              \
+  };                                                                         \
+  struct CheckedLoad##Type##Operator final                                   \
+      : public Operator1<CheckedLoadRepresentation> {                        \
+    CheckedLoad##Type##Operator()                                            \
+        : Operator1<CheckedLoadRepresentation>(                              \
+              IrOpcode::kCheckedLoad,                                        \
+              Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,  \
+              "CheckedLoad", 3, 1, 1, 1, 1, 0, MachineType::Type()) {}       \
+  };                                                                         \
+  Load##Type##Operator kLoad##Type;                                          \
   CheckedLoad##Type##Operator kCheckedLoad##Type;
   MACHINE_TYPE_LIST(LOAD)
 #undef LOAD
 
-#define STACKSLOT(Type)                                                       \
-  struct StackSlot##Type##Operator final                                      \
-      : public Operator1<MachineRepresentation> {                             \
-    StackSlot##Type##Operator()                                               \
-        : Operator1<MachineRepresentation>(                                   \
-              IrOpcode::kStackSlot, Operator::kNoThrow, "StackSlot", 0, 0, 0, \
-              1, 0, 0, MachineType::Type().representation()) {}               \
-  };                                                                          \
+#define STACKSLOT(Type)                                                      \
+  struct StackSlot##Type##Operator final                                     \
+      : public Operator1<MachineRepresentation> {                            \
+    StackSlot##Type##Operator()                                              \
+        : Operator1<MachineRepresentation>(                                  \
+              IrOpcode::kStackSlot, Operator::kNoDeopt | Operator::kNoThrow, \
+              "StackSlot", 0, 0, 0, 1, 0, 0,                                 \
+              MachineType::Type().representation()) {}                       \
+  };                                                                         \
   StackSlot##Type##Operator kStackSlot##Type;
   MACHINE_TYPE_LIST(STACKSLOT)
 #undef STACKSLOT
@@ -461,7 +491,8 @@
   struct Store##Type##Operator : public Operator1<StoreRepresentation> {       \
     explicit Store##Type##Operator(WriteBarrierKind write_barrier_kind)        \
         : Operator1<StoreRepresentation>(                                      \
-              IrOpcode::kStore, Operator::kNoRead | Operator::kNoThrow,        \
+              IrOpcode::kStore,                                                \
+              Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,     \
               "Store", 3, 1, 1, 0, 1, 0,                                       \
               StoreRepresentation(MachineRepresentation::Type,                 \
                                   write_barrier_kind)) {}                      \
@@ -490,7 +521,8 @@
       : public Operator1<CheckedStoreRepresentation> {                         \
     CheckedStore##Type##Operator()                                             \
         : Operator1<CheckedStoreRepresentation>(                               \
-              IrOpcode::kCheckedStore, Operator::kNoRead | Operator::kNoThrow, \
+              IrOpcode::kCheckedStore,                                         \
+              Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,     \
               "CheckedStore", 4, 1, 1, 0, 1, 0, MachineRepresentation::Type) { \
     }                                                                          \
   };                                                                           \
@@ -503,14 +535,15 @@
   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()) {}         \
-  };                                                                          \
+#define ATOMIC_LOAD(Type)                                                   \
+  struct AtomicLoad##Type##Operator final                                   \
+      : public Operator1<LoadRepresentation> {                              \
+    AtomicLoad##Type##Operator()                                            \
+        : Operator1<LoadRepresentation>(                                    \
+              IrOpcode::kAtomicLoad,                                        \
+              Operator::kNoDeopt | 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
@@ -520,23 +553,39 @@
       : public Operator1<MachineRepresentation> {                              \
     AtomicStore##Type##Operator()                                              \
         : Operator1<MachineRepresentation>(                                    \
-              IrOpcode::kAtomicStore, Operator::kNoRead | Operator::kNoThrow,  \
+              IrOpcode::kAtomicStore,                                          \
+              Operator::kNoDeopt | 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
+
+  struct DebugBreakOperator : public Operator {
+    DebugBreakOperator()
+        : Operator(IrOpcode::kDebugBreak, Operator::kNoThrow, "DebugBreak", 0,
+                   0, 0, 0, 0, 0) {}
+  };
+  DebugBreakOperator kDebugBreak;
 };
 
+struct CommentOperator : public Operator1<const char*> {
+  explicit CommentOperator(const char* msg)
+      : Operator1<const char*>(IrOpcode::kComment, Operator::kNoThrow,
+                               "Comment", 0, 0, 0, 0, 0, 0, msg) {}
+};
 
 static base::LazyInstance<MachineOperatorGlobalCache>::type kCache =
     LAZY_INSTANCE_INITIALIZER;
 
-
-MachineOperatorBuilder::MachineOperatorBuilder(Zone* zone,
-                                               MachineRepresentation word,
-                                               Flags flags)
-    : cache_(kCache.Get()), word_(word), flags_(flags) {
+MachineOperatorBuilder::MachineOperatorBuilder(
+    Zone* zone, MachineRepresentation word, Flags flags,
+    AlignmentRequirements alignmentRequirements)
+    : zone_(zone),
+      cache_(kCache.Get()),
+      word_(word),
+      flags_(flags),
+      alignment_requirements_(alignmentRequirements) {
   DCHECK(word == MachineRepresentation::kWord32 ||
          word == MachineRepresentation::kWord64);
 }
@@ -556,6 +605,10 @@
 PURE_OPTIONAL_OP_LIST(PURE)
 #undef PURE
 
+#define OVERFLOW_OP(Name, properties) \
+  const Operator* MachineOperatorBuilder::Name() { return &cache_.k##Name; }
+OVERFLOW_OP_LIST(OVERFLOW_OP)
+#undef OVERFLOW_OP
 
 const Operator* MachineOperatorBuilder::Load(LoadRepresentation rep) {
 #define LOAD(Type)                  \
@@ -604,6 +657,13 @@
   return nullptr;
 }
 
+const Operator* MachineOperatorBuilder::DebugBreak() {
+  return &cache_.kDebugBreak;
+}
+
+const Operator* MachineOperatorBuilder::Comment(const char* msg) {
+  return new (zone_) CommentOperator(msg);
+}
 
 const Operator* MachineOperatorBuilder::CheckedLoad(
     CheckedLoadRepresentation rep) {
diff --git a/src/compiler/machine-operator.h b/src/compiler/machine-operator.h
index 814f6c9..7c443f4 100644
--- a/src/compiler/machine-operator.h
+++ b/src/compiler/machine-operator.h
@@ -113,20 +113,89 @@
     kWord64Popcnt = 1u << 19,
     kWord32ReverseBits = 1u << 20,
     kWord64ReverseBits = 1u << 21,
-    kAllOptionalOps = kFloat32Max | kFloat32Min | kFloat64Max | kFloat64Min |
-                      kFloat32RoundDown | kFloat64RoundDown | kFloat32RoundUp |
-                      kFloat64RoundUp | kFloat32RoundTruncate |
-                      kFloat64RoundTruncate | kFloat64RoundTiesAway |
-                      kFloat32RoundTiesEven | kFloat64RoundTiesEven |
-                      kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt |
-                      kWord32ReverseBits | kWord64ReverseBits
+    kFloat32Neg = 1u << 22,
+    kFloat64Neg = 1u << 23,
+    kAllOptionalOps =
+        kFloat32Max | kFloat32Min | kFloat64Max | kFloat64Min |
+        kFloat32RoundDown | kFloat64RoundDown | kFloat32RoundUp |
+        kFloat64RoundUp | kFloat32RoundTruncate | kFloat64RoundTruncate |
+        kFloat64RoundTiesAway | kFloat32RoundTiesEven | kFloat64RoundTiesEven |
+        kWord32Ctz | kWord64Ctz | kWord32Popcnt | kWord64Popcnt |
+        kWord32ReverseBits | kWord64ReverseBits | kFloat32Neg | kFloat64Neg
   };
   typedef base::Flags<Flag, unsigned> Flags;
 
+  class AlignmentRequirements {
+   public:
+    enum UnalignedAccessSupport { kNoSupport, kSomeSupport, kFullSupport };
+
+    bool IsUnalignedLoadSupported(const MachineType& machineType,
+                                  uint8_t alignment) const {
+      return IsUnalignedSupported(unalignedLoadSupportedTypes_, machineType,
+                                  alignment);
+    }
+
+    bool IsUnalignedStoreSupported(const MachineType& machineType,
+                                   uint8_t alignment) const {
+      return IsUnalignedSupported(unalignedStoreSupportedTypes_, machineType,
+                                  alignment);
+    }
+
+    static AlignmentRequirements FullUnalignedAccessSupport() {
+      return AlignmentRequirements(kFullSupport);
+    }
+    static AlignmentRequirements NoUnalignedAccessSupport() {
+      return AlignmentRequirements(kNoSupport);
+    }
+    static AlignmentRequirements SomeUnalignedAccessSupport(
+        const Vector<MachineType>& unalignedLoadSupportedTypes,
+        const Vector<MachineType>& unalignedStoreSupportedTypes) {
+      return AlignmentRequirements(kSomeSupport, unalignedLoadSupportedTypes,
+                                   unalignedStoreSupportedTypes);
+    }
+
+   private:
+    explicit AlignmentRequirements(
+        AlignmentRequirements::UnalignedAccessSupport unalignedAccessSupport,
+        Vector<MachineType> unalignedLoadSupportedTypes =
+            Vector<MachineType>(NULL, 0),
+        Vector<MachineType> unalignedStoreSupportedTypes =
+            Vector<MachineType>(NULL, 0))
+        : unalignedSupport_(unalignedAccessSupport),
+          unalignedLoadSupportedTypes_(unalignedLoadSupportedTypes),
+          unalignedStoreSupportedTypes_(unalignedStoreSupportedTypes) {}
+
+    bool IsUnalignedSupported(const Vector<MachineType>& supported,
+                              const MachineType& machineType,
+                              uint8_t alignment) const {
+      if (unalignedSupport_ == kFullSupport) {
+        return true;
+      } else if (unalignedSupport_ == kNoSupport) {
+        return false;
+      } else {
+        for (MachineType m : supported) {
+          if (m == machineType) {
+            return true;
+          }
+        }
+        return false;
+      }
+    }
+
+    const AlignmentRequirements::UnalignedAccessSupport unalignedSupport_;
+    const Vector<MachineType> unalignedLoadSupportedTypes_;
+    const Vector<MachineType> unalignedStoreSupportedTypes_;
+  };
+
   explicit MachineOperatorBuilder(
       Zone* zone,
       MachineRepresentation word = MachineType::PointerRepresentation(),
-      Flags supportedOperators = kNoFlags);
+      Flags supportedOperators = kNoFlags,
+      AlignmentRequirements alignmentRequirements =
+          AlignmentRequirements::NoUnalignedAccessSupport());
+
+  const Operator* Comment(const char* msg);
+  const Operator* DebugBreak();
 
   const Operator* Word32And();
   const Operator* Word32Or();
@@ -295,12 +364,42 @@
   const OptionalOperator Float32RoundTiesEven();
   const OptionalOperator Float64RoundTiesEven();
 
+  // Floating point neg.
+  const OptionalOperator Float32Neg();
+  const OptionalOperator Float64Neg();
+
+  // Floating point trigonometric functions (double-precision).
+  const Operator* Float64Atan();
+  const Operator* Float64Atan2();
+  const Operator* Float64Atanh();
+
+  // Floating point trigonometric functions (double-precision).
+  const Operator* Float64Cos();
+  const Operator* Float64Sin();
+  const Operator* Float64Tan();
+
+  // Floating point exponential functions (double-precision).
+  const Operator* Float64Exp();
+
+  // Floating point logarithm (double-precision).
+  const Operator* Float64Log();
+  const Operator* Float64Log1p();
+  const Operator* Float64Log2();
+  const Operator* Float64Log10();
+
+  const Operator* Float64Cbrt();
+  const Operator* Float64Expm1();
+
   // Floating point bit representation.
   const Operator* Float64ExtractLowWord32();
   const Operator* Float64ExtractHighWord32();
   const Operator* Float64InsertLowWord32();
   const Operator* Float64InsertHighWord32();
 
+  // Change signalling NaN to quiet NaN.
+  // Identity for any input that is not signalling NaN.
+  const Operator* Float64SilenceNaN();
+
   // SIMD operators.
   const Operator* CreateFloat32x4();
   const Operator* Float32x4ExtractLane();
@@ -513,6 +612,18 @@
   bool Is64() const { return word() == MachineRepresentation::kWord64; }
   MachineRepresentation word() const { return word_; }
 
+  bool UnalignedLoadSupported(const MachineType& machineType,
+                              uint8_t alignment) {
+    return alignment_requirements_.IsUnalignedLoadSupported(machineType,
+                                                            alignment);
+  }
+
+  bool UnalignedStoreSupported(const MachineType& machineType,
+                               uint8_t alignment) {
+    return alignment_requirements_.IsUnalignedStoreSupported(machineType,
+                                                             alignment);
+  }
+
 // Pseudo operators that translate to 32/64-bit operators depending on the
 // word-size of the target machine assumed by this builder.
 #define PSEUDO_OP_LIST(V) \
@@ -544,9 +655,11 @@
 #undef PSEUDO_OP_LIST
 
  private:
+  Zone* zone_;
   MachineOperatorGlobalCache const& cache_;
   MachineRepresentation const word_;
   Flags const flags_;
+  AlignmentRequirements const alignment_requirements_;
 
   DISALLOW_COPY_AND_ASSIGN(MachineOperatorBuilder);
 };
diff --git a/src/compiler/memory-optimizer.cc b/src/compiler/memory-optimizer.cc
index 59fd899..8c66347 100644
--- a/src/compiler/memory-optimizer.cc
+++ b/src/compiler/memory-optimizer.cc
@@ -87,6 +87,8 @@
       return VisitStoreField(node, state);
     case IrOpcode::kCheckedLoad:
     case IrOpcode::kCheckedStore:
+    case IrOpcode::kDeoptimizeIf:
+    case IrOpcode::kDeoptimizeUnless:
     case IrOpcode::kIfException:
     case IrOpcode::kLoad:
     case IrOpcode::kStore:
diff --git a/src/compiler/mips/code-generator-mips.cc b/src/compiler/mips/code-generator-mips.cc
index c437d5e..5e30e34 100644
--- a/src/compiler/mips/code-generator-mips.cc
+++ b/src/compiler/mips/code-generator-mips.cc
@@ -485,6 +485,29 @@
     __ sync();                                           \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ PrepareCallCFunction(0, 2, kScratchReg);                               \
+    __ MovToFloatParameters(i.InputDoubleRegister(0),                         \
+                            i.InputDoubleRegister(1));                        \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 2);                                                   \
+    /* Move the result in the double result register. */                      \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                          \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ PrepareCallCFunction(0, 1, kScratchReg);                               \
+    __ MovToFloatParameter(i.InputDoubleRegister(0));                         \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 1);                                                   \
+    /* Move the result in the double result register. */                      \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                          \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(sp, fp);
   __ Pop(ra, fp);
@@ -652,6 +675,14 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchDebugBreak:
+      __ stop("kArchDebugBreak");
+      break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -710,6 +741,45 @@
               Operand(offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kMipsAdd:
       __ Addu(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1));
       break;
@@ -938,6 +1008,11 @@
       __ sub_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
                i.InputDoubleRegister(1));
       break;
+    case kMipsSubPreserveNanS:
+      __ SubNanPreservePayloadAndSign_s(i.OutputDoubleRegister(),
+                                        i.InputDoubleRegister(0),
+                                        i.InputDoubleRegister(1));
+      break;
     case kMipsMulS:
       // TODO(plind): add special case: right op is -1.0, see arm port.
       __ mul_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
@@ -1004,6 +1079,11 @@
       __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
                i.InputDoubleRegister(1));
       break;
+    case kMipsSubPreserveNanD:
+      __ SubNanPreservePayloadAndSign_d(i.OutputDoubleRegister(),
+                                        i.InputDoubleRegister(0),
+                                        i.InputDoubleRegister(1));
+      break;
     case kMipsMulD:
       // TODO(plind): add special case: right op is -1.0, see arm port.
       __ mul_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
@@ -1233,6 +1313,20 @@
     case kMipsFloat64InsertHighWord32:
       __ FmoveHigh(i.OutputDoubleRegister(), i.InputRegister(1));
       break;
+    case kMipsFloat64SilenceNaN: {
+      FPURegister value = i.InputDoubleRegister(0);
+      FPURegister result = i.OutputDoubleRegister();
+      Register scratch0 = i.TempRegister(0);
+      Label is_nan, not_nan;
+      __ BranchF(NULL, &is_nan, eq, value, value);
+      __ Branch(&not_nan);
+      __ bind(&is_nan);
+      __ LoadRoot(scratch0, Heap::kNanValueRootIndex);
+      __ ldc1(result, FieldMemOperand(scratch0, HeapNumber::kValueOffset));
+      __ bind(&not_nan);
+      break;
+    }
+
     // ... more basic instructions ...
 
     case kMipsLbu:
@@ -1292,7 +1386,13 @@
     }
     case kMipsStoreToStackSlot: {
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, i.InputInt32(1)));
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ sdc1(i.InputDoubleRegister(0), MemOperand(sp, i.InputInt32(1)));
+        } else {
+          DCHECK_EQ(MachineRepresentation::kFloat32, op->representation());
+          __ swc1(i.InputSingleRegister(0), MemOperand(sp, i.InputInt32(1)));
+        }
       } else {
         __ sw(i.InputRegister(0), MemOperand(sp, i.InputInt32(1)));
       }
@@ -1804,6 +1904,7 @@
       switch (src.type()) {
         case Constant::kInt32:
           if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
               src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
             __ li(dst, Operand(src.ToInt32(), src.rmode()));
           } else {
@@ -1872,7 +1973,13 @@
     DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
     if (destination->IsFPRegister()) {
-      __ ldc1(g.ToDoubleRegister(destination), src);
+      LocationOperand* op = LocationOperand::cast(source);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ ldc1(g.ToDoubleRegister(destination), src);
+      } else {
+        DCHECK_EQ(MachineRepresentation::kFloat32, op->representation());
+        __ lwc1(g.ToDoubleRegister(destination), src);
+      }
     } else {
       FPURegister temp = kScratchDoubleReg;
       __ ldc1(temp, src);
diff --git a/src/compiler/mips/instruction-codes-mips.h b/src/compiler/mips/instruction-codes-mips.h
index 5c36525..766a5b1 100644
--- a/src/compiler/mips/instruction-codes-mips.h
+++ b/src/compiler/mips/instruction-codes-mips.h
@@ -46,6 +46,7 @@
   V(MipsCmpS)                      \
   V(MipsAddS)                      \
   V(MipsSubS)                      \
+  V(MipsSubPreserveNanS)           \
   V(MipsMulS)                      \
   V(MipsDivS)                      \
   V(MipsModS)                      \
@@ -56,6 +57,7 @@
   V(MipsCmpD)                      \
   V(MipsAddD)                      \
   V(MipsSubD)                      \
+  V(MipsSubPreserveNanD)           \
   V(MipsMulD)                      \
   V(MipsDivD)                      \
   V(MipsModD)                      \
@@ -106,6 +108,7 @@
   V(MipsFloat64ExtractHighWord32)  \
   V(MipsFloat64InsertLowWord32)    \
   V(MipsFloat64InsertHighWord32)   \
+  V(MipsFloat64SilenceNaN)         \
   V(MipsFloat64Max)                \
   V(MipsFloat64Min)                \
   V(MipsFloat32Max)                \
diff --git a/src/compiler/mips/instruction-selector-mips.cc b/src/compiler/mips/instruction-selector-mips.cc
index cccb39a..c95613e 100644
--- a/src/compiler/mips/instruction-selector-mips.cc
+++ b/src/compiler/mips/instruction-selector-mips.cc
@@ -755,7 +755,7 @@
 }
 
 void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
-  VisitRRR(this, kMipsSubS, node);
+  VisitRRR(this, kMipsSubPreserveNanS, node);
 }
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
@@ -777,7 +777,7 @@
 }
 
 void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
-  VisitRRR(this, kMipsSubD, node);
+  VisitRRR(this, kMipsSubPreserveNanD, node);
 }
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
@@ -876,7 +876,6 @@
   VisitRR(this, kMipsAbsD, node);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRR(this, kMipsSqrtS, node);
 }
@@ -931,6 +930,24 @@
   VisitRR(this, kMipsFloat64RoundTiesEven, node);
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  MipsOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, f0), g.UseFixed(node->InputAt(0), f12),
+       g.UseFixed(node->InputAt(1), f14))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  MipsOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, f0), g.UseFixed(node->InputAt(0), f12))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1454,6 +1471,14 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  MipsOperandGenerator g(this);
+  Node* left = node->InputAt(0);
+  InstructionOperand temps[] = {g.TempRegister()};
+  Emit(kMipsFloat64SilenceNaN, g.DefineSameAsFirst(node), g.UseRegister(left),
+       arraysize(temps), temps);
+}
+
 void InstructionSelector::VisitAtomicLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
   MipsOperandGenerator g(this);
@@ -1548,6 +1573,20 @@
          MachineOperatorBuilder::kFloat32RoundTiesEven;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  if (IsMipsArchVariant(kMips32r6)) {
+    return MachineOperatorBuilder::AlignmentRequirements::
+        FullUnalignedAccessSupport();
+  } else {
+    DCHECK(IsMipsArchVariant(kLoongson) || IsMipsArchVariant(kMips32r1) ||
+           IsMipsArchVariant(kMips32r2));
+    return MachineOperatorBuilder::AlignmentRequirements::
+        NoUnalignedAccessSupport();
+  }
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc
index a7d2301..9d4201f 100644
--- a/src/compiler/mips64/code-generator-mips64.cc
+++ b/src/compiler/mips64/code-generator-mips64.cc
@@ -496,6 +496,29 @@
     __ sync();                                           \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ PrepareCallCFunction(0, 2, kScratchReg);                               \
+    __ MovToFloatParameters(i.InputDoubleRegister(0),                         \
+                            i.InputDoubleRegister(1));                        \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 2);                                                   \
+    /* Move the result in the double result register. */                      \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                          \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    FrameScope scope(masm(), StackFrame::MANUAL);                             \
+    __ PrepareCallCFunction(0, 1, kScratchReg);                               \
+    __ MovToFloatParameter(i.InputDoubleRegister(0));                         \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     0, 1);                                                   \
+    /* Move the result in the double result register. */                      \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                          \
+  } while (0)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(sp, fp);
   __ Pop(ra, fp);
@@ -661,6 +684,14 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchDebugBreak:
+      __ stop("kArchDebugBreak");
+      break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -719,6 +750,45 @@
                Operand(offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kMips64Add:
       __ Addu(i.OutputRegister(), i.InputRegister(0), i.InputOperand(1));
       break;
@@ -1102,6 +1172,11 @@
       __ sub_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
                i.InputDoubleRegister(1));
       break;
+    case kMips64SubPreserveNanS:
+      __ SubNanPreservePayloadAndSign_s(i.OutputDoubleRegister(),
+                                        i.InputDoubleRegister(0),
+                                        i.InputDoubleRegister(1));
+      break;
     case kMips64MulS:
       // TODO(plind): add special case: right op is -1.0, see arm port.
       __ mul_s(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
@@ -1152,6 +1227,11 @@
       __ sub_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
                i.InputDoubleRegister(1));
       break;
+    case kMips64SubPreserveNanD:
+      __ SubNanPreservePayloadAndSign_d(i.OutputDoubleRegister(),
+                                        i.InputDoubleRegister(0),
+                                        i.InputDoubleRegister(1));
+      break;
     case kMips64MulD:
       // TODO(plind): add special case: right op is -1.0, see arm port.
       __ mul_d(i.OutputDoubleRegister(), i.InputDoubleRegister(0),
@@ -1249,6 +1329,9 @@
       }
       break;
     }
+    case kMips64Float64SilenceNaN:
+      __ FPUCanonicalizeNaN(i.OutputDoubleRegister(), i.InputDoubleRegister(0));
+      break;
     case kMips64Float32Max: {
       // (b < a) ? a : b
       if (kArchVariant == kMips64r6) {
@@ -2079,7 +2162,8 @@
           __ li(dst, isolate()->factory()->NewNumber(src.ToFloat32(), TENURED));
           break;
         case Constant::kInt64:
-          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
             __ li(dst, Operand(src.ToInt64(), src.rmode()));
           } else {
             DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
diff --git a/src/compiler/mips64/instruction-codes-mips64.h b/src/compiler/mips64/instruction-codes-mips64.h
index 6fd321e..67c84f1 100644
--- a/src/compiler/mips64/instruction-codes-mips64.h
+++ b/src/compiler/mips64/instruction-codes-mips64.h
@@ -61,6 +61,7 @@
   V(Mips64CmpS)                     \
   V(Mips64AddS)                     \
   V(Mips64SubS)                     \
+  V(Mips64SubPreserveNanS)          \
   V(Mips64MulS)                     \
   V(Mips64DivS)                     \
   V(Mips64ModS)                     \
@@ -71,6 +72,7 @@
   V(Mips64CmpD)                     \
   V(Mips64AddD)                     \
   V(Mips64SubD)                     \
+  V(Mips64SubPreserveNanD)          \
   V(Mips64MulD)                     \
   V(Mips64DivD)                     \
   V(Mips64ModD)                     \
@@ -133,6 +135,7 @@
   V(Mips64Float64InsertHighWord32)  \
   V(Mips64Float64Max)               \
   V(Mips64Float64Min)               \
+  V(Mips64Float64SilenceNaN)        \
   V(Mips64Float32Max)               \
   V(Mips64Float32Min)               \
   V(Mips64Push)                     \
diff --git a/src/compiler/mips64/instruction-selector-mips64.cc b/src/compiler/mips64/instruction-selector-mips64.cc
index 3516e76..3e1f98e 100644
--- a/src/compiler/mips64/instruction-selector-mips64.cc
+++ b/src/compiler/mips64/instruction-selector-mips64.cc
@@ -1160,7 +1160,7 @@
 }
 
 void InstructionSelector::VisitFloat32SubPreserveNan(Node* node) {
-  VisitRRR(this, kMips64SubS, node);
+  VisitRRR(this, kMips64SubPreserveNanS, node);
 }
 
 void InstructionSelector::VisitFloat64Sub(Node* node) {
@@ -1182,7 +1182,7 @@
 }
 
 void InstructionSelector::VisitFloat64SubPreserveNan(Node* node) {
-  VisitRRR(this, kMips64SubD, node);
+  VisitRRR(this, kMips64SubPreserveNanD, node);
 }
 
 void InstructionSelector::VisitFloat32Mul(Node* node) {
@@ -1282,7 +1282,6 @@
   VisitRR(this, kMips64AbsD, node);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRR(this, kMips64SqrtS, node);
 }
@@ -1337,6 +1336,24 @@
   VisitRR(this, kMips64Float64RoundTiesEven, node);
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  Mips64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, f0), g.UseFixed(node->InputAt(0), f12),
+       g.UseFixed(node->InputAt(1), f14))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  Mips64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, f0), g.UseFixed(node->InputAt(0), f12))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1947,6 +1964,9 @@
   VisitRR(this, kMips64Float64ExtractHighWord32, node);
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  VisitRR(this, kMips64Float64SilenceNaN, node);
+}
 
 void InstructionSelector::VisitFloat64InsertLowWord32(Node* node) {
   Mips64OperandGenerator g(this);
@@ -2057,6 +2077,19 @@
          MachineOperatorBuilder::kFloat32RoundTiesEven;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  if (kArchVariant == kMips64r6) {
+    return MachineOperatorBuilder::AlignmentRequirements::
+        FullUnalignedAccessSupport();
+  } else {
+    DCHECK(kArchVariant == kMips64r2);
+    return MachineOperatorBuilder::AlignmentRequirements::
+        NoUnalignedAccessSupport();
+  }
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/move-optimizer.cc b/src/compiler/move-optimizer.cc
index 477f139..4753d15 100644
--- a/src/compiler/move-optimizer.cc
+++ b/src/compiler/move-optimizer.cc
@@ -24,16 +24,38 @@
   }
 };
 
-struct OperandCompare {
-  bool operator()(const InstructionOperand& a,
-                  const InstructionOperand& b) const {
-    return a.CompareCanonicalized(b);
-  }
-};
-
 typedef ZoneMap<MoveKey, unsigned, MoveKeyCompare> MoveMap;
 typedef ZoneSet<InstructionOperand, CompareOperandModuloType> OperandSet;
 
+bool Blocks(const OperandSet& set, const InstructionOperand& operand) {
+  if (set.find(operand) != set.end()) return true;
+  // Only FP registers on archs with non-simple aliasing need extra checks.
+  if (!operand.IsFPRegister() || kSimpleFPAliasing) return false;
+
+  const LocationOperand& loc = LocationOperand::cast(operand);
+  MachineRepresentation rep = loc.representation();
+  MachineRepresentation other_fp_rep = rep == MachineRepresentation::kFloat64
+                                           ? MachineRepresentation::kFloat32
+                                           : MachineRepresentation::kFloat64;
+  const RegisterConfiguration* config = RegisterConfiguration::Turbofan();
+  if (config->fp_aliasing_kind() != RegisterConfiguration::COMBINE) {
+    // Overlap aliasing case.
+    return set.find(LocationOperand(loc.kind(), loc.location_kind(),
+                                    other_fp_rep, loc.register_code())) !=
+           set.end();
+  }
+  // Combine aliasing case.
+  int alias_base_index = -1;
+  int aliases = config->GetAliases(rep, loc.register_code(), other_fp_rep,
+                                   &alias_base_index);
+  while (aliases--) {
+    int aliased_reg = alias_base_index + aliases;
+    if (set.find(LocationOperand(loc.kind(), loc.location_kind(), other_fp_rep,
+                                 aliased_reg)) != set.end())
+      return true;
+  }
+  return false;
+}
 
 int FindFirstNonEmptySlot(const Instruction* instr) {
   int i = Instruction::FIRST_GAP_POSITION;
@@ -138,8 +160,8 @@
   ParallelMove* from_moves = from->parallel_moves()[0];
   if (from_moves == nullptr || from_moves->empty()) return;
 
-  ZoneSet<InstructionOperand, OperandCompare> dst_cant_be(local_zone());
-  ZoneSet<InstructionOperand, OperandCompare> src_cant_be(local_zone());
+  OperandSet dst_cant_be(local_zone());
+  OperandSet src_cant_be(local_zone());
 
   // If an operand is an input to the instruction, we cannot move assignments
   // where it appears on the LHS.
@@ -172,7 +194,7 @@
   // destination operands are eligible for being moved down.
   for (MoveOperands* move : *from_moves) {
     if (move->IsRedundant()) continue;
-    if (dst_cant_be.find(move->destination()) == dst_cant_be.end()) {
+    if (!Blocks(dst_cant_be, move->destination())) {
       MoveKey key = {move->source(), move->destination()};
       move_candidates.insert(key);
     }
@@ -187,7 +209,7 @@
       auto current = iter;
       ++iter;
       InstructionOperand src = current->source;
-      if (src_cant_be.find(src) != src_cant_be.end()) {
+      if (Blocks(src_cant_be, src)) {
         src_cant_be.insert(current->destination);
         move_candidates.erase(current);
         changed = true;
diff --git a/src/compiler/node-cache.cc b/src/compiler/node-cache.cc
index 79c342b..061a3ae 100644
--- a/src/compiler/node-cache.cc
+++ b/src/compiler/node-cache.cc
@@ -115,6 +115,9 @@
 template class NodeCache<int32_t>;
 template class NodeCache<int64_t>;
 
+template class NodeCache<RelocInt32Key>;
+template class NodeCache<RelocInt64Key>;
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/node-cache.h b/src/compiler/node-cache.h
index a8f9071..7063a3b 100644
--- a/src/compiler/node-cache.h
+++ b/src/compiler/node-cache.h
@@ -63,6 +63,14 @@
 // Various default cache types.
 typedef NodeCache<int32_t> Int32NodeCache;
 typedef NodeCache<int64_t> Int64NodeCache;
+
+// All we want is the numeric value of the RelocInfo::Mode enum. We typedef
+// below to avoid pulling in assembler.h
+typedef char RelocInfoMode;
+typedef std::pair<int32_t, RelocInfoMode> RelocInt32Key;
+typedef std::pair<int64_t, RelocInfoMode> RelocInt64Key;
+typedef NodeCache<RelocInt32Key> RelocInt32NodeCache;
+typedef NodeCache<RelocInt64Key> RelocInt64NodeCache;
 #if V8_HOST_ARCH_32_BIT
 typedef Int32NodeCache IntPtrNodeCache;
 #else
diff --git a/src/compiler/node-marker.h b/src/compiler/node-marker.h
index 5ef2063..84666d5 100644
--- a/src/compiler/node-marker.h
+++ b/src/compiler/node-marker.h
@@ -42,9 +42,22 @@
   DISALLOW_COPY_AND_ASSIGN(NodeMarkerBase);
 };
 
-
-// A NodeMarker uses monotonically increasing marks to assign local "states"
-// to nodes. Only one NodeMarker per graph is valid at a given time.
+// A NodeMarker assigns a local "state" to every node of a graph in constant
+// memory. Only one NodeMarker per graph is valid at a given time, that is,
+// after you create a NodeMarker you should no longer use NodeMarkers that
+// were created earlier. Internally, the local state is stored in the Node
+// structure.
+//
+// When you initialize a NodeMarker, all the local states are conceptually
+// set to State(0) in constant time.
+//
+// In its current implementation, in debug mode NodeMarker will try to
+// (efficiently) detect invalid use of an older NodeMarker. Namely, if you get
+// or set a node with a NodeMarker, and then get or set that node
+// with an older NodeMarker you will get a crash.
+//
+// GraphReducer uses a NodeMarker, so individual Reducers cannot use a
+// NodeMarker.
 template <typename State>
 class NodeMarker : public NodeMarkerBase {
  public:
diff --git a/src/compiler/node-properties.cc b/src/compiler/node-properties.cc
index 2cf899b..dc33d60 100644
--- a/src/compiler/node-properties.cc
+++ b/src/compiler/node-properties.cc
@@ -180,13 +180,6 @@
 
 
 // static
-void NodeProperties::RemoveFrameStateInput(Node* node, int index) {
-  DCHECK_LT(index, OperatorProperties::GetFrameStateInputCount(node->op()));
-  node->RemoveInput(FirstFrameStateIndex(node) + index);
-}
-
-
-// static
 void NodeProperties::RemoveNonValueInputs(Node* node) {
   node->TrimInputCount(node->op()->ValueInputCount());
 }
@@ -222,7 +215,8 @@
         DCHECK_NOT_NULL(exception);
         edge.UpdateTo(exception);
       } else {
-        UNREACHABLE();
+        DCHECK_NOT_NULL(success);
+        edge.UpdateTo(success);
       }
     } else if (IsEffectEdge(edge)) {
       DCHECK_NOT_NULL(effect);
@@ -243,6 +237,18 @@
 
 
 // static
+Node* NodeProperties::FindFrameStateBefore(Node* node) {
+  Node* effect = NodeProperties::GetEffectInput(node);
+  while (effect->opcode() != IrOpcode::kCheckpoint) {
+    if (effect->opcode() == IrOpcode::kDead) return effect;
+    DCHECK_EQ(1, effect->op()->EffectInputCount());
+    effect = NodeProperties::GetEffectInput(effect);
+  }
+  Node* frame_state = GetFrameStateInput(effect, 0);
+  return frame_state;
+}
+
+// static
 Node* NodeProperties::FindProjection(Node* node, size_t projection_index) {
   for (auto use : node->uses()) {
     if (use->opcode() == IrOpcode::kProjection &&
diff --git a/src/compiler/node-properties.h b/src/compiler/node-properties.h
index 78ffd1d..fbc06fc 100644
--- a/src/compiler/node-properties.h
+++ b/src/compiler/node-properties.h
@@ -84,7 +84,6 @@
   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);
   static void RemoveNonValueInputs(Node* node);
   static void RemoveValueInputs(Node* node);
 
@@ -109,6 +108,11 @@
   // ---------------------------------------------------------------------------
   // Miscellaneous utilities.
 
+  // Find the last frame state that is effect-wise before the given node. This
+  // assumes a linear effect-chain up to a {CheckPoint} node in the graph.
+  static Node* FindFrameStateBefore(Node* node);
+
+  // Collect the output-value projection for the given output index.
   static Node* FindProjection(Node* node, size_t projection_index);
 
   // Collect the branch-related projections from a node, such as IfTrue,
diff --git a/src/compiler/opcodes.h b/src/compiler/opcodes.h
index ce5087c..c823afb 100644
--- a/src/compiler/opcodes.h
+++ b/src/compiler/opcodes.h
@@ -47,7 +47,7 @@
   V(Select)              \
   V(Phi)                 \
   V(EffectPhi)           \
-  V(CheckPoint)          \
+  V(Checkpoint)          \
   V(BeginRegion)         \
   V(FinishRegion)        \
   V(FrameState)          \
@@ -140,17 +140,20 @@
   V(JSCreateModuleContext)    \
   V(JSCreateScriptContext)
 
-#define JS_OTHER_OP_LIST(V) \
-  V(JSCallConstruct)        \
-  V(JSCallFunction)         \
-  V(JSCallRuntime)          \
-  V(JSConvertReceiver)      \
-  V(JSForInDone)            \
-  V(JSForInNext)            \
-  V(JSForInPrepare)         \
-  V(JSForInStep)            \
-  V(JSLoadMessage)          \
-  V(JSStoreMessage)         \
+#define JS_OTHER_OP_LIST(V)         \
+  V(JSCallConstruct)                \
+  V(JSCallFunction)                 \
+  V(JSCallRuntime)                  \
+  V(JSConvertReceiver)              \
+  V(JSForInDone)                    \
+  V(JSForInNext)                    \
+  V(JSForInPrepare)                 \
+  V(JSForInStep)                    \
+  V(JSLoadMessage)                  \
+  V(JSStoreMessage)                 \
+  V(JSGeneratorStore)               \
+  V(JSGeneratorRestoreContinuation) \
+  V(JSGeneratorRestoreRegister)     \
   V(JSStackCheck)
 
 #define JS_OP_LIST(V)     \
@@ -170,55 +173,95 @@
   V(StringLessThan)                      \
   V(StringLessThanOrEqual)
 
-#define SIMPLIFIED_OP_LIST(V)      \
-  SIMPLIFIED_COMPARE_BINOP_LIST(V) \
-  V(BooleanNot)                    \
-  V(BooleanToNumber)               \
-  V(NumberAdd)                     \
-  V(NumberSubtract)                \
-  V(NumberMultiply)                \
-  V(NumberDivide)                  \
-  V(NumberModulus)                 \
-  V(NumberBitwiseOr)               \
-  V(NumberBitwiseXor)              \
-  V(NumberBitwiseAnd)              \
-  V(NumberShiftLeft)               \
-  V(NumberShiftRight)              \
-  V(NumberShiftRightLogical)       \
-  V(NumberImul)                    \
-  V(NumberClz32)                   \
-  V(NumberCeil)                    \
-  V(NumberFloor)                   \
-  V(NumberRound)                   \
-  V(NumberTrunc)                   \
-  V(NumberToInt32)                 \
-  V(NumberToUint32)                \
-  V(NumberIsHoleNaN)               \
-  V(StringToNumber)                \
-  V(ChangeTaggedSignedToInt32)     \
-  V(ChangeTaggedToInt32)           \
-  V(ChangeTaggedToUint32)          \
-  V(ChangeTaggedToFloat64)         \
-  V(ChangeInt31ToTaggedSigned)     \
-  V(ChangeInt32ToTagged)           \
-  V(ChangeUint32ToTagged)          \
-  V(ChangeFloat64ToTagged)         \
-  V(ChangeTaggedToBit)             \
-  V(ChangeBitToTagged)             \
-  V(TruncateTaggedToWord32)        \
-  V(Allocate)                      \
-  V(LoadField)                     \
-  V(LoadBuffer)                    \
-  V(LoadElement)                   \
-  V(StoreField)                    \
-  V(StoreBuffer)                   \
-  V(StoreElement)                  \
-  V(ObjectIsCallable)              \
-  V(ObjectIsNumber)                \
-  V(ObjectIsReceiver)              \
-  V(ObjectIsSmi)                   \
-  V(ObjectIsString)                \
-  V(ObjectIsUndetectable)          \
+#define SIMPLIFIED_OP_LIST(V)         \
+  SIMPLIFIED_COMPARE_BINOP_LIST(V)    \
+  V(PlainPrimitiveToNumber)           \
+  V(PlainPrimitiveToWord32)           \
+  V(PlainPrimitiveToFloat64)          \
+  V(BooleanNot)                       \
+  V(BooleanToNumber)                  \
+  V(SpeculativeNumberAdd)             \
+  V(SpeculativeNumberSubtract)        \
+  V(SpeculativeNumberMultiply)        \
+  V(SpeculativeNumberDivide)          \
+  V(SpeculativeNumberModulus)         \
+  V(SpeculativeNumberEqual)           \
+  V(SpeculativeNumberLessThan)        \
+  V(SpeculativeNumberLessThanOrEqual) \
+  V(NumberAdd)                        \
+  V(NumberSubtract)                   \
+  V(NumberMultiply)                   \
+  V(NumberDivide)                     \
+  V(NumberModulus)                    \
+  V(NumberBitwiseOr)                  \
+  V(NumberBitwiseXor)                 \
+  V(NumberBitwiseAnd)                 \
+  V(NumberShiftLeft)                  \
+  V(NumberShiftRight)                 \
+  V(NumberShiftRightLogical)          \
+  V(NumberImul)                       \
+  V(NumberAbs)                        \
+  V(NumberClz32)                      \
+  V(NumberCeil)                       \
+  V(NumberCos)                        \
+  V(NumberFloor)                      \
+  V(NumberFround)                     \
+  V(NumberAtan)                       \
+  V(NumberAtan2)                      \
+  V(NumberAtanh)                      \
+  V(NumberExp)                        \
+  V(NumberExpm1)                      \
+  V(NumberLog)                        \
+  V(NumberLog1p)                      \
+  V(NumberLog2)                       \
+  V(NumberLog10)                      \
+  V(NumberCbrt)                       \
+  V(NumberRound)                      \
+  V(NumberSin)                        \
+  V(NumberSqrt)                       \
+  V(NumberTan)                        \
+  V(NumberTrunc)                      \
+  V(NumberToInt32)                    \
+  V(NumberToUint32)                   \
+  V(NumberSilenceNaN)                 \
+  V(StringFromCharCode)               \
+  V(StringToNumber)                   \
+  V(ChangeTaggedSignedToInt32)        \
+  V(ChangeTaggedToInt32)              \
+  V(ChangeTaggedToUint32)             \
+  V(ChangeTaggedToFloat64)            \
+  V(ChangeInt31ToTaggedSigned)        \
+  V(ChangeInt32ToTagged)              \
+  V(ChangeUint32ToTagged)             \
+  V(ChangeFloat64ToTagged)            \
+  V(ChangeTaggedToBit)                \
+  V(ChangeBitToTagged)                \
+  V(CheckBounds)                      \
+  V(CheckTaggedPointer)               \
+  V(CheckTaggedSigned)                \
+  V(CheckedInt32Add)                  \
+  V(CheckedInt32Sub)                  \
+  V(CheckedUint32ToInt32)             \
+  V(CheckedFloat64ToInt32)            \
+  V(CheckedTaggedToInt32)             \
+  V(CheckedTaggedToFloat64)           \
+  V(CheckFloat64Hole)                 \
+  V(CheckTaggedHole)                  \
+  V(TruncateTaggedToWord32)           \
+  V(TruncateTaggedToFloat64)          \
+  V(Allocate)                         \
+  V(LoadField)                        \
+  V(LoadBuffer)                       \
+  V(LoadElement)                      \
+  V(StoreField)                       \
+  V(StoreBuffer)                      \
+  V(StoreElement)                     \
+  V(ObjectIsCallable)                 \
+  V(ObjectIsNumber)                   \
+  V(ObjectIsReceiver)                 \
+  V(ObjectIsSmi)                      \
+  V(ObjectIsString)                   \
+  V(ObjectIsUndetectable)             \
   V(TypeGuard)
 
 // Opcodes for Machine-level operators.
@@ -242,6 +285,8 @@
 
 #define MACHINE_OP_LIST(V)      \
   MACHINE_COMPARE_BINOP_LIST(V) \
+  V(DebugBreak)                 \
+  V(Comment)                    \
   V(Load)                       \
   V(Store)                      \
   V(StackSlot)                  \
@@ -292,6 +337,7 @@
   V(ChangeFloat32ToFloat64)     \
   V(ChangeFloat64ToInt32)       \
   V(ChangeFloat64ToUint32)      \
+  V(Float64SilenceNaN)          \
   V(TruncateFloat64ToUint32)    \
   V(TruncateFloat32ToInt32)     \
   V(TruncateFloat32ToUint32)    \
@@ -319,6 +365,7 @@
   V(Float32Add)                 \
   V(Float32Sub)                 \
   V(Float32SubPreserveNan)      \
+  V(Float32Neg)                 \
   V(Float32Mul)                 \
   V(Float32Div)                 \
   V(Float32Max)                 \
@@ -329,13 +376,27 @@
   V(Float64Add)                 \
   V(Float64Sub)                 \
   V(Float64SubPreserveNan)      \
+  V(Float64Neg)                 \
   V(Float64Mul)                 \
   V(Float64Div)                 \
   V(Float64Mod)                 \
   V(Float64Max)                 \
   V(Float64Min)                 \
   V(Float64Abs)                 \
+  V(Float64Atan)                \
+  V(Float64Atan2)               \
+  V(Float64Atanh)               \
+  V(Float64Cbrt)                \
+  V(Float64Cos)                 \
+  V(Float64Exp)                 \
+  V(Float64Expm1)               \
+  V(Float64Log)                 \
+  V(Float64Log1p)               \
+  V(Float64Log10)               \
+  V(Float64Log2)                \
+  V(Float64Sin)                 \
   V(Float64Sqrt)                \
+  V(Float64Tan)                 \
   V(Float64RoundDown)           \
   V(Float32RoundUp)             \
   V(Float64RoundUp)             \
@@ -509,19 +570,7 @@
   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)
+  V(Bool8x16NotEqual)
 
 #define MACHINE_SIMD_RETURN_NUM_OP_LIST(V) \
   V(Float32x4ExtractLane)                  \
@@ -540,10 +589,25 @@
   V(Bool8x16AnyTrue)                        \
   V(Bool8x16AllTrue)
 
+#define MACHINE_SIMD_GENERIC_OP_LIST(V) \
+  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_OP_LIST(V)       \
   MACHINE_SIMD_RETURN_SIMD_OP_LIST(V) \
   MACHINE_SIMD_RETURN_NUM_OP_LIST(V)  \
-  MACHINE_SIMD_RETURN_BOOL_OP_LIST(V)
+  MACHINE_SIMD_RETURN_BOOL_OP_LIST(V) \
+  MACHINE_SIMD_GENERIC_OP_LIST(V)
 
 #define VALUE_OP_LIST(V)  \
   COMMON_OP_LIST(V)       \
diff --git a/src/compiler/operation-typer.cc b/src/compiler/operation-typer.cc
new file mode 100644
index 0000000..b2860e0
--- /dev/null
+++ b/src/compiler/operation-typer.cc
@@ -0,0 +1,424 @@
+// 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/operation-typer.h"
+
+#include "src/factory.h"
+#include "src/isolate.h"
+#include "src/type-cache.h"
+#include "src/types.h"
+
+#include "src/objects-inl.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+OperationTyper::OperationTyper(Isolate* isolate, Zone* zone)
+    : zone_(zone), cache_(TypeCache::Get()) {
+  Factory* factory = isolate->factory();
+  singleton_false_ = Type::Constant(factory->false_value(), zone);
+  singleton_true_ = Type::Constant(factory->true_value(), zone);
+  singleton_the_hole_ = Type::Constant(factory->the_hole_value(), zone);
+}
+
+Type* OperationTyper::Merge(Type* left, Type* right) {
+  return Type::Union(left, right, zone());
+}
+
+Type* OperationTyper::WeakenRange(Type* previous_range, Type* current_range) {
+  static const double kWeakenMinLimits[] = {0.0,
+                                            -1073741824.0,
+                                            -2147483648.0,
+                                            -4294967296.0,
+                                            -8589934592.0,
+                                            -17179869184.0,
+                                            -34359738368.0,
+                                            -68719476736.0,
+                                            -137438953472.0,
+                                            -274877906944.0,
+                                            -549755813888.0,
+                                            -1099511627776.0,
+                                            -2199023255552.0,
+                                            -4398046511104.0,
+                                            -8796093022208.0,
+                                            -17592186044416.0,
+                                            -35184372088832.0,
+                                            -70368744177664.0,
+                                            -140737488355328.0,
+                                            -281474976710656.0,
+                                            -562949953421312.0};
+  static const double kWeakenMaxLimits[] = {0.0,
+                                            1073741823.0,
+                                            2147483647.0,
+                                            4294967295.0,
+                                            8589934591.0,
+                                            17179869183.0,
+                                            34359738367.0,
+                                            68719476735.0,
+                                            137438953471.0,
+                                            274877906943.0,
+                                            549755813887.0,
+                                            1099511627775.0,
+                                            2199023255551.0,
+                                            4398046511103.0,
+                                            8796093022207.0,
+                                            17592186044415.0,
+                                            35184372088831.0,
+                                            70368744177663.0,
+                                            140737488355327.0,
+                                            281474976710655.0,
+                                            562949953421311.0};
+  STATIC_ASSERT(arraysize(kWeakenMinLimits) == arraysize(kWeakenMaxLimits));
+
+  double current_min = current_range->Min();
+  double new_min = current_min;
+  // Find the closest lower entry in the list of allowed
+  // minima (or negative infinity if there is no such entry).
+  if (current_min != previous_range->Min()) {
+    new_min = -V8_INFINITY;
+    for (double const min : kWeakenMinLimits) {
+      if (min <= current_min) {
+        new_min = min;
+        break;
+      }
+    }
+  }
+
+  double current_max = current_range->Max();
+  double new_max = current_max;
+  // Find the closest greater entry in the list of allowed
+  // maxima (or infinity if there is no such entry).
+  if (current_max != previous_range->Max()) {
+    new_max = V8_INFINITY;
+    for (double const max : kWeakenMaxLimits) {
+      if (max >= current_max) {
+        new_max = max;
+        break;
+      }
+    }
+  }
+
+  return Type::Range(new_min, new_max, zone());
+}
+
+Type* OperationTyper::Rangify(Type* type) {
+  if (type->IsRange()) return type;  // Shortcut.
+  if (!type->Is(cache_.kInteger)) {
+    return type;  // Give up on non-integer types.
+  }
+  double min = type->Min();
+  double max = type->Max();
+  // Handle the degenerate case of empty bitset types (such as
+  // OtherUnsigned31 and OtherSigned32 on 64-bit architectures).
+  if (std::isnan(min)) {
+    DCHECK(std::isnan(max));
+    return type;
+  }
+  return Type::Range(min, max, zone());
+}
+
+namespace {
+
+// Returns the array's least element, ignoring NaN.
+// There must be at least one non-NaN element.
+// Any -0 is converted to 0.
+double array_min(double a[], size_t n) {
+  DCHECK(n != 0);
+  double x = +V8_INFINITY;
+  for (size_t i = 0; i < n; ++i) {
+    if (!std::isnan(a[i])) {
+      x = std::min(a[i], x);
+    }
+  }
+  DCHECK(!std::isnan(x));
+  return x == 0 ? 0 : x;  // -0 -> 0
+}
+
+// Returns the array's greatest element, ignoring NaN.
+// There must be at least one non-NaN element.
+// Any -0 is converted to 0.
+double array_max(double a[], size_t n) {
+  DCHECK(n != 0);
+  double x = -V8_INFINITY;
+  for (size_t i = 0; i < n; ++i) {
+    if (!std::isnan(a[i])) {
+      x = std::max(a[i], x);
+    }
+  }
+  DCHECK(!std::isnan(x));
+  return x == 0 ? 0 : x;  // -0 -> 0
+}
+
+}  // namespace
+
+Type* OperationTyper::AddRanger(double lhs_min, double lhs_max, double rhs_min,
+                                double rhs_max) {
+  double results[4];
+  results[0] = lhs_min + rhs_min;
+  results[1] = lhs_min + rhs_max;
+  results[2] = lhs_max + rhs_min;
+  results[3] = lhs_max + rhs_max;
+  // Since none of the inputs can be -0, the result cannot be -0 either.
+  // However, it can be nan (the sum of two infinities of opposite sign).
+  // On the other hand, if none of the "results" above is nan, then the actual
+  // result cannot be nan either.
+  int nans = 0;
+  for (int i = 0; i < 4; ++i) {
+    if (std::isnan(results[i])) ++nans;
+  }
+  if (nans == 4) return Type::NaN();  // [-inf..-inf] + [inf..inf] or vice versa
+  Type* range =
+      Type::Range(array_min(results, 4), array_max(results, 4), zone());
+  return nans == 0 ? range : Type::Union(range, Type::NaN(), zone());
+  // Examples:
+  //   [-inf, -inf] + [+inf, +inf] = NaN
+  //   [-inf, -inf] + [n, +inf] = [-inf, -inf] \/ NaN
+  //   [-inf, +inf] + [n, +inf] = [-inf, +inf] \/ NaN
+  //   [-inf, m] + [n, +inf] = [-inf, +inf] \/ NaN
+}
+
+Type* OperationTyper::SubtractRanger(RangeType* lhs, RangeType* rhs) {
+  double results[4];
+  results[0] = lhs->Min() - rhs->Min();
+  results[1] = lhs->Min() - rhs->Max();
+  results[2] = lhs->Max() - rhs->Min();
+  results[3] = lhs->Max() - rhs->Max();
+  // Since none of the inputs can be -0, the result cannot be -0.
+  // However, it can be nan (the subtraction of two infinities of same sign).
+  // On the other hand, if none of the "results" above is nan, then the actual
+  // result cannot be nan either.
+  int nans = 0;
+  for (int i = 0; i < 4; ++i) {
+    if (std::isnan(results[i])) ++nans;
+  }
+  if (nans == 4) return Type::NaN();  // [inf..inf] - [inf..inf] (all same sign)
+  Type* range =
+      Type::Range(array_min(results, 4), array_max(results, 4), zone());
+  return nans == 0 ? range : Type::Union(range, Type::NaN(), zone());
+  // Examples:
+  //   [-inf, +inf] - [-inf, +inf] = [-inf, +inf] \/ NaN
+  //   [-inf, -inf] - [-inf, -inf] = NaN
+  //   [-inf, -inf] - [n, +inf] = [-inf, -inf] \/ NaN
+  //   [m, +inf] - [-inf, n] = [-inf, +inf] \/ NaN
+}
+
+Type* OperationTyper::ModulusRanger(RangeType* lhs, RangeType* rhs) {
+  double lmin = lhs->Min();
+  double lmax = lhs->Max();
+  double rmin = rhs->Min();
+  double rmax = rhs->Max();
+
+  double labs = std::max(std::abs(lmin), std::abs(lmax));
+  double rabs = std::max(std::abs(rmin), std::abs(rmax)) - 1;
+  double abs = std::min(labs, rabs);
+  bool maybe_minus_zero = false;
+  double omin = 0;
+  double omax = 0;
+  if (lmin >= 0) {  // {lhs} positive.
+    omin = 0;
+    omax = abs;
+  } else if (lmax <= 0) {  // {lhs} negative.
+    omin = 0 - abs;
+    omax = 0;
+    maybe_minus_zero = true;
+  } else {
+    omin = 0 - abs;
+    omax = abs;
+    maybe_minus_zero = true;
+  }
+
+  Type* result = Type::Range(omin, omax, zone());
+  if (maybe_minus_zero) result = Type::Union(result, Type::MinusZero(), zone());
+  return result;
+}
+
+Type* OperationTyper::MultiplyRanger(Type* lhs, Type* rhs) {
+  double results[4];
+  double lmin = lhs->AsRange()->Min();
+  double lmax = lhs->AsRange()->Max();
+  double rmin = rhs->AsRange()->Min();
+  double rmax = rhs->AsRange()->Max();
+  results[0] = lmin * rmin;
+  results[1] = lmin * rmax;
+  results[2] = lmax * rmin;
+  results[3] = lmax * rmax;
+  // If the result may be nan, we give up on calculating a precise type,
+  // because
+  // the discontinuity makes it too complicated.  Note that even if none of
+  // the
+  // "results" above is nan, the actual result may still be, so we have to do
+  // a
+  // different check:
+  bool maybe_nan = (lhs->Maybe(cache_.kSingletonZero) &&
+                    (rmin == -V8_INFINITY || rmax == +V8_INFINITY)) ||
+                   (rhs->Maybe(cache_.kSingletonZero) &&
+                    (lmin == -V8_INFINITY || lmax == +V8_INFINITY));
+  if (maybe_nan) return cache_.kIntegerOrMinusZeroOrNaN;  // Giving up.
+  bool maybe_minuszero = (lhs->Maybe(cache_.kSingletonZero) && rmin < 0) ||
+                         (rhs->Maybe(cache_.kSingletonZero) && lmin < 0);
+  Type* range =
+      Type::Range(array_min(results, 4), array_max(results, 4), zone());
+  return maybe_minuszero ? Type::Union(range, Type::MinusZero(), zone())
+                         : range;
+}
+
+Type* OperationTyper::ToNumber(Type* type) {
+  if (type->Is(Type::Number())) return type;
+  if (type->Is(Type::NullOrUndefined())) {
+    if (type->Is(Type::Null())) return cache_.kSingletonZero;
+    if (type->Is(Type::Undefined())) return Type::NaN();
+    return Type::Union(Type::NaN(), cache_.kSingletonZero, zone());
+  }
+  if (type->Is(Type::NumberOrUndefined())) {
+    return Type::Union(Type::Intersect(type, Type::Number(), zone()),
+                       Type::NaN(), zone());
+  }
+  if (type->Is(singleton_false_)) return cache_.kSingletonZero;
+  if (type->Is(singleton_true_)) return cache_.kSingletonOne;
+  if (type->Is(Type::Boolean())) return cache_.kZeroOrOne;
+  if (type->Is(Type::BooleanOrNumber())) {
+    return Type::Union(Type::Intersect(type, Type::Number(), zone()),
+                       cache_.kZeroOrOne, zone());
+  }
+  return Type::Number();
+}
+
+Type* OperationTyper::NumericAdd(Type* lhs, Type* rhs) {
+  DCHECK(lhs->Is(Type::Number()));
+  DCHECK(rhs->Is(Type::Number()));
+
+  // We can give more precise types for integers.
+  if (!lhs->Is(cache_.kIntegerOrMinusZeroOrNaN) ||
+      !rhs->Is(cache_.kIntegerOrMinusZeroOrNaN)) {
+    return Type::Number();
+  }
+  Type* int_lhs = Type::Intersect(lhs, cache_.kInteger, zone());
+  Type* int_rhs = Type::Intersect(rhs, cache_.kInteger, zone());
+  Type* result =
+      AddRanger(int_lhs->Min(), int_lhs->Max(), int_rhs->Min(), int_rhs->Max());
+  if (lhs->Maybe(Type::NaN()) || rhs->Maybe(Type::NaN())) {
+    result = Type::Union(result, Type::NaN(), zone());
+  }
+  if (lhs->Maybe(Type::MinusZero()) && rhs->Maybe(Type::MinusZero())) {
+    result = Type::Union(result, Type::MinusZero(), zone());
+  }
+  return result;
+}
+
+Type* OperationTyper::NumericSubtract(Type* lhs, Type* rhs) {
+  DCHECK(lhs->Is(Type::Number()));
+  DCHECK(rhs->Is(Type::Number()));
+
+  lhs = Rangify(lhs);
+  rhs = Rangify(rhs);
+  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
+  if (lhs->IsRange() && rhs->IsRange()) {
+    return SubtractRanger(lhs->AsRange(), rhs->AsRange());
+  }
+  // TODO(neis): Deal with numeric bitsets here and elsewhere.
+  return Type::Number();
+}
+
+Type* OperationTyper::NumericMultiply(Type* lhs, Type* rhs) {
+  DCHECK(lhs->Is(Type::Number()));
+  DCHECK(rhs->Is(Type::Number()));
+  lhs = Rangify(lhs);
+  rhs = Rangify(rhs);
+  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
+  if (lhs->IsRange() && rhs->IsRange()) {
+    return MultiplyRanger(lhs, rhs);
+  }
+  return Type::Number();
+}
+
+Type* OperationTyper::NumericDivide(Type* lhs, Type* rhs) {
+  DCHECK(lhs->Is(Type::Number()));
+  DCHECK(rhs->Is(Type::Number()));
+
+  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
+  // Division is tricky, so all we do is try ruling out nan.
+  bool maybe_nan =
+      lhs->Maybe(Type::NaN()) || rhs->Maybe(cache_.kZeroish) ||
+      ((lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) &&
+       (rhs->Min() == -V8_INFINITY || rhs->Max() == +V8_INFINITY));
+  return maybe_nan ? Type::Number() : Type::OrderedNumber();
+}
+
+Type* OperationTyper::NumericModulus(Type* lhs, Type* rhs) {
+  DCHECK(lhs->Is(Type::Number()));
+  DCHECK(rhs->Is(Type::Number()));
+  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
+
+  if (lhs->Maybe(Type::NaN()) || rhs->Maybe(cache_.kZeroish) ||
+      lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) {
+    // Result maybe NaN.
+    return Type::Number();
+  }
+
+  lhs = Rangify(lhs);
+  rhs = Rangify(rhs);
+  if (lhs->IsRange() && rhs->IsRange()) {
+    return ModulusRanger(lhs->AsRange(), rhs->AsRange());
+  }
+  return Type::OrderedNumber();
+}
+
+Type* OperationTyper::ToPrimitive(Type* type) {
+  if (type->Is(Type::Primitive()) && !type->Maybe(Type::Receiver())) {
+    return type;
+  }
+  return Type::Primitive();
+}
+
+Type* OperationTyper::Invert(Type* type) {
+  DCHECK(type->Is(Type::Boolean()));
+  DCHECK(type->IsInhabited());
+  if (type->Is(singleton_false())) return singleton_true();
+  if (type->Is(singleton_true())) return singleton_false();
+  return type;
+}
+
+OperationTyper::ComparisonOutcome OperationTyper::Invert(
+    ComparisonOutcome outcome) {
+  ComparisonOutcome result(0);
+  if ((outcome & kComparisonUndefined) != 0) result |= kComparisonUndefined;
+  if ((outcome & kComparisonTrue) != 0) result |= kComparisonFalse;
+  if ((outcome & kComparisonFalse) != 0) result |= kComparisonTrue;
+  return result;
+}
+
+Type* OperationTyper::FalsifyUndefined(ComparisonOutcome outcome) {
+  if ((outcome & kComparisonFalse) != 0 ||
+      (outcome & kComparisonUndefined) != 0) {
+    return (outcome & kComparisonTrue) != 0 ? Type::Boolean()
+                                            : singleton_false();
+  }
+  // Type should be non empty, so we know it should be true.
+  DCHECK((outcome & kComparisonTrue) != 0);
+  return singleton_true();
+}
+
+Type* OperationTyper::TypeJSAdd(Type* lhs, Type* rhs) {
+  lhs = ToPrimitive(lhs);
+  rhs = ToPrimitive(rhs);
+  if (lhs->Maybe(Type::String()) || rhs->Maybe(Type::String())) {
+    if (lhs->Is(Type::String()) || rhs->Is(Type::String())) {
+      return Type::String();
+    } else {
+      return Type::NumberOrString();
+    }
+  }
+  lhs = ToNumber(lhs);
+  rhs = ToNumber(rhs);
+  return NumericAdd(lhs, rhs);
+}
+
+Type* OperationTyper::TypeJSSubtract(Type* lhs, Type* rhs) {
+  return NumericSubtract(ToNumber(lhs), ToNumber(rhs));
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/operation-typer.h b/src/compiler/operation-typer.h
new file mode 100644
index 0000000..aa669ac
--- /dev/null
+++ b/src/compiler/operation-typer.h
@@ -0,0 +1,84 @@
+// 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_OPERATION_TYPER_H_
+#define V8_COMPILER_OPERATION_TYPER_H_
+
+#include "src/base/flags.h"
+#include "src/compiler/opcodes.h"
+
+namespace v8 {
+namespace internal {
+
+class Isolate;
+class RangeType;
+class Type;
+class TypeCache;
+class Zone;
+
+namespace compiler {
+
+class OperationTyper {
+ public:
+  OperationTyper(Isolate* isolate, Zone* zone);
+
+  // Typing Phi.
+  Type* Merge(Type* left, Type* right);
+
+  Type* ToPrimitive(Type* type);
+
+  // Helpers for number operation typing.
+  Type* ToNumber(Type* type);
+  Type* WeakenRange(Type* current_range, Type* previous_range);
+
+  Type* NumericAdd(Type* lhs, Type* rhs);
+  Type* NumericSubtract(Type* lhs, Type* rhs);
+  Type* NumericMultiply(Type* lhs, Type* rhs);
+  Type* NumericDivide(Type* lhs, Type* rhs);
+  Type* NumericModulus(Type* lhs, Type* rhs);
+
+  enum ComparisonOutcomeFlags {
+    kComparisonTrue = 1,
+    kComparisonFalse = 2,
+    kComparisonUndefined = 4
+  };
+
+// Javascript binop typers.
+#define DECLARE_CASE(x) Type* Type##x(Type* lhs, Type* rhs);
+  JS_SIMPLE_BINOP_LIST(DECLARE_CASE)
+#undef DECLARE_CASE
+
+  Type* singleton_false() { return singleton_false_; }
+  Type* singleton_true() { return singleton_true_; }
+  Type* singleton_the_hole() { return singleton_the_hole_; }
+
+ private:
+  typedef base::Flags<ComparisonOutcomeFlags> ComparisonOutcome;
+
+  ComparisonOutcome Invert(ComparisonOutcome);
+  Type* Invert(Type*);
+  Type* FalsifyUndefined(ComparisonOutcome);
+
+  Type* Rangify(Type*);
+  Type* AddRanger(double lhs_min, double lhs_max, double rhs_min,
+                  double rhs_max);
+  Type* SubtractRanger(RangeType* lhs, RangeType* rhs);
+  Type* MultiplyRanger(Type* lhs, Type* rhs);
+  Type* ModulusRanger(RangeType* lhs, RangeType* rhs);
+
+  Zone* zone() { return zone_; }
+
+  Zone* zone_;
+  TypeCache const& cache_;
+
+  Type* singleton_false_;
+  Type* singleton_true_;
+  Type* singleton_the_hole_;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_OPERATION_TYPER_H_
diff --git a/src/compiler/operator-properties.cc b/src/compiler/operator-properties.cc
index 7f38ca7..43b0076 100644
--- a/src/compiler/operator-properties.cc
+++ b/src/compiler/operator-properties.cc
@@ -22,11 +22,12 @@
 // static
 int OperatorProperties::GetFrameStateInputCount(const Operator* op) {
   switch (op->opcode()) {
+    case IrOpcode::kCheckpoint:
     case IrOpcode::kFrameState:
       return 1;
     case IrOpcode::kJSCallRuntime: {
       const CallRuntimeParameters& p = CallRuntimeParametersOf(op);
-      return Linkage::FrameStateInputCount(p.id());
+      return Linkage::NeedsFrameStateInput(p.id()) ? 1 : 0;
     }
 
     // Strict equality cannot lazily deoptimize.
@@ -34,12 +35,6 @@
     case IrOpcode::kJSStrictNotEqual:
       return 0;
 
-    // We record the frame state immediately before and immediately after every
-    // construct/function call.
-    case IrOpcode::kJSCallConstruct:
-    case IrOpcode::kJSCallFunction:
-      return 2;
-
     // Compare operations
     case IrOpcode::kJSEqual:
     case IrOpcode::kJSNotEqual:
@@ -54,6 +49,15 @@
     case IrOpcode::kJSCreateLiteralObject:
     case IrOpcode::kJSCreateLiteralRegExp:
 
+    // Property access operations
+    case IrOpcode::kJSLoadNamed:
+    case IrOpcode::kJSStoreNamed:
+    case IrOpcode::kJSLoadProperty:
+    case IrOpcode::kJSStoreProperty:
+    case IrOpcode::kJSLoadGlobal:
+    case IrOpcode::kJSStoreGlobal:
+    case IrOpcode::kJSDeleteProperty:
+
     // Context operations
     case IrOpcode::kJSCreateScriptContext:
 
@@ -65,24 +69,17 @@
     case IrOpcode::kJSToObject:
     case IrOpcode::kJSToString:
 
+    // Call operations
+    case IrOpcode::kJSCallConstruct:
+    case IrOpcode::kJSCallFunction:
+
     // Misc operations
     case IrOpcode::kJSConvertReceiver:
     case IrOpcode::kJSForInNext:
     case IrOpcode::kJSForInPrepare:
     case IrOpcode::kJSStackCheck:
-    case IrOpcode::kJSDeleteProperty:
       return 1;
 
-    // We record the frame state immediately before and immediately after
-    // every property or global variable access.
-    case IrOpcode::kJSLoadNamed:
-    case IrOpcode::kJSStoreNamed:
-    case IrOpcode::kJSLoadProperty:
-    case IrOpcode::kJSStoreProperty:
-    case IrOpcode::kJSLoadGlobal:
-    case IrOpcode::kJSStoreGlobal:
-      return 2;
-
     // Binary operators that can deopt in the middle the operation (e.g.,
     // as a result of lazy deopt in ToNumber conversion) need a second frame
     // state so that we can resume before the operation.
diff --git a/src/compiler/operator.h b/src/compiler/operator.h
index fa85d59..8f288cb 100644
--- a/src/compiler/operator.h
+++ b/src/compiler/operator.h
@@ -36,18 +36,18 @@
   // transformations for nodes that have this operator.
   enum Property {
     kNoProperties = 0,
-    kReducible = 1 << 0,    // Participates in strength reduction.
-    kCommutative = 1 << 1,  // OP(a, b) == OP(b, a) for all inputs.
-    kAssociative = 1 << 2,  // OP(a, OP(b,c)) == OP(OP(a,b), c) for all inputs.
-    kIdempotent = 1 << 3,   // OP(a); OP(a) == OP(a).
-    kNoRead = 1 << 4,       // Has no scheduling dependency on Effects
-    kNoWrite = 1 << 5,      // Does not modify any Effects and thereby
+    kCommutative = 1 << 0,  // OP(a, b) == OP(b, a) for all inputs.
+    kAssociative = 1 << 1,  // OP(a, OP(b,c)) == OP(OP(a,b), c) for all inputs.
+    kIdempotent = 1 << 2,   // OP(a); OP(a) == OP(a).
+    kNoRead = 1 << 3,       // Has no scheduling dependency on Effects
+    kNoWrite = 1 << 4,      // Does not modify any Effects and thereby
                             // create new scheduling dependencies.
-    kNoThrow = 1 << 6,      // Can never generate an exception.
+    kNoThrow = 1 << 5,      // Can never generate an exception.
+    kNoDeopt = 1 << 6,      // Can never generate an eager deoptimization exit.
     kFoldable = kNoRead | kNoWrite,
-    kKontrol = kFoldable | kNoThrow,
-    kEliminatable = kNoWrite | kNoThrow,
-    kPure = kNoRead | kNoWrite | kNoThrow | kIdempotent
+    kKontrol = kNoDeopt | kFoldable | kNoThrow,
+    kEliminatable = kNoDeopt | kNoWrite | kNoThrow,
+    kPure = kNoDeopt | kNoRead | kNoWrite | kNoThrow | kIdempotent
   };
   typedef base::Flags<Property, uint8_t> Properties;
 
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index 82583e9..d592000 100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -14,6 +14,7 @@
 #include "src/compiler/basic-block-instrumentor.h"
 #include "src/compiler/branch-elimination.h"
 #include "src/compiler/bytecode-graph-builder.h"
+#include "src/compiler/checkpoint-elimination.h"
 #include "src/compiler/code-generator.h"
 #include "src/compiler/common-operator-reducer.h"
 #include "src/compiler/control-flow-optimizer.h"
@@ -25,7 +26,6 @@
 #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-selector.h"
 #include "src/compiler/instruction.h"
 #include "src/compiler/js-builtin-reducer.h"
@@ -49,6 +49,7 @@
 #include "src/compiler/move-optimizer.h"
 #include "src/compiler/osr.h"
 #include "src/compiler/pipeline-statistics.h"
+#include "src/compiler/redundancy-elimination.h"
 #include "src/compiler/register-allocator-verifier.h"
 #include "src/compiler/register-allocator.h"
 #include "src/compiler/schedule.h"
@@ -57,6 +58,7 @@
 #include "src/compiler/simplified-lowering.h"
 #include "src/compiler/simplified-operator-reducer.h"
 #include "src/compiler/simplified-operator.h"
+#include "src/compiler/store-store-elimination.h"
 #include "src/compiler/tail-call-optimization.h"
 #include "src/compiler/type-hint-analyzer.h"
 #include "src/compiler/typer.h"
@@ -521,7 +523,7 @@
                                              ZonePool* zone_pool) {
   PipelineStatistics* pipeline_statistics = nullptr;
 
-  if (FLAG_turbo_stats) {
+  if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) {
     pipeline_statistics = new PipelineStatistics(info, zone_pool);
     pipeline_statistics->BeginPhaseKind("initializing");
   }
@@ -533,7 +535,9 @@
     int pos = info->shared_info()->start_position();
     json_of << "{\"function\":\"" << function_name.get()
             << "\", \"sourcePosition\":" << pos << ", \"source\":\"";
-    if (!script->IsUndefined() && !script->source()->IsUndefined()) {
+    Isolate* isolate = info->isolate();
+    if (!script->IsUndefined(isolate) &&
+        !script->source()->IsUndefined(isolate)) {
       DisallowHeapAllocation no_allocation;
       int start = info->shared_info()->start_position();
       int len = info->shared_info()->end_position() - start;
@@ -597,6 +601,9 @@
     info()->MarkAsDeoptimizationEnabled();
   }
   if (!info()->is_optimizing_from_bytecode()) {
+    if (info()->is_deoptimization_enabled() && FLAG_turbo_type_feedback) {
+      info()->MarkAsTypeFeedbackEnabled();
+    }
     if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED;
   }
 
@@ -718,7 +725,7 @@
   static const char* phase_name() { return "type hint analysis"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
-    if (!data->info()->is_optimizing_from_bytecode()) {
+    if (data->info()->is_type_feedback_enabled()) {
       TypeHintAnalyzer analyzer(data->graph_zone());
       Handle<Code> code(data->info()->shared_info()->code(), data->isolate());
       TypeHintAnalysis* type_hint_analysis = analyzer.Analyze(code);
@@ -804,7 +811,9 @@
     AddReducer(data, &graph_reducer, &native_context_specialization);
     AddReducer(data, &graph_reducer, &context_specialization);
     AddReducer(data, &graph_reducer, &call_reducer);
-    AddReducer(data, &graph_reducer, &inlining);
+    if (!data->info()->is_optimizing_from_bytecode()) {
+      AddReducer(data, &graph_reducer, &inlining);
+    }
     graph_reducer.ReduceGraph();
   }
 };
@@ -880,6 +889,9 @@
     if (data->info()->shared_info()->HasBytecodeArray()) {
       typed_lowering_flags |= JSTypedLowering::kDisableBinaryOpReduction;
     }
+    if (data->info()->is_type_feedback_enabled()) {
+      typed_lowering_flags |= JSTypedLowering::kTypeFeedbackEnabled;
+    }
     JSTypedLowering typed_lowering(&graph_reducer, data->info()->dependencies(),
                                    typed_lowering_flags, data->jsgraph(),
                                    temp_zone);
@@ -888,7 +900,8 @@
         data->info()->is_deoptimization_enabled()
             ? JSIntrinsicLowering::kDeoptimizationEnabled
             : JSIntrinsicLowering::kDeoptimizationDisabled);
-    SimplifiedOperatorReducer simple_reducer(data->jsgraph());
+    SimplifiedOperatorReducer simple_reducer(&graph_reducer, data->jsgraph());
+    CheckpointElimination checkpoint_elimination(&graph_reducer);
     CommonOperatorReducer common_reducer(&graph_reducer, data->graph(),
                                          data->common(), data->machine());
     AddReducer(data, &graph_reducer, &dead_code_elimination);
@@ -900,6 +913,7 @@
     AddReducer(data, &graph_reducer, &intrinsic_lowering);
     AddReducer(data, &graph_reducer, &load_elimination);
     AddReducer(data, &graph_reducer, &simple_reducer);
+    AddReducer(data, &graph_reducer, &checkpoint_elimination);
     AddReducer(data, &graph_reducer, &common_reducer);
     graph_reducer.ReduceGraph();
   }
@@ -942,8 +956,12 @@
   static const char* phase_name() { return "representation selection"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
+    SimplifiedLowering::Flags flags =
+        data->info()->is_type_feedback_enabled()
+            ? SimplifiedLowering::kTypeFeedbackEnabled
+            : SimplifiedLowering::kNoFlag;
     SimplifiedLowering lowering(data->jsgraph(), temp_zone,
-                                data->source_positions());
+                                data->source_positions(), flags);
     lowering.LowerAllNodes();
   }
 };
@@ -956,13 +974,15 @@
     JSGenericLowering generic_lowering(data->jsgraph());
     DeadCodeElimination dead_code_elimination(&graph_reducer, data->graph(),
                                               data->common());
-    SimplifiedOperatorReducer simple_reducer(data->jsgraph());
+    SimplifiedOperatorReducer simple_reducer(&graph_reducer, data->jsgraph());
+    RedundancyElimination redundancy_elimination(&graph_reducer, temp_zone);
     ValueNumberingReducer value_numbering(temp_zone);
     MachineOperatorReducer machine_reducer(data->jsgraph());
     CommonOperatorReducer common_reducer(&graph_reducer, data->graph(),
                                          data->common(), data->machine());
     AddReducer(data, &graph_reducer, &dead_code_elimination);
     AddReducer(data, &graph_reducer, &simple_reducer);
+    AddReducer(data, &graph_reducer, &redundancy_elimination);
     AddReducer(data, &graph_reducer, &generic_lowering);
     AddReducer(data, &graph_reducer, &value_numbering);
     AddReducer(data, &graph_reducer, &machine_reducer);
@@ -1012,10 +1032,26 @@
   }
 };
 
+struct StoreStoreEliminationPhase {
+  static const char* phase_name() { return "Store-store elimination"; }
+
+  void Run(PipelineData* data, Zone* temp_zone) {
+    StoreStoreElimination store_store_elimination(data->jsgraph(), temp_zone);
+    store_store_elimination.Run();
+  }
+};
+
 struct MemoryOptimizationPhase {
   static const char* phase_name() { return "memory optimization"; }
 
   void Run(PipelineData* data, Zone* temp_zone) {
+    // The memory optimizer requires the graphs to be trimmed, so trim now.
+    GraphTrimmer trimmer(temp_zone, data->graph());
+    NodeVector roots(temp_zone);
+    data->jsgraph()->GetCachedNodes(&roots);
+    trimmer.TrimGraph(roots.begin(), roots.end());
+
+    // Optimize allocations and load/store operations.
     MemoryOptimizer optimizer(data->jsgraph(), temp_zone);
     optimizer.Optimize();
   }
@@ -1411,11 +1447,7 @@
 
     // Select representations.
     Run<RepresentationSelectionPhase>();
-    RunPrintAndVerify("Representations selected");
-
-    // Run early optimization pass.
-    Run<EarlyOptimizationPhase>();
-    RunPrintAndVerify("Early optimized");
+    RunPrintAndVerify("Representations selected", true);
   }
 
 #ifdef DEBUG
@@ -1435,6 +1467,10 @@
   RunPrintAndVerify("Untyped", true);
 #endif
 
+  // Run early optimization pass.
+  Run<EarlyOptimizationPhase>();
+  RunPrintAndVerify("Early optimized", true);
+
   data->EndPhaseKind();
 
   return true;
@@ -1448,6 +1484,11 @@
   Run<EffectControlLinearizationPhase>();
   RunPrintAndVerify("Effect and control linearized", true);
 
+  if (FLAG_turbo_store_elimination) {
+    Run<StoreStoreEliminationPhase>();
+    RunPrintAndVerify("Store-store elimination", true);
+  }
+
   Run<BranchEliminationPhase>();
   RunPrintAndVerify("Branch conditions eliminated", true);
 
@@ -1487,7 +1528,7 @@
   ZonePool zone_pool(isolate->allocator());
   PipelineData data(&zone_pool, &info, graph, schedule);
   base::SmartPointer<PipelineStatistics> pipeline_statistics;
-  if (FLAG_turbo_stats) {
+  if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) {
     pipeline_statistics.Reset(new PipelineStatistics(&info, &zone_pool));
     pipeline_statistics->BeginPhaseKind("stub codegen");
   }
@@ -1496,9 +1537,11 @@
   DCHECK_NOT_NULL(data.schedule());
 
   if (FLAG_trace_turbo) {
-    TurboJsonFile json_of(&info, std::ios_base::trunc);
-    json_of << "{\"function\":\"" << info.GetDebugName().get()
-            << "\", \"source\":\"\",\n\"phases\":[";
+    {
+      TurboJsonFile json_of(&info, std::ios_base::trunc);
+      json_of << "{\"function\":\"" << info.GetDebugName().get()
+              << "\", \"source\":\"\",\n\"phases\":[";
+    }
     pipeline.Run<PrintGraphPhase>("Machine");
   }
 
@@ -1539,7 +1582,7 @@
   ZonePool zone_pool(info->isolate()->allocator());
   PipelineData data(&zone_pool, info, graph, schedule);
   base::SmartPointer<PipelineStatistics> pipeline_statistics;
-  if (FLAG_turbo_stats) {
+  if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) {
     pipeline_statistics.Reset(new PipelineStatistics(info, &zone_pool));
     pipeline_statistics->BeginPhaseKind("test codegen");
   }
@@ -1624,9 +1667,8 @@
   bool run_verifier = FLAG_turbo_verify_allocation;
 
   // Allocate registers.
-  AllocateRegisters(
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN),
-      call_descriptor, run_verifier);
+  AllocateRegisters(RegisterConfiguration::Turbofan(), call_descriptor,
+                    run_verifier);
   Run<FrameElisionPhase>();
   if (data->compilation_failed()) {
     info()->AbortOptimization(kNotEnoughVirtualRegistersRegalloc);
@@ -1747,13 +1789,8 @@
     Run<SplinterLiveRangesPhase>();
   }
 
-  if (FLAG_turbo_greedy_regalloc) {
-    Run<AllocateGeneralRegistersPhase<GreedyAllocator>>();
-    Run<AllocateFPRegistersPhase<GreedyAllocator>>();
-  } else {
-    Run<AllocateGeneralRegistersPhase<LinearScanAllocator>>();
-    Run<AllocateFPRegistersPhase<LinearScanAllocator>>();
-  }
+  Run<AllocateGeneralRegistersPhase<LinearScanAllocator>>();
+  Run<AllocateFPRegistersPhase<LinearScanAllocator>>();
 
   if (FLAG_turbo_preprocess_ranges) {
     Run<MergeSplintersPhase>();
diff --git a/src/compiler/ppc/OWNERS b/src/compiler/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/compiler/ppc/OWNERS
+++ b/src/compiler/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/compiler/ppc/code-generator-ppc.cc b/src/compiler/ppc/code-generator-ppc.cc
index 8a0c585..4909414 100644
--- a/src/compiler/ppc/code-generator-ppc.cc
+++ b/src/compiler/ppc/code-generator-ppc.cc
@@ -216,7 +216,12 @@
       DCHECK_EQ(0, offset_immediate_);
       __ add(scratch1_, object_, offset_);
     }
-    __ CallStub(&stub);
+    if (must_save_lr_ && FLAG_enable_embedded_constant_pool) {
+      ConstantPoolUnavailableScope constant_pool_unavailable(masm());
+      __ CallStub(&stub);
+    } else {
+      __ CallStub(&stub);
+    }
     if (must_save_lr_) {
       // We need to save and restore lr if the frame was elided.
       __ Pop(scratch1_);
@@ -436,6 +441,34 @@
     DCHECK_EQ(LeaveRC, i.OutputRCBit());                                      \
   } while (0)
 
+#define ASSEMBLE_IEEE754_UNOP(name)                                            \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 1, kScratchReg);                                \
+    __ MovToFloatParameter(i.InputDoubleRegister(0));                          \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 1);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+    DCHECK_EQ(LeaveRC, i.OutputRCBit());                                       \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_BINOP(name)                                           \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 2, kScratchReg);                                \
+    __ MovToFloatParameters(i.InputDoubleRegister(0),                          \
+                           i.InputDoubleRegister(1));                          \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 2);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+    DCHECK_EQ(LeaveRC, i.OutputRCBit());                                       \
+  } while (0)
 
 #define ASSEMBLE_FLOAT_MAX(scratch_reg)                                       \
   do {                                                                        \
@@ -874,6 +907,9 @@
       AssembleArchTableSwitch(instr);
       DCHECK_EQ(LeaveRC, i.OutputRCBit());
       break;
+    case kArchDebugBreak:
+      __ stop("kArchDebugBreak");
+      break;
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -1226,6 +1262,45 @@
       // and generate a CallAddress instruction instead.
       ASSEMBLE_FLOAT_MODULO();
       break;
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
     case kPPC_Neg:
       __ neg(i.OutputRegister(), i.InputRegister(0), LeaveOE, i.OutputRCBit());
       break;
@@ -1308,6 +1383,12 @@
       DCHECK_EQ(SetRC, i.OutputRCBit());
       break;
 #endif
+    case kPPC_Float64SilenceNaN: {
+      DoubleRegister value = i.InputDoubleRegister(0);
+      DoubleRegister result = i.OutputDoubleRegister();
+      __ CanonicalizeNaN(result, value);
+      break;
+    }
     case kPPC_Push:
       if (instr->InputAt(0)->IsFPRegister()) {
         __ stfdu(i.InputDoubleRegister(0), MemOperand(sp, -kDoubleSize));
@@ -1321,8 +1402,15 @@
     case kPPC_PushFrame: {
       int num_slots = i.InputInt32(1);
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ StoreDoubleU(i.InputDoubleRegister(0),
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ StoreDoubleU(i.InputDoubleRegister(0),
                         MemOperand(sp, -num_slots * kPointerSize), r0);
+        } else {
+          DCHECK(op->representation() == MachineRepresentation::kFloat32);
+          __ StoreSingleU(i.InputDoubleRegister(0),
+                        MemOperand(sp, -num_slots * kPointerSize), r0);
+        }
       } else {
         __ StorePU(i.InputRegister(0),
                    MemOperand(sp, -num_slots * kPointerSize), r0);
@@ -1332,8 +1420,15 @@
     case kPPC_StoreToStackSlot: {
       int slot = i.InputInt32(1);
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ StoreDouble(i.InputDoubleRegister(0),
-                       MemOperand(sp, slot * kPointerSize), r0);
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ StoreDouble(i.InputDoubleRegister(0),
+                        MemOperand(sp, slot * kPointerSize), r0);
+        } else {
+          DCHECK(op->representation() == MachineRepresentation::kFloat32);
+          __ StoreSingle(i.InputDoubleRegister(0),
+                        MemOperand(sp, slot * kPointerSize), r0);
+        }
       } else {
         __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize), r0);
       }
@@ -1929,6 +2024,7 @@
           if (src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
 #else
           if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
               src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
 #endif
             __ mov(dst, Operand(src.ToInt32(), src.rmode()));
@@ -1938,7 +2034,8 @@
           break;
         case Constant::kInt64:
 #if V8_TARGET_ARCH_PPC64
-          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
             __ mov(dst, Operand(src.ToInt64(), src.rmode()));
           } else {
             DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
@@ -1997,17 +2094,33 @@
       __ Move(dst, src);
     } else {
       DCHECK(destination->IsFPStackSlot());
-      __ StoreDouble(src, g.ToMemOperand(destination), r0);
+      LocationOperand* op = LocationOperand::cast(source);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ StoreDouble(src, g.ToMemOperand(destination), r0);
+      } else {
+        __ StoreSingle(src, g.ToMemOperand(destination), r0);
+      }
     }
   } else if (source->IsFPStackSlot()) {
     DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
     if (destination->IsFPRegister()) {
-      __ LoadDouble(g.ToDoubleRegister(destination), src, r0);
+      LocationOperand* op = LocationOperand::cast(source);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ LoadDouble(g.ToDoubleRegister(destination), src, r0);
+      } else {
+        __ LoadSingle(g.ToDoubleRegister(destination), src, r0);
+      }
     } else {
+      LocationOperand* op = LocationOperand::cast(source);
       DoubleRegister temp = kScratchDoubleReg;
-      __ LoadDouble(temp, src, r0);
-      __ StoreDouble(temp, g.ToMemOperand(destination), r0);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ LoadDouble(temp, src, r0);
+        __ StoreDouble(temp, g.ToMemOperand(destination), r0);
+      } else {
+        __ LoadSingle(temp, src, r0);
+        __ StoreSingle(temp, g.ToMemOperand(destination), r0);
+      }
     }
   } else {
     UNREACHABLE();
diff --git a/src/compiler/ppc/instruction-codes-ppc.h b/src/compiler/ppc/instruction-codes-ppc.h
index 23cd235..d697da3 100644
--- a/src/compiler/ppc/instruction-codes-ppc.h
+++ b/src/compiler/ppc/instruction-codes-ppc.h
@@ -93,6 +93,7 @@
   V(PPC_Uint32ToFloat32)           \
   V(PPC_Uint32ToDouble)            \
   V(PPC_Float32ToDouble)           \
+  V(PPC_Float64SilenceNaN)         \
   V(PPC_DoubleToInt32)             \
   V(PPC_DoubleToUint32)            \
   V(PPC_DoubleToInt64)             \
diff --git a/src/compiler/ppc/instruction-scheduler-ppc.cc b/src/compiler/ppc/instruction-scheduler-ppc.cc
index 1259a87..f41900d 100644
--- a/src/compiler/ppc/instruction-scheduler-ppc.cc
+++ b/src/compiler/ppc/instruction-scheduler-ppc.cc
@@ -92,6 +92,7 @@
     case kPPC_Uint32ToFloat32:
     case kPPC_Uint32ToDouble:
     case kPPC_Float32ToDouble:
+    case kPPC_Float64SilenceNaN:
     case kPPC_DoubleToInt32:
     case kPPC_DoubleToUint32:
     case kPPC_DoubleToInt64:
diff --git a/src/compiler/ppc/instruction-selector-ppc.cc b/src/compiler/ppc/instruction-selector-ppc.cc
index b8ca3ba..b724001 100644
--- a/src/compiler/ppc/instruction-selector-ppc.cc
+++ b/src/compiler/ppc/instruction-selector-ppc.cc
@@ -1294,6 +1294,10 @@
 
 void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  VisitRR(this, kPPC_Float64SilenceNaN, node);
+}
+
 
 void InstructionSelector::VisitFloat32Min(Node* node) { UNREACHABLE(); }
 
@@ -1310,11 +1314,24 @@
   VisitRR(this, kPPC_AbsDouble, node);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   VisitRR(this, kPPC_SqrtDouble | MiscField::encode(1), node);
 }
 
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  PPCOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d1), g.UseFixed(node->InputAt(0), d1))
+       ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                  InstructionCode opcode) {
+  PPCOperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d1),
+       g.UseFixed(node->InputAt(0), d1),
+       g.UseFixed(node->InputAt(1), d2))->MarkAsCall();
+}
 
 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
   VisitRR(this, kPPC_SqrtDouble, node);
@@ -1365,6 +1382,9 @@
   UNREACHABLE();
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
 
 void InstructionSelector::VisitInt32AddWithOverflow(Node* node) {
   if (Node* ovf = NodeProperties::FindProjection(node, 1)) {
@@ -1991,6 +2011,13 @@
   // We omit kWord32ShiftIsSafe as s[rl]w use 0x3f as a mask rather than 0x1f.
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/raw-machine-assembler.cc b/src/compiler/raw-machine-assembler.cc
index 9407da6..ef23bc4 100644
--- a/src/compiler/raw-machine-assembler.cc
+++ b/src/compiler/raw-machine-assembler.cc
@@ -135,6 +135,11 @@
   current_block_ = nullptr;
 }
 
+void RawMachineAssembler::DebugBreak() { AddNode(machine()->DebugBreak()); }
+
+void RawMachineAssembler::Comment(const char* msg) {
+  AddNode(machine()->Comment(msg));
+}
 
 Node* RawMachineAssembler::CallN(CallDescriptor* desc, Node* function,
                                  Node** args) {
diff --git a/src/compiler/raw-machine-assembler.h b/src/compiler/raw-machine-assembler.h
index 69ddd50..387e961 100644
--- a/src/compiler/raw-machine-assembler.h
+++ b/src/compiler/raw-machine-assembler.h
@@ -460,7 +460,22 @@
   }
   Node* Float64Abs(Node* a) { return AddNode(machine()->Float64Abs(), a); }
   Node* Float64Neg(Node* a) { return Float64Sub(Float64Constant(-0.0), a); }
+  Node* Float64Atan(Node* a) { return AddNode(machine()->Float64Atan(), a); }
+  Node* Float64Atan2(Node* a, Node* b) {
+    return AddNode(machine()->Float64Atan2(), a, b);
+  }
+  Node* Float64Atanh(Node* a) { return AddNode(machine()->Float64Atanh(), a); }
+  Node* Float64Cbrt(Node* a) { return AddNode(machine()->Float64Cbrt(), a); }
+  Node* Float64Cos(Node* a) { return AddNode(machine()->Float64Cos(), a); }
+  Node* Float64Exp(Node* a) { return AddNode(machine()->Float64Exp(), a); }
+  Node* Float64Expm1(Node* a) { return AddNode(machine()->Float64Expm1(), a); }
+  Node* Float64Log(Node* a) { return AddNode(machine()->Float64Log(), a); }
+  Node* Float64Log1p(Node* a) { return AddNode(machine()->Float64Log1p(), a); }
+  Node* Float64Log10(Node* a) { return AddNode(machine()->Float64Log10(), a); }
+  Node* Float64Log2(Node* a) { return AddNode(machine()->Float64Log2(), a); }
+  Node* Float64Sin(Node* a) { return AddNode(machine()->Float64Sin(), a); }
   Node* Float64Sqrt(Node* a) { return AddNode(machine()->Float64Sqrt(), a); }
+  Node* Float64Tan(Node* a) { return AddNode(machine()->Float64Tan(), a); }
   Node* Float64Equal(Node* a, Node* b) {
     return AddNode(machine()->Float64Equal(), a, b);
   }
@@ -697,6 +712,8 @@
   void Return(Node* v1, Node* v2, Node* v3);
   void Bind(RawMachineLabel* label);
   void Deoptimize(Node* state);
+  void DebugBreak();
+  void Comment(const char* msg);
 
   // Variables.
   Node* Phi(MachineRepresentation rep, Node* n1, Node* n2) {
diff --git a/src/compiler/redundancy-elimination.cc b/src/compiler/redundancy-elimination.cc
new file mode 100644
index 0000000..ae87349
--- /dev/null
+++ b/src/compiler/redundancy-elimination.cc
@@ -0,0 +1,216 @@
+// 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/redundancy-elimination.h"
+
+#include "src/compiler/node-properties.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+RedundancyElimination::RedundancyElimination(Editor* editor, Zone* zone)
+    : AdvancedReducer(editor), node_checks_(zone), zone_(zone) {}
+
+RedundancyElimination::~RedundancyElimination() {}
+
+Reduction RedundancyElimination::Reduce(Node* node) {
+  switch (node->opcode()) {
+    case IrOpcode::kCheckFloat64Hole:
+    case IrOpcode::kCheckTaggedHole:
+    case IrOpcode::kCheckTaggedPointer:
+    case IrOpcode::kCheckTaggedSigned:
+    case IrOpcode::kCheckedFloat64ToInt32:
+    case IrOpcode::kCheckedInt32Add:
+    case IrOpcode::kCheckedInt32Sub:
+    case IrOpcode::kCheckedTaggedToFloat64:
+    case IrOpcode::kCheckedTaggedToInt32:
+    case IrOpcode::kCheckedUint32ToInt32:
+      return ReduceCheckNode(node);
+    case IrOpcode::kEffectPhi:
+      return ReduceEffectPhi(node);
+    case IrOpcode::kDead:
+      break;
+    case IrOpcode::kStart:
+      return ReduceStart(node);
+    default:
+      return ReduceOtherNode(node);
+  }
+  return NoChange();
+}
+
+// static
+RedundancyElimination::EffectPathChecks*
+RedundancyElimination::EffectPathChecks::Copy(Zone* zone,
+                                              EffectPathChecks const* checks) {
+  return new (zone->New(sizeof(EffectPathChecks))) EffectPathChecks(*checks);
+}
+
+// static
+RedundancyElimination::EffectPathChecks const*
+RedundancyElimination::EffectPathChecks::Empty(Zone* zone) {
+  return new (zone->New(sizeof(EffectPathChecks))) EffectPathChecks(nullptr, 0);
+}
+
+void RedundancyElimination::EffectPathChecks::Merge(
+    EffectPathChecks const* that) {
+  // Change the current check list to a longest common tail of this check
+  // list and the other list.
+
+  // First, we throw away the prefix of the longer list, so that
+  // we have lists of the same length.
+  Check* that_head = that->head_;
+  size_t that_size = that->size_;
+  while (that_size > size_) {
+    that_head = that_head->next;
+    that_size--;
+  }
+  while (size_ > that_size) {
+    head_ = head_->next;
+    size_--;
+  }
+
+  // Then we go through both lists in lock-step until we find
+  // the common tail.
+  while (head_ != that_head) {
+    DCHECK_LT(0u, size_);
+    DCHECK_NOT_NULL(head_);
+    size_--;
+    head_ = head_->next;
+    that_head = that_head->next;
+  }
+}
+
+RedundancyElimination::EffectPathChecks const*
+RedundancyElimination::EffectPathChecks::AddCheck(Zone* zone,
+                                                  Node* node) const {
+  Check* head = new (zone->New(sizeof(Check))) Check(node, head_);
+  return new (zone->New(sizeof(EffectPathChecks)))
+      EffectPathChecks(head, size_ + 1);
+}
+
+namespace {
+
+bool IsCompatibleCheck(Node const* a, Node const* b) {
+  if (a->op() != b->op()) return false;
+  for (int i = a->op()->ValueInputCount(); --i >= 0;) {
+    if (a->InputAt(i) != b->InputAt(i)) return false;
+  }
+  return true;
+}
+
+}  // namespace
+
+Node* RedundancyElimination::EffectPathChecks::LookupCheck(Node* node) const {
+  for (Check const* check = head_; check != nullptr; check = check->next) {
+    if (IsCompatibleCheck(check->node, node)) {
+      DCHECK(!check->node->IsDead());
+      return check->node;
+    }
+  }
+  return nullptr;
+}
+
+RedundancyElimination::EffectPathChecks const*
+RedundancyElimination::PathChecksForEffectNodes::Get(Node* node) const {
+  size_t const id = node->id();
+  if (id < info_for_node_.size()) return info_for_node_[id];
+  return nullptr;
+}
+
+void RedundancyElimination::PathChecksForEffectNodes::Set(
+    Node* node, EffectPathChecks const* checks) {
+  size_t const id = node->id();
+  if (id >= info_for_node_.size()) info_for_node_.resize(id + 1, nullptr);
+  info_for_node_[id] = checks;
+}
+
+Reduction RedundancyElimination::ReduceCheckNode(Node* node) {
+  Node* const effect = NodeProperties::GetEffectInput(node);
+  EffectPathChecks const* checks = node_checks_.Get(effect);
+  // If we do not know anything about the predecessor, do not propagate just yet
+  // because we will have to recompute anyway once we compute the predecessor.
+  if (checks == nullptr) return NoChange();
+  // See if we have another check that dominates us.
+  if (Node* check = checks->LookupCheck(node)) {
+    ReplaceWithValue(node, check);
+    return Replace(check);
+  }
+  // Learn from this check.
+  return UpdateChecks(node, checks->AddCheck(zone(), node));
+}
+
+Reduction RedundancyElimination::ReduceEffectPhi(Node* node) {
+  Node* const control = NodeProperties::GetControlInput(node);
+  if (control->opcode() == IrOpcode::kLoop) {
+    // Here we rely on having only reducible loops:
+    // The loop entry edge always dominates the header, so we can just use
+    // the information from the loop entry edge.
+    return TakeChecksFromFirstEffect(node);
+  }
+  DCHECK_EQ(IrOpcode::kMerge, control->opcode());
+
+  // Shortcut for the case when we do not know anything about some input.
+  int const input_count = node->op()->EffectInputCount();
+  for (int i = 0; i < input_count; ++i) {
+    Node* const effect = NodeProperties::GetEffectInput(node, i);
+    if (node_checks_.Get(effect) == nullptr) return NoChange();
+  }
+
+  // Make a copy of the first input's checks and merge with the checks
+  // from other inputs.
+  EffectPathChecks* checks = EffectPathChecks::Copy(
+      zone(), node_checks_.Get(NodeProperties::GetEffectInput(node, 0)));
+  for (int i = 1; i < input_count; ++i) {
+    Node* const input = NodeProperties::GetEffectInput(node, i);
+    checks->Merge(node_checks_.Get(input));
+  }
+  return UpdateChecks(node, checks);
+}
+
+Reduction RedundancyElimination::ReduceStart(Node* node) {
+  return UpdateChecks(node, EffectPathChecks::Empty(zone()));
+}
+
+Reduction RedundancyElimination::ReduceOtherNode(Node* node) {
+  if (node->op()->EffectInputCount() == 1) {
+    if (node->op()->EffectOutputCount() == 1) {
+      return TakeChecksFromFirstEffect(node);
+    } else {
+      // Effect terminators should be handled specially.
+      return NoChange();
+    }
+  }
+  DCHECK_EQ(0, node->op()->EffectInputCount());
+  DCHECK_EQ(0, node->op()->EffectOutputCount());
+  return NoChange();
+}
+
+Reduction RedundancyElimination::TakeChecksFromFirstEffect(Node* node) {
+  DCHECK_EQ(1, node->op()->EffectOutputCount());
+  Node* const effect = NodeProperties::GetEffectInput(node);
+  EffectPathChecks const* checks = node_checks_.Get(effect);
+  // If we do not know anything about the predecessor, do not propagate just yet
+  // because we will have to recompute anyway once we compute the predecessor.
+  if (checks == nullptr) return NoChange();
+  // We just propagate the information from the effect input (ideally,
+  // we would only revisit effect uses if there is change).
+  return UpdateChecks(node, checks);
+}
+
+Reduction RedundancyElimination::UpdateChecks(Node* node,
+                                              EffectPathChecks const* checks) {
+  EffectPathChecks const* original = node_checks_.Get(node);
+  // Only signal that the {node} has Changed, if the information about {checks}
+  // has changed wrt. the {original}.
+  if (checks != original) {
+    node_checks_.Set(node, checks);
+    return Changed(node);
+  }
+  return NoChange();
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/redundancy-elimination.h b/src/compiler/redundancy-elimination.h
new file mode 100644
index 0000000..a4886e4
--- /dev/null
+++ b/src/compiler/redundancy-elimination.h
@@ -0,0 +1,76 @@
+// 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_REDUNDANCY_ELIMINATION_H_
+#define V8_COMPILER_REDUNDANCY_ELIMINATION_H_
+
+#include "src/compiler/graph-reducer.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+class RedundancyElimination final : public AdvancedReducer {
+ public:
+  RedundancyElimination(Editor* editor, Zone* zone);
+  ~RedundancyElimination() final;
+
+  Reduction Reduce(Node* node) final;
+
+ private:
+  struct Check {
+    Check(Node* node, Check* next) : node(node), next(next) {}
+    Node* node;
+    Check* next;
+  };
+
+  class EffectPathChecks final {
+   public:
+    static EffectPathChecks* Copy(Zone* zone, EffectPathChecks const* checks);
+    static EffectPathChecks const* Empty(Zone* zone);
+    void Merge(EffectPathChecks const* that);
+
+    EffectPathChecks const* AddCheck(Zone* zone, Node* node) const;
+    Node* LookupCheck(Node* node) const;
+
+   private:
+    EffectPathChecks(Check* head, size_t size) : head_(head), size_(size) {}
+
+    // We keep track of the list length so that we can find the longest
+    // common tail easily.
+    Check* head_;
+    size_t size_;
+  };
+
+  class PathChecksForEffectNodes final {
+   public:
+    explicit PathChecksForEffectNodes(Zone* zone) : info_for_node_(zone) {}
+    EffectPathChecks const* Get(Node* node) const;
+    void Set(Node* node, EffectPathChecks const* checks);
+
+   private:
+    ZoneVector<EffectPathChecks const*> info_for_node_;
+  };
+
+  Reduction ReduceCheckNode(Node* node);
+  Reduction ReduceEffectPhi(Node* node);
+  Reduction ReduceStart(Node* node);
+  Reduction ReduceOtherNode(Node* node);
+
+  Reduction TakeChecksFromFirstEffect(Node* node);
+  Reduction UpdateChecks(Node* node, EffectPathChecks const* checks);
+
+  Zone* zone() const { return zone_; }
+
+  PathChecksForEffectNodes node_checks_;
+  Zone* const zone_;
+
+  DISALLOW_COPY_AND_ASSIGN(RedundancyElimination);
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_REDUNDANCY_ELIMINATION_H_
diff --git a/src/compiler/register-allocator-verifier.cc b/src/compiler/register-allocator-verifier.cc
index 6746719..2d10de0 100644
--- a/src/compiler/register-allocator-verifier.cc
+++ b/src/compiler/register-allocator-verifier.cc
@@ -160,14 +160,14 @@
     int vreg = unallocated->virtual_register();
     constraint->virtual_register_ = vreg;
     if (unallocated->basic_policy() == UnallocatedOperand::FIXED_SLOT) {
-      constraint->type_ = sequence()->IsFloat(vreg) ? kDoubleSlot : kSlot;
+      constraint->type_ = sequence()->IsFP(vreg) ? kFPSlot : kSlot;
       constraint->value_ = unallocated->fixed_slot_index();
     } else {
       switch (unallocated->extended_policy()) {
         case UnallocatedOperand::ANY:
         case UnallocatedOperand::NONE:
-          if (sequence()->IsFloat(vreg)) {
-            constraint->type_ = kNoneDouble;
+          if (sequence()->IsFP(vreg)) {
+            constraint->type_ = kNoneFP;
           } else {
             constraint->type_ = kNone;
           }
@@ -181,19 +181,19 @@
           }
           constraint->value_ = unallocated->fixed_register_index();
           break;
-        case UnallocatedOperand::FIXED_DOUBLE_REGISTER:
-          constraint->type_ = kFixedDoubleRegister;
+        case UnallocatedOperand::FIXED_FP_REGISTER:
+          constraint->type_ = kFixedFPRegister;
           constraint->value_ = unallocated->fixed_register_index();
           break;
         case UnallocatedOperand::MUST_HAVE_REGISTER:
-          if (sequence()->IsFloat(vreg)) {
-            constraint->type_ = kDoubleRegister;
+          if (sequence()->IsFP(vreg)) {
+            constraint->type_ = kFPRegister;
           } else {
             constraint->type_ = kRegister;
           }
           break;
         case UnallocatedOperand::MUST_HAVE_SLOT:
-          constraint->type_ = sequence()->IsFloat(vreg) ? kDoubleSlot : kSlot;
+          constraint->type_ = sequence()->IsFP(vreg) ? kFPSlot : kSlot;
           break;
         case UnallocatedOperand::SAME_AS_FIRST_INPUT:
           constraint->type_ = kSameAsFirst;
@@ -223,7 +223,7 @@
     case kRegister:
       CHECK(op->IsRegister());
       return;
-    case kDoubleRegister:
+    case kFPRegister:
       CHECK(op->IsFPRegister());
       return;
     case kExplicit:
@@ -232,13 +232,11 @@
     case kFixedRegister:
     case kRegisterAndSlot:
       CHECK(op->IsRegister());
-      CHECK_EQ(LocationOperand::cast(op)->GetRegister().code(),
-               constraint->value_);
+      CHECK_EQ(LocationOperand::cast(op)->register_code(), constraint->value_);
       return;
-    case kFixedDoubleRegister:
+    case kFixedFPRegister:
       CHECK(op->IsFPRegister());
-      CHECK_EQ(LocationOperand::cast(op)->GetDoubleRegister().code(),
-               constraint->value_);
+      CHECK_EQ(LocationOperand::cast(op)->register_code(), constraint->value_);
       return;
     case kFixedSlot:
       CHECK(op->IsStackSlot());
@@ -247,13 +245,13 @@
     case kSlot:
       CHECK(op->IsStackSlot());
       return;
-    case kDoubleSlot:
+    case kFPSlot:
       CHECK(op->IsFPStackSlot());
       return;
     case kNone:
       CHECK(op->IsRegister() || op->IsStackSlot());
       return;
-    case kNoneDouble:
+    case kNoneFP:
       CHECK(op->IsFPRegister() || op->IsFPStackSlot());
       return;
     case kSameAsFirst:
diff --git a/src/compiler/register-allocator-verifier.h b/src/compiler/register-allocator-verifier.h
index 06d9029..72e6e06 100644
--- a/src/compiler/register-allocator-verifier.h
+++ b/src/compiler/register-allocator-verifier.h
@@ -89,7 +89,7 @@
   DISALLOW_COPY_AND_ASSIGN(PendingAssessment);
 };
 
-// FinalAssessmens are associated to operands that we know to be a certain
+// FinalAssessments are associated to operands that we know to be a certain
 // virtual register.
 class FinalAssessment final : public Assessment {
  public:
@@ -175,13 +175,13 @@
     kImmediate,
     kRegister,
     kFixedRegister,
-    kDoubleRegister,
-    kFixedDoubleRegister,
+    kFPRegister,
+    kFixedFPRegister,
     kSlot,
-    kDoubleSlot,
+    kFPSlot,
     kFixedSlot,
     kNone,
-    kNoneDouble,
+    kNoneFP,
     kExplicit,
     kSameAsFirst,
     kRegisterAndSlot
diff --git a/src/compiler/register-allocator.cc b/src/compiler/register-allocator.cc
index 4683672..9c8d999 100644
--- a/src/compiler/register-allocator.cc
+++ b/src/compiler/register-allocator.cc
@@ -33,7 +33,7 @@
 
 int GetAllocatableRegisterCount(const RegisterConfiguration* cfg,
                                 RegisterKind kind) {
-  return kind == FP_REGISTERS ? cfg->num_allocatable_aliased_double_registers()
+  return kind == FP_REGISTERS ? cfg->num_allocatable_double_registers()
                               : cfg->num_allocatable_general_registers();
 }
 
@@ -64,25 +64,31 @@
   return code->InstructionAt(block->last_instruction_index());
 }
 
-
-bool IsOutputRegisterOf(Instruction* instr, Register reg) {
+bool IsOutputRegisterOf(Instruction* instr, int code) {
   for (size_t i = 0; i < instr->OutputCount(); i++) {
     InstructionOperand* output = instr->OutputAt(i);
     if (output->IsRegister() &&
-        LocationOperand::cast(output)->GetRegister().is(reg)) {
+        LocationOperand::cast(output)->register_code() == code) {
       return true;
     }
   }
   return false;
 }
 
-
-bool IsOutputDoubleRegisterOf(Instruction* instr, DoubleRegister reg) {
+bool IsOutputFPRegisterOf(Instruction* instr, MachineRepresentation rep,
+                          int code) {
   for (size_t i = 0; i < instr->OutputCount(); i++) {
     InstructionOperand* output = instr->OutputAt(i);
-    if (output->IsFPRegister() &&
-        LocationOperand::cast(output)->GetDoubleRegister().is(reg)) {
-      return true;
+    if (output->IsFPRegister()) {
+      const LocationOperand* op = LocationOperand::cast(output);
+      if (kSimpleFPAliasing) {
+        if (op->register_code() == code) return true;
+      } else {
+        if (RegisterConfiguration::Turbofan()->AreAliases(
+                op->representation(), op->register_code(), rep, code)) {
+          return true;
+        }
+      }
     }
   }
   return false;
@@ -319,11 +325,7 @@
     case UsePositionHintType::kOperand: {
       InstructionOperand* operand =
           reinterpret_cast<InstructionOperand*>(hint_);
-      int assigned_register =
-          operand->IsRegister()
-              ? LocationOperand::cast(operand)->GetRegister().code()
-              : LocationOperand::cast(operand)->GetDoubleRegister().code();
-      *register_code = assigned_register;
+      *register_code = LocationOperand::cast(operand)->register_code();
       return true;
     }
     case UsePositionHintType::kPhi: {
@@ -413,11 +415,6 @@
   return os;
 }
 
-
-const float LiveRange::kInvalidWeight = -1;
-const float LiveRange::kMaxWeight = std::numeric_limits<float>::max();
-
-
 LiveRange::LiveRange(int relative_id, MachineRepresentation rep,
                      TopLevelLiveRange* top_level)
     : relative_id_(relative_id),
@@ -430,10 +427,7 @@
       current_interval_(nullptr),
       last_processed_use_(nullptr),
       current_hint_position_(nullptr),
-      splitting_pointer_(nullptr),
-      size_(kInvalidSize),
-      weight_(kInvalidWeight),
-      group_(nullptr) {
+      splitting_pointer_(nullptr) {
   DCHECK(AllocatedOperand::IsSupportedRepresentation(rep));
   bits_ = AssignedRegisterField::encode(kUnassignedRegister) |
           RepresentationField::encode(rep);
@@ -699,10 +693,6 @@
   last_processed_use_ = nullptr;
   current_interval_ = nullptr;
 
-  // Invalidate size and weight of this range. The child range has them
-  // invalid at construction.
-  size_ = kInvalidSize;
-  weight_ = kInvalidWeight;
 #ifdef DEBUG
   VerifyChildStructure();
   result->VerifyChildStructure();
@@ -818,20 +808,6 @@
   return LifetimePosition::Invalid();
 }
 
-
-unsigned LiveRange::GetSize() {
-  if (size_ == kInvalidSize) {
-    size_ = 0;
-    for (const UseInterval* interval = first_interval(); interval != nullptr;
-         interval = interval->next()) {
-      size_ += (interval->end().value() - interval->start().value());
-    }
-  }
-
-  return static_cast<unsigned>(size_);
-}
-
-
 void LiveRange::Print(const RegisterConfiguration* config,
                       bool with_children) const {
   OFStream os(stdout);
@@ -846,9 +822,7 @@
 
 
 void LiveRange::Print(bool with_children) const {
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
-  Print(config, with_children);
+  Print(RegisterConfiguration::Turbofan(), with_children);
 }
 
 
@@ -1280,12 +1254,6 @@
   parent->SetSpillRange(this);
 }
 
-
-int SpillRange::ByteWidth() const {
-  return GetByteWidth(live_ranges_[0]->representation());
-}
-
-
 bool SpillRange::IsIntersectingWith(SpillRange* other) const {
   if (this->use_interval_ == nullptr || other->use_interval_ == nullptr ||
       this->End() <= other->use_interval_->start() ||
@@ -1388,7 +1356,6 @@
   }
 }
 
-
 RegisterAllocationData::RegisterAllocationData(
     const RegisterConfiguration* config, Zone* zone, Frame* frame,
     InstructionSequence* code, const char* debug_name)
@@ -1404,6 +1371,8 @@
                    allocation_zone()),
       fixed_live_ranges_(this->config()->num_general_registers(), nullptr,
                          allocation_zone()),
+      fixed_float_live_ranges_(this->config()->num_float_registers(), nullptr,
+                               allocation_zone()),
       fixed_double_live_ranges_(this->config()->num_double_registers(), nullptr,
                                 allocation_zone()),
       spill_ranges_(code->VirtualRegisterCount(), nullptr, allocation_zone()),
@@ -1579,17 +1548,32 @@
   return spill_range;
 }
 
-
-void RegisterAllocationData::MarkAllocated(RegisterKind kind, int index) {
-  if (kind == FP_REGISTERS) {
-    assigned_double_registers_->Add(index);
-  } else {
-    DCHECK(kind == GENERAL_REGISTERS);
-    assigned_registers_->Add(index);
+void RegisterAllocationData::MarkAllocated(MachineRepresentation rep,
+                                           int index) {
+  switch (rep) {
+    case MachineRepresentation::kFloat32:
+      if (kSimpleFPAliasing) {
+        assigned_double_registers_->Add(index);
+      } else {
+        int alias_base_index = -1;
+        int aliases = config()->GetAliases(
+            rep, index, MachineRepresentation::kFloat64, &alias_base_index);
+        while (aliases--) {
+          int aliased_reg = alias_base_index + aliases;
+          assigned_double_registers_->Add(aliased_reg);
+        }
+      }
+      break;
+    case MachineRepresentation::kFloat64:
+      assigned_double_registers_->Add(index);
+      break;
+    default:
+      DCHECK(!IsFloatingPoint(rep));
+      assigned_registers_->Add(index);
+      break;
   }
 }
 
-
 bool RegisterAllocationData::IsBlockBoundary(LifetimePosition pos) const {
   return pos.IsFullStart() &&
          code()->GetInstructionBlock(pos.ToInstructionIndex())->code_start() ==
@@ -1618,7 +1602,7 @@
     DCHECK(!IsFloatingPoint(rep));
     allocated = AllocatedOperand(AllocatedOperand::REGISTER, rep,
                                  operand->fixed_register_index());
-  } else if (operand->HasFixedDoubleRegisterPolicy()) {
+  } else if (operand->HasFixedFPRegisterPolicy()) {
     DCHECK(IsFloatingPoint(rep));
     DCHECK_NE(InstructionOperand::kInvalidVirtualRegister, virtual_register);
     allocated = AllocatedOperand(AllocatedOperand::REGISTER, rep,
@@ -1903,42 +1887,62 @@
   }
 }
 
-
-int LiveRangeBuilder::FixedDoubleLiveRangeID(int index) {
-  return -index - 1 - config()->num_general_registers();
+int LiveRangeBuilder::FixedFPLiveRangeID(int index, MachineRepresentation rep) {
+  switch (rep) {
+    case MachineRepresentation::kFloat32:
+      return -index - 1 - config()->num_general_registers();
+    case MachineRepresentation::kFloat64:
+      return -index - 1 - config()->num_general_registers() -
+             config()->num_float_registers();
+    default:
+      break;
+  }
+  UNREACHABLE();
+  return 0;
 }
 
-
 TopLevelLiveRange* LiveRangeBuilder::FixedLiveRangeFor(int index) {
   DCHECK(index < config()->num_general_registers());
   TopLevelLiveRange* result = data()->fixed_live_ranges()[index];
   if (result == nullptr) {
-    result = data()->NewLiveRange(FixedLiveRangeID(index),
-                                  InstructionSequence::DefaultRepresentation());
+    MachineRepresentation rep = InstructionSequence::DefaultRepresentation();
+    result = data()->NewLiveRange(FixedLiveRangeID(index), rep);
     DCHECK(result->IsFixed());
     result->set_assigned_register(index);
-    data()->MarkAllocated(GENERAL_REGISTERS, index);
+    data()->MarkAllocated(rep, index);
     data()->fixed_live_ranges()[index] = result;
   }
   return result;
 }
 
-
-TopLevelLiveRange* LiveRangeBuilder::FixedDoubleLiveRangeFor(int index) {
-  DCHECK(index < config()->num_double_registers());
-  TopLevelLiveRange* result = data()->fixed_double_live_ranges()[index];
-  if (result == nullptr) {
-    result = data()->NewLiveRange(FixedDoubleLiveRangeID(index),
-                                  MachineRepresentation::kFloat64);
-    DCHECK(result->IsFixed());
-    result->set_assigned_register(index);
-    data()->MarkAllocated(FP_REGISTERS, index);
-    data()->fixed_double_live_ranges()[index] = result;
+TopLevelLiveRange* LiveRangeBuilder::FixedFPLiveRangeFor(
+    int index, MachineRepresentation rep) {
+  TopLevelLiveRange* result = nullptr;
+  if (rep == MachineRepresentation::kFloat64) {
+    DCHECK(index < config()->num_double_registers());
+    result = data()->fixed_double_live_ranges()[index];
+    if (result == nullptr) {
+      result = data()->NewLiveRange(FixedFPLiveRangeID(index, rep), rep);
+      DCHECK(result->IsFixed());
+      result->set_assigned_register(index);
+      data()->MarkAllocated(rep, index);
+      data()->fixed_double_live_ranges()[index] = result;
+    }
+  } else {
+    DCHECK(rep == MachineRepresentation::kFloat32);
+    DCHECK(index < config()->num_float_registers());
+    result = data()->fixed_float_live_ranges()[index];
+    if (result == nullptr) {
+      result = data()->NewLiveRange(FixedFPLiveRangeID(index, rep), rep);
+      DCHECK(result->IsFixed());
+      result->set_assigned_register(index);
+      data()->MarkAllocated(rep, index);
+      data()->fixed_float_live_ranges()[index] = result;
+    }
   }
   return result;
 }
 
-
 TopLevelLiveRange* LiveRangeBuilder::LiveRangeFor(InstructionOperand* operand) {
   if (operand->IsUnallocated()) {
     return data()->GetOrCreateLiveRangeFor(
@@ -1950,8 +1954,8 @@
     return FixedLiveRangeFor(
         LocationOperand::cast(operand)->GetRegister().code());
   } else if (operand->IsFPRegister()) {
-    return FixedDoubleLiveRangeFor(
-        LocationOperand::cast(operand)->GetDoubleRegister().code());
+    LocationOperand* op = LocationOperand::cast(operand);
+    return FixedFPLiveRangeFor(op->register_code(), op->representation());
   } else {
     return nullptr;
   }
@@ -2047,7 +2051,7 @@
     if (instr->ClobbersRegisters()) {
       for (int i = 0; i < config()->num_allocatable_general_registers(); ++i) {
         int code = config()->GetAllocatableGeneralCode(i);
-        if (!IsOutputRegisterOf(instr, Register::from_code(code))) {
+        if (!IsOutputRegisterOf(instr, code)) {
           TopLevelLiveRange* range = FixedLiveRangeFor(code);
           range->AddUseInterval(curr_position, curr_position.End(),
                                 allocation_zone());
@@ -2056,15 +2060,29 @@
     }
 
     if (instr->ClobbersDoubleRegisters()) {
-      for (int i = 0; i < config()->num_allocatable_aliased_double_registers();
-           ++i) {
+      for (int i = 0; i < config()->num_allocatable_double_registers(); ++i) {
         int code = config()->GetAllocatableDoubleCode(i);
-        if (!IsOutputDoubleRegisterOf(instr, DoubleRegister::from_code(code))) {
-          TopLevelLiveRange* range = FixedDoubleLiveRangeFor(code);
+        if (!IsOutputFPRegisterOf(instr, MachineRepresentation::kFloat64,
+                                  code)) {
+          TopLevelLiveRange* range =
+              FixedFPLiveRangeFor(code, MachineRepresentation::kFloat64);
           range->AddUseInterval(curr_position, curr_position.End(),
                                 allocation_zone());
         }
       }
+      // Preserve fixed float registers on archs with non-simple aliasing.
+      if (!kSimpleFPAliasing) {
+        for (int i = 0; i < config()->num_allocatable_float_registers(); ++i) {
+          int code = config()->GetAllocatableFloatCode(i);
+          if (!IsOutputFPRegisterOf(instr, MachineRepresentation::kFloat32,
+                                    code)) {
+            TopLevelLiveRange* range =
+                FixedFPLiveRangeFor(code, MachineRepresentation::kFloat32);
+            range->AddUseInterval(curr_position, curr_position.End(),
+                                  allocation_zone());
+          }
+        }
+      }
     }
 
     for (size_t i = 0; i < instr->InputCount(); i++) {
@@ -2184,23 +2202,24 @@
     // block.
     int phi_vreg = phi->virtual_register();
     live->Remove(phi_vreg);
-    InstructionOperand* hint = nullptr;
+    // Select the hint from the first predecessor block that preceeds this block
+    // in the rpo ordering. Prefer non-deferred blocks. The enforcement of
+    // hinting in rpo order is required because hint resolution that happens
+    // later in the compiler pipeline visits instructions in reverse rpo,
+    // relying on the fact that phis are encountered before their hints.
+    const Instruction* instr = nullptr;
     const InstructionBlock::Predecessors& predecessors = block->predecessors();
-    const InstructionBlock* predecessor_block =
-        code()->InstructionBlockAt(predecessors[0]);
-    const Instruction* instr = GetLastInstruction(code(), predecessor_block);
-    if (predecessor_block->IsDeferred()) {
-      // "Prefer the hint from the first non-deferred predecessor, if any.
-      for (size_t i = 1; i < predecessors.size(); ++i) {
-        predecessor_block = code()->InstructionBlockAt(predecessors[i]);
-        if (!predecessor_block->IsDeferred()) {
-          instr = GetLastInstruction(code(), predecessor_block);
-          break;
-        }
+    for (size_t i = 0; i < predecessors.size(); ++i) {
+      const InstructionBlock* predecessor_block =
+          code()->InstructionBlockAt(predecessors[i]);
+      if (predecessor_block->rpo_number() < block->rpo_number()) {
+        instr = GetLastInstruction(code(), predecessor_block);
+        if (!predecessor_block->IsDeferred()) break;
       }
     }
     DCHECK_NOT_NULL(instr);
 
+    InstructionOperand* hint = nullptr;
     for (MoveOperands* move : *instr->GetParallelMove(Instruction::END)) {
       InstructionOperand& to = move->destination();
       if (to.IsUnallocated() &&
@@ -2408,7 +2427,6 @@
       allocatable_register_codes_(
           GetAllocatableRegisterCodes(data->config(), kind)) {}
 
-
 LifetimePosition RegisterAllocator::GetSplitPositionForInstruction(
     const LiveRange* range, int instruction_index) {
   LifetimePosition ret = LifetimePosition::Invalid();
@@ -2577,14 +2595,6 @@
   range->Spill();
 }
 
-
-const ZoneVector<TopLevelLiveRange*>& RegisterAllocator::GetFixedRegisters()
-    const {
-  return mode() == FP_REGISTERS ? data()->fixed_double_live_ranges()
-                                : data()->fixed_live_ranges();
-}
-
-
 const char* RegisterAllocator::RegisterName(int register_code) const {
   if (mode() == GENERAL_REGISTERS) {
     return data()->config()->GetGeneralRegisterName(register_code);
@@ -2631,11 +2641,16 @@
   SortUnhandled();
   DCHECK(UnhandledIsSorted());
 
-  auto& fixed_ranges = GetFixedRegisters();
-  for (TopLevelLiveRange* current : fixed_ranges) {
-    if (current != nullptr) {
-      DCHECK_EQ(mode(), current->kind());
-      AddToInactive(current);
+  if (mode() == GENERAL_REGISTERS) {
+    for (TopLevelLiveRange* current : data()->fixed_live_ranges()) {
+      if (current != nullptr) AddToInactive(current);
+    }
+  } else {
+    for (TopLevelLiveRange* current : data()->fixed_float_live_ranges()) {
+      if (current != nullptr) AddToInactive(current);
+    }
+    for (TopLevelLiveRange* current : data()->fixed_double_live_ranges()) {
+      if (current != nullptr) AddToInactive(current);
     }
   }
 
@@ -2689,7 +2704,7 @@
 
 void LinearScanAllocator::SetLiveRangeAssignedRegister(LiveRange* range,
                                                        int reg) {
-  data()->MarkAllocated(range->kind(), reg);
+  data()->MarkAllocated(range->representation(), reg);
   range->set_assigned_register(reg);
   range->SetUseHints(reg);
   if (range->IsTopLevel() && range->TopLevel()->is_phi()) {
@@ -2803,18 +2818,37 @@
 
 
 bool LinearScanAllocator::TryAllocateFreeReg(LiveRange* current) {
+  int num_regs = num_registers();
+  int num_codes = num_allocatable_registers();
+  const int* codes = allocatable_register_codes();
+  if (!kSimpleFPAliasing &&
+      (current->representation() == MachineRepresentation::kFloat32)) {
+    num_regs = data()->config()->num_float_registers();
+    num_codes = data()->config()->num_allocatable_float_registers();
+    codes = data()->config()->allocatable_float_codes();
+  }
   LifetimePosition free_until_pos[RegisterConfiguration::kMaxFPRegisters];
-
-  for (int i = 0; i < num_registers(); i++) {
+  for (int i = 0; i < num_regs; i++) {
     free_until_pos[i] = LifetimePosition::MaxPosition();
   }
 
   for (LiveRange* cur_active : active_live_ranges()) {
-    free_until_pos[cur_active->assigned_register()] =
-        LifetimePosition::GapFromInstructionIndex(0);
-    TRACE("Register %s is free until pos %d (1)\n",
-          RegisterName(cur_active->assigned_register()),
-          LifetimePosition::GapFromInstructionIndex(0).value());
+    int cur_reg = cur_active->assigned_register();
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      free_until_pos[cur_reg] = LifetimePosition::GapFromInstructionIndex(0);
+      TRACE("Register %s is free until pos %d (1)\n", RegisterName(cur_reg),
+            LifetimePosition::GapFromInstructionIndex(0).value());
+    } else {
+      int alias_base_index = -1;
+      int aliases = data()->config()->GetAliases(
+          cur_active->representation(), cur_reg, current->representation(),
+          &alias_base_index);
+      while (aliases--) {
+        int aliased_reg = alias_base_index + aliases;
+        free_until_pos[aliased_reg] =
+            LifetimePosition::GapFromInstructionIndex(0);
+      }
+    }
   }
 
   for (LiveRange* cur_inactive : inactive_live_ranges()) {
@@ -2823,9 +2857,21 @@
         cur_inactive->FirstIntersection(current);
     if (!next_intersection.IsValid()) continue;
     int cur_reg = cur_inactive->assigned_register();
-    free_until_pos[cur_reg] = Min(free_until_pos[cur_reg], next_intersection);
-    TRACE("Register %s is free until pos %d (2)\n", RegisterName(cur_reg),
-          Min(free_until_pos[cur_reg], next_intersection).value());
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      free_until_pos[cur_reg] = Min(free_until_pos[cur_reg], next_intersection);
+      TRACE("Register %s is free until pos %d (2)\n", RegisterName(cur_reg),
+            Min(free_until_pos[cur_reg], next_intersection).value());
+    } else {
+      int alias_base_index = -1;
+      int aliases = data()->config()->GetAliases(
+          cur_inactive->representation(), cur_reg, current->representation(),
+          &alias_base_index);
+      while (aliases--) {
+        int aliased_reg = alias_base_index + aliases;
+        free_until_pos[aliased_reg] =
+            Min(free_until_pos[aliased_reg], next_intersection);
+      }
+    }
   }
 
   int hint_register;
@@ -2847,9 +2893,9 @@
   }
 
   // Find the register which stays free for the longest time.
-  int reg = allocatable_register_code(0);
-  for (int i = 1; i < num_allocatable_registers(); ++i) {
-    int code = allocatable_register_code(i);
+  int reg = codes[0];
+  for (int i = 1; i < num_codes; ++i) {
+    int code = codes[i];
     if (free_until_pos[code] > free_until_pos[reg]) {
       reg = code;
     }
@@ -2869,8 +2915,8 @@
     AddToUnhandledSorted(tail);
   }
 
-  // Register reg is available at the range start and is free until
-  // the range end.
+  // Register reg is available at the range start and is free until the range
+  // end.
   DCHECK(pos >= current->End());
   TRACE("Assigning free reg %s to live range %d:%d\n", RegisterName(reg),
         current->TopLevel()->vreg(), current->relative_id());
@@ -2889,26 +2935,58 @@
     return;
   }
 
+  int num_regs = num_registers();
+  int num_codes = num_allocatable_registers();
+  const int* codes = allocatable_register_codes();
+  if (!kSimpleFPAliasing &&
+      (current->representation() == MachineRepresentation::kFloat32)) {
+    num_regs = data()->config()->num_float_registers();
+    num_codes = data()->config()->num_allocatable_float_registers();
+    codes = data()->config()->allocatable_float_codes();
+  }
+
   LifetimePosition use_pos[RegisterConfiguration::kMaxFPRegisters];
   LifetimePosition block_pos[RegisterConfiguration::kMaxFPRegisters];
-
-  for (int i = 0; i < num_registers(); i++) {
+  for (int i = 0; i < num_regs; i++) {
     use_pos[i] = block_pos[i] = LifetimePosition::MaxPosition();
   }
 
   for (LiveRange* range : active_live_ranges()) {
     int cur_reg = range->assigned_register();
-    if (range->TopLevel()->IsFixed() ||
-        !range->CanBeSpilled(current->Start())) {
-      block_pos[cur_reg] = use_pos[cur_reg] =
-          LifetimePosition::GapFromInstructionIndex(0);
-    } else {
-      UsePosition* next_use =
-          range->NextUsePositionRegisterIsBeneficial(current->Start());
-      if (next_use == nullptr) {
-        use_pos[cur_reg] = range->End();
+    bool is_fixed_or_cant_spill =
+        range->TopLevel()->IsFixed() || !range->CanBeSpilled(current->Start());
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      if (is_fixed_or_cant_spill) {
+        block_pos[cur_reg] = use_pos[cur_reg] =
+            LifetimePosition::GapFromInstructionIndex(0);
       } else {
-        use_pos[cur_reg] = next_use->pos();
+        UsePosition* next_use =
+            range->NextUsePositionRegisterIsBeneficial(current->Start());
+        if (next_use == nullptr) {
+          use_pos[cur_reg] = range->End();
+        } else {
+          use_pos[cur_reg] = next_use->pos();
+        }
+      }
+    } else {
+      int alias_base_index = -1;
+      int aliases = data()->config()->GetAliases(
+          range->representation(), cur_reg, current->representation(),
+          &alias_base_index);
+      while (aliases--) {
+        int aliased_reg = alias_base_index + aliases;
+        if (is_fixed_or_cant_spill) {
+          block_pos[aliased_reg] = use_pos[aliased_reg] =
+              LifetimePosition::GapFromInstructionIndex(0);
+        } else {
+          UsePosition* next_use =
+              range->NextUsePositionRegisterIsBeneficial(current->Start());
+          if (next_use == nullptr) {
+            use_pos[aliased_reg] = range->End();
+          } else {
+            use_pos[aliased_reg] = next_use->pos();
+          }
+        }
       }
     }
   }
@@ -2918,17 +2996,36 @@
     LifetimePosition next_intersection = range->FirstIntersection(current);
     if (!next_intersection.IsValid()) continue;
     int cur_reg = range->assigned_register();
-    if (range->TopLevel()->IsFixed()) {
-      block_pos[cur_reg] = Min(block_pos[cur_reg], next_intersection);
-      use_pos[cur_reg] = Min(block_pos[cur_reg], use_pos[cur_reg]);
+    bool is_fixed = range->TopLevel()->IsFixed();
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      if (is_fixed) {
+        block_pos[cur_reg] = Min(block_pos[cur_reg], next_intersection);
+        use_pos[cur_reg] = Min(block_pos[cur_reg], use_pos[cur_reg]);
+      } else {
+        use_pos[cur_reg] = Min(use_pos[cur_reg], next_intersection);
+      }
     } else {
-      use_pos[cur_reg] = Min(use_pos[cur_reg], next_intersection);
+      int alias_base_index = -1;
+      int aliases = data()->config()->GetAliases(
+          range->representation(), cur_reg, current->representation(),
+          &alias_base_index);
+      while (aliases--) {
+        int aliased_reg = alias_base_index + aliases;
+        if (is_fixed) {
+          block_pos[aliased_reg] =
+              Min(block_pos[aliased_reg], next_intersection);
+          use_pos[aliased_reg] =
+              Min(block_pos[aliased_reg], use_pos[aliased_reg]);
+        } else {
+          use_pos[aliased_reg] = Min(use_pos[aliased_reg], next_intersection);
+        }
+      }
     }
   }
 
-  int reg = allocatable_register_code(0);
-  for (int i = 1; i < num_allocatable_registers(); ++i) {
-    int code = allocatable_register_code(i);
+  int reg = codes[0];
+  for (int i = 1; i < num_codes; ++i) {
+    int code = codes[i];
     if (use_pos[code] > use_pos[reg]) {
       reg = code;
     }
@@ -2974,45 +3071,61 @@
   LifetimePosition split_pos = current->Start();
   for (size_t i = 0; i < active_live_ranges().size(); ++i) {
     LiveRange* range = active_live_ranges()[i];
-    if (range->assigned_register() == reg) {
-      UsePosition* next_pos = range->NextRegisterPosition(current->Start());
-      LifetimePosition spill_pos = FindOptimalSpillingPos(range, split_pos);
-      if (next_pos == nullptr) {
-        SpillAfter(range, spill_pos);
-      } else {
-        // When spilling between spill_pos and next_pos ensure that the range
-        // remains spilled at least until the start of the current live range.
-        // This guarantees that we will not introduce new unhandled ranges that
-        // start before the current range as this violates allocation invariant
-        // and will lead to an inconsistent state of active and inactive
-        // 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());
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      if (range->assigned_register() != reg) continue;
+    } else {
+      if (!data()->config()->AreAliases(current->representation(), reg,
+                                        range->representation(),
+                                        range->assigned_register())) {
+        continue;
       }
-      ActiveToHandled(range);
-      --i;
     }
+
+    UsePosition* next_pos = range->NextRegisterPosition(current->Start());
+    LifetimePosition spill_pos = FindOptimalSpillingPos(range, split_pos);
+    if (next_pos == nullptr) {
+      SpillAfter(range, spill_pos);
+    } else {
+      // When spilling between spill_pos and next_pos ensure that the range
+      // remains spilled at least until the start of the current live range.
+      // This guarantees that we will not introduce new unhandled ranges that
+      // start before the current range as this violates allocation invariants
+      // and will lead to an inconsistent state of active and inactive
+      // 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);
+    --i;
   }
 
   for (size_t i = 0; i < inactive_live_ranges().size(); ++i) {
     LiveRange* range = inactive_live_ranges()[i];
     DCHECK(range->End() > current->Start());
-    if (range->assigned_register() == reg && !range->TopLevel()->IsFixed()) {
-      LifetimePosition next_intersection = range->FirstIntersection(current);
-      if (next_intersection.IsValid()) {
-        UsePosition* next_pos = range->NextRegisterPosition(current->Start());
-        if (next_pos == nullptr) {
-          SpillAfter(range, split_pos);
-        } else {
-          next_intersection = Min(next_intersection, next_pos->pos());
-          SpillBetween(range, split_pos, next_intersection);
-        }
-        InactiveToHandled(range);
-        --i;
+    if (range->TopLevel()->IsFixed()) continue;
+    if (kSimpleFPAliasing || mode() == GENERAL_REGISTERS) {
+      if (range->assigned_register() != reg) continue;
+    } else {
+      if (!data()->config()->AreAliases(current->representation(), reg,
+                                        range->representation(),
+                                        range->assigned_register()))
+        continue;
+    }
+
+    LifetimePosition next_intersection = range->FirstIntersection(current);
+    if (next_intersection.IsValid()) {
+      UsePosition* next_pos = range->NextRegisterPosition(current->Start());
+      if (next_pos == nullptr) {
+        SpillAfter(range, split_pos);
+      } else {
+        next_intersection = Min(next_intersection, next_pos->pos());
+        SpillBetween(range, split_pos, next_intersection);
       }
+      InactiveToHandled(range);
+      --i;
     }
   }
 }
@@ -3192,8 +3305,7 @@
     if (range == nullptr || range->IsEmpty()) continue;
     // Allocate a new operand referring to the spill slot.
     if (!range->HasSlot()) {
-      int byte_width = range->ByteWidth();
-      int index = data()->frame()->AllocateSpillSlot(byte_width);
+      int index = data()->frame()->AllocateSpillSlot(range->byte_width());
       range->set_assigned_slot(index);
     }
   }
diff --git a/src/compiler/register-allocator.h b/src/compiler/register-allocator.h
index c67d60e..caadcba 100644
--- a/src/compiler/register-allocator.h
+++ b/src/compiler/register-allocator.h
@@ -412,19 +412,9 @@
   void SetUseHints(int register_index);
   void UnsetUseHints() { SetUseHints(kUnassignedRegister); }
 
-  // Used solely by the Greedy Allocator:
-  unsigned GetSize();
-  float weight() const { return weight_; }
-  void set_weight(float weight) { weight_ = weight; }
-  LiveRangeGroup* group() const { return group_; }
-  void set_group(LiveRangeGroup* group) { group_ = group; }
   void Print(const RegisterConfiguration* config, bool with_children) const;
   void Print(bool with_children) const;
 
-  static const int kInvalidSize = -1;
-  static const float kInvalidWeight;
-  static const float kMaxWeight;
-
  private:
   friend class TopLevelLiveRange;
   explicit LiveRange(int relative_id, MachineRepresentation rep,
@@ -461,17 +451,6 @@
   mutable UsePosition* current_hint_position_;
   // Cache the last position splintering stopped at.
   mutable UsePosition* splitting_pointer_;
-  // greedy: the number of LifetimePositions covered by this range. Used to
-  // prioritize selecting live ranges for register assignment, as well as
-  // in weight calculations.
-  int size_;
-
-  // greedy: a metric for resolving conflicts between ranges with an assigned
-  // register and ranges that intersect them and need a register.
-  float weight_;
-
-  // greedy: groupping
-  LiveRangeGroup* group_;
 
   DISALLOW_COPY_AND_ASSIGN(LiveRange);
 };
@@ -483,7 +462,6 @@
   ZoneVector<LiveRange*>& ranges() { return ranges_; }
   const ZoneVector<LiveRange*>& ranges() const { return ranges_; }
 
-  // TODO(mtrofin): populate assigned register and use in weight calculation.
   int assigned_register() const { return assigned_register_; }
   void set_assigned_register(int reg) { assigned_register_ = reg; }
 
@@ -700,8 +678,7 @@
   SpillRange(TopLevelLiveRange* range, Zone* zone);
 
   UseInterval* interval() const { return use_interval_; }
-  // Currently, only 4 or 8 byte slots are supported.
-  int ByteWidth() const;
+
   bool IsEmpty() const { return live_ranges_.empty(); }
   bool TryMerge(SpillRange* other);
   bool HasSlot() const { return assigned_slot_ != kUnassignedSlot; }
@@ -790,6 +767,12 @@
   ZoneVector<TopLevelLiveRange*>& fixed_live_ranges() {
     return fixed_live_ranges_;
   }
+  ZoneVector<TopLevelLiveRange*>& fixed_float_live_ranges() {
+    return fixed_float_live_ranges_;
+  }
+  const ZoneVector<TopLevelLiveRange*>& fixed_float_live_ranges() const {
+    return fixed_float_live_ranges_;
+  }
   ZoneVector<TopLevelLiveRange*>& fixed_double_live_ranges() {
     return fixed_double_live_ranges_;
   }
@@ -801,7 +784,7 @@
   ZoneVector<SpillRange*>& spill_ranges() { return spill_ranges_; }
   DelayedReferences& delayed_references() { return delayed_references_; }
   InstructionSequence* code() const { return code_; }
-  // This zone is for datastructures only needed during register allocation
+  // This zone is for data structures only needed during register allocation
   // phases.
   Zone* allocation_zone() const { return allocation_zone_; }
   // This zone is for InstructionOperands and moves that live beyond register
@@ -832,7 +815,7 @@
   bool ExistsUseWithoutDefinition();
   bool RangesDefinedInDeferredStayInDeferred();
 
-  void MarkAllocated(RegisterKind kind, int index);
+  void MarkAllocated(MachineRepresentation rep, int index);
 
   PhiMapValue* InitializePhiMap(const InstructionBlock* block,
                                 PhiInstruction* phi);
@@ -857,6 +840,7 @@
   ZoneVector<BitVector*> live_out_sets_;
   ZoneVector<TopLevelLiveRange*> live_ranges_;
   ZoneVector<TopLevelLiveRange*> fixed_live_ranges_;
+  ZoneVector<TopLevelLiveRange*> fixed_float_live_ranges_;
   ZoneVector<TopLevelLiveRange*> fixed_double_live_ranges_;
   ZoneVector<SpillRange*> spill_ranges_;
   DelayedReferences delayed_references_;
@@ -933,9 +917,9 @@
   void ProcessLoopHeader(const InstructionBlock* block, BitVector* live);
 
   static int FixedLiveRangeID(int index) { return -index - 1; }
-  int FixedDoubleLiveRangeID(int index);
+  int FixedFPLiveRangeID(int index, MachineRepresentation rep);
   TopLevelLiveRange* FixedLiveRangeFor(int index);
-  TopLevelLiveRange* FixedDoubleLiveRangeFor(int index);
+  TopLevelLiveRange* FixedFPLiveRangeFor(int index, MachineRepresentation rep);
 
   void MapPhiHint(InstructionOperand* operand, UsePosition* use_pos);
   void ResolvePhiHint(InstructionOperand* operand, UsePosition* use_pos);
@@ -969,7 +953,7 @@
 
 class RegisterAllocator : public ZoneObject {
  public:
-  explicit RegisterAllocator(RegisterAllocationData* data, RegisterKind kind);
+  RegisterAllocator(RegisterAllocationData* data, RegisterKind kind);
 
  protected:
   RegisterAllocationData* data() const { return data_; }
@@ -977,8 +961,8 @@
   RegisterKind mode() const { return mode_; }
   int num_registers() const { return num_registers_; }
   int num_allocatable_registers() const { return num_allocatable_registers_; }
-  int allocatable_register_code(int allocatable_index) const {
-    return allocatable_register_codes_[allocatable_index];
+  const int* allocatable_register_codes() const {
+    return allocatable_register_codes_;
   }
 
   // TODO(mtrofin): explain why splitting in gap START is always OK.
@@ -1031,6 +1015,9 @@
   int num_allocatable_registers_;
   const int* allocatable_register_codes_;
 
+ private:
+  bool no_combining_;
+
   DISALLOW_COPY_AND_ASSIGN(RegisterAllocator);
 };
 
diff --git a/src/compiler/representation-change.cc b/src/compiler/representation-change.cc
index 180355d..d1aa5af 100644
--- a/src/compiler/representation-change.cc
+++ b/src/compiler/representation-change.cc
@@ -105,46 +105,55 @@
 
 }  // namespace
 
-
 // Changes representation from {output_rep} to {use_rep}. The {truncation}
 // parameter is only used for sanity checking - if the changer cannot figure
 // out signedness for the word32->float64 conversion, then we check that the
 // uses truncate to word32 (so they do not care about signedness).
 Node* RepresentationChanger::GetRepresentationFor(
     Node* node, MachineRepresentation output_rep, Type* output_type,
-    MachineRepresentation use_rep, Truncation truncation) {
+    Node* use_node, UseInfo use_info) {
   if (output_rep == MachineRepresentation::kNone) {
     // The output representation should be set.
-    return TypeError(node, output_rep, output_type, use_rep);
+    return TypeError(node, output_rep, output_type, use_info.representation());
   }
-  if (use_rep == output_rep) {
-    // Representations are the same. That's a no-op.
-    return node;
+
+  // Handle the no-op shortcuts when no checking is necessary.
+  if (use_info.type_check() == TypeCheckKind::kNone ||
+      output_rep != MachineRepresentation::kWord32) {
+    if (use_info.representation() == output_rep) {
+      // Representations are the same. That's a no-op.
+      return node;
+    }
+    if (IsWord(use_info.representation()) && IsWord(output_rep)) {
+      // Both are words less than or equal to 32-bits.
+      // Since loads of integers from memory implicitly sign or zero extend the
+      // value to the full machine word size and stores implicitly truncate,
+      // no representation change is necessary.
+      return node;
+    }
   }
-  if (IsWord(use_rep) && IsWord(output_rep)) {
-    // Both are words less than or equal to 32-bits.
-    // Since loads of integers from memory implicitly sign or zero extend the
-    // value to the full machine word size and stores implicitly truncate,
-    // no representation change is necessary.
-    return node;
-  }
-  switch (use_rep) {
+
+  switch (use_info.representation()) {
     case MachineRepresentation::kTagged:
+      DCHECK(use_info.type_check() == TypeCheckKind::kNone);
       return GetTaggedRepresentationFor(node, output_rep, output_type);
     case MachineRepresentation::kFloat32:
+      DCHECK(use_info.type_check() == TypeCheckKind::kNone);
       return GetFloat32RepresentationFor(node, output_rep, output_type,
-                                         truncation);
+                                         use_info.truncation());
     case MachineRepresentation::kFloat64:
       return GetFloat64RepresentationFor(node, output_rep, output_type,
-                                         truncation);
+                                         use_node, use_info);
     case MachineRepresentation::kBit:
+      DCHECK(use_info.type_check() == TypeCheckKind::kNone);
       return GetBitRepresentationFor(node, output_rep, output_type);
     case MachineRepresentation::kWord8:
     case MachineRepresentation::kWord16:
     case MachineRepresentation::kWord32:
-      return GetWord32RepresentationFor(node, output_rep, output_type,
-                                        truncation);
+      return GetWord32RepresentationFor(node, output_rep, output_type, use_node,
+                                        use_info);
     case MachineRepresentation::kWord64:
+      DCHECK(use_info.type_check() == TypeCheckKind::kNone);
       return GetWord64RepresentationFor(node, output_rep, output_type);
     case MachineRepresentation::kSimd128:  // Fall through.
       // TODO(bbudge) Handle conversions between tagged and untagged.
@@ -156,7 +165,6 @@
   return nullptr;
 }
 
-
 Node* RepresentationChanger::GetTaggedRepresentationFor(
     Node* node, MachineRepresentation output_rep, Type* output_type) {
   // Eagerly fold representation changes for constants.
@@ -271,8 +279,12 @@
     }
   } else if (output_rep == MachineRepresentation::kTagged) {
     if (output_type->Is(Type::NumberOrUndefined())) {
-      op = simplified()
-               ->ChangeTaggedToFloat64();  // tagged -> float64 -> float32
+      // tagged -> float64 -> float32
+      if (output_type->Is(Type::Number())) {
+        op = simplified()->ChangeTaggedToFloat64();
+      } else {
+        op = simplified()->TruncateTaggedToFloat64();
+      }
       node = jsgraph()->graph()->NewNode(op, node);
       op = machine()->TruncateFloat64ToFloat32();
     }
@@ -286,29 +298,31 @@
   return jsgraph()->graph()->NewNode(op, node);
 }
 
-
 Node* RepresentationChanger::GetFloat64RepresentationFor(
     Node* node, MachineRepresentation output_rep, Type* output_type,
-    Truncation truncation) {
+    Node* use_node, UseInfo use_info) {
   // Eagerly fold representation changes for constants.
-  switch (node->opcode()) {
-    case IrOpcode::kNumberConstant:
-      return jsgraph()->Float64Constant(OpParameter<double>(node));
-    case IrOpcode::kInt32Constant:
-      if (output_type->Is(Type::Signed32())) {
-        int32_t value = OpParameter<int32_t>(node);
-        return jsgraph()->Float64Constant(value);
-      } else {
-        DCHECK(output_type->Is(Type::Unsigned32()));
-        uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node));
-        return jsgraph()->Float64Constant(static_cast<double>(value));
-      }
-    case IrOpcode::kFloat64Constant:
-      return node;  // No change necessary.
-    case IrOpcode::kFloat32Constant:
-      return jsgraph()->Float64Constant(OpParameter<float>(node));
-    default:
-      break;
+  if ((use_info.type_check() == TypeCheckKind::kNone)) {
+    // TODO(jarin) Handle checked constant conversions.
+    switch (node->opcode()) {
+      case IrOpcode::kNumberConstant:
+        return jsgraph()->Float64Constant(OpParameter<double>(node));
+      case IrOpcode::kInt32Constant:
+        if (output_type->Is(Type::Signed32())) {
+          int32_t value = OpParameter<int32_t>(node);
+          return jsgraph()->Float64Constant(value);
+        } else {
+          DCHECK(output_type->Is(Type::Unsigned32()));
+          uint32_t value = static_cast<uint32_t>(OpParameter<int32_t>(node));
+          return jsgraph()->Float64Constant(static_cast<double>(value));
+        }
+      case IrOpcode::kFloat64Constant:
+        return node;  // No change necessary.
+      case IrOpcode::kFloat32Constant:
+        return jsgraph()->Float64Constant(OpParameter<float>(node));
+      default:
+        break;
+    }
   }
   // Select the correct X -> Float64 operator.
   const Operator* op = nullptr;
@@ -316,7 +330,7 @@
     if (output_type->Is(Type::Signed32())) {
       op = machine()->ChangeInt32ToFloat64();
     } else if (output_type->Is(Type::Unsigned32()) ||
-               truncation.TruncatesToWord32()) {
+               use_info.truncation().TruncatesToWord32()) {
       // Either the output is uint32 or the uses only care about the
       // low 32 bits (so we can pick uint32 safely).
       op = machine()->ChangeUint32ToFloat64();
@@ -328,8 +342,13 @@
     } else if (output_type->Is(Type::TaggedSigned())) {
       node = InsertChangeTaggedSignedToInt32(node);
       op = machine()->ChangeInt32ToFloat64();
-    } else if (output_type->Is(Type::NumberOrUndefined())) {
+    } else if (output_type->Is(Type::Number())) {
       op = simplified()->ChangeTaggedToFloat64();
+    } else if (output_type->Is(Type::NumberOrUndefined())) {
+      // TODO(jarin) Here we should check that truncation is Number.
+      op = simplified()->TruncateTaggedToFloat64();
+    } else if (use_info.type_check() == TypeCheckKind::kNumberOrUndefined) {
+      op = simplified()->CheckedTaggedToFloat64();
     }
   } else if (output_rep == MachineRepresentation::kFloat32) {
     op = machine()->ChangeFloat32ToFloat64();
@@ -338,29 +357,43 @@
     return TypeError(node, output_rep, output_type,
                      MachineRepresentation::kFloat64);
   }
-  return jsgraph()->graph()->NewNode(op, node);
+  return InsertConversion(node, op, use_node);
 }
 
-
 Node* RepresentationChanger::MakeTruncatedInt32Constant(double value) {
   return jsgraph()->Int32Constant(DoubleToInt32(value));
 }
 
 Node* RepresentationChanger::GetWord32RepresentationFor(
     Node* node, MachineRepresentation output_rep, Type* output_type,
-    Truncation truncation) {
+    Node* use_node, UseInfo use_info) {
   // Eagerly fold representation changes for constants.
   switch (node->opcode()) {
     case IrOpcode::kInt32Constant:
       return node;  // No change necessary.
-    case IrOpcode::kFloat32Constant:
-      return MakeTruncatedInt32Constant(OpParameter<float>(node));
+    case IrOpcode::kFloat32Constant: {
+      float const fv = OpParameter<float>(node);
+      if (use_info.type_check() == TypeCheckKind::kNone ||
+          (use_info.type_check() == TypeCheckKind::kSigned32 &&
+           IsInt32Double(fv))) {
+        return MakeTruncatedInt32Constant(fv);
+      }
+      break;
+    }
     case IrOpcode::kNumberConstant:
-    case IrOpcode::kFloat64Constant:
-      return MakeTruncatedInt32Constant(OpParameter<double>(node));
+    case IrOpcode::kFloat64Constant: {
+      double const fv = OpParameter<double>(node);
+      if (use_info.type_check() == TypeCheckKind::kNone ||
+          (use_info.type_check() == TypeCheckKind::kSigned32 &&
+           IsInt32Double(fv))) {
+        return MakeTruncatedInt32Constant(fv);
+      }
+      break;
+    }
     default:
       break;
   }
+
   // Select the correct X -> Word32 operator.
   const Operator* op = nullptr;
   if (output_rep == MachineRepresentation::kBit) {
@@ -370,8 +403,10 @@
       op = machine()->ChangeFloat64ToUint32();
     } else if (output_type->Is(Type::Signed32())) {
       op = machine()->ChangeFloat64ToInt32();
-    } else if (truncation.TruncatesToWord32()) {
+    } else if (use_info.truncation().TruncatesToWord32()) {
       op = machine()->TruncateFloat64ToWord32();
+    } else if (use_info.type_check() == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedFloat64ToInt32();
     }
   } else if (output_rep == MachineRepresentation::kFloat32) {
     node = InsertChangeFloat32ToFloat64(node);  // float32 -> float64 -> int32
@@ -379,8 +414,10 @@
       op = machine()->ChangeFloat64ToUint32();
     } else if (output_type->Is(Type::Signed32())) {
       op = machine()->ChangeFloat64ToInt32();
-    } else if (truncation.TruncatesToWord32()) {
+    } else if (use_info.truncation().TruncatesToWord32()) {
       op = machine()->TruncateFloat64ToWord32();
+    } else if (use_info.type_check() == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedFloat64ToInt32();
     }
   } else if (output_rep == MachineRepresentation::kTagged) {
     if (output_type->Is(Type::TaggedSigned())) {
@@ -389,14 +426,45 @@
       op = simplified()->ChangeTaggedToUint32();
     } else if (output_type->Is(Type::Signed32())) {
       op = simplified()->ChangeTaggedToInt32();
-    } else if (truncation.TruncatesToWord32()) {
+    } else if (use_info.truncation().TruncatesToWord32()) {
       op = simplified()->TruncateTaggedToWord32();
+    } else if (use_info.type_check() == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedTaggedToInt32();
     }
+  } else if (output_rep == MachineRepresentation::kWord32) {
+    // Only the checked case should get here, the non-checked case is
+    // handled in GetRepresentationFor.
+    DCHECK(use_info.type_check() == TypeCheckKind::kSigned32);
+    if (output_type->Is(Type::Signed32())) {
+      return node;
+    } else if (output_type->Is(Type::Unsigned32())) {
+      op = simplified()->CheckedUint32ToInt32();
+    }
+  } else if (output_rep == MachineRepresentation::kWord8 ||
+             output_rep == MachineRepresentation::kWord16) {
+    DCHECK(use_info.representation() == MachineRepresentation::kWord32);
+    DCHECK(use_info.type_check() == TypeCheckKind::kSigned32);
+    return node;
   }
+
   if (op == nullptr) {
     return TypeError(node, output_rep, output_type,
                      MachineRepresentation::kWord32);
   }
+  return InsertConversion(node, op, use_node);
+}
+
+Node* RepresentationChanger::InsertConversion(Node* node, const Operator* op,
+                                              Node* use_node) {
+  if (op->ControlInputCount() > 0) {
+    // If the operator can deoptimize (which means it has control
+    // input), we need to connect it to the effect and control chains.
+    Node* effect = NodeProperties::GetEffectInput(use_node);
+    Node* control = NodeProperties::GetControlInput(use_node);
+    Node* conversion = jsgraph()->graph()->NewNode(op, node, effect, control);
+    NodeProperties::ReplaceEffectInput(use_node, conversion);
+    return conversion;
+  }
   return jsgraph()->graph()->NewNode(op, node);
 }
 
@@ -426,7 +494,6 @@
   return jsgraph()->graph()->NewNode(op, node);
 }
 
-
 Node* RepresentationChanger::GetWord64RepresentationFor(
     Node* node, MachineRepresentation output_rep, Type* output_type) {
   if (output_rep == MachineRepresentation::kBit) {
@@ -437,18 +504,90 @@
                    MachineRepresentation::kWord64);
 }
 
+Node* RepresentationChanger::GetCheckedWord32RepresentationFor(
+    Node* node, MachineRepresentation output_rep, Type* output_type,
+    Node* use_node, Truncation truncation, TypeCheckKind check) {
+  // TODO(jarin) Eagerly fold constants (or insert hard deopt if the constant
+  // does not pass the check).
+
+  // If the input is already Signed32 in Word32 representation, we do not
+  // have to do anything. (We could fold this into the big if below, but
+  // it feels nicer to have the shortcut return first).
+  if (output_rep == MachineRepresentation::kWord32 ||
+      output_type->Is(Type::Signed32())) {
+    return node;
+  }
+
+  // Select the correct X -> Word32 operator.
+  const Operator* op = nullptr;
+  if (output_rep == MachineRepresentation::kWord32) {
+    if (output_type->Is(Type::Unsigned32())) {
+      op = simplified()->CheckedUint32ToInt32();
+    }
+  } else if (output_rep == MachineRepresentation::kBit) {
+    return node;  // Sloppy comparison -> word32
+  } else if (output_rep == MachineRepresentation::kFloat64) {
+    if (output_type->Is(Type::Unsigned32())) {
+      op = machine()->ChangeFloat64ToUint32();
+    } else if (output_type->Is(Type::Signed32())) {
+      op = machine()->ChangeFloat64ToInt32();
+    } else if (truncation.TruncatesToWord32()) {
+      op = machine()->TruncateFloat64ToWord32();
+    } else if (check == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedFloat64ToInt32();
+    }
+  } else if (output_rep == MachineRepresentation::kFloat32) {
+    node = InsertChangeFloat32ToFloat64(node);  // float32 -> float64 -> int32
+    if (output_type->Is(Type::Unsigned32())) {
+      op = machine()->ChangeFloat64ToUint32();
+    } else if (output_type->Is(Type::Signed32())) {
+      op = machine()->ChangeFloat64ToInt32();
+    } else if (truncation.TruncatesToWord32()) {
+      op = machine()->TruncateFloat64ToWord32();
+    } else if (check == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedFloat64ToInt32();
+    }
+  } else if (output_rep == MachineRepresentation::kTagged) {
+    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()) {
+      op = simplified()->TruncateTaggedToWord32();
+    } else if (check == TypeCheckKind::kSigned32) {
+      op = simplified()->CheckedTaggedToInt32();
+    }
+  }
+  if (op == nullptr) {
+    return TypeError(node, output_rep, output_type,
+                     MachineRepresentation::kWord32);
+  }
+  if (op->ControlInputCount() > 0) {
+    // If the operator can deoptimize (which means it has control
+    // input), we need to connect it to the effect and control chains.
+    UNIMPLEMENTED();
+  }
+  return jsgraph()->graph()->NewNode(op, node);
+}
 
 const Operator* RepresentationChanger::Int32OperatorFor(
     IrOpcode::Value opcode) {
   switch (opcode) {
+    case IrOpcode::kSpeculativeNumberAdd:  // Fall through.
     case IrOpcode::kNumberAdd:
       return machine()->Int32Add();
+    case IrOpcode::kSpeculativeNumberSubtract:  // Fall through.
     case IrOpcode::kNumberSubtract:
       return machine()->Int32Sub();
+    case IrOpcode::kSpeculativeNumberMultiply:
     case IrOpcode::kNumberMultiply:
       return machine()->Int32Mul();
+    case IrOpcode::kSpeculativeNumberDivide:
     case IrOpcode::kNumberDivide:
       return machine()->Int32Div();
+    case IrOpcode::kSpeculativeNumberModulus:
     case IrOpcode::kNumberModulus:
       return machine()->Int32Mod();
     case IrOpcode::kNumberBitwiseOr:
@@ -458,10 +597,13 @@
     case IrOpcode::kNumberBitwiseAnd:
       return machine()->Word32And();
     case IrOpcode::kNumberEqual:
+    case IrOpcode::kSpeculativeNumberEqual:
       return machine()->Word32Equal();
     case IrOpcode::kNumberLessThan:
+    case IrOpcode::kSpeculativeNumberLessThan:
       return machine()->Int32LessThan();
     case IrOpcode::kNumberLessThanOrEqual:
+    case IrOpcode::kSpeculativeNumberLessThanOrEqual:
       return machine()->Int32LessThanOrEqual();
     default:
       UNREACHABLE();
@@ -469,6 +611,18 @@
   }
 }
 
+const Operator* RepresentationChanger::Int32OverflowOperatorFor(
+    IrOpcode::Value opcode) {
+  switch (opcode) {
+    case IrOpcode::kSpeculativeNumberAdd:  // Fall through.
+      return simplified()->CheckedInt32Add();
+    case IrOpcode::kSpeculativeNumberSubtract:  // Fall through.
+      return simplified()->CheckedInt32Sub();
+    default:
+      UNREACHABLE();
+      return nullptr;
+  }
+}
 
 const Operator* RepresentationChanger::Uint32OperatorFor(
     IrOpcode::Value opcode) {
@@ -477,17 +631,23 @@
       return machine()->Int32Add();
     case IrOpcode::kNumberSubtract:
       return machine()->Int32Sub();
+    case IrOpcode::kSpeculativeNumberMultiply:
     case IrOpcode::kNumberMultiply:
       return machine()->Int32Mul();
+    case IrOpcode::kSpeculativeNumberDivide:
     case IrOpcode::kNumberDivide:
       return machine()->Uint32Div();
+    case IrOpcode::kSpeculativeNumberModulus:
     case IrOpcode::kNumberModulus:
       return machine()->Uint32Mod();
     case IrOpcode::kNumberEqual:
+    case IrOpcode::kSpeculativeNumberEqual:
       return machine()->Word32Equal();
     case IrOpcode::kNumberLessThan:
+    case IrOpcode::kSpeculativeNumberLessThan:
       return machine()->Uint32LessThan();
     case IrOpcode::kNumberLessThanOrEqual:
+    case IrOpcode::kSpeculativeNumberLessThanOrEqual:
       return machine()->Uint32LessThanOrEqual();
     case IrOpcode::kNumberClz32:
       return machine()->Word32Clz();
@@ -503,22 +663,64 @@
 const Operator* RepresentationChanger::Float64OperatorFor(
     IrOpcode::Value opcode) {
   switch (opcode) {
+    case IrOpcode::kSpeculativeNumberAdd:
     case IrOpcode::kNumberAdd:
       return machine()->Float64Add();
+    case IrOpcode::kSpeculativeNumberSubtract:
     case IrOpcode::kNumberSubtract:
       return machine()->Float64Sub();
+    case IrOpcode::kSpeculativeNumberMultiply:
     case IrOpcode::kNumberMultiply:
       return machine()->Float64Mul();
+    case IrOpcode::kSpeculativeNumberDivide:
     case IrOpcode::kNumberDivide:
       return machine()->Float64Div();
+    case IrOpcode::kSpeculativeNumberModulus:
     case IrOpcode::kNumberModulus:
       return machine()->Float64Mod();
     case IrOpcode::kNumberEqual:
+    case IrOpcode::kSpeculativeNumberEqual:
       return machine()->Float64Equal();
     case IrOpcode::kNumberLessThan:
+    case IrOpcode::kSpeculativeNumberLessThan:
       return machine()->Float64LessThan();
     case IrOpcode::kNumberLessThanOrEqual:
+    case IrOpcode::kSpeculativeNumberLessThanOrEqual:
       return machine()->Float64LessThanOrEqual();
+    case IrOpcode::kNumberAbs:
+      return machine()->Float64Abs();
+    case IrOpcode::kNumberAtan:
+      return machine()->Float64Atan();
+    case IrOpcode::kNumberAtan2:
+      return machine()->Float64Atan2();
+    case IrOpcode::kNumberCos:
+      return machine()->Float64Cos();
+    case IrOpcode::kNumberExp:
+      return machine()->Float64Exp();
+    case IrOpcode::kNumberFround:
+      return machine()->TruncateFloat64ToFloat32();
+    case IrOpcode::kNumberAtanh:
+      return machine()->Float64Atanh();
+    case IrOpcode::kNumberLog:
+      return machine()->Float64Log();
+    case IrOpcode::kNumberLog1p:
+      return machine()->Float64Log1p();
+    case IrOpcode::kNumberLog2:
+      return machine()->Float64Log2();
+    case IrOpcode::kNumberLog10:
+      return machine()->Float64Log10();
+    case IrOpcode::kNumberSin:
+      return machine()->Float64Sin();
+    case IrOpcode::kNumberTan:
+      return machine()->Float64Tan();
+    case IrOpcode::kNumberSqrt:
+      return machine()->Float64Sqrt();
+    case IrOpcode::kNumberCbrt:
+      return machine()->Float64Cbrt();
+    case IrOpcode::kNumberExpm1:
+      return machine()->Float64Expm1();
+    case IrOpcode::kNumberSilenceNaN:
+      return machine()->Float64SilenceNaN();
     default:
       UNREACHABLE();
       return nullptr;
diff --git a/src/compiler/representation-change.h b/src/compiler/representation-change.h
index 839335d..8a38644 100644
--- a/src/compiler/representation-change.h
+++ b/src/compiler/representation-change.h
@@ -73,6 +73,86 @@
   static bool LessGeneral(TruncationKind rep1, TruncationKind rep2);
 };
 
+enum class TypeCheckKind : uint8_t {
+  kNone,
+  kSigned32,
+  kNumberOrUndefined,
+  kNumber
+};
+
+// The {UseInfo} class is used to describe a use of an input of a node.
+//
+// This information is used in two different ways, based on the phase:
+//
+// 1. During propagation, the use info is used to inform the input node
+//    about what part of the input is used (we call this truncation) and what
+//    is the preferred representation.
+//
+// 2. During lowering, the use info is used to properly convert the input
+//    to the preferred representation. The preferred representation might be
+//    insufficient to do the conversion (e.g. word32->float64 conv), so we also
+//    need the signedness information to produce the correct value.
+class UseInfo {
+ public:
+  UseInfo(MachineRepresentation representation, Truncation truncation,
+          TypeCheckKind type_check = TypeCheckKind::kNone)
+      : representation_(representation),
+        truncation_(truncation),
+        type_check_(type_check) {}
+  static UseInfo TruncatingWord32() {
+    return UseInfo(MachineRepresentation::kWord32, Truncation::Word32());
+  }
+  static UseInfo TruncatingWord64() {
+    return UseInfo(MachineRepresentation::kWord64, Truncation::Word64());
+  }
+  static UseInfo Bool() {
+    return UseInfo(MachineRepresentation::kBit, Truncation::Bool());
+  }
+  static UseInfo TruncatingFloat32() {
+    return UseInfo(MachineRepresentation::kFloat32, Truncation::Float32());
+  }
+  static UseInfo TruncatingFloat64() {
+    return UseInfo(MachineRepresentation::kFloat64, Truncation::Float64());
+  }
+  static UseInfo PointerInt() {
+    return kPointerSize == 4 ? TruncatingWord32() : TruncatingWord64();
+  }
+  static UseInfo AnyTagged() {
+    return UseInfo(MachineRepresentation::kTagged, Truncation::Any());
+  }
+
+  // Possibly deoptimizing conversions.
+  static UseInfo CheckedSigned32AsWord32() {
+    return UseInfo(MachineRepresentation::kWord32, Truncation::Any(),
+                   TypeCheckKind::kSigned32);
+  }
+  static UseInfo CheckedNumberOrUndefinedAsFloat64() {
+    return UseInfo(MachineRepresentation::kFloat64, Truncation::Any(),
+                   TypeCheckKind::kNumberOrUndefined);
+  }
+
+  // Undetermined representation.
+  static UseInfo Any() {
+    return UseInfo(MachineRepresentation::kNone, Truncation::Any());
+  }
+  static UseInfo AnyTruncatingToBool() {
+    return UseInfo(MachineRepresentation::kNone, Truncation::Bool());
+  }
+
+  // Value not used.
+  static UseInfo None() {
+    return UseInfo(MachineRepresentation::kNone, Truncation::None());
+  }
+
+  MachineRepresentation representation() const { return representation_; }
+  Truncation truncation() const { return truncation_; }
+  TypeCheckKind type_check() const { return type_check_; }
+
+ private:
+  MachineRepresentation representation_;
+  Truncation truncation_;
+  TypeCheckKind type_check_;
+};
 
 // Contains logic related to changing the representation of values for constants
 // and other nodes, as well as lowering Simplified->Machine operators.
@@ -90,9 +170,10 @@
   // out signedness for the word32->float64 conversion, then we check that the
   // uses truncate to word32 (so they do not care about signedness).
   Node* GetRepresentationFor(Node* node, MachineRepresentation output_rep,
-                             Type* output_type, MachineRepresentation use_rep,
-                             Truncation truncation = Truncation::None());
+                             Type* output_type, Node* use_node,
+                             UseInfo use_info);
   const Operator* Int32OperatorFor(IrOpcode::Value opcode);
+  const Operator* Int32OverflowOperatorFor(IrOpcode::Value opcode);
   const Operator* Uint32OperatorFor(IrOpcode::Value opcode);
   const Operator* Float64OperatorFor(IrOpcode::Value opcode);
 
@@ -122,13 +203,20 @@
                                     Type* output_type, Truncation truncation);
   Node* GetFloat64RepresentationFor(Node* node,
                                     MachineRepresentation output_rep,
-                                    Type* output_type, Truncation truncation);
+                                    Type* output_type, Node* use_node,
+                                    UseInfo use_info);
   Node* GetWord32RepresentationFor(Node* node, MachineRepresentation output_rep,
-                                   Type* output_type, Truncation truncation);
+                                   Type* output_type, Node* use_node,
+                                   UseInfo use_info);
   Node* GetBitRepresentationFor(Node* node, MachineRepresentation output_rep,
                                 Type* output_type);
   Node* GetWord64RepresentationFor(Node* node, MachineRepresentation output_rep,
                                    Type* output_type);
+  Node* GetCheckedWord32RepresentationFor(Node* node,
+                                          MachineRepresentation output_rep,
+                                          Type* output_type, Node* use_node,
+                                          Truncation truncation,
+                                          TypeCheckKind check);
   Node* TypeError(Node* node, MachineRepresentation output_rep,
                   Type* output_type, MachineRepresentation use);
   Node* MakeTruncatedInt32Constant(double value);
@@ -138,6 +226,8 @@
   Node* InsertChangeTaggedSignedToInt32(Node* node);
   Node* InsertChangeTaggedToFloat64(Node* node);
 
+  Node* InsertConversion(Node* node, const Operator* op, Node* use_node);
+
   JSGraph* jsgraph() const { return jsgraph_; }
   Isolate* isolate() const { return isolate_; }
   Factory* factory() const { return isolate()->factory(); }
diff --git a/src/compiler/s390/OWNERS b/src/compiler/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/compiler/s390/OWNERS
+++ b/src/compiler/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/compiler/s390/code-generator-s390.cc b/src/compiler/s390/code-generator-s390.cc
index fece596..ac24529 100644
--- a/src/compiler/s390/code-generator-s390.cc
+++ b/src/compiler/s390/code-generator-s390.cc
@@ -385,6 +385,33 @@
     __ MovFromFloatResult(i.OutputDoubleRegister());                          \
   } while (0)
 
+#define ASSEMBLE_IEEE754_UNOP(name)                                            \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 1, kScratchReg);                                \
+    __ MovToFloatParameter(i.InputDoubleRegister(0));                          \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 1);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+  } while (0)
+
+#define ASSEMBLE_IEEE754_BINOP(name)                                           \
+  do {                                                                         \
+    /* TODO(bmeurer): We should really get rid of this special instruction, */ \
+    /* and generate a CallAddress instruction instead. */                      \
+    FrameScope scope(masm(), StackFrame::MANUAL);                              \
+    __ PrepareCallCFunction(0, 2, kScratchReg);                                \
+    __ MovToFloatParameters(i.InputDoubleRegister(0),                          \
+                            i.InputDoubleRegister(1));                         \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()),  \
+                     0, 2);                                                    \
+    /* Move the result in the double result register. */                       \
+    __ MovFromFloatResult(i.OutputDoubleRegister());                           \
+  } while (0)
+
 #define ASSEMBLE_FLOAT_MAX(double_scratch_reg, general_scratch_reg) \
   do {                                                              \
     Label ge, done;                                                 \
@@ -720,6 +747,9 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchDebugBreak:
+      __ stop("kArchDebugBreak");
+      break;
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -1216,6 +1246,45 @@
     case kS390_ModDouble:
       ASSEMBLE_FLOAT_MODULO();
       break;
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
     case kS390_Neg:
       __ LoadComplementRR(i.OutputRegister(), i.InputRegister(0));
       break;
@@ -1301,6 +1370,12 @@
       }
       break;
 #endif
+    case kS390_Float64SilenceNaN: {
+      DoubleRegister value = i.InputDoubleRegister(0);
+      DoubleRegister result = i.OutputDoubleRegister();
+      __ CanonicalizeNaN(result, value);
+      break;
+    }
     case kS390_Push:
       if (instr->InputAt(0)->IsFPRegister()) {
         __ lay(sp, MemOperand(sp, -kDoubleSize));
@@ -1315,8 +1390,13 @@
       int num_slots = i.InputInt32(1);
       __ lay(sp, MemOperand(sp, -num_slots * kPointerSize));
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ StoreDouble(i.InputDoubleRegister(0),
-                 MemOperand(sp));
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ StoreDouble(i.InputDoubleRegister(0), MemOperand(sp));
+        } else {
+          DCHECK(op->representation() == MachineRepresentation::kFloat32);
+          __ StoreFloat32(i.InputDoubleRegister(0), MemOperand(sp));
+        }
       } else {
         __ StoreP(i.InputRegister(0),
                   MemOperand(sp));
@@ -1326,8 +1406,15 @@
     case kS390_StoreToStackSlot: {
       int slot = i.InputInt32(1);
       if (instr->InputAt(0)->IsFPRegister()) {
-        __ StoreDouble(i.InputDoubleRegister(0),
-                       MemOperand(sp, slot * kPointerSize));
+        LocationOperand* op = LocationOperand::cast(instr->InputAt(0));
+        if (op->representation() == MachineRepresentation::kFloat64) {
+          __ StoreDouble(i.InputDoubleRegister(0),
+                         MemOperand(sp, slot * kPointerSize));
+        } else {
+          DCHECK(op->representation() == MachineRepresentation::kFloat32);
+          __ StoreFloat32(i.InputDoubleRegister(0),
+                          MemOperand(sp, slot * kPointerSize));
+        }
       } else {
         __ StoreP(i.InputRegister(0), MemOperand(sp, slot * kPointerSize));
       }
@@ -1941,6 +2028,7 @@
           if (src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
 #else
           if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
               src.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
 #endif
             __ mov(dst, Operand(src.ToInt32(), src.rmode()));
@@ -1950,7 +2038,8 @@
           break;
         case Constant::kInt64:
 #if V8_TARGET_ARCH_S390X
-          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
             __ mov(dst, Operand(src.ToInt64(), src.rmode()));
           } else {
             DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
@@ -2014,17 +2103,33 @@
       __ Move(dst, src);
     } else {
       DCHECK(destination->IsFPStackSlot());
-      __ StoreDouble(src, g.ToMemOperand(destination));
+      LocationOperand* op = LocationOperand::cast(source);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ StoreDouble(src, g.ToMemOperand(destination));
+      } else {
+        __ StoreFloat32(src, g.ToMemOperand(destination));
+      }
     }
   } else if (source->IsFPStackSlot()) {
     DCHECK(destination->IsFPRegister() || destination->IsFPStackSlot());
     MemOperand src = g.ToMemOperand(source);
     if (destination->IsFPRegister()) {
-      __ LoadDouble(g.ToDoubleRegister(destination), src);
+      LocationOperand* op = LocationOperand::cast(source);
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ LoadDouble(g.ToDoubleRegister(destination), src);
+      } else {
+        __ LoadFloat32(g.ToDoubleRegister(destination), src);
+      }
     } else {
+      LocationOperand* op = LocationOperand::cast(source);
       DoubleRegister temp = kScratchDoubleReg;
-      __ LoadDouble(temp, src);
-      __ StoreDouble(temp, g.ToMemOperand(destination));
+      if (op->representation() == MachineRepresentation::kFloat64) {
+        __ LoadDouble(temp, src);
+        __ StoreDouble(temp, g.ToMemOperand(destination));
+      } else {
+        __ LoadFloat32(temp, src);
+        __ StoreFloat32(temp, g.ToMemOperand(destination));
+      }
     }
   } else {
     UNREACHABLE();
diff --git a/src/compiler/s390/instruction-codes-s390.h b/src/compiler/s390/instruction-codes-s390.h
index a54b2ed..b53136c 100644
--- a/src/compiler/s390/instruction-codes-s390.h
+++ b/src/compiler/s390/instruction-codes-s390.h
@@ -107,6 +107,7 @@
   V(S390_Float32ToInt32)           \
   V(S390_Float32ToUint32)          \
   V(S390_Float32ToDouble)          \
+  V(S390_Float64SilenceNaN)        \
   V(S390_DoubleToInt32)            \
   V(S390_DoubleToUint32)           \
   V(S390_DoubleToInt64)            \
diff --git a/src/compiler/s390/instruction-scheduler-s390.cc b/src/compiler/s390/instruction-scheduler-s390.cc
index d187227..5b9722e 100644
--- a/src/compiler/s390/instruction-scheduler-s390.cc
+++ b/src/compiler/s390/instruction-scheduler-s390.cc
@@ -104,6 +104,7 @@
     case kS390_Float32ToUint32:
     case kS390_Float32ToUint64:
     case kS390_Float32ToDouble:
+    case kS390_Float64SilenceNaN:
     case kS390_DoubleToInt32:
     case kS390_DoubleToUint32:
     case kS390_Float32ToInt64:
diff --git a/src/compiler/s390/instruction-selector-s390.cc b/src/compiler/s390/instruction-selector-s390.cc
index 00782d1..1b1bd2f 100644
--- a/src/compiler/s390/instruction-selector-s390.cc
+++ b/src/compiler/s390/instruction-selector-s390.cc
@@ -1179,6 +1179,10 @@
 
 void InstructionSelector::VisitFloat64Max(Node* node) { UNREACHABLE(); }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  VisitRR(this, kS390_Float64SilenceNaN, node);
+}
+
 void InstructionSelector::VisitFloat32Min(Node* node) { UNREACHABLE(); }
 
 void InstructionSelector::VisitFloat64Min(Node* node) { UNREACHABLE(); }
@@ -1195,6 +1199,21 @@
   VisitRR(this, kS390_SqrtFloat, node);
 }
 
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  S390OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  S390OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, d0), g.UseFixed(node->InputAt(0), d0),
+       g.UseFixed(node->InputAt(1), d2))
+      ->MarkAsCall();
+}
+
 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
   VisitRR(this, kS390_SqrtDouble, node);
 }
@@ -1235,6 +1254,10 @@
   UNREACHABLE();
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
 void InstructionSelector::VisitInt32AddWithOverflow(Node* node) {
   if (Node* ovf = NodeProperties::FindProjection(node, 1)) {
     FlagsContinuation cont = FlagsContinuation::ForSet(kOverflow, ovf);
@@ -1822,6 +1845,13 @@
          MachineOperatorBuilder::kWord64Popcnt;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc
index a76d3e2..c56494c 100644
--- a/src/compiler/simplified-lowering.cc
+++ b/src/compiler/simplified-lowering.cc
@@ -15,6 +15,7 @@
 #include "src/compiler/linkage.h"
 #include "src/compiler/node-matchers.h"
 #include "src/compiler/node-properties.h"
+#include "src/compiler/operation-typer.h"
 #include "src/compiler/operator-properties.h"
 #include "src/compiler/representation-change.h"
 #include "src/compiler/simplified-operator.h"
@@ -62,63 +63,6 @@
 
 namespace {
 
-// The {UseInfo} class is used to describe a use of an input of a node.
-//
-// This information is used in two different ways, based on the phase:
-//
-// 1. During propagation, the use info is used to inform the input node
-//    about what part of the input is used (we call this truncation) and what
-//    is the preferred representation.
-//
-// 2. During lowering, the use info is used to properly convert the input
-//    to the preferred representation. The preferred representation might be
-//    insufficient to do the conversion (e.g. word32->float64 conv), so we also
-//    need the signedness information to produce the correct value.
-class UseInfo {
- public:
-  UseInfo(MachineRepresentation preferred, Truncation truncation)
-      : preferred_(preferred), truncation_(truncation) {}
-  static UseInfo TruncatingWord32() {
-    return UseInfo(MachineRepresentation::kWord32, Truncation::Word32());
-  }
-  static UseInfo TruncatingWord64() {
-    return UseInfo(MachineRepresentation::kWord64, Truncation::Word64());
-  }
-  static UseInfo Bool() {
-    return UseInfo(MachineRepresentation::kBit, Truncation::Bool());
-  }
-  static UseInfo TruncatingFloat32() {
-    return UseInfo(MachineRepresentation::kFloat32, Truncation::Float32());
-  }
-  static UseInfo TruncatingFloat64() {
-    return UseInfo(MachineRepresentation::kFloat64, Truncation::Float64());
-  }
-  static UseInfo PointerInt() {
-    return kPointerSize == 4 ? TruncatingWord32() : TruncatingWord64();
-  }
-  static UseInfo AnyTagged() {
-    return UseInfo(MachineRepresentation::kTagged, Truncation::Any());
-  }
-
-  // Undetermined representation.
-  static UseInfo Any() {
-    return UseInfo(MachineRepresentation::kNone, Truncation::Any());
-  }
-  static UseInfo None() {
-    return UseInfo(MachineRepresentation::kNone, Truncation::None());
-  }
-  static UseInfo AnyTruncatingToBool() {
-    return UseInfo(MachineRepresentation::kNone, Truncation::Bool());
-  }
-
-  MachineRepresentation preferred() const { return preferred_; }
-  Truncation truncation() const { return truncation_; }
-
- private:
-  MachineRepresentation preferred_;
-  Truncation truncation_;
-};
-
 
 UseInfo TruncatingUseInfoFromRepresentation(MachineRepresentation rep) {
   switch (rep) {
@@ -223,7 +167,8 @@
   ZoneVector<UseInfo> input_use_infos_;
 
   static bool IsUseLessGeneral(UseInfo use1, UseInfo use2) {
-    return MachineRepresentationIsSubtype(use1.preferred(), use2.preferred()) &&
+    return MachineRepresentationIsSubtype(use1.representation(),
+                                          use2.representation()) &&
            use1.truncation().IsLessGeneralThan(use2.truncation());
   }
 };
@@ -246,27 +191,43 @@
       return truncation_ != old_truncation;
     }
 
-    void set_queued(bool value) { queued_ = value; }
-    bool queued() const { return queued_; }
-    void set_visited() { visited_ = true; }
-    bool visited() const { return visited_; }
+    void set_queued() { state_ = kQueued; }
+    void set_visited() { state_ = kVisited; }
+    void set_pushed() { state_ = kPushed; }
+    void reset_state() { state_ = kUnvisited; }
+    bool visited() const { return state_ == kVisited; }
+    bool queued() const { return state_ == kQueued; }
+    bool unvisited() const { return state_ == kUnvisited; }
     Truncation truncation() const { return truncation_; }
     void set_output(MachineRepresentation output) { representation_ = output; }
 
     MachineRepresentation representation() const { return representation_; }
 
+    // Helpers for feedback typing.
+    void set_feedback_type(Type* type) { feedback_type_ = type; }
+    Type* feedback_type() { return feedback_type_; }
+    void set_weakened() { weakened_ = true; }
+    bool weakened() { return weakened_; }
+    TypeCheckKind type_check() { return type_check_; }
+    void set_type_check(TypeCheckKind type_check) { type_check_ = type_check; }
+
    private:
-    bool queued_ = false;   // Bookkeeping for the traversal.
-    bool visited_ = false;  // Bookkeeping for the traversal.
+    enum State : uint8_t { kUnvisited, kPushed, kVisited, kQueued };
+    State state_ = kUnvisited;
     MachineRepresentation representation_ =
         MachineRepresentation::kNone;             // Output representation.
     Truncation truncation_ = Truncation::None();  // Information about uses.
+    TypeCheckKind type_check_ = TypeCheckKind::kNone;  // Runtime check kind.
+
+    Type* feedback_type_ = nullptr;
+    bool weakened_ = false;
   };
 
   RepresentationSelector(JSGraph* jsgraph, Zone* zone,
                          RepresentationChanger* changer,
                          SourcePositionTable* source_positions)
       : jsgraph_(jsgraph),
+        zone_(zone),
         count_(jsgraph->graph()->NodeCount()),
         info_(count_, zone),
 #ifdef DEBUG
@@ -277,11 +238,320 @@
         phase_(PROPAGATE),
         changer_(changer),
         queue_(zone),
+        typing_stack_(zone),
         source_positions_(source_positions),
-        type_cache_(TypeCache::Get()) {
+        type_cache_(TypeCache::Get()),
+        op_typer_(jsgraph->isolate(), graph_zone()) {
   }
 
-  void Run(SimplifiedLowering* lowering) {
+  // Forward propagation of types from type feedback.
+  void RunTypePropagationPhase() {
+    DCHECK(typing_stack_.empty());
+
+    typing_stack_.push({graph()->end(), 0});
+    GetInfo(graph()->end())->set_pushed();
+    while (!typing_stack_.empty()) {
+      NodeState& current = typing_stack_.top();
+
+      // If there is an unvisited input, push it and continue.
+      bool pushed_unvisited = false;
+      while (current.input_index < current.node->InputCount()) {
+        Node* input = current.node->InputAt(current.input_index);
+        NodeInfo* input_info = GetInfo(input);
+        current.input_index++;
+        if (input_info->unvisited()) {
+          input_info->set_pushed();
+          typing_stack_.push({input, 0});
+          pushed_unvisited = true;
+          break;
+        }
+      }
+      if (pushed_unvisited) continue;
+
+      // Process the top of the stack.
+      Node* node = current.node;
+      typing_stack_.pop();
+      NodeInfo* info = GetInfo(node);
+      info->set_visited();
+      bool updated = UpdateFeedbackType(node);
+      if (updated) {
+        for (Node* const user : node->uses()) {
+          if (GetInfo(user)->visited()) {
+            GetInfo(user)->set_queued();
+            queue_.push(user);
+          }
+        }
+      }
+    }
+
+    // Process the revisit queue.
+    while (!queue_.empty()) {
+      Node* node = queue_.front();
+      queue_.pop();
+      NodeInfo* info = GetInfo(node);
+      info->set_visited();
+      bool updated = UpdateFeedbackType(node);
+      if (updated) {
+        for (Node* const user : node->uses()) {
+          if (GetInfo(user)->visited()) {
+            GetInfo(user)->set_queued();
+            queue_.push(user);
+          }
+        }
+      }
+    }
+  }
+
+  void ResetNodeInfoState() {
+    // Clean up for the next phase.
+    for (NodeInfo& info : info_) {
+      info.reset_state();
+    }
+  }
+
+  Type* TypeOf(Node* node) {
+    Type* type = GetInfo(node)->feedback_type();
+    return type == nullptr ? NodeProperties::GetType(node) : type;
+  }
+
+  Type* FeedbackTypeOf(Node* node) {
+    Type* type = GetInfo(node)->feedback_type();
+    return type == nullptr ? Type::None() : type;
+  }
+
+  Type* TypePhi(Node* node) {
+    int arity = node->op()->ValueInputCount();
+    Type* type = FeedbackTypeOf(node->InputAt(0));
+    for (int i = 1; i < arity; ++i) {
+      type = op_typer_.Merge(type, FeedbackTypeOf(node->InputAt(i)));
+    }
+    return type;
+  }
+
+  Type* TypeSelect(Node* node) {
+    return op_typer_.Merge(FeedbackTypeOf(node->InputAt(1)),
+                           FeedbackTypeOf(node->InputAt(2)));
+  }
+
+  static Type* TypeOfSpeculativeOp(TypeCheckKind type_check) {
+    switch (type_check) {
+      case TypeCheckKind::kNone:
+        return Type::Any();
+      case TypeCheckKind::kSigned32:
+        return Type::Signed32();
+      case TypeCheckKind::kNumber:
+        return Type::Number();
+      // Unexpected cases.
+      case TypeCheckKind::kNumberOrUndefined:
+        FATAL("Unexpected checked type.");
+        break;
+    }
+    UNREACHABLE();
+    return nullptr;
+  }
+
+  bool UpdateFeedbackType(Node* node) {
+    if (node->op()->ValueOutputCount() == 0) return false;
+
+    NodeInfo* info = GetInfo(node);
+    Type* type = info->feedback_type();
+    Type* new_type = type;
+
+    switch (node->opcode()) {
+      case IrOpcode::kSpeculativeNumberAdd: {
+        Type* lhs = FeedbackTypeOf(node->InputAt(0));
+        Type* rhs = FeedbackTypeOf(node->InputAt(1));
+        if (lhs->Is(Type::None()) || rhs->Is(Type::None())) return false;
+        // TODO(jarin) The ToNumber conversion is too conservative here,
+        // e.g. it will treat true as 1 even though the number check will
+        // fail on a boolean. OperationTyper should have a function that
+        // computes a more precise type.
+        lhs = op_typer_.ToNumber(lhs);
+        rhs = op_typer_.ToNumber(rhs);
+        Type* static_type = op_typer_.NumericAdd(lhs, rhs);
+        if (info->type_check() == TypeCheckKind::kNone) {
+          new_type = static_type;
+        } else {
+          Type* feedback_type = TypeOfSpeculativeOp(info->type_check());
+          new_type = Type::Intersect(static_type, feedback_type, graph_zone());
+        }
+        break;
+      }
+
+      case IrOpcode::kSpeculativeNumberSubtract: {
+        Type* lhs = FeedbackTypeOf(node->InputAt(0));
+        Type* rhs = FeedbackTypeOf(node->InputAt(1));
+        if (lhs->Is(Type::None()) || rhs->Is(Type::None())) return false;
+        // TODO(jarin) The ToNumber conversion is too conservative here,
+        // e.g. it will treat true as 1 even though the number check will
+        // fail on a boolean. OperationTyper should have a function that
+        // computes a more precise type.
+        lhs = op_typer_.ToNumber(lhs);
+        rhs = op_typer_.ToNumber(rhs);
+        Type* static_type = op_typer_.NumericSubtract(lhs, rhs);
+        if (info->type_check() == TypeCheckKind::kNone) {
+          new_type = static_type;
+        } else {
+          Type* feedback_type = TypeOfSpeculativeOp(info->type_check());
+          new_type = Type::Intersect(static_type, feedback_type, graph_zone());
+        }
+        break;
+      }
+
+      case IrOpcode::kSpeculativeNumberMultiply: {
+        Type* lhs = FeedbackTypeOf(node->InputAt(0));
+        Type* rhs = FeedbackTypeOf(node->InputAt(1));
+        if (lhs->Is(Type::None()) || rhs->Is(Type::None())) return false;
+        // TODO(jarin) The ToNumber conversion is too conservative here,
+        // e.g. it will treat true as 1 even though the number check will
+        // fail on a boolean. OperationTyper should have a function that
+        // computes a more precise type.
+        lhs = op_typer_.ToNumber(lhs);
+        rhs = op_typer_.ToNumber(rhs);
+        Type* static_type = op_typer_.NumericMultiply(lhs, rhs);
+        if (info->type_check() == TypeCheckKind::kNone) {
+          new_type = static_type;
+        } else {
+          Type* feedback_type = TypeOfSpeculativeOp(info->type_check());
+          new_type = Type::Intersect(static_type, feedback_type, graph_zone());
+        }
+        break;
+      }
+
+      case IrOpcode::kSpeculativeNumberDivide: {
+        Type* lhs = FeedbackTypeOf(node->InputAt(0));
+        Type* rhs = FeedbackTypeOf(node->InputAt(1));
+        if (lhs->Is(Type::None()) || rhs->Is(Type::None())) return false;
+        // TODO(jarin) The ToNumber conversion is too conservative here,
+        // e.g. it will treat true as 1 even though the number check will
+        // fail on a boolean. OperationTyper should have a function that
+        // computes a more precise type.
+        lhs = op_typer_.ToNumber(lhs);
+        rhs = op_typer_.ToNumber(rhs);
+        Type* static_type = op_typer_.NumericDivide(lhs, rhs);
+        if (info->type_check() == TypeCheckKind::kNone) {
+          new_type = static_type;
+        } else {
+          Type* feedback_type = TypeOfSpeculativeOp(info->type_check());
+          new_type = Type::Intersect(static_type, feedback_type, graph_zone());
+        }
+        break;
+      }
+
+      case IrOpcode::kSpeculativeNumberModulus: {
+        Type* lhs = FeedbackTypeOf(node->InputAt(0));
+        Type* rhs = FeedbackTypeOf(node->InputAt(1));
+        if (lhs->Is(Type::None()) || rhs->Is(Type::None())) return false;
+        // TODO(jarin) The ToNumber conversion is too conservative here,
+        // e.g. it will treat true as 1 even though the number check will
+        // fail on a boolean. OperationTyper should have a function that
+        // computes a more precise type.
+        lhs = op_typer_.ToNumber(lhs);
+        rhs = op_typer_.ToNumber(rhs);
+        Type* static_type = op_typer_.NumericModulus(lhs, rhs);
+        if (info->type_check() == TypeCheckKind::kNone) {
+          new_type = static_type;
+        } else {
+          Type* feedback_type = TypeOfSpeculativeOp(info->type_check());
+          new_type = Type::Intersect(static_type, feedback_type, graph_zone());
+        }
+        break;
+      }
+
+      case IrOpcode::kPhi: {
+        new_type = TypePhi(node);
+        if (type != nullptr) {
+          new_type = Weaken(node, type, new_type);
+        }
+        // Recompute the phi representation based on the new type.
+        MachineRepresentation output =
+            GetOutputInfoForPhi(node, GetInfo(node)->truncation(), new_type);
+        ResetOutput(node, output);
+        break;
+      }
+
+      case IrOpcode::kSelect: {
+        new_type = TypeSelect(node);
+        // Recompute representation based on the new type.
+        MachineRepresentation output =
+            GetOutputInfoForPhi(node, GetInfo(node)->truncation(), new_type);
+        ResetOutput(node, output);
+        break;
+      }
+
+      default:
+        // Shortcut for operations that we do not handle.
+        if (type == nullptr) {
+          GetInfo(node)->set_feedback_type(NodeProperties::GetType(node));
+          return true;
+        }
+        return false;
+    }
+    if (type != nullptr && new_type->Is(type)) return false;
+    GetInfo(node)->set_feedback_type(new_type);
+    if (FLAG_trace_representation) {
+      PrintNodeFeedbackType(node);
+    }
+    return true;
+  }
+
+  void PrintNodeFeedbackType(Node* n) {
+    OFStream os(stdout);
+    os << "#" << n->id() << ":" << *n->op() << "(";
+    int j = 0;
+    for (Node* const i : n->inputs()) {
+      if (j++ > 0) os << ", ";
+      os << "#" << i->id() << ":" << i->op()->mnemonic();
+    }
+    os << ")";
+    if (NodeProperties::IsTyped(n)) {
+      os << "  [Static type: ";
+      Type* static_type = NodeProperties::GetType(n);
+      static_type->PrintTo(os);
+      Type* feedback_type = GetInfo(n)->feedback_type();
+      if (feedback_type != nullptr && feedback_type != static_type) {
+        os << ", Feedback type: ";
+        feedback_type->PrintTo(os);
+      }
+      os << "]";
+    }
+    os << std::endl;
+  }
+
+  Type* Weaken(Node* node, Type* previous_type, Type* current_type) {
+    // If the types have nothing to do with integers, return the types.
+    Type* const integer = type_cache_.kInteger;
+    if (!previous_type->Maybe(integer)) {
+      return current_type;
+    }
+    DCHECK(current_type->Maybe(integer));
+
+    Type* current_integer =
+        Type::Intersect(current_type, integer, graph_zone());
+    Type* previous_integer =
+        Type::Intersect(previous_type, integer, graph_zone());
+
+    // Once we start weakening a node, we should always weaken.
+    if (!GetInfo(node)->weakened()) {
+      // Only weaken if there is range involved; we should converge quickly
+      // for all other types (the exception is a union of many constants,
+      // but we currently do not increase the number of constants in unions).
+      Type* previous = previous_integer->GetRange();
+      Type* current = current_integer->GetRange();
+      if (current == nullptr || previous == nullptr) {
+        return current_type;
+      }
+      // Range is involved => we are weakening.
+      GetInfo(node)->set_weakened();
+    }
+
+    return Type::Union(current_type,
+                       op_typer_.WeakenRange(previous_integer, current_integer),
+                       graph_zone());
+  }
+
+  // Backward propagation of truncations.
+  void RunTruncationPropagationPhase() {
     // Run propagation phase to a fixpoint.
     TRACE("--{Propagation phase}--\n");
     phase_ = PROPAGATE;
@@ -291,13 +561,22 @@
       Node* node = queue_.front();
       NodeInfo* info = GetInfo(node);
       queue_.pop();
-      info->set_queued(false);
+      info->set_visited();
       TRACE(" visit #%d: %s\n", node->id(), node->op()->mnemonic());
       VisitNode(node, info->truncation(), nullptr);
       TRACE("  ==> output ");
       PrintOutputInfo(info);
       TRACE("\n");
     }
+  }
+
+  void Run(SimplifiedLowering* lowering) {
+    RunTruncationPropagationPhase();
+
+    if (lowering->flags() & SimplifiedLowering::kTypeFeedbackEnabled) {
+      ResetNodeInfoState();
+      RunTypePropagationPhase();
+    }
 
     // Run lowering and change insertion phase.
     TRACE("--{Simplified lowering phase}--\n");
@@ -319,6 +598,7 @@
       Node* node = *i;
       Node* replacement = *(++i);
       node->ReplaceUses(replacement);
+      node->Kill();
       // We also need to replace the node in the rest of the vector.
       for (NodeVector::iterator j = i + 1; j != replacements_.end(); ++j) {
         ++j;
@@ -329,8 +609,7 @@
 
   void EnqueueInitial(Node* node) {
     NodeInfo* info = GetInfo(node);
-    info->set_visited();
-    info->set_queued(true);
+    info->set_queued();
     nodes_.push_back(node);
     queue_.push(node);
   }
@@ -348,10 +627,9 @@
     node_input_use_infos_[use_node->id()].SetAndCheckInput(use_node, index,
                                                            use_info);
 #endif  // DEBUG
-    if (!info->visited()) {
+    if (info->unvisited()) {
       // First visit of this node.
-      info->set_visited();
-      info->set_queued(true);
+      info->set_queued();
       nodes_.push_back(node);
       queue_.push(node);
       TRACE("  initial: ");
@@ -365,7 +643,7 @@
       // New usage information for the node is available.
       if (!info->queued()) {
         queue_.push(node);
-        info->set_queued(true);
+        info->set_queued();
         TRACE("   added: ");
       } else {
         TRACE(" inqueue: ");
@@ -375,48 +653,39 @@
   }
 
   bool lower() { return phase_ == LOWER; }
+  bool propagate() { return phase_ == PROPAGATE; }
 
-  void EnqueueUses(Node* node) {
-    for (Edge edge : node->use_edges()) {
-      if (NodeProperties::IsValueEdge(edge)) {
-        Node* const user = edge.from();
-        if (user->id() < count_) {
-          // New type information for the node is available.
-          NodeInfo* info = GetInfo(user);
-          // Enqueue the node only if we are sure it is reachable from
-          // the end and it has not been queued yet.
-          if (info->visited() && !info->queued()) {
-            queue_.push(user);
-            info->set_queued(true);
-          }
-        }
-      }
-    }
+  void SetOutput(Node* node, MachineRepresentation representation,
+                 TypeCheckKind type_check = TypeCheckKind::kNone) {
+    DCHECK(MachineRepresentationIsSubtype(GetInfo(node)->representation(),
+                                          representation));
+    ResetOutput(node, representation, type_check);
   }
 
-  void SetOutput(Node* node, MachineRepresentation representation) {
+  void ResetOutput(Node* node, MachineRepresentation representation,
+                   TypeCheckKind type_check = TypeCheckKind::kNone) {
     NodeInfo* info = GetInfo(node);
-    DCHECK(
-        MachineRepresentationIsSubtype(info->representation(), representation));
     info->set_output(representation);
+    info->set_type_check(type_check);
   }
 
   Type* GetUpperBound(Node* node) { return NodeProperties::GetType(node); }
 
+  bool InputIs(Node* node, Type* type) {
+    DCHECK_EQ(1, node->op()->ValueInputCount());
+    return GetUpperBound(node->InputAt(0))->Is(type);
+  }
+
   bool BothInputsAreSigned32(Node* node) {
-    DCHECK_EQ(2, node->InputCount());
-    return GetUpperBound(node->InputAt(0))->Is(Type::Signed32()) &&
-           GetUpperBound(node->InputAt(1))->Is(Type::Signed32());
+    return BothInputsAre(node, Type::Signed32());
   }
 
   bool BothInputsAreUnsigned32(Node* node) {
-    DCHECK_EQ(2, node->InputCount());
-    return GetUpperBound(node->InputAt(0))->Is(Type::Unsigned32()) &&
-           GetUpperBound(node->InputAt(1))->Is(Type::Unsigned32());
+    return BothInputsAre(node, Type::Unsigned32());
   }
 
   bool BothInputsAre(Node* node, Type* type) {
-    DCHECK_EQ(2, node->InputCount());
+    DCHECK_EQ(2, node->op()->ValueInputCount());
     return GetUpperBound(node->InputAt(0))->Is(type) &&
            GetUpperBound(node->InputAt(1))->Is(type);
   }
@@ -424,11 +693,13 @@
   void ConvertInput(Node* node, int index, UseInfo use) {
     Node* input = node->InputAt(index);
     // In the change phase, insert a change before the use if necessary.
-    if (use.preferred() == MachineRepresentation::kNone)
+    if (use.representation() == MachineRepresentation::kNone)
       return;  // No input requirement on the use.
+    DCHECK_NOT_NULL(input);
     NodeInfo* input_info = GetInfo(input);
     MachineRepresentation input_rep = input_info->representation();
-    if (input_rep != use.preferred()) {
+    if (input_rep != use.representation() ||
+        use.type_check() != TypeCheckKind::kNone) {
       // Output representation doesn't match usage.
       TRACE("  change: #%d:%s(@%d #%d:%s) ", node->id(), node->op()->mnemonic(),
             index, input->id(), input->op()->mnemonic());
@@ -438,8 +709,7 @@
       PrintUseInfo(use);
       TRACE("\n");
       Node* n = changer_->GetRepresentationFor(
-          input, input_info->representation(), GetUpperBound(input),
-          use.preferred(), use.truncation());
+          input, input_info->representation(), TypeOf(input), node, use);
       node->ReplaceInput(index, n);
     }
   }
@@ -484,25 +754,28 @@
 
   // Helper for binops of the R x L -> O variety.
   void VisitBinop(Node* node, UseInfo left_use, UseInfo right_use,
-                  MachineRepresentation output) {
+                  MachineRepresentation output,
+                  TypeCheckKind type_check = TypeCheckKind::kNone) {
     DCHECK_EQ(2, node->op()->ValueInputCount());
     ProcessInput(node, 0, left_use);
     ProcessInput(node, 1, right_use);
     for (int i = 2; i < node->InputCount(); i++) {
       EnqueueInput(node, i);
     }
-    SetOutput(node, output);
+    SetOutput(node, output, type_check);
   }
 
   // Helper for binops of the I x I -> O variety.
-  void VisitBinop(Node* node, UseInfo input_use, MachineRepresentation output) {
-    VisitBinop(node, input_use, input_use, output);
+  void VisitBinop(Node* node, UseInfo input_use, MachineRepresentation output,
+                  TypeCheckKind type_check = TypeCheckKind::kNone) {
+    VisitBinop(node, input_use, input_use, output, type_check);
   }
 
   // Helper for unops of the I -> O variety.
   void VisitUnop(Node* node, UseInfo input_use, MachineRepresentation output) {
-    DCHECK_EQ(1, node->InputCount());
+    DCHECK_EQ(1, node->op()->ValueInputCount());
     ProcessInput(node, 0, input_use);
+    ProcessRemainingInputs(node, 1);
     SetOutput(node, output);
   }
 
@@ -554,9 +827,12 @@
   }
 
   // Infer representation for phi-like nodes.
-  MachineRepresentation GetOutputInfoForPhi(Node* node, Truncation use) {
+  MachineRepresentation GetOutputInfoForPhi(Node* node, Truncation use,
+                                            Type* type = nullptr) {
     // Compute the representation.
-    Type* type = GetUpperBound(node);
+    if (type == nullptr) {
+      type = TypeOf(node);
+    }
     if (type->Is(Type::None())) {
       return MachineRepresentation::kNone;
     } else if (type->Is(Type::Signed32()) || type->Is(Type::Unsigned32())) {
@@ -579,6 +855,7 @@
                        MachineRepresentation::kWord64;
 #ifdef DEBUG
       // Check that all the inputs agree on being Word64.
+      DCHECK_EQ(IrOpcode::kPhi, node->opcode());  // This only works for phis.
       for (int i = 1; i < node->op()->ValueInputCount(); i++) {
         DCHECK_EQ(is_word64, GetInfo(node->InputAt(i))->representation() ==
                                  MachineRepresentation::kWord64);
@@ -617,6 +894,8 @@
   void VisitPhi(Node* node, Truncation truncation,
                 SimplifiedLowering* lowering) {
     MachineRepresentation output = GetOutputInfoForPhi(node, truncation);
+    // Only set the output representation if not running with type
+    // feedback. (Feedback typing will set the representation.)
     SetOutput(node, output);
 
     int values = node->op()->ValueInputCount();
@@ -686,7 +965,7 @@
         Node* input = node->InputAt(i);
         NodeInfo* input_info = GetInfo(input);
         MachineType machine_type(input_info->representation(),
-                                 DeoptValueSemanticOf(GetUpperBound(input)));
+                                 DeoptValueSemanticOf(TypeOf(input)));
         DCHECK(machine_type.representation() !=
                    MachineRepresentation::kWord32 ||
                machine_type.semantic() == MachineSemantic::kInt32 ||
@@ -703,6 +982,10 @@
     return changer_->Int32OperatorFor(node->opcode());
   }
 
+  const Operator* Int32OverflowOp(Node* node) {
+    return changer_->Int32OverflowOperatorFor(node->opcode());
+  }
+
   const Operator* Uint32Op(Node* node) {
     return changer_->Uint32OperatorFor(node->opcode());
   }
@@ -776,6 +1059,102 @@
                                field_type, value);
   }
 
+  Graph* graph() const { return jsgraph_->graph(); }
+  CommonOperatorBuilder* common() const { return jsgraph_->common(); }
+  SimplifiedOperatorBuilder* simplified() const {
+    return jsgraph_->simplified();
+  }
+
+  void ReplaceEffectControlUses(Node* node, Node* effect, Node* control) {
+    for (Edge edge : node->use_edges()) {
+      if (NodeProperties::IsControlEdge(edge)) {
+        edge.UpdateTo(control);
+      } else if (NodeProperties::IsEffectEdge(edge)) {
+        edge.UpdateTo(effect);
+      } else {
+        DCHECK(NodeProperties::IsValueEdge(edge));
+      }
+    }
+  }
+
+  void ChangeToPureOp(Node* node, const Operator* new_op) {
+    if (node->op()->EffectInputCount() > 0) {
+      DCHECK_LT(0, node->op()->ControlInputCount());
+      // Disconnect the node from effect and control chains.
+      Node* control = NodeProperties::GetControlInput(node);
+      Node* effect = NodeProperties::GetEffectInput(node);
+      ReplaceEffectControlUses(node, effect, control);
+      node->TrimInputCount(new_op->ValueInputCount());
+    } else {
+      DCHECK_EQ(0, node->op()->ControlInputCount());
+    }
+
+    NodeProperties::ChangeOp(node, new_op);
+  }
+
+  void ChangeToInt32OverflowOp(Node* node, const Operator* new_op) {
+    NodeProperties::ChangeOp(node, new_op);
+  }
+
+  void VisitSpeculativeAdditiveOp(Node* node, Truncation truncation,
+                                  SimplifiedLowering* lowering) {
+    if (BothInputsAre(node, type_cache_.kSigned32OrMinusZero) &&
+        NodeProperties::GetType(node)->Is(Type::Signed32())) {
+      // int32 + int32 = int32   ==>   signed Int32Add/Sub
+      VisitInt32Binop(node);
+      if (lower()) ChangeToPureOp(node, Int32Op(node));
+      return;
+    }
+
+    // Use truncation if available.
+    if (BothInputsAre(node, type_cache_.kAdditiveSafeIntegerOrMinusZero) &&
+        truncation.TruncatesToWord32()) {
+      // safe-int + safe-int = x (truncated to int32)
+      // => signed Int32Add/Sub (truncated)
+      VisitWord32TruncatingBinop(node);
+      if (lower()) ChangeToPureOp(node, Int32Op(node));
+      return;
+    }
+
+    // Try to use type feedback.
+    BinaryOperationHints::Hint hint = BinaryOperationHintOf(node->op());
+
+    // Handle the case when no int32 checks on inputs are necessary
+    // (but an overflow check is needed on the output).
+    if (BothInputsAre(node, Type::Signed32()) ||
+        (BothInputsAre(node, type_cache_.kSigned32OrMinusZero) &&
+         NodeProperties::GetType(node)->Is(type_cache_.kSafeInteger))) {
+      // If both the inputs the feedback are int32, use the overflow op.
+      if (hint == BinaryOperationHints::kSignedSmall ||
+          hint == BinaryOperationHints::kSigned32) {
+        VisitBinop(node, UseInfo::TruncatingWord32(),
+                   MachineRepresentation::kWord32, TypeCheckKind::kSigned32);
+        if (lower()) {
+          ChangeToInt32OverflowOp(node, Int32OverflowOp(node));
+        }
+        return;
+      }
+    }
+
+    if (hint == BinaryOperationHints::kSignedSmall ||
+        hint == BinaryOperationHints::kSigned32) {
+      VisitBinop(node, UseInfo::CheckedSigned32AsWord32(),
+                 MachineRepresentation::kWord32, TypeCheckKind::kSigned32);
+      if (lower()) {
+        ChangeToInt32OverflowOp(node, Int32OverflowOp(node));
+      }
+      return;
+    }
+
+    // default case => Float64Add/Sub
+    VisitBinop(node, UseInfo::CheckedNumberOrUndefinedAsFloat64(),
+               MachineRepresentation::kFloat64, TypeCheckKind::kNumber);
+    if (lower()) {
+      ChangeToPureOp(node, Float64Op(node));
+    }
+    return;
+  }
+
   // 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,
@@ -813,15 +1192,15 @@
         ProcessInput(node, 0, UseInfo::Bool());
         ProcessInput(node, 1, UseInfo::AnyTagged());
         ProcessRemainingInputs(node, 2);
-        break;
+        return;
       case IrOpcode::kBranch:
         ProcessInput(node, 0, UseInfo::Bool());
         EnqueueInput(node, NodeProperties::FirstControlIndex(node));
-        break;
+        return;
       case IrOpcode::kSwitch:
         ProcessInput(node, 0, UseInfo::TruncatingWord32());
         EnqueueInput(node, NodeProperties::FirstControlIndex(node));
-        break;
+        return;
       case IrOpcode::kSelect:
         return VisitSelect(node, truncation, lowering);
       case IrOpcode::kPhi:
@@ -844,7 +1223,7 @@
         } else {
           SetOutput(node, MachineRepresentation::kTagged);
         }
-        break;
+        return;
       }
 
       //------------------------------------------------------------------
@@ -867,7 +1246,7 @@
           ProcessInput(node, 0, UseInfo::AnyTruncatingToBool());
           SetOutput(node, MachineRepresentation::kBit);
         }
-        break;
+        return;
       }
       case IrOpcode::kBooleanToNumber: {
         if (lower()) {
@@ -885,17 +1264,19 @@
           ProcessInput(node, 0, UseInfo::AnyTruncatingToBool());
           SetOutput(node, MachineRepresentation::kWord32);
         }
-        break;
+        return;
       }
       case IrOpcode::kNumberEqual:
       case IrOpcode::kNumberLessThan:
       case IrOpcode::kNumberLessThanOrEqual: {
         // Number comparisons reduce to integer comparisons for integer inputs.
-        if (BothInputsAreSigned32(node)) {
+        if (TypeOf(node->InputAt(0))->Is(Type::Signed32()) &&
+            TypeOf(node->InputAt(1))->Is(Type::Signed32())) {
           // => signed Int32Cmp
           VisitInt32Cmp(node);
           if (lower()) NodeProperties::ChangeOp(node, Int32Op(node));
-        } else if (BothInputsAreUnsigned32(node)) {
+        } else if (TypeOf(node->InputAt(0))->Is(Type::Unsigned32()) &&
+                   TypeOf(node->InputAt(1))->Is(Type::Unsigned32())) {
           // => unsigned Int32Cmp
           VisitUint32Cmp(node);
           if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
@@ -904,8 +1285,47 @@
           VisitFloat64Cmp(node);
           if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
         }
-        break;
+        return;
       }
+
+      case IrOpcode::kSpeculativeNumberAdd:
+      case IrOpcode::kSpeculativeNumberSubtract:
+        return VisitSpeculativeAdditiveOp(node, truncation, lowering);
+
+      case IrOpcode::kSpeculativeNumberLessThan:
+      case IrOpcode::kSpeculativeNumberLessThanOrEqual:
+      case IrOpcode::kSpeculativeNumberEqual: {
+        // Number comparisons reduce to integer comparisons for integer inputs.
+        if (TypeOf(node->InputAt(0))->Is(Type::Signed32()) &&
+            TypeOf(node->InputAt(1))->Is(Type::Signed32())) {
+          // => signed Int32Cmp
+          VisitInt32Cmp(node);
+          if (lower()) ChangeToPureOp(node, Int32Op(node));
+          return;
+        } else if (TypeOf(node->InputAt(0))->Is(Type::Unsigned32()) &&
+                   TypeOf(node->InputAt(1))->Is(Type::Unsigned32())) {
+          // => unsigned Int32Cmp
+          VisitUint32Cmp(node);
+          if (lower()) ChangeToPureOp(node, Uint32Op(node));
+          return;
+        }
+        // Try to use type feedback.
+        CompareOperationHints::Hint hint = CompareOperationHintOf(node->op());
+
+        if (hint == CompareOperationHints::kSignedSmall) {
+          VisitBinop(node, UseInfo::CheckedSigned32AsWord32(),
+                     MachineRepresentation::kBit);
+          if (lower()) ChangeToPureOp(node, Int32Op(node));
+          return;
+        }
+        DCHECK_EQ(CompareOperationHints::kNumber, hint);
+        // default case => Float64 comparison
+        VisitBinop(node, UseInfo::CheckedNumberOrUndefinedAsFloat64(),
+                   MachineRepresentation::kBit);
+        if (lower()) ChangeToPureOp(node, Float64Op(node));
+        return;
+      }
+
       case IrOpcode::kNumberAdd:
       case IrOpcode::kNumberSubtract: {
         if (BothInputsAre(node, Type::Signed32()) &&
@@ -914,7 +1334,8 @@
           // => signed Int32Add/Sub
           VisitInt32Binop(node);
           if (lower()) NodeProperties::ChangeOp(node, Int32Op(node));
-        } else if (BothInputsAre(node, type_cache_.kAdditiveSafeInteger) &&
+        } else if (BothInputsAre(node,
+                                 type_cache_.kAdditiveSafeIntegerOrMinusZero) &&
                    truncation.TruncatesToWord32()) {
           // safe-int + safe-int = x (truncated to int32)
           // => signed Int32Add/Sub (truncated)
@@ -925,90 +1346,119 @@
           VisitFloat64Binop(node);
           if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
         }
-        break;
+        return;
       }
+      case IrOpcode::kSpeculativeNumberMultiply:
       case IrOpcode::kNumberMultiply: {
         if (BothInputsAreSigned32(node)) {
           if (NodeProperties::GetType(node)->Is(Type::Signed32())) {
             // Multiply reduces to Int32Mul if the inputs and the output
             // are integers.
             VisitInt32Binop(node);
-            if (lower()) NodeProperties::ChangeOp(node, Int32Op(node));
-            break;
+            if (lower()) ChangeToPureOp(node, Int32Op(node));
+            return;
           }
           if (truncation.TruncatesToWord32() &&
-              NodeProperties::GetType(node)->Is(type_cache_.kSafeInteger)) {
+              NodeProperties::GetType(node)->Is(
+                  type_cache_.kSafeIntegerOrMinusZero)) {
             // Multiply reduces to Int32Mul if the inputs are integers,
             // the uses are truncating and the result is in the safe
             // integer range.
             VisitWord32TruncatingBinop(node);
-            if (lower()) NodeProperties::ChangeOp(node, Int32Op(node));
-            break;
+            if (lower()) ChangeToPureOp(node, Int32Op(node));
+            return;
           }
         }
-        // => Float64Mul
-        VisitFloat64Binop(node);
-        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
-        break;
+        // Number x Number => Float64Mul
+        if (BothInputsAre(node, Type::NumberOrUndefined())) {
+          VisitFloat64Binop(node);
+          if (lower()) ChangeToPureOp(node, Float64Op(node));
+          return;
+        }
+        // Checked float64 x float64 => float64
+        DCHECK_EQ(IrOpcode::kSpeculativeNumberMultiply, node->opcode());
+        VisitBinop(node, UseInfo::CheckedNumberOrUndefinedAsFloat64(),
+                   MachineRepresentation::kFloat64, TypeCheckKind::kNumber);
+        if (lower()) ChangeToPureOp(node, Float64Op(node));
+        return;
       }
+      case IrOpcode::kSpeculativeNumberDivide:
       case IrOpcode::kNumberDivide: {
         if (BothInputsAreSigned32(node)) {
           if (NodeProperties::GetType(node)->Is(Type::Signed32())) {
           // => signed Int32Div
           VisitInt32Binop(node);
           if (lower()) DeferReplacement(node, lowering->Int32Div(node));
-          break;
+          return;
           }
           if (truncation.TruncatesToWord32()) {
             // => signed Int32Div
             VisitWord32TruncatingBinop(node);
             if (lower()) DeferReplacement(node, lowering->Int32Div(node));
-            break;
+            return;
           }
         }
         if (BothInputsAreUnsigned32(node) && truncation.TruncatesToWord32()) {
           // => unsigned Uint32Div
           VisitWord32TruncatingBinop(node);
           if (lower()) DeferReplacement(node, lowering->Uint32Div(node));
-          break;
+          return;
         }
-        // => Float64Div
-        VisitFloat64Binop(node);
-        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
-        break;
+        // Number x Number => Float64Div
+        if (BothInputsAre(node, Type::NumberOrUndefined())) {
+          VisitFloat64Binop(node);
+          if (lower()) ChangeToPureOp(node, Float64Op(node));
+          return;
+        }
+        // Checked float64 x float64 => float64
+        DCHECK_EQ(IrOpcode::kSpeculativeNumberDivide, node->opcode());
+        VisitBinop(node, UseInfo::CheckedNumberOrUndefinedAsFloat64(),
+                   MachineRepresentation::kFloat64, TypeCheckKind::kNumber);
+        if (lower()) ChangeToPureOp(node, Float64Op(node));
+        return;
       }
+      case IrOpcode::kSpeculativeNumberModulus:
       case IrOpcode::kNumberModulus: {
         if (BothInputsAreSigned32(node)) {
           if (NodeProperties::GetType(node)->Is(Type::Signed32())) {
             // => signed Int32Mod
             VisitInt32Binop(node);
             if (lower()) DeferReplacement(node, lowering->Int32Mod(node));
-            break;
+            return;
           }
           if (truncation.TruncatesToWord32()) {
             // => signed Int32Mod
             VisitWord32TruncatingBinop(node);
             if (lower()) DeferReplacement(node, lowering->Int32Mod(node));
-            break;
+            return;
           }
         }
         if (BothInputsAreUnsigned32(node) && truncation.TruncatesToWord32()) {
           // => unsigned Uint32Mod
           VisitWord32TruncatingBinop(node);
           if (lower()) DeferReplacement(node, lowering->Uint32Mod(node));
-          break;
+          return;
         }
-        // => Float64Mod
-        VisitFloat64Binop(node);
-        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
-        break;
+        // Number x Number => Float64Mod
+        if (BothInputsAre(node, Type::NumberOrUndefined())) {
+          // => Float64Mod
+          VisitFloat64Binop(node);
+          if (lower()) ChangeToPureOp(node, Float64Op(node));
+          return;
+        }
+        // Checked float64 x float64 => float64
+        DCHECK_EQ(IrOpcode::kSpeculativeNumberModulus, node->opcode());
+        VisitBinop(node, UseInfo::CheckedNumberOrUndefinedAsFloat64(),
+                   MachineRepresentation::kFloat64, TypeCheckKind::kNumber);
+        if (lower()) ChangeToPureOp(node, Float64Op(node));
+        return;
       }
       case IrOpcode::kNumberBitwiseOr:
       case IrOpcode::kNumberBitwiseXor:
       case IrOpcode::kNumberBitwiseAnd: {
         VisitInt32Binop(node);
         if (lower()) NodeProperties::ChangeOp(node, Int32Op(node));
-        break;
+        return;
       }
       case IrOpcode::kNumberShiftLeft: {
         Type* rhs_type = GetUpperBound(node->InputAt(1));
@@ -1017,7 +1467,7 @@
         if (lower()) {
           lowering->DoShift(node, lowering->machine()->Word32Shl(), rhs_type);
         }
-        break;
+        return;
       }
       case IrOpcode::kNumberShiftRight: {
         Type* rhs_type = GetUpperBound(node->InputAt(1));
@@ -1026,7 +1476,7 @@
         if (lower()) {
           lowering->DoShift(node, lowering->machine()->Word32Sar(), rhs_type);
         }
-        break;
+        return;
       }
       case IrOpcode::kNumberShiftRightLogical: {
         Type* rhs_type = GetUpperBound(node->InputAt(1));
@@ -1035,87 +1485,127 @@
         if (lower()) {
           lowering->DoShift(node, lowering->machine()->Word32Shr(), rhs_type);
         }
-        break;
+        return;
+      }
+      case IrOpcode::kNumberAbs: {
+        if (InputIs(node, Type::Unsigned32())) {
+          VisitUnop(node, UseInfo::TruncatingWord32(),
+                    MachineRepresentation::kWord32);
+          if (lower()) DeferReplacement(node, node->InputAt(0));
+        } else if (InputIs(node, type_cache_.kSafeSigned32)) {
+          VisitUnop(node, UseInfo::TruncatingWord32(),
+                    MachineRepresentation::kWord32);
+          if (lower()) DeferReplacement(node, lowering->Int32Abs(node));
+        } else if (InputIs(node,
+                           type_cache_.kPositiveIntegerOrMinusZeroOrNaN)) {
+          VisitUnop(node, UseInfo::TruncatingFloat64(),
+                    MachineRepresentation::kFloat64);
+          if (lower()) DeferReplacement(node, node->InputAt(0));
+        } else {
+          VisitUnop(node, UseInfo::TruncatingFloat64(),
+                    MachineRepresentation::kFloat64);
+          if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        }
+        return;
       }
       case IrOpcode::kNumberClz32: {
         VisitUnop(node, UseInfo::TruncatingWord32(),
                   MachineRepresentation::kWord32);
         if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
-        break;
+        return;
       }
       case IrOpcode::kNumberImul: {
         VisitBinop(node, UseInfo::TruncatingWord32(),
                    UseInfo::TruncatingWord32(), MachineRepresentation::kWord32);
         if (lower()) NodeProperties::ChangeOp(node, Uint32Op(node));
-        break;
+        return;
       }
       case IrOpcode::kNumberCeil: {
         VisitUnop(node, UseInfo::TruncatingFloat64(),
                   MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Ceil(node));
-        break;
+        return;
       }
       case IrOpcode::kNumberFloor: {
         VisitUnop(node, UseInfo::TruncatingFloat64(),
                   MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Floor(node));
-        break;
+        return;
+      }
+      case IrOpcode::kNumberFround: {
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat32);
+        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        return;
+      }
+      case IrOpcode::kNumberAtan2: {
+        VisitBinop(node, UseInfo::TruncatingFloat64(),
+                   MachineRepresentation::kFloat64);
+        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        return;
+      }
+      case IrOpcode::kNumberAtan:
+      case IrOpcode::kNumberAtanh:
+      case IrOpcode::kNumberCos:
+      case IrOpcode::kNumberExp:
+      case IrOpcode::kNumberExpm1:
+      case IrOpcode::kNumberLog:
+      case IrOpcode::kNumberLog1p:
+      case IrOpcode::kNumberLog2:
+      case IrOpcode::kNumberLog10:
+      case IrOpcode::kNumberCbrt:
+      case IrOpcode::kNumberSin:
+      case IrOpcode::kNumberTan: {
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
+        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        return;
       }
       case IrOpcode::kNumberRound: {
         VisitUnop(node, UseInfo::TruncatingFloat64(),
                   MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Round(node));
-        break;
+        return;
+      }
+      case IrOpcode::kNumberSqrt: {
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
+        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        return;
       }
       case IrOpcode::kNumberTrunc: {
         VisitUnop(node, UseInfo::TruncatingFloat64(),
                   MachineRepresentation::kFloat64);
         if (lower()) DeferReplacement(node, lowering->Float64Trunc(node));
-        break;
+        return;
       }
       case IrOpcode::kNumberToInt32: {
         // Just change representation if necessary.
         VisitUnop(node, UseInfo::TruncatingWord32(),
                   MachineRepresentation::kWord32);
         if (lower()) DeferReplacement(node, node->InputAt(0));
-        break;
+        return;
       }
       case IrOpcode::kNumberToUint32: {
         // Just change representation if necessary.
         VisitUnop(node, UseInfo::TruncatingWord32(),
                   MachineRepresentation::kWord32);
         if (lower()) DeferReplacement(node, node->InputAt(0));
-        break;
-      }
-      case IrOpcode::kNumberIsHoleNaN: {
-        VisitUnop(node, UseInfo::TruncatingFloat64(),
-                  MachineRepresentation::kBit);
-        if (lower()) {
-          // NumberIsHoleNaN(x) => Word32Equal(Float64ExtractLowWord32(x),
-          //                                   #HoleNaNLower32)
-          node->ReplaceInput(0,
-                             jsgraph_->graph()->NewNode(
-                                 lowering->machine()->Float64ExtractLowWord32(),
-                                 node->InputAt(0)));
-          node->AppendInput(jsgraph_->zone(),
-                            jsgraph_->Int32Constant(kHoleNanLower32));
-          NodeProperties::ChangeOp(node, jsgraph_->machine()->Word32Equal());
-        }
-        break;
+        return;
       }
       case IrOpcode::kReferenceEqual: {
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kBit);
         if (lower()) {
           NodeProperties::ChangeOp(node, lowering->machine()->WordEqual());
         }
-        break;
+        return;
       }
       case IrOpcode::kStringEqual: {
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringEqual(x, y) => Call(StringEqualStub, x, y, no-context)
           Operator::Properties properties =
-              Operator::kCommutative | Operator::kNoThrow;
+              Operator::kCommutative | Operator::kEliminatable;
           Callable callable = CodeFactory::StringEqual(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1125,16 +1615,15 @@
                             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;
+        return;
       }
       case IrOpcode::kStringLessThan: {
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringLessThan(x, y) => Call(StringLessThanStub, x, y, no-context)
-          Operator::Properties properties = Operator::kNoThrow;
+          Operator::Properties properties = Operator::kEliminatable;
           Callable callable = CodeFactory::StringLessThan(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1144,17 +1633,16 @@
                             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;
+        return;
       }
       case IrOpcode::kStringLessThanOrEqual: {
         VisitBinop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
           // StringLessThanOrEqual(x, y)
           //   => Call(StringLessThanOrEqualStub, x, y, no-context)
-          Operator::Properties properties = Operator::kNoThrow;
+          Operator::Properties properties = Operator::kEliminatable;
           Callable callable =
               CodeFactory::StringLessThanOrEqual(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
@@ -1165,16 +1653,20 @@
                             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;
+        return;
+      }
+      case IrOpcode::kStringFromCharCode: {
+        VisitUnop(node, UseInfo::TruncatingWord32(),
+                  MachineRepresentation::kTagged);
+        return;
       }
       case IrOpcode::kStringToNumber: {
         VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
         if (lower()) {
-          // StringToNumber(x) => Call(StringToNumberStub, x, no-context)
-          Operator::Properties properties = Operator::kNoThrow;
+          // StringToNumber(x) => Call(StringToNumber, x, no-context)
+          Operator::Properties properties = Operator::kEliminatable;
           Callable callable = CodeFactory::StringToNumber(jsgraph_->isolate());
           CallDescriptor::Flags flags = CallDescriptor::kNoFlags;
           CallDescriptor* desc = Linkage::GetStubCallDescriptor(
@@ -1184,23 +1676,54 @@
                             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;
+        return;
       }
+
+      case IrOpcode::kCheckBounds: {
+        VisitBinop(node, UseInfo::CheckedSigned32AsWord32(),
+                   UseInfo::TruncatingWord32(), MachineRepresentation::kWord32);
+        return;
+      }
+      case IrOpcode::kCheckTaggedPointer: {
+        VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
+        if (lower()) {
+          if (InputIs(node, Type::TaggedPointer())) {
+            DeferReplacement(node, node->InputAt(0));
+          }
+        }
+        return;
+      }
+      case IrOpcode::kCheckTaggedSigned: {
+        if (SmiValuesAre32Bits() && truncation.TruncatesToWord32()) {
+          // TODO(jarin,bmeurer): Add CheckedSignedSmallAsWord32?
+          VisitUnop(node, UseInfo::CheckedSigned32AsWord32(),
+                    MachineRepresentation::kWord32);
+          if (lower()) DeferReplacement(node, node->InputAt(0));
+        } else {
+          VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
+          if (lower()) {
+            if (InputIs(node, Type::TaggedSigned())) {
+              DeferReplacement(node, node->InputAt(0));
+            }
+          }
+        }
+        return;
+      }
+
       case IrOpcode::kAllocate: {
         ProcessInput(node, 0, UseInfo::TruncatingWord32());
         ProcessRemainingInputs(node, 1);
         SetOutput(node, MachineRepresentation::kTagged);
-        break;
+        return;
       }
       case IrOpcode::kLoadField: {
         FieldAccess access = FieldAccessOf(node->op());
         ProcessInput(node, 0, UseInfoForBasePointer(access));
         ProcessRemainingInputs(node, 1);
         SetOutput(node, access.machine_type.representation());
-        break;
+        return;
       }
       case IrOpcode::kStoreField: {
         FieldAccess access = FieldAccessOf(node->op());
@@ -1219,7 +1742,7 @@
                 node, jsgraph_->simplified()->StoreField(access));
           }
         }
-        break;
+        return;
       }
       case IrOpcode::kLoadBuffer: {
         BufferAccess access = BufferAccessOf(node->op());
@@ -1252,7 +1775,7 @@
         }
         SetOutput(node, output);
         if (lower()) lowering->DoLoadBuffer(node, output, changer_);
-        break;
+        return;
       }
       case IrOpcode::kStoreBuffer: {
         BufferAccess access = BufferAccessOf(node->op());
@@ -1265,7 +1788,7 @@
         ProcessRemainingInputs(node, 4);
         SetOutput(node, MachineRepresentation::kNone);
         if (lower()) lowering->DoStoreBuffer(node);
-        break;
+        return;
       }
       case IrOpcode::kLoadElement: {
         ElementAccess access = ElementAccessOf(node->op());
@@ -1273,7 +1796,7 @@
         ProcessInput(node, 1, UseInfo::TruncatingWord32());    // index
         ProcessRemainingInputs(node, 2);
         SetOutput(node, access.machine_type.representation());
-        break;
+        return;
       }
       case IrOpcode::kStoreElement: {
         ElementAccess access = ElementAccessOf(node->op());
@@ -1294,8 +1817,41 @@
                 node, jsgraph_->simplified()->StoreElement(access));
           }
         }
-        break;
+        return;
       }
+      case IrOpcode::kPlainPrimitiveToNumber:
+        if (truncation.TruncatesToWord32()) {
+          // TODO(jarin): Extend this to Number \/ Oddball
+          if (InputIs(node, Type::NumberOrUndefined())) {
+            VisitUnop(node, UseInfo::TruncatingWord32(),
+                      MachineRepresentation::kWord32);
+            if (lower()) DeferReplacement(node, node->InputAt(0));
+          } else {
+            VisitUnop(node, UseInfo::AnyTagged(),
+                      MachineRepresentation::kWord32);
+            if (lower()) {
+              NodeProperties::ChangeOp(node,
+                                       simplified()->PlainPrimitiveToWord32());
+            }
+          }
+        } else if (truncation.TruncatesToFloat64()) {
+          // TODO(jarin): Extend this to Number \/ Oddball
+          if (InputIs(node, Type::NumberOrUndefined())) {
+            VisitUnop(node, UseInfo::TruncatingFloat64(),
+                      MachineRepresentation::kFloat64);
+            if (lower()) DeferReplacement(node, node->InputAt(0));
+          } else {
+            VisitUnop(node, UseInfo::AnyTagged(),
+                      MachineRepresentation::kFloat64);
+            if (lower()) {
+              NodeProperties::ChangeOp(node,
+                                       simplified()->PlainPrimitiveToFloat64());
+            }
+          }
+        } else {
+          VisitUnop(node, UseInfo::AnyTagged(), MachineRepresentation::kTagged);
+        }
+        return;
       case IrOpcode::kObjectIsCallable:
       case IrOpcode::kObjectIsNumber:
       case IrOpcode::kObjectIsReceiver:
@@ -1304,7 +1860,33 @@
       case IrOpcode::kObjectIsUndetectable: {
         ProcessInput(node, 0, UseInfo::AnyTagged());
         SetOutput(node, MachineRepresentation::kBit);
-        break;
+        return;
+      }
+      case IrOpcode::kCheckFloat64Hole: {
+        CheckFloat64HoleMode mode = CheckFloat64HoleModeOf(node->op());
+        ProcessInput(node, 0, UseInfo::TruncatingFloat64());
+        ProcessRemainingInputs(node, 1);
+        SetOutput(node, MachineRepresentation::kFloat64);
+        if (truncation.TruncatesToFloat64() &&
+            mode == CheckFloat64HoleMode::kAllowReturnHole) {
+          if (lower()) DeferReplacement(node, node->InputAt(0));
+        }
+        return;
+      }
+      case IrOpcode::kCheckTaggedHole: {
+        CheckTaggedHoleMode mode = CheckTaggedHoleModeOf(node->op());
+        if (truncation.TruncatesToWord32() &&
+            mode == CheckTaggedHoleMode::kConvertHoleToUndefined) {
+          ProcessInput(node, 0, UseInfo::CheckedSigned32AsWord32());
+          ProcessRemainingInputs(node, 1);
+          SetOutput(node, MachineRepresentation::kWord32);
+          if (lower()) DeferReplacement(node, node->InputAt(0));
+        } else {
+          ProcessInput(node, 0, UseInfo::AnyTagged());
+          ProcessRemainingInputs(node, 1);
+          SetOutput(node, MachineRepresentation::kTagged);
+        }
+        return;
       }
 
       //------------------------------------------------------------------
@@ -1317,8 +1899,7 @@
         ProcessInput(node, 0, UseInfo::AnyTagged());   // tagged pointer
         ProcessInput(node, 1, UseInfo::PointerInt());  // index
         ProcessRemainingInputs(node, 2);
-        SetOutput(node, rep.representation());
-        break;
+        return SetOutput(node, rep.representation());
       }
       case IrOpcode::kStore: {
         // TODO(jarin) Eventually, we should get rid of all machine stores
@@ -1329,8 +1910,7 @@
         ProcessInput(node, 2,
                      TruncatingUseInfoFromRepresentation(rep.representation()));
         ProcessRemainingInputs(node, 3);
-        SetOutput(node, MachineRepresentation::kNone);
-        break;
+        return SetOutput(node, MachineRepresentation::kNone);
       }
       case IrOpcode::kWord32Shr:
         // We output unsigned int32 for shift right because JavaScript.
@@ -1415,10 +1995,6 @@
         return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kWord32);
 
-      case IrOpcode::kChangeFloat32ToFloat64:
-        UNREACHABLE();
-        return VisitUnop(node, UseInfo::TruncatingFloat32(),
-                         MachineRepresentation::kFloat64);
       case IrOpcode::kChangeInt32ToFloat64:
         return VisitUnop(node, UseInfo::TruncatingWord32(),
                          MachineRepresentation::kFloat64);
@@ -1440,6 +2016,9 @@
       case IrOpcode::kFloat64RoundUp:
         return VisitUnop(node, UseInfo::TruncatingFloat64(),
                          MachineRepresentation::kFloat64);
+      case IrOpcode::kFloat64SilenceNaN:
+        return VisitUnop(node, UseInfo::TruncatingFloat64(),
+                         MachineRepresentation::kFloat64);
       case IrOpcode::kFloat64Equal:
       case IrOpcode::kFloat64LessThan:
       case IrOpcode::kFloat64LessThanOrEqual:
@@ -1453,13 +2032,17 @@
         return VisitBinop(node, UseInfo::TruncatingFloat64(),
                           UseInfo::TruncatingWord32(),
                           MachineRepresentation::kFloat64);
+      case IrOpcode::kNumberSilenceNaN:
+        VisitUnop(node, UseInfo::TruncatingFloat64(),
+                  MachineRepresentation::kFloat64);
+        if (lower()) NodeProperties::ChangeOp(node, Float64Op(node));
+        return;
       case IrOpcode::kLoadStackPointer:
       case IrOpcode::kLoadFramePointer:
       case IrOpcode::kLoadParentFramePointer:
         return VisitLeaf(node, MachineType::PointerRepresentation());
       case IrOpcode::kStateValues:
-        VisitStateValues(node);
-        break;
+        return VisitStateValues(node);
 
       // The following opcodes are not produced before representation
       // inference runs, so we do not have any real test coverage.
@@ -1467,14 +2050,24 @@
       case IrOpcode::kChangeFloat64ToInt32:
       case IrOpcode::kChangeFloat64ToUint32:
       case IrOpcode::kTruncateInt64ToInt32:
+      case IrOpcode::kChangeFloat32ToFloat64:
+      case IrOpcode::kCheckedInt32Add:
+      case IrOpcode::kCheckedInt32Sub:
+      case IrOpcode::kCheckedUint32ToInt32:
+      case IrOpcode::kCheckedFloat64ToInt32:
+      case IrOpcode::kCheckedTaggedToInt32:
+      case IrOpcode::kCheckedTaggedToFloat64:
+      case IrOpcode::kPlainPrimitiveToWord32:
+      case IrOpcode::kPlainPrimitiveToFloat64:
         FATAL("Representation inference: unsupported opcodes.");
+        break;
 
       default:
         VisitInputs(node);
         // Assume the output is tagged.
-        SetOutput(node, MachineRepresentation::kTagged);
-        break;
+        return SetOutput(node, MachineRepresentation::kTagged);
     }
+    UNREACHABLE();
   }
 
   void DeferReplacement(Node* node, Node* replacement) {
@@ -1482,8 +2075,20 @@
           node->op()->mnemonic(), replacement->id(),
           replacement->op()->mnemonic());
 
+    // Disconnect the node from effect and control chains, if necessary.
+    if (node->op()->EffectInputCount() > 0) {
+      DCHECK_LT(0, node->op()->ControlInputCount());
+      // Disconnect the node from effect and control chains.
+      Node* control = NodeProperties::GetControlInput(node);
+      Node* effect = NodeProperties::GetEffectInput(node);
+      ReplaceEffectControlUses(node, effect, control);
+    } else {
+      DCHECK_EQ(0, node->op()->ControlInputCount());
+    }
+
     if (replacement->id() < count_ &&
-        GetUpperBound(node)->Is(GetUpperBound(replacement))) {
+        GetUpperBound(node)->Is(GetUpperBound(replacement)) &&
+        TypeOf(node)->Is(TypeOf(replacement))) {
       // Replace with a previously existing node eagerly only if the type is the
       // same.
       node->ReplaceUses(replacement);
@@ -1515,19 +2120,20 @@
   void PrintTruncation(Truncation truncation) {
     if (FLAG_trace_representation) {
       OFStream os(stdout);
-      os << truncation.description();
+      os << truncation.description() << std::endl;
     }
   }
 
   void PrintUseInfo(UseInfo info) {
     if (FLAG_trace_representation) {
       OFStream os(stdout);
-      os << info.preferred() << ":" << info.truncation().description();
+      os << info.representation() << ":" << info.truncation().description();
     }
   }
 
  private:
   JSGraph* jsgraph_;
+  Zone* zone_;                      // Temporary zone.
   size_t const count_;              // number of nodes in the graph
   ZoneVector<NodeInfo> info_;       // node id -> usage information
 #ifdef DEBUG
@@ -1539,6 +2145,12 @@
   Phase phase_;                     // current phase of algorithm
   RepresentationChanger* changer_;  // for inserting representation changes
   ZoneQueue<Node*> queue_;          // queue for traversing the graph
+
+  struct NodeState {
+    Node* node;
+    int input_index;
+  };
+  ZoneStack<NodeState> typing_stack_;  // stack for graph typing.
   // TODO(danno): RepresentationSelector shouldn't know anything about the
   // source positions table, but must for now since there currently is no other
   // way to pass down source position information to nodes created during
@@ -1546,23 +2158,26 @@
   // position information via the SourcePositionWrapper like all other reducers.
   SourcePositionTable* source_positions_;
   TypeCache const& type_cache_;
+  OperationTyper op_typer_;  // helper for the feedback typer
 
   NodeInfo* GetInfo(Node* node) {
     DCHECK(node->id() >= 0);
     DCHECK(node->id() < count_);
     return &info_[node->id()];
   }
+  Zone* zone() { return zone_; }
+  Zone* graph_zone() { return jsgraph_->zone(); }
 };
 
-
 SimplifiedLowering::SimplifiedLowering(JSGraph* jsgraph, Zone* zone,
-                                       SourcePositionTable* source_positions)
+                                       SourcePositionTable* source_positions,
+                                       Flags flags)
     : jsgraph_(jsgraph),
       zone_(zone),
       type_cache_(TypeCache::Get()),
+      flags_(flags),
       source_positions_(source_positions) {}
 
-
 void SimplifiedLowering::LowerAllNodes() {
   RepresentationChanger changer(jsgraph(), jsgraph()->isolate());
   RepresentationSelector selector(jsgraph(), zone_, &changer,
@@ -1758,8 +2373,8 @@
     Type* element_type =
         Type::Intersect(NodeProperties::GetType(node), Type::Number(), zone());
     Node* vtrue = changer->GetRepresentationFor(
-        etrue, access_type.representation(), element_type, output_rep,
-        Truncation::None());
+        etrue, access_type.representation(), element_type, node,
+        UseInfo(output_rep, Truncation::None()));
 
     Node* if_false = graph()->NewNode(common()->IfFalse(), branch);
     Node* efalse = effect;
@@ -2188,6 +2803,17 @@
                           vtrue0, vfalse0, merge0);
 }
 
+Node* SimplifiedLowering::Int32Abs(Node* const node) {
+  Node* const zero = jsgraph()->Int32Constant(0);
+  Node* const input = node->InputAt(0);
+
+  // if 0 < input then input else 0 - input
+  return graph()->NewNode(
+      common()->Select(MachineRepresentation::kWord32, BranchHint::kTrue),
+      graph()->NewNode(machine()->Int32LessThan(), zero, input), input,
+      graph()->NewNode(machine()->Int32Sub(), zero, input));
+}
+
 Node* SimplifiedLowering::Int32Div(Node* const node) {
   Int32BinopMatcher m(node);
   Node* const zero = jsgraph()->Int32Constant(0);
diff --git a/src/compiler/simplified-lowering.h b/src/compiler/simplified-lowering.h
index baffe20..75fd9c2 100644
--- a/src/compiler/simplified-lowering.h
+++ b/src/compiler/simplified-lowering.h
@@ -5,6 +5,7 @@
 #ifndef V8_COMPILER_SIMPLIFIED_LOWERING_H_
 #define V8_COMPILER_SIMPLIFIED_LOWERING_H_
 
+#include "src/base/flags.h"
 #include "src/compiler/js-graph.h"
 #include "src/compiler/machine-operator.h"
 #include "src/compiler/node.h"
@@ -26,8 +27,11 @@
 
 class SimplifiedLowering final {
  public:
+  enum Flag { kNoFlag = 0u, kTypeFeedbackEnabled = 1u << 0 };
+  typedef base::Flags<Flag> Flags;
   SimplifiedLowering(JSGraph* jsgraph, Zone* zone,
-                     SourcePositionTable* source_positions);
+                     SourcePositionTable* source_positions,
+                     Flags flags = kNoFlag);
   ~SimplifiedLowering() {}
 
   void LowerAllNodes();
@@ -43,12 +47,15 @@
   void DoStoreBuffer(Node* node);
   void DoShift(Node* node, Operator const* op, Type* rhs_type);
 
+  Flags flags() const { return flags_; }
+
  private:
   JSGraph* const jsgraph_;
   Zone* const zone_;
   TypeCache const& type_cache_;
   SetOncePointer<Node> to_number_code_;
   SetOncePointer<Operator const> to_number_operator_;
+  Flags flags_;
 
   // TODO(danno): SimplifiedLowering shouldn't know anything about the source
   // positions table, but must for now since there currently is no other way to
@@ -61,6 +68,7 @@
   Node* Float64Floor(Node* const node);
   Node* Float64Round(Node* const node);
   Node* Float64Trunc(Node* const node);
+  Node* Int32Abs(Node* const node);
   Node* Int32Div(Node* const node);
   Node* Int32Mod(Node* const node);
   Node* Uint32Div(Node* const node);
diff --git a/src/compiler/simplified-operator-reducer.cc b/src/compiler/simplified-operator-reducer.cc
index 6fbf16e..5db9dfb 100644
--- a/src/compiler/simplified-operator-reducer.cc
+++ b/src/compiler/simplified-operator-reducer.cc
@@ -16,8 +16,27 @@
 namespace internal {
 namespace compiler {
 
-SimplifiedOperatorReducer::SimplifiedOperatorReducer(JSGraph* jsgraph)
-    : jsgraph_(jsgraph), type_cache_(TypeCache::Get()) {}
+namespace {
+
+Decision DecideObjectIsSmi(Node* const input) {
+  NumberMatcher m(input);
+  if (m.HasValue()) {
+    return IsSmiDouble(m.Value()) ? Decision::kTrue : Decision::kFalse;
+  }
+  if (m.IsAllocate()) return Decision::kFalse;
+  if (m.IsChangeBitToTagged()) return Decision::kFalse;
+  if (m.IsChangeInt31ToTaggedSigned()) return Decision::kTrue;
+  if (m.IsHeapConstant()) return Decision::kFalse;
+  return Decision::kUnknown;
+}
+
+}  // namespace
+
+SimplifiedOperatorReducer::SimplifiedOperatorReducer(Editor* editor,
+                                                     JSGraph* jsgraph)
+    : AdvancedReducer(editor),
+      jsgraph_(jsgraph),
+      type_cache_(TypeCache::Get()) {}
 
 SimplifiedOperatorReducer::~SimplifiedOperatorReducer() {}
 
@@ -60,7 +79,8 @@
       }
       break;
     }
-    case IrOpcode::kChangeTaggedToFloat64: {
+    case IrOpcode::kChangeTaggedToFloat64:
+    case IrOpcode::kTruncateTaggedToFloat64: {
       NumberMatcher m(node->InputAt(0));
       if (m.HasValue()) return ReplaceFloat64(m.Value());
       if (m.IsChangeFloat64ToTagged()) return Replace(m.node()->InputAt(0));
@@ -109,6 +129,39 @@
       }
       break;
     }
+    case IrOpcode::kCheckTaggedPointer: {
+      Node* const input = node->InputAt(0);
+      if (DecideObjectIsSmi(input) == Decision::kFalse) {
+        ReplaceWithValue(node, input);
+        return Replace(input);
+      }
+      break;
+    }
+    case IrOpcode::kCheckTaggedSigned: {
+      Node* const input = node->InputAt(0);
+      if (DecideObjectIsSmi(input) == Decision::kTrue) {
+        ReplaceWithValue(node, input);
+        return Replace(input);
+      }
+      break;
+    }
+    case IrOpcode::kObjectIsSmi: {
+      Node* const input = node->InputAt(0);
+      switch (DecideObjectIsSmi(input)) {
+        case Decision::kTrue:
+          return ReplaceBoolean(true);
+        case Decision::kFalse:
+          return ReplaceBoolean(false);
+        case Decision::kUnknown:
+          break;
+      }
+      break;
+    }
+    case IrOpcode::kNumberAbs: {
+      NumberMatcher m(node->InputAt(0));
+      if (m.HasValue()) return ReplaceNumber(std::fabs(m.Value()));
+      break;
+    }
     case IrOpcode::kNumberCeil:
     case IrOpcode::kNumberFloor:
     case IrOpcode::kNumberRound:
@@ -164,6 +217,9 @@
   return Changed(node);
 }
 
+Reduction SimplifiedOperatorReducer::ReplaceBoolean(bool value) {
+  return Replace(jsgraph()->BooleanConstant(value));
+}
 
 Reduction SimplifiedOperatorReducer::ReplaceFloat64(double value) {
   return Replace(jsgraph()->Float64Constant(value));
diff --git a/src/compiler/simplified-operator-reducer.h b/src/compiler/simplified-operator-reducer.h
index 70750a8..6ee903b 100644
--- a/src/compiler/simplified-operator-reducer.h
+++ b/src/compiler/simplified-operator-reducer.h
@@ -20,10 +20,9 @@
 class MachineOperatorBuilder;
 class SimplifiedOperatorBuilder;
 
-
-class SimplifiedOperatorReducer final : public Reducer {
+class SimplifiedOperatorReducer final : public AdvancedReducer {
  public:
-  explicit SimplifiedOperatorReducer(JSGraph* jsgraph);
+  SimplifiedOperatorReducer(Editor* editor, JSGraph* jsgraph);
   ~SimplifiedOperatorReducer() final;
 
   Reduction Reduce(Node* node) final;
@@ -33,6 +32,7 @@
   Reduction ReduceTypeGuard(Node* node);
 
   Reduction Change(Node* node, const Operator* op, Node* a);
+  Reduction ReplaceBoolean(bool value);
   Reduction ReplaceFloat64(double value);
   Reduction ReplaceInt32(int32_t value);
   Reduction ReplaceUint32(uint32_t value) {
diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
index 0350403..0f32b0c 100644
--- a/src/compiler/simplified-operator.cc
+++ b/src/compiler/simplified-operator.cc
@@ -172,11 +172,67 @@
   return OpParameter<ElementAccess>(op);
 }
 
+size_t hash_value(CheckFloat64HoleMode mode) {
+  return static_cast<size_t>(mode);
+}
+
+std::ostream& operator<<(std::ostream& os, CheckFloat64HoleMode mode) {
+  switch (mode) {
+    case CheckFloat64HoleMode::kAllowReturnHole:
+      return os << "allow-return-hole";
+    case CheckFloat64HoleMode::kNeverReturnHole:
+      return os << "never-return-hole";
+  }
+  UNREACHABLE();
+  return os;
+}
+
+CheckFloat64HoleMode CheckFloat64HoleModeOf(const Operator* op) {
+  DCHECK_EQ(IrOpcode::kCheckFloat64Hole, op->opcode());
+  return OpParameter<CheckFloat64HoleMode>(op);
+}
+
+size_t hash_value(CheckTaggedHoleMode mode) {
+  return static_cast<size_t>(mode);
+}
+
+std::ostream& operator<<(std::ostream& os, CheckTaggedHoleMode mode) {
+  switch (mode) {
+    case CheckTaggedHoleMode::kConvertHoleToUndefined:
+      return os << "convert-hole-to-undefined";
+    case CheckTaggedHoleMode::kNeverReturnHole:
+      return os << "never-return-hole";
+  }
+  UNREACHABLE();
+  return os;
+}
+
+CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator* op) {
+  DCHECK_EQ(IrOpcode::kCheckTaggedHole, op->opcode());
+  return OpParameter<CheckTaggedHoleMode>(op);
+}
+
 Type* TypeOf(const Operator* op) {
   DCHECK_EQ(IrOpcode::kTypeGuard, op->opcode());
   return OpParameter<Type*>(op);
 }
 
+BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op) {
+  DCHECK(op->opcode() == IrOpcode::kSpeculativeNumberAdd ||
+         op->opcode() == IrOpcode::kSpeculativeNumberSubtract ||
+         op->opcode() == IrOpcode::kSpeculativeNumberMultiply ||
+         op->opcode() == IrOpcode::kSpeculativeNumberDivide ||
+         op->opcode() == IrOpcode::kSpeculativeNumberModulus);
+  return OpParameter<BinaryOperationHints::Hint>(op);
+}
+
+CompareOperationHints::Hint CompareOperationHintOf(const Operator* op) {
+  DCHECK(op->opcode() == IrOpcode::kSpeculativeNumberEqual ||
+         op->opcode() == IrOpcode::kSpeculativeNumberLessThan ||
+         op->opcode() == IrOpcode::kSpeculativeNumberLessThanOrEqual);
+  return OpParameter<CompareOperationHints::Hint>(op);
+}
+
 #define PURE_OP_LIST(V)                                    \
   V(BooleanNot, Operator::kNoProperties, 1)                \
   V(BooleanToNumber, Operator::kNoProperties, 1)           \
@@ -195,15 +251,35 @@
   V(NumberShiftRight, Operator::kNoProperties, 2)          \
   V(NumberShiftRightLogical, Operator::kNoProperties, 2)   \
   V(NumberImul, Operator::kCommutative, 2)                 \
+  V(NumberAbs, Operator::kNoProperties, 1)                 \
   V(NumberClz32, Operator::kNoProperties, 1)               \
   V(NumberCeil, Operator::kNoProperties, 1)                \
   V(NumberFloor, Operator::kNoProperties, 1)               \
+  V(NumberFround, Operator::kNoProperties, 1)              \
+  V(NumberAtan, Operator::kNoProperties, 1)                \
+  V(NumberAtan2, Operator::kNoProperties, 2)               \
+  V(NumberAtanh, Operator::kNoProperties, 1)               \
+  V(NumberCbrt, Operator::kNoProperties, 1)                \
+  V(NumberCos, Operator::kNoProperties, 1)                 \
+  V(NumberExp, Operator::kNoProperties, 1)                 \
+  V(NumberExpm1, Operator::kNoProperties, 1)               \
+  V(NumberLog, Operator::kNoProperties, 1)                 \
+  V(NumberLog1p, Operator::kNoProperties, 1)               \
+  V(NumberLog10, Operator::kNoProperties, 1)               \
+  V(NumberLog2, Operator::kNoProperties, 1)                \
   V(NumberRound, Operator::kNoProperties, 1)               \
+  V(NumberSin, Operator::kNoProperties, 1)                 \
+  V(NumberSqrt, Operator::kNoProperties, 1)                \
+  V(NumberTan, Operator::kNoProperties, 1)                 \
   V(NumberTrunc, Operator::kNoProperties, 1)               \
   V(NumberToInt32, Operator::kNoProperties, 1)             \
   V(NumberToUint32, Operator::kNoProperties, 1)            \
-  V(NumberIsHoleNaN, Operator::kNoProperties, 1)           \
+  V(NumberSilenceNaN, Operator::kNoProperties, 1)          \
+  V(StringFromCharCode, Operator::kNoProperties, 1)        \
   V(StringToNumber, Operator::kNoProperties, 1)            \
+  V(PlainPrimitiveToNumber, Operator::kNoProperties, 1)    \
+  V(PlainPrimitiveToWord32, Operator::kNoProperties, 1)    \
+  V(PlainPrimitiveToFloat64, Operator::kNoProperties, 1)   \
   V(ChangeTaggedSignedToInt32, Operator::kNoProperties, 1) \
   V(ChangeTaggedToInt32, Operator::kNoProperties, 1)       \
   V(ChangeTaggedToUint32, Operator::kNoProperties, 1)      \
@@ -215,6 +291,7 @@
   V(ChangeTaggedToBit, Operator::kNoProperties, 1)         \
   V(ChangeBitToTagged, Operator::kNoProperties, 1)         \
   V(TruncateTaggedToWord32, Operator::kNoProperties, 1)    \
+  V(TruncateTaggedToFloat64, Operator::kNoProperties, 1)   \
   V(ObjectIsCallable, Operator::kNoProperties, 1)          \
   V(ObjectIsNumber, Operator::kNoProperties, 1)            \
   V(ObjectIsReceiver, Operator::kNoProperties, 1)          \
@@ -225,6 +302,23 @@
   V(StringLessThan, Operator::kNoProperties, 2)            \
   V(StringLessThanOrEqual, Operator::kNoProperties, 2)
 
+#define SPECULATIVE_BINOP_LIST(V) \
+  V(SpeculativeNumberAdd)         \
+  V(SpeculativeNumberSubtract)    \
+  V(SpeculativeNumberDivide)      \
+  V(SpeculativeNumberMultiply)    \
+  V(SpeculativeNumberModulus)
+
+#define CHECKED_OP_LIST(V)    \
+  V(CheckTaggedPointer, 1)    \
+  V(CheckTaggedSigned, 1)     \
+  V(CheckedInt32Add, 2)       \
+  V(CheckedInt32Sub, 2)       \
+  V(CheckedUint32ToInt32, 1)  \
+  V(CheckedFloat64ToInt32, 1) \
+  V(CheckedTaggedToInt32, 1)  \
+  V(CheckedTaggedToFloat64, 1)
+
 struct SimplifiedOperatorGlobalCache final {
 #define PURE(Name, properties, input_count)                                \
   struct Name##Operator final : public Operator {                          \
@@ -236,11 +330,51 @@
   PURE_OP_LIST(PURE)
 #undef PURE
 
+#define CHECKED(Name, value_input_count)                            \
+  struct Name##Operator final : public Operator {                   \
+    Name##Operator()                                                \
+        : Operator(IrOpcode::k##Name,                               \
+                   Operator::kFoldable | Operator::kNoThrow, #Name, \
+                   value_input_count, 1, 1, 1, 1, 0) {}             \
+  };                                                                \
+  Name##Operator k##Name;
+  CHECKED_OP_LIST(CHECKED)
+#undef CHECKED
+
+  template <CheckFloat64HoleMode kMode>
+  struct CheckFloat64HoleNaNOperator final
+      : public Operator1<CheckFloat64HoleMode> {
+    CheckFloat64HoleNaNOperator()
+        : Operator1<CheckFloat64HoleMode>(
+              IrOpcode::kCheckFloat64Hole,
+              Operator::kFoldable | Operator::kNoThrow, "CheckFloat64Hole", 1,
+              1, 1, 1, 1, 0, kMode) {}
+  };
+  CheckFloat64HoleNaNOperator<CheckFloat64HoleMode::kAllowReturnHole>
+      kCheckFloat64HoleAllowReturnHoleOperator;
+  CheckFloat64HoleNaNOperator<CheckFloat64HoleMode::kNeverReturnHole>
+      kCheckFloat64HoleNeverReturnHoleOperator;
+
+  template <CheckTaggedHoleMode kMode>
+  struct CheckTaggedHoleOperator final : public Operator1<CheckTaggedHoleMode> {
+    CheckTaggedHoleOperator()
+        : Operator1<CheckTaggedHoleMode>(
+              IrOpcode::kCheckTaggedHole,
+              Operator::kFoldable | Operator::kNoThrow, "CheckTaggedHole", 1, 1,
+              1, 1, 1, 0, kMode) {}
+  };
+  CheckTaggedHoleOperator<CheckTaggedHoleMode::kConvertHoleToUndefined>
+      kCheckTaggedHoleConvertHoleToUndefinedOperator;
+  CheckTaggedHoleOperator<CheckTaggedHoleMode::kNeverReturnHole>
+      kCheckTaggedHoleNeverReturnHoleOperator;
+
   template <PretenureFlag kPretenure>
   struct AllocateOperator final : public Operator1<PretenureFlag> {
     AllocateOperator()
-        : Operator1<PretenureFlag>(IrOpcode::kAllocate, Operator::kNoThrow,
-                                   "Allocate", 1, 1, 1, 1, 1, 0, kPretenure) {}
+        : Operator1<PretenureFlag>(
+              IrOpcode::kAllocate,
+              Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
+              "Allocate", 1, 1, 1, 1, 1, 0, kPretenure) {}
   };
   AllocateOperator<NOT_TENURED> kAllocateNotTenuredOperator;
   AllocateOperator<TENURED> kAllocateTenuredOperator;
@@ -248,17 +382,19 @@
 #define BUFFER_ACCESS(Type, type, TYPE, ctype, size)                          \
   struct LoadBuffer##Type##Operator final : public Operator1<BufferAccess> {  \
     LoadBuffer##Type##Operator()                                              \
-        : Operator1<BufferAccess>(IrOpcode::kLoadBuffer,                      \
-                                  Operator::kNoThrow | Operator::kNoWrite,    \
-                                  "LoadBuffer", 3, 1, 1, 1, 1, 0,             \
-                                  BufferAccess(kExternal##Type##Array)) {}    \
+        : Operator1<BufferAccess>(                                            \
+              IrOpcode::kLoadBuffer,                                          \
+              Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,   \
+              "LoadBuffer", 3, 1, 1, 1, 1, 0,                                 \
+              BufferAccess(kExternal##Type##Array)) {}                        \
   };                                                                          \
   struct StoreBuffer##Type##Operator final : public Operator1<BufferAccess> { \
     StoreBuffer##Type##Operator()                                             \
-        : Operator1<BufferAccess>(IrOpcode::kStoreBuffer,                     \
-                                  Operator::kNoRead | Operator::kNoThrow,     \
-                                  "StoreBuffer", 4, 1, 1, 0, 1, 0,            \
-                                  BufferAccess(kExternal##Type##Array)) {}    \
+        : Operator1<BufferAccess>(                                            \
+              IrOpcode::kStoreBuffer,                                         \
+              Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,    \
+              "StoreBuffer", 4, 1, 1, 0, 1, 0,                                \
+              BufferAccess(kExternal##Type##Array)) {}                        \
   };                                                                          \
   LoadBuffer##Type##Operator kLoadBuffer##Type;                               \
   StoreBuffer##Type##Operator kStoreBuffer##Type;
@@ -274,12 +410,39 @@
 SimplifiedOperatorBuilder::SimplifiedOperatorBuilder(Zone* zone)
     : cache_(kCache.Get()), zone_(zone) {}
 
-
 #define GET_FROM_CACHE(Name, properties, input_count) \
   const Operator* SimplifiedOperatorBuilder::Name() { return &cache_.k##Name; }
 PURE_OP_LIST(GET_FROM_CACHE)
 #undef GET_FROM_CACHE
 
+#define GET_FROM_CACHE(Name, value_input_count) \
+  const Operator* SimplifiedOperatorBuilder::Name() { return &cache_.k##Name; }
+CHECKED_OP_LIST(GET_FROM_CACHE)
+#undef GET_FROM_CACHE
+
+const Operator* SimplifiedOperatorBuilder::CheckFloat64Hole(
+    CheckFloat64HoleMode mode) {
+  switch (mode) {
+    case CheckFloat64HoleMode::kAllowReturnHole:
+      return &cache_.kCheckFloat64HoleAllowReturnHoleOperator;
+    case CheckFloat64HoleMode::kNeverReturnHole:
+      return &cache_.kCheckFloat64HoleNeverReturnHoleOperator;
+  }
+  UNREACHABLE();
+  return nullptr;
+}
+
+const Operator* SimplifiedOperatorBuilder::CheckTaggedHole(
+    CheckTaggedHoleMode mode) {
+  switch (mode) {
+    case CheckTaggedHoleMode::kConvertHoleToUndefined:
+      return &cache_.kCheckTaggedHoleConvertHoleToUndefinedOperator;
+    case CheckTaggedHoleMode::kNeverReturnHole:
+      return &cache_.kCheckTaggedHoleNeverReturnHoleOperator;
+  }
+  UNREACHABLE();
+  return nullptr;
+}
 
 const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) {
   return new (zone()) Operator(IrOpcode::kReferenceEqual,
@@ -287,6 +450,13 @@
                                "ReferenceEqual", 2, 0, 0, 1, 0, 0);
 }
 
+const Operator* SimplifiedOperatorBuilder::CheckBounds() {
+  // TODO(bmeurer): Cache this operator. Make it pure!
+  return new (zone())
+      Operator(IrOpcode::kCheckBounds, Operator::kFoldable | Operator::kNoThrow,
+               "CheckBounds", 2, 1, 1, 1, 1, 0);
+}
+
 const Operator* SimplifiedOperatorBuilder::TypeGuard(Type* type) {
   class TypeGuardOperator final : public Operator1<Type*> {
    public:
@@ -341,6 +511,39 @@
   return nullptr;
 }
 
+#define SPECULATIVE_BINOP_DEF(Name)                                            \
+  const Operator* SimplifiedOperatorBuilder::Name(                             \
+      BinaryOperationHints::Hint hint) {                                       \
+    return new (zone()) Operator1<BinaryOperationHints::Hint>(                 \
+        IrOpcode::k##Name, Operator::kFoldable | Operator::kNoThrow, #Name, 2, \
+        1, 1, 1, 1, 0, hint);                                                  \
+  }
+SPECULATIVE_BINOP_LIST(SPECULATIVE_BINOP_DEF)
+#undef SPECULATIVE_BINOP_DEF
+
+const Operator* SimplifiedOperatorBuilder::SpeculativeNumberEqual(
+    CompareOperationHints::Hint hint) {
+  return new (zone()) Operator1<CompareOperationHints::Hint>(
+      IrOpcode::kSpeculativeNumberEqual,
+      Operator::kFoldable | Operator::kNoThrow, "SpeculativeNumberEqual", 2, 1,
+      1, 1, 1, 0, hint);
+}
+
+const Operator* SimplifiedOperatorBuilder::SpeculativeNumberLessThan(
+    CompareOperationHints::Hint hint) {
+  return new (zone()) Operator1<CompareOperationHints::Hint>(
+      IrOpcode::kSpeculativeNumberLessThan,
+      Operator::kFoldable | Operator::kNoThrow, "SpeculativeNumberLessThan", 2,
+      1, 1, 1, 1, 0, hint);
+}
+
+const Operator* SimplifiedOperatorBuilder::SpeculativeNumberLessThanOrEqual(
+    CompareOperationHints::Hint hint) {
+  return new (zone()) Operator1<CompareOperationHints::Hint>(
+      IrOpcode::kSpeculativeNumberLessThanOrEqual,
+      Operator::kFoldable | Operator::kNoThrow,
+      "SpeculativeNumberLessThanOrEqual", 2, 1, 1, 1, 1, 0, hint);
+}
 
 #define ACCESS_OP_LIST(V)                                    \
   V(LoadField, FieldAccess, Operator::kNoWrite, 1, 1, 1)     \
@@ -348,12 +551,12 @@
   V(LoadElement, ElementAccess, Operator::kNoWrite, 2, 1, 1) \
   V(StoreElement, ElementAccess, Operator::kNoRead, 3, 1, 0)
 
-
 #define ACCESS(Name, Type, properties, value_input_count, control_input_count, \
                output_count)                                                   \
   const Operator* SimplifiedOperatorBuilder::Name(const Type& access) {        \
     return new (zone())                                                        \
-        Operator1<Type>(IrOpcode::k##Name, Operator::kNoThrow | properties,    \
+        Operator1<Type>(IrOpcode::k##Name,                                     \
+                        Operator::kNoDeopt | Operator::kNoThrow | properties,  \
                         #Name, value_input_count, 1, control_input_count,      \
                         output_count, 1, 0, access);                           \
   }
diff --git a/src/compiler/simplified-operator.h b/src/compiler/simplified-operator.h
index 20d8a39..ffdf33f 100644
--- a/src/compiler/simplified-operator.h
+++ b/src/compiler/simplified-operator.h
@@ -7,6 +7,7 @@
 
 #include <iosfwd>
 
+#include "src/compiler/type-hints.h"
 #include "src/handles.h"
 #include "src/machine-type.h"
 #include "src/objects.h"
@@ -102,8 +103,34 @@
 
 ElementAccess const& ElementAccessOf(const Operator* op) WARN_UNUSED_RESULT;
 
+enum class CheckFloat64HoleMode : uint8_t {
+  kNeverReturnHole,  // Never return the hole (deoptimize instead).
+  kAllowReturnHole   // Allow to return the hole (signaling NaN).
+};
+
+size_t hash_value(CheckFloat64HoleMode);
+
+std::ostream& operator<<(std::ostream&, CheckFloat64HoleMode);
+
+CheckFloat64HoleMode CheckFloat64HoleModeOf(const Operator*) WARN_UNUSED_RESULT;
+
+enum class CheckTaggedHoleMode : uint8_t {
+  kNeverReturnHole,        // Never return the hole (deoptimize instead).
+  kConvertHoleToUndefined  // Convert the hole to undefined.
+};
+
+size_t hash_value(CheckTaggedHoleMode);
+
+std::ostream& operator<<(std::ostream&, CheckTaggedHoleMode);
+
+CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator*) WARN_UNUSED_RESULT;
+
 Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT;
 
+BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op);
+
+CompareOperationHints::Hint CompareOperationHintOf(const Operator* op);
+
 // Interface for building simplified operators, which represent the
 // medium-level operations of V8, including adding numbers, allocating objects,
 // indexing into objects and arrays, etc.
@@ -148,22 +175,55 @@
   const Operator* NumberShiftRight();
   const Operator* NumberShiftRightLogical();
   const Operator* NumberImul();
+  const Operator* NumberAbs();
   const Operator* NumberClz32();
   const Operator* NumberCeil();
   const Operator* NumberFloor();
+  const Operator* NumberFround();
+  const Operator* NumberAtan();
+  const Operator* NumberAtan2();
+  const Operator* NumberAtanh();
+  const Operator* NumberCbrt();
+  const Operator* NumberCos();
+  const Operator* NumberExp();
+  const Operator* NumberExpm1();
+  const Operator* NumberLog();
+  const Operator* NumberLog1p();
+  const Operator* NumberLog10();
+  const Operator* NumberLog2();
   const Operator* NumberRound();
+  const Operator* NumberSin();
+  const Operator* NumberSqrt();
+  const Operator* NumberTan();
   const Operator* NumberTrunc();
   const Operator* NumberToInt32();
   const Operator* NumberToUint32();
-  const Operator* NumberIsHoleNaN();
+
+  const Operator* NumberSilenceNaN();
+
+  const Operator* SpeculativeNumberAdd(BinaryOperationHints::Hint hint);
+  const Operator* SpeculativeNumberSubtract(BinaryOperationHints::Hint hint);
+  const Operator* SpeculativeNumberMultiply(BinaryOperationHints::Hint hint);
+  const Operator* SpeculativeNumberDivide(BinaryOperationHints::Hint hint);
+  const Operator* SpeculativeNumberModulus(BinaryOperationHints::Hint hint);
+
+  const Operator* SpeculativeNumberLessThan(CompareOperationHints::Hint hint);
+  const Operator* SpeculativeNumberLessThanOrEqual(
+      CompareOperationHints::Hint hint);
+  const Operator* SpeculativeNumberEqual(CompareOperationHints::Hint hint);
 
   const Operator* ReferenceEqual(Type* type);
 
   const Operator* StringEqual();
   const Operator* StringLessThan();
   const Operator* StringLessThanOrEqual();
+  const Operator* StringFromCharCode();
   const Operator* StringToNumber();
 
+  const Operator* PlainPrimitiveToNumber();
+  const Operator* PlainPrimitiveToWord32();
+  const Operator* PlainPrimitiveToFloat64();
+
   const Operator* ChangeTaggedSignedToInt32();
   const Operator* ChangeTaggedToInt32();
   const Operator* ChangeTaggedToUint32();
@@ -175,6 +235,21 @@
   const Operator* ChangeTaggedToBit();
   const Operator* ChangeBitToTagged();
   const Operator* TruncateTaggedToWord32();
+  const Operator* TruncateTaggedToFloat64();
+
+  const Operator* CheckBounds();
+  const Operator* CheckTaggedPointer();
+  const Operator* CheckTaggedSigned();
+
+  const Operator* CheckedInt32Add();
+  const Operator* CheckedInt32Sub();
+  const Operator* CheckedUint32ToInt32();
+  const Operator* CheckedFloat64ToInt32();
+  const Operator* CheckedTaggedToInt32();
+  const Operator* CheckedTaggedToFloat64();
+
+  const Operator* CheckFloat64Hole(CheckFloat64HoleMode);
+  const Operator* CheckTaggedHole(CheckTaggedHoleMode);
 
   const Operator* ObjectIsCallable();
   const Operator* ObjectIsNumber();
diff --git a/src/compiler/store-store-elimination.cc b/src/compiler/store-store-elimination.cc
new file mode 100644
index 0000000..a469b20
--- /dev/null
+++ b/src/compiler/store-store-elimination.cc
@@ -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.
+
+#include "src/compiler/store-store-elimination.h"
+
+#include "src/compiler/all-nodes.h"
+#include "src/compiler/js-graph.h"
+#include "src/compiler/node-properties.h"
+#include "src/compiler/simplified-operator.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+#define TRACE(fmt, ...)                                              \
+  do {                                                               \
+    if (FLAG_trace_store_elimination) {                              \
+      PrintF("StoreStoreElimination::ReduceEligibleNode: " fmt "\n", \
+             ##__VA_ARGS__);                                         \
+    }                                                                \
+  } while (false)
+
+// A simple store-store elimination. When the effect chain contains the
+// following sequence,
+//
+// - StoreField[[+off_1]](x1, y1)
+// - StoreField[[+off_2]](x2, y2)
+// - StoreField[[+off_3]](x3, y3)
+//   ...
+// - StoreField[[+off_n]](xn, yn)
+//
+// where the xes are the objects and the ys are the values to be stored, then
+// we are going to say that a store is superfluous if the same offset of the
+// same object will be stored to in the future. If off_i == off_j and xi == xj
+// and i < j, then we optimize the i'th StoreField away.
+//
+// This optimization should be initiated on the last StoreField in such a
+// sequence.
+//
+// The algorithm works by walking the effect chain from the last StoreField
+// upwards. While walking, we maintain a map {futureStore} from offsets to
+// nodes; initially it is empty. As we walk the effect chain upwards, if
+// futureStore[off] = n, then any store to node {n} with offset {off} is
+// guaranteed to be useless because we do a full-width[1] store to that offset
+// of that object in the near future anyway. For example, for this effect
+// chain
+//
+// 71: StoreField(60, 0)
+// 72: StoreField(65, 8)
+// 73: StoreField(63, 8)
+// 74: StoreField(65, 16)
+// 75: StoreField(62, 8)
+//
+// just before we get to 72, we will have futureStore = {8: 63, 16: 65}.
+//
+// Here is the complete process.
+//
+// - We are at the end of a sequence of consecutive StoreFields.
+// - We start out with futureStore = empty.
+// - We then walk the effect chain upwards to find the next StoreField [2].
+//
+//   1. If the offset is not a key of {futureStore} yet, we put it in.
+//   2. If the offset is a key of {futureStore}, but futureStore[offset] is a
+//      different node, we overwrite futureStore[offset] with the current node.
+//   3. If the offset is a key of {futureStore} and futureStore[offset] equals
+//      this node, we eliminate this StoreField.
+//
+//   As long as the current effect input points to a node with a single effect
+//   output, and as long as its opcode is StoreField, we keep traversing
+//   upwards.
+//
+// [1] This optimization is unsound if we optimize away a store to an offset
+//   because we store to the same offset in the future, even though the future
+//   store is narrower than the store we optimize away. Therefore, in case (1)
+//   and (2) we only add/overwrite to the dictionary when the field access has
+//   maximal size. For simplicity of implementation, we do not try to detect
+//   case (3).
+//
+// [2] We make sure that we only traverse the linear part, that is, the part
+//   where every node has exactly one incoming and one outgoing effect edge.
+//   Also, we only keep walking upwards as long as we keep finding consecutive
+//   StoreFields on the same node.
+
+StoreStoreElimination::StoreStoreElimination(JSGraph* js_graph, Zone* temp_zone)
+    : jsgraph_(js_graph), temp_zone_(temp_zone) {}
+
+StoreStoreElimination::~StoreStoreElimination() {}
+
+void StoreStoreElimination::Run() {
+  // The store-store elimination performs work on chains of certain types of
+  // nodes. The elimination must be invoked on the lowest node in such a
+  // chain; we have a helper function IsEligibleNode that returns true
+  // precisely on the lowest node in such a chain.
+  //
+  // Because the elimination removes nodes from the graph, even remove nodes
+  // that the elimination was not invoked on, we cannot use a normal
+  // AdvancedReducer but we manually find which nodes to invoke the
+  // elimination on. Then in a next step, we invoke the elimination for each
+  // node that was eligible.
+
+  NodeVector eligible(temp_zone());  // loops over all nodes
+  AllNodes all(temp_zone(), jsgraph()->graph());
+
+  for (Node* node : all.live) {
+    if (IsEligibleNode(node)) {
+      eligible.push_back(node);
+    }
+  }
+
+  for (Node* node : eligible) {
+    ReduceEligibleNode(node);
+  }
+}
+
+namespace {
+
+// 16 bits was chosen fairly arbitrarily; it seems enough now. 8 bits is too
+// few.
+typedef uint16_t Offset;
+
+// To safely cast an offset from a FieldAccess, which has a wider range
+// (namely int).
+Offset ToOffset(int offset) {
+  CHECK(0 <= offset && offset < (1 << 8 * sizeof(Offset)));
+  return (Offset)offset;
+}
+
+Offset ToOffset(const FieldAccess& access) { return ToOffset(access.offset); }
+
+// If node has a single effect use, return that node. If node has no or
+// multiple effect uses, return nullptr.
+Node* SingleEffectUse(Node* node) {
+  Node* last_use = nullptr;
+  for (Edge edge : node->use_edges()) {
+    if (!NodeProperties::IsEffectEdge(edge)) {
+      continue;
+    }
+    if (last_use != nullptr) {
+      // more than one
+      return nullptr;
+    }
+    last_use = edge.from();
+    DCHECK_NOT_NULL(last_use);
+  }
+  return last_use;
+}
+
+// Return true if node is the last consecutive StoreField node in a linear
+// part of the effect chain.
+bool IsEndOfStoreFieldChain(Node* node) {
+  Node* next_on_chain = SingleEffectUse(node);
+  return (next_on_chain == nullptr ||
+          next_on_chain->op()->opcode() != IrOpcode::kStoreField);
+}
+
+// The argument must be a StoreField node. If there is a node before it in the
+// effect chain, and if this part of the effect chain is linear (no other
+// effect uses of that previous node), then return that previous node.
+// Otherwise, return nullptr.
+//
+// The returned node need not be a StoreField.
+Node* PreviousEffectBeforeStoreField(Node* node) {
+  DCHECK_EQ(node->op()->opcode(), IrOpcode::kStoreField);
+  DCHECK_EQ(node->op()->EffectInputCount(), 1);
+
+  Node* previous = NodeProperties::GetEffectInput(node);
+  if (previous != nullptr && node == SingleEffectUse(previous)) {
+    return previous;
+  } else {
+    return nullptr;
+  }
+}
+
+size_t rep_size_of(MachineRepresentation rep) {
+  return ((size_t)1) << ElementSizeLog2Of(rep);
+}
+size_t rep_size_of(FieldAccess access) {
+  return rep_size_of(access.machine_type.representation());
+}
+
+}  // namespace
+
+bool StoreStoreElimination::IsEligibleNode(Node* node) {
+  return (node->op()->opcode() == IrOpcode::kStoreField) &&
+         IsEndOfStoreFieldChain(node);
+}
+
+void StoreStoreElimination::ReduceEligibleNode(Node* node) {
+  DCHECK(IsEligibleNode(node));
+
+  // if (FLAG_trace_store_elimination) {
+  //   PrintF("** StoreStoreElimination::ReduceEligibleNode: activated:
+  //   #%d\n",
+  //          node->id());
+  // }
+
+  TRACE("activated: #%d", node->id());
+
+  // Initialize empty futureStore.
+  ZoneMap<Offset, Node*> futureStore(temp_zone());
+
+  Node* current_node = node;
+
+  do {
+    FieldAccess access = OpParameter<FieldAccess>(current_node->op());
+    Offset offset = ToOffset(access);
+    Node* object_input = current_node->InputAt(0);
+
+    Node* previous = PreviousEffectBeforeStoreField(current_node);
+
+    CHECK(rep_size_of(access) <= rep_size_of(MachineRepresentation::kTagged));
+    if (rep_size_of(access) == rep_size_of(MachineRepresentation::kTagged)) {
+      // Try to insert. If it was present, this will preserve the original
+      // value.
+      auto insert_result =
+          futureStore.insert(std::make_pair(offset, object_input));
+      if (insert_result.second) {
+        // Key was not present. This means that there is no matching
+        // StoreField to this offset in the future, so we cannot optimize
+        // current_node away. However, we will record the current StoreField
+        // in futureStore, and continue ascending up the chain.
+        TRACE("#%d[[+%d]] -- wide, key not present", current_node->id(),
+              offset);
+      } else if (insert_result.first->second != object_input) {
+        // Key was present, and the value did not equal object_input. This
+        // means
+        // that there is a StoreField to this offset in the future, but the
+        // object instance comes from a different Node. We pessimistically
+        // assume that we cannot optimize current_node away. However, we will
+        // record the current StoreField in futureStore, and continue
+        // ascending up the chain.
+        insert_result.first->second = object_input;
+        TRACE("#%d[[+%d]] -- wide, diff object", current_node->id(), offset);
+      } else {
+        // Key was present, and the value equalled object_input. This means
+        // that soon after in the effect chain, we will do a StoreField to the
+        // same object with the same offset, therefore current_node can be
+        // optimized away. We don't need to update futureStore.
+
+        Node* previous_effect = NodeProperties::GetEffectInput(current_node);
+
+        NodeProperties::ReplaceUses(current_node, nullptr, previous_effect,
+                                    nullptr, nullptr);
+        current_node->Kill();
+        TRACE("#%d[[+%d]] -- wide, eliminated", current_node->id(), offset);
+      }
+    } else {
+      TRACE("#%d[[+%d]] -- narrow, not eliminated", current_node->id(), offset);
+    }
+
+    // Regardless of whether we eliminated node {current}, we want to
+    // continue walking up the effect chain.
+
+    current_node = previous;
+  } while (current_node != nullptr &&
+           current_node->op()->opcode() == IrOpcode::kStoreField);
+
+  TRACE("finished");
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/src/compiler/store-store-elimination.h b/src/compiler/store-store-elimination.h
new file mode 100644
index 0000000..1c9ae3d
--- /dev/null
+++ b/src/compiler/store-store-elimination.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.
+
+#ifndef V8_COMPILER_STORE_STORE_ELIMINATION_H_
+#define V8_COMPILER_STORE_STORE_ELIMINATION_H_
+
+#include "src/compiler/common-operator.h"
+#include "src/compiler/graph-reducer.h"
+#include "src/compiler/js-graph.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+// Forward declarations.
+class CommonOperatorBuilder;
+class JSGraph;
+
+class StoreStoreElimination final {
+ public:
+  StoreStoreElimination(JSGraph* js_graph, Zone* temp_zone);
+  ~StoreStoreElimination();
+  void Run();
+
+ private:
+  static bool IsEligibleNode(Node* node);
+  void ReduceEligibleNode(Node* node);
+  JSGraph* jsgraph() const { return jsgraph_; }
+  Zone* temp_zone() const { return temp_zone_; }
+
+  JSGraph* const jsgraph_;
+  Zone* const temp_zone_;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_COMPILER_STORE_STORE_ELIMINATION_H_
diff --git a/src/compiler/type-hint-analyzer.cc b/src/compiler/type-hint-analyzer.cc
index da4f268..791aa9d 100644
--- a/src/compiler/type-hint-analyzer.cc
+++ b/src/compiler/type-hint-analyzer.cc
@@ -16,17 +16,43 @@
 namespace {
 
 // TODO(bmeurer): This detour via types is ugly.
-BinaryOperationHints::Hint ToHint(Type* type) {
+BinaryOperationHints::Hint ToBinaryOperationHint(Type* type) {
   if (type->Is(Type::None())) return BinaryOperationHints::kNone;
   if (type->Is(Type::SignedSmall())) return BinaryOperationHints::kSignedSmall;
   if (type->Is(Type::Signed32())) return BinaryOperationHints::kSigned32;
-  if (type->Is(Type::Number())) return BinaryOperationHints::kNumber;
+  if (type->Is(Type::Number())) return BinaryOperationHints::kNumberOrUndefined;
   if (type->Is(Type::String())) return BinaryOperationHints::kString;
   return BinaryOperationHints::kAny;
 }
 
-}  // namespace
+CompareOperationHints::Hint ToCompareOperationHint(
+    CompareICState::State state) {
+  switch (state) {
+    case CompareICState::UNINITIALIZED:
+      return CompareOperationHints::kNone;
+    case CompareICState::BOOLEAN:
+      return CompareOperationHints::kBoolean;
+    case CompareICState::SMI:
+      return CompareOperationHints::kSignedSmall;
+    case CompareICState::NUMBER:
+      return CompareOperationHints::kNumber;
+    case CompareICState::STRING:
+      return CompareOperationHints::kString;
+    case CompareICState::INTERNALIZED_STRING:
+      return CompareOperationHints::kInternalizedString;
+    case CompareICState::UNIQUE_NAME:
+      return CompareOperationHints::kUniqueName;
+    case CompareICState::RECEIVER:
+    case CompareICState::KNOWN_RECEIVER:
+      return CompareOperationHints::kReceiver;
+    case CompareICState::GENERIC:
+      return CompareOperationHints::kAny;
+  }
+  UNREACHABLE();
+  return CompareOperationHints::kAny;
+}
 
+}  // namespace
 
 bool TypeHintAnalysis::GetBinaryOperationHints(
     TypeFeedbackId id, BinaryOperationHints* hints) const {
@@ -35,12 +61,29 @@
   Handle<Code> code = i->second;
   DCHECK_EQ(Code::BINARY_OP_IC, code->kind());
   BinaryOpICState state(code->GetIsolate(), code->extra_ic_state());
-  *hints = BinaryOperationHints(ToHint(state.GetLeftType()),
-                                ToHint(state.GetRightType()),
-                                ToHint(state.GetResultType()));
+  *hints = BinaryOperationHints(ToBinaryOperationHint(state.GetLeftType()),
+                                ToBinaryOperationHint(state.GetRightType()),
+                                ToBinaryOperationHint(state.GetResultType()));
   return true;
 }
 
+bool TypeHintAnalysis::GetCompareOperationHints(
+    TypeFeedbackId id, CompareOperationHints* hints) const {
+  auto i = infos_.find(id);
+  if (i == infos_.end()) return false;
+  Handle<Code> code = i->second;
+  DCHECK_EQ(Code::COMPARE_IC, code->kind());
+
+  Handle<Map> map;
+  Map* raw_map = code->FindFirstMap();
+  if (raw_map != nullptr) Map::TryUpdate(handle(raw_map)).ToHandle(&map);
+
+  CompareICStub stub(code->stub_key(), code->GetIsolate());
+  *hints = CompareOperationHints(ToCompareOperationHint(stub.left()),
+                                 ToCompareOperationHint(stub.right()),
+                                 ToCompareOperationHint(stub.state()));
+  return true;
+}
 
 bool TypeHintAnalysis::GetToBooleanHints(TypeFeedbackId id,
                                          ToBooleanHints* hints) const {
@@ -67,7 +110,6 @@
   return true;
 }
 
-
 TypeHintAnalysis* TypeHintAnalyzer::Analyze(Handle<Code> code) {
   DisallowHeapAllocation no_gc;
   TypeHintAnalysis::Infos infos(zone());
@@ -79,6 +121,7 @@
     Code* target = Code::GetCodeFromTargetAddress(target_address);
     switch (target->kind()) {
       case Code::BINARY_OP_IC:
+      case Code::COMPARE_IC:
       case Code::TO_BOOLEAN_IC: {
         // Add this feedback to the {infos}.
         TypeFeedbackId id(static_cast<unsigned>(rinfo->data()));
@@ -90,7 +133,7 @@
         break;
     }
   }
-  return new (zone()) TypeHintAnalysis(infos);
+  return new (zone()) TypeHintAnalysis(infos, zone());
 }
 
 }  // namespace compiler
diff --git a/src/compiler/type-hint-analyzer.h b/src/compiler/type-hint-analyzer.h
index 1a79905..bfb6232 100644
--- a/src/compiler/type-hint-analyzer.h
+++ b/src/compiler/type-hint-analyzer.h
@@ -18,14 +18,20 @@
  public:
   typedef ZoneMap<TypeFeedbackId, Handle<Code>> Infos;
 
-  explicit TypeHintAnalysis(Infos const& infos) : infos_(infos) {}
+  explicit TypeHintAnalysis(Infos const& infos, Zone* zone)
+      : infos_(infos), zone_(zone) {}
 
   bool GetBinaryOperationHints(TypeFeedbackId id,
                                BinaryOperationHints* hints) const;
+  bool GetCompareOperationHints(TypeFeedbackId id,
+                                CompareOperationHints* hints) const;
   bool GetToBooleanHints(TypeFeedbackId id, ToBooleanHints* hints) const;
 
  private:
+  Zone* zone() const { return zone_; }
+
   Infos const infos_;
+  Zone* zone_;
 };
 
 
diff --git a/src/compiler/type-hints.cc b/src/compiler/type-hints.cc
index 06abad6..e608832 100644
--- a/src/compiler/type-hints.cc
+++ b/src/compiler/type-hints.cc
@@ -16,8 +16,8 @@
       return os << "SignedSmall";
     case BinaryOperationHints::kSigned32:
       return os << "Signed32";
-    case BinaryOperationHints::kNumber:
-      return os << "Number";
+    case BinaryOperationHints::kNumberOrUndefined:
+      return os << "NumberOrUndefined";
     case BinaryOperationHints::kString:
       return os << "String";
     case BinaryOperationHints::kAny:
@@ -27,11 +27,39 @@
   return os;
 }
 
-
 std::ostream& operator<<(std::ostream& os, BinaryOperationHints hints) {
   return os << hints.left() << "*" << hints.right() << "->" << hints.result();
 }
 
+std::ostream& operator<<(std::ostream& os, CompareOperationHints::Hint hint) {
+  switch (hint) {
+    case CompareOperationHints::kNone:
+      return os << "None";
+    case CompareOperationHints::kBoolean:
+      return os << "Boolean";
+    case CompareOperationHints::kSignedSmall:
+      return os << "SignedSmall";
+    case CompareOperationHints::kNumber:
+      return os << "Number";
+    case CompareOperationHints::kString:
+      return os << "String";
+    case CompareOperationHints::kInternalizedString:
+      return os << "InternalizedString";
+    case CompareOperationHints::kUniqueName:
+      return os << "UniqueName";
+    case CompareOperationHints::kReceiver:
+      return os << "Receiver";
+    case CompareOperationHints::kAny:
+      return os << "Any";
+  }
+  UNREACHABLE();
+  return os;
+}
+
+std::ostream& operator<<(std::ostream& os, CompareOperationHints hints) {
+  return os << hints.left() << "*" << hints.right() << " (" << hints.combined()
+            << ")";
+}
 
 std::ostream& operator<<(std::ostream& os, ToBooleanHint hint) {
   switch (hint) {
@@ -62,7 +90,6 @@
   return os;
 }
 
-
 std::ostream& operator<<(std::ostream& os, ToBooleanHints hints) {
   if (hints == ToBooleanHint::kAny) return os << "Any";
   if (hints == ToBooleanHint::kNone) return os << "None";
@@ -78,6 +105,34 @@
   return os;
 }
 
+// static
+bool BinaryOperationHints::Is(Hint h1, Hint h2) {
+  if (h1 == h2) return true;
+  switch (h1) {
+    case kNone:
+      return true;
+    case kSignedSmall:
+      return h2 == kSigned32 || h2 == kNumberOrUndefined || h2 == kAny;
+    case kSigned32:
+      return h2 == kNumberOrUndefined || h2 == kAny;
+    case kNumberOrUndefined:
+      return h2 == kAny;
+    case kString:
+      return h2 == kAny;
+    case kAny:
+      return false;
+  }
+  UNREACHABLE();
+  return false;
+}
+
+// static
+BinaryOperationHints::Hint BinaryOperationHints::Combine(Hint h1, Hint h2) {
+  if (Is(h1, h2)) return h2;
+  if (Is(h2, h1)) return h1;
+  return kAny;
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/type-hints.h b/src/compiler/type-hints.h
index f1cc640..7c9badd 100644
--- a/src/compiler/type-hints.h
+++ b/src/compiler/type-hints.h
@@ -15,7 +15,14 @@
 // Type hints for an binary operation.
 class BinaryOperationHints final {
  public:
-  enum Hint { kNone, kSignedSmall, kSigned32, kNumber, kString, kAny };
+  enum Hint {
+    kNone,
+    kSignedSmall,
+    kSigned32,
+    kNumberOrUndefined,
+    kString,
+    kAny
+  };
 
   BinaryOperationHints() : BinaryOperationHints(kNone, kNone, kNone) {}
   BinaryOperationHints(Hint left, Hint right, Hint result)
@@ -29,6 +36,11 @@
   Hint left() const { return LeftField::decode(bit_field_); }
   Hint right() const { return RightField::decode(bit_field_); }
   Hint result() const { return ResultField::decode(bit_field_); }
+  Hint combined() const { return Combine(Combine(left(), right()), result()); }
+
+  // Hint 'subtyping' and generalization.
+  static bool Is(Hint h1, Hint h2);
+  static Hint Combine(Hint h1, Hint h2);
 
   bool operator==(BinaryOperationHints const& that) const {
     return this->bit_field_ == that.bit_field_;
@@ -52,6 +64,55 @@
 std::ostream& operator<<(std::ostream&, BinaryOperationHints::Hint);
 std::ostream& operator<<(std::ostream&, BinaryOperationHints);
 
+// Type hints for an binary operation.
+class CompareOperationHints final {
+ public:
+  enum Hint {
+    kNone,
+    kBoolean,
+    kSignedSmall,
+    kNumber,
+    kString,
+    kInternalizedString,
+    kUniqueName,
+    kReceiver,
+    kAny
+  };
+
+  CompareOperationHints() : CompareOperationHints(kNone, kNone, kNone) {}
+  CompareOperationHints(Hint left, Hint right, Hint combined)
+      : bit_field_(LeftField::encode(left) | RightField::encode(right) |
+                   CombinedField::encode(combined)) {}
+
+  static CompareOperationHints Any() {
+    return CompareOperationHints(kAny, kAny, kAny);
+  }
+
+  Hint left() const { return LeftField::decode(bit_field_); }
+  Hint right() const { return RightField::decode(bit_field_); }
+  Hint combined() const { return CombinedField::decode(bit_field_); }
+
+  bool operator==(CompareOperationHints const& that) const {
+    return this->bit_field_ == that.bit_field_;
+  }
+  bool operator!=(CompareOperationHints const& that) const {
+    return !(*this == that);
+  }
+
+  friend size_t hash_value(CompareOperationHints const& hints) {
+    return hints.bit_field_;
+  }
+
+ private:
+  typedef BitField<Hint, 0, 4> LeftField;
+  typedef BitField<Hint, 4, 4> RightField;
+  typedef BitField<Hint, 8, 4> CombinedField;
+
+  uint32_t bit_field_;
+};
+
+std::ostream& operator<<(std::ostream&, CompareOperationHints::Hint);
+std::ostream& operator<<(std::ostream&, CompareOperationHints);
 
 // Type hints for the ToBoolean type conversion.
 enum class ToBooleanHint : uint16_t {
diff --git a/src/compiler/typer.cc b/src/compiler/typer.cc
index d98d2fe..2bc0bb3 100644
--- a/src/compiler/typer.cc
+++ b/src/compiler/typer.cc
@@ -10,8 +10,9 @@
 #include "src/compiler/common-operator.h"
 #include "src/compiler/graph-reducer.h"
 #include "src/compiler/js-operator.h"
-#include "src/compiler/node.h"
 #include "src/compiler/node-properties.h"
+#include "src/compiler/node.h"
+#include "src/compiler/operation-typer.h"
 #include "src/compiler/simplified-operator.h"
 #include "src/objects-inl.h"
 #include "src/type-cache.h"
@@ -37,14 +38,15 @@
       dependencies_(dependencies),
       function_type_(function_type),
       decorator_(nullptr),
-      cache_(TypeCache::Get()) {
+      cache_(TypeCache::Get()),
+      operation_typer_(isolate, zone()) {
   Zone* zone = this->zone();
   Factory* const factory = isolate->factory();
 
   Type* infinity = Type::Constant(factory->infinity_value(), zone);
   Type* minus_infinity = Type::Constant(factory->minus_infinity_value(), zone);
-  // TODO(neis): Unfortunately, the infinities created in other places might
-  // be different ones (eg the result of NewNumber in TypeNumberConstant).
+  // Unfortunately, the infinities created in other places might be different
+  // ones (eg the result of NewNumber in TypeNumberConstant).
   Type* truncating_to_zero =
       Type::Union(Type::Union(infinity, minus_infinity, zone),
                   Type::MinusZeroOrNaN(), zone);
@@ -232,7 +234,6 @@
   static ComparisonOutcome Invert(ComparisonOutcome, Typer*);
   static Type* Invert(Type*, Typer*);
   static Type* FalsifyUndefined(ComparisonOutcome, Typer*);
-  static Type* Rangify(Type*, Typer*);
 
   static Type* ToPrimitive(Type*, Typer*);
   static Type* ToBoolean(Type*, Typer*);
@@ -242,6 +243,7 @@
   static Type* ToNumber(Type*, Typer*);
   static Type* ToObject(Type*, Typer*);
   static Type* ToString(Type*, Typer*);
+  static Type* NumberAbs(Type*, Typer*);
   static Type* NumberCeil(Type*, Typer*);
   static Type* NumberFloor(Type*, Typer*);
   static Type* NumberRound(Type*, Typer*);
@@ -256,11 +258,6 @@
   static Type* ObjectIsString(Type*, Typer*);
   static Type* ObjectIsUndetectable(Type*, Typer*);
 
-  static Type* JSAddRanger(RangeType*, RangeType*, Typer*);
-  static Type* JSSubtractRanger(RangeType*, RangeType*, Typer*);
-  static Type* JSDivideRanger(RangeType*, RangeType*, Typer*);
-  static Type* JSModulusRanger(RangeType*, RangeType*, Typer*);
-
   static ComparisonOutcome JSCompareTyper(Type*, Type*, Typer*);
 
 #define DECLARE_METHOD(x) static Type* x##Typer(Type*, Type*, Typer*);
@@ -272,6 +269,7 @@
   static Type* JSCallFunctionTyper(Type*, Typer*);
 
   static Type* ReferenceEqualTyper(Type*, Type*, Typer*);
+  static Type* StringFromCharCodeTyper(Type*, Typer*);
 
   Reduction UpdateType(Node* node, Type* current) {
     if (NodeProperties::IsTyped(node)) {
@@ -380,27 +378,8 @@
   return t->singleton_true_;
 }
 
-
-Type* Typer::Visitor::Rangify(Type* type, Typer* t) {
-  if (type->IsRange()) return type;        // Shortcut.
-  if (!type->Is(t->cache_.kInteger)) {
-    return type;  // Give up on non-integer types.
-  }
-  double min = type->Min();
-  double max = type->Max();
-  // Handle the degenerate case of empty bitset types (such as
-  // OtherUnsigned31 and OtherSigned32 on 64-bit architectures).
-  if (std::isnan(min)) {
-    DCHECK(std::isnan(max));
-    return type;
-  }
-  return Type::Range(min, max, t->zone());
-}
-
-
 // Type conversion.
 
-
 Type* Typer::Visitor::ToPrimitive(Type* type, Typer* t) {
   if (type->Is(Type::Primitive()) && !type->Maybe(Type::Receiver())) {
     return type;
@@ -501,6 +480,34 @@
 }
 
 // static
+Type* Typer::Visitor::NumberAbs(Type* type, Typer* t) {
+  DCHECK(type->Is(Type::Number()));
+  Factory* const f = t->isolate()->factory();
+  bool const maybe_nan = type->Maybe(Type::NaN());
+  bool const maybe_minuszero = type->Maybe(Type::MinusZero());
+  type = Type::Intersect(type, Type::PlainNumber(), t->zone());
+  double const max = type->Max();
+  double const min = type->Min();
+  if (min < 0) {
+    if (type->Is(t->cache_.kInteger)) {
+      type =
+          Type::Range(0.0, std::max(std::fabs(min), std::fabs(max)), t->zone());
+    } else if (min == max) {
+      type = Type::Constant(f->NewNumber(std::fabs(min)), t->zone());
+    } else {
+      type = Type::PlainNumber();
+    }
+  }
+  if (maybe_minuszero) {
+    type = Type::Union(type, t->cache_.kSingletonZero, t->zone());
+  }
+  if (maybe_nan) {
+    type = Type::Union(type, Type::NaN(), t->zone());
+  }
+  return type;
+}
+
+// static
 Type* Typer::Visitor::NumberCeil(Type* type, Typer* t) {
   DCHECK(type->Is(Type::Number()));
   if (type->Is(t->cache_.kIntegerOrMinusZeroOrNaN)) return type;
@@ -533,7 +540,6 @@
 }
 
 Type* Typer::Visitor::NumberToInt32(Type* type, Typer* t) {
-  // TODO(neis): DCHECK(type->Is(Type::Number()));
   if (type->Is(Type::Signed32())) return type;
   if (type->Is(t->cache_.kZeroish)) return t->cache_.kSingletonZero;
   if (type->Is(t->signed32ish_)) {
@@ -546,7 +552,6 @@
 
 
 Type* Typer::Visitor::NumberToUint32(Type* type, Typer* t) {
-  // TODO(neis): DCHECK(type->Is(Type::Number()));
   if (type->Is(Type::Unsigned32())) return type;
   if (type->Is(t->cache_.kZeroish)) return t->cache_.kSingletonZero;
   if (type->Is(t->unsigned32ish_)) {
@@ -557,7 +562,6 @@
   return Type::Unsigned32();
 }
 
-
 // Type checks.
 
 Type* Typer::Visitor::ObjectIsCallable(Type* type, Typer* t) {
@@ -705,7 +709,7 @@
   return Type::Intersect(input_type, guard_type, zone());
 }
 
-Type* Typer::Visitor::TypeCheckPoint(Node* node) {
+Type* Typer::Visitor::TypeCheckpoint(Node* node) {
   UNREACHABLE();
   return nullptr;
 }
@@ -765,7 +769,6 @@
   if (lhs->IsConstant() && rhs->Is(lhs)) {
     // Types are equal and are inhabited only by a single semantic value,
     // which is not nan due to the earlier check.
-    // TODO(neis): Extend this to Range(x,x), MinusZero, ...?
     return t->singleton_true_;
   }
   return Type::Boolean();
@@ -876,7 +879,6 @@
   return FalsifyUndefined(Invert(JSCompareTyper(lhs, rhs, t), t), t);
 }
 
-
 // JS bitwise operators.
 
 
@@ -909,7 +911,6 @@
     max = std::min(max, -1.0);
   }
   return Type::Range(min, max, t->zone());
-  // TODO(neis): Be precise for singleton inputs, here and elsewhere.
 }
 
 
@@ -1010,64 +1011,6 @@
 
 // JS arithmetic operators.
 
-
-// Returns the array's least element, ignoring NaN.
-// There must be at least one non-NaN element.
-// Any -0 is converted to 0.
-static double array_min(double a[], size_t n) {
-  DCHECK(n != 0);
-  double x = +V8_INFINITY;
-  for (size_t i = 0; i < n; ++i) {
-    if (!std::isnan(a[i])) {
-      x = std::min(a[i], x);
-    }
-  }
-  DCHECK(!std::isnan(x));
-  return x == 0 ? 0 : x;  // -0 -> 0
-}
-
-
-// Returns the array's greatest element, ignoring NaN.
-// There must be at least one non-NaN element.
-// Any -0 is converted to 0.
-static double array_max(double a[], size_t n) {
-  DCHECK(n != 0);
-  double x = -V8_INFINITY;
-  for (size_t i = 0; i < n; ++i) {
-    if (!std::isnan(a[i])) {
-      x = std::max(a[i], x);
-    }
-  }
-  DCHECK(!std::isnan(x));
-  return x == 0 ? 0 : x;  // -0 -> 0
-}
-
-Type* Typer::Visitor::JSAddRanger(RangeType* lhs, RangeType* rhs, Typer* t) {
-  double results[4];
-  results[0] = lhs->Min() + rhs->Min();
-  results[1] = lhs->Min() + rhs->Max();
-  results[2] = lhs->Max() + rhs->Min();
-  results[3] = lhs->Max() + rhs->Max();
-  // Since none of the inputs can be -0, the result cannot be -0 either.
-  // However, it can be nan (the sum of two infinities of opposite sign).
-  // On the other hand, if none of the "results" above is nan, then the actual
-  // result cannot be nan either.
-  int nans = 0;
-  for (int i = 0; i < 4; ++i) {
-    if (std::isnan(results[i])) ++nans;
-  }
-  if (nans == 4) return Type::NaN();  // [-inf..-inf] + [inf..inf] or vice versa
-  Type* range =
-      Type::Range(array_min(results, 4), array_max(results, 4), t->zone());
-  return nans == 0 ? range : Type::Union(range, Type::NaN(), t->zone());
-  // Examples:
-  //   [-inf, -inf] + [+inf, +inf] = NaN
-  //   [-inf, -inf] + [n, +inf] = [-inf, -inf] \/ NaN
-  //   [-inf, +inf] + [n, +inf] = [-inf, +inf] \/ NaN
-  //   [-inf, m] + [n, +inf] = [-inf, +inf] \/ NaN
-}
-
-
 Type* Typer::Visitor::JSAddTyper(Type* lhs, Type* rhs, Typer* t) {
   lhs = ToPrimitive(lhs, t);
   rhs = ToPrimitive(rhs, t);
@@ -1078,97 +1021,27 @@
       return Type::NumberOrString();
     }
   }
-  lhs = Rangify(ToNumber(lhs, t), t);
-  rhs = Rangify(ToNumber(rhs, t), t);
-  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
-  if (lhs->IsRange() && rhs->IsRange()) {
-    return JSAddRanger(lhs->AsRange(), rhs->AsRange(), t);
-  }
-  // TODO(neis): Deal with numeric bitsets here and elsewhere.
-  return Type::Number();
+  // The addition must be numeric.
+  return t->operation_typer()->NumericAdd(ToNumber(lhs, t), ToNumber(rhs, t));
 }
 
-Type* Typer::Visitor::JSSubtractRanger(RangeType* lhs, RangeType* rhs,
-                                       Typer* t) {
-  double results[4];
-  results[0] = lhs->Min() - rhs->Min();
-  results[1] = lhs->Min() - rhs->Max();
-  results[2] = lhs->Max() - rhs->Min();
-  results[3] = lhs->Max() - rhs->Max();
-  // Since none of the inputs can be -0, the result cannot be -0.
-  // However, it can be nan (the subtraction of two infinities of same sign).
-  // On the other hand, if none of the "results" above is nan, then the actual
-  // result cannot be nan either.
-  int nans = 0;
-  for (int i = 0; i < 4; ++i) {
-    if (std::isnan(results[i])) ++nans;
-  }
-  if (nans == 4) return Type::NaN();  // [inf..inf] - [inf..inf] (all same sign)
-  Type* range =
-      Type::Range(array_min(results, 4), array_max(results, 4), t->zone());
-  return nans == 0 ? range : Type::Union(range, Type::NaN(), t->zone());
-  // Examples:
-  //   [-inf, +inf] - [-inf, +inf] = [-inf, +inf] \/ NaN
-  //   [-inf, -inf] - [-inf, -inf] = NaN
-  //   [-inf, -inf] - [n, +inf] = [-inf, -inf] \/ NaN
-  //   [m, +inf] - [-inf, n] = [-inf, +inf] \/ NaN
-}
-
-
 Type* Typer::Visitor::JSSubtractTyper(Type* lhs, Type* rhs, Typer* t) {
-  lhs = Rangify(ToNumber(lhs, t), t);
-  rhs = Rangify(ToNumber(rhs, t), t);
-  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
-  if (lhs->IsRange() && rhs->IsRange()) {
-    return JSSubtractRanger(lhs->AsRange(), rhs->AsRange(), t);
-  }
-  return Type::Number();
+  return t->operation_typer()->NumericSubtract(ToNumber(lhs, t),
+                                               ToNumber(rhs, t));
 }
 
-
 Type* Typer::Visitor::JSMultiplyTyper(Type* lhs, Type* rhs, Typer* t) {
-  lhs = Rangify(ToNumber(lhs, t), t);
-  rhs = Rangify(ToNumber(rhs, t), t);
-  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
-  if (lhs->IsRange() && rhs->IsRange()) {
-    double results[4];
-    double lmin = lhs->AsRange()->Min();
-    double lmax = lhs->AsRange()->Max();
-    double rmin = rhs->AsRange()->Min();
-    double rmax = rhs->AsRange()->Max();
-    results[0] = lmin * rmin;
-    results[1] = lmin * rmax;
-    results[2] = lmax * rmin;
-    results[3] = lmax * rmax;
-    // If the result may be nan, we give up on calculating a precise type,
-    // because
-    // the discontinuity makes it too complicated.  Note that even if none of
-    // the
-    // "results" above is nan, the actual result may still be, so we have to do
-    // a
-    // different check:
-    bool maybe_nan = (lhs->Maybe(t->cache_.kSingletonZero) &&
-                      (rmin == -V8_INFINITY || rmax == +V8_INFINITY)) ||
-                     (rhs->Maybe(t->cache_.kSingletonZero) &&
-                      (lmin == -V8_INFINITY || lmax == +V8_INFINITY));
-    if (maybe_nan) return t->cache_.kIntegerOrMinusZeroOrNaN;  // Giving up.
-    bool maybe_minuszero = (lhs->Maybe(t->cache_.kSingletonZero) && rmin < 0) ||
-                           (rhs->Maybe(t->cache_.kSingletonZero) && lmin < 0);
-    Type* range =
-        Type::Range(array_min(results, 4), array_max(results, 4), t->zone());
-    return maybe_minuszero ? Type::Union(range, Type::MinusZero(), t->zone())
-                           : range;
-  }
-  return Type::Number();
+  return t->operation_typer()->NumericMultiply(ToNumber(lhs, t),
+                                               ToNumber(rhs, t));
 }
 
-
 Type* Typer::Visitor::JSDivideTyper(Type* lhs, Type* rhs, Typer* t) {
+  return t->operation_typer()->NumericDivide(ToNumber(lhs, t),
+                                             ToNumber(rhs, t));
   lhs = ToNumber(lhs, t);
   rhs = ToNumber(rhs, t);
   if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
   // Division is tricky, so all we do is try ruling out nan.
-  // TODO(neis): try ruling out -0 as well?
   bool maybe_nan =
       lhs->Maybe(Type::NaN()) || rhs->Maybe(t->cache_.kZeroish) ||
       ((lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) &&
@@ -1176,56 +1049,9 @@
   return maybe_nan ? Type::Number() : Type::OrderedNumber();
 }
 
-Type* Typer::Visitor::JSModulusRanger(RangeType* lhs, RangeType* rhs,
-                                      Typer* t) {
-  double lmin = lhs->Min();
-  double lmax = lhs->Max();
-  double rmin = rhs->Min();
-  double rmax = rhs->Max();
-
-  double labs = std::max(std::abs(lmin), std::abs(lmax));
-  double rabs = std::max(std::abs(rmin), std::abs(rmax)) - 1;
-  double abs = std::min(labs, rabs);
-  bool maybe_minus_zero = false;
-  double omin = 0;
-  double omax = 0;
-  if (lmin >= 0) {  // {lhs} positive.
-    omin = 0;
-    omax = abs;
-  } else if (lmax <= 0) {  // {lhs} negative.
-    omin = 0 - abs;
-    omax = 0;
-    maybe_minus_zero = true;
-  } else {
-    omin = 0 - abs;
-    omax = abs;
-    maybe_minus_zero = true;
-  }
-
-  Type* result = Type::Range(omin, omax, t->zone());
-  if (maybe_minus_zero)
-    result = Type::Union(result, Type::MinusZero(), t->zone());
-  return result;
-}
-
-
 Type* Typer::Visitor::JSModulusTyper(Type* lhs, Type* rhs, Typer* t) {
-  lhs = ToNumber(lhs, t);
-  rhs = ToNumber(rhs, t);
-  if (lhs->Is(Type::NaN()) || rhs->Is(Type::NaN())) return Type::NaN();
-
-  if (lhs->Maybe(Type::NaN()) || rhs->Maybe(t->cache_.kZeroish) ||
-      lhs->Min() == -V8_INFINITY || lhs->Max() == +V8_INFINITY) {
-    // Result maybe NaN.
-    return Type::Number();
-  }
-
-  lhs = Rangify(lhs, t);
-  rhs = Rangify(rhs, t);
-  if (lhs->IsRange() && rhs->IsRange()) {
-    return JSModulusRanger(lhs->AsRange(), rhs->AsRange(), t);
-  }
-  return Type::OrderedNumber();
+  return t->operation_typer()->NumericModulus(ToNumber(lhs, t),
+                                              ToNumber(rhs, t));
 }
 
 
@@ -1550,9 +1376,10 @@
         case kMathTrunc:
           return t->cache_.kIntegerOrMinusZeroOrNaN;
         // Unary math functions.
+        case kMathExp:
+          return Type::Union(Type::PlainNumber(), Type::NaN(), t->zone());
         case kMathAbs:
         case kMathLog:
-        case kMathExp:
         case kMathSqrt:
         case kMathCos:
         case kMathSin:
@@ -1616,9 +1443,6 @@
     case Runtime::kInlineDoubleLo:
     case Runtime::kInlineDoubleHi:
       return Type::Signed32();
-    case Runtime::kInlineConstructDouble:
-    case Runtime::kInlineMathAtan2:
-      return Type::Number();
     case Runtime::kInlineCreateIterResultObject:
     case Runtime::kInlineRegExpConstructResult:
       return Type::OtherObject();
@@ -1686,10 +1510,21 @@
   return nullptr;
 }
 
+Type* Typer::Visitor::TypeJSGeneratorStore(Node* node) {
+  UNREACHABLE();
+  return nullptr;
+}
+
+Type* Typer::Visitor::TypeJSGeneratorRestoreContinuation(Node* node) {
+  return typer_->cache_.kSmi;
+}
+
+Type* Typer::Visitor::TypeJSGeneratorRestoreRegister(Node* node) {
+  return Type::Any();
+}
 
 Type* Typer::Visitor::TypeJSStackCheck(Node* node) { return Type::Any(); }
 
-
 // Simplified operators.
 
 Type* Typer::Visitor::TypeBooleanNot(Node* node) { return Type::Boolean(); }
@@ -1706,10 +1541,42 @@
   return Type::Boolean();
 }
 
+Type* Typer::Visitor::TypeSpeculativeNumberEqual(Node* node) {
+  return Type::Boolean();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberLessThan(Node* node) {
+  return Type::Boolean();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberLessThanOrEqual(Node* node) {
+  return Type::Boolean();
+}
+
 Type* Typer::Visitor::TypeNumberAdd(Node* node) { return Type::Number(); }
 
 Type* Typer::Visitor::TypeNumberSubtract(Node* node) { return Type::Number(); }
 
+Type* Typer::Visitor::TypeSpeculativeNumberAdd(Node* node) {
+  return Type::Number();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberSubtract(Node* node) {
+  return Type::Number();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberMultiply(Node* node) {
+  return Type::Number();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberDivide(Node* node) {
+  return Type::Number();
+}
+
+Type* Typer::Visitor::TypeSpeculativeNumberModulus(Node* node) {
+  return Type::Number();
+}
+
 Type* Typer::Visitor::TypeNumberMultiply(Node* node) { return Type::Number(); }
 
 Type* Typer::Visitor::TypeNumberDivide(Node* node) { return Type::Number(); }
@@ -1745,8 +1612,24 @@
   return Type::Unsigned32();
 }
 
+Type* Typer::Visitor::TypePlainPrimitiveToNumber(Node* node) {
+  return TypeUnaryOp(node, ToNumber);
+}
+
+Type* Typer::Visitor::TypePlainPrimitiveToWord32(Node* node) {
+  return Type::Integral32();
+}
+
+Type* Typer::Visitor::TypePlainPrimitiveToFloat64(Node* node) {
+  return Type::Number();
+}
+
 Type* Typer::Visitor::TypeNumberImul(Node* node) { return Type::Signed32(); }
 
+Type* Typer::Visitor::TypeNumberAbs(Node* node) {
+  return TypeUnaryOp(node, NumberAbs);
+}
+
 Type* Typer::Visitor::TypeNumberClz32(Node* node) {
   return typer_->cache_.kZeroToThirtyTwo;
 }
@@ -1759,10 +1642,43 @@
   return TypeUnaryOp(node, NumberFloor);
 }
 
+Type* Typer::Visitor::TypeNumberFround(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberAtan(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberAtan2(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberAtanh(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberCos(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberExp(Node* node) {
+  return Type::Union(Type::PlainNumber(), Type::NaN(), zone());
+}
+
+// TODO(mvstanton): Is this type sufficient, or should it look like Exp()?
+Type* Typer::Visitor::TypeNumberExpm1(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberLog(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberLog1p(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberLog2(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberLog10(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberCbrt(Node* node) { return Type::Number(); }
+
 Type* Typer::Visitor::TypeNumberRound(Node* node) {
   return TypeUnaryOp(node, NumberRound);
 }
 
+Type* Typer::Visitor::TypeNumberSin(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberSqrt(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeNumberTan(Node* node) { return Type::Number(); }
+
 Type* Typer::Visitor::TypeNumberTrunc(Node* node) {
   return TypeUnaryOp(node, NumberTrunc);
 }
@@ -1777,10 +1693,6 @@
 }
 
 
-Type* Typer::Visitor::TypeNumberIsHoleNaN(Node* node) {
-  return Type::Boolean();
-}
-
 // static
 Type* Typer::Visitor::ReferenceEqualTyper(Type* lhs, Type* rhs, Typer* t) {
   if (lhs->IsConstant() && rhs->Is(lhs)) {
@@ -1802,6 +1714,23 @@
   return Type::Boolean();
 }
 
+Type* Typer::Visitor::StringFromCharCodeTyper(Type* type, Typer* t) {
+  type = NumberToUint32(ToNumber(type, t), t);
+  Factory* f = t->isolate()->factory();
+  double min = type->Min();
+  double max = type->Max();
+  if (min == max) {
+    uint32_t code = static_cast<uint32_t>(min) & String::kMaxUtf16CodeUnitU;
+    Handle<String> string = f->LookupSingleCharacterStringFromCode(code);
+    return Type::Constant(string, t->zone());
+  }
+  return Type::String();
+}
+
+Type* Typer::Visitor::TypeStringFromCharCode(Node* node) {
+  return TypeUnaryOp(node, StringFromCharCodeTyper);
+}
+
 Type* Typer::Visitor::TypeStringToNumber(Node* node) {
   return TypeUnaryOp(node, ToNumber);
 }
@@ -1817,33 +1746,45 @@
 
 Type* Typer::Visitor::TypeChangeTaggedSignedToInt32(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Signed32()));
+  // TODO(jarin): DCHECK(arg->Is(Type::Signed32()));
+  // Many tests fail this check.
   return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
 }
 
 Type* Typer::Visitor::TypeChangeTaggedToInt32(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Signed32()));
+  DCHECK(arg->Is(Type::Signed32()));
   return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
 }
 
 
 Type* Typer::Visitor::TypeChangeTaggedToUint32(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Unsigned32()));
+  DCHECK(arg->Is(Type::Unsigned32()));
   return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
 }
 
 
 Type* Typer::Visitor::TypeChangeTaggedToFloat64(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Number()));
+  DCHECK(arg->Is(Type::Number()));
+  return ChangeRepresentation(arg, Type::UntaggedFloat64(), zone());
+}
+
+Type* Typer::Visitor::TypeTruncateTaggedToFloat64(Node* node) {
+  Type* arg = Operand(node, 0);
+  // TODO(jarin) This DCHECK does not work because of speculative feedback.
+  // Re-enable once we record the speculative feedback in types.
+  // DCHECK(arg->Is(Type::NumberOrOddball()));
   return ChangeRepresentation(arg, Type::UntaggedFloat64(), zone());
 }
 
 Type* Typer::Visitor::TypeChangeInt31ToTaggedSigned(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Signed31()));
+  // TODO(jarin): DCHECK(arg->Is(Type::Signed31()));
+  // Some mjsunit/asm and mjsunit/wasm tests fail this check.
+  // For instance, asm/int32-umod fails with Signed32/UntaggedIntegral32 in
+  // simplified-lowering (after propagation).
   Type* rep =
       arg->Is(Type::SignedSmall()) ? Type::TaggedSigned() : Type::Tagged();
   return ChangeRepresentation(arg, rep, zone());
@@ -1851,41 +1792,109 @@
 
 Type* Typer::Visitor::TypeChangeInt32ToTagged(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Signed32()));
+  // TODO(jarin): DCHECK(arg->Is(Type::Signed32()));
+  // Two tests fail this check: mjsunit/asm/sqlite3/sqlite-safe-heap and
+  // mjsunit/wasm/embenchen/lua_binarytrees. The first one fails with Any/Any in
+  // simplified-lowering (after propagation).
   Type* rep =
       arg->Is(Type::SignedSmall()) ? Type::TaggedSigned() : Type::Tagged();
   return ChangeRepresentation(arg, rep, zone());
 }
 
-
 Type* Typer::Visitor::TypeChangeUint32ToTagged(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Unsigned32()));
+  // TODO(jarin): DCHECK(arg->Is(Type::Unsigned32()));
+  // This fails in benchmarks/octane/mandreel (--turbo).
   return ChangeRepresentation(arg, Type::Tagged(), zone());
 }
 
-
 Type* Typer::Visitor::TypeChangeFloat64ToTagged(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): CHECK(arg.upper->Is(Type::Number()));
+  // TODO(jarin): DCHECK(arg->Is(Type::Number()));
+  // Some (or all) mjsunit/wasm/embenchen/ tests fail this check when run with
+  // --turbo and --always-opt.
   return ChangeRepresentation(arg, Type::Tagged(), zone());
 }
 
 Type* Typer::Visitor::TypeChangeTaggedToBit(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg.upper->Is(Type::Boolean()));
+  DCHECK(arg->Is(Type::Boolean()));
   return ChangeRepresentation(arg, Type::UntaggedBit(), zone());
 }
 
 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::TypeCheckBounds(Node* node) {
+  // TODO(bmeurer): We could do better here based on the limit.
+  return Type::Unsigned31();
+}
+
+Type* Typer::Visitor::TypeCheckTaggedPointer(Node* node) {
+  Type* arg = Operand(node, 0);
+  return Type::Intersect(arg, Type::TaggedPointer(), zone());
+}
+
+Type* Typer::Visitor::TypeCheckTaggedSigned(Node* node) {
+  Type* arg = Operand(node, 0);
+  return Type::Intersect(arg, typer_->cache_.kSmi, zone());
+}
+
+Type* Typer::Visitor::TypeCheckedInt32Add(Node* node) {
+  return Type::Integral32();
+}
+
+Type* Typer::Visitor::TypeCheckedInt32Sub(Node* node) {
+  return Type::Integral32();
+}
+
+Type* Typer::Visitor::TypeCheckedUint32ToInt32(Node* node) {
+  return Type::Signed32();
+}
+
+Type* Typer::Visitor::TypeCheckedFloat64ToInt32(Node* node) {
+  return Type::Signed32();
+}
+
+Type* Typer::Visitor::TypeCheckedTaggedToInt32(Node* node) {
+  return Type::Signed32();
+}
+
+Type* Typer::Visitor::TypeCheckedTaggedToFloat64(Node* node) {
+  return Type::Number();
+}
+
+Type* Typer::Visitor::TypeCheckFloat64Hole(Node* node) {
+  Type* type = Operand(node, 0);
+  return type;
+}
+
+Type* Typer::Visitor::TypeCheckTaggedHole(Node* node) {
+  CheckTaggedHoleMode mode = CheckTaggedHoleModeOf(node->op());
+  Type* type = Operand(node, 0);
+  type = Type::Intersect(type, Type::NonInternal(), zone());
+  switch (mode) {
+    case CheckTaggedHoleMode::kConvertHoleToUndefined: {
+      // The hole is turned into undefined.
+      type = Type::Union(type, Type::Undefined(), zone());
+      break;
+    }
+    case CheckTaggedHoleMode::kNeverReturnHole: {
+      // We deoptimize in case of the hole.
+      break;
+    }
+  }
+  return type;
+}
+
 Type* Typer::Visitor::TypeTruncateTaggedToWord32(Node* node) {
   Type* arg = Operand(node, 0);
-  // TODO(neis): DCHECK(arg->Is(Type::Number()));
+  // TODO(jarin): DCHECK(arg->Is(Type::NumberOrUndefined()));
+  // Several mjsunit and cctest tests fail this check. For instance,
+  // mjsunit/compiler/regress-607493 fails with Any/Any in simplified-lowering
+  // (after propagation).
   return ChangeRepresentation(arg, Type::UntaggedIntegral32(), zone());
 }
 
@@ -2008,6 +2017,10 @@
 
 // Machine operators.
 
+Type* Typer::Visitor::TypeDebugBreak(Node* node) { return Type::None(); }
+
+Type* Typer::Visitor::TypeComment(Node* node) { return Type::None(); }
+
 Type* Typer::Visitor::TypeLoad(Node* node) { return Type::Any(); }
 
 Type* Typer::Visitor::TypeStackSlot(Node* node) { return Type::Any(); }
@@ -2210,6 +2223,9 @@
   return Type::Intersect(Type::Signed32(), Type::UntaggedIntegral32(), zone());
 }
 
+Type* Typer::Visitor::TypeNumberSilenceNaN(Node* node) {
+  return Type::Number();
+}
 
 Type* Typer::Visitor::TypeChangeFloat64ToUint32(Node* node) {
   return Type::Intersect(Type::Unsigned32(), Type::UntaggedIntegral32(),
@@ -2256,6 +2272,9 @@
   return Type::Intersect(Type::Signed32(), Type::UntaggedFloat64(), zone());
 }
 
+Type* Typer::Visitor::TypeFloat64SilenceNaN(Node* node) {
+  return Type::UntaggedFloat64();
+}
 
 Type* Typer::Visitor::TypeChangeInt32ToInt64(Node* node) {
   return Type::Internal();
@@ -2349,6 +2368,8 @@
   return Type::Number();
 }
 
+Type* Typer::Visitor::TypeFloat32Neg(Node* node) { return Type::Number(); }
+
 Type* Typer::Visitor::TypeFloat32Mul(Node* node) { return Type::Number(); }
 
 
@@ -2392,6 +2413,8 @@
   return Type::Number();
 }
 
+Type* Typer::Visitor::TypeFloat64Neg(Node* node) { return Type::Number(); }
+
 Type* Typer::Visitor::TypeFloat64Mul(Node* node) { return Type::Number(); }
 
 
@@ -2412,9 +2435,33 @@
   return Type::Number();
 }
 
+Type* Typer::Visitor::TypeFloat64Atan(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Atan2(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Atanh(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Cos(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Exp(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Expm1(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Log(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Log1p(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Log2(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Log10(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Cbrt(Node* node) { return Type::Number(); }
+
+Type* Typer::Visitor::TypeFloat64Sin(Node* node) { return Type::Number(); }
 
 Type* Typer::Visitor::TypeFloat64Sqrt(Node* node) { return Type::Number(); }
 
+Type* Typer::Visitor::TypeFloat64Tan(Node* node) { return Type::Number(); }
 
 Type* Typer::Visitor::TypeFloat64Equal(Node* node) { return Type::Boolean(); }
 
@@ -2547,6 +2594,7 @@
 #define SIMD_RETURN_SIMD(Name) \
   Type* Typer::Visitor::Type##Name(Node* node) { return Type::Simd(); }
 MACHINE_SIMD_RETURN_SIMD_OP_LIST(SIMD_RETURN_SIMD)
+MACHINE_SIMD_GENERIC_OP_LIST(SIMD_RETURN_SIMD)
 #undef SIMD_RETURN_SIMD
 
 #define SIMD_RETURN_NUM(Name) \
diff --git a/src/compiler/typer.h b/src/compiler/typer.h
index 0982b28..b6c5cb3 100644
--- a/src/compiler/typer.h
+++ b/src/compiler/typer.h
@@ -7,6 +7,7 @@
 
 #include "src/base/flags.h"
 #include "src/compiler/graph.h"
+#include "src/compiler/operation-typer.h"
 #include "src/types.h"
 
 namespace v8 {
@@ -18,6 +19,7 @@
 
 namespace compiler {
 
+class OperationTyper;
 
 class Typer {
  public:
@@ -47,6 +49,7 @@
   Flags flags() const { return flags_; }
   CompilationDependencies* dependencies() const { return dependencies_; }
   FunctionType* function_type() const { return function_type_; }
+  OperationTyper* operation_typer() { return &operation_typer_; }
 
   Isolate* const isolate_;
   Graph* const graph_;
@@ -55,6 +58,7 @@
   FunctionType* function_type_;
   Decorator* decorator_;
   TypeCache const& cache_;
+  OperationTyper operation_typer_;
 
   Type* singleton_false_;
   Type* singleton_true_;
diff --git a/src/compiler/verifier.cc b/src/compiler/verifier.cc
index 0e34285..365f075 100644
--- a/src/compiler/verifier.cc
+++ b/src/compiler/verifier.cc
@@ -420,7 +420,7 @@
     case IrOpcode::kTypeGuard:
       // TODO(bmeurer): what are the constraints on these?
       break;
-    case IrOpcode::kCheckPoint:
+    case IrOpcode::kCheckpoint:
       // Type is empty.
       CheckNotTyped(node);
       break;
@@ -636,11 +636,31 @@
     case IrOpcode::kJSStoreMessage:
       break;
 
+    case IrOpcode::kJSGeneratorStore:
+      CheckNotTyped(node);
+      break;
+
+    case IrOpcode::kJSGeneratorRestoreContinuation:
+      CheckUpperIs(node, Type::SignedSmall());
+      break;
+
+    case IrOpcode::kJSGeneratorRestoreRegister:
+      CheckUpperIs(node, Type::Any());
+      break;
+
     case IrOpcode::kJSStackCheck:
       // Type is empty.
       CheckNotTyped(node);
       break;
 
+    case IrOpcode::kDebugBreak:
+      CheckNotTyped(node);
+      break;
+
+    case IrOpcode::kComment:
+      CheckNotTyped(node);
+      break;
+
     // Simplified operators
     // -------------------------------
     case IrOpcode::kBooleanNot:
@@ -654,16 +674,28 @@
       CheckUpperIs(node, Type::Number());
       break;
     case IrOpcode::kNumberEqual:
-      // (NumberOrUndefined, NumberOrUndefined) -> Boolean
-      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
-      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
+      // (Number, Number) -> Boolean
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 1, Type::Number());
       CheckUpperIs(node, Type::Boolean());
       break;
     case IrOpcode::kNumberLessThan:
     case IrOpcode::kNumberLessThanOrEqual:
       // (Number, Number) -> Boolean
-      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
-      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 1, Type::Number());
+      CheckUpperIs(node, Type::Boolean());
+      break;
+    case IrOpcode::kSpeculativeNumberAdd:
+    case IrOpcode::kSpeculativeNumberSubtract:
+    case IrOpcode::kSpeculativeNumberMultiply:
+    case IrOpcode::kSpeculativeNumberDivide:
+    case IrOpcode::kSpeculativeNumberModulus:
+      CheckUpperIs(node, Type::Number());
+      break;
+    case IrOpcode::kSpeculativeNumberEqual:
+    case IrOpcode::kSpeculativeNumberLessThan:
+    case IrOpcode::kSpeculativeNumberLessThanOrEqual:
       CheckUpperIs(node, Type::Boolean());
       break;
     case IrOpcode::kNumberAdd:
@@ -671,16 +703,15 @@
     case IrOpcode::kNumberMultiply:
     case IrOpcode::kNumberDivide:
       // (Number, Number) -> Number
-      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
-      CheckValueInputIs(node, 1, Type::NumberOrUndefined());
-      // CheckUpperIs(node, Type::Number());
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 1, Type::Number());
+      CheckUpperIs(node, Type::Number());
       break;
     case IrOpcode::kNumberModulus:
       // (Number, Number) -> Number
       CheckValueInputIs(node, 0, Type::Number());
       CheckValueInputIs(node, 1, Type::Number());
-      // TODO(rossberg): activate once we retype after opcode changes.
-      // CheckUpperIs(node, Type::Number());
+      CheckUpperIs(node, Type::Number());
       break;
     case IrOpcode::kNumberBitwiseOr:
     case IrOpcode::kNumberBitwiseXor:
@@ -714,9 +745,30 @@
       CheckValueInputIs(node, 0, Type::Unsigned32());
       CheckUpperIs(node, Type::Unsigned32());
       break;
+    case IrOpcode::kNumberAtan2:
+      // (Number, Number) -> Number
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckValueInputIs(node, 1, Type::Number());
+      CheckUpperIs(node, Type::Number());
+      break;
+    case IrOpcode::kNumberAbs:
     case IrOpcode::kNumberCeil:
     case IrOpcode::kNumberFloor:
+    case IrOpcode::kNumberFround:
+    case IrOpcode::kNumberAtan:
+    case IrOpcode::kNumberAtanh:
+    case IrOpcode::kNumberCos:
+    case IrOpcode::kNumberExp:
+    case IrOpcode::kNumberExpm1:
+    case IrOpcode::kNumberLog:
+    case IrOpcode::kNumberLog1p:
+    case IrOpcode::kNumberLog2:
+    case IrOpcode::kNumberLog10:
+    case IrOpcode::kNumberCbrt:
     case IrOpcode::kNumberRound:
+    case IrOpcode::kNumberSin:
+    case IrOpcode::kNumberSqrt:
+    case IrOpcode::kNumberTan:
     case IrOpcode::kNumberTrunc:
       // Number -> Number
       CheckValueInputIs(node, 0, Type::Number());
@@ -724,18 +776,23 @@
       break;
     case IrOpcode::kNumberToInt32:
       // Number -> Signed32
-      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 0, Type::Number());
       CheckUpperIs(node, Type::Signed32());
       break;
     case IrOpcode::kNumberToUint32:
       // Number -> Unsigned32
-      CheckValueInputIs(node, 0, Type::NumberOrUndefined());
+      CheckValueInputIs(node, 0, Type::Number());
       CheckUpperIs(node, Type::Unsigned32());
       break;
-    case IrOpcode::kNumberIsHoleNaN:
-      // Number -> Boolean
-      CheckValueInputIs(node, 0, Type::Number());
-      CheckUpperIs(node, Type::Boolean());
+    case IrOpcode::kPlainPrimitiveToNumber:
+      // Type is Number.
+      CheckUpperIs(node, Type::Number());
+      break;
+    case IrOpcode::kPlainPrimitiveToWord32:
+      CheckUpperIs(node, Type::Number());
+      break;
+    case IrOpcode::kPlainPrimitiveToFloat64:
+      CheckUpperIs(node, Type::Number());
       break;
     case IrOpcode::kStringEqual:
     case IrOpcode::kStringLessThan:
@@ -745,6 +802,11 @@
       CheckValueInputIs(node, 1, Type::String());
       CheckUpperIs(node, Type::Boolean());
       break;
+    case IrOpcode::kStringFromCharCode:
+      // Number -> String
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckUpperIs(node, Type::String());
+      break;
     case IrOpcode::kStringToNumber:
       // String -> Number
       CheckValueInputIs(node, 0, Type::String());
@@ -798,7 +860,7 @@
       break;
     }
     case IrOpcode::kChangeTaggedToFloat64: {
-      // Number /\ Tagged -> Number /\ UntaggedFloat64
+      // NumberOrUndefined /\ Tagged -> Number /\ UntaggedFloat64
       // TODO(neis): Activate once ChangeRepresentation works in typer.
       // Type* from = Type::Intersect(Type::Number(), Type::Tagged());
       // Type* to = Type::Intersect(Type::Number(), Type::UntaggedFloat64());
@@ -806,6 +868,16 @@
       // CheckUpperIs(node, to));
       break;
     }
+    case IrOpcode::kTruncateTaggedToFloat64: {
+      // NumberOrUndefined /\ Tagged -> Number /\ UntaggedFloat64
+      // TODO(neis): Activate once ChangeRepresentation works in typer.
+      // Type* from = Type::Intersect(Type::NumberOrUndefined(),
+      // Type::Tagged());
+      // Type* to = Type::Intersect(Type::Number(), Type::UntaggedFloat64());
+      // CheckValueInputIs(node, 0, from));
+      // CheckUpperIs(node, to));
+      break;
+    }
     case IrOpcode::kChangeInt31ToTaggedSigned: {
       // Signed31 /\ UntaggedInt32 -> Signed31 /\ Tagged
       // TODO(neis): Activate once ChangeRepresentation works in typer.
@@ -870,6 +942,37 @@
       break;
     }
 
+    case IrOpcode::kCheckBounds:
+      CheckValueInputIs(node, 0, Type::Any());
+      CheckValueInputIs(node, 1, Type::Unsigned31());
+      CheckUpperIs(node, Type::Unsigned31());
+      break;
+    case IrOpcode::kCheckTaggedSigned:
+      CheckValueInputIs(node, 0, Type::Any());
+      CheckUpperIs(node, Type::TaggedSigned());
+      break;
+    case IrOpcode::kCheckTaggedPointer:
+      CheckValueInputIs(node, 0, Type::Any());
+      CheckUpperIs(node, Type::TaggedPointer());
+      break;
+
+    case IrOpcode::kCheckedInt32Add:
+    case IrOpcode::kCheckedInt32Sub:
+    case IrOpcode::kCheckedUint32ToInt32:
+    case IrOpcode::kCheckedFloat64ToInt32:
+    case IrOpcode::kCheckedTaggedToInt32:
+    case IrOpcode::kCheckedTaggedToFloat64:
+      break;
+
+    case IrOpcode::kCheckFloat64Hole:
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckUpperIs(node, Type::Number());
+      break;
+    case IrOpcode::kCheckTaggedHole:
+      CheckValueInputIs(node, 0, Type::Any());
+      CheckUpperIs(node, Type::Any());
+      break;
+
     case IrOpcode::kLoadField:
       // Object -> fieldtype
       // TODO(rossberg): activate once machine ops are typed.
@@ -900,6 +1003,10 @@
       // CheckValueInputIs(node, 1, ElementAccessOf(node->op()).type));
       CheckNotTyped(node);
       break;
+    case IrOpcode::kNumberSilenceNaN:
+      CheckValueInputIs(node, 0, Type::Number());
+      CheckUpperIs(node, Type::Number());
+      break;
 
     // Machine operators
     // -----------------------
@@ -961,6 +1068,7 @@
     case IrOpcode::kFloat32Add:
     case IrOpcode::kFloat32Sub:
     case IrOpcode::kFloat32SubPreserveNan:
+    case IrOpcode::kFloat32Neg:
     case IrOpcode::kFloat32Mul:
     case IrOpcode::kFloat32Div:
     case IrOpcode::kFloat32Max:
@@ -973,13 +1081,27 @@
     case IrOpcode::kFloat64Add:
     case IrOpcode::kFloat64Sub:
     case IrOpcode::kFloat64SubPreserveNan:
+    case IrOpcode::kFloat64Neg:
     case IrOpcode::kFloat64Mul:
     case IrOpcode::kFloat64Div:
     case IrOpcode::kFloat64Mod:
     case IrOpcode::kFloat64Max:
     case IrOpcode::kFloat64Min:
     case IrOpcode::kFloat64Abs:
+    case IrOpcode::kFloat64Atan:
+    case IrOpcode::kFloat64Atan2:
+    case IrOpcode::kFloat64Atanh:
+    case IrOpcode::kFloat64Cos:
+    case IrOpcode::kFloat64Exp:
+    case IrOpcode::kFloat64Expm1:
+    case IrOpcode::kFloat64Log:
+    case IrOpcode::kFloat64Log1p:
+    case IrOpcode::kFloat64Log2:
+    case IrOpcode::kFloat64Log10:
+    case IrOpcode::kFloat64Cbrt:
+    case IrOpcode::kFloat64Sin:
     case IrOpcode::kFloat64Sqrt:
+    case IrOpcode::kFloat64Tan:
     case IrOpcode::kFloat32RoundDown:
     case IrOpcode::kFloat64RoundDown:
     case IrOpcode::kFloat32RoundUp:
@@ -1014,6 +1136,7 @@
     case IrOpcode::kChangeFloat32ToFloat64:
     case IrOpcode::kChangeFloat64ToInt32:
     case IrOpcode::kChangeFloat64ToUint32:
+    case IrOpcode::kFloat64SilenceNaN:
     case IrOpcode::kTruncateFloat64ToUint32:
     case IrOpcode::kTruncateFloat32ToInt32:
     case IrOpcode::kTruncateFloat32ToUint32:
diff --git a/src/compiler/wasm-compiler.cc b/src/compiler/wasm-compiler.cc
index 619e639..0a13f98 100644
--- a/src/compiler/wasm-compiler.cc
+++ b/src/compiler/wasm-compiler.cc
@@ -30,7 +30,6 @@
 #include "src/code-stubs.h"
 #include "src/factory.h"
 #include "src/log-inl.h"
-#include "src/profiler/cpu-profiler.h"
 
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/wasm-module.h"
@@ -607,7 +606,8 @@
     case wasm::kExprF64Pow:
       return BuildF64Pow(left, right);
     case wasm::kExprF64Atan2:
-      return BuildF64Atan2(left, right);
+      op = m->Float64Atan2();
+      break;
     case wasm::kExprF64Mod:
       return BuildF64Mod(left, right);
     case wasm::kExprI32AsmjsDivS:
@@ -645,16 +645,28 @@
     case wasm::kExprF32Abs:
       op = m->Float32Abs();
       break;
-    case wasm::kExprF32Neg:
-      return BuildF32Neg(input);
+    case wasm::kExprF32Neg: {
+      if (m->Float32Neg().IsSupported()) {
+        op = m->Float32Neg().op();
+        break;
+      } else {
+        return BuildF32Neg(input);
+      }
+    }
     case wasm::kExprF32Sqrt:
       op = m->Float32Sqrt();
       break;
     case wasm::kExprF64Abs:
       op = m->Float64Abs();
       break;
-    case wasm::kExprF64Neg:
-      return BuildF64Neg(input);
+    case wasm::kExprF64Neg: {
+      if (m->Float64Neg().IsSupported()) {
+        op = m->Float64Neg().op();
+        break;
+      } else {
+        return BuildF64Neg(input);
+      }
+    }
     case wasm::kExprF64Sqrt:
       op = m->Float64Sqrt();
       break;
@@ -769,24 +781,28 @@
     case wasm::kExprF64Asin: {
       return BuildF64Asin(input);
     }
-    case wasm::kExprF64Atan: {
-      return BuildF64Atan(input);
-    }
+    case wasm::kExprF64Atan:
+      op = m->Float64Atan();
+      break;
     case wasm::kExprF64Cos: {
-      return BuildF64Cos(input);
+      op = m->Float64Cos();
+      break;
     }
     case wasm::kExprF64Sin: {
-      return BuildF64Sin(input);
+      op = m->Float64Sin();
+      break;
     }
     case wasm::kExprF64Tan: {
-      return BuildF64Tan(input);
+      op = m->Float64Tan();
+      break;
     }
     case wasm::kExprF64Exp: {
-      return BuildF64Exp(input);
+      op = m->Float64Exp();
+      break;
     }
-    case wasm::kExprF64Log: {
-      return BuildF64Log(input);
-    }
+    case wasm::kExprF64Log:
+      op = m->Float64Log();
+      break;
     case wasm::kExprI32ConvertI64:
       op = m->TruncateInt64ToInt32();
       break;
@@ -1336,55 +1352,6 @@
   return BuildCFuncInstruction(ref, type, input);
 }
 
-Node* WasmGraphBuilder::BuildF64Atan(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_atan_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Cos(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_cos_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Sin(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_sin_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Tan(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_tan_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Exp(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_exp_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Log(Node* input) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_log_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, input);
-}
-
-Node* WasmGraphBuilder::BuildF64Atan2(Node* left, Node* right) {
-  MachineType type = MachineType::Float64();
-  ExternalReference ref =
-      ExternalReference::f64_atan2_wrapper_function(jsgraph()->isolate());
-  return BuildCFuncInstruction(ref, type, left, right);
-}
-
 Node* WasmGraphBuilder::BuildF64Pow(Node* left, Node* right) {
   MachineType type = MachineType::Float64();
   ExternalReference ref =
@@ -1512,9 +1479,10 @@
   } 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);
+    Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc,
+                                    graph()->start());
+    Node* overflow = graph()->NewNode(jsgraph()->common()->Projection(1), trunc,
+                                      graph()->start());
     trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
@@ -1529,9 +1497,10 @@
   } 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);
+    Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc,
+                                    graph()->start());
+    Node* overflow = graph()->NewNode(jsgraph()->common()->Projection(1), trunc,
+                                      graph()->start());
     trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
@@ -1546,9 +1515,10 @@
   } 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);
+    Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc,
+                                    graph()->start());
+    Node* overflow = graph()->NewNode(jsgraph()->common()->Projection(1), trunc,
+                                      graph()->start());
     trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
@@ -1563,9 +1533,10 @@
   } 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);
+    Node* result = graph()->NewNode(jsgraph()->common()->Projection(0), trunc,
+                                    graph()->start());
+    Node* overflow = graph()->NewNode(jsgraph()->common()->Projection(1), trunc,
+                                      graph()->start());
     trap_->ZeroCheck64(wasm::kTrapFloatUnrepresentable, overflow, position);
     return result;
   }
@@ -1896,7 +1867,7 @@
   DCHECK_NULL(args[0]);
 
   // Add code object as constant.
-  args[0] = HeapConstant(module_->GetFunctionCode(index));
+  args[0] = HeapConstant(module_->GetCodeOrPlaceholder(index));
   wasm::FunctionSig* sig = module_->GetFunctionSignature(index);
 
   return BuildWasmCall(sig, args, position);
@@ -1950,8 +1921,9 @@
                                           Int32Constant(kPointerSizeLog2)),
                          Int32Constant(fixed_offset)),
         *effect_, *control_);
-    Node* sig_match = graph()->NewNode(machine->WordEqual(), load_sig,
-                                       jsgraph()->SmiConstant(index));
+    Node* sig_match =
+        graph()->NewNode(machine->Word32Equal(),
+                         BuildChangeSmiToInt32(load_sig), Int32Constant(index));
     trap_->AddTrapIfFalse(wasm::kTrapFuncSigMismatch, sig_match, position);
   }
 
@@ -2008,9 +1980,10 @@
     return BuildChangeInt32ToSmi(value);
   }
 
-  Node* add = graph()->NewNode(machine->Int32AddWithOverflow(), value, value);
+  Node* add = graph()->NewNode(machine->Int32AddWithOverflow(), value, value,
+                               graph()->start());
 
-  Node* ovf = graph()->NewNode(common->Projection(1), add);
+  Node* ovf = graph()->NewNode(common->Projection(1), add, graph()->start());
   Node* branch = graph()->NewNode(common->Branch(BranchHint::kFalse), ovf,
                                   graph()->start());
 
@@ -2019,7 +1992,7 @@
       graph()->NewNode(machine->ChangeInt32ToFloat64(), value), if_true);
 
   Node* if_false = graph()->NewNode(common->IfFalse(), branch);
-  Node* vfalse = graph()->NewNode(common->Projection(0), add);
+  Node* vfalse = graph()->NewNode(common->Projection(0), add, if_false);
 
   Node* merge = graph()->NewNode(common->Merge(2), if_true, if_false);
   Node* phi = graph()->NewNode(common->Phi(MachineRepresentation::kTagged, 2),
@@ -2072,10 +2045,10 @@
   if (machine->Is64()) {
     vsmi = BuildChangeInt32ToSmi(value32);
   } else {
-    Node* smi_tag =
-        graph()->NewNode(machine->Int32AddWithOverflow(), value32, value32);
+    Node* smi_tag = graph()->NewNode(machine->Int32AddWithOverflow(), value32,
+                                     value32, if_smi);
 
-    Node* check_ovf = graph()->NewNode(common->Projection(1), smi_tag);
+    Node* check_ovf = graph()->NewNode(common->Projection(1), smi_tag, if_smi);
     Node* branch_ovf =
         graph()->NewNode(common->Branch(BranchHint::kFalse), check_ovf, if_smi);
 
@@ -2083,7 +2056,7 @@
     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);
+    vsmi = graph()->NewNode(common->Projection(0), smi_tag, if_smi);
   }
 
   // Allocate the box for the {value}.
@@ -2335,7 +2308,9 @@
   Callable callable = CodeFactory::AllocateHeapNumber(jsgraph()->isolate());
   Node* target = jsgraph()->HeapConstant(callable.code());
   Node* context = jsgraph()->NoContextConstant();
-  Node* effect = graph()->NewNode(common->BeginRegion(), graph()->start());
+  Node* effect =
+      graph()->NewNode(common->BeginRegion(RegionObservability::kNotObservable),
+                       graph()->start());
   if (!allocate_heap_number_operator_.is_set()) {
     CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
         jsgraph()->isolate(), jsgraph()->zone(), callable.descriptor(), 0,
@@ -2388,7 +2363,7 @@
   args[pos++] = HeapConstant(wasm_code);
 
   // Convert JS parameters to WASM numbers.
-  for (int i = 0; i < wasm_count; i++) {
+  for (int i = 0; i < wasm_count; ++i) {
     Node* param =
         graph()->NewNode(jsgraph()->common()->Parameter(i + 1), start);
     Node* wasm_param = FromJS(param, context, sig->GetParam(i));
@@ -2414,7 +2389,8 @@
   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);
+    retval = graph()->NewNode(jsgraph()->common()->Projection(0), retval,
+                              graph()->start());
   }
   Node* jsval =
       ToJS(retval, context,
@@ -2476,7 +2452,7 @@
 
   // Convert WASM numbers to JS values.
   int param_index = 0;
-  for (int i = 0; i < wasm_count; i++) {
+  for (int i = 0; i < wasm_count; ++i) {
     Node* param =
         graph()->NewNode(jsgraph()->common()->Parameter(param_index++), start);
     args[pos++] = ToJS(param, context, sig->GetParam(i));
@@ -2537,10 +2513,13 @@
   DCHECK(module_ && module_->instance);
   uint32_t size = static_cast<uint32_t>(module_->instance->mem_size);
   if (offset == 0) {
-    if (!mem_size_) mem_size_ = jsgraph()->Int32Constant(size);
+    if (!mem_size_)
+      mem_size_ = jsgraph()->RelocatableInt32Constant(
+          size, RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
     return mem_size_;
   } else {
-    return jsgraph()->Int32Constant(size + offset);
+    return jsgraph()->RelocatableInt32Constant(
+        size + offset, RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
   }
 }
 
@@ -2554,11 +2533,11 @@
 }
 
 Node* WasmGraphBuilder::LoadGlobal(uint32_t index) {
-  DCHECK(module_ && module_->instance && module_->instance->globals_start);
   MachineType mem_type = module_->GetGlobalType(index);
-  Node* addr = jsgraph()->IntPtrConstant(
+  Node* addr = jsgraph()->RelocatableIntPtrConstant(
       reinterpret_cast<uintptr_t>(module_->instance->globals_start +
-                                  module_->module->globals[index].offset));
+                                  module_->module->globals[index].offset),
+      RelocInfo::WASM_GLOBAL_REFERENCE);
   const Operator* op = jsgraph()->machine()->Load(mem_type);
   Node* node = graph()->NewNode(op, addr, jsgraph()->Int32Constant(0), *effect_,
                                 *control_);
@@ -2567,11 +2546,11 @@
 }
 
 Node* WasmGraphBuilder::StoreGlobal(uint32_t index, Node* val) {
-  DCHECK(module_ && module_->instance && module_->instance->globals_start);
   MachineType mem_type = module_->GetGlobalType(index);
-  Node* addr = jsgraph()->IntPtrConstant(
+  Node* addr = jsgraph()->RelocatableIntPtrConstant(
       reinterpret_cast<uintptr_t>(module_->instance->globals_start +
-                                  module_->module->globals[index].offset));
+                                  module_->module->globals[index].offset),
+      RelocInfo::WASM_GLOBAL_REFERENCE);
   const Operator* op = jsgraph()->machine()->Store(
       StoreRepresentation(mem_type.representation(), kNoWriteBarrier));
   Node* node = graph()->NewNode(op, addr, jsgraph()->Int32Constant(0), val,
@@ -2584,46 +2563,177 @@
                                       uint32_t offset,
                                       wasm::WasmCodePosition position) {
   DCHECK(module_ && module_->instance);
-  size_t size = module_->instance->mem_size;
+  uint32_t size = module_->instance->mem_size;
   byte memsize = wasm::WasmOpcodes::MemSize(memtype);
 
-  if (offset >= size || (static_cast<uint64_t>(offset) + memsize) > size) {
-    // The access will always throw (unless memory is grown).
-    Node* cond = jsgraph()->Int32Constant(0);
-    trap_->AddTrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
-    return;
-  }
-
   // Check against the effective size.
-  size_t effective_size = size - offset - memsize;
+  size_t effective_size;
+  if (offset >= size || (static_cast<uint64_t>(offset) + memsize) > size) {
+    effective_size = 0;
+  } else {
+    effective_size = size - offset - memsize + 1;
+  }
   CHECK(effective_size <= kMaxUInt32);
 
   Uint32Matcher m(index);
   if (m.HasValue()) {
     uint32_t value = m.Value();
-    if (value <= effective_size) {
+    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)));
+  Node* cond = graph()->NewNode(jsgraph()->machine()->Uint32LessThan(), index,
+                                jsgraph()->RelocatableInt32Constant(
+                                    static_cast<uint32_t>(effective_size),
+                                    RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
 
   trap_->AddTrapIfFalse(wasm::kTrapMemOutOfBounds, cond, position);
 }
 
+MachineType WasmGraphBuilder::GetTypeForUnalignedAccess(uint32_t alignment,
+                                                        bool signExtend) {
+  switch (alignment) {
+    case 0:
+      return signExtend ? MachineType::Int8() : MachineType::Uint8();
+    case 1:
+      return signExtend ? MachineType::Int16() : MachineType::Uint16();
+    case 2:
+      return signExtend ? MachineType::Int32() : MachineType::Uint32();
+    default:
+      UNREACHABLE();
+      return MachineType::None();
+  }
+}
+
+Node* WasmGraphBuilder::GetUnalignedLoadOffsetNode(Node* baseOffset,
+                                                   int numberOfBytes,
+                                                   int stride, int current) {
+  int offset;
+  wasm::WasmOpcode addOpcode;
+
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+  offset = numberOfBytes - stride - current;
+#elif defined(V8_TARGET_BIG_ENDIAN)
+  offset = current;
+#else
+#error Unsupported endianness
+#endif
+
+#if WASM_64
+  addOpcode = wasm::kExprI64Add;
+#else
+  addOpcode = wasm::kExprI32Add;
+#endif
+
+  if (offset == 0) {
+    return baseOffset;
+  } else {
+    return Binop(addOpcode, baseOffset, jsgraph()->Int32Constant(offset));
+  }
+}
+
+Node* WasmGraphBuilder::BuildUnalignedLoad(wasm::LocalType type,
+                                           MachineType memtype, Node* index,
+                                           uint32_t offset,
+                                           uint32_t alignment) {
+  Node* result;
+  Node* load;
+  bool extendTo64Bit = false;
+
+  wasm::WasmOpcode shiftOpcode;
+  wasm::WasmOpcode orOpcode;
+  Node* shiftConst;
+
+  bool signExtend = memtype.IsSigned();
+
+  bool isFloat = IsFloatingPoint(memtype.representation());
+  int stride =
+      1 << ElementSizeLog2Of(
+          GetTypeForUnalignedAccess(alignment, false).representation());
+  int numberOfBytes = 1 << ElementSizeLog2Of(memtype.representation());
+  DCHECK(numberOfBytes % stride == 0);
+
+  switch (type) {
+    case wasm::kAstI64:
+    case wasm::kAstF64:
+      shiftOpcode = wasm::kExprI64Shl;
+      orOpcode = wasm::kExprI64Ior;
+      result = jsgraph()->Int64Constant(0);
+      shiftConst = jsgraph()->Int64Constant(8 * stride);
+      extendTo64Bit = true;
+      break;
+    case wasm::kAstI32:
+    case wasm::kAstF32:
+      shiftOpcode = wasm::kExprI32Shl;
+      orOpcode = wasm::kExprI32Ior;
+      result = jsgraph()->Int32Constant(0);
+      shiftConst = jsgraph()->Int32Constant(8 * stride);
+      break;
+    default:
+      UNREACHABLE();
+  }
+
+  Node* baseOffset = MemBuffer(offset);
+
+  for (int i = 0; i < numberOfBytes; i += stride) {
+    result = Binop(shiftOpcode, result, shiftConst);
+    load = graph()->NewNode(
+        jsgraph()->machine()->Load(
+            GetTypeForUnalignedAccess(alignment, signExtend)),
+        GetUnalignedLoadOffsetNode(baseOffset, numberOfBytes, stride, i), index,
+        *effect_, *control_);
+    *effect_ = load;
+    if (extendTo64Bit) {
+      if (signExtend) {
+        load =
+            graph()->NewNode(jsgraph()->machine()->ChangeInt32ToInt64(), load);
+      } else {
+        load = graph()->NewNode(jsgraph()->machine()->ChangeUint32ToUint64(),
+                                load);
+      }
+    }
+    signExtend = false;
+    result = Binop(orOpcode, result, load);
+  }
+
+  // Convert to float
+  if (isFloat) {
+    switch (type) {
+      case wasm::kAstF32:
+        result = Unop(wasm::kExprF32ReinterpretI32, result);
+        break;
+      case wasm::kAstF64:
+        result = Unop(wasm::kExprF64ReinterpretI64, result);
+        break;
+      default:
+        UNREACHABLE();
+    }
+  }
+
+  return result;
+}
+
 Node* WasmGraphBuilder::LoadMem(wasm::LocalType type, MachineType memtype,
                                 Node* index, uint32_t offset,
+                                uint32_t alignment,
                                 wasm::WasmCodePosition position) {
   Node* load;
+
   // 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_);
+  bool aligned = static_cast<int>(alignment) >=
+                 ElementSizeLog2Of(memtype.representation());
 
-  *effect_ = load;
+  if (aligned ||
+      jsgraph()->machine()->UnalignedLoadSupported(memtype, alignment)) {
+    load = graph()->NewNode(jsgraph()->machine()->Load(memtype),
+                            MemBuffer(offset), index, *effect_, *control_);
+    *effect_ = load;
+  } else {
+    load = BuildUnalignedLoad(type, memtype, index, offset, alignment);
+  }
 
   if (type == wasm::kAstI64 &&
       ElementSizeLog2Of(memtype.representation()) < 3) {
@@ -2641,16 +2751,120 @@
   return load;
 }
 
+Node* WasmGraphBuilder::GetUnalignedStoreOffsetNode(Node* baseOffset,
+                                                    int numberOfBytes,
+                                                    int stride, int current) {
+  int offset;
+  wasm::WasmOpcode addOpcode;
+
+#if defined(V8_TARGET_LITTLE_ENDIAN)
+  offset = current;
+#elif defined(V8_TARGET_BIG_ENDIAN)
+  offset = numberOfBytes - stride - current;
+#else
+#error Unsupported endianness
+#endif
+
+#if WASM_64
+  addOpcode = wasm::kExprI64Add;
+#else
+  addOpcode = wasm::kExprI32Add;
+#endif
+
+  if (offset == 0) {
+    return baseOffset;
+  } else {
+    return Binop(addOpcode, baseOffset, jsgraph()->Int32Constant(offset));
+  }
+}
+
+Node* WasmGraphBuilder::BuildUnalignedStore(MachineType memtype, Node* index,
+                                            uint32_t offset, uint32_t alignment,
+                                            Node* val) {
+  Node* store;
+  Node* newValue;
+
+  wasm::WasmOpcode shiftOpcode;
+
+  Node* shiftConst;
+  bool extendTo64Bit = false;
+  bool isFloat = IsFloatingPoint(memtype.representation());
+  int stride = 1 << ElementSizeLog2Of(
+                   GetTypeForUnalignedAccess(alignment).representation());
+  int numberOfBytes = 1 << ElementSizeLog2Of(memtype.representation());
+  DCHECK(numberOfBytes % stride == 0);
+
+  StoreRepresentation rep(GetTypeForUnalignedAccess(alignment).representation(),
+                          kNoWriteBarrier);
+
+  if (ElementSizeLog2Of(memtype.representation()) <= 2) {
+    shiftOpcode = wasm::kExprI32ShrU;
+    shiftConst = jsgraph()->Int32Constant(8 * stride);
+  } else {
+    shiftOpcode = wasm::kExprI64ShrU;
+    shiftConst = jsgraph()->Int64Constant(8 * stride);
+    extendTo64Bit = true;
+  }
+
+  newValue = val;
+  if (isFloat) {
+    switch (memtype.representation()) {
+      case MachineRepresentation::kFloat64:
+        newValue = Unop(wasm::kExprI64ReinterpretF64, val);
+        break;
+      case MachineRepresentation::kFloat32:
+        newValue = Unop(wasm::kExprI32ReinterpretF32, val);
+        break;
+      default:
+        UNREACHABLE();
+    }
+  }
+
+  Node* baseOffset = MemBuffer(offset);
+
+  for (int i = 0; i < numberOfBytes - stride; i += stride) {
+    store = graph()->NewNode(
+        jsgraph()->machine()->Store(rep),
+        GetUnalignedStoreOffsetNode(baseOffset, numberOfBytes, stride, i),
+        index,
+        extendTo64Bit ? Unop(wasm::kExprI32ConvertI64, newValue) : newValue,
+        *effect_, *control_);
+    newValue = Binop(shiftOpcode, newValue, shiftConst);
+    *effect_ = store;
+  }
+  store = graph()->NewNode(
+      jsgraph()->machine()->Store(rep),
+      GetUnalignedStoreOffsetNode(baseOffset, numberOfBytes, stride,
+                                  numberOfBytes - stride),
+      index,
+      extendTo64Bit ? Unop(wasm::kExprI32ConvertI64, newValue) : newValue,
+      *effect_, *control_);
+  *effect_ = store;
+  return val;
+}
+
 Node* WasmGraphBuilder::StoreMem(MachineType memtype, Node* index,
-                                 uint32_t offset, Node* val,
+                                 uint32_t offset, uint32_t alignment, Node* val,
                                  wasm::WasmCodePosition position) {
   Node* store;
+
   // 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;
+  bool aligned = static_cast<int>(alignment) >=
+                 ElementSizeLog2Of(memtype.representation());
+
+  if (aligned ||
+      jsgraph()->machine()->UnalignedStoreSupported(memtype, alignment)) {
+    StoreRepresentation rep(memtype.representation(), kNoWriteBarrier);
+    store =
+        graph()->NewNode(jsgraph()->machine()->Store(rep), MemBuffer(offset),
+                         index, val, *effect_, *control_);
+    *effect_ = store;
+  } else {
+    store = BuildUnalignedStore(memtype, index, offset, alignment, val);
+  }
+
   return store;
 }
 
@@ -2704,13 +2918,12 @@
     source_position_table_->SetSourcePosition(node, pos);
 }
 
-static void RecordFunctionCompilation(Logger::LogEventsAndTags tag,
+static void RecordFunctionCompilation(CodeEventListener::LogEventsAndTags tag,
                                       CompilationInfo* info,
                                       const char* message, uint32_t index,
                                       wasm::WasmName func_name) {
   Isolate* isolate = info->isolate();
-  if (isolate->logger()->is_logging_code_events() ||
-      isolate->cpu_profiler()->is_profiling()) {
+  if (isolate->logger()->is_logging_code_events() || isolate->is_profiling()) {
     ScopedVector<char> buffer(128);
     SNPrintF(buffer, "%s#%d:%.*s", message, index, func_name.length(),
              func_name.start());
@@ -2729,7 +2942,7 @@
 Handle<JSFunction> CompileJSToWasmWrapper(
     Isolate* isolate, wasm::ModuleEnv* module, Handle<String> name,
     Handle<Code> wasm_code, Handle<JSObject> module_object, uint32_t index) {
-  wasm::WasmFunction* func = &module->module->functions[index];
+  const wasm::WasmFunction* func = &module->module->functions[index];
 
   //----------------------------------------------------------------------------
   // Create the JSFunction object.
@@ -2808,7 +3021,7 @@
     }
 
     RecordFunctionCompilation(
-        Logger::FUNCTION_TAG, &info, "js-to-wasm", index,
+        CodeEventListener::FUNCTION_TAG, &info, "js-to-wasm", index,
         module->module->GetName(func->name_offset, func->name_length));
     // Set the JSFunction's machine code.
     function->set_code(*code);
@@ -2816,7 +3029,7 @@
   return function;
 }
 
-Handle<Code> CompileWasmToJSWrapper(Isolate* isolate, wasm::ModuleEnv* module,
+Handle<Code> CompileWasmToJSWrapper(Isolate* isolate,
                                     Handle<JSFunction> function,
                                     wasm::FunctionSig* sig,
                                     wasm::WasmName module_name,
@@ -2836,7 +3049,6 @@
   WasmGraphBuilder builder(&zone, &jsgraph, sig);
   builder.set_control_ptr(&control);
   builder.set_effect_ptr(&effect);
-  builder.set_module(module);
   builder.BuildWasmToJSWrapper(function, sig);
 
   Handle<Code> code = Handle<Code>::null();
@@ -2881,238 +3093,186 @@
       buffer.Dispose();
     }
 
-    RecordFunctionCompilation(Logger::FUNCTION_TAG, &info, "wasm-to-js", 0,
-                              module_name);
+    RecordFunctionCompilation(CodeEventListener::FUNCTION_TAG, &info,
+                              "wasm-to-js", 0, module_name);
   }
   return code;
 }
 
-std::pair<JSGraph*, SourcePositionTable*> BuildGraphForWasmFunction(
-    JSGraph* jsgraph, wasm::ErrorThrower* thrower, Isolate* isolate,
-    wasm::ModuleEnv*& module_env, const wasm::WasmFunction* function,
+SourcePositionTable* WasmCompilationUnit::BuildGraphForWasmFunction(
     double* decode_ms) {
   base::ElapsedTimer decode_timer;
   if (FLAG_trace_wasm_decode_time) {
     decode_timer.Start();
   }
   // Create a TF graph during decoding.
-  Graph* graph = jsgraph->graph();
-  CommonOperatorBuilder* common = jsgraph->common();
-  MachineOperatorBuilder* machine = jsgraph->machine();
+
+  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,
+      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};
-  wasm::TreeResult result =
-      wasm::BuildTFGraph(isolate->allocator(), &builder, 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};
+  graph_construction_result_ =
+      wasm::BuildTFGraph(isolate_->allocator(), &builder, body);
+
+  if (graph_construction_result_.failed()) {
+    if (FLAG_trace_wasm_compiler) {
+      OFStream os(stdout);
+      os << "Compilation failed: " << graph_construction_result_ << std::endl;
+    }
+    return nullptr;
+  }
 
   if (machine->Is32()) {
-    Int64Lowering r(graph, machine, common, jsgraph->zone(), function->sig);
+    Int64Lowering r(graph, machine, common, jsgraph_->zone(), function_->sig);
     r.LowerGraph();
   }
 
-  if (result.failed()) {
-    if (FLAG_trace_wasm_compiler) {
-      OFStream os(stdout);
-      os << "Compilation failed: " << result << std::endl;
-    }
-    // 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);
-    SNPrintF(buffer, "Compiling WASM function #%d:%.*s failed:",
-             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);
+    OFStream os(stdout);
+    PrintAst(isolate_->allocator(), body, os, nullptr);
   }
   if (FLAG_trace_wasm_decode_time) {
     *decode_ms = decode_timer.Elapsed().InMillisecondsF();
   }
-  return std::make_pair(jsgraph, source_position_table);
+  return 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);
+WasmCompilationUnit::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);
+}
+
+void WasmCompilationUnit::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;
   }
 
-  Zone* graph_zone() { return graph_zone_.get(); }
+  double decode_ms = 0;
+  size_t node_count = 0;
 
-  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;
-    }
+  base::SmartPointer<Zone> graph_zone(graph_zone_.Detach());
+  SourcePositionTable* source_positions = BuildGraphForWasmFunction(&decode_ms);
 
-    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);
-    }
+  if (graph_construction_result_.failed()) {
+    ok_ = false;
+    return;
   }
 
-  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;
+  base::ElapsedTimer pipeline_timer;
+  if (FLAG_trace_wasm_decode_time) {
+    node_count = jsgraph_->graph()->NodeCount();
+    pipeline_timer.Start();
   }
 
-  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_;
-};
+  // 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));
 
-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);
+  // The function name {OptimizeGraph()} is misleading but necessary because we
+  // want to use the CompilationJob interface. A better name would be
+  // ScheduleGraphAndSelectInstructions.
+  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);
+  }
 }
 
-void ExecuteCompilation(WasmCompilationUnit* unit) {
-  unit->ExecuteCompilation();
-}
+Handle<Code> WasmCompilationUnit::FinishCompilation() {
+  if (!ok_) {
+    if (graph_construction_result_.failed()) {
+      // 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);
+      SNPrintF(buffer, "Compiling WASM function #%d:%.*s failed:",
+               function_->func_index, name.length(), name.start());
+      thrower_->Failed(buffer.start(), graph_construction_result_);
+    }
 
-uint32_t GetIndexOfWasmCompilationUnit(WasmCompilationUnit* unit) {
-  return unit->index_;
-}
+    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());
 
-Handle<Code> FinishCompilation(WasmCompilationUnit* unit) {
-  Handle<Code> result = unit->FinishCompilation();
-  delete unit;
-  return result;
-}
+  RecordFunctionCompilation(
+      CodeEventListener::FUNCTION_TAG, &info_, "WASM_function",
+      function_->func_index,
+      module_env_->module->GetName(function_->name_offset,
+                                   function_->name_length));
 
-// 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);
+  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;
 }
 
 }  // namespace compiler
diff --git a/src/compiler/wasm-compiler.h b/src/compiler/wasm-compiler.h
index 93c2ae9..c03de3d 100644
--- a/src/compiler/wasm-compiler.h
+++ b/src/compiler/wasm-compiler.h
@@ -7,7 +7,9 @@
 
 // Clients of this interface shouldn't depend on lots of compiler internals.
 // Do not include anything from src/compiler here!
+#include "src/compiler.h"
 #include "src/wasm/wasm-opcodes.h"
+#include "src/wasm/wasm-result.h"
 #include "src/zone.h"
 
 namespace v8 {
@@ -20,28 +22,62 @@
 class Graph;
 class Operator;
 class SourcePositionTable;
-class WasmCompilationUnit;
-}
+}  // namespace compiler
 
 namespace wasm {
 // Forward declarations for some WASM data structures.
 struct ModuleEnv;
 struct WasmFunction;
 class ErrorThrower;
+struct Tree;
 
 // Expose {Node} and {Graph} opaquely as {wasm::TFNode} and {wasm::TFGraph}.
 typedef compiler::Node TFNode;
 typedef compiler::JSGraph TFGraph;
-}
+}  // namespace wasm
 
 namespace compiler {
-// Compiles a single function, producing a code object.
-Handle<Code> CompileWasmFunction(wasm::ErrorThrower* thrower, Isolate* isolate,
-                                 wasm::ModuleEnv* module_env,
-                                 const wasm::WasmFunction* function);
+class WasmCompilationUnit final {
+ public:
+  WasmCompilationUnit(wasm::ErrorThrower* thrower, Isolate* isolate,
+                      wasm::ModuleEnv* module_env,
+                      const wasm::WasmFunction* function, uint32_t index);
+
+  Zone* graph_zone() { return graph_zone_.get(); }
+  int index() const { return index_; }
+
+  void ExecuteCompilation();
+  Handle<Code> FinishCompilation();
+
+  static Handle<Code> CompileWasmFunction(wasm::ErrorThrower* thrower,
+                                          Isolate* isolate,
+                                          wasm::ModuleEnv* module_env,
+                                          const wasm::WasmFunction* function) {
+    WasmCompilationUnit unit(thrower, isolate, module_env, function, 0);
+    unit.ExecuteCompilation();
+    return unit.FinishCompilation();
+  }
+
+ private:
+  SourcePositionTable* BuildGraphForWasmFunction(double* decode_ms);
+
+  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_;
+  wasm::Result<wasm::Tree*> graph_construction_result_;
+  bool ok_;
+};
 
 // Wraps a JS function, producing a code object that can be called from WASM.
-Handle<Code> CompileWasmToJSWrapper(Isolate* isolate, wasm::ModuleEnv* module,
+Handle<Code> CompileWasmToJSWrapper(Isolate* isolate,
                                     Handle<JSFunction> function,
                                     wasm::FunctionSig* sig,
                                     wasm::WasmName module_name,
@@ -53,16 +89,6 @@
     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;
@@ -141,8 +167,10 @@
   Node* LoadGlobal(uint32_t index);
   Node* StoreGlobal(uint32_t index, Node* val);
   Node* LoadMem(wasm::LocalType type, MachineType memtype, Node* index,
-                uint32_t offset, wasm::WasmCodePosition position);
-  Node* StoreMem(MachineType type, Node* index, uint32_t offset, Node* val,
+                uint32_t offset, uint32_t alignment,
+                wasm::WasmCodePosition position);
+  Node* StoreMem(MachineType type, Node* index, uint32_t offset,
+                 uint32_t alignment, Node* val,
                  wasm::WasmCodePosition position);
 
   static void PrintDebugName(Node* node);
@@ -193,6 +221,19 @@
   void BoundsCheckMem(MachineType memtype, Node* index, uint32_t offset,
                       wasm::WasmCodePosition position);
 
+  MachineType GetTypeForUnalignedAccess(uint32_t alignment,
+                                        bool signExtend = false);
+
+  Node* GetUnalignedLoadOffsetNode(Node* baseOffset, int numberOfBytes,
+                                   int stride, int current);
+
+  Node* BuildUnalignedLoad(wasm::LocalType type, MachineType memtype,
+                           Node* index, uint32_t offset, uint32_t alignment);
+  Node* GetUnalignedStoreOffsetNode(Node* baseOffset, int numberOfBytes,
+                                    int stride, int current);
+  Node* BuildUnalignedStore(MachineType memtype, Node* index, uint32_t offset,
+                            uint32_t alignment, Node* val);
+
   Node* MaskShiftCount32(Node* node);
   Node* MaskShiftCount64(Node* node);
 
@@ -234,14 +275,7 @@
 
   Node* BuildF64Acos(Node* input);
   Node* BuildF64Asin(Node* input);
-  Node* BuildF64Atan(Node* input);
-  Node* BuildF64Cos(Node* input);
-  Node* BuildF64Sin(Node* input);
-  Node* BuildF64Tan(Node* input);
-  Node* BuildF64Exp(Node* input);
-  Node* BuildF64Log(Node* input);
   Node* BuildF64Pow(Node* left, Node* right);
-  Node* BuildF64Atan2(Node* left, Node* right);
   Node* BuildF64Mod(Node* left, Node* right);
 
   Node* BuildIntToFloatConversionInstruction(
diff --git a/src/compiler/wasm-linkage.cc b/src/compiler/wasm-linkage.cc
index 41acf55..cfeb6c5 100644
--- a/src/compiler/wasm-linkage.cc
+++ b/src/compiler/wasm-linkage.cc
@@ -4,6 +4,7 @@
 
 #include "src/assembler.h"
 #include "src/macro-assembler.h"
+#include "src/register-configuration.h"
 
 #include "src/wasm/wasm-module.h"
 
@@ -31,6 +32,8 @@
       return MachineType::Float64();
     case kAstF32:
       return MachineType::Float32();
+    case kAstS128:
+      return MachineType::Simd128();
     default:
       UNREACHABLE();
       return MachineType::AnyTagged();
@@ -176,7 +179,18 @@
     if (IsFloatingPoint(type)) {
       // Allocate a floating point register/stack location.
       if (fp_offset < fp_count) {
-        return regloc(fp_regs[fp_offset++]);
+        DoubleRegister reg = fp_regs[fp_offset++];
+#if V8_TARGET_ARCH_ARM
+        // Allocate floats using a double register, but modify the code to
+        // reflect how ARM FP registers alias.
+        // TODO(bbudge) Modify wasm linkage to allow use of all float regs.
+        if (type == kAstF32) {
+          int float_reg_code = reg.code() * 2;
+          DCHECK(float_reg_code < RegisterConfiguration::kMaxFPRegisters);
+          return regloc(DoubleRegister::from_code(float_reg_code));
+        }
+#endif
+        return regloc(reg);
       } else {
         int offset = -1 - stack_offset;
         stack_offset += Words(type);
@@ -197,11 +211,7 @@
     return type == kAstF32 || type == kAstF64;
   }
   int Words(LocalType type) {
-    // The code generation for pushing parameters on the stack does not
-    // distinguish between float32 and float64. Therefore also float32 needs
-    // two words.
-    if (kPointerSize < 8 &&
-        (type == kAstI64 || type == kAstF64 || type == kAstF32)) {
+    if (kPointerSize < 8 && (type == kAstI64 || type == kAstF64)) {
       return 2;
     }
     return 1;
diff --git a/src/compiler/x64/code-generator-x64.cc b/src/compiler/x64/code-generator-x64.cc
index a90a584..2ae1fc9 100644
--- a/src/compiler/x64/code-generator-x64.cc
+++ b/src/compiler/x64/code-generator-x64.cc
@@ -18,10 +18,6 @@
 
 #define __ masm()->
 
-
-#define kScratchDoubleReg xmm0
-
-
 // Adds X64 specific methods for decoding operands.
 class X64OperandConverter : public InstructionOperandConverter {
  public:
@@ -45,7 +41,8 @@
       return Immediate(0);
     }
     if (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
-        constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE) {
+        constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE ||
+        constant.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
       return Immediate(constant.ToInt32(), constant.rmode());
     }
     return Immediate(constant.ToInt32());
@@ -389,24 +386,26 @@
       ool = new (zone()) OutOfLineLoadNaN(this, result);                     \
     } else {                                                                 \
       auto length = i.InputUint32(3);                                        \
+      RelocInfo::Mode rmode = i.ToConstant(instr->InputAt(3)).rmode();       \
       DCHECK_LE(index2, length);                                             \
-      __ cmpl(index1, Immediate(length - index2));                           \
+      __ cmpl(index1, Immediate(length - index2, rmode));                    \
       class OutOfLineLoadFloat final : public OutOfLineCode {                \
        public:                                                               \
         OutOfLineLoadFloat(CodeGenerator* gen, XMMRegister result,           \
                            Register buffer, Register index1, int32_t index2, \
-                           int32_t length)                                   \
+                           int32_t length, RelocInfo::Mode rmode)            \
             : OutOfLineCode(gen),                                            \
               result_(result),                                               \
               buffer_(buffer),                                               \
               index1_(index1),                                               \
               index2_(index2),                                               \
-              length_(length) {}                                             \
+              length_(length),                                               \
+              rmode_(rmode) {}                                               \
                                                                              \
         void Generate() final {                                              \
           __ leal(kScratchRegister, Operand(index1_, index2_));              \
           __ Pcmpeqd(result_, result_);                                      \
-          __ cmpl(kScratchRegister, Immediate(length_));                     \
+          __ cmpl(kScratchRegister, Immediate(length_, rmode_));             \
           __ j(above_equal, exit());                                         \
           __ asm_instr(result_,                                              \
                        Operand(buffer_, kScratchRegister, times_1, 0));      \
@@ -418,9 +417,10 @@
         Register const index1_;                                              \
         int32_t const index2_;                                               \
         int32_t const length_;                                               \
+        RelocInfo::Mode rmode_;                                              \
       };                                                                     \
-      ool = new (zone())                                                     \
-          OutOfLineLoadFloat(this, result, buffer, index1, index2, length);  \
+      ool = new (zone()) OutOfLineLoadFloat(this, result, buffer, index1,    \
+                                            index2, length, rmode);          \
     }                                                                        \
     __ j(above_equal, ool->entry());                                         \
     __ asm_instr(result, Operand(buffer, index1, times_1, index2));          \
@@ -441,24 +441,26 @@
       ool = new (zone()) OutOfLineLoadZero(this, result);                      \
     } else {                                                                   \
       auto length = i.InputUint32(3);                                          \
+      RelocInfo::Mode rmode = i.ToConstant(instr->InputAt(3)).rmode();         \
       DCHECK_LE(index2, length);                                               \
-      __ cmpl(index1, Immediate(length - index2));                             \
+      __ cmpl(index1, Immediate(length - index2, rmode));                      \
       class OutOfLineLoadInteger final : public OutOfLineCode {                \
        public:                                                                 \
         OutOfLineLoadInteger(CodeGenerator* gen, Register result,              \
                              Register buffer, Register index1, int32_t index2, \
-                             int32_t length)                                   \
+                             int32_t length, RelocInfo::Mode rmode)            \
             : OutOfLineCode(gen),                                              \
               result_(result),                                                 \
               buffer_(buffer),                                                 \
               index1_(index1),                                                 \
               index2_(index2),                                                 \
-              length_(length) {}                                               \
+              length_(length),                                                 \
+              rmode_(rmode) {}                                                 \
                                                                                \
         void Generate() final {                                                \
           Label oob;                                                           \
           __ leal(kScratchRegister, Operand(index1_, index2_));                \
-          __ cmpl(kScratchRegister, Immediate(length_));                       \
+          __ cmpl(kScratchRegister, Immediate(length_, rmode_));               \
           __ j(above_equal, &oob, Label::kNear);                               \
           __ asm_instr(result_,                                                \
                        Operand(buffer_, kScratchRegister, times_1, 0));        \
@@ -473,9 +475,10 @@
         Register const index1_;                                                \
         int32_t const index2_;                                                 \
         int32_t const length_;                                                 \
+        RelocInfo::Mode const rmode_;                                          \
       };                                                                       \
-      ool = new (zone())                                                       \
-          OutOfLineLoadInteger(this, result, buffer, index1, index2, length);  \
+      ool = new (zone()) OutOfLineLoadInteger(this, result, buffer, index1,    \
+                                              index2, length, rmode);          \
     }                                                                          \
     __ j(above_equal, ool->entry());                                           \
     __ asm_instr(result, Operand(buffer, index1, times_1, index2));            \
@@ -498,23 +501,25 @@
       __ bind(&done);                                                        \
     } else {                                                                 \
       auto length = i.InputUint32(3);                                        \
+      RelocInfo::Mode rmode = i.ToConstant(instr->InputAt(3)).rmode();       \
       DCHECK_LE(index2, length);                                             \
-      __ cmpl(index1, Immediate(length - index2));                           \
+      __ cmpl(index1, Immediate(length - index2, rmode));                    \
       class OutOfLineStoreFloat final : public OutOfLineCode {               \
        public:                                                               \
         OutOfLineStoreFloat(CodeGenerator* gen, Register buffer,             \
                             Register index1, int32_t index2, int32_t length, \
-                            XMMRegister value)                               \
+                            XMMRegister value, RelocInfo::Mode rmode)        \
             : OutOfLineCode(gen),                                            \
               buffer_(buffer),                                               \
               index1_(index1),                                               \
               index2_(index2),                                               \
               length_(length),                                               \
-              value_(value) {}                                               \
+              value_(value),                                                 \
+              rmode_(rmode) {}                                               \
                                                                              \
         void Generate() final {                                              \
           __ leal(kScratchRegister, Operand(index1_, index2_));              \
-          __ cmpl(kScratchRegister, Immediate(length_));                     \
+          __ cmpl(kScratchRegister, Immediate(length_, rmode_));             \
           __ j(above_equal, exit());                                         \
           __ asm_instr(Operand(buffer_, kScratchRegister, times_1, 0),       \
                        value_);                                              \
@@ -526,9 +531,10 @@
         int32_t const index2_;                                               \
         int32_t const length_;                                               \
         XMMRegister const value_;                                            \
+        RelocInfo::Mode rmode_;                                              \
       };                                                                     \
-      auto ool = new (zone())                                                \
-          OutOfLineStoreFloat(this, buffer, index1, index2, length, value);  \
+      auto ool = new (zone()) OutOfLineStoreFloat(                           \
+          this, buffer, index1, index2, length, value, rmode);               \
       __ j(above_equal, ool->entry());                                       \
       __ asm_instr(Operand(buffer, index1, times_1, index2), value);         \
       __ bind(ool->exit());                                                  \
@@ -550,23 +556,25 @@
       __ bind(&done);                                                          \
     } else {                                                                   \
       auto length = i.InputUint32(3);                                          \
+      RelocInfo::Mode rmode = i.ToConstant(instr->InputAt(3)).rmode();         \
       DCHECK_LE(index2, length);                                               \
-      __ cmpl(index1, Immediate(length - index2));                             \
+      __ cmpl(index1, Immediate(length - index2, rmode));                      \
       class OutOfLineStoreInteger final : public OutOfLineCode {               \
        public:                                                                 \
         OutOfLineStoreInteger(CodeGenerator* gen, Register buffer,             \
                               Register index1, int32_t index2, int32_t length, \
-                              Value value)                                     \
+                              Value value, RelocInfo::Mode rmode)              \
             : OutOfLineCode(gen),                                              \
               buffer_(buffer),                                                 \
               index1_(index1),                                                 \
               index2_(index2),                                                 \
               length_(length),                                                 \
-              value_(value) {}                                                 \
+              value_(value),                                                   \
+              rmode_(rmode) {}                                                 \
                                                                                \
         void Generate() final {                                                \
           __ leal(kScratchRegister, Operand(index1_, index2_));                \
-          __ cmpl(kScratchRegister, Immediate(length_));                       \
+          __ cmpl(kScratchRegister, Immediate(length_, rmode_));               \
           __ j(above_equal, exit());                                           \
           __ asm_instr(Operand(buffer_, kScratchRegister, times_1, 0),         \
                        value_);                                                \
@@ -578,9 +586,10 @@
         int32_t const index2_;                                                 \
         int32_t const length_;                                                 \
         Value const value_;                                                    \
+        RelocInfo::Mode rmode_;                                                \
       };                                                                       \
-      auto ool = new (zone())                                                  \
-          OutOfLineStoreInteger(this, buffer, index1, index2, length, value);  \
+      auto ool = new (zone()) OutOfLineStoreInteger(                           \
+          this, buffer, index1, index2, length, value, rmode);                 \
       __ j(above_equal, ool->entry());                                         \
       __ asm_instr(Operand(buffer, index1, times_1, index2), value);           \
       __ bind(ool->exit());                                                    \
@@ -598,6 +607,20 @@
     }                                                            \
   } while (false)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    __ PrepareCallCFunction(2);                                               \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     2);                                                      \
+  } while (false)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    __ PrepareCallCFunction(1);                                               \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     1);                                                      \
+  } while (false)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ movq(rsp, rbp);
   __ popq(rbp);
@@ -763,6 +786,14 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
+    case kArchDebugBreak:
+      __ int3();
+      break;
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -836,6 +867,45 @@
       __ leaq(i.OutputRegister(), Operand(base, offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Cos:
+      ASSEMBLE_IEEE754_UNOP(cos);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Expm1:
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      ASSEMBLE_IEEE754_UNOP(sin);
+      break;
+    case kIeee754Float64Tan:
+      ASSEMBLE_IEEE754_UNOP(tan);
+      break;
     case kX64Add32:
       ASSEMBLE_BINOP(addl);
       break;
@@ -1528,6 +1598,10 @@
       }
       break;
     }
+    case kSSEFloat64SilenceNaN:
+      __ Xorpd(kScratchDoubleReg, kScratchDoubleReg);
+      __ Subsd(i.InputDoubleRegister(0), kScratchDoubleReg);
+      break;
     case kX64Movsxbl:
       ASSEMBLE_MOVX(movsxbl);
       __ AssertZeroExtended(i.OutputRegister());
@@ -2134,7 +2208,8 @@
                                                : kScratchRegister;
       switch (src.type()) {
         case Constant::kInt32: {
-          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
             __ movq(dst, src.ToInt64(), src.rmode());
           } else {
             // TODO(dcarney): don't need scratch in this case.
@@ -2148,7 +2223,8 @@
           break;
         }
         case Constant::kInt64:
-          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE) {
+          if (src.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+              src.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE) {
             __ movq(dst, src.ToInt64(), src.rmode());
           } else {
             DCHECK(src.rmode() != RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
@@ -2224,10 +2300,9 @@
       XMMRegister dst = g.ToDoubleRegister(destination);
       __ Movsd(dst, src);
     } else {
-      // We rely on having xmm0 available as a fixed scratch register.
       Operand dst = g.ToOperand(destination);
-      __ Movsd(xmm0, src);
-      __ Movsd(dst, xmm0);
+      __ Movsd(kScratchDoubleReg, src);
+      __ Movsd(dst, kScratchDoubleReg);
     }
   } else {
     UNREACHABLE();
@@ -2271,21 +2346,19 @@
     dst = g.ToOperand(destination);
     __ popq(dst);
   } else if (source->IsFPRegister() && destination->IsFPRegister()) {
-    // XMM register-register swap. We rely on having xmm0
-    // available as a fixed scratch register.
+    // XMM register-register swap.
     XMMRegister src = g.ToDoubleRegister(source);
     XMMRegister dst = g.ToDoubleRegister(destination);
-    __ Movapd(xmm0, src);
+    __ Movapd(kScratchDoubleReg, src);
     __ Movapd(src, dst);
-    __ Movapd(dst, xmm0);
+    __ Movapd(dst, kScratchDoubleReg);
   } else if (source->IsFPRegister() && destination->IsFPStackSlot()) {
-    // XMM register-memory swap.  We rely on having xmm0
-    // available as a fixed scratch register.
+    // XMM register-memory swap.
     XMMRegister src = g.ToDoubleRegister(source);
     Operand dst = g.ToOperand(destination);
-    __ Movsd(xmm0, src);
+    __ Movsd(kScratchDoubleReg, src);
     __ Movsd(src, dst);
-    __ Movsd(dst, xmm0);
+    __ Movsd(dst, kScratchDoubleReg);
   } else {
     // No other combinations are possible.
     UNREACHABLE();
diff --git a/src/compiler/x64/instruction-codes-x64.h b/src/compiler/x64/instruction-codes-x64.h
index 638e77b..29acee3 100644
--- a/src/compiler/x64/instruction-codes-x64.h
+++ b/src/compiler/x64/instruction-codes-x64.h
@@ -102,6 +102,7 @@
   V(SSEFloat64InsertLowWord32)     \
   V(SSEFloat64InsertHighWord32)    \
   V(SSEFloat64LoadLowWord32)       \
+  V(SSEFloat64SilenceNaN)          \
   V(AVXFloat32Cmp)                 \
   V(AVXFloat32Add)                 \
   V(AVXFloat32Sub)                 \
diff --git a/src/compiler/x64/instruction-scheduler-x64.cc b/src/compiler/x64/instruction-scheduler-x64.cc
index 6133bd8..eecefdb 100644
--- a/src/compiler/x64/instruction-scheduler-x64.cc
+++ b/src/compiler/x64/instruction-scheduler-x64.cc
@@ -104,6 +104,7 @@
     case kSSEFloat64InsertLowWord32:
     case kSSEFloat64InsertHighWord32:
     case kSSEFloat64LoadLowWord32:
+    case kSSEFloat64SilenceNaN:
     case kAVXFloat32Cmp:
     case kAVXFloat32Add:
     case kAVXFloat32Sub:
diff --git a/src/compiler/x64/instruction-selector-x64.cc b/src/compiler/x64/instruction-selector-x64.cc
index 47deb02..be56dce 100644
--- a/src/compiler/x64/instruction-selector-x64.cc
+++ b/src/compiler/x64/instruction-selector-x64.cc
@@ -1355,7 +1355,6 @@
   VisitFloatUnop(this, node, node->InputAt(0), kAVXFloat64Abs, kSSEFloat64Abs);
 }
 
-
 void InstructionSelector::VisitFloat64Sqrt(Node* node) {
   VisitRO(this, node, kSSEFloat64Sqrt);
 }
@@ -1405,6 +1404,24 @@
   VisitRR(this, node, kSSEFloat64Round | MiscField::encode(kRoundToNearest));
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  X64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, xmm0), g.UseFixed(node->InputAt(0), xmm0),
+       g.UseFixed(node->InputAt(1), xmm1))
+      ->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  X64OperandGenerator g(this);
+  Emit(opcode, g.DefineAsFixed(node, xmm0), g.UseFixed(node->InputAt(0), xmm0))
+      ->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1437,7 +1454,7 @@
           g.CanBeImmediate(input.node())
               ? g.UseImmediate(input.node())
               : IsSupported(ATOM) ||
-                        sequence()->IsFloat(GetVirtualRegister(input.node()))
+                        sequence()->IsFP(GetVirtualRegister(input.node()))
                     ? g.UseRegister(input.node())
                     : g.Use(input.node());
       Emit(kX64Push, g.NoOutput(), value);
@@ -2036,6 +2053,12 @@
        g.UseRegister(left), g.Use(right));
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  X64OperandGenerator g(this);
+  Emit(kSSEFloat64SilenceNaN, g.DefineSameAsFirst(node),
+       g.UseRegister(node->InputAt(0)));
+}
+
 void InstructionSelector::VisitAtomicLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
   DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
@@ -2110,6 +2133,13 @@
   return flags;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/compiler/x87/code-generator-x87.cc b/src/compiler/x87/code-generator-x87.cc
index 0eef24f..6bacda0 100644
--- a/src/compiler/x87/code-generator-x87.cc
+++ b/src/compiler/x87/code-generator-x87.cc
@@ -61,6 +61,7 @@
     Constant constant = ToConstant(operand);
     if (constant.type() == Constant::kInt32 &&
         (constant.rmode() == RelocInfo::WASM_MEMORY_REFERENCE ||
+         constant.rmode() == RelocInfo::WASM_GLOBAL_REFERENCE ||
          constant.rmode() == RelocInfo::WASM_MEMORY_SIZE_REFERENCE)) {
       return Immediate(reinterpret_cast<Address>(constant.ToInt32()),
                        constant.rmode());
@@ -113,8 +114,8 @@
       }
       case kMode_MRI: {
         Register base = InputRegister(NextOffset(offset));
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(base, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(base, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_MR1:
       case kMode_MR2:
@@ -133,8 +134,8 @@
         Register base = InputRegister(NextOffset(offset));
         Register index = InputRegister(NextOffset(offset));
         ScaleFactor scale = ScaleFor(kMode_MR1I, mode);
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(base, index, scale, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(base, index, scale, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_M1:
       case kMode_M2:
@@ -151,12 +152,12 @@
       case kMode_M8I: {
         Register index = InputRegister(NextOffset(offset));
         ScaleFactor scale = ScaleFor(kMode_M1I, mode);
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(index, scale, disp);
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(index, scale, ctant.ToInt32(), ctant.rmode());
       }
       case kMode_MI: {
-        int32_t disp = InputInt32(NextOffset(offset));
-        return Operand(Immediate(disp));
+        Constant ctant = ToConstant(instr_->InputAt(NextOffset(offset)));
+        return Operand(ctant.ToInt32(), ctant.rmode());
       }
       case kMode_None:
         UNREACHABLE();
@@ -370,6 +371,50 @@
     }                                                                 \
   } while (0)
 
+#define ASSEMBLE_IEEE754_BINOP(name)                                          \
+  do {                                                                        \
+    /* Saves the esp into ebx */                                              \
+    __ push(ebx);                                                             \
+    __ mov(ebx, esp);                                                         \
+    /* Pass one double as argument on the stack. */                           \
+    __ PrepareCallCFunction(4, eax);                                          \
+    __ fstp(0);                                                               \
+    /* Load first operand from original stack */                              \
+    __ fld_d(MemOperand(ebx, 4 + kDoubleSize));                               \
+    /* Put first operand into stack for function call */                      \
+    __ fstp_d(Operand(esp, 0 * kDoubleSize));                                 \
+    /* Load second operand from original stack */                             \
+    __ fld_d(MemOperand(ebx, 4));                                             \
+    /* Put second operand into stack for function call */                     \
+    __ fstp_d(Operand(esp, 1 * kDoubleSize));                                 \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     4);                                                      \
+    /* Restore the ebx */                                                     \
+    __ pop(ebx);                                                              \
+    /* Return value is in st(0) on x87. */                                    \
+    __ lea(esp, Operand(esp, 2 * kDoubleSize));                               \
+  } while (false)
+
+#define ASSEMBLE_IEEE754_UNOP(name)                                           \
+  do {                                                                        \
+    /* Saves the esp into ebx */                                              \
+    __ push(ebx);                                                             \
+    __ mov(ebx, esp);                                                         \
+    /* Pass one double as argument on the stack. */                           \
+    __ PrepareCallCFunction(2, eax);                                          \
+    __ fstp(0);                                                               \
+    /* Load operand from original stack */                                    \
+    __ fld_d(MemOperand(ebx, 4));                                             \
+    /* Put operand into stack for function call */                            \
+    __ fstp_d(Operand(esp, 0));                                               \
+    __ CallCFunction(ExternalReference::ieee754_##name##_function(isolate()), \
+                     2);                                                      \
+    /* Restore the ebx */                                                     \
+    __ pop(ebx);                                                              \
+    /* Return value is in st(0) on x87. */                                    \
+    __ lea(esp, Operand(esp, kDoubleSize));                                   \
+  } while (false)
+
 void CodeGenerator::AssembleDeconstructFrame() {
   __ mov(esp, ebp);
   __ pop(ebp);
@@ -606,6 +651,14 @@
     case kArchTableSwitch:
       AssembleArchTableSwitch(instr);
       break;
+    case kArchComment: {
+      Address comment_string = i.InputExternalReference(0).address();
+      __ RecordComment(reinterpret_cast<const char*>(comment_string));
+      break;
+    }
+    case kArchDebugBreak:
+      __ int3();
+      break;
     case kArchNop:
     case kArchThrowTerminator:
       // don't emit code for nops.
@@ -695,6 +748,53 @@
       __ lea(i.OutputRegister(), Operand(base, offset.offset()));
       break;
     }
+    case kIeee754Float64Atan:
+      ASSEMBLE_IEEE754_UNOP(atan);
+      break;
+    case kIeee754Float64Atan2:
+      ASSEMBLE_IEEE754_BINOP(atan2);
+      break;
+    case kIeee754Float64Cbrt:
+      ASSEMBLE_IEEE754_UNOP(cbrt);
+      break;
+    case kIeee754Float64Cos:
+      __ X87SetFPUCW(0x027F);
+      ASSEMBLE_IEEE754_UNOP(cos);
+      __ X87SetFPUCW(0x037F);
+      break;
+    case kIeee754Float64Expm1:
+      __ X87SetFPUCW(0x027F);
+      ASSEMBLE_IEEE754_UNOP(expm1);
+      __ X87SetFPUCW(0x037F);
+      break;
+    case kIeee754Float64Exp:
+      ASSEMBLE_IEEE754_UNOP(exp);
+      break;
+    case kIeee754Float64Atanh:
+      ASSEMBLE_IEEE754_UNOP(atanh);
+      break;
+    case kIeee754Float64Log:
+      ASSEMBLE_IEEE754_UNOP(log);
+      break;
+    case kIeee754Float64Log1p:
+      ASSEMBLE_IEEE754_UNOP(log1p);
+      break;
+    case kIeee754Float64Log2:
+      ASSEMBLE_IEEE754_UNOP(log2);
+      break;
+    case kIeee754Float64Log10:
+      ASSEMBLE_IEEE754_UNOP(log10);
+      break;
+    case kIeee754Float64Sin:
+      __ X87SetFPUCW(0x027F);
+      ASSEMBLE_IEEE754_UNOP(sin);
+      __ X87SetFPUCW(0x037F);
+      break;
+    case kIeee754Float64Tan:
+      __ X87SetFPUCW(0x027F);
+      ASSEMBLE_IEEE754_UNOP(tan);
+      __ X87SetFPUCW(0x037F);
+      break;
     case kX87Add:
       if (HasImmediateInput(instr, 1)) {
         __ add(i.InputOperand(0), i.InputImmediate(1));
@@ -1523,6 +1623,30 @@
       __ lea(esp, Operand(esp, 2 * kDoubleSize));
       break;
     }
+    case kX87Float64SilenceNaN: {
+      Label end, return_qnan;
+      __ fstp(0);
+      __ push(ebx);
+      // Load Half word of HoleNan(SNaN) into ebx
+      __ mov(ebx, MemOperand(esp, 2 * kInt32Size));
+      __ cmp(ebx, Immediate(kHoleNanUpper32));
+      // Check input is HoleNaN(SNaN)?
+      __ j(equal, &return_qnan, Label::kNear);
+      // If input isn't HoleNaN(SNaN), just load it and return
+      __ fld_d(MemOperand(esp, 1 * kInt32Size));
+      __ jmp(&end);
+      __ bind(&return_qnan);
+      // If input is HoleNaN(SNaN), Return QNaN
+      __ push(Immediate(0xffffffff));
+      __ push(Immediate(0xfff7ffff));
+      __ fld_d(MemOperand(esp, 0));
+      __ lea(esp, Operand(esp, kDoubleSize));
+      __ bind(&end);
+      __ pop(ebx);
+      // Clear stack.
+      __ lea(esp, Operand(esp, 1 * kDoubleSize));
+      break;
+    }
     case kX87Movsxbl:
       __ movsx_b(i.OutputRegister(), i.MemoryOperand());
       break;
@@ -1661,27 +1785,29 @@
       if (instr->InputAt(0)->IsFPRegister()) {
         auto allocated = AllocatedOperand::cast(*instr->InputAt(0));
         if (allocated.representation() == MachineRepresentation::kFloat32) {
-          __ sub(esp, Immediate(kDoubleSize));
+          __ sub(esp, Immediate(kFloatSize));
           __ fst_s(Operand(esp, 0));
+          frame_access_state()->IncreaseSPDelta(kFloatSize / kPointerSize);
         } else {
           DCHECK(allocated.representation() == MachineRepresentation::kFloat64);
           __ sub(esp, Immediate(kDoubleSize));
           __ fst_d(Operand(esp, 0));
-        }
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        }
       } else if (instr->InputAt(0)->IsFPStackSlot()) {
         auto allocated = AllocatedOperand::cast(*instr->InputAt(0));
         if (allocated.representation() == MachineRepresentation::kFloat32) {
-          __ sub(esp, Immediate(kDoubleSize));
+          __ sub(esp, Immediate(kFloatSize));
           __ fld_s(i.InputOperand(0));
           __ fstp_s(MemOperand(esp, 0));
+          frame_access_state()->IncreaseSPDelta(kFloatSize / kPointerSize);
         } else {
           DCHECK(allocated.representation() == MachineRepresentation::kFloat64);
           __ sub(esp, Immediate(kDoubleSize));
           __ fld_d(i.InputOperand(0));
           __ fstp_d(MemOperand(esp, 0));
-        }
         frame_access_state()->IncreaseSPDelta(kDoubleSize / kPointerSize);
+        }
       } else if (HasImmediateInput(instr, 0)) {
         __ push(i.InputImmediate(0));
         frame_access_state()->IncreaseSPDelta(1);
diff --git a/src/compiler/x87/instruction-codes-x87.h b/src/compiler/x87/instruction-codes-x87.h
index 0cf9f35..2b4be3e 100644
--- a/src/compiler/x87/instruction-codes-x87.h
+++ b/src/compiler/x87/instruction-codes-x87.h
@@ -80,6 +80,7 @@
   V(X87Float64Sqrt)                \
   V(X87Float64Round)               \
   V(X87Float64Cmp)                 \
+  V(X87Float64SilenceNaN)          \
   V(X87Movsxbl)                    \
   V(X87Movzxbl)                    \
   V(X87Movb)                       \
diff --git a/src/compiler/x87/instruction-selector-x87.cc b/src/compiler/x87/instruction-selector-x87.cc
index a99e7a6..45779c7 100644
--- a/src/compiler/x87/instruction-selector-x87.cc
+++ b/src/compiler/x87/instruction-selector-x87.cc
@@ -1009,7 +1009,6 @@
   Emit(kX87Float64Abs, g.DefineAsFixed(node, stX_0), 0, nullptr);
 }
 
-
 void InstructionSelector::VisitFloat32Sqrt(Node* node) {
   X87OperandGenerator g(this);
   Emit(kX87PushFloat32, g.NoOutput(), g.Use(node->InputAt(0)));
@@ -1084,6 +1083,24 @@
        g.UseFixed(node, stX_0), g.Use(node->InputAt(0)));
 }
 
+void InstructionSelector::VisitFloat32Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Neg(Node* node) { UNREACHABLE(); }
+
+void InstructionSelector::VisitFloat64Ieee754Binop(Node* node,
+                                                   InstructionCode opcode) {
+  X87OperandGenerator g(this);
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0)));
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(1)));
+  Emit(opcode, g.DefineAsFixed(node, stX_0), 0, nullptr)->MarkAsCall();
+}
+
+void InstructionSelector::VisitFloat64Ieee754Unop(Node* node,
+                                                  InstructionCode opcode) {
+  X87OperandGenerator g(this);
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0)));
+  Emit(opcode, g.DefineAsFixed(node, stX_0), 0, nullptr)->MarkAsCall();
+}
 
 void InstructionSelector::EmitPrepareArguments(
     ZoneVector<PushParameter>* arguments, const CallDescriptor* descriptor,
@@ -1118,7 +1135,7 @@
           g.CanBeImmediate(input.node())
               ? g.UseImmediate(input.node())
               : IsSupported(ATOM) ||
-                        sequence()->IsFloat(GetVirtualRegister(input.node()))
+                        sequence()->IsFP(GetVirtualRegister(input.node()))
                     ? g.UseRegister(input.node())
                     : g.Use(input.node());
       Emit(kX87Push, g.NoOutput(), value);
@@ -1612,6 +1629,12 @@
        g.UseRegister(left), g.UseRegister(right));
 }
 
+void InstructionSelector::VisitFloat64SilenceNaN(Node* node) {
+  X87OperandGenerator g(this);
+  Emit(kX87PushFloat64, g.NoOutput(), g.Use(node->InputAt(0)));
+  Emit(kX87Float64SilenceNaN, g.DefineAsFixed(node, stX_0), 0, nullptr);
+}
+
 void InstructionSelector::VisitAtomicLoad(Node* node) {
   LoadRepresentation load_rep = LoadRepresentationOf(node->op());
   DCHECK(load_rep.representation() == MachineRepresentation::kWord8 ||
@@ -1683,6 +1706,13 @@
   return flags;
 }
 
+// static
+MachineOperatorBuilder::AlignmentRequirements
+InstructionSelector::AlignmentRequirements() {
+  return MachineOperatorBuilder::AlignmentRequirements::
+      FullUnalignedAccessSupport();
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/src/contexts-inl.h b/src/contexts-inl.h
index 5d62a04..990b50e 100644
--- a/src/contexts-inl.h
+++ b/src/contexts-inl.h
@@ -58,7 +58,7 @@
 
 Object* Context::next_context_link() { return get(Context::NEXT_CONTEXT_LINK); }
 
-bool Context::has_extension() { return !extension()->IsTheHole(); }
+bool Context::has_extension() { return !extension()->IsTheHole(GetIsolate()); }
 HeapObject* Context::extension() {
   return HeapObject::cast(get(EXTENSION_INDEX));
 }
diff --git a/src/contexts.cc b/src/contexts.cc
index 392a3cc..aa46b47 100644
--- a/src/contexts.cc
+++ b/src/contexts.cc
@@ -92,7 +92,7 @@
 JSObject* Context::extension_object() {
   DCHECK(IsNativeContext() || IsFunctionContext() || IsBlockContext());
   HeapObject* object = extension();
-  if (object->IsTheHole()) return nullptr;
+  if (object->IsTheHole(GetIsolate())) return nullptr;
   if (IsBlockContext()) {
     if (!object->IsSloppyBlockWithEvalContextExtension()) return nullptr;
     object = SloppyBlockWithEvalContextExtension::cast(object)->extension();
@@ -443,10 +443,11 @@
 
 void Context::AddOptimizedFunction(JSFunction* function) {
   DCHECK(IsNativeContext());
+  Isolate* isolate = GetIsolate();
 #ifdef ENABLE_SLOW_DCHECKS
   if (FLAG_enable_slow_asserts) {
     Object* element = get(OPTIMIZED_FUNCTIONS_LIST);
-    while (!element->IsUndefined()) {
+    while (!element->IsUndefined(isolate)) {
       CHECK(element != function);
       element = JSFunction::cast(element)->next_function_link();
     }
@@ -454,8 +455,8 @@
 
   // Check that the context belongs to the weak native contexts list.
   bool found = false;
-  Object* context = GetHeap()->native_contexts_list();
-  while (!context->IsUndefined()) {
+  Object* context = isolate->heap()->native_contexts_list();
+  while (!context->IsUndefined(isolate)) {
     if (context == this) {
       found = true;
       break;
@@ -467,12 +468,12 @@
 
   // If the function link field is already used then the function was
   // enqueued as a code flushing candidate and we remove it now.
-  if (!function->next_function_link()->IsUndefined()) {
+  if (!function->next_function_link()->IsUndefined(isolate)) {
     CodeFlusher* flusher = GetHeap()->mark_compact_collector()->code_flusher();
     flusher->EvictCandidate(function);
   }
 
-  DCHECK(function->next_function_link()->IsUndefined());
+  DCHECK(function->next_function_link()->IsUndefined(isolate));
 
   function->set_next_function_link(get(OPTIMIZED_FUNCTIONS_LIST),
                                    UPDATE_WEAK_WRITE_BARRIER);
@@ -484,9 +485,10 @@
   DCHECK(IsNativeContext());
   Object* element = get(OPTIMIZED_FUNCTIONS_LIST);
   JSFunction* prev = NULL;
-  while (!element->IsUndefined()) {
+  Isolate* isolate = function->GetIsolate();
+  while (!element->IsUndefined(isolate)) {
     JSFunction* element_function = JSFunction::cast(element);
-    DCHECK(element_function->next_function_link()->IsUndefined() ||
+    DCHECK(element_function->next_function_link()->IsUndefined(isolate) ||
            element_function->next_function_link()->IsJSFunction());
     if (element_function == function) {
       if (prev == NULL) {
@@ -522,7 +524,7 @@
 void Context::AddOptimizedCode(Code* code) {
   DCHECK(IsNativeContext());
   DCHECK(code->kind() == Code::OPTIMIZED_FUNCTION);
-  DCHECK(code->next_code_link()->IsUndefined());
+  DCHECK(code->next_code_link()->IsUndefined(GetIsolate()));
   code->set_next_code_link(get(OPTIMIZED_CODE_LIST));
   set(OPTIMIZED_CODE_LIST, code, UPDATE_WEAK_WRITE_BARRIER);
 }
@@ -555,7 +557,7 @@
 Handle<Object> Context::ErrorMessageForCodeGenerationFromStrings() {
   Isolate* isolate = GetIsolate();
   Handle<Object> result(error_message_for_code_gen_from_strings(), isolate);
-  if (!result->IsUndefined()) return result;
+  if (!result->IsUndefined(isolate)) return result;
   return isolate->factory()->NewStringFromStaticChars(
       "Code generation from strings disallowed for this context");
 }
diff --git a/src/contexts.h b/src/contexts.h
index 1161885..78ec431 100644
--- a/src/contexts.h
+++ b/src/contexts.h
@@ -86,8 +86,10 @@
   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)
+  V(MATH_EXP_INDEX, JSFunction, math_exp)                               \
+  V(MATH_FLOOR_INDEX, JSFunction, math_floor)                           \
+  V(MATH_LOG_INDEX, JSFunction, math_log)                               \
+  V(MATH_SQRT_INDEX, JSFunction, math_sqrt)
 
 #define NATIVE_CONTEXT_IMPORTED_FIELDS(V)                                   \
   V(ARRAY_CONCAT_INDEX, JSFunction, array_concat)                           \
@@ -104,7 +106,6 @@
   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)                              \
@@ -216,6 +217,7 @@
   V(NORMALIZED_MAP_CACHE_INDEX, Object, normalized_map_cache)                  \
   V(NUMBER_FUNCTION_INDEX, JSFunction, number_function)                        \
   V(OBJECT_FUNCTION_INDEX, JSFunction, object_function)                        \
+  V(OBJECT_WITH_NULL_PROTOTYPE_MAP, Map, object_with_null_prototype_map)       \
   V(OBJECT_FUNCTION_PROTOTYPE_MAP_INDEX, Map, object_function_prototype_map)   \
   V(OPAQUE_REFERENCE_FUNCTION_INDEX, JSFunction, opaque_reference_function)    \
   V(PROXY_CALLABLE_MAP_INDEX, Map, proxy_callable_map)                         \
@@ -238,6 +240,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(WASM_MODULE_CONSTRUCTOR_INDEX, JSFunction, wasm_module_constructor)        \
+  V(WASM_INSTANCE_CONSTRUCTOR_INDEX, JSFunction, wasm_instance_constructor)    \
+  V(WASM_MODULE_SYM_INDEX, Symbol, wasm_module_sym)                            \
+  V(WASM_INSTANCE_SYM_INDEX, Symbol, wasm_instance_sym)                        \
   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)         \
@@ -250,6 +256,8 @@
   V(STRING_FUNCTION_INDEX, JSFunction, string_function)                        \
   V(STRING_FUNCTION_PROTOTYPE_MAP_INDEX, Map, string_function_prototype_map)   \
   V(SYMBOL_FUNCTION_INDEX, JSFunction, symbol_function)                        \
+  V(TYPED_ARRAY_FUN_INDEX, JSFunction, typed_array_function)                   \
+  V(TYPED_ARRAY_PROTOTYPE_INDEX, JSObject, typed_array_prototype)              \
   V(UINT16_ARRAY_FUN_INDEX, JSFunction, uint16_array_fun)                      \
   V(UINT16X8_FUNCTION_INDEX, JSFunction, uint16x8_function)                    \
   V(UINT32_ARRAY_FUN_INDEX, JSFunction, uint32_array_fun)                      \
diff --git a/src/counters.cc b/src/counters.cc
index 0dd62a0..57dad3d 100644
--- a/src/counters.cc
+++ b/src/counters.cc
@@ -9,6 +9,7 @@
 #include "src/base/platform/platform.h"
 #include "src/isolate.h"
 #include "src/log-inl.h"
+#include "src/log.h"
 
 namespace v8 {
 namespace internal {
@@ -200,14 +201,14 @@
   void Print(std::ostream& os) {
     if (total_call_count == 0) return;
     std::sort(entries.rbegin(), entries.rend());
-    os << std::setw(50) << "Runtime Function/C++ Builtin" << std::setw(10)
+    os << std::setw(50) << "Runtime Function/C++ Builtin" << std::setw(12)
        << "Time" << std::setw(18) << "Count" << std::endl
-       << std::string(86, '=') << std::endl;
+       << std::string(88, '=') << std::endl;
     for (Entry& entry : entries) {
       entry.SetTotal(total_time, total_call_count);
       entry.Print(os);
     }
-    os << std::string(86, '-') << std::endl;
+    os << std::string(88, '-') << std::endl;
     Entry("Total", total_time, total_call_count).Print(os);
   }
 
@@ -223,7 +224,7 @@
    public:
     Entry(const char* name, base::TimeDelta time, uint64_t count)
         : name_(name),
-          time_(time.InMilliseconds()),
+          time_(time.InMicroseconds()),
           count_(count),
           time_percent_(100),
           count_percent_(100) {}
@@ -236,9 +237,9 @@
 
     void Print(std::ostream& os) {
       os.precision(2);
-      os << std::fixed;
+      os << std::fixed << std::setprecision(2);
       os << std::setw(50) << name_;
-      os << std::setw(8) << time_ << "ms ";
+      os << std::setw(10) << static_cast<double>(time_) / 1000 << "ms ";
       os << std::setw(6) << time_percent_ << "%";
       os << std::setw(10) << count_ << " ";
       os << std::setw(6) << count_percent_ << "%";
@@ -246,10 +247,10 @@
     }
 
     void SetTotal(base::TimeDelta total_time, uint64_t total_count) {
-      if (total_time.InMilliseconds() == 0) {
+      if (total_time.InMicroseconds() == 0) {
         time_percent_ = 0;
       } else {
-        time_percent_ = 100.0 * time_ / total_time.InMilliseconds();
+        time_percent_ = 100.0 * time_ / total_time.InMicroseconds();
       }
       count_percent_ = 100.0 * count_ / total_count;
     }
@@ -284,8 +285,17 @@
 // 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();
+
+  if (stats->current_timer_ == timer) {
+    stats->current_timer_ = timer->Stop();
+  } else {
+    // Must be a Threading cctest. Walk the chain of Timers to find the
+    // buried one that's leaving. We don't care about keeping nested timings
+    // accurate, just avoid crashing by keeping the chain intact.
+    RuntimeCallTimer* next = stats->current_timer_;
+    while (next->parent_ != timer) next = next->parent_;
+    next->parent_ = timer->Stop();
+  }
 }
 
 // static
@@ -308,7 +318,7 @@
   FOR_EACH_INTRINSIC(PRINT_COUNTER)
 #undef PRINT_COUNTER
 
-#define PRINT_COUNTER(name, type) entries.Add(&this->Builtin_##name);
+#define PRINT_COUNTER(name) entries.Add(&this->Builtin_##name);
   BUILTIN_LIST_C(PRINT_COUNTER)
 #undef PRINT_COUNTER
 
@@ -333,7 +343,7 @@
   FOR_EACH_INTRINSIC(RESET_COUNTER)
 #undef RESET_COUNTER
 
-#define RESET_COUNTER(name, type) this->Builtin_##name.Reset();
+#define RESET_COUNTER(name) this->Builtin_##name.Reset();
   BUILTIN_LIST_C(RESET_COUNTER)
 #undef RESET_COUNTER
 
diff --git a/src/counters.h b/src/counters.h
index a61cacf..3c82a18 100644
--- a/src/counters.h
+++ b/src/counters.h
@@ -493,6 +493,8 @@
 class RuntimeCallTimer {
  public:
   RuntimeCallTimer() {}
+  RuntimeCallCounter* counter() { return counter_; }
+  base::ElapsedTimer timer() { return timer_; }
 
  private:
   friend class RuntimeCallStats;
@@ -660,6 +662,7 @@
   V(AccessorNameSetterCallback)                     \
   V(Compile)                                        \
   V(CompileCode)                                    \
+  V(CompileCodeLazy)                                \
   V(CompileDeserialize)                             \
   V(CompileEval)                                    \
   V(CompileFullCode)                                \
@@ -706,7 +709,6 @@
   V(KeyedStoreIC_StoreElementStub)              \
   V(KeyedStoreIC_Polymorphic)                   \
   V(LoadIC_FunctionPrototypeStub)               \
-  V(LoadIC_ArrayBufferViewLoadFieldStub)        \
   V(LoadIC_LoadApiGetterStub)                   \
   V(LoadIC_LoadCallback)                        \
   V(LoadIC_LoadConstant)                        \
@@ -745,7 +747,7 @@
   RuntimeCallCounter Runtime_##name = RuntimeCallCounter(#name);
   FOR_EACH_INTRINSIC(CALL_RUNTIME_COUNTER)
 #undef CALL_RUNTIME_COUNTER
-#define CALL_BUILTIN_COUNTER(name, type) \
+#define CALL_BUILTIN_COUNTER(name) \
   RuntimeCallCounter Builtin_##name = RuntimeCallCounter(#name);
   BUILTIN_LIST_C(CALL_BUILTIN_COUNTER)
 #undef CALL_BUILTIN_COUNTER
@@ -776,6 +778,7 @@
   void Print(std::ostream& os);
 
   RuntimeCallStats() { Reset(); }
+  RuntimeCallTimer* current_timer() { return current_timer_; }
 
  private:
   // Counter to track recursive time events.
@@ -1015,7 +1018,6 @@
   SC(regexp_entry_native, V8.RegExpEntryNative)                                \
   SC(number_to_string_native, V8.NumberToStringNative)                         \
   SC(number_to_string_runtime, V8.NumberToStringRuntime)                       \
-  SC(math_atan2_runtime, V8.MathAtan2Runtime)                                  \
   SC(math_exp_runtime, V8.MathExpRuntime)                                      \
   SC(math_log_runtime, V8.MathLogRuntime)                                      \
   SC(math_pow_runtime, V8.MathPowRuntime)                                      \
diff --git a/src/crankshaft/arm/lithium-arm.cc b/src/crankshaft/arm/lithium-arm.cc
index d8ee9cd..538b309 100644
--- a/src/crankshaft/arm/lithium-arm.cc
+++ b/src/crankshaft/arm/lithium-arm.cc
@@ -1069,6 +1069,10 @@
       return DoMathAbs(instr);
     case kMathLog:
       return DoMathLog(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathExp:
       return DoMathExp(instr);
     case kMathSqrt:
@@ -1134,16 +1138,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), d0), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), d0), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LOperand* double_temp = TempDoubleRegister();
-  LMathExp* result = new(zone()) LMathExp(input, double_temp, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), d0), instr);
 }
 
 
@@ -1974,13 +1987,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub()
       ? UseFixed(instr->context(), cp)
@@ -2012,14 +2018,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
+
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, r0), instr);
 }
 
@@ -2063,10 +2064,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadNamedGeneric(context, object, vector), r0);
@@ -2138,10 +2136,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key, vector),
@@ -2203,12 +2198,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result =
       new (zone()) LStoreKeyedGeneric(context, obj, key, val, slot, vector);
@@ -2297,12 +2288,8 @@
   LOperand* obj =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* val = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, obj, val, slot, vector);
diff --git a/src/crankshaft/arm/lithium-arm.h b/src/crankshaft/arm/lithium-arm.h
index 2ec992f..4aa4a71 100644
--- a/src/crankshaft/arm/lithium-arm.h
+++ b/src/crankshaft/arm/lithium-arm.h
@@ -53,7 +53,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -98,6 +97,8 @@
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathFloor)                               \
   V(MathFround)                              \
@@ -905,24 +906,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 3> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value,
-           LOperand* double_temp,
-           LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    temps_[2] = double_temp;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
-  LOperand* double_temp() { return temps_[2]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1567,18 +1573,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2339,20 +2341,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 2> {
  public:
   LAllocate(LOperand* context,
@@ -2545,6 +2533,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/arm/lithium-codegen-arm.cc b/src/crankshaft/arm/lithium-codegen-arm.cc
index 340642a..e9d3f46 100644
--- a/src/crankshaft/arm/lithium-codegen-arm.cc
+++ b/src/crankshaft/arm/lithium-codegen-arm.cc
@@ -11,7 +11,6 @@
 #include "src/crankshaft/hydrogen-osr.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -835,7 +834,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -910,7 +909,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -2526,10 +2524,10 @@
   DeoptimizeIf(eq, instr, Deoptimizer::kProxy);
 
   __ ldr(object_prototype, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object_prototype, prototype);
-  EmitTrueBranch(instr, eq);
   __ CompareRoot(object_prototype, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, eq);
+  __ cmp(object_prototype, prototype);
+  EmitTrueBranch(instr, eq);
   __ ldr(object_map, FieldMemOperand(object_prototype, HeapObject::kMapOffset));
   __ b(&loop);
 }
@@ -2623,15 +2621,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(r0));
 
-  __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2726,10 +2721,7 @@
   // Name is always in r2.
   __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS);
 }
 
@@ -3023,13 +3015,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS);
 }
 
@@ -3546,26 +3534,32 @@
   }
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
-  DwVfpRegister input = ToDoubleRegister(instr->value());
-  DwVfpRegister result = ToDoubleRegister(instr->result());
-  DwVfpRegister double_scratch1 = ToDoubleRegister(instr->double_temp());
-  DwVfpRegister double_scratch2 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(
-      masm(), input, result, double_scratch1, double_scratch2,
-      temp1, temp2, scratch0());
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   __ PrepareCallCFunction(0, 1, scratch0());
   __ MovToFloatParameter(ToDoubleRegister(instr->value()));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()),
-                   0, 1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
@@ -3588,7 +3582,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3715,14 +3711,8 @@
   DCHECK(ToRegister(instr->result()).is(r0));
 
   __ mov(r0, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ Move(r2, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(r2, Heap::kUndefinedValueRootIndex);
-  }
+  __ Move(r2, instr->hydrogen()->site());
+
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
       (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE)
@@ -3755,7 +3745,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -3876,14 +3866,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ mov(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS);
 }
 
@@ -4090,13 +4078,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr, NEVER_INLINE_TARGET_ADDRESS);
 }
 
@@ -4232,8 +4218,7 @@
     DCHECK(object_reg.is(r0));
     PushSafepointRegistersScope scope(this);
     __ Move(r1, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kLazyDeopt);
@@ -5059,15 +5044,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DwVfpRegister result_reg = ToDoubleRegister(instr->result());
-  __ VmovHigh(result_reg, hi_reg);
-  __ VmovLow(result_reg, lo_reg);
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/arm64/lithium-arm64.cc b/src/crankshaft/arm64/lithium-arm64.cc
index 2154398..9a0a7c4 100644
--- a/src/crankshaft/arm64/lithium-arm64.cc
+++ b/src/crankshaft/arm64/lithium-arm64.cc
@@ -1553,15 +1553,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, x0), instr);
 }
 
@@ -1621,10 +1615,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key, vector),
@@ -1643,10 +1634,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadNamedGeneric(context, object, vector), x0);
@@ -1931,13 +1919,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegisterAndClobber(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub()
       ? UseFixed(instr->context(), cp)
@@ -2246,12 +2227,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result = new (zone())
       LStoreKeyedGeneric(context, object, key, value, slot, vector);
@@ -2294,12 +2271,8 @@
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* value = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, object, value, slot, vector);
@@ -2476,17 +2449,26 @@
         return result;
       }
     }
+    case kMathCos: {
+      DCHECK(instr->representation().IsDouble());
+      DCHECK(instr->value()->representation().IsDouble());
+      LOperand* input = UseFixedDouble(instr->value(), d0);
+      LMathCos* result = new (zone()) LMathCos(input);
+      return MarkAsCall(DefineFixedDouble(result, d0), instr);
+    }
+    case kMathSin: {
+      DCHECK(instr->representation().IsDouble());
+      DCHECK(instr->value()->representation().IsDouble());
+      LOperand* input = UseFixedDouble(instr->value(), d0);
+      LMathSin* result = new (zone()) LMathSin(input);
+      return MarkAsCall(DefineFixedDouble(result, d0), instr);
+    }
     case kMathExp: {
       DCHECK(instr->representation().IsDouble());
       DCHECK(instr->value()->representation().IsDouble());
-      LOperand* input = UseRegister(instr->value());
-      LOperand* double_temp1 = TempDoubleRegister();
-      LOperand* temp1 = TempRegister();
-      LOperand* temp2 = TempRegister();
-      LOperand* temp3 = TempRegister();
-      LMathExp* result = new(zone()) LMathExp(input, double_temp1,
-                                              temp1, temp2, temp3);
-      return DefineAsRegister(result);
+      LOperand* input = UseFixedDouble(instr->value(), d0);
+      LMathExp* result = new (zone()) LMathExp(input);
+      return MarkAsCall(DefineFixedDouble(result, d0), instr);
     }
     case kMathFloor: {
       DCHECK(instr->value()->representation().IsDouble());
diff --git a/src/crankshaft/arm64/lithium-arm64.h b/src/crankshaft/arm64/lithium-arm64.h
index 383e5c3..231008d 100644
--- a/src/crankshaft/arm64/lithium-arm64.h
+++ b/src/crankshaft/arm64/lithium-arm64.h
@@ -57,7 +57,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -104,6 +103,8 @@
   V(MathAbs)                                 \
   V(MathAbsTagged)                           \
   V(MathClz32)                               \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathFloorD)                              \
   V(MathFloorI)                              \
@@ -993,20 +994,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LClassOfTestAndBranch final : public LControlInstruction<1, 2> {
  public:
   LClassOfTestAndBranch(LOperand* value, LOperand* temp1, LOperand* temp2) {
@@ -1566,18 +1553,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadFunctionPrototype)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -1763,26 +1746,23 @@
   DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
 };
 
-
-class LMathExp final : public LUnaryMathOperation<4> {
+class LMathCos final : public LUnaryMathOperation<0> {
  public:
-  LMathExp(LOperand* value,
-                LOperand* double_temp1,
-                LOperand* temp1,
-                LOperand* temp2,
-                LOperand* temp3)
-      : LUnaryMathOperation<4>(value) {
-    temps_[0] = double_temp1;
-    temps_[1] = temp1;
-    temps_[2] = temp2;
-    temps_[3] = temp3;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) : LUnaryMathOperation<0>(value) {}
 
-  LOperand* double_temp1() { return temps_[0]; }
-  LOperand* temp1() { return temps_[1]; }
-  LOperand* temp2() { return temps_[2]; }
-  LOperand* temp3() { return temps_[3]; }
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LUnaryMathOperation<0> {
+ public:
+  explicit LMathSin(LOperand* value) : LUnaryMathOperation<0>(value) {}
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LUnaryMathOperation<0> {
+ public:
+  explicit LMathExp(LOperand* value) : LUnaryMathOperation<0>(value) {}
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
diff --git a/src/crankshaft/arm64/lithium-codegen-arm64.cc b/src/crankshaft/arm64/lithium-codegen-arm64.cc
index ebc5277..8df6580 100644
--- a/src/crankshaft/arm64/lithium-codegen-arm64.cc
+++ b/src/crankshaft/arm64/lithium-codegen-arm64.cc
@@ -12,7 +12,6 @@
 #include "src/crankshaft/hydrogen-osr.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -365,15 +364,7 @@
   DCHECK(ToRegister(instr->constructor()).is(x1));
 
   __ Mov(x0, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ Mov(x2, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(x2, Heap::kUndefinedValueRootIndex);
-  }
-
+  __ Mov(x2, instr->hydrogen()->site());
 
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
@@ -406,7 +397,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ Bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
   RecordPushedArgumentsDelta(instr->hydrogen()->argument_delta());
@@ -457,7 +448,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -904,7 +894,7 @@
             entry, deopt_info, bailout_type, !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry->IsEquivalentTo(*jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -2227,18 +2217,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DoubleRegister result_reg = ToDoubleRegister(instr->result());
-
-  // Insert the least significant 32 bits of hi_reg into the most significant
-  // 32 bits of lo_reg, and move to a floating point register.
-  __ Bfi(lo_reg, hi_reg, 32, 32);
-  __ Fmov(result_reg, lo_reg);
-}
-
-
 void LCodeGen::DoClassOfTestAndBranch(LClassOfTestAndBranch* instr) {
   Handle<String> class_name = instr->hydrogen()->class_name();
   Label* true_label = instr->TrueLabel(chunk_);
@@ -2833,10 +2811,10 @@
   DeoptimizeIf(eq, instr, Deoptimizer::kProxy);
 
   __ Ldr(object_prototype, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ Cmp(object_prototype, prototype);
-  __ B(eq, instr->TrueLabel(chunk_));
   __ CompareRoot(object_prototype, Heap::kNullValueRootIndex);
   __ B(eq, instr->FalseLabel(chunk_));
+  __ Cmp(object_prototype, prototype);
+  __ B(eq, instr->TrueLabel(chunk_));
   __ Ldr(object_map, FieldMemOperand(object_prototype, HeapObject::kMapOffset));
   __ B(&loop);
 }
@@ -2865,7 +2843,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3086,14 +3066,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).Is(x0));
-  __ Mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
+
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3351,13 +3329,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 
   DCHECK(ToRegister(instr->result()).Is(x0));
@@ -3411,10 +3385,7 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   __ Mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 
   DCHECK(ToRegister(instr->result()).is(x0));
@@ -3562,19 +3533,25 @@
   __ Bind(&done);
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  DCHECK(instr->IsMarkedAsCall());
+  DCHECK(ToDoubleRegister(instr->value()).is(d0));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  DCHECK(ToDoubleRegister(instr->result()).Is(d0));
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  DCHECK(instr->IsMarkedAsCall());
+  DCHECK(ToDoubleRegister(instr->value()).is(d0));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  DCHECK(ToDoubleRegister(instr->result()).Is(d0));
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
-  DoubleRegister input = ToDoubleRegister(instr->value());
-  DoubleRegister result = ToDoubleRegister(instr->result());
-  DoubleRegister double_temp1 = ToDoubleRegister(instr->double_temp1());
-  DoubleRegister double_temp2 = double_scratch();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-  Register temp3 = ToRegister(instr->temp3());
-
-  MathExpGenerator::EmitMathExp(masm(), input, result,
-                                double_temp1, double_temp2,
-                                temp1, temp2, temp3);
+  DCHECK(instr->IsMarkedAsCall());
+  DCHECK(ToDoubleRegister(instr->value()).is(d0));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  DCHECK(ToDoubleRegister(instr->result()).Is(d0));
 }
 
 
@@ -3743,8 +3720,7 @@
 void LCodeGen::DoMathLog(LMathLog* instr) {
   DCHECK(instr->IsMarkedAsCall());
   DCHECK(ToDoubleRegister(instr->value()).is(d0));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()),
-                   0, 1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   DCHECK(ToDoubleRegister(instr->result()).Is(d0));
 }
 
@@ -4995,13 +4971,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -5195,14 +5169,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ Mov(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -5477,8 +5449,7 @@
     DCHECK(ToRegister(instr->context()).is(cp));
     PushSafepointRegistersScope scope(this);
     __ Mov(x1, Operand(to_map));
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kLazyDeopt);
diff --git a/src/crankshaft/arm64/lithium-gap-resolver-arm64.h b/src/crankshaft/arm64/lithium-gap-resolver-arm64.h
index 4f5eb22..acac4e1 100644
--- a/src/crankshaft/arm64/lithium-gap-resolver-arm64.h
+++ b/src/crankshaft/arm64/lithium-gap-resolver-arm64.h
@@ -66,7 +66,8 @@
 
   // Registers used to solve cycles.
   const Register& SavedValueRegister() {
-    DCHECK(!masm_.ScratchRegister().IsAllocatable());
+    DCHECK(!RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+        masm_.ScratchRegister().code()));
     return masm_.ScratchRegister();
   }
   // The scratch register is used to break cycles and to store constant.
@@ -77,7 +78,8 @@
     // We use the Crankshaft floating-point scratch register to break a cycle
     // involving double values as the MacroAssembler will not need it for the
     // operations performed by the gap resolver.
-    DCHECK(!crankshaft_fp_scratch.IsAllocatable());
+    DCHECK(!RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+        crankshaft_fp_scratch.code()));
     return crankshaft_fp_scratch;
   }
 
diff --git a/src/crankshaft/hydrogen-instructions.cc b/src/crankshaft/hydrogen-instructions.cc
index 5e4ad37..6036d3f 100644
--- a/src/crankshaft/hydrogen-instructions.cc
+++ b/src/crankshaft/hydrogen-instructions.cc
@@ -5,6 +5,7 @@
 #include "src/crankshaft/hydrogen-instructions.h"
 
 #include "src/base/bits.h"
+#include "src/base/ieee754.h"
 #include "src/base/safe_math.h"
 #include "src/crankshaft/hydrogen-infer-representation.h"
 #include "src/double.h"
@@ -784,7 +785,6 @@
     case HValue::kCompareNumericAndBranch:
     case HValue::kCompareObjectEqAndBranch:
     case HValue::kConstant:
-    case HValue::kConstructDouble:
     case HValue::kContext:
     case HValue::kDebugBreak:
     case HValue::kDeclareGlobals:
@@ -1114,10 +1114,14 @@
       return "round";
     case kMathAbs:
       return "abs";
+    case kMathCos:
+      return "cos";
     case kMathLog:
       return "log";
     case kMathExp:
       return "exp";
+    case kMathSin:
+      return "sin";
     case kMathSqrt:
       return "sqrt";
     case kMathPowHalf:
@@ -1553,6 +1557,9 @@
     case IS_JS_ARRAY:
       *first = *last = JS_ARRAY_TYPE;
       return;
+    case IS_JS_FUNCTION:
+      *first = *last = JS_FUNCTION_TYPE;
+      return;
     case IS_JS_DATE:
       *first = *last = JS_DATE_TYPE;
       return;
@@ -1625,6 +1632,8 @@
   switch (check_) {
     case IS_JS_RECEIVER: return "object";
     case IS_JS_ARRAY: return "array";
+    case IS_JS_FUNCTION:
+      return "function";
     case IS_JS_DATE:
       return "date";
     case IS_STRING: return "string";
@@ -2412,9 +2421,9 @@
   if (handle->IsBoolean()) {
     res = handle->BooleanValue() ?
       new(zone) HConstant(1) : new(zone) HConstant(0);
-  } else if (handle->IsUndefined()) {
+  } else if (handle->IsUndefined(isolate)) {
     res = new (zone) HConstant(std::numeric_limits<double>::quiet_NaN());
-  } else if (handle->IsNull()) {
+  } else if (handle->IsNull(isolate)) {
     res = new(zone) HConstant(0);
   } else if (handle->IsString()) {
     res = new(zone) HConstant(String::ToNumber(Handle<String>::cast(handle)));
@@ -3395,6 +3404,9 @@
     }
     if (std::isinf(d)) {  // +Infinity and -Infinity.
       switch (op) {
+        case kMathCos:
+        case kMathSin:
+          return H_CONSTANT_DOUBLE(std::numeric_limits<double>::quiet_NaN());
         case kMathExp:
           return H_CONSTANT_DOUBLE((d > 0.0) ? d : 0.0);
         case kMathLog:
@@ -3416,11 +3428,14 @@
       }
     }
     switch (op) {
+      case kMathCos:
+        return H_CONSTANT_DOUBLE(base::ieee754::cos(d));
       case kMathExp:
-        lazily_initialize_fast_exp(isolate);
-        return H_CONSTANT_DOUBLE(fast_exp(d, isolate));
+        return H_CONSTANT_DOUBLE(base::ieee754::exp(d));
       case kMathLog:
-        return H_CONSTANT_DOUBLE(std::log(d));
+        return H_CONSTANT_DOUBLE(base::ieee754::log(d));
+      case kMathSin:
+        return H_CONSTANT_DOUBLE(base::ieee754::sin(d));
       case kMathSqrt:
         lazily_initialize_fast_sqrt(isolate);
         return H_CONSTANT_DOUBLE(fast_sqrt(d, isolate));
diff --git a/src/crankshaft/hydrogen-instructions.h b/src/crankshaft/hydrogen-instructions.h
index fdb1fd6..9a757c8 100644
--- a/src/crankshaft/hydrogen-instructions.h
+++ b/src/crankshaft/hydrogen-instructions.h
@@ -77,7 +77,6 @@
   V(CompareObjectEqAndBranch)                 \
   V(CompareMap)                               \
   V(Constant)                                 \
-  V(ConstructDouble)                          \
   V(Context)                                  \
   V(DebugBreak)                               \
   V(DeclareGlobals)                           \
@@ -1691,34 +1690,6 @@
 };
 
 
-class HConstructDouble final : public HTemplateInstruction<2> {
- public:
-  DECLARE_INSTRUCTION_FACTORY_P2(HConstructDouble, HValue*, HValue*);
-
-  Representation RequiredInputRepresentation(int index) override {
-    return Representation::Integer32();
-  }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble)
-
-  HValue* hi() { return OperandAt(0); }
-  HValue* lo() { return OperandAt(1); }
-
- protected:
-  bool DataEquals(HValue* other) override { return true; }
-
- private:
-  explicit HConstructDouble(HValue* hi, HValue* lo) {
-    set_representation(Representation::Double());
-    SetFlag(kUseGVN);
-    SetOperandAt(0, hi);
-    SetOperandAt(1, lo);
-  }
-
-  bool IsDeletable() const override { return true; }
-};
-
-
 enum RemovableSimulate {
   REMOVABLE_SIMULATE,
   FIXED_SIMULATE
@@ -2161,8 +2132,6 @@
     this->SetAllSideEffects();
   }
 
-  HType CalculateInferredType() final { return HType::Tagged(); }
-
   virtual int argument_count() const {
     return argument_count_;
   }
@@ -2240,8 +2209,6 @@
 
   DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor)
 
-  HType CalculateInferredType() final { return HType::Tagged(); }
-
   // Defines whether this instruction corresponds to a JS call at tail position.
   TailCallMode syntactic_tail_call_mode() const {
     return SyntacticTailCallModeField::decode(bit_field_);
@@ -2457,9 +2424,11 @@
       return Representation::Tagged();
     } else {
       switch (op_) {
+        case kMathCos:
         case kMathFloor:
         case kMathRound:
         case kMathFround:
+        case kMathSin:
         case kMathSqrt:
         case kMathPowHalf:
         case kMathLog:
@@ -2528,9 +2497,11 @@
         // is tagged, and not when it is an unboxed double or unboxed integer.
         SetChangesFlag(kNewSpacePromotion);
         break;
+      case kMathCos:
       case kMathFround:
       case kMathLog:
       case kMathExp:
+      case kMathSin:
       case kMathSqrt:
       case kMathPowHalf:
         set_representation(Representation::Double());
@@ -2790,6 +2761,7 @@
   enum Check {
     IS_JS_RECEIVER,
     IS_JS_ARRAY,
+    IS_JS_FUNCTION,
     IS_JS_DATE,
     IS_STRING,
     IS_INTERNALIZED_STRING,
@@ -2808,6 +2780,8 @@
     switch (check_) {
       case IS_JS_RECEIVER: return HType::JSReceiver();
       case IS_JS_ARRAY: return HType::JSArray();
+      case IS_JS_FUNCTION:
+        return HType::JSObject();
       case IS_JS_DATE: return HType::JSObject();
       case IS_STRING: return HType::String();
       case IS_INTERNALIZED_STRING: return HType::String();
@@ -3766,6 +3740,7 @@
       : HBinaryOperation(context, left, right, type) {
     SetFlag(kFlexibleRepresentation);
     SetFlag(kTruncatingToInt32);
+    SetFlag(kAllowUndefinedAsNaN);
     SetAllSideEffects();
   }
 
@@ -4374,6 +4349,11 @@
       SetChangesFlag(kNewSpacePromotion);
       ClearFlag(kAllowUndefinedAsNaN);
     }
+    if (!right()->type().IsTaggedNumber() &&
+        !right()->representation().IsDouble() &&
+        !right()->representation().IsSmiOrInteger32()) {
+      ClearFlag(kAllowUndefinedAsNaN);
+    }
   }
 
   Representation RepresentationFromInputs() override;
@@ -4872,26 +4852,20 @@
   HPhi* incoming_value_;
 };
 
-
-class HLoadGlobalGeneric final : public HTemplateInstruction<2> {
+class HLoadGlobalGeneric final : public HTemplateInstruction<1> {
  public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadGlobalGeneric, HValue*,
-                                              Handle<String>, TypeofMode);
+  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HLoadGlobalGeneric,
+                                              Handle<String>, TypeofMode,
+                                              Handle<TypeFeedbackVector>,
+                                              FeedbackVectorSlot);
 
   HValue* context() { return OperandAt(0); }
-  HValue* global_object() { return OperandAt(1); }
   Handle<String> name() const { return name_; }
   TypeofMode typeof_mode() const { return typeof_mode_; }
   FeedbackVectorSlot slot() const { return slot_; }
   Handle<TypeFeedbackVector> feedback_vector() const {
     return feedback_vector_;
   }
-  bool HasVectorAndSlot() const { return true; }
-  void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
-                        FeedbackVectorSlot slot) {
-    feedback_vector_ = vector;
-    slot_ = slot;
-  }
 
   std::ostream& PrintDataTo(std::ostream& os) const override;  // NOLINT
 
@@ -4902,11 +4876,14 @@
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric)
 
  private:
-  HLoadGlobalGeneric(HValue* context, HValue* global_object,
-                     Handle<String> name, TypeofMode typeof_mode)
-      : name_(name), typeof_mode_(typeof_mode) {
+  HLoadGlobalGeneric(HValue* context, Handle<String> name,
+                     TypeofMode typeof_mode, Handle<TypeFeedbackVector> vector,
+                     FeedbackVectorSlot slot)
+      : name_(name),
+        typeof_mode_(typeof_mode),
+        feedback_vector_(vector),
+        slot_(slot) {
     SetOperandAt(0, context);
-    SetOperandAt(1, global_object);
     set_representation(Representation::Tagged());
     SetAllSideEffects();
   }
@@ -5148,8 +5125,11 @@
     HAllocate* allocate = HAllocate::cast(object);
     if (allocate->IsAllocationFolded()) {
       HValue* dominator = allocate->allocation_folding_dominator();
-      DCHECK(HAllocate::cast(dominator)->IsAllocationFoldingDominator());
-      object = dominator;
+      // There is no guarantee that all allocations are folded together because
+      // GVN performs a fixpoint.
+      if (HAllocate::cast(dominator)->IsAllocationFoldingDominator()) {
+        object = dominator;
+      }
     }
   }
 
@@ -5566,6 +5546,19 @@
                          Handle<Name>::null(), false, false);
   }
 
+  static HObjectAccess ForBoundTargetFunction() {
+    return HObjectAccess(kInobject,
+                         JSBoundFunction::kBoundTargetFunctionOffset);
+  }
+
+  static HObjectAccess ForBoundThis() {
+    return HObjectAccess(kInobject, JSBoundFunction::kBoundThisOffset);
+  }
+
+  static HObjectAccess ForBoundArguments() {
+    return HObjectAccess(kInobject, JSBoundFunction::kBoundArgumentsOffset);
+  }
+
   // Create an access to an offset in a fixed array header.
   static HObjectAccess ForFixedArrayHeader(int offset);
 
@@ -5887,26 +5880,19 @@
 
 class HLoadNamedGeneric final : public HTemplateInstruction<2> {
  public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadNamedGeneric, HValue*,
-                                              Handle<Name>, InlineCacheState);
+  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HLoadNamedGeneric, HValue*,
+                                              Handle<Name>,
+                                              Handle<TypeFeedbackVector>,
+                                              FeedbackVectorSlot);
 
   HValue* context() const { return OperandAt(0); }
   HValue* object() const { return OperandAt(1); }
   Handle<Name> name() const { return name_; }
 
-  InlineCacheState initialization_state() const {
-    return initialization_state_;
-  }
   FeedbackVectorSlot slot() const { return slot_; }
   Handle<TypeFeedbackVector> feedback_vector() const {
     return feedback_vector_;
   }
-  bool HasVectorAndSlot() const { return true; }
-  void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
-                        FeedbackVectorSlot slot) {
-    feedback_vector_ = vector;
-    slot_ = slot;
-  }
 
   Representation RequiredInputRepresentation(int index) override {
     return Representation::Tagged();
@@ -5918,9 +5904,8 @@
 
  private:
   HLoadNamedGeneric(HValue* context, HValue* object, Handle<Name> name,
-                    InlineCacheState initialization_state)
-      : name_(name),
-        initialization_state_(initialization_state) {
+                    Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
+      : name_(name), feedback_vector_(vector), slot_(slot) {
     SetOperandAt(0, context);
     SetOperandAt(1, object);
     set_representation(Representation::Tagged());
@@ -5930,7 +5915,6 @@
   Handle<Name> name_;
   Handle<TypeFeedbackVector> feedback_vector_;
   FeedbackVectorSlot slot_;
-  InlineCacheState initialization_state_;
 };
 
 
@@ -6172,27 +6156,17 @@
 
 class HLoadKeyedGeneric final : public HTemplateInstruction<3> {
  public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P3(HLoadKeyedGeneric, HValue*,
-                                              HValue*, InlineCacheState);
+  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P4(HLoadKeyedGeneric, HValue*,
+                                              HValue*,
+                                              Handle<TypeFeedbackVector>,
+                                              FeedbackVectorSlot);
   HValue* object() const { return OperandAt(0); }
   HValue* key() const { return OperandAt(1); }
   HValue* context() const { return OperandAt(2); }
-  InlineCacheState initialization_state() const {
-    return initialization_state_;
-  }
   FeedbackVectorSlot slot() const { return slot_; }
   Handle<TypeFeedbackVector> feedback_vector() const {
     return feedback_vector_;
   }
-  bool HasVectorAndSlot() const {
-    DCHECK(initialization_state_ == MEGAMORPHIC || !feedback_vector_.is_null());
-    return !feedback_vector_.is_null();
-  }
-  void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
-                        FeedbackVectorSlot slot) {
-    feedback_vector_ = vector;
-    slot_ = slot;
-  }
 
   std::ostream& PrintDataTo(std::ostream& os) const override;  // NOLINT
 
@@ -6207,8 +6181,8 @@
 
  private:
   HLoadKeyedGeneric(HValue* context, HValue* obj, HValue* key,
-                    InlineCacheState initialization_state)
-      : initialization_state_(initialization_state) {
+                    Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
+      : feedback_vector_(vector), slot_(slot) {
     set_representation(Representation::Tagged());
     SetOperandAt(0, obj);
     SetOperandAt(1, key);
@@ -6218,7 +6192,6 @@
 
   Handle<TypeFeedbackVector> feedback_vector_;
   FeedbackVectorSlot slot_;
-  InlineCacheState initialization_state_;
 };
 
 
@@ -6380,20 +6353,18 @@
   uint32_t bit_field_;
 };
 
-
 class HStoreNamedGeneric final : public HTemplateInstruction<3> {
  public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P5(HStoreNamedGeneric, HValue*,
+  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P6(HStoreNamedGeneric, HValue*,
                                               Handle<Name>, HValue*,
-                                              LanguageMode, InlineCacheState);
+                                              LanguageMode,
+                                              Handle<TypeFeedbackVector>,
+                                              FeedbackVectorSlot);
   HValue* object() const { return OperandAt(0); }
   HValue* value() const { return OperandAt(1); }
   HValue* context() const { return OperandAt(2); }
   Handle<Name> name() const { return name_; }
   LanguageMode language_mode() const { return language_mode_; }
-  InlineCacheState initialization_state() const {
-    return initialization_state_;
-  }
 
   std::ostream& PrintDataTo(std::ostream& os) const override;  // NOLINT
 
@@ -6405,22 +6376,17 @@
   Handle<TypeFeedbackVector> feedback_vector() const {
     return feedback_vector_;
   }
-  bool HasVectorAndSlot() const { return true; }
-  void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
-                        FeedbackVectorSlot slot) {
-    feedback_vector_ = vector;
-    slot_ = slot;
-  }
 
   DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric)
 
  private:
   HStoreNamedGeneric(HValue* context, HValue* object, Handle<Name> name,
                      HValue* value, LanguageMode language_mode,
-                     InlineCacheState initialization_state)
+                     Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
       : name_(name),
-        language_mode_(language_mode),
-        initialization_state_(initialization_state) {
+        feedback_vector_(vector),
+        slot_(slot),
+        language_mode_(language_mode) {
     SetOperandAt(0, object);
     SetOperandAt(1, value);
     SetOperandAt(2, context);
@@ -6431,10 +6397,8 @@
   Handle<TypeFeedbackVector> feedback_vector_;
   FeedbackVectorSlot slot_;
   LanguageMode language_mode_;
-  InlineCacheState initialization_state_;
 };
 
-
 class HStoreKeyed final : public HTemplateInstruction<4>,
                           public ArrayInstructionInterface {
  public:
@@ -6617,21 +6581,18 @@
   HValue* dominator_;
 };
 
-
 class HStoreKeyedGeneric final : public HTemplateInstruction<4> {
  public:
-  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P5(HStoreKeyedGeneric, HValue*,
+  DECLARE_INSTRUCTION_WITH_CONTEXT_FACTORY_P6(HStoreKeyedGeneric, HValue*,
                                               HValue*, HValue*, LanguageMode,
-                                              InlineCacheState);
+                                              Handle<TypeFeedbackVector>,
+                                              FeedbackVectorSlot);
 
   HValue* object() const { return OperandAt(0); }
   HValue* key() const { return OperandAt(1); }
   HValue* value() const { return OperandAt(2); }
   HValue* context() const { return OperandAt(3); }
   LanguageMode language_mode() const { return language_mode_; }
-  InlineCacheState initialization_state() const {
-    return initialization_state_;
-  }
 
   Representation RequiredInputRepresentation(int index) override {
     // tagged[tagged] = tagged
@@ -6642,14 +6603,6 @@
   Handle<TypeFeedbackVector> feedback_vector() const {
     return feedback_vector_;
   }
-  bool HasVectorAndSlot() const {
-    return !feedback_vector_.is_null();
-  }
-  void SetVectorAndSlot(Handle<TypeFeedbackVector> vector,
-                        FeedbackVectorSlot slot) {
-    feedback_vector_ = vector;
-    slot_ = slot;
-  }
 
   std::ostream& PrintDataTo(std::ostream& os) const override;  // NOLINT
 
@@ -6658,9 +6611,8 @@
  private:
   HStoreKeyedGeneric(HValue* context, HValue* object, HValue* key,
                      HValue* value, LanguageMode language_mode,
-                     InlineCacheState initialization_state)
-      : language_mode_(language_mode),
-        initialization_state_(initialization_state) {
+                     Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
+      : feedback_vector_(vector), slot_(slot), language_mode_(language_mode) {
     SetOperandAt(0, object);
     SetOperandAt(1, key);
     SetOperandAt(2, value);
@@ -6671,10 +6623,8 @@
   Handle<TypeFeedbackVector> feedback_vector_;
   FeedbackVectorSlot slot_;
   LanguageMode language_mode_;
-  InlineCacheState initialization_state_;
 };
 
-
 class HTransitionElementsKind final : public HTemplateInstruction<2> {
  public:
   inline static HTransitionElementsKind* New(Isolate* isolate, Zone* zone,
diff --git a/src/crankshaft/hydrogen-types.cc b/src/crankshaft/hydrogen-types.cc
index 4266e28..20d50d8 100644
--- a/src/crankshaft/hydrogen-types.cc
+++ b/src/crankshaft/hydrogen-types.cc
@@ -34,23 +34,25 @@
 
 // static
 HType HType::FromValue(Handle<Object> value) {
-  if (value->IsSmi()) return HType::Smi();
-  if (value->IsNull()) return HType::Null();
-  if (value->IsHeapNumber()) {
+  Object* raw_value = *value;
+  if (raw_value->IsSmi()) return HType::Smi();
+  DCHECK(raw_value->IsHeapObject());
+  Isolate* isolate = HeapObject::cast(*value)->GetIsolate();
+  if (raw_value->IsNull(isolate)) return HType::Null();
+  if (raw_value->IsHeapNumber()) {
     double n = Handle<v8::internal::HeapNumber>::cast(value)->value();
     return IsSmiDouble(n) ? HType::Smi() : HType::HeapNumber();
   }
-  if (value->IsString()) return HType::String();
-  if (value->IsBoolean()) return HType::Boolean();
-  if (value->IsUndefined()) return HType::Undefined();
-  if (value->IsJSArray()) {
-    DCHECK(!value->IsUndetectable());
+  if (raw_value->IsString()) return HType::String();
+  if (raw_value->IsBoolean()) return HType::Boolean();
+  if (raw_value->IsUndefined(isolate)) return HType::Undefined();
+  if (raw_value->IsJSArray()) {
+    DCHECK(!raw_value->IsUndetectable());
     return HType::JSArray();
   }
-  if (value->IsJSObject() && !value->IsUndetectable()) {
+  if (raw_value->IsJSObject() && !raw_value->IsUndetectable()) {
     return HType::JSObject();
   }
-  DCHECK(value->IsHeapObject());
   return HType::HeapObject();
 }
 
diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc
index 9c5fa15..1a6f863 100644
--- a/src/crankshaft/hydrogen.cc
+++ b/src/crankshaft/hydrogen.cc
@@ -68,6 +68,8 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
+
 class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder {
  public:
   explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info)
@@ -1375,10 +1377,11 @@
 
   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 (!shared->script()->IsUndefined(isolate())) {
+    Handle<Script> script(Script::cast(shared->script()), isolate());
 
-    if (FLAG_hydrogen_track_positions && !script->source()->IsUndefined()) {
+    if (FLAG_hydrogen_track_positions &&
+        !script->source()->IsUndefined(isolate())) {
       CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer());
       Object* source_name = script->name();
       OFStream os(tracing_scope.file());
@@ -5669,10 +5672,10 @@
   // We also have a stack overflow if the recursive compilation did.
   if (HasStackOverflow()) return;
   // Use the fast case closure allocation code that allocates in new
-  // space for nested functions that don't need literals cloning.
+  // space for nested functions that don't need pretenuring.
   HConstant* shared_info_value = Add<HConstant>(shared_info);
   HInstruction* instr;
-  if (!expr->pretenure() && shared_info->num_literals() == 0) {
+  if (!expr->pretenure()) {
     FastNewClosureStub stub(isolate(), shared_info->language_mode(),
                             shared_info->kind());
     FastNewClosureDescriptor descriptor(isolate());
@@ -5832,7 +5835,7 @@
 
           // If the values is not the hole, it will stay initialized,
           // so no need to generate a check.
-          if (*current_value == *isolate()->factory()->the_hole_value()) {
+          if (current_value->IsTheHole(isolate())) {
             return Bailout(kReferenceToUninitializedVariable);
           }
           HInstruction* result = New<HLoadNamedField>(
@@ -5895,13 +5898,10 @@
           return ast_context()->ReturnInstruction(instr, expr->id());
         }
       } else {
-        HValue* global_object = Add<HLoadNamedField>(
-            BuildGetNativeContext(), nullptr,
-            HObjectAccess::ForContextSlot(Context::EXTENSION_INDEX));
+        Handle<TypeFeedbackVector> vector(current_feedback_vector(), isolate());
         HLoadGlobalGeneric* instr = New<HLoadGlobalGeneric>(
-            global_object, variable->name(), ast_context()->typeof_mode());
-        instr->SetVectorAndSlot(handle(current_feedback_vector(), isolate()),
-                                expr->VariableFeedbackSlot());
+            variable->name(), ast_context()->typeof_mode(), vector,
+            expr->VariableFeedbackSlot());
         return ast_context()->ReturnInstruction(instr, expr->id());
       }
     }
@@ -6055,7 +6055,7 @@
       closure->literals()->literal(expr->literal_index()), isolate());
   Handle<AllocationSite> site;
   Handle<JSObject> boilerplate;
-  if (!literals_cell->IsUndefined()) {
+  if (!literals_cell->IsUndefined(isolate())) {
     // Retrieve the boilerplate
     site = Handle<AllocationSite>::cast(literals_cell);
     boilerplate = Handle<JSObject>(JSObject::cast(site->transition_info()),
@@ -6173,7 +6173,7 @@
   Handle<Object> literals_cell(literals->literal(expr->literal_index()),
                                isolate());
   Handle<JSObject> boilerplate_object;
-  if (!literals_cell->IsUndefined()) {
+  if (!literals_cell->IsUndefined(isolate())) {
     DCHECK(literals_cell->IsAllocationSite());
     site = Handle<AllocationSite>::cast(literals_cell);
     boilerplate_object = Handle<JSObject>(
@@ -6562,7 +6562,6 @@
 bool HOptimizedGraphBuilder::PropertyAccessInfo::CanAccessMonomorphic() {
   if (!CanInlinePropertyAccess(map_)) return false;
   if (IsJSObjectFieldAccessor()) return IsLoad();
-  if (IsJSArrayBufferViewFieldAccessor()) return IsLoad();
   if (map_->IsJSFunctionMap() && map_->is_constructor() &&
       !map_->has_non_instance_prototype() &&
       name_.is_identical_to(isolate()->factory()->prototype_string())) {
@@ -6610,17 +6609,6 @@
     }
     return true;
   }
-  if (GetJSArrayBufferViewFieldAccess(&access)) {
-    for (int i = 1; i < maps->length(); ++i) {
-      PropertyAccessInfo test_info(builder_, access_type_, maps->at(i), name_);
-      HObjectAccess test_access = HObjectAccess::ForMap();  // bogus default
-      if (!test_info.GetJSArrayBufferViewFieldAccess(&test_access)) {
-        return false;
-      }
-      if (!access.Equals(test_access)) return false;
-    }
-    return true;
-  }
 
   // Currently only handle numbers as a polymorphic case.
   // TODO(verwaest): Support monomorphic handling of numbers with a HCheckNumber
@@ -6674,12 +6662,6 @@
     return New<HLoadNamedField>(object, checked_object, access);
   }
 
-  if (info->GetJSArrayBufferViewFieldAccess(&access)) {
-    DCHECK(info->IsLoad());
-    checked_object = Add<HCheckArrayBufferNotNeutered>(checked_object);
-    return New<HLoadNamedField>(object, checked_object, access);
-  }
-
   if (info->name().is_identical_to(isolate()->factory()->prototype_string()) &&
       info->map()->IsJSFunctionMap() && info->map()->is_constructor()) {
     DCHECK(!info->map()->has_non_instance_prototype());
@@ -7032,7 +7014,7 @@
 
       // If the values is not the hole, it will stay initialized,
       // so no need to generate a check.
-      if (*current_value == *isolate()->factory()->the_hole_value()) {
+      if (current_value->IsTheHole(isolate())) {
         return Bailout(kReferenceToUninitializedVariable);
       }
 
@@ -7104,12 +7086,11 @@
     HValue* global_object = Add<HLoadNamedField>(
         BuildGetNativeContext(), nullptr,
         HObjectAccess::ForContextSlot(Context::EXTENSION_INDEX));
-    HStoreNamedGeneric* instr =
-        Add<HStoreNamedGeneric>(global_object, var->name(), value,
-                                function_language_mode(), PREMONOMORPHIC);
     Handle<TypeFeedbackVector> vector =
         handle(current_feedback_vector(), isolate());
-    instr->SetVectorAndSlot(vector, slot);
+    HStoreNamedGeneric* instr =
+        Add<HStoreNamedGeneric>(global_object, var->name(), value,
+                                function_language_mode(), vector, slot);
     USE(instr);
     DCHECK(instr->HasObservableSideEffects());
     Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
@@ -7435,16 +7416,17 @@
       // it has to share information with full code.
       HConstant* key = Add<HConstant>(name);
       HLoadKeyedGeneric* result =
-          New<HLoadKeyedGeneric>(object, key, PREMONOMORPHIC);
-      result->SetVectorAndSlot(vector, slot);
+          New<HLoadKeyedGeneric>(object, key, vector, slot);
       return result;
     }
 
     HLoadNamedGeneric* result =
-        New<HLoadNamedGeneric>(object, name, PREMONOMORPHIC);
-    result->SetVectorAndSlot(vector, slot);
+        New<HLoadNamedGeneric>(object, name, vector, slot);
     return result;
   } else {
+    Handle<TypeFeedbackVector> vector =
+        handle(current_feedback_vector(), isolate());
+
     if (current_feedback_vector()->GetKind(slot) ==
         FeedbackVectorSlotKind::KEYED_STORE_IC) {
       // It's possible that a keyed store of a constant string was converted
@@ -7453,18 +7435,12 @@
       // it has to share information with full code.
       HConstant* key = Add<HConstant>(name);
       HStoreKeyedGeneric* result = New<HStoreKeyedGeneric>(
-          object, key, value, function_language_mode(), PREMONOMORPHIC);
-      Handle<TypeFeedbackVector> vector =
-          handle(current_feedback_vector(), isolate());
-      result->SetVectorAndSlot(vector, slot);
+          object, key, value, function_language_mode(), vector, slot);
       return result;
     }
 
     HStoreNamedGeneric* result = New<HStoreNamedGeneric>(
-        object, name, value, function_language_mode(), PREMONOMORPHIC);
-    Handle<TypeFeedbackVector> vector =
-        handle(current_feedback_vector(), isolate());
-    result->SetVectorAndSlot(vector, slot);
+        object, name, value, function_language_mode(), vector, slot);
     return result;
   }
 }
@@ -7473,25 +7449,15 @@
 HInstruction* HOptimizedGraphBuilder::BuildKeyedGeneric(
     PropertyAccessType access_type, Expression* expr, FeedbackVectorSlot slot,
     HValue* object, HValue* key, HValue* value) {
+  Handle<TypeFeedbackVector> vector =
+      handle(current_feedback_vector(), isolate());
   if (access_type == LOAD) {
-    InlineCacheState initial_state = expr->AsProperty()->GetInlineCacheState();
     HLoadKeyedGeneric* result =
-        New<HLoadKeyedGeneric>(object, key, initial_state);
-    // HLoadKeyedGeneric with vector ics benefits from being encoded as
-    // MEGAMORPHIC because the vector/slot combo becomes unnecessary.
-    if (initial_state != MEGAMORPHIC) {
-      // We need to pass vector information.
-      Handle<TypeFeedbackVector> vector =
-          handle(current_feedback_vector(), isolate());
-      result->SetVectorAndSlot(vector, slot);
-    }
+        New<HLoadKeyedGeneric>(object, key, vector, slot);
     return result;
   } else {
     HStoreKeyedGeneric* result = New<HStoreKeyedGeneric>(
-        object, key, value, function_language_mode(), PREMONOMORPHIC);
-    Handle<TypeFeedbackVector> vector =
-        handle(current_feedback_vector(), isolate());
-    result->SetVectorAndSlot(vector, slot);
+        object, key, value, function_language_mode(), vector, slot);
     return result;
   }
 }
@@ -7972,6 +7938,11 @@
       return false;
     }
 
+    // Make sure we visit the arguments object so that the liveness analysis
+    // still records the access.
+    CHECK_ALIVE_OR_RETURN(VisitForValue(expr->obj(), ARGUMENTS_ALLOWED), true);
+    Drop(1);
+
     if (function_state()->outer() == NULL) {
       HInstruction* elements = Add<HArgumentsElements>(false);
       result = New<HArgumentsLength>(elements);
@@ -8125,8 +8096,7 @@
 
 HInstruction* HGraphBuilder::BuildCheckPrototypeMaps(Handle<JSObject> prototype,
                                                      Handle<JSObject> holder) {
-  PrototypeIterator iter(isolate(), prototype,
-                         PrototypeIterator::START_AT_RECEIVER);
+  PrototypeIterator iter(isolate(), prototype, kStartAtReceiver);
   while (holder.is_null() ||
          !PrototypeIterator::GetCurrent(iter).is_identical_to(holder)) {
     BuildConstantMapCheck(PrototypeIterator::GetCurrent<JSObject>(iter));
@@ -8650,6 +8620,7 @@
     TraceInline(target, caller, "could not generate deoptimization info");
     return false;
   }
+
   // Remember that we inlined this function. This needs to be called right
   // after the EnsureDeoptimizationSupport call so that the code flusher
   // does not remove the code with the deoptimization support.
@@ -8659,6 +8630,9 @@
   // After this point, we've made a decision to inline this function (so
   // TryInline should always return true).
 
+  // If target was lazily compiled, it's literals array may not yet be set up.
+  JSFunction::EnsureLiterals(target);
+
   // Type-check the inlined function.
   DCHECK(target_shared->has_deoptimization_support());
   AstTyper(target_info.isolate(), target_info.zone(), target_info.closure(),
@@ -8844,9 +8818,13 @@
                                              BailoutId ast_id,
                                              BailoutId return_id) {
   if (TryInlineApiGetter(getter, receiver_map, ast_id)) return true;
-  return getter->IsJSFunction() &&
-         TryInline(Handle<JSFunction>::cast(getter), 0, NULL, ast_id, return_id,
-                   GETTER_CALL_RETURN, TailCallMode::kDisallow);
+  if (getter->IsJSFunction()) {
+    Handle<JSFunction> getter_function = Handle<JSFunction>::cast(getter);
+    return TryInlineBuiltinGetterCall(getter_function, receiver_map, ast_id) ||
+           TryInline(getter_function, 0, NULL, ast_id, return_id,
+                     GETTER_CALL_RETURN, TailCallMode::kDisallow);
+  }
+  return false;
 }
 
 bool HOptimizedGraphBuilder::TryInlineSetter(Handle<Object> setter,
@@ -8876,13 +8854,13 @@
   // We intentionally ignore expr->tail_call_mode() here because builtins
   // we inline here do not observe if they were tail called or not.
   switch (id) {
+    case kMathCos:
     case kMathExp:
-      if (!FLAG_fast_math) break;
-      // Fall through if FLAG_fast_math.
     case kMathRound:
     case kMathFround:
     case kMathFloor:
     case kMathAbs:
+    case kMathSin:
     case kMathSqrt:
     case kMathLog:
     case kMathClz32:
@@ -8938,9 +8916,62 @@
          !IsReadOnlyLengthDescriptor(receiver_map);
 }
 
+bool HOptimizedGraphBuilder::TryInlineBuiltinGetterCall(
+    Handle<JSFunction> function, Handle<Map> receiver_map, BailoutId ast_id) {
+  if (!function->shared()->HasBuiltinFunctionId()) return false;
+  BuiltinFunctionId id = function->shared()->builtin_function_id();
+
+  // Try to inline getter calls like DataView.prototype.byteLength/byteOffset
+  // as operations in the calling function.
+  switch (id) {
+    case kDataViewBuffer: {
+      if (!receiver_map->IsJSDataViewMap()) return false;
+      HObjectAccess access = HObjectAccess::ForMapAndOffset(
+          receiver_map, JSDataView::kBufferOffset);
+      HValue* object = Pop();  // receiver
+      HInstruction* result = New<HLoadNamedField>(object, object, access);
+      ast_context()->ReturnInstruction(result, ast_id);
+      return true;
+    }
+    case kDataViewByteLength:
+    case kDataViewByteOffset: {
+      if (!receiver_map->IsJSDataViewMap()) return false;
+      int offset = (id == kDataViewByteLength) ? JSDataView::kByteLengthOffset
+                                               : JSDataView::kByteOffsetOffset;
+      HObjectAccess access =
+          HObjectAccess::ForMapAndOffset(receiver_map, offset);
+      HValue* object = Pop();  // receiver
+      HValue* checked_object = Add<HCheckArrayBufferNotNeutered>(object);
+      HInstruction* result =
+          New<HLoadNamedField>(object, checked_object, access);
+      ast_context()->ReturnInstruction(result, ast_id);
+      return true;
+    }
+    case kTypedArrayByteLength:
+    case kTypedArrayByteOffset:
+    case kTypedArrayLength: {
+      if (!receiver_map->IsJSTypedArrayMap()) return false;
+      int offset = (id == kTypedArrayLength)
+                       ? JSTypedArray::kLengthOffset
+                       : (id == kTypedArrayByteLength)
+                             ? JSTypedArray::kByteLengthOffset
+                             : JSTypedArray::kByteOffsetOffset;
+      HObjectAccess access =
+          HObjectAccess::ForMapAndOffset(receiver_map, offset);
+      HValue* object = Pop();  // receiver
+      HValue* checked_object = Add<HCheckArrayBufferNotNeutered>(object);
+      HInstruction* result =
+          New<HLoadNamedField>(object, checked_object, access);
+      ast_context()->ReturnInstruction(result, ast_id);
+      return true;
+    }
+    default:
+      return false;
+  }
+}
 
 bool HOptimizedGraphBuilder::TryInlineBuiltinMethodCall(
-    Call* expr, Handle<JSFunction> function, Handle<Map> receiver_map,
+    Handle<JSFunction> function, Handle<Map> receiver_map, BailoutId ast_id,
     int args_count_no_receiver) {
   if (!function->shared()->HasBuiltinFunctionId()) return false;
   BuiltinFunctionId id = function->shared()->builtin_function_id();
@@ -8985,12 +9016,12 @@
         HInstruction* char_code =
             BuildStringCharCodeAt(string, index);
         if (id == kStringCharCodeAt) {
-          ast_context()->ReturnInstruction(char_code, expr->id());
+          ast_context()->ReturnInstruction(char_code, ast_id);
           return true;
         }
         AddInstruction(char_code);
         HInstruction* result = NewUncasted<HStringCharFromCode>(char_code);
-        ast_context()->ReturnInstruction(result, expr->id());
+        ast_context()->ReturnInstruction(result, ast_id);
         return true;
       }
       break;
@@ -9002,17 +9033,17 @@
             argument, Representation::Integer32());
         argument->SetFlag(HValue::kTruncatingToInt32);
         HInstruction* result = NewUncasted<HStringCharFromCode>(argument);
-        ast_context()->ReturnInstruction(result, expr->id());
+        ast_context()->ReturnInstruction(result, ast_id);
         return true;
       }
       break;
+    case kMathCos:
     case kMathExp:
-      if (!FLAG_fast_math) break;
-      // Fall through if FLAG_fast_math.
     case kMathRound:
     case kMathFround:
     case kMathFloor:
     case kMathAbs:
+    case kMathSin:
     case kMathSqrt:
     case kMathLog:
     case kMathClz32:
@@ -9020,7 +9051,7 @@
         HValue* argument = Pop();
         Drop(2);  // Receiver and function.
         HInstruction* op = NewUncasted<HUnaryMathOperation>(argument, id);
-        ast_context()->ReturnInstruction(op, expr->id());
+        ast_context()->ReturnInstruction(op, ast_id);
         return true;
       }
       break;
@@ -9051,7 +9082,7 @@
         if (result == NULL) {
           result = NewUncasted<HPower>(left, right);
         }
-        ast_context()->ReturnInstruction(result, expr->id());
+        ast_context()->ReturnInstruction(result, ast_id);
         return true;
       }
       break;
@@ -9064,7 +9095,7 @@
         HMathMinMax::Operation op = (id == kMathMin) ? HMathMinMax::kMathMin
                                                      : HMathMinMax::kMathMax;
         HInstruction* result = NewUncasted<HMathMinMax>(left, right, op);
-        ast_context()->ReturnInstruction(result, expr->id());
+        ast_context()->ReturnInstruction(result, ast_id);
         return true;
       }
       break;
@@ -9075,7 +9106,7 @@
         Drop(2);  // Receiver and function.
         HInstruction* result =
             HMul::NewImul(isolate(), zone(), context(), left, right);
-        ast_context()->ReturnInstruction(result, expr->id());
+        ast_context()->ReturnInstruction(result, ast_id);
         return true;
       }
       break;
@@ -9131,7 +9162,7 @@
         length_checker.End();
       }
       result = ast_context()->IsEffect() ? graph()->GetConstant0() : Top();
-      Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE);
+      Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
       if (!ast_context()->IsEffect()) Drop(1);
 
       ast_context()->ReturnValue(result);
@@ -9184,7 +9215,7 @@
             STORE, NEVER_RETURN_HOLE, STORE_AND_GROW_NO_TRANSITION);
 
         if (!ast_context()->IsEffect()) Push(new_size);
-        Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE);
+        Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
         if (!ast_context()->IsEffect()) Drop(1);
       }
 
@@ -9298,7 +9329,7 @@
         if_lengthiszero.End();
       }
       result = ast_context()->IsEffect() ? graph()->GetConstant0() : Top();
-      Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE);
+      Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
       if (!ast_context()->IsEffect()) Drop(1);
       ast_context()->ReturnValue(result);
       return true;
@@ -9335,7 +9366,7 @@
       HValue* index = BuildArrayIndexOf(receiver, search_element, kind, mode);
 
       if (!ast_context()->IsEffect()) Push(index);
-      Add<HSimulate>(expr->id(), REMOVABLE_SIMULATE);
+      Add<HSimulate>(ast_id, REMOVABLE_SIMULATE);
       if (!ast_context()->IsEffect()) Drop(1);
       ast_context()->ReturnValue(index);
       return true;
@@ -9486,7 +9517,7 @@
   }
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   Handle<Object> call_data_obj(api_call_info->data(), isolate());
-  bool call_data_undefined = call_data_obj->IsUndefined();
+  bool call_data_undefined = call_data_obj->IsUndefined(isolate());
   HValue* call_data = Add<HConstant>(call_data_obj);
   ApiFunction fun(v8::ToCData<Address>(api_call_info->callback()));
   ExternalReference ref = ExternalReference(&fun,
@@ -9532,7 +9563,7 @@
       HConstant::cast(function)->handle(isolate())->IsJSFunction()) {
     known_function =
         Handle<JSFunction>::cast(HConstant::cast(function)->handle(isolate()));
-    if (TryInlineBuiltinMethodCall(expr, known_function, Handle<Map>(),
+    if (TryInlineBuiltinMethodCall(known_function, Handle<Map>(), expr->id(),
                                    args_count_no_receiver)) {
       if (FLAG_trace_inlining) {
         PrintF("Inlining builtin ");
@@ -9933,7 +9964,7 @@
       CHECK_ALIVE(VisitExpressions(expr->arguments()));
 
       Handle<Map> map = maps->length() == 1 ? maps->first() : Handle<Map>();
-      if (TryInlineBuiltinMethodCall(expr, known_function, map,
+      if (TryInlineBuiltinMethodCall(known_function, map, expr->id(),
                                      expr->arguments()->length())) {
         if (FLAG_trace_inlining) {
           PrintF("Inlining builtin ");
@@ -11627,18 +11658,22 @@
   return ast_context()->ReturnControl(instr, expr->id());
 }
 
+namespace {
 
-static bool IsLiteralCompareBool(Isolate* isolate,
-                                 HValue* left,
-                                 Token::Value op,
-                                 HValue* right) {
+bool IsLiteralCompareStrict(Isolate* isolate, HValue* left, Token::Value op,
+                            HValue* right) {
   return op == Token::EQ_STRICT &&
-      ((left->IsConstant() &&
-          HConstant::cast(left)->handle(isolate)->IsBoolean()) ||
-       (right->IsConstant() &&
-           HConstant::cast(right)->handle(isolate)->IsBoolean()));
+         ((left->IsConstant() &&
+           !HConstant::cast(left)->handle(isolate)->IsNumber() &&
+           !HConstant::cast(left)->handle(isolate)->IsSimd128Value() &&
+           !HConstant::cast(left)->handle(isolate)->IsString()) ||
+          (right->IsConstant() &&
+           !HConstant::cast(right)->handle(isolate)->IsNumber() &&
+           !HConstant::cast(right)->handle(isolate)->IsSimd128Value() &&
+           !HConstant::cast(right)->handle(isolate)->IsString()));
 }
 
+}  // namespace
 
 void HOptimizedGraphBuilder::VisitCompareOperation(CompareOperation* expr) {
   DCHECK(!HasStackOverflow());
@@ -11684,7 +11719,7 @@
   HValue* left = Pop();
   Token::Value op = expr->op();
 
-  if (IsLiteralCompareBool(isolate(), left, op, right)) {
+  if (IsLiteralCompareStrict(isolate(), left, op, right)) {
     HCompareObjectEqAndBranch* result =
         New<HCompareObjectEqAndBranch>(left, right);
     return ast_context()->ReturnControl(result, expr->id());
@@ -12169,9 +12204,9 @@
             double_box, HObjectAccess::ForHeapNumberValue(), double_value);
         value_instruction = double_box;
       } else if (representation.IsSmi()) {
-        value_instruction = value->IsUninitialized()
-            ? graph()->GetConstant0()
-            : Add<HConstant>(value);
+        value_instruction = value->IsUninitialized(isolate())
+                                ? graph()->GetConstant0()
+                                : Add<HConstant>(value);
         // Ensure that value is stored as smi.
         access = access.WithRepresentation(representation);
       } else {
@@ -12635,38 +12670,6 @@
 }
 
 
-void HOptimizedGraphBuilder::GenerateOneByteSeqStringSetChar(
-    CallRuntime* call) {
-  DCHECK(call->arguments()->length() == 3);
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(2)));
-  HValue* string = Pop();
-  HValue* value = Pop();
-  HValue* index = Pop();
-  Add<HSeqStringSetChar>(String::ONE_BYTE_ENCODING, string,
-                         index, value);
-  Add<HSimulate>(call->id(), FIXED_SIMULATE);
-  return ast_context()->ReturnValue(graph()->GetConstantUndefined());
-}
-
-
-void HOptimizedGraphBuilder::GenerateTwoByteSeqStringSetChar(
-    CallRuntime* call) {
-  DCHECK(call->arguments()->length() == 3);
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(2)));
-  HValue* string = Pop();
-  HValue* value = Pop();
-  HValue* index = Pop();
-  Add<HSeqStringSetChar>(String::TWO_BYTE_ENCODING, string,
-                         index, value);
-  Add<HSimulate>(call->id(), FIXED_SIMULATE);
-  return ast_context()->ReturnValue(graph()->GetConstantUndefined());
-}
-
-
 // Fast support for charCodeAt(n).
 void HOptimizedGraphBuilder::GenerateStringCharCodeAt(CallRuntime* call) {
   DCHECK(call->arguments()->length() == 2);
@@ -12689,20 +12692,6 @@
 }
 
 
-// Fast support for string.charAt(n) and string[n].
-void HOptimizedGraphBuilder::GenerateStringCharAt(CallRuntime* call) {
-  DCHECK(call->arguments()->length() == 2);
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
-  HValue* index = Pop();
-  HValue* string = Pop();
-  HInstruction* char_code = BuildStringCharCodeAt(string, index);
-  AddInstruction(char_code);
-  HInstruction* result = NewUncasted<HStringCharFromCode>(char_code);
-  return ast_context()->ReturnInstruction(result, call->id());
-}
-
-
 // Fast support for SubString.
 void HOptimizedGraphBuilder::GenerateSubString(CallRuntime* call) {
   DCHECK_EQ(3, call->arguments()->length());
@@ -12784,17 +12773,6 @@
 }
 
 
-void HOptimizedGraphBuilder::GenerateConstructDouble(CallRuntime* call) {
-  DCHECK_EQ(2, call->arguments()->length());
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(1)));
-  HValue* lo = Pop();
-  HValue* hi = Pop();
-  HInstruction* result = NewUncasted<HConstructDouble>(hi, lo);
-  return ast_context()->ReturnInstruction(result, call->id());
-}
-
-
 // Construct a RegExp exec result with two in-object properties.
 void HOptimizedGraphBuilder::GenerateRegExpConstructResult(CallRuntime* call) {
   DCHECK_EQ(3, call->arguments()->length());
@@ -12848,15 +12826,6 @@
 }
 
 
-void HOptimizedGraphBuilder::GenerateMathLogRT(CallRuntime* call) {
-  DCHECK(call->arguments()->length() == 1);
-  CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
-  HValue* value = Pop();
-  HInstruction* result = NewUncasted<HUnaryMathOperation>(value, kMathLog);
-  return ast_context()->ReturnInstruction(result, call->id());
-}
-
-
 void HOptimizedGraphBuilder::GenerateFixedArrayGet(CallRuntime* call) {
   DCHECK(call->arguments()->length() == 2);
   CHECK_ALIVE(VisitForValue(call->arguments()->at(0)));
@@ -13385,12 +13354,14 @@
 void HTracer::TraceCompilation(CompilationInfo* info) {
   Tag tag(this, "compilation");
   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(":");
+  if (info->parse_info()) {
+    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();
@@ -13583,10 +13554,11 @@
       int assigned_reg = op->index();
       if (op->IsDoubleRegister()) {
         trace_.Add(" \"%s\"",
-                   DoubleRegister::from_code(assigned_reg).ToString());
+                   GetRegConfig()->GetDoubleRegisterName(assigned_reg));
       } else {
         DCHECK(op->IsRegister());
-        trace_.Add(" \"%s\"", Register::from_code(assigned_reg).ToString());
+        trace_.Add(" \"%s\"",
+                   GetRegConfig()->GetGeneralRegisterName(assigned_reg));
       }
     } else if (range->IsSpilled()) {
       LOperand* op = range->TopLevel()->GetSpillOperand();
diff --git a/src/crankshaft/hydrogen.h b/src/crankshaft/hydrogen.h
index 3811773..d0f757b 100644
--- a/src/crankshaft/hydrogen.h
+++ b/src/crankshaft/hydrogen.h
@@ -1333,7 +1333,7 @@
             class P7, class P8, class P9>
   HInstruction* AddUncasted(P1 p1, P2 p2, P3 p3, P4 p4, P5 p5, P6 p6, P7 p7,
                             P8 p8, P9 p9) {
-    return AddInstruction(NewUncasted<I>(p1, p2, p3, p4, p5, p6, p7, p8, p8));
+    return AddInstruction(NewUncasted<I>(p1, p2, p3, p4, p5, p6, p7, p8, p9));
   }
 
   template <class I, class P1, class P2, class P3, class P4, class P5, class P6,
@@ -2241,11 +2241,14 @@
   TestContext* inlined_test_context() const {
     return function_state()->test_context();
   }
+  Handle<JSFunction> current_closure() const {
+    return current_info()->closure();
+  }
   Handle<SharedFunctionInfo> current_shared_info() const {
     return current_info()->shared_info();
   }
   TypeFeedbackVector* current_feedback_vector() const {
-    return current_shared_info()->feedback_vector();
+    return current_closure()->feedback_vector();
   }
   void ClearInlinedTestContext() {
     function_state()->ClearInlinedTestContext();
@@ -2264,9 +2267,6 @@
   F(NewObject)                         \
   F(ValueOf)                           \
   F(StringCharFromCode)                \
-  F(StringCharAt)                      \
-  F(OneByteSeqStringSetChar)           \
-  F(TwoByteSeqStringSetChar)           \
   F(ToInteger)                         \
   F(ToName)                            \
   F(ToObject)                          \
@@ -2296,10 +2296,8 @@
   /* ArrayBuffer */                    \
   F(ArrayBufferGetByteLength)          \
   /* Maths */                          \
-  F(ConstructDouble)                   \
   F(DoubleHi)                          \
   F(DoubleLo)                          \
-  F(MathLogRT)                         \
   /* ES6 Collections */                \
   F(MapClear)                          \
   F(MapInitialize)                     \
@@ -2362,21 +2360,19 @@
   void Bind(Variable* var, HValue* value) { environment()->Bind(var, value); }
   bool IsEligibleForEnvironmentLivenessAnalysis(Variable* var,
                                                 int index,
-                                                HValue* value,
                                                 HEnvironment* env) {
     if (!FLAG_analyze_environment_liveness) return false;
     // |this| and |arguments| are always live; zapping parameters isn't
     // safe because function.arguments can inspect them at any time.
     return !var->is_this() &&
            !var->is_arguments() &&
-           !value->IsArgumentsObject() &&
            env->is_local_index(index);
   }
   void BindIfLive(Variable* var, HValue* value) {
     HEnvironment* env = environment();
     int index = env->IndexFor(var);
     env->Bind(index, value);
-    if (IsEligibleForEnvironmentLivenessAnalysis(var, index, value, env)) {
+    if (IsEligibleForEnvironmentLivenessAnalysis(var, index, env)) {
       HEnvironmentMarker* bind =
           Add<HEnvironmentMarker>(HEnvironmentMarker::BIND, index);
       USE(bind);
@@ -2388,8 +2384,7 @@
   HValue* LookupAndMakeLive(Variable* var) {
     HEnvironment* env = environment();
     int index = env->IndexFor(var);
-    HValue* value = env->Lookup(index);
-    if (IsEligibleForEnvironmentLivenessAnalysis(var, index, value, env)) {
+    if (IsEligibleForEnvironmentLivenessAnalysis(var, index, env)) {
       HEnvironmentMarker* lookup =
           Add<HEnvironmentMarker>(HEnvironmentMarker::LOOKUP, index);
       USE(lookup);
@@ -2397,7 +2392,7 @@
       lookup->set_closure(env->closure());
 #endif
     }
-    return value;
+    return env->Lookup(index);
   }
 
   // The value of the arguments object is allowed in some but not most value
@@ -2477,8 +2472,10 @@
                        HValue* implicit_return_value);
   bool TryInlineIndirectCall(Handle<JSFunction> function, Call* expr,
                              int arguments_count);
-  bool TryInlineBuiltinMethodCall(Call* expr, Handle<JSFunction> function,
-                                  Handle<Map> receiver_map,
+  bool TryInlineBuiltinGetterCall(Handle<JSFunction> function,
+                                  Handle<Map> receiver_map, BailoutId ast_id);
+  bool TryInlineBuiltinMethodCall(Handle<JSFunction> function,
+                                  Handle<Map> receiver_map, BailoutId ast_id,
                                   int args_count_no_receiver);
   bool TryInlineBuiltinFunctionCall(Call* expr);
   enum ApiCallType {
@@ -2622,20 +2619,6 @@
       return false;
     }
 
-    bool IsJSArrayBufferViewFieldAccessor() {
-      int offset;  // unused
-      return Accessors::IsJSArrayBufferViewFieldAccessor(map_, name_, &offset);
-    }
-
-    bool GetJSArrayBufferViewFieldAccess(HObjectAccess* access) {
-      int offset;
-      if (Accessors::IsJSArrayBufferViewFieldAccessor(map_, name_, &offset)) {
-        *access = HObjectAccess::ForMapAndOffset(map_, offset);
-        return true;
-      }
-      return false;
-    }
-
     bool has_holder() { return !holder_.is_null(); }
     bool IsLoad() const { return access_type_ == LOAD; }
 
diff --git a/src/crankshaft/ia32/lithium-codegen-ia32.cc b/src/crankshaft/ia32/lithium-codegen-ia32.cc
index fa0a897..e4854e7 100644
--- a/src/crankshaft/ia32/lithium-codegen-ia32.cc
+++ b/src/crankshaft/ia32/lithium-codegen-ia32.cc
@@ -15,7 +15,6 @@
 #include "src/ia32/frames-ia32.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -734,7 +733,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -811,7 +810,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -2317,10 +2315,10 @@
   DeoptimizeIf(equal, instr, Deoptimizer::kProxy);
 
   __ mov(object_prototype, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object_prototype, prototype);
-  EmitTrueBranch(instr, equal);
   __ cmp(object_prototype, factory()->null_value());
   EmitFalseBranch(instr, equal);
+  __ cmp(object_prototype, prototype);
+  EmitTrueBranch(instr, equal);
   __ mov(object_map, FieldOperand(object_prototype, HeapObject::kMapOffset));
   __ jmp(&loop);
 }
@@ -2418,15 +2416,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(esi));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(eax));
 
-  __ mov(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2541,10 +2536,7 @@
 
   __ mov(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2775,13 +2767,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3407,31 +3395,18 @@
 
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
-  DCHECK(instr->value()->Equals(instr->result()));
-  XMMRegister input_reg = ToDoubleRegister(instr->value());
-  XMMRegister xmm_scratch = double_scratch0();
-  Label positive, done, zero;
-  __ xorps(xmm_scratch, xmm_scratch);
-  __ ucomisd(input_reg, xmm_scratch);
-  __ j(above, &positive, Label::kNear);
-  __ j(not_carry, &zero, Label::kNear);
-  __ pcmpeqd(input_reg, input_reg);
-  __ jmp(&done, Label::kNear);
-  __ bind(&zero);
-  ExternalReference ninf =
-      ExternalReference::address_of_negative_infinity();
-  __ movsd(input_reg, Operand::StaticVariable(ninf));
-  __ jmp(&done, Label::kNear);
-  __ bind(&positive);
-  __ fldln2();
-  __ sub(Operand(esp), Immediate(kDoubleSize));
-  __ movsd(Operand(esp, 0), input_reg);
-  __ fld_d(Operand(esp, 0));
-  __ fyl2x();
+  XMMRegister input = ToDoubleRegister(instr->value());
+  XMMRegister result = ToDoubleRegister(instr->result());
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ movsd(Operand(esp, 0 * kDoubleSize), input);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  // Store it into the result register.
+  __ sub(esp, Immediate(kDoubleSize));
   __ fstp_d(Operand(esp, 0));
-  __ movsd(input_reg, Operand(esp, 0));
-  __ add(Operand(esp), Immediate(kDoubleSize));
-  __ bind(&done);
+  __ movsd(result, Operand(esp, 0));
+  __ add(esp, Immediate(kDoubleSize));
 }
 
 
@@ -3442,15 +3417,49 @@
   __ Lzcnt(result, input);
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  XMMRegister input = ToDoubleRegister(instr->value());
+  XMMRegister result = ToDoubleRegister(instr->result());
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ movsd(Operand(esp, 0 * kDoubleSize), input);
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  // Store it into the result register.
+  __ sub(esp, Immediate(kDoubleSize));
+  __ fstp_d(Operand(esp, 0));
+  __ movsd(result, Operand(esp, 0));
+  __ add(esp, Immediate(kDoubleSize));
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  XMMRegister input = ToDoubleRegister(instr->value());
+  XMMRegister result = ToDoubleRegister(instr->result());
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ movsd(Operand(esp, 0 * kDoubleSize), input);
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  // Store it into the result register.
+  __ sub(esp, Immediate(kDoubleSize));
+  __ fstp_d(Operand(esp, 0));
+  __ movsd(result, Operand(esp, 0));
+  __ add(esp, Immediate(kDoubleSize));
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
   XMMRegister input = ToDoubleRegister(instr->value());
   XMMRegister result = ToDoubleRegister(instr->result());
-  XMMRegister temp0 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(masm(), input, result, temp0, temp1, temp2);
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ movsd(Operand(esp, 0 * kDoubleSize), input);
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  // Store it into the result register.
+  __ sub(esp, Immediate(kDoubleSize));
+  __ fstp_d(Operand(esp, 0));
+  __ movsd(result, Operand(esp, 0));
+  __ add(esp, Immediate(kDoubleSize));
 }
 
 void LCodeGen::PrepareForTailCall(const ParameterCount& actual,
@@ -3465,7 +3474,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3535,14 +3546,7 @@
   DCHECK(ToRegister(instr->result()).is(eax));
 
   __ Move(eax, Immediate(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ mov(ebx, instr->hydrogen()->site());
-  } else {
-    __ mov(ebx, isolate()->factory()->undefined_value());
-  }
+  __ mov(ebx, instr->hydrogen()->site());
 
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
@@ -3576,7 +3580,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -3706,14 +3710,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ mov(StoreDescriptor::NameRegister(), instr->name());
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3883,13 +3885,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4030,8 +4030,7 @@
     DCHECK(object_reg.is(eax));
     PushSafepointRegistersScope scope(this);
     __ mov(ebx, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithLazyDeopt(instr,
         RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
@@ -4823,25 +4822,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  XMMRegister result_reg = ToDoubleRegister(instr->result());
-
-  if (CpuFeatures::IsSupported(SSE4_1)) {
-    CpuFeatureScope scope2(masm(), SSE4_1);
-    __ movd(result_reg, lo_reg);
-    __ pinsrd(result_reg, hi_reg, 1);
-  } else {
-    XMMRegister xmm_scratch = double_scratch0();
-    __ movd(result_reg, hi_reg);
-    __ psllq(result_reg, 32);
-    __ movd(xmm_scratch, lo_reg);
-    __ orps(result_reg, xmm_scratch);
-  }
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc b/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc
index c3284df..be8251c 100644
--- a/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc
+++ b/src/crankshaft/ia32/lithium-gap-resolver-ia32.cc
@@ -167,8 +167,7 @@
 
 Register LGapResolver::GetFreeRegisterNot(Register reg) {
   int skip_index = reg.is(no_reg) ? -1 : reg.code();
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] == 0 && destination_uses_[code] > 0 &&
@@ -183,8 +182,7 @@
 bool LGapResolver::HasBeenReset() {
   if (!moves_.is_empty()) return false;
   if (spilled_register_ >= 0) return false;
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] != 0) return false;
@@ -238,8 +236,7 @@
 
   // 3. Prefer to spill a register that is not used in any remaining move
   // because it will not need to be restored until the end.
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] == 0 && destination_uses_[code] == 0) {
diff --git a/src/crankshaft/ia32/lithium-ia32.cc b/src/crankshaft/ia32/lithium-ia32.cc
index 0bfdb0d..501ff47 100644
--- a/src/crankshaft/ia32/lithium-ia32.cc
+++ b/src/crankshaft/ia32/lithium-ia32.cc
@@ -1093,6 +1093,8 @@
 
 LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
   switch (instr->op()) {
+    case kMathCos:
+      return DoMathCos(instr);
     case kMathFloor:
       return DoMathFloor(instr);
     case kMathRound:
@@ -1111,6 +1113,8 @@
       return DoMathPowHalf(instr);
     case kMathClz32:
       return DoMathClz32(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     default:
       UNREACHABLE();
       return NULL;
@@ -1177,15 +1181,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathCos(input)), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathSin(input)), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* value = UseTempRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LMathExp* result = new(zone()) LMathExp(value, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathExp(input)), instr);
 }
 
 
@@ -1980,13 +1994,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub() ? UseFixed(instr->context(), esi) : NULL;
   LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count());
@@ -2018,15 +2025,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), esi);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
 }
 
@@ -2074,10 +2075,7 @@
   LOperand* context = UseFixed(instr->context(), esi);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
   LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(
       context, object, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
@@ -2147,10 +2145,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
   LLoadKeyedGeneric* result =
       new(zone()) LLoadKeyedGeneric(context, object, key, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
@@ -2234,12 +2229,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result = new (zone())
       LStoreKeyedGeneric(context, object, key, value, slot, vector);
@@ -2353,12 +2344,8 @@
   LOperand* object =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* value = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, object, value, slot, vector);
diff --git a/src/crankshaft/ia32/lithium-ia32.h b/src/crankshaft/ia32/lithium-ia32.h
index d1d5a06..7dd22e0 100644
--- a/src/crankshaft/ia32/lithium-ia32.h
+++ b/src/crankshaft/ia32/lithium-ia32.h
@@ -57,7 +57,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -102,6 +101,7 @@
   V(LoadRoot)                                \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
   V(MathExp)                                 \
   V(MathFloorD)                              \
   V(MathFloorI)                              \
@@ -111,6 +111,7 @@
   V(MathPowHalf)                             \
   V(MathRoundD)                              \
   V(MathRoundI)                              \
+  V(MathSin)                                 \
   V(MathSqrt)                                \
   V(MaybeGrowElements)                       \
   V(ModByConstI)                             \
@@ -912,21 +913,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 2> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value,
-           LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1589,18 +1598,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2355,20 +2360,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 1> {
  public:
   LAllocate(LOperand* context, LOperand* size, LOperand* temp) {
@@ -2552,6 +2543,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/lithium-allocator.cc b/src/crankshaft/lithium-allocator.cc
index 6155dc0..d17cd27 100644
--- a/src/crankshaft/lithium-allocator.cc
+++ b/src/crankshaft/lithium-allocator.cc
@@ -13,6 +13,8 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
+
 static inline LifetimePosition Min(LifetimePosition a, LifetimePosition b) {
   return a.Value() < b.Value() ? a : b;
 }
@@ -940,7 +942,7 @@
 
         if (instr->ClobbersRegisters()) {
           for (int i = 0; i < Register::kNumRegisters; ++i) {
-            if (Register::from_code(i).IsAllocatable()) {
+            if (GetRegConfig()->IsAllocatableGeneralCode(i)) {
               if (output == NULL || !output->IsRegister() ||
                   output->index() != i) {
                 LiveRange* range = FixedLiveRangeFor(i);
@@ -953,7 +955,7 @@
 
         if (instr->ClobbersDoubleRegisters(isolate())) {
           for (int i = 0; i < DoubleRegister::kMaxNumRegisters; ++i) {
-            if (DoubleRegister::from_code(i).IsAllocatable()) {
+            if (GetRegConfig()->IsAllocatableDoubleCode(i)) {
               if (output == NULL || !output->IsDoubleRegister() ||
                   output->index() != i) {
                 LiveRange* range = FixedDoubleLiveRangeFor(i);
@@ -1460,12 +1462,8 @@
 
 void LAllocator::AllocateGeneralRegisters() {
   LAllocatorPhase phase("L_Allocate general registers", this);
-  num_registers_ =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->num_allocatable_general_registers();
-  allocatable_register_codes_ =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->allocatable_general_codes();
+  num_registers_ = GetRegConfig()->num_allocatable_general_registers();
+  allocatable_register_codes_ = GetRegConfig()->allocatable_general_codes();
   mode_ = GENERAL_REGISTERS;
   AllocateRegisters();
 }
@@ -1473,12 +1471,8 @@
 
 void LAllocator::AllocateDoubleRegisters() {
   LAllocatorPhase phase("L_Allocate double registers", this);
-  num_registers_ =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->num_allocatable_double_registers();
-  allocatable_register_codes_ =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-          ->allocatable_double_codes();
+  num_registers_ = GetRegConfig()->num_allocatable_double_registers();
+  allocatable_register_codes_ = GetRegConfig()->allocatable_double_codes();
   mode_ = DOUBLE_REGISTERS;
   AllocateRegisters();
 }
@@ -1596,9 +1590,9 @@
 
 const char* LAllocator::RegisterName(int allocation_index) {
   if (mode_ == GENERAL_REGISTERS) {
-    return Register::from_code(allocation_index).ToString();
+    return GetRegConfig()->GetGeneralRegisterName(allocation_index);
   } else {
-    return DoubleRegister::from_code(allocation_index).ToString();
+    return GetRegConfig()->GetDoubleRegisterName(allocation_index);
   }
 }
 
diff --git a/src/crankshaft/lithium.cc b/src/crankshaft/lithium.cc
index d34b04f..4b3e0bc 100644
--- a/src/crankshaft/lithium.cc
+++ b/src/crankshaft/lithium.cc
@@ -40,6 +40,7 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
 
 void LOperand::PrintTo(StringStream* stream) {
   LUnallocated* unalloc = NULL;
@@ -63,7 +64,7 @@
             stream->Add("(=invalid_reg#%d)", reg_index);
           } else {
             const char* register_name =
-                Register::from_code(reg_index).ToString();
+                GetRegConfig()->GetGeneralRegisterName(reg_index);
             stream->Add("(=%s)", register_name);
           }
           break;
@@ -74,7 +75,7 @@
             stream->Add("(=invalid_double_reg#%d)", reg_index);
           } else {
             const char* double_register_name =
-                DoubleRegister::from_code(reg_index).ToString();
+                GetRegConfig()->GetDoubleRegisterName(reg_index);
             stream->Add("(=%s)", double_register_name);
           }
           break;
@@ -110,7 +111,8 @@
       if (reg_index < 0 || reg_index >= Register::kNumRegisters) {
         stream->Add("(=invalid_reg#%d|R)", reg_index);
       } else {
-        stream->Add("[%s|R]", Register::from_code(reg_index).ToString());
+        stream->Add("[%s|R]",
+                    GetRegConfig()->GetGeneralRegisterName(reg_index));
       }
       break;
     }
@@ -119,7 +121,7 @@
       if (reg_index < 0 || reg_index >= DoubleRegister::kMaxNumRegisters) {
         stream->Add("(=invalid_double_reg#%d|R)", reg_index);
       } else {
-        stream->Add("[%s|R]", DoubleRegister::from_code(reg_index).ToString());
+        stream->Add("[%s|R]", GetRegConfig()->GetDoubleRegisterName(reg_index));
       }
       break;
     }
@@ -469,8 +471,7 @@
                                                  jit_handler_data));
 
     CodeGenerator::PrintCode(code, info());
-    DCHECK(!(info()->isolate()->serializer_enabled() &&
-             info()->GetMustNotHaveEagerFrame() &&
+    DCHECK(!(info()->GetMustNotHaveEagerFrame() &&
              generator.NeedsEagerFrame()));
     return code;
   }
diff --git a/src/crankshaft/mips/lithium-codegen-mips.cc b/src/crankshaft/mips/lithium-codegen-mips.cc
index bdc5c64..30a59fc 100644
--- a/src/crankshaft/mips/lithium-codegen-mips.cc
+++ b/src/crankshaft/mips/lithium-codegen-mips.cc
@@ -34,8 +34,6 @@
 #include "src/crankshaft/mips/lithium-gap-resolver-mips.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
-
 
 namespace v8 {
 namespace internal {
@@ -801,7 +799,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -877,7 +875,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -2417,9 +2414,9 @@
                Operand(JS_PROXY_TYPE));
 
   __ lw(object_prototype, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  EmitTrueBranch(instr, eq, object_prototype, Operand(prototype));
   __ LoadRoot(at, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, eq, object_prototype, Operand(at));
+  EmitTrueBranch(instr, eq, object_prototype, Operand(prototype));
   __ Branch(USE_DELAY_SLOT, &loop);
   __ lw(object_map, FieldMemOperand(object_prototype, HeapObject::kMapOffset));
 }
@@ -2515,15 +2512,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(v0));
 
-  __ li(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2622,10 +2616,7 @@
   // Name is always in a2.
   __ li(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2930,13 +2921,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3499,26 +3486,32 @@
   }
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
-  DoubleRegister input = ToDoubleRegister(instr->value());
-  DoubleRegister result = ToDoubleRegister(instr->result());
-  DoubleRegister double_scratch1 = ToDoubleRegister(instr->double_temp());
-  DoubleRegister double_scratch2 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(
-      masm(), input, result, double_scratch1, double_scratch2,
-      temp1, temp2, scratch0());
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   __ PrepareCallCFunction(0, 1, scratch0());
   __ MovToFloatParameter(ToDoubleRegister(instr->value()));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()),
-                   0, 1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
@@ -3541,7 +3534,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3648,14 +3643,8 @@
   DCHECK(ToRegister(instr->result()).is(v0));
 
   __ li(a0, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ li(a2, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(a2, Heap::kUndefinedValueRootIndex);
-  }
+  __ li(a2, instr->hydrogen()->site());
+
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
       (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE)
@@ -3687,7 +3676,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -3809,14 +3798,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ li(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4037,13 +4024,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4179,8 +4164,7 @@
     DCHECK(ToRegister(instr->context()).is(cp));
     PushSafepointRegistersScope scope(this);
     __ li(a1, Operand(to_map));
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kLazyDeopt);
@@ -5028,14 +5012,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DoubleRegister result_reg = ToDoubleRegister(instr->result());
-  __ Move(result_reg, lo_reg, hi_reg);
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/mips/lithium-mips.cc b/src/crankshaft/mips/lithium-mips.cc
index 345694d..e706620 100644
--- a/src/crankshaft/mips/lithium-mips.cc
+++ b/src/crankshaft/mips/lithium-mips.cc
@@ -1074,6 +1074,10 @@
       return DoMathAbs(instr);
     case kMathLog:
       return DoMathLog(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathExp:
       return DoMathExp(instr);
     case kMathSqrt:
@@ -1103,16 +1107,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), f4), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), f4), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LOperand* double_temp = TempDoubleRegister();
-  LMathExp* result = new(zone()) LMathExp(input, double_temp, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), f4), instr);
 }
 
 
@@ -1921,13 +1934,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub()
       ? UseFixed(instr->context(), cp)
@@ -1959,14 +1965,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
+
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, v0), instr);
 }
 
@@ -2010,10 +2011,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadNamedGeneric(context, object, vector), v0);
@@ -2085,10 +2083,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key, vector),
@@ -2150,12 +2145,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result =
       new (zone()) LStoreKeyedGeneric(context, obj, key, val, slot, vector);
@@ -2244,12 +2235,8 @@
   LOperand* obj =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* val = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, obj, val, slot, vector);
diff --git a/src/crankshaft/mips/lithium-mips.h b/src/crankshaft/mips/lithium-mips.h
index ea5e792..f220a15 100644
--- a/src/crankshaft/mips/lithium-mips.h
+++ b/src/crankshaft/mips/lithium-mips.h
@@ -53,7 +53,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -97,6 +96,8 @@
   V(LoadNamedField)                          \
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathClz32)                               \
   V(MathFloor)                               \
@@ -882,24 +883,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 3> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value,
-           LOperand* double_temp,
-           LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    temps_[2] = double_temp;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
-  LOperand* double_temp() { return temps_[2]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1531,18 +1537,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2299,20 +2301,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 2> {
  public:
   LAllocate(LOperand* context,
@@ -2503,6 +2491,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/mips64/lithium-codegen-mips64.cc b/src/crankshaft/mips64/lithium-codegen-mips64.cc
index d114e4f..41ed95e 100644
--- a/src/crankshaft/mips64/lithium-codegen-mips64.cc
+++ b/src/crankshaft/mips64/lithium-codegen-mips64.cc
@@ -10,7 +10,6 @@
 #include "src/crankshaft/mips64/lithium-gap-resolver-mips64.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -789,7 +788,7 @@
             entry, deopt_info, bailout_type, !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry->IsEquivalentTo(*jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -865,7 +864,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -1167,7 +1165,7 @@
   DCHECK(!result.is(dividend) || !scratch.is(dividend));
 
   // If the divisor is 1, return the dividend.
-  if (divisor == 1) {
+  if (divisor == 0) {
     __ Move(result, dividend);
     return;
   }
@@ -2536,9 +2534,9 @@
                Operand(JS_PROXY_TYPE));
 
   __ ld(object_prototype, FieldMemOperand(object_map, Map::kPrototypeOffset));
-  EmitTrueBranch(instr, eq, object_prototype, Operand(prototype));
   __ LoadRoot(at, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, eq, object_prototype, Operand(at));
+  EmitTrueBranch(instr, eq, object_prototype, Operand(prototype));
   __ Branch(&loop, USE_DELAY_SLOT);
   __ ld(object_map, FieldMemOperand(object_prototype,
                                     HeapObject::kMapOffset));  // In delay slot.
@@ -2635,15 +2633,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-            .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(v0));
 
-  __ li(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2757,10 +2752,7 @@
   // Name is always in a2.
   __ li(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3109,13 +3101,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3701,26 +3689,32 @@
   }
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
-  DoubleRegister input = ToDoubleRegister(instr->value());
-  DoubleRegister result = ToDoubleRegister(instr->result());
-  DoubleRegister double_scratch1 = ToDoubleRegister(instr->double_temp());
-  DoubleRegister double_scratch2 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(
-      masm(), input, result, double_scratch1, double_scratch2,
-      temp1, temp2, scratch0());
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   __ PrepareCallCFunction(0, 1, scratch0());
   __ MovToFloatParameter(ToDoubleRegister(instr->value()));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()),
-                   0, 1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
@@ -3743,7 +3737,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3847,14 +3843,8 @@
   DCHECK(ToRegister(instr->result()).is(v0));
 
   __ li(a0, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ li(a2, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(a2, Heap::kUndefinedValueRootIndex);
-  }
+  __ li(a2, instr->hydrogen()->site());
+
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
       (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE)
@@ -3886,7 +3876,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -4017,14 +4007,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ li(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4267,13 +4255,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4409,8 +4395,7 @@
     DCHECK(ToRegister(instr->context()).is(cp));
     PushSafepointRegistersScope scope(this);
     __ li(a1, Operand(to_map));
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(
         instr->pointer_map(), 0, Safepoint::kLazyDeopt);
@@ -5230,14 +5215,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DoubleRegister result_reg = ToDoubleRegister(instr->result());
-  __ Move(result_reg, lo_reg, hi_reg);
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/mips64/lithium-mips64.cc b/src/crankshaft/mips64/lithium-mips64.cc
index 3ee9ab6..b682d19 100644
--- a/src/crankshaft/mips64/lithium-mips64.cc
+++ b/src/crankshaft/mips64/lithium-mips64.cc
@@ -1074,6 +1074,10 @@
       return DoMathAbs(instr);
     case kMathLog:
       return DoMathLog(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathExp:
       return DoMathExp(instr);
     case kMathSqrt:
@@ -1103,16 +1107,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), f4), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), f4), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LOperand* double_temp = TempDoubleRegister();
-  LMathExp* result = new(zone()) LMathExp(input, double_temp, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), f4);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), f4), instr);
 }
 
 
@@ -1924,13 +1937,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub()
       ? UseFixed(instr->context(), cp)
@@ -1962,14 +1968,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
+
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, v0), instr);
 }
 
@@ -2013,10 +2014,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadNamedGeneric(context, object, vector), v0);
@@ -2089,10 +2087,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new(zone()) LLoadKeyedGeneric(context, object, key, vector),
@@ -2155,12 +2150,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result =
       new (zone()) LStoreKeyedGeneric(context, obj, key, val, slot, vector);
@@ -2249,12 +2240,8 @@
   LOperand* obj =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* val = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, obj, val, slot, vector);
diff --git a/src/crankshaft/mips64/lithium-mips64.h b/src/crankshaft/mips64/lithium-mips64.h
index 5d282ec..ad3fb87 100644
--- a/src/crankshaft/mips64/lithium-mips64.h
+++ b/src/crankshaft/mips64/lithium-mips64.h
@@ -55,7 +55,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -99,6 +98,8 @@
   V(LoadNamedField)                          \
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathClz32)                               \
   V(MathFloor)                               \
@@ -900,24 +901,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 3> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value,
-           LOperand* double_temp,
-           LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    temps_[2] = double_temp;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
-  LOperand* double_temp() { return temps_[2]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1593,18 +1599,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2345,20 +2347,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 2> {
  public:
   LAllocate(LOperand* context,
@@ -2549,6 +2537,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/ppc/OWNERS b/src/crankshaft/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/crankshaft/ppc/OWNERS
+++ b/src/crankshaft/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/crankshaft/ppc/lithium-codegen-ppc.cc b/src/crankshaft/ppc/lithium-codegen-ppc.cc
index 31d9ebe..056c93a 100644
--- a/src/crankshaft/ppc/lithium-codegen-ppc.cc
+++ b/src/crankshaft/ppc/lithium-codegen-ppc.cc
@@ -11,7 +11,6 @@
 #include "src/crankshaft/ppc/lithium-gap-resolver-ppc.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -766,7 +765,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -837,7 +836,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -1140,6 +1138,10 @@
     }
   }
 
+#if V8_TARGET_ARCH_PPC64
+  __ extsw(result, result);
+#endif
+
   if (!hdiv->CheckFlag(HInstruction::kAllUsesTruncatingToInt32)) {
     // Deoptimize if remainder is not 0.
     Register scratch = scratch0();
@@ -1333,6 +1335,9 @@
   // We performed a truncating division. Correct the result.
   __ subi(result, result, Operand(1));
   __ bind(&done);
+#if V8_TARGET_ARCH_PPC64
+  __ extsw(result, result);
+#endif
 }
 
 
@@ -2583,10 +2588,10 @@
   DeoptimizeIf(eq, instr, Deoptimizer::kProxy);
   __ LoadP(object_prototype,
            FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object_prototype, prototype);
-  EmitTrueBranch(instr, eq);
   __ CompareRoot(object_prototype, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, eq);
+  __ cmp(object_prototype, prototype);
+  EmitTrueBranch(instr, eq);
   __ LoadP(object_map,
            FieldMemOperand(object_prototype, HeapObject::kMapOffset));
   __ b(&loop);
@@ -2692,15 +2697,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(r3));
 
-  __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2815,10 +2817,7 @@
   // Name is always in r5.
   __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3176,14 +3175,9 @@
   DCHECK(ToRegister(instr->context()).is(cp));
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
-
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3776,29 +3770,34 @@
   }
 }
 
-
-void LCodeGen::DoMathExp(LMathExp* instr) {
-  DoubleRegister input = ToDoubleRegister(instr->value());
-  DoubleRegister result = ToDoubleRegister(instr->result());
-  DoubleRegister double_scratch1 = ToDoubleRegister(instr->double_temp());
-  DoubleRegister double_scratch2 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(masm(), input, result, double_scratch1,
-                                double_scratch2, temp1, temp2, scratch0());
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
+
+void LCodeGen::DoMathExp(LMathExp* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   __ PrepareCallCFunction(0, 1, scratch0());
   __ MovToFloatParameter(ToDoubleRegister(instr->value()));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()), 0,
-                   1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
-
 void LCodeGen::DoMathClz32(LMathClz32* instr) {
   Register input = ToRegister(instr->value());
   Register result = ToRegister(instr->result());
@@ -3817,7 +3816,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3923,14 +3924,8 @@
   DCHECK(ToRegister(instr->result()).is(r3));
 
   __ mov(r3, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ Move(r5, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(r5, Heap::kUndefinedValueRootIndex);
-  }
+  __ Move(r5, instr->hydrogen()->site());
+
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
       (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE)
@@ -3962,7 +3957,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -4097,14 +4092,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ mov(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4359,13 +4352,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4498,8 +4489,7 @@
     DCHECK(object_reg.is(r3));
     PushSafepointRegistersScope scope(this);
     __ Move(r4, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(instr->pointer_map(), 0,
                                  Safepoint::kLazyDeopt);
@@ -5317,18 +5307,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DoubleRegister result_reg = ToDoubleRegister(instr->result());
-#if V8_TARGET_ARCH_PPC64
-  __ MovInt64ComponentsToDouble(result_reg, hi_reg, lo_reg, r0);
-#else
-  __ MovInt64ToDouble(result_reg, hi_reg, lo_reg);
-#endif
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/ppc/lithium-ppc.cc b/src/crankshaft/ppc/lithium-ppc.cc
index 0d9a617..81b2205 100644
--- a/src/crankshaft/ppc/lithium-ppc.cc
+++ b/src/crankshaft/ppc/lithium-ppc.cc
@@ -1080,6 +1080,10 @@
       return DoMathAbs(instr);
     case kMathLog:
       return DoMathLog(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathExp:
       return DoMathExp(instr);
     case kMathSqrt:
@@ -1146,8 +1150,8 @@
 LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseFixedDouble(instr->value(), d1);
-  return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d1), instr);
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d0), instr);
 }
 
 
@@ -1157,16 +1161,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), d0), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), d0), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LOperand* double_temp = TempDoubleRegister();
-  LMathExp* result = new (zone()) LMathExp(input, double_temp, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), d0), instr);
 }
 
 
@@ -1951,13 +1964,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new (zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub() ? UseFixed(instr->context(), cp) : NULL;
   LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count());
@@ -1987,14 +1993,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
-  LLoadGlobalGeneric* result =
-      new (zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
+
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, r3), instr);
 }
 
@@ -2038,10 +2039,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new (zone()) LLoadNamedGeneric(context, object, vector), r3);
@@ -2111,10 +2109,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result = DefineFixed(
       new (zone()) LLoadKeyedGeneric(context, object, key, vector), r3);
@@ -2173,12 +2168,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result =
       new (zone()) LStoreKeyedGeneric(context, obj, key, val, slot, vector);
@@ -2266,13 +2257,8 @@
   LOperand* obj =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* val = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
-
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, obj, val, slot, vector);
   return MarkAsCall(result, instr);
diff --git a/src/crankshaft/ppc/lithium-ppc.h b/src/crankshaft/ppc/lithium-ppc.h
index f089b02..f5e11e3 100644
--- a/src/crankshaft/ppc/lithium-ppc.h
+++ b/src/crankshaft/ppc/lithium-ppc.h
@@ -53,7 +53,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -98,6 +97,8 @@
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathFloorD)                              \
   V(MathFloorI)                              \
@@ -901,22 +902,31 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 3> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value, LOperand* double_temp, LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    temps_[2] = double_temp;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
-  LOperand* double_temp() { return temps_[2]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1535,18 +1545,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2268,20 +2274,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 2> {
  public:
   LAllocate(LOperand* context, LOperand* size, LOperand* temp1,
@@ -2464,6 +2456,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/s390/OWNERS b/src/crankshaft/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/crankshaft/s390/OWNERS
+++ b/src/crankshaft/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/crankshaft/s390/lithium-codegen-s390.cc b/src/crankshaft/s390/lithium-codegen-s390.cc
index 38d1808..890545c 100644
--- a/src/crankshaft/s390/lithium-codegen-s390.cc
+++ b/src/crankshaft/s390/lithium-codegen-s390.cc
@@ -12,7 +12,6 @@
 #include "src/crankshaft/s390/lithium-gap-resolver-s390.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -756,7 +755,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -820,7 +819,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 static const char* LabelType(LLabel* label) {
@@ -2568,10 +2566,10 @@
   DeoptimizeIf(eq, instr, Deoptimizer::kProxy);
   __ LoadP(object_prototype,
            FieldMemOperand(object_map, Map::kPrototypeOffset));
-  __ CmpP(object_prototype, prototype);
-  EmitTrueBranch(instr, eq);
   __ CompareRoot(object_prototype, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, eq);
+  __ CmpP(object_prototype, prototype);
+  EmitTrueBranch(instr, eq);
   __ LoadP(object_map,
            FieldMemOperand(object_prototype, HeapObject::kMapOffset));
   __ b(&loop);
@@ -2670,15 +2668,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(cp));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(r2));
 
-  __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2779,10 +2774,7 @@
   // Name is always in r4.
   __ mov(LoadDescriptor::NameRegister(), Operand(instr->name()));
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2872,6 +2864,7 @@
   }
   int element_size_shift = ElementsKindToShiftSize(elements_kind);
   bool key_is_smi = instr->hydrogen()->key()->representation().IsSmi();
+  bool keyMaybeNegative = instr->hydrogen()->IsDehoisted();
   int base_offset = instr->base_offset();
   bool use_scratch = false;
 
@@ -2885,7 +2878,8 @@
         use_scratch = true;
       }
     } else {
-      __ IndexToArrayOffset(scratch0(), key, element_size_shift, key_is_smi);
+      __ IndexToArrayOffset(scratch0(), key, element_size_shift, key_is_smi,
+                            keyMaybeNegative);
       use_scratch = true;
     }
     if (elements_kind == FLOAT32_ELEMENTS) {
@@ -2905,7 +2899,8 @@
     Register result = ToRegister(instr->result());
     MemOperand mem_operand =
         PrepareKeyedOperand(key, external_pointer, key_is_constant, key_is_smi,
-                            constant_key, element_size_shift, base_offset);
+                            constant_key, element_size_shift, base_offset,
+                            keyMaybeNegative);
     switch (elements_kind) {
       case INT8_ELEMENTS:
         __ LoadB(result, mem_operand);
@@ -2959,6 +2954,7 @@
 
   int element_size_shift = ElementsKindToShiftSize(FAST_DOUBLE_ELEMENTS);
   bool key_is_smi = instr->hydrogen()->key()->representation().IsSmi();
+  bool keyMaybeNegative = instr->hydrogen()->IsDehoisted();
   int constant_key = 0;
   if (key_is_constant) {
     constant_key = ToInteger32(LConstantOperand::cast(instr->key()));
@@ -2973,7 +2969,8 @@
   intptr_t base_offset = instr->base_offset() + constant_key * kDoubleSize;
   if (!key_is_constant) {
     use_scratch = true;
-    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi);
+    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi,
+                          keyMaybeNegative);
   }
 
   // Memory references support up to 20-bits signed displacement in RXY form
@@ -3095,7 +3092,8 @@
                                          bool key_is_constant, bool key_is_smi,
                                          int constant_key,
                                          int element_size_shift,
-                                         int base_offset) {
+                                         int base_offset,
+                                         bool keyMaybeNegative) {
   Register scratch = scratch0();
 
   if (key_is_constant) {
@@ -3113,7 +3111,8 @@
       (element_size_shift != (key_is_smi ? kSmiTagSize + kSmiShiftSize : 0));
 
   if (needs_shift) {
-    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi);
+    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi,
+                          keyMaybeNegative);
   } else {
     scratch = key;
   }
@@ -3129,14 +3128,9 @@
   DCHECK(ToRegister(instr->context()).is(cp));
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
-
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3671,23 +3665,31 @@
   }
 }
 
-void LCodeGen::DoMathExp(LMathExp* instr) {
-  DoubleRegister input = ToDoubleRegister(instr->value());
-  DoubleRegister result = ToDoubleRegister(instr->result());
-  DoubleRegister double_scratch1 = ToDoubleRegister(instr->double_temp());
-  DoubleRegister double_scratch2 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
 
-  MathExpGenerator::EmitMathExp(masm(), input, result, double_scratch1,
-                                double_scratch2, temp1, temp2, scratch0());
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
+}
+
+void LCodeGen::DoMathExp(LMathExp* instr) {
+  __ PrepareCallCFunction(0, 1, scratch0());
+  __ MovToFloatParameter(ToDoubleRegister(instr->value()));
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 0, 1);
+  __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   __ PrepareCallCFunction(0, 1, scratch0());
   __ MovToFloatParameter(ToDoubleRegister(instr->value()));
-  __ CallCFunction(ExternalReference::math_log_double_function(isolate()), 0,
-                   1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 0, 1);
   __ MovFromFloatResult(ToDoubleRegister(instr->result()));
 }
 
@@ -3716,7 +3718,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3820,14 +3824,8 @@
   DCHECK(ToRegister(instr->result()).is(r2));
 
   __ mov(r2, Operand(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ Move(r4, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(r4, Heap::kUndefinedValueRootIndex);
-  }
+  __ Move(r4, instr->hydrogen()->site());
+
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
       (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE)
@@ -3859,7 +3857,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -3990,15 +3988,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ mov(StoreDescriptor::NameRegister(), Operand(instr->name()));
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4060,6 +4055,7 @@
   }
   int element_size_shift = ElementsKindToShiftSize(elements_kind);
   bool key_is_smi = instr->hydrogen()->key()->representation().IsSmi();
+  bool keyMaybeNegative = instr->hydrogen()->IsDehoisted();
   int base_offset = instr->base_offset();
 
   if (elements_kind == FLOAT32_ELEMENTS || elements_kind == FLOAT64_ELEMENTS) {
@@ -4079,7 +4075,8 @@
         address = external_pointer;
       }
     } else {
-      __ IndexToArrayOffset(address, key, element_size_shift, key_is_smi);
+      __ IndexToArrayOffset(address, key, element_size_shift, key_is_smi,
+                            keyMaybeNegative);
       __ AddP(address, external_pointer);
     }
     if (elements_kind == FLOAT32_ELEMENTS) {
@@ -4092,7 +4089,8 @@
     Register value(ToRegister(instr->value()));
     MemOperand mem_operand =
         PrepareKeyedOperand(key, external_pointer, key_is_constant, key_is_smi,
-                            constant_key, element_size_shift, base_offset);
+                            constant_key, element_size_shift, base_offset,
+                            keyMaybeNegative);
     switch (elements_kind) {
       case UINT8_ELEMENTS:
       case UINT8_CLAMPED_ELEMENTS:
@@ -4160,6 +4158,7 @@
   }
   int element_size_shift = ElementsKindToShiftSize(FAST_DOUBLE_ELEMENTS);
   bool key_is_smi = instr->hydrogen()->key()->representation().IsSmi();
+  bool keyMaybeNegative = instr->hydrogen()->IsDehoisted();
   int base_offset = instr->base_offset() + constant_key * kDoubleSize;
   bool use_scratch = false;
   intptr_t address_offset = base_offset;
@@ -4173,7 +4172,8 @@
     }
   } else {
     use_scratch = true;
-    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi);
+    __ IndexToArrayOffset(scratch, key, element_size_shift, key_is_smi,
+                          keyMaybeNegative);
     // Memory references support up to 20-bits signed displacement in RXY form
     if (!is_int20((address_offset))) {
       __ AddP(scratch, Operand(address_offset));
@@ -4291,13 +4291,10 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state())
+                        isolate(), instr->language_mode())
                         .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
@@ -4427,8 +4424,7 @@
     DCHECK(object_reg.is(r2));
     PushSafepointRegistersScope scope(this);
     __ Move(r3, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithRegisters(instr->pointer_map(), 0,
                                  Safepoint::kLazyDeopt);
@@ -5207,20 +5203,6 @@
   }
 }
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  DoubleRegister result_reg = ToDoubleRegister(instr->result());
-  Register scratch = scratch0();
-
-  // Combine hi_reg:lo_reg into a single 64-bit register.
-  __ sllg(scratch, hi_reg, Operand(32));
-  __ lr(scratch, lo_reg);
-
-  // Bitwise convert from GPR to FPR
-  __ ldgr(result_reg, scratch);
-}
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/s390/lithium-codegen-s390.h b/src/crankshaft/s390/lithium-codegen-s390.h
index 7721b30..6abd4fa 100644
--- a/src/crankshaft/s390/lithium-codegen-s390.h
+++ b/src/crankshaft/s390/lithium-codegen-s390.h
@@ -116,7 +116,8 @@
   MemOperand PrepareKeyedOperand(Register key, Register base,
                                  bool key_is_constant, bool key_is_tagged,
                                  int constant_key, int element_size_shift,
-                                 int base_offset);
+                                 int base_offset,
+                                 bool keyMaybeNegative = true);
 
   // Emit frame translation commands for an environment.
   void WriteTranslation(LEnvironment* environment, Translation* translation);
diff --git a/src/crankshaft/s390/lithium-s390.cc b/src/crankshaft/s390/lithium-s390.cc
index fbc1970..033484c 100644
--- a/src/crankshaft/s390/lithium-s390.cc
+++ b/src/crankshaft/s390/lithium-s390.cc
@@ -985,6 +985,10 @@
       return DoMathAbs(instr);
     case kMathLog:
       return DoMathLog(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathExp:
       return DoMathExp(instr);
     case kMathSqrt:
@@ -1034,8 +1038,8 @@
 LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseFixedDouble(instr->value(), d1);
-  return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d1), instr);
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), d0), instr);
 }
 
 LInstruction* LChunkBuilder::DoMathClz32(HUnaryMathOperation* instr) {
@@ -1044,15 +1048,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), d0), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), d0), instr);
+}
+
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LOperand* double_temp = TempDoubleRegister();
-  LMathExp* result = new (zone()) LMathExp(input, double_temp, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), d0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), d0), instr);
 }
 
 LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) {
@@ -1779,12 +1793,6 @@
   return DefineAsRegister(new (zone()) LDoubleBits(UseRegister(value)));
 }
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new (zone()) LConstructDouble(hi, lo));
-}
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub() ? UseFixed(instr->context(), cp) : NULL;
   LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count());
@@ -1812,14 +1820,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), cp);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
-  LLoadGlobalGeneric* result =
-      new (zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
+
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, r2), instr);
 }
 
@@ -1859,10 +1862,7 @@
   LOperand* context = UseFixed(instr->context(), cp);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result =
       DefineFixed(new (zone()) LLoadNamedGeneric(context, object, vector), r2);
@@ -1928,10 +1928,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LInstruction* result = DefineFixed(
       new (zone()) LLoadKeyedGeneric(context, object, key, vector), r2);
@@ -1988,12 +1985,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result =
       new (zone()) LStoreKeyedGeneric(context, obj, key, val, slot, vector);
@@ -2076,13 +2069,8 @@
   LOperand* obj =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* val = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
-
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, obj, val, slot, vector);
   return MarkAsCall(result, instr);
diff --git a/src/crankshaft/s390/lithium-s390.h b/src/crankshaft/s390/lithium-s390.h
index 407d45d..283629f 100644
--- a/src/crankshaft/s390/lithium-s390.h
+++ b/src/crankshaft/s390/lithium-s390.h
@@ -53,7 +53,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -98,6 +97,8 @@
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
+  V(MathSin)                                 \
   V(MathExp)                                 \
   V(MathFloor)                               \
   V(MathFround)                              \
@@ -836,21 +837,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-class LMathExp final : public LTemplateInstruction<1, 1, 3> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value, LOperand* double_temp, LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    temps_[2] = double_temp;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
-  LOperand* double_temp() { return temps_[2]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1430,17 +1439,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2118,19 +2124,6 @@
   DECLARE_HYDROGEN_ACCESSOR(DoubleBits)
 };
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
 class LAllocate final : public LTemplateInstruction<1, 2, 2> {
  public:
   LAllocate(LOperand* context, LOperand* size, LOperand* temp1,
@@ -2303,6 +2296,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/typing.cc b/src/crankshaft/typing.cc
index 9bd09ac..013f50f 100644
--- a/src/crankshaft/typing.cc
+++ b/src/crankshaft/typing.cc
@@ -24,7 +24,7 @@
       osr_ast_id_(osr_ast_id),
       root_(root),
       oracle_(isolate, zone, handle(closure->shared()->code()),
-              handle(closure->shared()->feedback_vector()),
+              handle(closure->feedback_vector()),
               handle(closure->context()->native_context())),
       store_(zone),
       bounds_(bounds) {
diff --git a/src/crankshaft/x64/lithium-codegen-x64.cc b/src/crankshaft/x64/lithium-codegen-x64.cc
index 350543e..c82f6c1 100644
--- a/src/crankshaft/x64/lithium-codegen-x64.cc
+++ b/src/crankshaft/x64/lithium-codegen-x64.cc
@@ -12,7 +12,6 @@
 #include "src/crankshaft/hydrogen-osr.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -760,7 +759,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -839,7 +838,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -1779,7 +1777,7 @@
           : SmiValuesAre31Bits());
       __ cmpl(left_reg, right_imm);
       __ j(condition, &return_left, Label::kNear);
-      __ movp(left_reg, right_imm);
+      __ movl(left_reg, right_imm);
     } else if (right->IsRegister()) {
       Register right_reg = ToRegister(right);
       if (instr->hydrogen_value()->representation().IsSmi()) {
@@ -1887,13 +1885,12 @@
       __ Movapd(result, result);
       break;
     case Token::MOD: {
-      XMMRegister xmm_scratch = double_scratch0();
-      __ PrepareCallCFunction(2);
-      __ Movapd(xmm_scratch, left);
+      DCHECK(left.is(xmm0));
       DCHECK(right.is(xmm1));
+      DCHECK(result.is(xmm0));
+      __ PrepareCallCFunction(2);
       __ CallCFunction(
           ExternalReference::mod_two_doubles_operation(isolate()), 2);
-      __ Movapd(result, xmm_scratch);
       break;
     }
     default:
@@ -2458,7 +2455,6 @@
   Label loop;
   __ bind(&loop);
 
-
   // Deoptimize if the object needs to be access checked.
   __ testb(FieldOperand(object_map, Map::kBitFieldOffset),
            Immediate(1 << Map::kIsAccessCheckNeeded));
@@ -2468,10 +2464,10 @@
   DeoptimizeIf(equal, instr, Deoptimizer::kProxy);
 
   __ movp(object_prototype, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmpp(object_prototype, prototype);
-  EmitTrueBranch(instr, equal);
   __ CompareRoot(object_prototype, Heap::kNullValueRootIndex);
   EmitFalseBranch(instr, equal);
+  __ cmpp(object_prototype, prototype);
+  EmitTrueBranch(instr, equal);
   __ movp(object_map, FieldOperand(object_prototype, HeapObject::kMapOffset));
   __ jmp(&loop);
 }
@@ -2563,15 +2559,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(rsi));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(rax));
 
-  __ Move(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2686,10 +2679,7 @@
 
   __ Move(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2973,13 +2963,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3608,45 +3594,32 @@
   }
 }
 
-
-void LCodeGen::DoMathExp(LMathExp* instr) {
-  XMMRegister input = ToDoubleRegister(instr->value());
-  XMMRegister result = ToDoubleRegister(instr->result());
-  XMMRegister temp0 = double_scratch0();
-  Register temp1 = ToRegister(instr->temp1());
-  Register temp2 = ToRegister(instr->temp2());
-
-  MathExpGenerator::EmitMathExp(masm(), input, result, temp0, temp1, temp2);
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  DCHECK(ToDoubleRegister(instr->value()).is(xmm0));
+  DCHECK(ToDoubleRegister(instr->result()).is(xmm0));
+  __ PrepareCallCFunction(1);
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 1);
 }
 
+void LCodeGen::DoMathExp(LMathExp* instr) {
+  DCHECK(ToDoubleRegister(instr->value()).is(xmm0));
+  DCHECK(ToDoubleRegister(instr->result()).is(xmm0));
+  __ PrepareCallCFunction(1);
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 1);
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  DCHECK(ToDoubleRegister(instr->value()).is(xmm0));
+  DCHECK(ToDoubleRegister(instr->result()).is(xmm0));
+  __ PrepareCallCFunction(1);
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 1);
+}
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
-  DCHECK(instr->value()->Equals(instr->result()));
-  XMMRegister input_reg = ToDoubleRegister(instr->value());
-  XMMRegister xmm_scratch = double_scratch0();
-  Label positive, done, zero;
-  __ Xorpd(xmm_scratch, xmm_scratch);
-  __ Ucomisd(input_reg, xmm_scratch);
-  __ j(above, &positive, Label::kNear);
-  __ j(not_carry, &zero, Label::kNear);
-  __ Pcmpeqd(input_reg, input_reg);
-  __ jmp(&done, Label::kNear);
-  __ bind(&zero);
-  ExternalReference ninf =
-      ExternalReference::address_of_negative_infinity();
-  Operand ninf_operand = masm()->ExternalOperand(ninf);
-  __ Movsd(input_reg, ninf_operand);
-  __ jmp(&done, Label::kNear);
-  __ bind(&positive);
-  __ fldln2();
-  __ subp(rsp, Immediate(kDoubleSize));
-  __ Movsd(Operand(rsp, 0), input_reg);
-  __ fld_d(Operand(rsp, 0));
-  __ fyl2x();
-  __ fstp_d(Operand(rsp, 0));
-  __ Movsd(input_reg, Operand(rsp, 0));
-  __ addp(rsp, Immediate(kDoubleSize));
-  __ bind(&done);
+  DCHECK(ToDoubleRegister(instr->value()).is(xmm0));
+  DCHECK(ToDoubleRegister(instr->result()).is(xmm0));
+  __ PrepareCallCFunction(1);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 1);
 }
 
 
@@ -3669,7 +3642,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3738,14 +3713,7 @@
   DCHECK(ToRegister(instr->result()).is(rax));
 
   __ Set(rax, instr->arity());
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ Move(rbx, instr->hydrogen()->site());
-  } else {
-    __ LoadRoot(rbx, Heap::kUndefinedValueRootIndex);
-  }
+  __ Move(rbx, instr->hydrogen()->site());
 
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
@@ -3779,7 +3747,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -3942,14 +3910,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ Move(StoreDescriptor::NameRegister(), instr->hydrogen()->name());
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4201,13 +4167,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4338,8 +4302,7 @@
     DCHECK(ToRegister(instr->context()).is(rsi));
     PushSafepointRegistersScope scope(this);
     __ Move(rbx, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithLazyDeopt(instr, RECORD_SAFEPOINT_WITH_REGISTERS, 0);
   }
@@ -4789,20 +4752,21 @@
     __ Set(input_reg, 0);
   } else {
     XMMRegister scratch = ToDoubleRegister(instr->temp());
-    DCHECK(!scratch.is(xmm0));
+    DCHECK(!scratch.is(double_scratch0()));
     __ CompareRoot(FieldOperand(input_reg, HeapObject::kMapOffset),
                    Heap::kHeapNumberMapRootIndex);
     DeoptimizeIf(not_equal, instr, Deoptimizer::kNotAHeapNumber);
-    __ Movsd(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
-    __ Cvttsd2si(input_reg, xmm0);
+    __ Movsd(double_scratch0(),
+             FieldOperand(input_reg, HeapNumber::kValueOffset));
+    __ Cvttsd2si(input_reg, double_scratch0());
     __ Cvtlsi2sd(scratch, input_reg);
-    __ Ucomisd(xmm0, scratch);
+    __ Ucomisd(double_scratch0(), scratch);
     DeoptimizeIf(not_equal, instr, Deoptimizer::kLostPrecision);
     DeoptimizeIf(parity_even, instr, Deoptimizer::kNaN);
     if (instr->hydrogen()->GetMinusZeroMode() == FAIL_ON_MINUS_ZERO) {
       __ testl(input_reg, input_reg);
       __ j(not_zero, done);
-      __ Movmskpd(input_reg, xmm0);
+      __ Movmskpd(input_reg, double_scratch0());
       __ andl(input_reg, Immediate(1));
       DeoptimizeIf(not_zero, instr, Deoptimizer::kMinusZero);
     }
@@ -5130,17 +5094,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  XMMRegister result_reg = ToDoubleRegister(instr->result());
-  __ movl(kScratchRegister, hi_reg);
-  __ shlq(kScratchRegister, Immediate(32));
-  __ orq(kScratchRegister, lo_reg);
-  __ Movq(result_reg, kScratchRegister);
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/x64/lithium-codegen-x64.h b/src/crankshaft/x64/lithium-codegen-x64.h
index f643e2b..c586ef5 100644
--- a/src/crankshaft/x64/lithium-codegen-x64.h
+++ b/src/crankshaft/x64/lithium-codegen-x64.h
@@ -115,7 +115,7 @@
   Scope* scope() const { return scope_; }
   HGraph* graph() const { return chunk()->graph(); }
 
-  XMMRegister double_scratch0() const { return xmm0; }
+  XMMRegister double_scratch0() const { return kScratchDoubleReg; }
 
   void EmitClassOfTest(Label* if_true,
                        Label* if_false,
diff --git a/src/crankshaft/x64/lithium-gap-resolver-x64.cc b/src/crankshaft/x64/lithium-gap-resolver-x64.cc
index 3808c37..94dffb3 100644
--- a/src/crankshaft/x64/lithium-gap-resolver-x64.cc
+++ b/src/crankshaft/x64/lithium-gap-resolver-x64.cc
@@ -223,8 +223,8 @@
       __ Movsd(cgen_->ToDoubleRegister(destination), src);
     } else {
       DCHECK(destination->IsDoubleStackSlot());
-      __ Movsd(xmm0, src);
-      __ Movsd(cgen_->ToOperand(destination), xmm0);
+      __ Movsd(kScratchDoubleReg, src);
+      __ Movsd(cgen_->ToOperand(destination), kScratchDoubleReg);
     }
   } else {
     UNREACHABLE();
@@ -264,18 +264,18 @@
     // Swap two stack slots or two double stack slots.
     Operand src = cgen_->ToOperand(source);
     Operand dst = cgen_->ToOperand(destination);
-    __ Movsd(xmm0, src);
+    __ Movsd(kScratchDoubleReg, src);
     __ movp(kScratchRegister, dst);
-    __ Movsd(dst, xmm0);
+    __ Movsd(dst, kScratchDoubleReg);
     __ movp(src, kScratchRegister);
 
   } else if (source->IsDoubleRegister() && destination->IsDoubleRegister()) {
     // Swap two double registers.
     XMMRegister source_reg = cgen_->ToDoubleRegister(source);
     XMMRegister destination_reg = cgen_->ToDoubleRegister(destination);
-    __ Movapd(xmm0, source_reg);
+    __ Movapd(kScratchDoubleReg, source_reg);
     __ Movapd(source_reg, destination_reg);
-    __ Movapd(destination_reg, xmm0);
+    __ Movapd(destination_reg, kScratchDoubleReg);
 
   } else if (source->IsDoubleRegister() || destination->IsDoubleRegister()) {
     // Swap a double register and a double stack slot.
@@ -287,9 +287,9 @@
     LOperand* other = source->IsDoubleRegister() ? destination : source;
     DCHECK(other->IsDoubleStackSlot());
     Operand other_operand = cgen_->ToOperand(other);
-    __ Movapd(xmm0, reg);
+    __ Movapd(kScratchDoubleReg, reg);
     __ Movsd(reg, other_operand);
-    __ Movsd(other_operand, xmm0);
+    __ Movsd(other_operand, kScratchDoubleReg);
 
   } else {
     // No other combinations are possible.
diff --git a/src/crankshaft/x64/lithium-x64.cc b/src/crankshaft/x64/lithium-x64.cc
index daedd72..01b9918 100644
--- a/src/crankshaft/x64/lithium-x64.cc
+++ b/src/crankshaft/x64/lithium-x64.cc
@@ -714,10 +714,10 @@
   DCHECK(instr->left()->representation().IsDouble());
   DCHECK(instr->right()->representation().IsDouble());
   if (op == Token::MOD) {
-    LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand());
+    LOperand* left = UseFixedDouble(instr->BetterLeftOperand(), xmm0);
     LOperand* right = UseFixedDouble(instr->BetterRightOperand(), xmm1);
     LArithmeticD* result = new(zone()) LArithmeticD(op, left, right);
-    return MarkAsCall(DefineSameAsFirst(result), instr);
+    return MarkAsCall(DefineFixedDouble(result, xmm0), instr);
   } else {
     LOperand* left = UseRegisterAtStart(instr->BetterLeftOperand());
     LOperand* right = UseRegisterAtStart(instr->BetterRightOperand());
@@ -1090,10 +1090,14 @@
       return DoMathFround(instr);
     case kMathAbs:
       return DoMathAbs(instr);
+    case kMathCos:
+      return DoMathCos(instr);
     case kMathLog:
       return DoMathLog(instr);
     case kMathExp:
       return DoMathExp(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     case kMathSqrt:
       return DoMathSqrt(instr);
     case kMathPowHalf:
@@ -1155,8 +1159,9 @@
 LInstruction* LChunkBuilder::DoMathLog(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* input = UseRegisterAtStart(instr->value());
-  return MarkAsCall(DefineSameAsFirst(new(zone()) LMathLog(input)), instr);
+  LOperand* input = UseFixedDouble(instr->value(), xmm0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathLog(input), xmm0),
+                    instr);
 }
 
 
@@ -1166,17 +1171,29 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), xmm0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathCos(input), xmm0),
+                    instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* value = UseTempRegister(instr->value());
-  LOperand* temp1 = TempRegister();
-  LOperand* temp2 = TempRegister();
-  LMathExp* result = new(zone()) LMathExp(value, temp1, temp2);
-  return DefineAsRegister(result);
+  LOperand* input = UseFixedDouble(instr->value(), xmm0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathExp(input), xmm0),
+                    instr);
 }
 
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseFixedDouble(instr->value(), xmm0);
+  return MarkAsCall(DefineFixedDouble(new (zone()) LMathSin(input), xmm0),
+                    instr);
+}
 
 LInstruction* LChunkBuilder::DoMathSqrt(HUnaryMathOperation* instr) {
   LOperand* input = UseAtStart(instr->value());
@@ -1957,13 +1974,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub() ? UseFixed(instr->context(), rsi) : NULL;
   LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count());
@@ -1993,15 +2003,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), rsi);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, rax), instr);
 }
 
@@ -2058,10 +2062,7 @@
   LOperand* context = UseFixed(instr->context(), rsi);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
   LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(
       context, object, vector);
   return MarkAsCall(DefineFixed(result, rax), instr);
@@ -2159,10 +2160,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
   LLoadKeyedGeneric* result =
       new(zone()) LLoadKeyedGeneric(context, object, key, vector);
@@ -2243,12 +2241,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result = new (zone())
       LStoreKeyedGeneric(context, object, key, value, slot, vector);
@@ -2355,12 +2349,8 @@
   LOperand* object =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* value = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, object, value, slot, vector);
diff --git a/src/crankshaft/x64/lithium-x64.h b/src/crankshaft/x64/lithium-x64.h
index 91f5541..623421c 100644
--- a/src/crankshaft/x64/lithium-x64.h
+++ b/src/crankshaft/x64/lithium-x64.h
@@ -53,7 +53,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -98,6 +97,7 @@
   V(LoadNamedGeneric)                        \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
   V(MathExp)                                 \
   V(MathFloorD)                              \
   V(MathFloorI)                              \
@@ -107,6 +107,7 @@
   V(MathPowHalf)                             \
   V(MathRoundD)                              \
   V(MathRoundI)                              \
+  V(MathSin)                                 \
   V(MathSqrt)                                \
   V(MaybeGrowElements)                       \
   V(ModByConstI)                             \
@@ -909,23 +910,32 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 2> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value, LOperand* temp1, LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
 
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
 
 class LMathSqrt final : public LTemplateInstruction<1, 1, 0> {
  public:
@@ -1581,13 +1591,10 @@
   LOperand* temp_vector() { return temps_[0]; }
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  explicit LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                              LOperand* vector) {
+  explicit LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
@@ -1595,7 +1602,6 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadGlobalGeneric)
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   Handle<Object> name() const { return hydrogen()->name(); }
@@ -2339,20 +2345,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 1> {
  public:
   LAllocate(LOperand* context, LOperand* size, LOperand* temp) {
@@ -2539,8 +2531,10 @@
   LInstruction* DoMathRound(HUnaryMathOperation* instr);
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
   LInstruction* DoMathClz32(HUnaryMathOperation* instr);
diff --git a/src/crankshaft/x87/lithium-codegen-x87.cc b/src/crankshaft/x87/lithium-codegen-x87.cc
index 641a87a..7bf974c 100644
--- a/src/crankshaft/x87/lithium-codegen-x87.cc
+++ b/src/crankshaft/x87/lithium-codegen-x87.cc
@@ -14,7 +14,6 @@
 #include "src/deoptimizer.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/x87/frames-x87.h"
 
 namespace v8 {
@@ -1025,7 +1024,7 @@
                                             !frame_is_built_);
     // We often have several deopts to the same entry, reuse the last
     // jump entry if this is the case.
-    if (FLAG_trace_deopt || isolate()->cpu_profiler()->is_profiling() ||
+    if (FLAG_trace_deopt || isolate()->is_profiling() ||
         jump_table_.is_empty() ||
         !table_entry.IsEquivalentTo(jump_table_.last())) {
       jump_table_.Add(table_entry, zone());
@@ -1102,7 +1101,6 @@
 void LCodeGen::RecordAndWritePosition(int position) {
   if (position == RelocInfo::kNoPosition) return;
   masm()->positions_recorder()->RecordPosition(position);
-  masm()->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -2362,9 +2360,7 @@
 
   __ add(esp, Immediate(kDoubleSize));
   int offset = sizeof(kHoleNanUpper32);
-  // x87 converts sNaN(0xfff7fffffff7ffff) to QNaN(0xfffffffffff7ffff),
-  // so we check the upper with 0xffffffff for hole as a temporary fix.
-  __ cmp(MemOperand(esp, -offset), Immediate(0xffffffff));
+  __ cmp(MemOperand(esp, -offset), Immediate(kHoleNanUpper32));
   EmitBranch(instr, equal);
 }
 
@@ -2605,10 +2601,10 @@
   DeoptimizeIf(equal, instr, Deoptimizer::kProxy);
 
   __ mov(object_prototype, FieldOperand(object_map, Map::kPrototypeOffset));
-  __ cmp(object_prototype, prototype);
-  EmitTrueBranch(instr, equal);
   __ cmp(object_prototype, factory()->null_value());
   EmitFalseBranch(instr, equal);
+  __ cmp(object_prototype, prototype);
+  EmitTrueBranch(instr, equal);
   __ mov(object_map, FieldOperand(object_prototype, HeapObject::kMapOffset));
   __ jmp(&loop);
 }
@@ -2705,15 +2701,12 @@
 
 void LCodeGen::DoLoadGlobalGeneric(LLoadGlobalGeneric* instr) {
   DCHECK(ToRegister(instr->context()).is(esi));
-  DCHECK(ToRegister(instr->global_object())
-             .is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->result()).is(eax));
 
-  __ mov(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadGlobalGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), instr->typeof_mode(), PREMONOMORPHIC)
-                        .code();
+  Handle<Code> ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate(), instr->typeof_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -2822,10 +2815,7 @@
 
   __ mov(LoadDescriptor::NameRegister(), instr->name());
   EmitVectorLoadICRegisters<LLoadNamedGeneric>(instr);
-  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(
-                        isolate(), NOT_INSIDE_TYPEOF,
-                        instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::LoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3053,13 +3043,9 @@
   DCHECK(ToRegister(instr->object()).is(LoadDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->key()).is(LoadDescriptor::NameRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
-  }
+  EmitVectorLoadICRegisters<LLoadKeyedGeneric>(instr);
 
-  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(
-                        isolate(), instr->hydrogen()->initialization_state())
-                        .code();
+  Handle<Code> ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate()).code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -3690,40 +3676,17 @@
 
 void LCodeGen::DoMathLog(LMathLog* instr) {
   DCHECK(instr->value()->Equals(instr->result()));
+  X87Register result = ToX87Register(instr->result());
   X87Register input_reg = ToX87Register(instr->value());
   X87Fxch(input_reg);
 
-  Label positive, done, zero, nan_result;
-  __ fldz();
-  __ fld(1);
-  __ FCmp();
-  __ j(below, &nan_result, Label::kNear);
-  __ j(equal, &zero, Label::kNear);
-  // Positive input.
-  // {input, ln2}.
-  __ fldln2();
-  // {ln2, input}.
-  __ fxch();
-  // {result}.
-  __ fyl2x();
-  __ jmp(&done, Label::kNear);
-
-  __ bind(&nan_result);
-  X87PrepareToWrite(input_reg);
-  __ push(Immediate(0xffffffff));
-  __ push(Immediate(0x7fffffff));
-  __ fld_d(MemOperand(esp, 0));
-  __ lea(esp, Operand(esp, kDoubleSize));
-  X87CommitWrite(input_reg);
-  __ jmp(&done, Label::kNear);
-
-  __ bind(&zero);
-  ExternalReference ninf = ExternalReference::address_of_negative_infinity();
-  X87PrepareToWrite(input_reg);
-  __ fld_d(Operand::StaticVariable(ninf));
-  X87CommitWrite(input_reg);
-
-  __ bind(&done);
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ fstp_d(MemOperand(esp, 0));
+  X87PrepareToWrite(result);
+  __ CallCFunction(ExternalReference::ieee754_log_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  X87CommitWrite(result);
 }
 
 
@@ -3734,67 +3697,46 @@
   __ Lzcnt(result, input);
 }
 
+void LCodeGen::DoMathCos(LMathCos* instr) {
+  X87Register result = ToX87Register(instr->result());
+  X87Register input_reg = ToX87Register(instr->value());
+  __ fld(x87_stack_.st(input_reg));
+
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ fstp_d(MemOperand(esp, 0));
+  X87PrepareToWrite(result);
+  __ CallCFunction(ExternalReference::ieee754_cos_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  X87CommitWrite(result);
+}
+
+void LCodeGen::DoMathSin(LMathSin* instr) {
+  X87Register result = ToX87Register(instr->result());
+  X87Register input_reg = ToX87Register(instr->value());
+  __ fld(x87_stack_.st(input_reg));
+
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ fstp_d(MemOperand(esp, 0));
+  X87PrepareToWrite(result);
+  __ CallCFunction(ExternalReference::ieee754_sin_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  X87CommitWrite(result);
+}
 
 void LCodeGen::DoMathExp(LMathExp* instr) {
-  X87Register input = ToX87Register(instr->value());
-  X87Register result_reg = ToX87Register(instr->result());
-  Register temp_result = ToRegister(instr->temp1());
-  Register temp = ToRegister(instr->temp2());
-  Label slow, done, smi, finish;
-  DCHECK(result_reg.is(input));
+  X87Register result = ToX87Register(instr->result());
+  X87Register input_reg = ToX87Register(instr->value());
+  __ fld(x87_stack_.st(input_reg));
 
-  // Store input into Heap number and call runtime function kMathExpRT.
-  if (FLAG_inline_new) {
-    __ AllocateHeapNumber(temp_result, temp, no_reg, &slow);
-    __ jmp(&done, Label::kNear);
-  }
-
-  // Slow case: Call the runtime system to do the number allocation.
-  __ bind(&slow);
-  {
-    // TODO(3095996): Put a valid pointer value in the stack slot where the
-    // result register is stored, as this register is in the pointer map, but
-    // contains an integer value.
-    __ Move(temp_result, Immediate(0));
-
-    // Preserve the value of all registers.
-    PushSafepointRegistersScope scope(this);
-
-    __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-    __ CallRuntimeSaveDoubles(Runtime::kAllocateHeapNumber);
-    RecordSafepointWithRegisters(instr->pointer_map(), 0,
-                                 Safepoint::kNoLazyDeopt);
-    __ StoreToSafepointRegisterSlot(temp_result, eax);
-  }
-  __ bind(&done);
-  X87LoadForUsage(input);
-  __ fstp_d(FieldOperand(temp_result, HeapNumber::kValueOffset));
-
-  {
-    // Preserve the value of all registers.
-    PushSafepointRegistersScope scope(this);
-
-    __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-    __ push(temp_result);
-    __ CallRuntimeSaveDoubles(Runtime::kMathExpRT);
-    RecordSafepointWithRegisters(instr->pointer_map(), 1,
-                                 Safepoint::kNoLazyDeopt);
-    __ StoreToSafepointRegisterSlot(temp_result, eax);
-  }
-  X87PrepareToWrite(result_reg);
-  // return value of MathExpRT is Smi or Heap Number.
-  __ JumpIfSmi(temp_result, &smi);
-  // Heap number(double)
-  __ fld_d(FieldOperand(temp_result, HeapNumber::kValueOffset));
-  __ jmp(&finish);
-  // SMI
-  __ bind(&smi);
-  __ SmiUntag(temp_result);
-  __ push(temp_result);
-  __ fild_s(MemOperand(esp, 0));
-  __ pop(temp_result);
-  __ bind(&finish);
-  X87CommitWrite(result_reg);
+  // Pass one double as argument on the stack.
+  __ PrepareCallCFunction(2, eax);
+  __ fstp_d(MemOperand(esp, 0));
+  X87PrepareToWrite(result);
+  __ CallCFunction(ExternalReference::ieee754_exp_function(isolate()), 2);
+  // Return value is in st(0) on ia32.
+  X87CommitWrite(result);
 }
 
 void LCodeGen::PrepareForTailCall(const ParameterCount& actual,
@@ -3809,7 +3751,9 @@
 #endif
   if (FLAG_code_comments) {
     if (actual.is_reg()) {
-      Comment(";;; PrepareForTailCall, actual: %s {", actual.reg().ToString());
+      Comment(";;; PrepareForTailCall, actual: %s {",
+              RegisterConfiguration::Crankshaft()->GetGeneralRegisterName(
+                  actual.reg().code()));
     } else {
       Comment(";;; PrepareForTailCall, actual: %d {", actual.immediate());
     }
@@ -3879,14 +3823,7 @@
   DCHECK(ToRegister(instr->result()).is(eax));
 
   __ Move(eax, Immediate(instr->arity()));
-  if (instr->arity() == 1) {
-    // We only need the allocation site for the case we have a length argument.
-    // The case may bail out to the runtime, which will determine the correct
-    // elements kind with the site.
-    __ mov(ebx, instr->hydrogen()->site());
-  } else {
-    __ mov(ebx, isolate()->factory()->undefined_value());
-  }
+  __ mov(ebx, instr->hydrogen()->site());
 
   ElementsKind kind = instr->hydrogen()->elements_kind();
   AllocationSiteOverrideMode override_mode =
@@ -3920,7 +3857,7 @@
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
     __ bind(&done);
   } else {
-    ArrayNArgumentsConstructorStub stub(isolate(), kind, override_mode);
+    ArrayNArgumentsConstructorStub stub(isolate());
     CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
   }
 }
@@ -4047,14 +3984,12 @@
   DCHECK(ToRegister(instr->object()).is(StoreDescriptor::ReceiverRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreNamedGeneric>(instr);
 
   __ mov(StoreDescriptor::NameRegister(), instr->name());
-  Handle<Code> ic = CodeFactory::StoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+  Handle<Code> ic =
+      CodeFactory::StoreICInOptimizedCode(isolate(), instr->language_mode())
+          .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4116,9 +4051,7 @@
     __ fst_d(MemOperand(esp, 0));
     __ lea(esp, Operand(esp, kDoubleSize));
     int offset = sizeof(kHoleNanUpper32);
-    // x87 converts sNaN(0xfff7fffffff7ffff) to QNaN(0xfffffffffff7ffff),
-    // so we check the upper with 0xffffffff for hole as a temporary fix.
-    __ cmp(MemOperand(esp, -offset), Immediate(0xffffffff));
+    __ cmp(MemOperand(esp, -offset), Immediate(kHoleNanUpper32));
     __ j(not_equal, &no_special_nan_handling, Label::kNear);
     __ mov(operand, Immediate(lower));
     __ mov(operand2, Immediate(upper));
@@ -4204,9 +4137,7 @@
       __ fst_d(MemOperand(esp, 0));
       __ lea(esp, Operand(esp, kDoubleSize));
       int offset = sizeof(kHoleNanUpper32);
-      // x87 converts sNaN(0xfff7fffffff7ffff) to QNaN(0xfffffffffff7ffff),
-      // so we check the upper with 0xffffffff for hole as a temporary fix.
-      __ cmp(MemOperand(esp, -offset), Immediate(0xffffffff));
+      __ cmp(MemOperand(esp, -offset), Immediate(kHoleNanUpper32));
       __ j(not_equal, &no_special_nan_handling, Label::kNear);
       __ mov(double_store_operand, Immediate(lower));
       __ mov(double_store_operand2, Immediate(upper));
@@ -4277,13 +4208,11 @@
   DCHECK(ToRegister(instr->key()).is(StoreDescriptor::NameRegister()));
   DCHECK(ToRegister(instr->value()).is(StoreDescriptor::ValueRegister()));
 
-  if (instr->hydrogen()->HasVectorAndSlot()) {
-    EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
-  }
+  EmitVectorStoreICRegisters<LStoreKeyedGeneric>(instr);
 
   Handle<Code> ic = CodeFactory::KeyedStoreICInOptimizedCode(
-                        isolate(), instr->language_mode(),
-                        instr->hydrogen()->initialization_state()).code();
+                        isolate(), instr->language_mode())
+                        .code();
   CallCode(ic, RelocInfo::CODE_TARGET, instr);
 }
 
@@ -4425,8 +4354,7 @@
     DCHECK(object_reg.is(eax));
     PushSafepointRegistersScope scope(this);
     __ mov(ebx, to_map);
-    bool is_js_array = from_map->instance_type() == JS_ARRAY_TYPE;
-    TransitionElementsKindStub stub(isolate(), from_kind, to_kind, is_js_array);
+    TransitionElementsKindStub stub(isolate(), from_kind, to_kind);
     __ CallStub(&stub);
     RecordSafepointWithLazyDeopt(instr,
         RECORD_SAFEPOINT_WITH_REGISTERS_AND_NO_ARGUMENTS);
@@ -5373,21 +5301,6 @@
 }
 
 
-void LCodeGen::DoConstructDouble(LConstructDouble* instr) {
-  Register hi_reg = ToRegister(instr->hi());
-  Register lo_reg = ToRegister(instr->lo());
-  X87Register result_reg = ToX87Register(instr->result());
-  // Follow below pattern to write a x87 fp register.
-  X87PrepareToWrite(result_reg);
-  __ sub(esp, Immediate(kDoubleSize));
-  __ mov(Operand(esp, 0), lo_reg);
-  __ mov(Operand(esp, kPointerSize), hi_reg);
-  __ fld_d(Operand(esp, 0));
-  __ add(esp, Immediate(kDoubleSize));
-  X87CommitWrite(result_reg);
-}
-
-
 void LCodeGen::DoAllocate(LAllocate* instr) {
   class DeferredAllocate final : public LDeferredCode {
    public:
diff --git a/src/crankshaft/x87/lithium-gap-resolver-x87.cc b/src/crankshaft/x87/lithium-gap-resolver-x87.cc
index aa91835..6bfc2e2 100644
--- a/src/crankshaft/x87/lithium-gap-resolver-x87.cc
+++ b/src/crankshaft/x87/lithium-gap-resolver-x87.cc
@@ -168,8 +168,7 @@
 
 Register LGapResolver::GetFreeRegisterNot(Register reg) {
   int skip_index = reg.is(no_reg) ? -1 : reg.code();
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] == 0 && destination_uses_[code] > 0 &&
@@ -184,8 +183,7 @@
 bool LGapResolver::HasBeenReset() {
   if (!moves_.is_empty()) return false;
   if (spilled_register_ >= 0) return false;
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] != 0) return false;
@@ -239,8 +237,7 @@
 
   // 3. Prefer to spill a register that is not used in any remaining move
   // because it will not need to be restored until the end.
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     if (source_uses_[code] == 0 && destination_uses_[code] == 0) {
diff --git a/src/crankshaft/x87/lithium-x87.cc b/src/crankshaft/x87/lithium-x87.cc
index 7df70ae..23941ad 100644
--- a/src/crankshaft/x87/lithium-x87.cc
+++ b/src/crankshaft/x87/lithium-x87.cc
@@ -1110,15 +1110,28 @@
 
 LInstruction* LChunkBuilder::DoUnaryMathOperation(HUnaryMathOperation* instr) {
   switch (instr->op()) {
-    case kMathFloor: return DoMathFloor(instr);
-    case kMathRound: return DoMathRound(instr);
-    case kMathFround: return DoMathFround(instr);
-    case kMathAbs: return DoMathAbs(instr);
-    case kMathLog: return DoMathLog(instr);
-    case kMathExp: return DoMathExp(instr);
-    case kMathSqrt: return DoMathSqrt(instr);
-    case kMathPowHalf: return DoMathPowHalf(instr);
-    case kMathClz32: return DoMathClz32(instr);
+    case kMathCos:
+      return DoMathCos(instr);
+    case kMathFloor:
+      return DoMathFloor(instr);
+    case kMathRound:
+      return DoMathRound(instr);
+    case kMathFround:
+      return DoMathFround(instr);
+    case kMathAbs:
+      return DoMathAbs(instr);
+    case kMathLog:
+      return DoMathLog(instr);
+    case kMathExp:
+      return DoMathExp(instr);
+    case kMathSqrt:
+      return DoMathSqrt(instr);
+    case kMathPowHalf:
+      return DoMathPowHalf(instr);
+    case kMathClz32:
+      return DoMathClz32(instr);
+    case kMathSin:
+      return DoMathSin(instr);
     default:
       UNREACHABLE();
       return NULL;
@@ -1173,15 +1186,25 @@
   return DefineAsRegister(result);
 }
 
+LInstruction* LChunkBuilder::DoMathCos(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathCos(input)), instr);
+}
+
+LInstruction* LChunkBuilder::DoMathSin(HUnaryMathOperation* instr) {
+  DCHECK(instr->representation().IsDouble());
+  DCHECK(instr->value()->representation().IsDouble());
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathSin(input)), instr);
+}
 
 LInstruction* LChunkBuilder::DoMathExp(HUnaryMathOperation* instr) {
   DCHECK(instr->representation().IsDouble());
   DCHECK(instr->value()->representation().IsDouble());
-  LOperand* value = UseRegisterAtStart(instr->value());
-  LOperand* temp1 = FixedTemp(ecx);
-  LOperand* temp2 = FixedTemp(edx);
-  LMathExp* result = new(zone()) LMathExp(value, temp1, temp2);
-  return MarkAsCall(DefineSameAsFirst(result), instr);
+  LOperand* input = UseRegisterAtStart(instr->value());
+  return MarkAsCall(DefineSameAsFirst(new (zone()) LMathExp(input)), instr);
 }
 
 
@@ -1969,13 +1992,6 @@
 }
 
 
-LInstruction* LChunkBuilder::DoConstructDouble(HConstructDouble* instr) {
-  LOperand* lo = UseRegister(instr->lo());
-  LOperand* hi = UseRegister(instr->hi());
-  return DefineAsRegister(new(zone()) LConstructDouble(hi, lo));
-}
-
-
 LInstruction* LChunkBuilder::DoReturn(HReturn* instr) {
   LOperand* context = info()->IsStub() ? UseFixed(instr->context(), esi) : NULL;
   LOperand* parameter_count = UseRegisterOrConstant(instr->parameter_count());
@@ -2005,15 +2021,9 @@
 
 LInstruction* LChunkBuilder::DoLoadGlobalGeneric(HLoadGlobalGeneric* instr) {
   LOperand* context = UseFixed(instr->context(), esi);
-  LOperand* global_object =
-      UseFixed(instr->global_object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
 
-  LLoadGlobalGeneric* result =
-      new(zone()) LLoadGlobalGeneric(context, global_object, vector);
+  LLoadGlobalGeneric* result = new (zone()) LLoadGlobalGeneric(context, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
 }
 
@@ -2061,10 +2071,7 @@
   LOperand* context = UseFixed(instr->context(), esi);
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
   LLoadNamedGeneric* result = new(zone()) LLoadNamedGeneric(
       context, object, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
@@ -2134,10 +2141,7 @@
   LOperand* object =
       UseFixed(instr->object(), LoadDescriptor::ReceiverRegister());
   LOperand* key = UseFixed(instr->key(), LoadDescriptor::NameRegister());
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
-  }
+  LOperand* vector = FixedTemp(LoadWithVectorDescriptor::VectorRegister());
   LLoadKeyedGeneric* result =
       new(zone()) LLoadKeyedGeneric(context, object, key, vector);
   return MarkAsCall(DefineFixed(result, eax), instr);
@@ -2227,12 +2231,8 @@
   DCHECK(instr->key()->representation().IsTagged());
   DCHECK(instr->value()->representation().IsTagged());
 
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreKeyedGeneric* result = new (zone())
       LStoreKeyedGeneric(context, object, key, value, slot, vector);
@@ -2346,12 +2346,8 @@
   LOperand* object =
       UseFixed(instr->object(), StoreDescriptor::ReceiverRegister());
   LOperand* value = UseFixed(instr->value(), StoreDescriptor::ValueRegister());
-  LOperand* slot = NULL;
-  LOperand* vector = NULL;
-  if (instr->HasVectorAndSlot()) {
-    slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
-    vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
-  }
+  LOperand* slot = FixedTemp(VectorStoreICDescriptor::SlotRegister());
+  LOperand* vector = FixedTemp(VectorStoreICDescriptor::VectorRegister());
 
   LStoreNamedGeneric* result =
       new (zone()) LStoreNamedGeneric(context, object, value, slot, vector);
diff --git a/src/crankshaft/x87/lithium-x87.h b/src/crankshaft/x87/lithium-x87.h
index 98703ae..d05d6eb 100644
--- a/src/crankshaft/x87/lithium-x87.h
+++ b/src/crankshaft/x87/lithium-x87.h
@@ -58,7 +58,6 @@
   V(ConstantI)                               \
   V(ConstantS)                               \
   V(ConstantT)                               \
-  V(ConstructDouble)                         \
   V(Context)                                 \
   V(DebugBreak)                              \
   V(DeclareGlobals)                          \
@@ -103,6 +102,7 @@
   V(LoadRoot)                                \
   V(MathAbs)                                 \
   V(MathClz32)                               \
+  V(MathCos)                                 \
   V(MathExp)                                 \
   V(MathFloor)                               \
   V(MathFround)                              \
@@ -112,6 +112,7 @@
   V(MathRound)                               \
   V(MathSqrt)                                \
   V(MaybeGrowElements)                       \
+  V(MathSin)                                 \
   V(ModByConstI)                             \
   V(ModByPowerOf2I)                          \
   V(ModI)                                    \
@@ -904,21 +905,29 @@
   DECLARE_CONCRETE_INSTRUCTION(MathClz32, "math-clz32")
 };
 
-
-class LMathExp final : public LTemplateInstruction<1, 1, 2> {
+class LMathCos final : public LTemplateInstruction<1, 1, 0> {
  public:
-  LMathExp(LOperand* value,
-           LOperand* temp1,
-           LOperand* temp2) {
-    inputs_[0] = value;
-    temps_[0] = temp1;
-    temps_[1] = temp2;
-    ExternalReference::InitializeMathExpData();
-  }
+  explicit LMathCos(LOperand* value) { inputs_[0] = value; }
 
   LOperand* value() { return inputs_[0]; }
-  LOperand* temp1() { return temps_[0]; }
-  LOperand* temp2() { return temps_[1]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
+};
+
+class LMathSin final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathSin(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
+
+  DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
+};
+
+class LMathExp final : public LTemplateInstruction<1, 1, 0> {
+ public:
+  explicit LMathExp(LOperand* value) { inputs_[0] = value; }
+
+  LOperand* value() { return inputs_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(MathExp, "math-exp")
 };
@@ -1579,18 +1588,14 @@
   DECLARE_HYDROGEN_ACCESSOR(LoadKeyedGeneric)
 };
 
-
-class LLoadGlobalGeneric final : public LTemplateInstruction<1, 2, 1> {
+class LLoadGlobalGeneric final : public LTemplateInstruction<1, 1, 1> {
  public:
-  LLoadGlobalGeneric(LOperand* context, LOperand* global_object,
-                     LOperand* vector) {
+  LLoadGlobalGeneric(LOperand* context, LOperand* vector) {
     inputs_[0] = context;
-    inputs_[1] = global_object;
     temps_[0] = vector;
   }
 
   LOperand* context() { return inputs_[0]; }
-  LOperand* global_object() { return inputs_[1]; }
   LOperand* temp_vector() { return temps_[0]; }
 
   DECLARE_CONCRETE_INSTRUCTION(LoadGlobalGeneric, "load-global-generic")
@@ -2351,20 +2356,6 @@
 };
 
 
-class LConstructDouble final : public LTemplateInstruction<1, 2, 0> {
- public:
-  LConstructDouble(LOperand* hi, LOperand* lo) {
-    inputs_[0] = hi;
-    inputs_[1] = lo;
-  }
-
-  LOperand* hi() { return inputs_[0]; }
-  LOperand* lo() { return inputs_[1]; }
-
-  DECLARE_CONCRETE_INSTRUCTION(ConstructDouble, "construct-double")
-};
-
-
 class LAllocate final : public LTemplateInstruction<1, 2, 1> {
  public:
   LAllocate(LOperand* context, LOperand* size, LOperand* temp) {
@@ -2548,6 +2539,8 @@
   LInstruction* DoMathFround(HUnaryMathOperation* instr);
   LInstruction* DoMathAbs(HUnaryMathOperation* instr);
   LInstruction* DoMathLog(HUnaryMathOperation* instr);
+  LInstruction* DoMathCos(HUnaryMathOperation* instr);
+  LInstruction* DoMathSin(HUnaryMathOperation* instr);
   LInstruction* DoMathExp(HUnaryMathOperation* instr);
   LInstruction* DoMathSqrt(HUnaryMathOperation* instr);
   LInstruction* DoMathPowHalf(HUnaryMathOperation* instr);
diff --git a/src/d8-posix.cc b/src/d8-posix.cc
index 36d83b5..fb14f95 100644
--- a/src/d8-posix.cc
+++ b/src/d8-posix.cc
@@ -531,21 +531,18 @@
   OpenFDCloser error_read_closer(exec_error_fds[kReadFD]);
   OpenFDCloser stdout_read_closer(stdout_fds[kReadFD]);
 
-  if (!ChildLaunchedOK(args.GetIsolate(), exec_error_fds)) return;
+  Isolate* isolate = args.GetIsolate();
+  if (!ChildLaunchedOK(isolate, exec_error_fds)) return;
 
-  Local<Value> accumulator = GetStdout(args.GetIsolate(), stdout_fds[kReadFD],
-                                       start_time, read_timeout, total_timeout);
+  Local<Value> accumulator = GetStdout(isolate, stdout_fds[kReadFD], start_time,
+                                       read_timeout, total_timeout);
   if (accumulator->IsUndefined()) {
     kill(pid, SIGINT);  // On timeout, kill the subprocess.
     args.GetReturnValue().Set(accumulator);
     return;
   }
 
-  if (!WaitForChild(args.GetIsolate(),
-                    pid,
-                    child_waiter,
-                    start_time,
-                    read_timeout,
+  if (!WaitForChild(isolate, pid, child_waiter, start_time, read_timeout,
                     total_timeout)) {
     return;
   }
diff --git a/src/d8.cc b/src/d8.cc
index 9466ab7..7b62707 100644
--- a/src/d8.cc
+++ b/src/d8.cc
@@ -338,7 +338,9 @@
     ScriptCompiler::CompileOptions compile_options, SourceType source_type) {
   Local<Context> context(isolate->GetCurrentContext());
   ScriptOrigin origin(name);
-  if (compile_options == ScriptCompiler::kNoCompileOptions) {
+  // TODO(adamk): Make use of compile options for Modules.
+  if (compile_options == ScriptCompiler::kNoCompileOptions ||
+      source_type == MODULE) {
     ScriptCompiler::Source script_source(source, origin);
     return source_type == SCRIPT
                ? ScriptCompiler::Compile(context, &script_source,
@@ -358,11 +360,9 @@
     DCHECK(false);  // A new compile option?
   }
   if (data == NULL) compile_options = ScriptCompiler::kNoCompileOptions;
+  DCHECK_EQ(SCRIPT, source_type);
   MaybeLocal<Script> result =
-      source_type == SCRIPT
-          ? ScriptCompiler::Compile(context, &cached_source, compile_options)
-          : ScriptCompiler::CompileModule(context, &cached_source,
-                                          compile_options);
+      ScriptCompiler::Compile(context, &cached_source, compile_options);
   CHECK(data == NULL || !data->rejected);
   return result;
 }
@@ -523,9 +523,8 @@
       Local<Context>::New(args.GetIsolate(), data->realms_[index])->Global());
 }
 
-
-// Realm.create() creates a new realm and returns its index.
-void Shell::RealmCreate(const v8::FunctionCallbackInfo<v8::Value>& args) {
+MaybeLocal<Context> Shell::CreateRealm(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
   Isolate* isolate = args.GetIsolate();
   TryCatch try_catch(isolate);
   PerIsolateData* data = PerIsolateData::Get(isolate);
@@ -542,12 +541,29 @@
   if (context.IsEmpty()) {
     DCHECK(try_catch.HasCaught());
     try_catch.ReThrow();
-    return;
+    return MaybeLocal<Context>();
   }
   data->realms_[index].Reset(isolate, context);
   args.GetReturnValue().Set(index);
+  return context;
 }
 
+// Realm.create() creates a new realm with a distinct security token
+// and returns its index.
+void Shell::RealmCreate(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  CreateRealm(args);
+}
+
+// Realm.createAllowCrossRealmAccess() creates a new realm with the same
+// security token as the current realm.
+void Shell::RealmCreateAllowCrossRealmAccess(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
+  Local<Context> context;
+  if (CreateRealm(args).ToLocal(&context)) {
+    context->SetSecurityToken(
+        args.GetIsolate()->GetEnteredContext()->GetSecurityToken());
+  }
+}
 
 // Realm.dispose(i) disposes the reference to the realm i.
 void Shell::RealmDispose(const v8::FunctionCallbackInfo<v8::Value>& args) {
@@ -909,25 +925,28 @@
     // Print (filename):(line number): (message).
     v8::String::Utf8Value filename(message->GetScriptOrigin().ResourceName());
     const char* filename_string = ToCString(filename);
-    int linenum =
-        message->GetLineNumber(isolate->GetCurrentContext()).FromJust();
+    Maybe<int> maybeline = message->GetLineNumber(isolate->GetCurrentContext());
+    int linenum = maybeline.IsJust() ? maybeline.FromJust() : -1;
     printf("%s:%i: %s\n", filename_string, linenum, exception_string);
-    // Print line of source code.
-    v8::String::Utf8Value sourceline(
-        message->GetSourceLine(isolate->GetCurrentContext()).ToLocalChecked());
-    const char* sourceline_string = ToCString(sourceline);
-    printf("%s\n", sourceline_string);
-    // Print wavy underline (GetUnderline is deprecated).
-    int start =
-        message->GetStartColumn(isolate->GetCurrentContext()).FromJust();
-    for (int i = 0; i < start; i++) {
-      printf(" ");
+    Local<String> sourceline;
+    if (message->GetSourceLine(isolate->GetCurrentContext())
+            .ToLocal(&sourceline)) {
+      // Print line of source code.
+      v8::String::Utf8Value sourcelinevalue(sourceline);
+      const char* sourceline_string = ToCString(sourcelinevalue);
+      printf("%s\n", sourceline_string);
+      // Print wavy underline (GetUnderline is deprecated).
+      int start =
+          message->GetStartColumn(isolate->GetCurrentContext()).FromJust();
+      for (int i = 0; i < start; i++) {
+        printf(" ");
+      }
+      int end = message->GetEndColumn(isolate->GetCurrentContext()).FromJust();
+      for (int i = start; i < end; i++) {
+        printf("^");
+      }
+      printf("\n");
     }
-    int end = message->GetEndColumn(isolate->GetCurrentContext()).FromJust();
-    for (int i = start; i < end; i++) {
-      printf("^");
-    }
-    printf("\n");
     Local<Value> stack_trace_string;
     if (try_catch->StackTrace(isolate->GetCurrentContext())
             .ToLocal(&stack_trace_string) &&
@@ -1116,6 +1135,10 @@
       String::NewFromUtf8(isolate, "version", NewStringType::kNormal)
           .ToLocalChecked(),
       FunctionTemplate::New(isolate, Version));
+  global_template->Set(
+      Symbol::GetToStringTag(isolate),
+      String::NewFromUtf8(isolate, "global", NewStringType::kNormal)
+          .ToLocalChecked());
 
   // Bind the Realm object.
   Local<ObjectTemplate> realm_template = ObjectTemplate::New(isolate);
@@ -1136,6 +1159,11 @@
           .ToLocalChecked(),
       FunctionTemplate::New(isolate, RealmCreate));
   realm_template->Set(
+      String::NewFromUtf8(isolate, "createAllowCrossRealmAccess",
+                          NewStringType::kNormal)
+          .ToLocalChecked(),
+      FunctionTemplate::New(isolate, RealmCreateAllowCrossRealmAccess));
+  realm_template->Set(
       String::NewFromUtf8(isolate, "dispose", NewStringType::kNormal)
           .ToLocalChecked(),
       FunctionTemplate::New(isolate, RealmDispose));
@@ -2401,7 +2429,7 @@
 #endif  // defined(_MSC_VER)
 #endif  // defined(_WIN32) || defined(_WIN64)
   if (!SetOptions(argc, argv)) return 1;
-  v8::V8::InitializeICU(options.icu_data_file);
+  v8::V8::InitializeICUDefaultLocation(argv[0], options.icu_data_file);
 #ifndef V8_SHARED
   g_platform = i::FLAG_verify_predictable
                    ? new PredictablePlatform()
diff --git a/src/d8.h b/src/d8.h
index e51e8ee..36ec43e 100644
--- a/src/d8.h
+++ b/src/d8.h
@@ -7,8 +7,8 @@
 
 #ifndef V8_SHARED
 #include "src/allocation.h"
+#include "src/base/hashmap.h"
 #include "src/base/platform/time.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #else
 #include "include/v8.h"
@@ -61,13 +61,13 @@
  public:
   CounterMap(): hash_map_(Match) { }
   Counter* Lookup(const char* name) {
-    i::HashMap::Entry* answer =
+    base::HashMap::Entry* answer =
         hash_map_.Lookup(const_cast<char*>(name), Hash(name));
     if (!answer) return NULL;
     return reinterpret_cast<Counter*>(answer->value);
   }
   void Set(const char* name, Counter* value) {
-    i::HashMap::Entry* answer =
+    base::HashMap::Entry* answer =
         hash_map_.LookupOrInsert(const_cast<char*>(name), Hash(name));
     DCHECK(answer != NULL);
     answer->value = value;
@@ -81,14 +81,14 @@
     const char* CurrentKey() { return static_cast<const char*>(entry_->key); }
     Counter* CurrentValue() { return static_cast<Counter*>(entry_->value); }
    private:
-    i::HashMap* map_;
-    i::HashMap::Entry* entry_;
+    base::HashMap* map_;
+    base::HashMap::Entry* entry_;
   };
 
  private:
   static int Hash(const char* name);
   static bool Match(void* key1, void* key2);
-  i::HashMap hash_map_;
+  base::HashMap hash_map_;
 };
 #endif  // !V8_SHARED
 
@@ -350,7 +350,7 @@
 
 #ifndef V8_SHARED
   // TODO(binji): stupid implementation for now. Is there an easy way to hash an
-  // object for use in i::HashMap? By pointer?
+  // object for use in base::HashMap? By pointer?
   typedef i::List<Local<Object>> ObjectList;
   static bool SerializeValue(Isolate* isolate, Local<Value> value,
                              const ObjectList& to_transfer,
@@ -375,6 +375,8 @@
   static void RealmOwner(const v8::FunctionCallbackInfo<v8::Value>& args);
   static void RealmGlobal(const v8::FunctionCallbackInfo<v8::Value>& args);
   static void RealmCreate(const v8::FunctionCallbackInfo<v8::Value>& args);
+  static void RealmCreateAllowCrossRealmAccess(
+      const v8::FunctionCallbackInfo<v8::Value>& args);
   static void RealmDispose(const v8::FunctionCallbackInfo<v8::Value>& args);
   static void RealmSwitch(const v8::FunctionCallbackInfo<v8::Value>& args);
   static void RealmEval(const v8::FunctionCallbackInfo<v8::Value>& args);
@@ -469,6 +471,8 @@
   static void RunShell(Isolate* isolate);
   static bool SetOptions(int argc, char* argv[]);
   static Local<ObjectTemplate> CreateGlobalTemplate(Isolate* isolate);
+  static MaybeLocal<Context> CreateRealm(
+      const v8::FunctionCallbackInfo<v8::Value>& args);
 };
 
 
diff --git a/src/dateparser-inl.h b/src/dateparser-inl.h
index 7e5c4e3..47a7c6e 100644
--- a/src/dateparser-inl.h
+++ b/src/dateparser-inl.h
@@ -13,9 +13,8 @@
 namespace internal {
 
 template <typename Char>
-bool DateParser::Parse(Vector<Char> str,
-                       FixedArray* out,
-                       UnicodeCache* unicode_cache) {
+bool DateParser::Parse(Isolate* isolate, Vector<Char> str, FixedArray* out) {
+  UnicodeCache* unicode_cache = isolate->unicode_cache();
   DCHECK(out->length() >= OUTPUT_SIZE);
   InputReader<Char> in(unicode_cache, str);
   DateStringTokenizer<Char> scanner(&in);
@@ -76,10 +75,12 @@
   if (next_unhandled_token.IsInvalid()) return false;
   bool has_read_number = !day.IsEmpty();
   // If there's anything left, continue with the legacy parser.
+  bool legacy_parser = false;
   for (DateToken token = next_unhandled_token;
        !token.IsEndOfInput();
        token = scanner.Next()) {
     if (token.IsNumber()) {
+      legacy_parser = true;
       has_read_number = true;
       int n = token.number();
       if (scanner.SkipSymbol(':')) {
@@ -115,6 +116,7 @@
         scanner.SkipSymbol('-');
       }
     } else if (token.IsKeyword()) {
+      legacy_parser = true;
       // Parse a "word" (sequence of chars. >= 'A').
       KeywordType type = token.keyword_type();
       int value = token.keyword_value();
@@ -133,6 +135,7 @@
         if (scanner.Peek().IsNumber()) return false;
       }
     } else if (token.IsAsciiSign() && (tz.IsUTC() || !time.IsEmpty())) {
+      legacy_parser = true;
       // Parse UTC offset (only after UTC or time).
       tz.SetSign(token.ascii_sign());
       // The following number may be empty.
@@ -170,7 +173,13 @@
     }
   }
 
-  return day.Write(out) && time.Write(out) && tz.Write(out);
+  bool success = day.Write(out) && time.Write(out) && tz.Write(out);
+
+  if (legacy_parser && success) {
+    isolate->CountUsage(v8::Isolate::kLegacyDateParser);
+  }
+
+  return success;
 }
 
 
diff --git a/src/dateparser.h b/src/dateparser.h
index 5331739..d7676cb 100644
--- a/src/dateparser.h
+++ b/src/dateparser.h
@@ -26,7 +26,7 @@
   // [7]: UTC offset in seconds, or null value if no timezone specified
   // If parsing fails, return false (content of output array is not defined).
   template <typename Char>
-  static bool Parse(Vector<Char> str, FixedArray* output, UnicodeCache* cache);
+  static bool Parse(Isolate* isolate, Vector<Char> str, FixedArray* output);
 
   enum {
     YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECOND, UTC_OFFSET, OUTPUT_SIZE
diff --git a/src/debug/arm/debug-arm.cc b/src/debug/arm/debug-arm.cc
index fa3540e..29e4827 100644
--- a/src/debug/arm/debug-arm.cc
+++ b/src/debug/arm/debug-arm.cc
@@ -41,7 +41,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotInstructions);
   // Patch the code changing the debug break slot code from
   //   mov r2, r2
diff --git a/src/debug/arm64/debug-arm64.cc b/src/debug/arm64/debug-arm64.cc
index cd01721..bf7964a 100644
--- a/src/debug/arm64/debug-arm64.cc
+++ b/src/debug/arm64/debug-arm64.cc
@@ -43,7 +43,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   PatchingAssembler patcher(isolate, reinterpret_cast<Instruction*>(pc),
                             Assembler::kDebugBreakSlotInstructions);
   // Patch the code emitted by DebugCodegen::GenerateSlots, changing the debug
diff --git a/src/debug/debug-evaluate.cc b/src/debug/debug-evaluate.cc
index d5ebaa5..62b7a2b 100644
--- a/src/debug/debug-evaluate.cc
+++ b/src/debug/debug-evaluate.cc
@@ -250,7 +250,7 @@
     // referenced by the current function, so it can be correctly resolved.
     return;
   } else if (local_function->shared()->scope_info()->HasReceiver() &&
-             !frame_->receiver()->IsTheHole()) {
+             !frame_->receiver()->IsTheHole(isolate_)) {
     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 453a77d..b1a8af2 100644
--- a/src/debug/debug-frames.cc
+++ b/src/debug/debug-frames.cc
@@ -123,7 +123,7 @@
         i < GetParametersCount()
             ? GetParameter(i)
             : Handle<Object>::cast(isolate_->factory()->undefined_value());
-    DCHECK(!value->IsTheHole());
+    DCHECK(!value->IsTheHole(isolate_));
 
     JSObject::SetOwnPropertyIgnoreAttributes(target, name, value, NONE).Check();
   }
@@ -135,8 +135,12 @@
     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.
-    if (value->IsTheHole()) value = isolate_->factory()->undefined_value();
-    if (value->IsOptimizedOut()) value = isolate_->factory()->undefined_value();
+    if (value->IsTheHole(isolate_)) {
+      value = isolate_->factory()->undefined_value();
+    }
+    if (value->IsOptimizedOut(isolate_)) {
+      value = isolate_->factory()->undefined_value();
+    }
     JSObject::SetOwnPropertyIgnoreAttributes(target, name, value, NONE).Check();
   }
 }
@@ -166,7 +170,7 @@
     if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     if (ParameterIsShadowedByContextLocal(scope_info, name)) continue;
 
-    DCHECK(!frame_->GetParameter(i)->IsTheHole());
+    DCHECK(!frame_->GetParameter(i)->IsTheHole(isolate_));
     Handle<Object> value =
         Object::GetPropertyOrElement(target, name).ToHandleChecked();
     frame_->SetParameterValue(i, *value);
@@ -177,7 +181,7 @@
     Handle<String> name(scope_info->StackLocalName(i));
     if (ScopeInfo::VariableIsSynthetic(*name)) continue;
     int index = scope_info->StackLocalIndex(i);
-    if (frame_->GetExpression(index)->IsTheHole()) continue;
+    if (frame_->GetExpression(index)->IsTheHole(isolate_)) continue;
     Handle<Object> value =
         Object::GetPropertyOrElement(target, name).ToHandleChecked();
     frame_->SetExpression(index, *value);
diff --git a/src/debug/debug-scopes.cc b/src/debug/debug-scopes.cc
index 1602711..400b1e1 100644
--- a/src/debug/debug-scopes.cc
+++ b/src/debug/debug-scopes.cc
@@ -34,7 +34,7 @@
   Handle<JSFunction> function = GetFunction();
   Handle<SharedFunctionInfo> shared_info(function->shared());
   Handle<ScopeInfo> scope_info(shared_info->scope_info());
-  if (shared_info->script() == isolate->heap()->undefined_value()) {
+  if (shared_info->script()->IsUndefined(isolate)) {
     while (context_->closure() == *function) {
       context_ = Handle<Context>(context_->previous(), isolate_);
     }
@@ -494,7 +494,7 @@
   if (function_context->closure() == *function &&
       !function_context->IsNativeContext()) {
     CopyContextExtensionToScopeObject(function_context, local_scope,
-                                      INCLUDE_PROTOS);
+                                      KeyCollectionMode::kIncludePrototypes);
   }
 
   return local_scope;
@@ -520,7 +520,8 @@
 
   // Finally copy any properties from the function context extension. This will
   // be variables introduced by eval.
-  CopyContextExtensionToScopeObject(context, closure_scope, OWN_ONLY);
+  CopyContextExtensionToScopeObject(context, closure_scope,
+                                    KeyCollectionMode::kOwnOnly);
 
   return closure_scope;
 }
@@ -571,7 +572,8 @@
   if (!context.is_null()) {
     // Fill all context locals.
     CopyContextLocalsToScopeObject(CurrentScopeInfo(), context, inner_scope);
-    CopyContextExtensionToScopeObject(context, inner_scope, OWN_ONLY);
+    CopyContextExtensionToScopeObject(context, inner_scope,
+                                      KeyCollectionMode::kOwnOnly);
   }
   return inner_scope;
 }
@@ -754,7 +756,7 @@
     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;
+    if (value->IsTheHole(isolate)) continue;
     // This should always succeed.
     // TODO(verwaest): Use AddDataProperty instead.
     JSObject::SetOwnPropertyIgnoreAttributes(scope_object, name, value, NONE)
@@ -764,11 +766,11 @@
 
 void ScopeIterator::CopyContextExtensionToScopeObject(
     Handle<Context> context, Handle<JSObject> scope_object,
-    KeyCollectionType type) {
+    KeyCollectionMode mode) {
   if (context->extension_object() == nullptr) return;
   Handle<JSObject> extension(context->extension_object());
   Handle<FixedArray> keys =
-      JSReceiver::GetKeys(extension, type, ENUMERABLE_STRINGS)
+      KeyAccumulator::GetKeys(extension, mode, ENUMERABLE_STRINGS)
           .ToHandleChecked();
 
   for (int i = 0; i < keys->length(); i++) {
@@ -784,6 +786,12 @@
 
 void ScopeIterator::GetNestedScopeChain(Isolate* isolate, Scope* scope,
                                         int position) {
+  if (scope->is_function_scope()) {
+    // Do not collect scopes of nested inner functions inside the current one.
+    Handle<JSFunction> function =
+        Handle<JSFunction>::cast(frame_inspector_->GetFunction());
+    if (scope->end_position() < function->shared()->end_position()) return;
+  }
   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.
diff --git a/src/debug/debug-scopes.h b/src/debug/debug-scopes.h
index 9560227..1338e7b 100644
--- a/src/debug/debug-scopes.h
+++ b/src/debug/debug-scopes.h
@@ -153,7 +153,7 @@
                                       Handle<JSObject> scope_object);
   void CopyContextExtensionToScopeObject(Handle<Context> context,
                                          Handle<JSObject> scope_object,
-                                         KeyCollectionType type);
+                                         KeyCollectionMode mode);
 
   // Get the chain of nested scopes within this scope for the source statement
   // position. The scopes will be added to the list from the outermost scope to
diff --git a/src/debug/debug.cc b/src/debug/debug.cc
index 3b5fb5f..c69b04b 100644
--- a/src/debug/debug.cc
+++ b/src/debug/debug.cc
@@ -477,8 +477,8 @@
   thread_local_.last_statement_position_ = RelocInfo::kNoPosition;
   thread_local_.last_fp_ = 0;
   thread_local_.target_fp_ = 0;
-  thread_local_.step_in_enabled_ = false;
   thread_local_.return_value_ = Handle<Object>();
+  clear_suspended_generator();
   // TODO(isolates): frames_are_dropped_?
   base::NoBarrier_Store(&thread_local_.current_debug_scope_,
                         static_cast<base::AtomicWord>(0));
@@ -486,25 +486,24 @@
 
 
 char* Debug::ArchiveDebug(char* storage) {
-  char* to = storage;
-  MemCopy(to, reinterpret_cast<char*>(&thread_local_), sizeof(ThreadLocal));
+  // Simply reset state. Don't archive anything.
   ThreadInit();
   return storage + ArchiveSpacePerThread();
 }
 
 
 char* Debug::RestoreDebug(char* storage) {
-  char* from = storage;
-  MemCopy(reinterpret_cast<char*>(&thread_local_), from, sizeof(ThreadLocal));
+  // Simply reset state. Don't restore anything.
+  ThreadInit();
   return storage + ArchiveSpacePerThread();
 }
 
+int Debug::ArchiveSpacePerThread() { return 0; }
 
-int Debug::ArchiveSpacePerThread() {
-  return sizeof(ThreadLocal);
+void Debug::Iterate(ObjectVisitor* v) {
+  v->VisitPointer(&thread_local_.suspended_generator_);
 }
 
-
 DebugInfoListNode::DebugInfoListNode(DebugInfo* debug_info): next_(NULL) {
   // Globalize the request debug info object and make it weak.
   GlobalHandles* global_handles = debug_info->GetIsolate()->global_handles();
@@ -537,9 +536,13 @@
   // Create the debugger context.
   HandleScope scope(isolate_);
   ExtensionConfiguration no_extensions;
+  // TODO(yangguo): we rely on the fact that first context snapshot is usable
+  //                as debug context. This dependency is gone once we remove
+  //                debug context completely.
+  static const int kFirstContextSnapshotIndex = 0;
   Handle<Context> context = isolate_->bootstrapper()->CreateEnvironment(
       MaybeHandle<JSGlobalProxy>(), v8::Local<ObjectTemplate>(), &no_extensions,
-      DEBUG_CONTEXT);
+      kFirstContextSnapshotIndex, DEBUG_CONTEXT);
 
   // Fail if no context could be created.
   if (context.is_null()) return false;
@@ -588,14 +591,14 @@
     // Return if we failed to retrieve the debug info.
     return;
   }
-  Handle<DebugInfo> debug_info(shared->GetDebugInfo());
+  Handle<DebugInfo> debug_info(shared->GetDebugInfo(), isolate_);
 
   // Find the break location where execution has stopped.
   BreakLocation location = BreakLocation::FromFrame(debug_info, frame);
 
   // Find actual break points, if any, and trigger debug break event.
   Handle<Object> break_points_hit = CheckBreakPoints(&location);
-  if (!break_points_hit->IsUndefined()) {
+  if (!break_points_hit->IsUndefined(isolate_)) {
     // Clear all current stepping setup.
     ClearStepping();
     // Notify the debug event listeners.
@@ -666,7 +669,7 @@
   // they are in a FixedArray.
   Handle<FixedArray> break_points_hit;
   int break_points_hit_count = 0;
-  DCHECK(!break_point_objects->IsUndefined());
+  DCHECK(!break_point_objects->IsUndefined(isolate_));
   if (break_point_objects->IsFixedArray()) {
     Handle<FixedArray> array(FixedArray::cast(*break_point_objects));
     break_points_hit = factory->NewFixedArray(array->length());
@@ -714,7 +717,7 @@
     Handle<Object> check_result =
         CheckBreakPoints(&break_locations[i], &has_break_points);
     has_break_points_at_all |= has_break_points;
-    if (has_break_points && !check_result->IsUndefined()) return false;
+    if (has_break_points && !check_result->IsUndefined(isolate_)) return false;
   }
   return has_break_points_at_all;
 }
@@ -753,7 +756,7 @@
   }
 
   // Return whether the break point is triggered.
-  return result->IsTrue();
+  return result->IsTrue(isolate_);
 }
 
 
@@ -795,7 +798,7 @@
   // Obtain shared function info for the function.
   Handle<Object> result =
       FindSharedFunctionInfoInScript(script, *source_position);
-  if (result->IsUndefined()) return false;
+  if (result->IsUndefined(isolate_)) return false;
 
   // Make sure the function has set up the debug info.
   Handle<SharedFunctionInfo> shared = Handle<SharedFunctionInfo>::cast(result);
@@ -842,7 +845,7 @@
   while (node != NULL) {
     Handle<Object> result =
         DebugInfo::FindBreakPointInfo(node->debug_info(), break_point_object);
-    if (!result->IsUndefined()) {
+    if (!result->IsUndefined(isolate_)) {
       // Get information in the break point.
       Handle<BreakPointInfo> break_point_info =
           Handle<BreakPointInfo>::cast(result);
@@ -932,14 +935,22 @@
 
 
 void Debug::PrepareStepIn(Handle<JSFunction> function) {
+  CHECK(last_step_action() >= StepIn);
   if (!is_active()) return;
-  if (last_step_action() < StepIn) return;
   if (in_debug_scope()) return;
-  if (thread_local_.step_in_enabled_) {
-    FloodWithOneShot(function);
-  }
+  FloodWithOneShot(function);
 }
 
+void Debug::PrepareStepInSuspendedGenerator() {
+  CHECK(has_suspended_generator());
+  if (!is_active()) return;
+  if (in_debug_scope()) return;
+  thread_local_.last_step_action_ = StepIn;
+  Handle<JSFunction> function(
+      JSGeneratorObject::cast(thread_local_.suspended_generator_)->function());
+  FloodWithOneShot(function);
+  clear_suspended_generator();
+}
 
 void Debug::PrepareStepOnThrow() {
   if (!is_active()) return;
@@ -994,10 +1005,7 @@
 
   feature_tracker()->Track(DebugFeatureTracker::kStepping);
 
-  // Remember this step action and count.
   thread_local_.last_step_action_ = step_action;
-  STATIC_ASSERT(StepFrame > StepIn);
-  thread_local_.step_in_enabled_ = (step_action >= StepIn);
 
   // If the function on the top frame is unresolved perform step out. This will
   // be the case when calling unknown function and having the debugger stopped
@@ -1041,6 +1049,8 @@
       debug_info->abstract_code()->SourceStatementPosition(
           summary.code_offset());
   thread_local_.last_fp_ = frame->UnpaddedFP();
+  // No longer perform the current async step.
+  clear_suspended_generator();
 
   switch (step_action) {
     case StepNone:
@@ -1057,11 +1067,7 @@
         Deoptimizer::DeoptimizeFunction(frames_it.frame()->function());
         frames_it.Advance();
       }
-      if (frames_it.done()) {
-        // Stepping out to the embedder. Disable step-in to avoid stepping into
-        // the next (unrelated) call that the embedder makes.
-        thread_local_.step_in_enabled_ = false;
-      } else {
+      if (!frames_it.done()) {
         // Fill the caller function to return to with one-shot break points.
         Handle<JSFunction> caller_function(frames_it.frame()->function());
         FloodWithOneShot(caller_function);
@@ -1092,19 +1098,18 @@
     Handle<SharedFunctionInfo> shared,
     BreakPositionAlignment position_alignment) {
   Isolate* isolate = shared->GetIsolate();
-  Heap* heap = isolate->heap();
   if (!shared->HasDebugInfo()) {
-    return Handle<Object>(heap->undefined_value(), isolate);
+    return isolate->factory()->undefined_value();
   }
   Handle<DebugInfo> debug_info(shared->GetDebugInfo());
   if (debug_info->GetBreakPointCount() == 0) {
-    return Handle<Object>(heap->undefined_value(), isolate);
+    return isolate->factory()->undefined_value();
   }
   Handle<FixedArray> locations =
       isolate->factory()->NewFixedArray(debug_info->GetBreakPointCount());
   int count = 0;
   for (int i = 0; i < debug_info->break_points()->length(); ++i) {
-    if (!debug_info->break_points()->get(i)->IsUndefined()) {
+    if (!debug_info->break_points()->get(i)->IsUndefined(isolate)) {
       BreakPointInfo* break_point_info =
           BreakPointInfo::cast(debug_info->break_points()->get(i));
       int break_points = break_point_info->GetBreakPointCount();
@@ -1130,7 +1135,6 @@
   ClearOneShot();
 
   thread_local_.last_step_action_ = StepNone;
-  thread_local_.step_in_enabled_ = false;
   thread_local_.last_statement_position_ = RelocInfo::kNoPosition;
   thread_local_.last_fp_ = 0;
   thread_local_.target_fp_ = 0;
@@ -1155,12 +1159,6 @@
 }
 
 
-void Debug::EnableStepIn() {
-  STATIC_ASSERT(StepFrame > StepIn);
-  thread_local_.step_in_enabled_ = (last_step_action() >= StepIn);
-}
-
-
 bool MatchingCodeTargets(Code* target1, Code* target2) {
   if (target1 == target2) return true;
   if (target1->kind() != target2->kind()) return false;
@@ -1313,9 +1311,7 @@
   {
     SharedFunctionInfo::Iterator iterator(isolate_);
     while (SharedFunctionInfo* shared = iterator.Next()) {
-      if (!shared->OptimizedCodeMapIsCleared()) {
-        shared->ClearOptimizedCodeMap();
-      }
+      shared->ClearCodeFromOptimizedCodeMap();
     }
   }
 
@@ -1323,6 +1319,7 @@
   isolate_->heap()->CollectAllGarbage(Heap::kMakeHeapIterableMask,
                                       "prepare for break points");
 
+  DCHECK(shared->is_compiled());
   bool is_interpreted = shared->HasBytecodeArray();
 
   {
@@ -1331,7 +1328,7 @@
     // smarter here and avoid the heap walk.
     HeapIterator iterator(isolate_->heap());
     HeapObject* obj;
-    bool include_generators = !is_interpreted && shared->is_generator();
+    bool find_resumables = !is_interpreted && shared->is_resumable();
 
     while ((obj = iterator.next())) {
       if (obj->IsJSFunction()) {
@@ -1342,7 +1339,9 @@
         }
         if (is_interpreted) continue;
         if (function->shared() == *shared) functions.Add(handle(function));
-      } else if (include_generators && obj->IsJSGeneratorObject()) {
+      } else if (find_resumables && obj->IsJSGeneratorObject()) {
+        // This case handles async functions as well, as they use generator
+        // objects for in-progress async function execution.
         JSGeneratorObject* generator_obj = JSGeneratorObject::cast(obj);
         if (!generator_obj->is_suspended()) continue;
         JSFunction* function = generator_obj->function();
@@ -1368,6 +1367,7 @@
 
   for (Handle<JSFunction> const function : functions) {
     function->ReplaceCode(shared->code());
+    JSFunction::EnsureLiterals(function);
   }
 
   for (Handle<JSGeneratorObject> const generator_obj : suspended_generators) {
@@ -1384,6 +1384,13 @@
   return true;
 }
 
+void Debug::RecordAsyncFunction(Handle<JSGeneratorObject> generator_object) {
+  if (last_step_action() <= StepOut) return;
+  if (!generator_object->function()->shared()->is_async()) return;
+  DCHECK(!has_suspended_generator());
+  thread_local_.suspended_generator_ = *generator_object;
+  ClearStepping();
+}
 
 class SharedFunctionInfoFinder {
  public:
@@ -1725,7 +1732,7 @@
   HandleScope scope(isolate_);
   // Check whether the promise has been marked as having triggered a message.
   Handle<Symbol> key = isolate_->factory()->promise_debug_marker_symbol();
-  if (JSReceiver::GetDataProperty(promise, key)->IsUndefined()) {
+  if (JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate_)) {
     OnException(value, promise);
   }
 }
@@ -1752,7 +1759,7 @@
     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
         isolate_, has_reject_handler,
         PromiseHasUserDefinedRejectHandler(jspromise), /* void */);
-    uncaught = has_reject_handler->IsFalse();
+    uncaught = has_reject_handler->IsFalse(isolate_);
   }
   // Bail out if exception breaks are not active
   if (uncaught) {
@@ -2051,7 +2058,7 @@
                            request_args, &maybe_exception);
 
     if (maybe_result.ToHandle(&answer_value)) {
-      if (answer_value->IsUndefined()) {
+      if (answer_value->IsUndefined(isolate_)) {
         answer = isolate_->factory()->empty_string();
       } else {
         answer = Handle<String>::cast(answer_value);
@@ -2068,7 +2075,7 @@
           isolate_, is_running, cmd_processor, 1, is_running_args);
       Handle<Object> result;
       if (!maybe_result.ToHandle(&result)) break;
-      running = result->IsTrue();
+      running = result->IsTrue(isolate_);
     } else {
       Handle<Object> exception;
       if (!maybe_exception.ToHandle(&exception)) break;
@@ -2102,7 +2109,7 @@
   event_listener_data_ = Handle<Object>();
 
   // Set new entry.
-  if (!callback->IsUndefined() && !callback->IsNull()) {
+  if (!callback->IsUndefined(isolate_) && !callback->IsNull(isolate_)) {
     event_listener_ = global_handles->Create(*callback);
     if (data.is_null()) data = isolate_->factory()->undefined_value();
     event_listener_data_ = global_handles->Create(*data);
@@ -2492,6 +2499,9 @@
   return client_data_;
 }
 
+v8::Isolate* EventDetailsImpl::GetIsolate() const {
+  return reinterpret_cast<v8::Isolate*>(exec_state_->GetIsolate());
+}
 
 CommandMessage::CommandMessage() : text_(Vector<uint16_t>::empty()),
                                    client_data_(NULL) {
diff --git a/src/debug/debug.h b/src/debug/debug.h
index 2cdc151..eb2708c 100644
--- a/src/debug/debug.h
+++ b/src/debug/debug.h
@@ -9,13 +9,13 @@
 #include "src/arguments.h"
 #include "src/assembler.h"
 #include "src/base/atomicops.h"
+#include "src/base/hashmap.h"
 #include "src/base/platform/platform.h"
 #include "src/debug/liveedit.h"
 #include "src/execution.h"
 #include "src/factory.h"
 #include "src/flags.h"
 #include "src/frames.h"
-#include "src/hashmap.h"
 #include "src/interpreter/source-position-table.h"
 #include "src/runtime/runtime.h"
 #include "src/string-stream.h"
@@ -38,9 +38,10 @@
   StepNext = 1,   // Step to the next statement in the current function.
   StepIn = 2,     // Step into new functions invoked or the next statement
                   // in the current function.
-  StepFrame = 3   // Step into a new frame or return to previous frame.
-};
+  StepFrame = 3,  // Step into a new frame or return to previous frame.
 
+  LastStepAction = StepFrame
+};
 
 // Type of exception break. NOTE: These values are in macros.py as well.
 enum ExceptionBreakType {
@@ -305,6 +306,8 @@
   virtual v8::Local<v8::Context> GetEventContext() const;
   virtual v8::Local<v8::Value> GetCallbackData() const;
   virtual v8::Debug::ClientData* GetClientData() const;
+  virtual v8::Isolate* GetIsolate() const;
+
  private:
   DebugEvent event_;  // Debug event causing the break.
   Handle<JSObject> exec_state_;         // Current execution state.
@@ -456,13 +459,15 @@
   // Stepping handling.
   void PrepareStep(StepAction step_action);
   void PrepareStepIn(Handle<JSFunction> function);
+  void PrepareStepInSuspendedGenerator();
   void PrepareStepOnThrow();
   void ClearStepping();
   void ClearStepOut();
-  void EnableStepIn();
 
   bool PrepareFunctionForBreakPoints(Handle<SharedFunctionInfo> shared);
 
+  void RecordAsyncFunction(Handle<JSGeneratorObject> generator_object);
+
   // Returns whether the operation succeeded. Compilation can only be triggered
   // if a valid closure is passed as the second argument, otherwise the shared
   // function needs to be compiled already.
@@ -497,6 +502,7 @@
   char* RestoreDebug(char* from);
   static int ArchiveSpacePerThread();
   void FreeThreadResources() { }
+  void Iterate(ObjectVisitor* v);
 
   bool CheckExecutionState(int id) {
     return is_active() && !debug_context().is_null() && break_id() != 0 &&
@@ -540,8 +546,12 @@
     return reinterpret_cast<Address>(&after_break_target_);
   }
 
-  Address step_in_enabled_address() {
-    return reinterpret_cast<Address>(&thread_local_.step_in_enabled_);
+  Address last_step_action_address() {
+    return reinterpret_cast<Address>(&thread_local_.last_step_action_);
+  }
+
+  Address suspended_generator_address() {
+    return reinterpret_cast<Address>(&thread_local_.suspended_generator_);
   }
 
   StepAction last_step_action() { return thread_local_.last_step_action_; }
@@ -564,6 +574,14 @@
     return break_disabled_ || in_debug_event_listener_;
   }
 
+  void clear_suspended_generator() {
+    thread_local_.suspended_generator_ = Smi::FromInt(0);
+  }
+
+  bool has_suspended_generator() const {
+    return thread_local_.suspended_generator_ != Smi::FromInt(0);
+  }
+
   void OnException(Handle<Object> exception, Handle<Object> promise);
 
   // Constructors for debug event objects.
@@ -675,11 +693,6 @@
     // Frame pointer of the target frame we want to arrive at.
     Address target_fp_;
 
-    // Whether functions are flooded on entry for step-in and step-frame.
-    // If we stepped out to the embedder, disable flooding to spill stepping
-    // to the next call that the embedder makes.
-    bool step_in_enabled_;
-
     // Stores the way how LiveEdit has patched the stack. It is used when
     // debugger returns control back to user script.
     LiveEdit::FrameDropMode frame_drop_mode_;
@@ -687,6 +700,8 @@
     // Value of accumulator in interpreter frames. In non-interpreter frames
     // this value will be the hole.
     Handle<Object> return_value_;
+
+    Object* suspended_generator_;
   };
 
   // Storage location for registers when handling debug break calls
diff --git a/src/debug/debug.js b/src/debug/debug.js
index 38934b0..cbd4dd2 100644
--- a/src/debug/debug.js
+++ b/src/debug/debug.js
@@ -361,7 +361,7 @@
   } else {
     // We might want to account columns here as well.
     if (!(script.line_offset <= this.line_  &&
-          this.line_ < script.line_offset + script.lineCount())) {
+          this.line_ < script.line_offset + %ScriptLineCount(script))) {
       return false;
     }
     if (this.type_ == Debug.ScriptBreakPointType.ScriptName) {
@@ -383,11 +383,11 @@
   // first piece of breakable code on the line try to find the column on the
   // line which contains some source.
   if (IS_UNDEFINED(column)) {
-    var source_line = script.sourceLine(this.line());
+    var source_line = %ScriptSourceLine(script, line || script.line_offset);
 
     // Allocate array for caching the columns where the actual source starts.
     if (!script.sourceColumnStart_) {
-      script.sourceColumnStart_ = new GlobalArray(script.lineCount());
+      script.sourceColumnStart_ = new GlobalArray(%ScriptLineCount(script));
     }
 
     // Fill cache if needed and get column where the actual source starts.
@@ -536,14 +536,14 @@
 Debug.findFunctionSourceLocation = function(func, opt_line, opt_column) {
   var script = %FunctionGetScript(func);
   var script_offset = %FunctionGetScriptSourcePosition(func);
-  return script.locationFromLine(opt_line, opt_column, script_offset);
+  return %ScriptLocationFromLine(script, opt_line, opt_column, script_offset);
 };
 
 
 // Returns the character position in a script based on a line number and an
 // optional position within that line.
 Debug.findScriptSourcePosition = function(script, opt_line, opt_column) {
-  var location = script.locationFromLine(opt_line, opt_column);
+  var location = %ScriptLocationFromLine(script, opt_line, opt_column, 0);
   return location ? location.position : null;
 };
 
@@ -2085,18 +2085,34 @@
     return response.failed('No source');
   }
 
-  // Get the source slice and fill it into the response.
-  var slice = script.sourceSlice(from_line, to_line);
-  if (!slice) {
+  var raw_script = script.value();
+
+  // Sanitize arguments and remove line offset.
+  var line_offset = raw_script.line_offset;
+  var line_count = %ScriptLineCount(raw_script);
+  from_line = IS_UNDEFINED(from_line) ? 0 : from_line - line_offset;
+  to_line = IS_UNDEFINED(to_line) ? line_count : to_line - line_offset;
+
+  if (from_line < 0) from_line = 0;
+  if (to_line > line_count) to_line = line_count;
+
+  if (from_line >= line_count || to_line < 0 || from_line > to_line) {
     return response.failed('Invalid line interval');
   }
+
+  // Fill in the response.
+
   response.body = {};
-  response.body.source = slice.sourceText();
-  response.body.fromLine = slice.from_line;
-  response.body.toLine = slice.to_line;
-  response.body.fromPosition = slice.from_position;
-  response.body.toPosition = slice.to_position;
-  response.body.totalLines = script.lineCount();
+  response.body.fromLine = from_line + line_offset;
+  response.body.toLine = to_line + line_offset;
+  response.body.fromPosition = %ScriptLineStartPosition(raw_script, from_line);
+  response.body.toPosition =
+    (to_line == 0) ? 0 : %ScriptLineEndPosition(raw_script, to_line - 1);
+  response.body.totalLines = %ScriptLineCount(raw_script);
+
+  response.body.source = %_SubString(raw_script.source,
+                                     response.body.fromPosition,
+                                     response.body.toPosition);
 };
 
 
diff --git a/src/debug/ia32/debug-ia32.cc b/src/debug/ia32/debug-ia32.cc
index 056407f..8e4dee7 100644
--- a/src/debug/ia32/debug-ia32.cc
+++ b/src/debug/ia32/debug-ia32.cc
@@ -38,7 +38,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   static const int kSize = Assembler::kDebugBreakSlotLength;
   CodePatcher patcher(isolate, pc, kSize);
 
diff --git a/src/debug/liveedit.cc b/src/debug/liveedit.cc
index 50d60a1..aa67537 100644
--- a/src/debug/liveedit.cc
+++ b/src/debug/liveedit.cc
@@ -621,11 +621,9 @@
   this->SetSmiValueField(kParentIndexOffset_, parent_index);
 }
 
-
-void FunctionInfoWrapper::SetFunctionCode(Handle<Code> function_code,
+void FunctionInfoWrapper::SetFunctionCode(Handle<AbstractCode> 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);
 
@@ -640,27 +638,25 @@
   this->SetField(kSharedFunctionInfoOffset_, info_holder);
 }
 
-
-Handle<Code> FunctionInfoWrapper::GetFunctionCode() {
+Handle<AbstractCode> FunctionInfoWrapper::GetFunctionCode() {
   Handle<Object> element = this->GetField(kCodeOffset_);
   Handle<JSValue> value_wrapper = Handle<JSValue>::cast(element);
   Handle<Object> raw_result = UnwrapJSValue(value_wrapper);
-  CHECK(raw_result->IsCode());
-  return Handle<Code>::cast(raw_result);
+  CHECK(raw_result->IsAbstractCode());
+  return Handle<AbstractCode>::cast(raw_result);
 }
 
-
-MaybeHandle<TypeFeedbackVector> FunctionInfoWrapper::GetFeedbackVector() {
+MaybeHandle<TypeFeedbackMetadata> FunctionInfoWrapper::GetFeedbackMetadata() {
   Handle<Object> element = this->GetField(kSharedFunctionInfoOffset_);
   if (element->IsJSValue()) {
     Handle<JSValue> value_wrapper = Handle<JSValue>::cast(element);
     Handle<Object> raw_result = UnwrapJSValue(value_wrapper);
     Handle<SharedFunctionInfo> shared =
         Handle<SharedFunctionInfo>::cast(raw_result);
-    return Handle<TypeFeedbackVector>(shared->feedback_vector(), isolate());
+    return Handle<TypeFeedbackMetadata>(shared->feedback_metadata(), isolate());
   } else {
     // Scripts may never have a SharedFunctionInfo created.
-    return MaybeHandle<TypeFeedbackVector>();
+    return MaybeHandle<TypeFeedbackMetadata>();
   }
 }
 
@@ -863,11 +859,11 @@
  public:
   static void PatchLiterals(FunctionInfoWrapper* compile_info_wrapper,
                             Handle<SharedFunctionInfo> shared_info,
-                            Isolate* isolate) {
+                            bool feedback_metadata_changed, Isolate* isolate) {
     int new_literal_count = compile_info_wrapper->GetLiteralCount();
     int old_literal_count = shared_info->num_literals();
 
-    if (old_literal_count == new_literal_count) {
+    if (old_literal_count == new_literal_count && !feedback_metadata_changed) {
       // If literal count didn't change, simply go over all functions
       // and clear literal arrays.
       ClearValuesVisitor visitor;
@@ -878,10 +874,13 @@
       // collect all functions and fix their literal arrays.
       Handle<FixedArray> function_instances =
           CollectJSFunctions(shared_info, isolate);
-      Handle<TypeFeedbackVector> vector(shared_info->feedback_vector());
+      Handle<TypeFeedbackMetadata> feedback_metadata(
+          shared_info->feedback_metadata());
 
       for (int i = 0; i < function_instances->length(); i++) {
         Handle<JSFunction> fun(JSFunction::cast(function_instances->get(i)));
+        Handle<TypeFeedbackVector> vector =
+            TypeFeedbackVector::New(isolate, feedback_metadata);
         Handle<LiteralsArray> new_literals =
             LiteralsArray::New(isolate, vector, new_literal_count, TENURED);
         fun->set_literals(*new_literals);
@@ -929,10 +928,10 @@
   class ClearValuesVisitor {
    public:
     void visit(JSFunction* fun) {
-      FixedArray* literals = fun->literals();
-      int len = literals->length();
+      LiteralsArray* literals = fun->literals();
+      int len = literals->literals_count();
       for (int j = 0; j < len; j++) {
-        literals->set_undefined(j);
+        literals->set_literal_undefined(j);
       }
     }
   };
@@ -1007,18 +1006,20 @@
   SharedInfoWrapper shared_info_wrapper(shared_info_array);
 
   Handle<SharedFunctionInfo> shared_info = shared_info_wrapper.GetInfo();
+  bool feedback_metadata_changed = false;
 
   if (shared_info->is_compiled()) {
-    Handle<Code> new_code = compile_info_wrapper.GetFunctionCode();
-    Handle<Code> old_code(shared_info->code());
+    Handle<AbstractCode> new_code = compile_info_wrapper.GetFunctionCode();
     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.
+      DCHECK(new_code->IsBytecodeArray());
+      // The old code is interpreted, the new code must be interpreted as well.
       shared_info->ClearBytecodeArray();
-      shared_info->ReplaceCode(*new_code);
+      shared_info->set_bytecode_array(BytecodeArray::cast(*new_code));
     } else {
+      Handle<Code> old_code(shared_info->code());
       DCHECK(old_code->kind() == Code::FUNCTION);
-      ReplaceCodeObject(old_code, new_code);
+      DCHECK(new_code->kind() == AbstractCode::FUNCTION);
+      ReplaceCodeObject(old_code, Handle<Code>::cast(new_code));
     }
     if (shared_info->HasDebugInfo()) {
       // Existing break points will be re-applied. Reset the debug info here.
@@ -1031,10 +1032,14 @@
     }
     shared_info->DisableOptimization(kLiveEdit);
     // Update the type feedback vector, if needed.
-    MaybeHandle<TypeFeedbackVector> feedback_vector =
-        compile_info_wrapper.GetFeedbackVector();
-    if (!feedback_vector.is_null()) {
-      shared_info->set_feedback_vector(*feedback_vector.ToHandleChecked());
+    MaybeHandle<TypeFeedbackMetadata> feedback_metadata =
+        compile_info_wrapper.GetFeedbackMetadata();
+    if (!feedback_metadata.is_null()) {
+      Handle<TypeFeedbackMetadata> checked_feedback_metadata =
+          feedback_metadata.ToHandleChecked();
+      feedback_metadata_changed = checked_feedback_metadata->DiffersFrom(
+          shared_info->feedback_metadata());
+      shared_info->set_feedback_metadata(*checked_feedback_metadata);
     }
   }
 
@@ -1043,7 +1048,8 @@
   shared_info->set_start_position(start_position);
   shared_info->set_end_position(end_position);
 
-  LiteralFixer::PatchLiterals(&compile_info_wrapper, shared_info, isolate);
+  LiteralFixer::PatchLiterals(&compile_info_wrapper, shared_info,
+                              feedback_metadata_changed, isolate);
 
   DeoptimizeDependentFunctions(*shared_info);
   isolate->compilation_cache()->Remove(shared_info);
@@ -1063,7 +1069,8 @@
                                  Handle<Object> script_handle) {
   Handle<SharedFunctionInfo> shared_info =
       UnwrapSharedFunctionInfoFromJSValue(function_wrapper);
-  CHECK(script_handle->IsScript() || script_handle->IsUndefined());
+  Isolate* isolate = function_wrapper->GetIsolate();
+  CHECK(script_handle->IsScript() || script_handle->IsUndefined(isolate));
   SharedFunctionInfo::SetScript(shared_info, script_handle);
   shared_info->DisableOptimization(kLiveEdit);
 
@@ -1219,18 +1226,13 @@
   }
 
   Vector<byte> buffer = buffer_writer.GetResult();
+  Handle<ByteArray> reloc_info =
+      isolate->factory()->NewByteArray(buffer.length(), TENURED);
 
-  if (buffer.length() == code->relocation_size()) {
-    // Simply patch relocation area of code.
-    MemCopy(code->relocation_start(), buffer.start(), buffer.length());
-    return code;
-  } else {
-    // Relocation info section now has different size. We cannot simply
-    // rewrite it inside code object. Instead we have to create a new
-    // code object.
-    Handle<Code> result(isolate->factory()->CopyCode(code, buffer));
-    return result;
-  }
+  DisallowHeapAllocation no_gc;
+  code->set_relocation_info(*reloc_info);
+  CopyBytes(code->relocation_start(), buffer.start(), buffer.length());
+  return code;
 }
 
 void PatchPositionsInBytecodeArray(Handle<BytecodeArray> bytecode,
@@ -1248,7 +1250,8 @@
                         iterator.is_statement());
   }
 
-  bytecode->set_source_position_table(*builder.ToSourcePositionTable());
+  Handle<ByteArray> source_position_table = builder.ToSourcePositionTable();
+  bytecode->set_source_position_table(*source_position_table);
 }
 }  // namespace
 
@@ -1601,7 +1604,7 @@
       Handle<Object> new_element =
           JSReceiver::GetElement(isolate, new_shared_array_, i)
               .ToHandleChecked();
-      if (new_element->IsUndefined()) return false;
+      if (new_element->IsUndefined(isolate)) return false;
       Handle<SharedFunctionInfo> new_shared =
           UnwrapSharedFunctionInfoFromJSValue(
               Handle<JSValue>::cast(new_element));
@@ -1619,6 +1622,21 @@
     return false;
   }
 
+  void set_status(LiveEdit::FunctionPatchabilityStatus status) {
+    Isolate* isolate = old_shared_array_->GetIsolate();
+    int len = GetArrayLength(old_shared_array_);
+    for (int i = 0; i < len; ++i) {
+      Handle<Object> old_element =
+          JSReceiver::GetElement(isolate, result_, i).ToHandleChecked();
+      if (!old_element->IsSmi() ||
+          Smi::cast(*old_element)->value() ==
+              LiveEdit::FUNCTION_AVAILABLE_FOR_PATCH) {
+        SetElementSloppy(result_, i,
+                         Handle<Smi>(Smi::FromInt(status), isolate));
+      }
+    }
+  }
+
  private:
   Handle<JSArray> old_shared_array_;
   Handle<JSArray> new_shared_array_;
@@ -1672,7 +1690,7 @@
     if (frame->is_java_script()) {
       SharedFunctionInfo* shared =
           JavaScriptFrame::cast(frame)->function()->shared();
-      if (shared->is_generator()) {
+      if (shared->is_resumable()) {
         non_droppable_frame_found = true;
         non_droppable_reason = LiveEdit::FUNCTION_BLOCKED_UNDER_GENERATOR;
         break;
@@ -1696,6 +1714,13 @@
           // Fail.
           return NULL;
         }
+        if (non_droppable_reason ==
+                LiveEdit::FUNCTION_BLOCKED_UNDER_GENERATOR &&
+            !target_frame_found) {
+          // Fail.
+          target.set_status(non_droppable_reason);
+          return NULL;
+        }
       }
     }
   }
@@ -1993,7 +2018,7 @@
   FunctionInfoWrapper info = FunctionInfoWrapper::cast(
       *JSReceiver::GetElement(isolate_, result_, current_parent_index_)
            .ToHandleChecked());
-  info.SetFunctionCode(Handle<Code>(shared->code()),
+  info.SetFunctionCode(Handle<AbstractCode>(shared->abstract_code()),
                        Handle<HeapObject>(shared->scope_info()));
   info.SetSharedFunctionInfo(shared);
 
diff --git a/src/debug/liveedit.h b/src/debug/liveedit.h
index af74043..32328d9 100644
--- a/src/debug/liveedit.h
+++ b/src/debug/liveedit.h
@@ -292,7 +292,7 @@
                             int end_position, int param_num, int literal_count,
                             int parent_index);
 
-  void SetFunctionCode(Handle<Code> function_code,
+  void SetFunctionCode(Handle<AbstractCode> function_code,
                        Handle<HeapObject> code_scope_info);
 
   void SetFunctionScopeInfo(Handle<Object> scope_info_array) {
@@ -309,9 +309,9 @@
     return this->GetSmiValueField(kParentIndexOffset_);
   }
 
-  Handle<Code> GetFunctionCode();
+  Handle<AbstractCode> GetFunctionCode();
 
-  MaybeHandle<TypeFeedbackVector> GetFeedbackVector();
+  MaybeHandle<TypeFeedbackMetadata> GetFeedbackMetadata();
 
   Handle<Object> GetCodeScopeInfo();
 
diff --git a/src/debug/mips/debug-mips.cc b/src/debug/mips/debug-mips.cc
index 8e00d61..49320d8 100644
--- a/src/debug/mips/debug-mips.cc
+++ b/src/debug/mips/debug-mips.cc
@@ -41,7 +41,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotInstructions);
   // Patch the code changing the debug break slot code from:
   //   nop(DEBUG_BREAK_NOP) - nop(1) is sll(zero_reg, zero_reg, 1)
diff --git a/src/debug/mips64/debug-mips64.cc b/src/debug/mips64/debug-mips64.cc
index aad095b..2e967d7 100644
--- a/src/debug/mips64/debug-mips64.cc
+++ b/src/debug/mips64/debug-mips64.cc
@@ -40,7 +40,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotInstructions);
   // Patch the code changing the debug break slot code from:
   //   nop(DEBUG_BREAK_NOP) - nop(1) is sll(zero_reg, zero_reg, 1)
diff --git a/src/debug/mirrors.js b/src/debug/mirrors.js
index d098c1c..6f839fe 100644
--- a/src/debug/mirrors.js
+++ b/src/debug/mirrors.js
@@ -1956,7 +1956,7 @@
 FrameMirror.prototype.sourceLineText = function() {
   var location = this.sourceLocation();
   if (location) {
-    return location.sourceText();
+    return location.sourceText;
   }
 };
 
@@ -2362,7 +2362,7 @@
 
 
 ScriptMirror.prototype.lineCount = function() {
-  return this.script_.lineCount();
+  return %ScriptLineCount(this.script_);
 };
 
 
@@ -2372,11 +2372,6 @@
 };
 
 
-ScriptMirror.prototype.sourceSlice = function (opt_from_line, opt_to_line) {
-  return this.script_.sourceSlice(opt_from_line, opt_to_line);
-};
-
-
 ScriptMirror.prototype.context = function() {
   return this.context_;
 };
diff --git a/src/debug/ppc/OWNERS b/src/debug/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/debug/ppc/OWNERS
+++ b/src/debug/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/debug/ppc/debug-ppc.cc b/src/debug/ppc/debug-ppc.cc
index a160bc2..7facf95 100644
--- a/src/debug/ppc/debug-ppc.cc
+++ b/src/debug/ppc/debug-ppc.cc
@@ -41,7 +41,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotInstructions);
   // Patch the code changing the debug break slot code from
   //
diff --git a/src/debug/s390/OWNERS b/src/debug/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/debug/s390/OWNERS
+++ b/src/debug/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/debug/s390/debug-s390.cc b/src/debug/s390/debug-s390.cc
index c6764c2..9c33b95 100644
--- a/src/debug/s390/debug-s390.cc
+++ b/src/debug/s390/debug-s390.cc
@@ -45,7 +45,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   CodePatcher patcher(isolate, pc, Assembler::kDebugBreakSlotLength);
   // Patch the code changing the debug break slot code from
   //
diff --git a/src/debug/x64/debug-x64.cc b/src/debug/x64/debug-x64.cc
index a85ddb3..910d1ca 100644
--- a/src/debug/x64/debug-x64.cc
+++ b/src/debug/x64/debug-x64.cc
@@ -39,7 +39,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   static const int kSize = Assembler::kDebugBreakSlotLength;
   CodePatcher patcher(isolate, pc, kSize);
   Label check_codesize;
diff --git a/src/debug/x87/debug-x87.cc b/src/debug/x87/debug-x87.cc
index 029a004..1cbdf45 100644
--- a/src/debug/x87/debug-x87.cc
+++ b/src/debug/x87/debug-x87.cc
@@ -38,7 +38,7 @@
 
 void DebugCodegen::PatchDebugBreakSlot(Isolate* isolate, Address pc,
                                        Handle<Code> code) {
-  DCHECK_EQ(Code::BUILTIN, code->kind());
+  DCHECK(code->is_debug_stub());
   static const int kSize = Assembler::kDebugBreakSlotLength;
   CodePatcher patcher(isolate, pc, kSize);
 
diff --git a/src/deoptimizer.cc b/src/deoptimizer.cc
index adf4cf1..4cf41a9 100644
--- a/src/deoptimizer.cc
+++ b/src/deoptimizer.cc
@@ -13,7 +13,6 @@
 #include "src/global-handles.h"
 #include "src/interpreter/interpreter.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/tracing/trace-event.h"
 #include "src/v8.h"
 
@@ -56,9 +55,10 @@
 Code* Deoptimizer::FindDeoptimizingCode(Address addr) {
   if (function_->IsHeapObject()) {
     // Search all deoptimizing code in the native context of the function.
+    Isolate* isolate = function_->GetIsolate();
     Context* native_context = function_->context()->native_context();
     Object* element = native_context->DeoptimizedCodeListHead();
-    while (!element->IsUndefined()) {
+    while (!element->IsUndefined(isolate)) {
       Code* code = Code::cast(element);
       CHECK(code->kind() == Code::OPTIMIZED_FUNCTION);
       if (code->contains(addr)) return code;
@@ -186,7 +186,8 @@
   // no longer refer to optimized code.
   JSFunction* prev = NULL;
   Object* element = context->OptimizedFunctionsListHead();
-  while (!element->IsUndefined()) {
+  Isolate* isolate = context->GetIsolate();
+  while (!element->IsUndefined(isolate)) {
     JSFunction* function = JSFunction::cast(element);
     Object* next = function->next_function_link();
     if (function->code()->kind() != Code::OPTIMIZED_FUNCTION ||
@@ -226,7 +227,7 @@
 
   // Run through the list of all native contexts.
   Object* context = isolate->heap()->native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(isolate)) {
     VisitAllOptimizedFunctionsForContext(Context::cast(context), visitor);
     context = Context::cast(context)->next_context_link();
   }
@@ -315,7 +316,7 @@
   // Walk over all optimized code objects in this native context.
   Code* prev = NULL;
   Object* element = context->OptimizedCodeListHead();
-  while (!element->IsUndefined()) {
+  while (!element->IsUndefined(isolate)) {
     Code* code = Code::cast(element);
     CHECK_EQ(code->kind(), Code::OPTIMIZED_FUNCTION);
     Object* next = code->next_code_link();
@@ -385,7 +386,7 @@
   DisallowHeapAllocation no_allocation;
   // For all contexts, mark all code, then deoptimize.
   Object* context = isolate->heap()->native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(isolate)) {
     Context* native_context = Context::cast(context);
     MarkAllCodeForContext(native_context);
     DeoptimizeMarkedCodeForContext(native_context);
@@ -406,7 +407,7 @@
   DisallowHeapAllocation no_allocation;
   // For all contexts, deoptimize code already marked.
   Object* context = isolate->heap()->native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(isolate)) {
     Context* native_context = Context::cast(context);
     DeoptimizeMarkedCodeForContext(native_context);
     context = native_context->next_context_link();
@@ -416,7 +417,8 @@
 
 void Deoptimizer::MarkAllCodeForContext(Context* context) {
   Object* element = context->OptimizedCodeListHead();
-  while (!element->IsUndefined()) {
+  Isolate* isolate = context->GetIsolate();
+  while (!element->IsUndefined(isolate)) {
     Code* code = Code::cast(element);
     CHECK_EQ(code->kind(), Code::OPTIMIZED_FUNCTION);
     code->set_marked_for_deoptimization(true);
@@ -565,7 +567,7 @@
 
 
 void Deoptimizer::PrintFunctionName() {
-  if (function_->IsJSFunction()) {
+  if (function_ != nullptr && function_->IsJSFunction()) {
     function_->ShortPrint(trace_scope_->file());
   } else {
     PrintF(trace_scope_->file(),
@@ -660,10 +662,10 @@
   int length = 0;
   // Count all entries in the deoptimizing code list of every context.
   Object* context = isolate->heap()->native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(isolate)) {
     Context* native_context = Context::cast(context);
     Object* element = native_context->DeoptimizedCodeListHead();
-    while (!element->IsUndefined()) {
+    while (!element->IsUndefined(isolate)) {
       Code* code = Code::cast(element);
       DCHECK(code->kind() == Code::OPTIMIZED_FUNCTION);
       length++;
@@ -989,7 +991,7 @@
   }
   // Read the context from the translations.
   Object* context = context_pos->GetRawValue();
-  if (context == isolate_->heap()->undefined_value()) {
+  if (context->IsUndefined(isolate_)) {
     // If the context was optimized away, just use the context from
     // the activation. This should only apply to Crankshaft code.
     CHECK(!compiled_code_->is_turbofanned());
@@ -2451,6 +2453,10 @@
   buffer_->Add(reg.code(), zone());
 }
 
+void Translation::StoreFloatRegister(FloatRegister reg) {
+  buffer_->Add(FLOAT_REGISTER, zone());
+  buffer_->Add(reg.code(), zone());
+}
 
 void Translation::StoreDoubleRegister(DoubleRegister reg) {
   buffer_->Add(DOUBLE_REGISTER, zone());
@@ -2481,6 +2487,10 @@
   buffer_->Add(index, zone());
 }
 
+void Translation::StoreFloatStackSlot(int index) {
+  buffer_->Add(FLOAT_STACK_SLOT, zone());
+  buffer_->Add(index, zone());
+}
 
 void Translation::StoreDoubleStackSlot(int index) {
   buffer_->Add(DOUBLE_STACK_SLOT, zone());
@@ -2521,11 +2531,13 @@
     case INT32_REGISTER:
     case UINT32_REGISTER:
     case BOOL_REGISTER:
+    case FLOAT_REGISTER:
     case DOUBLE_REGISTER:
     case STACK_SLOT:
     case INT32_STACK_SLOT:
     case UINT32_STACK_SLOT:
     case BOOL_STACK_SLOT:
+    case FLOAT_STACK_SLOT:
     case DOUBLE_STACK_SLOT:
     case LITERAL:
     case COMPILED_STUB_FRAME:
@@ -2816,6 +2828,14 @@
 
 
 // static
+TranslatedValue TranslatedValue::NewFloat(TranslatedState* container,
+                                          float value) {
+  TranslatedValue slot(container, kFloat);
+  slot.float_value_ = value;
+  return slot;
+}
+
+// static
 TranslatedValue TranslatedValue::NewDouble(TranslatedState* container,
                                            double value) {
   TranslatedValue slot(container, kDouble);
@@ -2886,6 +2906,10 @@
   return uint32_value_;
 }
 
+float TranslatedValue::float_value() const {
+  DCHECK_EQ(kFloat, kind());
+  return float_value_;
+}
 
 double TranslatedValue::double_value() const {
   DCHECK_EQ(kDouble, kind());
@@ -2964,6 +2988,7 @@
     case TranslatedValue::kInt32:
     case TranslatedValue::kUInt32:
     case TranslatedValue::kBoolBit:
+    case TranslatedValue::kFloat:
     case TranslatedValue::kDouble: {
       MaterializeSimple();
       return value_.ToHandleChecked();
@@ -3005,6 +3030,10 @@
       value_ = Handle<Object>(isolate()->factory()->NewNumber(uint32_value()));
       return;
 
+    case kFloat:
+      value_ = Handle<Object>(isolate()->factory()->NewNumber(float_value()));
+      return;
+
     case kDouble:
       value_ = Handle<Object>(isolate()->factory()->NewNumber(double_value()));
       return;
@@ -3281,11 +3310,13 @@
     case Translation::INT32_REGISTER:
     case Translation::UINT32_REGISTER:
     case Translation::BOOL_REGISTER:
+    case Translation::FLOAT_REGISTER:
     case Translation::DOUBLE_REGISTER:
     case Translation::STACK_SLOT:
     case Translation::INT32_STACK_SLOT:
     case Translation::UINT32_STACK_SLOT:
     case Translation::BOOL_STACK_SLOT:
+    case Translation::FLOAT_STACK_SLOT:
     case Translation::DOUBLE_STACK_SLOT:
     case Translation::LITERAL:
       break;
@@ -3412,13 +3443,26 @@
       return TranslatedValue::NewBool(this, static_cast<uint32_t>(value));
     }
 
+    case Translation::FLOAT_REGISTER: {
+      int input_reg = iterator->Next();
+      if (registers == nullptr) return TranslatedValue::NewInvalid(this);
+      float value = registers->GetFloatRegister(input_reg);
+      if (trace_file != nullptr) {
+        PrintF(trace_file, "%e ; %s (float)", value,
+               RegisterConfiguration::Crankshaft()->GetFloatRegisterName(
+                   input_reg));
+      }
+      return TranslatedValue::NewFloat(this, value);
+    }
+
     case Translation::DOUBLE_REGISTER: {
       int input_reg = iterator->Next();
       if (registers == nullptr) return TranslatedValue::NewInvalid(this);
       double value = registers->GetDoubleRegister(input_reg);
       if (trace_file != nullptr) {
-        PrintF(trace_file, "%e ; %s (bool)", value,
-               DoubleRegister::from_code(input_reg).ToString());
+        PrintF(trace_file, "%e ; %s (double)", value,
+               RegisterConfiguration::Crankshaft()->GetDoubleRegisterName(
+                   input_reg));
       }
       return TranslatedValue::NewDouble(this, value);
     }
@@ -3469,6 +3513,17 @@
       return TranslatedValue::NewBool(this, value);
     }
 
+    case Translation::FLOAT_STACK_SLOT: {
+      int slot_offset =
+          OptimizedFrame::StackSlotOffsetRelativeToFp(iterator->Next());
+      float value = ReadFloatValue(fp + slot_offset);
+      if (trace_file != nullptr) {
+        PrintF(trace_file, "%e ; (float) [fp %c %d] ", value,
+               slot_offset < 0 ? '-' : '+', std::abs(slot_offset));
+      }
+      return TranslatedValue::NewFloat(this, value);
+    }
+
     case Translation::DOUBLE_STACK_SLOT: {
       int slot_offset =
           OptimizedFrame::StackSlotOffsetRelativeToFp(iterator->Next());
@@ -3616,6 +3671,7 @@
     case TranslatedValue::kInt32:
     case TranslatedValue::kUInt32:
     case TranslatedValue::kBoolBit:
+    case TranslatedValue::kFloat:
     case TranslatedValue::kDouble: {
       slot->MaterializeSimple();
       Handle<Object> value = slot->GetValue();
@@ -3684,7 +3740,9 @@
           }
           return object;
         }
-        case JS_OBJECT_TYPE: {
+        case JS_OBJECT_TYPE:
+        case JS_ERROR_TYPE:
+        case JS_ARGUMENTS_TYPE: {
           Handle<JSObject> object =
               isolate_->factory()->NewJSObjectFromMap(map, NOT_TENURED);
           slot->value_ = object;
@@ -3711,6 +3769,35 @@
           object->set_length(*length);
           return object;
         }
+        case JS_FUNCTION_TYPE: {
+          Handle<JSFunction> object =
+              isolate_->factory()->NewFunctionFromSharedFunctionInfo(
+                  handle(isolate_->object_function()->shared()),
+                  handle(isolate_->context()));
+          slot->value_ = object;
+          // We temporarily allocated a JSFunction for the {Object} function
+          // within the current context, to break cycles in the object graph.
+          // The correct function and context will be set below once available.
+          Handle<Object> properties = MaterializeAt(frame_index, value_index);
+          Handle<Object> elements = MaterializeAt(frame_index, value_index);
+          Handle<Object> prototype = MaterializeAt(frame_index, value_index);
+          Handle<Object> shared = MaterializeAt(frame_index, value_index);
+          Handle<Object> context = MaterializeAt(frame_index, value_index);
+          Handle<Object> literals = MaterializeAt(frame_index, value_index);
+          Handle<Object> entry = MaterializeAt(frame_index, value_index);
+          Handle<Object> next_link = MaterializeAt(frame_index, value_index);
+          object->ReplaceCode(*isolate_->builtins()->CompileLazy());
+          object->set_map(*map);
+          object->set_properties(FixedArray::cast(*properties));
+          object->set_elements(FixedArrayBase::cast(*elements));
+          object->set_prototype_or_initial_map(*prototype);
+          object->set_shared(SharedFunctionInfo::cast(*shared));
+          object->set_context(Context::cast(*context));
+          object->set_literals(LiteralsArray::cast(*literals));
+          CHECK(entry->IsNumber());  // Entry to compile lazy stub.
+          CHECK(next_link->IsUndefined(isolate_));
+          return object;
+        }
         case FIXED_ARRAY_TYPE: {
           Handle<Object> lengthObject = MaterializeAt(frame_index, value_index);
           int32_t length = 0;
diff --git a/src/deoptimizer.h b/src/deoptimizer.h
index 1d413e6..db20406 100644
--- a/src/deoptimizer.h
+++ b/src/deoptimizer.h
@@ -39,6 +39,7 @@
     kInt32,
     kUInt32,
     kBoolBit,
+    kFloat,
     kDouble,
     kCapturedObject,    // Object captured by the escape analysis.
                         // The number of nested objects can be obtained
@@ -61,6 +62,7 @@
   static TranslatedValue NewDeferredObject(TranslatedState* container,
                                            int length, int object_index);
   static TranslatedValue NewDuplicateObject(TranslatedState* container, int id);
+  static TranslatedValue NewFloat(TranslatedState* container, float value);
   static TranslatedValue NewDouble(TranslatedState* container, double value);
   static TranslatedValue NewInt32(TranslatedState* container, int32_t value);
   static TranslatedValue NewUInt32(TranslatedState* container, uint32_t value);
@@ -93,6 +95,8 @@
     uint32_t uint32_value_;
     // kind is kInt32.
     int32_t int32_value_;
+    // kind is kFloat
+    float float_value_;
     // kind is kDouble
     double double_value_;
     // kind is kDuplicatedObject or kArgumentsObject or kCapturedObject.
@@ -103,6 +107,7 @@
   Object* raw_literal() const;
   int32_t int32_value() const;
   uint32_t uint32_value() const;
+  float float_value() const;
   double double_value() const;
   int object_length() const;
   int object_index() const;
@@ -334,7 +339,7 @@
   V(kInstanceMigrationFailed, "instance migration failed")                     \
   V(kInsufficientTypeFeedbackForCallWithArguments,                             \
     "Insufficient type feedback for call with arguments")                      \
-  V(kFastArrayPushFailed, "Falling off the fast path for FastArrayPush")       \
+  V(kFastPathFailed, "Falling off the fast path")                              \
   V(kInsufficientTypeFeedbackForCombinedTypeOfBinaryOperation,                 \
     "Insufficient type feedback for combined type of binary operation")        \
   V(kInsufficientTypeFeedbackForGenericNamedAccess,                            \
@@ -738,6 +743,11 @@
     return registers_[n];
   }
 
+  float GetFloatRegister(unsigned n) const {
+    DCHECK(n < arraysize(float_registers_));
+    return float_registers_[n];
+  }
+
   double GetDoubleRegister(unsigned n) const {
     DCHECK(n < arraysize(double_registers_));
     return double_registers_[n];
@@ -748,12 +758,18 @@
     registers_[n] = value;
   }
 
+  void SetFloatRegister(unsigned n, float value) {
+    DCHECK(n < arraysize(float_registers_));
+    float_registers_[n] = value;
+  }
+
   void SetDoubleRegister(unsigned n, double value) {
     DCHECK(n < arraysize(double_registers_));
     double_registers_[n] = value;
   }
 
   intptr_t registers_[Register::kNumRegisters];
+  float float_registers_[FloatRegister::kMaxNumRegisters];
   double double_registers_[DoubleRegister::kMaxNumRegisters];
 };
 
@@ -977,11 +993,13 @@
   V(INT32_REGISTER)                \
   V(UINT32_REGISTER)               \
   V(BOOL_REGISTER)                 \
+  V(FLOAT_REGISTER)                \
   V(DOUBLE_REGISTER)               \
   V(STACK_SLOT)                    \
   V(INT32_STACK_SLOT)              \
   V(UINT32_STACK_SLOT)             \
   V(BOOL_STACK_SLOT)               \
+  V(FLOAT_STACK_SLOT)              \
   V(DOUBLE_STACK_SLOT)             \
   V(LITERAL)
 
@@ -1023,11 +1041,13 @@
   void StoreInt32Register(Register reg);
   void StoreUint32Register(Register reg);
   void StoreBoolRegister(Register reg);
+  void StoreFloatRegister(FloatRegister reg);
   void StoreDoubleRegister(DoubleRegister reg);
   void StoreStackSlot(int index);
   void StoreInt32StackSlot(int index);
   void StoreUint32StackSlot(int index);
   void StoreBoolStackSlot(int index);
+  void StoreFloatStackSlot(int index);
   void StoreDoubleStackSlot(int index);
   void StoreLiteral(int literal_id);
   void StoreArgumentsObject(bool args_known, int args_index, int args_length);
diff --git a/src/disassembler.cc b/src/disassembler.cc
index c29022a..8fe1e7f 100644
--- a/src/disassembler.cc
+++ b/src/disassembler.cc
@@ -9,6 +9,7 @@
 #include "src/debug/debug.h"
 #include "src/deoptimizer.h"
 #include "src/disasm.h"
+#include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "src/snapshot/serializer-common.h"
 #include "src/string-stream.h"
@@ -36,7 +37,7 @@
       code_ == NULL ? NULL : code_->GetIsolate()->builtins()->Lookup(pc);
 
   if (name != NULL) {
-    SNPrintF(v8_buffer_, "%s  (%p)", name, pc);
+    SNPrintF(v8_buffer_, "%s  (%p)", name, static_cast<void*>(pc));
     return v8_buffer_.start();
   }
 
@@ -44,7 +45,7 @@
     int offs = static_cast<int>(pc - code_->instruction_start());
     // print as code offset, if it seems reasonable
     if (0 <= offs && offs < code_->instruction_size()) {
-      SNPrintF(v8_buffer_, "%d  (%p)", offs, pc);
+      SNPrintF(v8_buffer_, "%d  (%p)", offs, static_cast<void*>(pc));
       return v8_buffer_.start();
     }
   }
@@ -146,7 +147,8 @@
     }
 
     // Instruction address and instruction offset.
-    out.AddFormatted("%p  %4" V8PRIdPTRDIFF "  ", prev_pc, prev_pc - begin);
+    out.AddFormatted("%p  %4" V8PRIdPTRDIFF "  ", static_cast<void*>(prev_pc),
+                     prev_pc - begin);
 
     // Instruction.
     out.AddFormatted("%s", decode_buffer.start());
@@ -199,14 +201,16 @@
         Code* code = Code::GetCodeFromTargetAddress(relocinfo.target_address());
         Code::Kind kind = code->kind();
         if (code->is_inline_cache_stub()) {
-          if (kind == Code::LOAD_IC &&
-              LoadICState::GetTypeofMode(code->extra_ic_state()) ==
-                  NOT_INSIDE_TYPEOF) {
-            out.AddFormatted(" contextual,");
+          if (kind == Code::LOAD_GLOBAL_IC &&
+              LoadGlobalICState::GetTypeofMode(code->extra_ic_state()) ==
+                  INSIDE_TYPEOF) {
+            out.AddFormatted(" inside typeof,");
           }
-          InlineCacheState ic_state = code->ic_state();
-          out.AddFormatted(" %s, %s", Code::Kind2String(kind),
-              Code::ICState2String(ic_state));
+          out.AddFormatted(" %s", Code::Kind2String(kind));
+          if (!IC::ICUseVector(kind)) {
+            InlineCacheState ic_state = IC::StateFromCode(code);
+            out.AddFormatted(" %s", Code::ICState2String(ic_state));
+          }
         } 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/eh-frame.cc b/src/eh-frame.cc
new file mode 100644
index 0000000..af85e0b
--- /dev/null
+++ b/src/eh-frame.cc
@@ -0,0 +1,96 @@
+// 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/eh-frame.h"
+#include "src/objects-inl.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+
+static const int DW_EH_PE_pcrel = 0x10;
+static const int DW_EH_PE_datarel = 0x30;
+static const int DW_EH_PE_udata4 = 0x03;
+static const int DW_EH_PE_sdata4 = 0x0b;
+
+const int EhFrameHdr::kCIESize = 0;
+
+static const int kVersionSize = 1;
+static const int kEncodingSpecifiersSize = 3;
+
+//
+// In order to calculate offsets in the .eh_frame_hdr, we must know the layout
+// of the DSO generated by perf inject, which is assumed to be the following:
+//
+//  |      ...      |                        |
+//  +---------------+ <-- (F) ---            |  Larger offsets in file
+//  |               |           ^            |
+//  |  Instructions |           | .text      v
+//  |               |           v
+//  +---------------+ <-- (E) ---
+//  |///////////////|
+//  |////Padding////|
+//  |///////////////|
+//  +---------------+ <-- (D) ---
+//  |               |           ^
+//  |      CIE      |           |
+//  |               |           |
+//  +---------------+ <-- (C)   | .eh_frame
+//  |               |           |
+//  |      FDE      |           |
+//  |               |           v
+//  +---------------+ <-- (B) ---
+//  |    version    |           ^
+//  +---------------+           |
+//  |   encoding    |           |
+//  |  specifiers   |           |
+//  +---------------+ <---(A)   | .eh_frame_hdr
+//  |   offset to   |           |
+//  |   .eh_frame   |           |
+//  +---------------+           |
+//  |      ...      |          ...
+//
+// (F) is aligned at a 16-byte boundary.
+// (D) is aligned at a  8-byte boundary.
+// (B) is aligned at a  4-byte boundary.
+// (E), (C) and (A) have no alignment requirements.
+//
+// The distance between (A) and (B) is 4 bytes.
+//
+// The size of the .eh_frame is required to be a multiple of the pointer size,
+// which means that (B) will be naturally aligned to a 4-byte boundary on all
+// the architectures we support.
+//
+// Because (E) has no alignment requirements, there is padding between (E) and
+// (D). (F) is aligned at a 16-byte boundary, thus to a 8-byte one as well.
+//
+EhFrameHdr::EhFrameHdr(Code* code) {
+  int code_size = code->is_crankshafted() ? code->safepoint_table_offset()
+                                          : code->instruction_size();
+  version_ = 1;
+  eh_frame_ptr_encoding_ = DW_EH_PE_sdata4 | DW_EH_PE_pcrel;
+  lut_size_encoding_ = DW_EH_PE_udata4;
+  lut_entries_encoding_ = DW_EH_PE_sdata4 | DW_EH_PE_datarel;
+
+  // .eh_frame pointer and LUT
+  if (code->has_unwinding_info()) {
+    DCHECK_GE(code->unwinding_info_size(), EhFrameHdr::kRecordSize);
+    int eh_frame_size = code->unwinding_info_size() - EhFrameHdr::kRecordSize;
+
+    offset_to_eh_frame_ =
+        -(eh_frame_size + kVersionSize + kEncodingSpecifiersSize);  // A -> D
+    lut_entries_number_ = 1;
+    offset_to_procedure_ = -(RoundUp(code_size, 8) + eh_frame_size);  // B -> F
+    offset_to_fde_ = -(eh_frame_size - kCIESize);                     // B -> C
+  } else {
+    // Create a dummy table
+    offset_to_eh_frame_ = 0;
+    lut_entries_number_ = 0;
+    offset_to_procedure_ = 0;
+    offset_to_fde_ = 0;
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/eh-frame.h b/src/eh-frame.h
new file mode 100644
index 0000000..75781ac
--- /dev/null
+++ b/src/eh-frame.h
@@ -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.
+
+#ifndef V8_EH_FRAME_H_
+#define V8_EH_FRAME_H_
+
+#include <cstdint>
+
+namespace v8 {
+namespace internal {
+
+class Code;
+
+class EhFrameHdr final {
+ public:
+  static const int kRecordSize = 20;
+  static const int kCIESize;
+
+  explicit EhFrameHdr(Code* code);
+
+  int32_t offset_to_eh_frame() const { return offset_to_eh_frame_; }
+  uint32_t lut_entries_number() const { return lut_entries_number_; }
+  int32_t offset_to_procedure() const { return offset_to_procedure_; }
+  int32_t offset_to_fde() const { return offset_to_fde_; }
+
+ private:
+  uint8_t version_;
+  uint8_t eh_frame_ptr_encoding_;
+  uint8_t lut_size_encoding_;
+  uint8_t lut_entries_encoding_;
+  int32_t offset_to_eh_frame_;
+  uint32_t lut_entries_number_;
+  int32_t offset_to_procedure_;
+  int32_t offset_to_fde_;
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif
diff --git a/src/elements.cc b/src/elements.cc
index 6c257ac..d7e49cd 100644
--- a/src/elements.cc
+++ b/src/elements.cc
@@ -189,7 +189,7 @@
     int entry = from->FindEntry(i + from_start);
     if (entry != SeededNumberDictionary::kNotFound) {
       Object* value = from->ValueAt(entry);
-      DCHECK(!value->IsTheHole());
+      DCHECK(!value->IsTheHole(from->GetIsolate()));
       to->set(i + to_start, value, write_barrier_mode);
     } else {
       to->set_the_hole(i + to_start);
@@ -352,7 +352,7 @@
   for (uint32_t from_end = from_start + static_cast<uint32_t>(packed_size);
        from_start < from_end; from_start++, to_start++) {
     Object* smi = from->get(from_start);
-    DCHECK(!smi->IsTheHole());
+    DCHECK(!smi->IsTheHole(from->GetIsolate()));
     to->set(to_start, Smi::cast(smi)->value());
   }
 }
@@ -445,6 +445,28 @@
   JavaScriptFrame::PrintTop(isolate, stdout, false, true);
 }
 
+static void SortIndices(
+    Handle<FixedArray> indices, uint32_t sort_size,
+    WriteBarrierMode write_barrier_mode = UPDATE_WRITE_BARRIER) {
+  struct {
+    bool operator()(Object* a, Object* b) {
+      if (a->IsSmi() || !a->IsUndefined(HeapObject::cast(a)->GetIsolate())) {
+        if (!b->IsSmi() && b->IsUndefined(HeapObject::cast(b)->GetIsolate())) {
+          return true;
+        }
+        return a->Number() < b->Number();
+      }
+      return !b->IsSmi() && b->IsUndefined(HeapObject::cast(b)->GetIsolate());
+    }
+  } cmp;
+  Object** start =
+      reinterpret_cast<Object**>(indices->GetFirstElementAddress());
+  std::sort(start, start + sort_size, cmp);
+  if (write_barrier_mode != SKIP_WRITE_BARRIER) {
+    FIXED_ARRAY_ELEMENTS_WRITE_BARRIER(indices->GetIsolate()->heap(), *indices,
+                                       0, sort_size);
+  }
+}
 
 // Base class for element handler implementations. Contains the
 // the common logic for objects with different ElementsKinds.
@@ -709,8 +731,7 @@
     JSObject::ValidateElements(array);
   }
 
-  static uint32_t GetIterationLength(JSObject* receiver,
-                                     FixedArrayBase* elements) {
+  static uint32_t GetMaxIndex(JSObject* receiver, FixedArrayBase* elements) {
     if (receiver->IsJSArray()) {
       DCHECK(JSArray::cast(receiver)->length()->IsSmi());
       return static_cast<uint32_t>(
@@ -719,6 +740,11 @@
     return Subclass::GetCapacityImpl(receiver, elements);
   }
 
+  static uint32_t GetMaxNumberOfEntries(JSObject* receiver,
+                                        FixedArrayBase* elements) {
+    return Subclass::GetMaxIndex(receiver, elements);
+  }
+
   static Handle<FixedArrayBase> ConvertElementsWithCapacity(
       Handle<JSObject> object, Handle<FixedArrayBase> old_elements,
       ElementsKind from_kind, uint32_t capacity) {
@@ -862,8 +888,8 @@
       Handle<FixedArray> values_or_entries, bool get_entries, int* nof_items,
       PropertyFilter filter) {
     int count = 0;
-    KeyAccumulator accumulator(isolate, OWN_ONLY, ALL_PROPERTIES);
-    accumulator.NextPrototype();
+    KeyAccumulator accumulator(isolate, KeyCollectionMode::kOwnOnly,
+                               ALL_PROPERTIES);
     Subclass::CollectElementIndicesImpl(
         object, handle(object->elements(), isolate), &accumulator);
     Handle<FixedArray> keys = accumulator.GetKeys();
@@ -909,11 +935,12 @@
                                         KeyAccumulator* keys) {
     DCHECK_NE(DICTIONARY_ELEMENTS, kind());
     // Non-dictionary elements can't have all-can-read accessors.
-    uint32_t length = GetIterationLength(*object, *backing_store);
+    uint32_t length = Subclass::GetMaxIndex(*object, *backing_store);
     PropertyFilter filter = keys->filter();
+    Factory* factory = keys->isolate()->factory();
     for (uint32_t i = 0; i < length; i++) {
       if (Subclass::HasElementImpl(object, i, backing_store, filter)) {
-        keys->AddKey(i);
+        keys->AddKey(factory->NewNumberFromUint(i));
       }
     }
   }
@@ -923,10 +950,10 @@
       Handle<FixedArrayBase> backing_store, GetKeysConversion convert,
       PropertyFilter filter, Handle<FixedArray> list, uint32_t* nof_indices,
       uint32_t insertion_index = 0) {
-    uint32_t length = Subclass::GetIterationLength(*object, *backing_store);
+    uint32_t length = Subclass::GetMaxIndex(*object, *backing_store);
     for (uint32_t i = 0; i < length; i++) {
       if (Subclass::HasElementImpl(object, i, backing_store, filter)) {
-        if (convert == CONVERT_TO_STRING) {
+        if (convert == GetKeysConversion::kConvertToString) {
           Handle<String> index_string = isolate->factory()->Uint32ToString(i);
           list->set(insertion_index, *index_string);
         } else {
@@ -968,22 +995,11 @@
 
     // Sort the indices list if necessary.
     if (IsDictionaryElementsKind(kind()) || IsSloppyArgumentsElements(kind())) {
-      struct {
-        bool operator()(Object* a, Object* b) {
-          if (!a->IsUndefined()) {
-            if (b->IsUndefined()) return true;
-            return a->Number() < b->Number();
-          }
-          return !b->IsUndefined();
-        }
-      } cmp;
-      Object** start =
-          reinterpret_cast<Object**>(combined_keys->GetFirstElementAddress());
-      std::sort(start, start + nof_indices, cmp);
+      SortIndices(combined_keys, nof_indices, SKIP_WRITE_BARRIER);
       uint32_t array_length = 0;
       // Indices from dictionary elements should only be converted after
       // sorting.
-      if (convert == CONVERT_TO_STRING) {
+      if (convert == GetKeysConversion::kConvertToString) {
         for (uint32_t i = 0; i < nof_indices; i++) {
           Handle<Object> index_string = isolate->factory()->Uint32ToString(
                   combined_keys->get(i)->Number());
@@ -1044,7 +1060,7 @@
                  ? index
                  : kMaxUInt32;
     } else {
-      uint32_t length = GetIterationLength(holder, backing_store);
+      uint32_t length = Subclass::GetMaxIndex(holder, backing_store);
       return index < length ? index : kMaxUInt32;
     }
   }
@@ -1081,17 +1097,15 @@
       : ElementsAccessorBase<DictionaryElementsAccessor,
                              ElementsKindTraits<DICTIONARY_ELEMENTS> >(name) {}
 
-  static uint32_t GetIterationLength(JSObject* receiver,
-                                     FixedArrayBase* elements) {
-    uint32_t length;
-    if (receiver->IsJSArray()) {
-      // Special-case GetIterationLength for dictionary elements since the
-      // length of the array might be a HeapNumber.
-      JSArray::cast(receiver)->length()->ToArrayLength(&length);
-    } else {
-      length = GetCapacityImpl(receiver, elements);
-    }
-    return length;
+  static uint32_t GetMaxIndex(JSObject* receiver, FixedArrayBase* elements) {
+    // We cannot properly estimate this for dictionaries.
+    UNREACHABLE();
+  }
+
+  static uint32_t GetMaxNumberOfEntries(JSObject* receiver,
+                                        FixedArrayBase* backing_store) {
+    SeededNumberDictionary* dict = SeededNumberDictionary::cast(backing_store);
+    return dict->NumberOfElements();
   }
 
   static void SetLengthImpl(Isolate* isolate, Handle<JSArray> array,
@@ -1162,7 +1176,7 @@
     uint32_t index = GetIndexForEntryImpl(*dict, entry);
     Handle<Object> result = SeededNumberDictionary::DeleteProperty(dict, entry);
     USE(result);
-    DCHECK(result->IsTrue());
+    DCHECK(result->IsTrue(dict->GetIsolate()));
     Handle<FixedArray> new_elements =
         SeededNumberDictionary::Shrink(dict, index);
     obj->set_elements(*new_elements);
@@ -1174,12 +1188,10 @@
     SeededNumberDictionary* dict = SeededNumberDictionary::cast(backing_store);
     if (!dict->requires_slow_elements()) return false;
     int capacity = dict->Capacity();
-    Heap* heap = holder->GetHeap();
-    Object* undefined = heap->undefined_value();
-    Object* the_hole = heap->the_hole_value();
+    Isolate* isolate = dict->GetIsolate();
     for (int i = 0; i < capacity; i++) {
       Object* key = dict->KeyAt(i);
-      if (key == the_hole || key == undefined) continue;
+      if (!dict->IsKey(isolate, key)) continue;
       DCHECK(!dict->IsDeleted(i));
       PropertyDetails details = dict->DetailsAt(i);
       if (details.type() == ACCESSOR_CONSTANT) return true;
@@ -1244,7 +1256,7 @@
     DisallowHeapAllocation no_gc;
     SeededNumberDictionary* dict = SeededNumberDictionary::cast(store);
     Object* index = dict->KeyAt(entry);
-    return !index->IsTheHole();
+    return !index->IsTheHole(dict->GetIsolate());
   }
 
   static uint32_t GetIndexForEntryImpl(FixedArrayBase* store, uint32_t entry) {
@@ -1289,23 +1301,12 @@
     return static_cast<uint32_t>(raw_key->Number());
   }
 
-  static uint32_t GetKeyForEntryImpl(Handle<SeededNumberDictionary> dictionary,
+  static uint32_t GetKeyForEntryImpl(Isolate* isolate,
+                                     Handle<SeededNumberDictionary> dictionary,
                                      int entry, PropertyFilter filter) {
     DisallowHeapAllocation no_gc;
     Object* raw_key = dictionary->KeyAt(entry);
-    if (!dictionary->IsKey(raw_key)) return kMaxUInt32;
-    return FilterKey(dictionary, entry, raw_key, filter);
-  }
-
-  static uint32_t GetKeyForEntryImpl(Handle<SeededNumberDictionary> dictionary,
-                                     int entry, PropertyFilter filter,
-                                     Object* undefined, Object* the_hole) {
-    DisallowHeapAllocation no_gc;
-    Object* raw_key = dictionary->KeyAt(entry);
-    // Replace the IsKey check with a direct comparison which is much faster.
-    if (raw_key == undefined || raw_key == the_hole) {
-      return kMaxUInt32;
-    }
+    if (!dictionary->IsKey(isolate, raw_key)) return kMaxUInt32;
     return FilterKey(dictionary, entry, raw_key, filter);
   }
 
@@ -1314,20 +1315,24 @@
                                         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();
+    Handle<FixedArray> elements = isolate->factory()->NewFixedArray(
+        GetMaxNumberOfEntries(*object, *backing_store));
+    int insertion_index = 0;
     PropertyFilter filter = keys->filter();
     for (int i = 0; i < capacity; i++) {
-      uint32_t key =
-          GetKeyForEntryImpl(dictionary, i, filter, *undefined, *the_hole);
+      uint32_t key = GetKeyForEntryImpl(isolate, dictionary, i, filter);
       if (key == kMaxUInt32) continue;
-      keys->AddKey(key);
+      Handle<Object> key_handle = isolate->factory()->NewNumberFromUint(key);
+      elements->set(insertion_index, *key_handle);
+      insertion_index++;
     }
-
-    keys->SortCurrentElementsList();
+    SortIndices(elements, insertion_index);
+    for (int i = 0; i < insertion_index; i++) {
+      keys->AddKey(elements->get(i));
+    }
   }
 
   static Handle<FixedArray> DirectCollectElementIndicesImpl(
@@ -1338,14 +1343,11 @@
     if (filter & SKIP_STRINGS) return list;
     if (filter & ONLY_ALL_CAN_READ) return list;
 
-    Handle<Object> undefined = isolate->factory()->undefined_value();
-    Handle<Object> the_hole = isolate->factory()->the_hole_value();
     Handle<SeededNumberDictionary> dictionary =
         Handle<SeededNumberDictionary>::cast(backing_store);
     uint32_t capacity = dictionary->Capacity();
     for (uint32_t i = 0; i < capacity; i++) {
-      uint32_t key =
-          GetKeyForEntryImpl(dictionary, i, filter, *undefined, *the_hole);
+      uint32_t key = GetKeyForEntryImpl(isolate, dictionary, i, filter);
       if (key == kMaxUInt32) continue;
       Handle<Object> index = isolate->factory()->NewNumberFromUint(key);
       list->set(insertion_index, *index);
@@ -1370,7 +1372,7 @@
       if (k == *the_hole) continue;
       if (dictionary->IsDeleted(i)) continue;
       Object* value = dictionary->ValueAt(i);
-      DCHECK(!value->IsTheHole());
+      DCHECK(!value->IsTheHole(isolate));
       DCHECK(!value->IsAccessorPair());
       DCHECK(!value->IsAccessorInfo());
       accumulator->AddKey(value, convert);
@@ -1552,8 +1554,8 @@
                                               KeyAccumulator* accumulator,
                                               AddKeyConversion convert) {
     Handle<FixedArrayBase> elements(receiver->elements(),
-                                    receiver->GetIsolate());
-    uint32_t length = Subclass::GetIterationLength(*receiver, *elements);
+                                    accumulator->isolate());
+    uint32_t length = Subclass::GetMaxNumberOfEntries(*receiver, *elements);
     for (uint32_t i = 0; i < length; i++) {
       if (IsFastPackedElementsKind(KindTraits::Kind) ||
           HasEntryImpl(*elements, i)) {
@@ -1801,7 +1803,7 @@
     }
     Subclass::SetLengthImpl(isolate, receiver, new_length, backing_store);
 
-    if (IsHoleyElementsKind(kind) && result->IsTheHole()) {
+    if (IsHoleyElementsKind(kind) && result->IsTheHole(isolate)) {
       return isolate->factory()->undefined_value();
     }
     return result;
@@ -1853,7 +1855,7 @@
     WriteBarrierMode mode = raw_backing_store->GetWriteBarrierMode(no_gc);
     for (uint32_t i = 0; i < copy_size; i++) {
       Object* argument = (*args)[src_index + i];
-      DCHECK(!argument->IsTheHole());
+      DCHECK(!argument->IsTheHole(raw_backing_store->GetIsolate()));
       Subclass::SetImpl(raw_backing_store, dst_index + i, argument, mode);
     }
   }
@@ -2230,7 +2232,7 @@
       Object* probe = parameter_map->get(entry + 2);
       Context* context = Context::cast(parameter_map->get(0));
       int context_entry = Smi::cast(probe)->value();
-      DCHECK(!context->get(context_entry)->IsTheHole());
+      DCHECK(!context->get(context_entry)->IsTheHole(isolate));
       return handle(context->get(context_entry), isolate);
     } else {
       // Object is not mapped, defer to the arguments.
@@ -2242,7 +2244,7 @@
         AliasedArgumentsEntry* alias = AliasedArgumentsEntry::cast(*result);
         Context* context = Context::cast(parameter_map->get(0));
         int context_entry = alias->aliased_context_slot();
-        DCHECK(!context->get(context_entry)->IsTheHole());
+        DCHECK(!context->get(context_entry)->IsTheHole(isolate));
         return handle(context->get(context_entry), isolate);
       }
       return result;
@@ -2267,7 +2269,7 @@
       Object* probe = parameter_map->get(entry + 2);
       Context* context = Context::cast(parameter_map->get(0));
       int context_entry = Smi::cast(probe)->value();
-      DCHECK(!context->get(context_entry)->IsTheHole());
+      DCHECK(!context->get(context_entry)->IsTheHole(store->GetIsolate()));
       context->set(context_entry, value);
     } else {
       FixedArray* arguments = FixedArray::cast(parameter_map->get(1));
@@ -2276,7 +2278,7 @@
         AliasedArgumentsEntry* alias = AliasedArgumentsEntry::cast(current);
         Context* context = Context::cast(parameter_map->get(0));
         int context_entry = alias->aliased_context_slot();
-        DCHECK(!context->get(context_entry)->IsTheHole());
+        DCHECK(!context->get(context_entry)->IsTheHole(store->GetIsolate()));
         context->set(context_entry, value);
       } else {
         ArgumentsAccessor::SetImpl(arguments, entry - length, value);
@@ -2315,7 +2317,8 @@
     FixedArray* parameter_map = FixedArray::cast(parameters);
     uint32_t length = parameter_map->length() - 2;
     if (entry < length) {
-      return !GetParameterMapArg(parameter_map, entry)->IsTheHole();
+      return !GetParameterMapArg(parameter_map, entry)
+                  ->IsTheHole(parameter_map->GetIsolate());
     }
 
     FixedArrayBase* arguments = FixedArrayBase::cast(parameter_map->get(1));
@@ -2344,7 +2347,7 @@
                                        uint32_t index, PropertyFilter filter) {
     FixedArray* parameter_map = FixedArray::cast(parameters);
     Object* probe = GetParameterMapArg(parameter_map, index);
-    if (!probe->IsTheHole()) return index;
+    if (!probe->IsTheHole(holder->GetIsolate())) return index;
 
     FixedArray* arguments = FixedArray::cast(parameter_map->get(1));
     uint32_t entry = ArgumentsAccessor::GetEntryForIndexImpl(holder, arguments,
@@ -2386,18 +2389,16 @@
   static void CollectElementIndicesImpl(Handle<JSObject> object,
                                         Handle<FixedArrayBase> backing_store,
                                         KeyAccumulator* keys) {
-    FixedArray* parameter_map = FixedArray::cast(*backing_store);
-    uint32_t length = parameter_map->length() - 2;
-    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);
-    if (Subclass::kind() == FAST_SLOPPY_ARGUMENTS_ELEMENTS) {
-      keys->SortCurrentElementsList();
+    Isolate* isolate = keys->isolate();
+    uint32_t nof_indices = 0;
+    Handle<FixedArray> indices = isolate->factory()->NewFixedArray(
+        GetCapacityImpl(*object, *backing_store));
+    DirectCollectElementIndicesImpl(isolate, object, backing_store,
+                                    GetKeysConversion::kKeepNumbers,
+                                    ENUMERABLE_STRINGS, indices, &nof_indices);
+    SortIndices(indices, nof_indices);
+    for (uint32_t i = 0; i < nof_indices; i++) {
+      keys->AddKey(indices->get(i));
     }
   }
 
@@ -2410,8 +2411,8 @@
     uint32_t length = parameter_map->length() - 2;
 
     for (uint32_t i = 0; i < length; ++i) {
-      if (parameter_map->get(i + 2)->IsTheHole()) continue;
-      if (convert == CONVERT_TO_STRING) {
+      if (parameter_map->get(i + 2)->IsTheHole(isolate)) continue;
+      if (convert == GetKeysConversion::kConvertToString) {
         Handle<String> index_string = isolate->factory()->Uint32ToString(i);
         list->set(insertion_index, *index_string);
       } else {
@@ -2446,7 +2447,7 @@
     uint32_t index = GetIndexForEntryImpl(*dict, entry);
     Handle<Object> result = SeededNumberDictionary::DeleteProperty(dict, entry);
     USE(result);
-    DCHECK(result->IsTrue());
+    DCHECK(result->IsTrue(dict->GetIsolate()));
     Handle<FixedArray> new_elements =
         SeededNumberDictionary::Shrink(dict, index);
     parameter_map->set(1, *new_elements);
@@ -2479,25 +2480,25 @@
                               PropertyAttributes attributes) {
     Handle<FixedArray> parameter_map = Handle<FixedArray>::cast(store);
     uint32_t length = parameter_map->length() - 2;
+    Isolate* isolate = store->GetIsolate();
     if (entry < length) {
       Object* probe = parameter_map->get(entry + 2);
-      DCHECK(!probe->IsTheHole());
+      DCHECK(!probe->IsTheHole(isolate));
       Context* context = Context::cast(parameter_map->get(0));
       int context_entry = Smi::cast(probe)->value();
-      DCHECK(!context->get(context_entry)->IsTheHole());
+      DCHECK(!context->get(context_entry)->IsTheHole(isolate));
       context->set(context_entry, *value);
 
       // Redefining attributes of an aliased element destroys fast aliasing.
       parameter_map->set_the_hole(entry + 2);
       // For elements that are still writable we re-establish slow aliasing.
       if ((attributes & READ_ONLY) == 0) {
-        Isolate* isolate = store->GetIsolate();
         value = isolate->factory()->NewAliasedArgumentsEntry(context_entry);
       }
 
       PropertyDetails details(attributes, DATA, 0, PropertyCellType::kNoCell);
       Handle<SeededNumberDictionary> arguments(
-          SeededNumberDictionary::cast(parameter_map->get(1)));
+          SeededNumberDictionary::cast(parameter_map->get(1)), isolate);
       arguments = SeededNumberDictionary::AddNumberEntry(
           arguments, entry, value, details, object->map()->is_prototype_map());
       // If the attributes were NONE, we would have called set rather than
@@ -2507,7 +2508,7 @@
       parameter_map->set(1, *arguments);
     } else {
       Handle<FixedArrayBase> arguments(
-          FixedArrayBase::cast(parameter_map->get(1)));
+          FixedArrayBase::cast(parameter_map->get(1)), isolate);
       DictionaryElementsAccessor::ReconfigureImpl(
           object, arguments, entry - length, value, attributes);
     }
@@ -2745,8 +2746,9 @@
                                         Handle<FixedArrayBase> backing_store,
                                         KeyAccumulator* keys) {
     uint32_t length = GetString(*object)->length();
+    Factory* factory = keys->isolate()->factory();
     for (uint32_t i = 0; i < length; i++) {
-      keys->AddKey(i);
+      keys->AddKey(factory->NewNumberFromUint(i));
     }
     BackingStoreAccessor::CollectElementIndicesImpl(object, backing_store,
                                                     keys);
diff --git a/src/execution.cc b/src/execution.cc
index 37e41d5..243bb8a 100644
--- a/src/execution.cc
+++ b/src/execution.cc
@@ -106,7 +106,7 @@
 #endif
 
   // Update the pending exception flag and return the value.
-  bool has_exception = value->IsException();
+  bool has_exception = value->IsException(isolate);
   DCHECK(has_exception == isolate->has_pending_exception());
   if (has_exception) {
     isolate->ReportPendingMessages();
@@ -140,7 +140,8 @@
     SaveContext save(isolate);
     isolate->set_context(function->context());
     DCHECK(function->context()->global_object()->IsJSGlobalObject());
-    auto value = Builtins::InvokeApiFunction(function, receiver, argc, argv);
+    auto value =
+        Builtins::InvokeApiFunction(isolate, function, receiver, argc, argv);
     bool has_exception = value.is_null();
     DCHECK(has_exception == isolate->has_pending_exception());
     if (has_exception) {
diff --git a/src/extensions/statistics-extension.cc b/src/extensions/statistics-extension.cc
index e6649a6..387bd31 100644
--- a/src/extensions/statistics-extension.cc
+++ b/src/extensions/statistics-extension.cc
@@ -135,8 +135,7 @@
     AddNumber(args.GetIsolate(), result, numbers[i].number, numbers[i].name);
   }
 
-  AddNumber64(args.GetIsolate(), result,
-              heap->amount_of_external_allocated_memory(),
+  AddNumber64(args.GetIsolate(), result, heap->external_memory(),
               "amount_of_external_allocated_memory");
   args.GetReturnValue().Set(result);
 }
diff --git a/src/external-reference-table.cc b/src/external-reference-table.cc
index 6b8b7d8..7e5ef84 100644
--- a/src/external-reference-table.cc
+++ b/src/external-reference-table.cc
@@ -67,8 +67,32 @@
       "power_double_double_function");
   Add(ExternalReference::power_double_int_function(isolate).address(),
       "power_double_int_function");
-  Add(ExternalReference::math_log_double_function(isolate).address(),
-      "std::log");
+  Add(ExternalReference::ieee754_atan_function(isolate).address(),
+      "base::ieee754::atan");
+  Add(ExternalReference::ieee754_atan2_function(isolate).address(),
+      "base::ieee754::atan2");
+  Add(ExternalReference::ieee754_atanh_function(isolate).address(),
+      "base::ieee754::atanh");
+  Add(ExternalReference::ieee754_cbrt_function(isolate).address(),
+      "base::ieee754::cbrt");
+  Add(ExternalReference::ieee754_cos_function(isolate).address(),
+      "base::ieee754::cos");
+  Add(ExternalReference::ieee754_exp_function(isolate).address(),
+      "base::ieee754::exp");
+  Add(ExternalReference::ieee754_expm1_function(isolate).address(),
+      "base::ieee754::expm1");
+  Add(ExternalReference::ieee754_log_function(isolate).address(),
+      "base::ieee754::log");
+  Add(ExternalReference::ieee754_log1p_function(isolate).address(),
+      "base::ieee754::log1p");
+  Add(ExternalReference::ieee754_log10_function(isolate).address(),
+      "base::ieee754::log10");
+  Add(ExternalReference::ieee754_log2_function(isolate).address(),
+      "base::ieee754::log2");
+  Add(ExternalReference::ieee754_sin_function(isolate).address(),
+      "base::ieee754::sin");
+  Add(ExternalReference::ieee754_tan_function(isolate).address(),
+      "base::ieee754::tan");
   Add(ExternalReference::store_buffer_top(isolate).address(),
       "store_buffer_top");
   Add(ExternalReference::address_of_the_hole_nan().address(), "the_hole_nan");
@@ -91,7 +115,7 @@
   Add(ExternalReference::get_mark_code_as_executed_function(isolate).address(),
       "Code::MarkCodeAsExecuted");
   Add(ExternalReference::is_profiling_address(isolate).address(),
-      "CpuProfiler::is_profiling");
+      "Isolate::is_profiling");
   Add(ExternalReference::scheduled_exception_address(isolate).address(),
       "Isolate::scheduled_exception");
   Add(ExternalReference::invoke_function_callback(isolate).address(),
@@ -148,22 +172,8 @@
       "f64_acos_wrapper");
   Add(ExternalReference::f64_asin_wrapper_function(isolate).address(),
       "f64_asin_wrapper");
-  Add(ExternalReference::f64_atan_wrapper_function(isolate).address(),
-      "f64_atan_wrapper");
-  Add(ExternalReference::f64_cos_wrapper_function(isolate).address(),
-      "f64_cos_wrapper");
-  Add(ExternalReference::f64_sin_wrapper_function(isolate).address(),
-      "f64_sin_wrapper");
-  Add(ExternalReference::f64_tan_wrapper_function(isolate).address(),
-      "f64_tan_wrapper");
-  Add(ExternalReference::f64_exp_wrapper_function(isolate).address(),
-      "f64_exp_wrapper");
-  Add(ExternalReference::f64_log_wrapper_function(isolate).address(),
-      "f64_log_wrapper");
   Add(ExternalReference::f64_pow_wrapper_function(isolate).address(),
       "f64_pow_wrapper");
-  Add(ExternalReference::f64_atan2_wrapper_function(isolate).address(),
-      "f64_atan2_wrapper");
   Add(ExternalReference::f64_mod_wrapper_function(isolate).address(),
       "f64_mod_wrapper");
   Add(ExternalReference::log_enter_external_function(isolate).address(),
@@ -189,8 +199,10 @@
       "Debug::after_break_target_address()");
   Add(ExternalReference::debug_is_active_address(isolate).address(),
       "Debug::is_active_address()");
-  Add(ExternalReference::debug_step_in_enabled_address(isolate).address(),
+  Add(ExternalReference::debug_last_step_action_address(isolate).address(),
       "Debug::step_in_enabled_address()");
+  Add(ExternalReference::debug_suspended_generator_address(isolate).address(),
+      "Debug::step_suspended_generator_address()");
 
 #ifndef V8_INTERPRETED_REGEXP
   Add(ExternalReference::re_case_insensitive_compare_uc16(isolate).address(),
@@ -226,7 +238,7 @@
   };
 
   static const RefTableEntry c_builtins[] = {
-#define DEF_ENTRY_C(name, ignored) {Builtins::c_##name, "Builtins::" #name},
+#define DEF_ENTRY_C(name) {Builtins::c_##name, "Builtins::" #name},
       BUILTIN_LIST_C(DEF_ENTRY_C)
 #undef DEF_ENTRY_C
   };
@@ -238,8 +250,8 @@
   }
 
   static const RefTableEntry builtins[] = {
-#define DEF_ENTRY_C(name, ignored) {Builtins::k##name, "Builtins::" #name},
-#define DEF_ENTRY_A(name, i1, i2, i3) {Builtins::k##name, "Builtins::" #name},
+#define DEF_ENTRY_C(name) {Builtins::k##name, "Builtins::" #name},
+#define DEF_ENTRY_A(name, i1, i2) {Builtins::k##name, "Builtins::" #name},
       BUILTIN_LIST_C(DEF_ENTRY_C) BUILTIN_LIST_A(DEF_ENTRY_A)
           BUILTIN_LIST_DEBUG_A(DEF_ENTRY_A)
 #undef DEF_ENTRY_C
@@ -366,6 +378,15 @@
         Deoptimizer::CALCULATE_ENTRY_ADDRESS);
     Add(address, "lazy_deopt");
   }
+
+  // Add external references provided by the embedder (a null-terminated array).
+  intptr_t* api_external_references = isolate->api_external_references();
+  if (api_external_references != nullptr) {
+    while (*api_external_references != 0) {
+      Add(reinterpret_cast<Address>(*api_external_references), "<embedder>");
+      api_external_references++;
+    }
+  }
 }
 
 }  // namespace internal
diff --git a/src/factory.cc b/src/factory.cc
index 7d2dad0..bd4656e 100644
--- a/src/factory.cc
+++ b/src/factory.cc
@@ -96,6 +96,7 @@
   result->set_prototype_users(WeakFixedArray::Empty());
   result->set_registry_slot(PrototypeInfo::UNREGISTERED);
   result->set_validity_cell(Smi::FromInt(0));
+  result->set_bit_field(0);
   return result;
 }
 
@@ -291,12 +292,10 @@
   return result;
 }
 
-
-MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
+MaybeHandle<String> Factory::NewStringFromTwoByte(const uc16* string,
+                                                  int length,
                                                   PretenureFlag pretenure) {
-  int length = string.length();
-  const uc16* start = string.start();
-  if (String::IsOneByte(start, length)) {
+  if (String::IsOneByte(string, length)) {
     if (length == 1) return LookupSingleCharacterStringFromCode(string[0]);
     Handle<SeqOneByteString> result;
     ASSIGN_RETURN_ON_EXCEPTION(
@@ -304,7 +303,7 @@
         result,
         NewRawOneByteString(length, pretenure),
         String);
-    CopyChars(result->GetChars(), start, length);
+    CopyChars(result->GetChars(), string, length);
     return result;
   } else {
     Handle<SeqTwoByteString> result;
@@ -313,11 +312,21 @@
         result,
         NewRawTwoByteString(length, pretenure),
         String);
-    CopyChars(result->GetChars(), start, length);
+    CopyChars(result->GetChars(), string, length);
     return result;
   }
 }
 
+MaybeHandle<String> Factory::NewStringFromTwoByte(Vector<const uc16> string,
+                                                  PretenureFlag pretenure) {
+  return NewStringFromTwoByte(string.start(), string.length(), pretenure);
+}
+
+MaybeHandle<String> Factory::NewStringFromTwoByte(
+    const ZoneVector<uc16>* string, PretenureFlag pretenure) {
+  return NewStringFromTwoByte(string->data(), static_cast<int>(string->size()),
+                              pretenure);
+}
 
 Handle<String> Factory::NewInternalizedStringFromUtf8(Vector<const char> str,
                                                       int chars,
@@ -704,6 +713,21 @@
   return external_string;
 }
 
+Handle<ExternalOneByteString> Factory::NewNativeSourceString(
+    const ExternalOneByteString::Resource* resource) {
+  size_t length = resource->length();
+  DCHECK_LE(length, static_cast<size_t>(String::kMaxLength));
+
+  Handle<Map> map = native_source_string_map();
+  Handle<ExternalOneByteString> external_string =
+      New<ExternalOneByteString>(map, OLD_SPACE);
+  external_string->set_length(static_cast<int>(length));
+  external_string->set_hash_field(String::kEmptyHashField);
+  external_string->set_resource(resource);
+
+  return external_string;
+}
+
 
 Handle<Symbol> Factory::NewSymbol() {
   CALL_HEAP_FUNCTION(
@@ -1207,7 +1231,7 @@
   function->set_code(info->code());
   function->set_context(*context);
   function->set_prototype_or_initial_map(*the_hole_value());
-  function->set_literals(LiteralsArray::cast(*empty_fixed_array()));
+  function->set_literals(LiteralsArray::cast(*empty_literals_array()));
   function->set_next_function_link(*undefined_value(), SKIP_WRITE_BARRIER);
   isolate()->heap()->InitializeJSObjectBody(*function, *map, JSFunction::kSize);
   return function;
@@ -1221,7 +1245,7 @@
   Handle<SharedFunctionInfo> info =
       NewSharedFunctionInfo(name, code, map->is_constructor());
   DCHECK(is_sloppy(info->language_mode()));
-  DCHECK(!map->IsUndefined());
+  DCHECK(!map->IsUndefined(isolate()));
   DCHECK(
       map.is_identical_to(isolate()->sloppy_function_map()) ||
       map.is_identical_to(isolate()->sloppy_function_without_prototype_map()) ||
@@ -1254,16 +1278,9 @@
 
 Handle<JSFunction> Factory::NewFunction(Handle<String> name, Handle<Code> code,
                                         Handle<Object> prototype,
-                                        bool read_only_prototype,
                                         bool is_strict) {
-  // In strict mode, readonly strict map is only available during bootstrap
-  DCHECK(!is_strict || !read_only_prototype ||
-         isolate()->bootstrapper()->IsActive());
-  Handle<Map> map =
-      is_strict ? isolate()->strict_function_map()
-                : read_only_prototype
-                      ? isolate()->sloppy_function_with_readonly_prototype_map()
-                      : isolate()->sloppy_function_map();
+  Handle<Map> map = is_strict ? isolate()->strict_function_map()
+                              : isolate()->sloppy_function_map();
   Handle<JSFunction> result = NewFunction(map, name, code);
   result->set_prototype_or_initial_map(*prototype);
   return result;
@@ -1273,22 +1290,19 @@
 Handle<JSFunction> Factory::NewFunction(Handle<String> name, Handle<Code> code,
                                         Handle<Object> prototype,
                                         InstanceType type, int instance_size,
-                                        bool read_only_prototype,
-                                        bool install_constructor,
                                         bool is_strict) {
   // Allocate the function
-  Handle<JSFunction> function =
-      NewFunction(name, code, prototype, read_only_prototype, is_strict);
+  Handle<JSFunction> function = NewFunction(name, code, prototype, is_strict);
 
   ElementsKind elements_kind =
       type == JS_ARRAY_TYPE ? FAST_SMI_ELEMENTS : FAST_HOLEY_SMI_ELEMENTS;
   Handle<Map> initial_map = NewMap(type, instance_size, elements_kind);
-  if (!function->shared()->is_generator()) {
-    if (prototype->IsTheHole()) {
+  // TODO(littledan): Why do we have this is_generator test when
+  // NewFunctionPrototype already handles finding an appropriately
+  // shared prototype?
+  if (!function->shared()->is_resumable()) {
+    if (prototype->IsTheHole(isolate())) {
       prototype = NewFunctionPrototype(function);
-    } else if (install_constructor) {
-      JSObject::AddProperty(Handle<JSObject>::cast(prototype),
-                            constructor_string(), function, DONT_ENUM);
     }
   }
 
@@ -1312,11 +1326,12 @@
   // can be from a different context.
   Handle<Context> native_context(function->context()->native_context());
   Handle<Map> new_map;
-  if (function->shared()->is_generator()) {
-    // Generator prototypes can share maps since they don't have "constructor"
-    // properties.
+  if (function->shared()->is_resumable()) {
+    // Generator and async function prototypes can share maps since they
+    // don't have "constructor" properties.
     new_map = handle(native_context->generator_object_prototype_map());
   } else {
+    CHECK(!function->shared()->is_async());
     // Each function prototype gets a fresh map to avoid unwanted sharing of
     // maps between prototypes of different constructors.
     Handle<JSFunction> object_function(native_context->object_function());
@@ -1327,7 +1342,7 @@
   DCHECK(!new_map->is_prototype_map());
   Handle<JSObject> prototype = NewJSObjectFromMap(new_map);
 
-  if (!function->shared()->is_generator()) {
+  if (!function->shared()->is_resumable()) {
     JSObject::AddProperty(prototype, constructor_string(), function, DONT_ENUM);
   }
 
@@ -1398,13 +1413,21 @@
                               bool is_debug) {
   Handle<ByteArray> reloc_info = NewByteArray(desc.reloc_size, TENURED);
 
+  bool has_unwinding_info = desc.unwinding_info != nullptr;
+  DCHECK((has_unwinding_info && desc.unwinding_info_size > 0) ||
+         (!has_unwinding_info && desc.unwinding_info_size == 0));
+
   // Compute size.
-  int body_size = RoundUp(desc.instr_size, kObjectAlignment);
-  int obj_size = Code::SizeFor(body_size);
+  int body_size = desc.instr_size;
+  int unwinding_info_size_field_size = kInt64Size;
+  if (has_unwinding_info) {
+    body_size = RoundUp(body_size, kInt64Size) + desc.unwinding_info_size +
+                unwinding_info_size_field_size;
+  }
+  int obj_size = Code::SizeFor(RoundUp(body_size, kObjectAlignment));
 
   Handle<Code> code = NewCodeRaw(obj_size, immovable);
-  DCHECK(isolate()->heap()->memory_allocator()->code_range() == NULL ||
-         !isolate()->heap()->memory_allocator()->code_range()->valid() ||
+  DCHECK(!isolate()->heap()->memory_allocator()->code_range()->valid() ||
          isolate()->heap()->memory_allocator()->code_range()->contains(
              code->address()) ||
          obj_size <= isolate()->heap()->code_space()->AreaSize());
@@ -1417,6 +1440,7 @@
   code->set_instruction_size(desc.instr_size);
   code->set_relocation_info(*reloc_info);
   code->set_flags(flags);
+  code->set_has_unwinding_info(has_unwinding_info);
   code->set_raw_kind_specific_flags1(0);
   code->set_raw_kind_specific_flags2(0);
   code->set_is_crankshafted(crankshafted);
@@ -1461,12 +1485,6 @@
 }
 
 
-Handle<Code> Factory::CopyCode(Handle<Code> code, Vector<byte> reloc_info) {
-  CALL_HEAP_FUNCTION(isolate(),
-                     isolate()->heap()->CopyCode(*code, reloc_info),
-                     Code);
-}
-
 Handle<BytecodeArray> Factory::CopyBytecodeArray(
     Handle<BytecodeArray> bytecode_array) {
   CALL_HEAP_FUNCTION(isolate(),
@@ -1994,7 +2012,7 @@
   } else {
     map = Handle<Map>(isolate()->proxy_map());
   }
-  DCHECK(map->prototype()->IsNull());
+  DCHECK(map->prototype()->IsNull(isolate()));
   Handle<JSProxy> result = New<JSProxy>(map, NEW_SPACE);
   result->initialize_properties();
   result->set_target(*target);
@@ -2066,12 +2084,6 @@
   shared->set_num_literals(number_of_literals);
   if (IsGeneratorFunction(kind)) {
     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;
 }
@@ -2126,9 +2138,7 @@
   StaticFeedbackVectorSpec empty_spec;
   Handle<TypeFeedbackMetadata> feedback_metadata =
       TypeFeedbackMetadata::New(isolate(), &empty_spec);
-  Handle<TypeFeedbackVector> feedback_vector =
-      TypeFeedbackVector::New(isolate(), feedback_metadata);
-  share->set_feedback_vector(*feedback_vector, SKIP_WRITE_BARRIER);
+  share->set_feedback_metadata(*feedback_metadata, SKIP_WRITE_BARRIER);
 #if TRACE_MAPS
   share->set_unique_id(isolate()->GetNextUniqueSharedFunctionInfoId());
 #endif
@@ -2204,7 +2214,7 @@
   isolate()->counters()->number_to_string_runtime()->Increment();
   if (check_number_string_cache) {
     Handle<Object> cached = GetNumberStringCache(number);
-    if (!cached->IsUndefined()) return Handle<String>::cast(cached);
+    if (!cached->IsUndefined(isolate())) return Handle<String>::cast(cached);
   }
 
   char arr[100];
@@ -2310,7 +2320,7 @@
 
   int cache_index = number_of_properties - 1;
   Handle<Object> maybe_cache(context->map_cache(), isolate());
-  if (maybe_cache->IsUndefined()) {
+  if (maybe_cache->IsUndefined(isolate())) {
     // Allocate the new map cache for the native context.
     maybe_cache = NewFixedArray(kMapCacheSize, TENURED);
     context->set_map_cache(*maybe_cache);
@@ -2366,6 +2376,7 @@
   store->set(JSRegExp::kIrregexpMaxRegisterCountIndex, Smi::FromInt(0));
   store->set(JSRegExp::kIrregexpCaptureCountIndex,
              Smi::FromInt(capture_count));
+  store->set(JSRegExp::kIrregexpCaptureNameMapIndex, uninitialized);
   regexp->set_data(*store);
 }
 
diff --git a/src/factory.h b/src/factory.h
index 51ba09d..f8b91a9 100644
--- a/src/factory.h
+++ b/src/factory.h
@@ -163,6 +163,9 @@
       Vector<const uc16> str,
       PretenureFlag pretenure = NOT_TENURED);
 
+  MUST_USE_RESULT MaybeHandle<String> NewStringFromTwoByte(
+      const ZoneVector<uc16>* str, PretenureFlag pretenure = NOT_TENURED);
+
   // Allocates an internalized string in old space based on the character
   // stream.
   Handle<String> NewInternalizedStringFromUtf8(Vector<const char> str,
@@ -224,6 +227,10 @@
       const ExternalOneByteString::Resource* resource);
   MUST_USE_RESULT MaybeHandle<String> NewExternalStringFromTwoByte(
       const ExternalTwoByteString::Resource* resource);
+  // Create a new external string object for one-byte encoded native script.
+  // It does not cache the resource data pointer.
+  Handle<ExternalOneByteString> NewNativeSourceString(
+      const ExternalOneByteString::Resource* resource);
 
   // Create a symbol.
   Handle<Symbol> NewSymbol();
@@ -501,7 +508,6 @@
 
   Handle<JSFunction> NewFunction(Handle<String> name, Handle<Code> code,
                                  Handle<Object> prototype,
-                                 bool read_only_prototype = false,
                                  bool is_strict = false);
   Handle<JSFunction> NewFunction(Handle<String> name);
   Handle<JSFunction> NewFunctionWithoutPrototype(Handle<String> name,
@@ -519,8 +525,6 @@
   Handle<JSFunction> NewFunction(Handle<String> name, Handle<Code> code,
                                  Handle<Object> prototype, InstanceType type,
                                  int instance_size,
-                                 bool read_only_prototype = false,
-                                 bool install_constructor = false,
                                  bool is_strict = false);
   Handle<JSFunction> NewFunction(Handle<String> name,
                                  Handle<Code> code,
@@ -696,6 +700,9 @@
                 AllocationSpace space,
                 Handle<AllocationSite> allocation_site);
 
+  MaybeHandle<String> NewStringFromTwoByte(const uc16* string, int length,
+                                           PretenureFlag pretenure);
+
   // Creates a code object that is not yet fully initialized yet.
   inline Handle<Code> NewCodeRaw(int object_size, bool immovable);
 
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index 841d326..e3dcf29 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -188,7 +188,7 @@
 // Removing extra Promise functions is shipped
 DEFINE_NEG_VALUE_IMPLICATION(harmony_shipping, promise_extra, true)
 
-DEFINE_BOOL(intl_extra, true, "additional V8 Intl functions")
+DEFINE_BOOL(intl_extra, false, "additional V8 Intl functions")
 // Removing extra Intl functions is shipped
 DEFINE_NEG_VALUE_IMPLICATION(harmony_shipping, intl_extra, true)
 
@@ -197,49 +197,41 @@
 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_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_explicit_tailcalls, "harmony explicit tail calls")          \
   V(harmony_do_expressions, "harmony do-expressions")                   \
+  V(harmony_restrictive_generators,                                     \
+    "harmony restrictions on generator declarations")                   \
+  V(harmony_regexp_named_captures, "harmony regexp named captures")     \
   V(harmony_regexp_property, "harmony unicode regexp property classes") \
-  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
+  V(harmony_for_in, "harmony for-in syntax")
 
 // Features that are complete (but still behind --harmony/es-staging flag).
-#define HARMONY_STAGED(V)                                                    \
-  V(harmony_for_in, "harmony for-in syntax")                                 \
+#define HARMONY_STAGED_BASE(V)                                               \
   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_async_await, "harmony async-await")                              \
   V(harmony_string_padding, "harmony String-padding methods")
 
+#ifdef V8_I18N_SUPPORT
+#define HARMONY_STAGED(V) \
+  HARMONY_STAGED_BASE(V)  \
+  V(icu_case_mapping, "case mapping with ICU rather than Unibrow")
+#else
+#define HARMONY_STAGED(V) HARMONY_STAGED_BASE(V)
+#endif
+
 // Features that are shipping (turned on by default, but internal flag remains).
 #define HARMONY_SHIPPING(V)                                           \
-  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_regexp_subclass, "harmony regexp subclassing")            \
   V(harmony_restrictive_declarations,                                 \
     "harmony limitations on sloppy mode function declarations")       \
-  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
@@ -302,11 +294,16 @@
 
 // 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,
+DEFINE_BOOL(ignition_eager, false, "eagerly compile and parse with ignition")
+DEFINE_BOOL(ignition_generators, true,
             "enable experimental ignition support for generators")
 DEFINE_STRING(ignition_filter, "*", "filter for ignition interpreter")
+DEFINE_BOOL(ignition_deadcode, true,
+            "use ignition dead code elimination optimizer")
 DEFINE_BOOL(ignition_peephole, true, "use ignition peephole optimizer")
+DEFINE_BOOL(ignition_reo, true, "use ignition register equivalence optimizer")
+DEFINE_BOOL(ignition_filter_expression_positions, true,
+            "filter expression positions before the bytecode pipeline")
 DEFINE_BOOL(print_bytecode, false,
             "print bytecode generated by ignition interpreter")
 DEFINE_BOOL(trace_ignition, false,
@@ -424,9 +421,9 @@
 // Flags for TurboFan.
 DEFINE_BOOL(turbo, false, "enable TurboFan compiler")
 DEFINE_IMPLICATION(turbo, turbo_asm_deoptimization)
+DEFINE_IMPLICATION(turbo, turbo_type_feedback)
 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")
 DEFINE_BOOL(turbo_preprocess_ranges, true,
@@ -448,7 +445,11 @@
             "enable deoptimization in TurboFan for asm.js code")
 DEFINE_BOOL(turbo_verify, DEBUG_BOOL, "verify TurboFan graphs at each phase")
 DEFINE_BOOL(turbo_stats, false, "print TurboFan statistics")
+DEFINE_BOOL(turbo_stats_nvp, false,
+            "print TurboFan statistics in machine-readable format")
 DEFINE_BOOL(turbo_splitting, true, "split nodes during scheduling in TurboFan")
+DEFINE_BOOL(turbo_type_feedback, false,
+            "use typed feedback for representation inference in Turbofan")
 DEFINE_BOOL(turbo_source_positions, false,
             "track source code positions when building TurboFan IR")
 DEFINE_IMPLICATION(trace_turbo, turbo_source_positions)
@@ -475,15 +476,18 @@
             "enable instruction scheduling in TurboFan")
 DEFINE_BOOL(turbo_stress_instruction_scheduling, false,
             "randomly schedule instructions to stress dependency tracking")
+DEFINE_BOOL(turbo_store_elimination, false,
+            "enable store-store elimination in TurboFan")
 
 // Flags for native WebAssembly.
 DEFINE_BOOL(expose_wasm, false, "expose WASM interface to JavaScript")
-DEFINE_INT(wasm_num_compilation_tasks, 0,
+DEFINE_INT(wasm_num_compilation_tasks, 10,
            "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")
 DEFINE_BOOL(trace_wasm_compiler, false, "trace compiling of wasm code")
+DEFINE_BOOL(trace_wasm_interpreter, false, "trace interpretation of wasm code")
 DEFINE_INT(trace_wasm_ast_start, 0,
            "start function for WASM AST trace (inclusive)")
 DEFINE_INT(trace_wasm_ast_end, 0, "end function for WASM AST trace (exclusive)")
@@ -504,6 +508,9 @@
 DEFINE_INT(typed_array_max_size_in_heap, 64,
            "threshold for in-heap typed array")
 
+DEFINE_BOOL(wasm_jit_prototype, false,
+            "enable experimental wasm runtime dynamic code generation")
+
 // Profiler flags.
 DEFINE_INT(frame_count, 1, "number of stack frames inspected by the profiler")
 // 0x1800 fits in the immediate field of an ARM instruction.
@@ -543,8 +550,6 @@
             "enable use of NEON instructions if available (ARM only)")
 DEFINE_BOOL(enable_sudiv, true,
             "enable use of SDIV and UDIV instructions if available (ARM only)")
-DEFINE_BOOL(enable_mls, true,
-            "enable use of MLS instructions if available (ARM only)")
 DEFINE_BOOL(enable_movw_movt, false,
             "enable loading 32-bit constant by means of movw/movt "
             "instruction pairs (ARM only)")
@@ -562,7 +567,6 @@
 DEFINE_IMPLICATION(enable_armv8, enable_neon)
 DEFINE_IMPLICATION(enable_armv8, enable_32dregs)
 DEFINE_IMPLICATION(enable_armv8, enable_sudiv)
-DEFINE_IMPLICATION(enable_armv8, enable_mls)
 
 // bootstrapper.cc
 DEFINE_STRING(expose_natives_as, NULL, "expose natives in global object")
@@ -713,7 +717,7 @@
            "least this many unmarked objects")
 DEFINE_INT(max_incremental_marking_finalization_rounds, 3,
            "at most try this many times to finalize incremental marking")
-DEFINE_BOOL(black_allocation, true, "use black allocation")
+DEFINE_BOOL(black_allocation, false, "use black allocation")
 DEFINE_BOOL(concurrent_sweeping, true, "use concurrent sweeping")
 DEFINE_BOOL(parallel_compaction, true, "use parallel compaction")
 DEFINE_BOOL(parallel_pointer_update, true,
@@ -764,6 +768,7 @@
 // ic.cc
 DEFINE_BOOL(use_ic, true, "use inline caching")
 DEFINE_BOOL(trace_ic, false, "trace inline cache state transitions")
+DEFINE_BOOL(tf_load_ic_stub, true, "use TF LoadIC stub")
 
 // macro-assembler-ia32.cc
 DEFINE_BOOL(native_code_counters, false,
@@ -788,13 +793,8 @@
 
 // objects.cc
 DEFINE_BOOL(trace_weak_arrays, false, "Trace WeakFixedArray usage")
-DEFINE_BOOL(track_prototype_users, false,
-            "Keep track of which maps refer to a given prototype object")
 DEFINE_BOOL(trace_prototype_users, false,
             "Trace updates to prototype user tracking")
-DEFINE_BOOL(eliminate_prototype_chain_checks, true,
-            "Collapse prototype chain checks into single-cell checks")
-DEFINE_IMPLICATION(eliminate_prototype_chain_checks, track_prototype_users)
 DEFINE_BOOL(use_verbose_printer, true, "allows verbose printing")
 DEFINE_BOOL(trace_for_in_enumerate, false, "Trace for-in enumerate slow-paths")
 #if TRACE_MAPS
@@ -843,6 +843,7 @@
 DEFINE_INT(hash_seed, 0,
            "Fixed seed to use to hash property keys (0 means random)"
            "(with snapshots this option cannot override the baked-in seed)")
+DEFINE_BOOL(trace_rail, false, "trace RAIL mode")
 
 // runtime.cc
 DEFINE_BOOL(runtime_call_stats, false, "report runtime call counts and times")
@@ -1052,6 +1053,8 @@
 DEFINE_NEG_IMPLICATION(perf_prof, compact_code_space)
 DEFINE_BOOL(perf_prof_debug_info, false,
             "Enable debug info for perf linux profiler (experimental).")
+DEFINE_BOOL(perf_prof_unwinding_info, false,
+            "Enable unwinding info for perf linux profiler (experimental).")
 DEFINE_STRING(gc_fake_mmap, "/tmp/__v8_gc__",
               "Specify the name of the file for fake gc mmap used in ll_prof")
 DEFINE_BOOL(log_internal_timer_events, false, "Time internal events.")
diff --git a/src/flags.cc b/src/flags.cc
index f67defd..f7ae004 100644
--- a/src/flags.cc
+++ b/src/flags.cc
@@ -429,6 +429,10 @@
         PrintF(stderr, "Error: illegal value for flag %s of type %s\n"
                "Try --help for options\n",
                arg, Type2String(flag->type()));
+        if (is_bool_type) {
+          PrintF(stderr,
+                 "To set or unset a boolean flag, use --flag or --no-flag.\n");
+        }
         return_code = j;
         break;
       }
diff --git a/src/frames-inl.h b/src/frames-inl.h
index 998be23..c45f015 100644
--- a/src/frames-inl.h
+++ b/src/frames-inl.h
@@ -233,6 +233,9 @@
     StackFrameIteratorBase* iterator) : JavaScriptFrame(iterator) {
 }
 
+inline BuiltinFrame::BuiltinFrame(StackFrameIteratorBase* iterator)
+    : JavaScriptFrame(iterator) {}
+
 inline WasmFrame::WasmFrame(StackFrameIteratorBase* iterator)
     : StandardFrame(iterator) {}
 
diff --git a/src/frames.cc b/src/frames.cc
index a8fe6bb..698b935 100644
--- a/src/frames.cc
+++ b/src/frames.cc
@@ -16,7 +16,6 @@
 #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 {
@@ -400,11 +399,15 @@
       isolate->builtins()->builtin(Builtins::kInterpreterEntryTrampoline);
   Code* interpreter_bytecode_dispatch =
       isolate->builtins()->builtin(Builtins::kInterpreterEnterBytecodeDispatch);
+  Code* interpreter_baseline_on_return =
+      isolate->builtins()->builtin(Builtins::kInterpreterMarkBaselineOnReturn);
 
   return (pc >= interpreter_entry_trampoline->instruction_start() &&
           pc < interpreter_entry_trampoline->instruction_end()) ||
          (pc >= interpreter_bytecode_dispatch->instruction_start() &&
-          pc < interpreter_bytecode_dispatch->instruction_end());
+          pc < interpreter_bytecode_dispatch->instruction_end()) ||
+         (pc >= interpreter_baseline_on_return->instruction_start() &&
+          pc < interpreter_baseline_on_return->instruction_end());
 }
 
 StackFrame::Type StackFrame::ComputeType(const StackFrameIteratorBase* iterator,
@@ -445,17 +448,20 @@
     Code* code_obj =
         GetContainingCode(iterator->isolate(), *(state->pc_address));
     if (code_obj != nullptr) {
-      if (code_obj->is_interpreter_entry_trampoline() ||
-          code_obj->is_interpreter_enter_bytecode_dispatch()) {
-        return INTERPRETED;
-      }
       switch (code_obj->kind()) {
         case Code::BUILTIN:
           if (marker->IsSmi()) break;
-          // We treat frames for BUILTIN Code objects as OptimizedFrame for now
-          // (all the builtins with JavaScript linkage are actually generated
-          // with TurboFan currently, so this is sound).
-          return OPTIMIZED;
+          if (code_obj->is_interpreter_trampoline_builtin()) {
+            return INTERPRETED;
+          }
+          if (code_obj->is_turbofanned()) {
+            // TODO(bmeurer): We treat frames for BUILTIN Code objects as
+            // OptimizedFrame for now (all the builtins with JavaScript
+            // linkage are actually generated with TurboFan currently, so
+            // this is sound).
+            return OPTIMIZED;
+          }
+          return BUILTIN;
         case Code::FUNCTION:
           return JAVA_SCRIPT;
         case Code::OPTIMIZED_FUNCTION:
@@ -600,12 +606,13 @@
   return EXIT;
 }
 
-
 Address ExitFrame::ComputeStackPointer(Address fp) {
+#if defined(USE_SIMULATOR)
+  MSAN_MEMORY_IS_INITIALIZED(fp + ExitFrameConstants::kSPOffset, kPointerSize);
+#endif
   return Memory::Address_at(fp + ExitFrameConstants::kSPOffset);
 }
 
-
 void ExitFrame::FillState(Address fp, Address sp, State* state) {
   state->sp = sp;
   state->fp = fp;
@@ -689,6 +696,7 @@
       case JAVA_SCRIPT:
       case OPTIMIZED:
       case INTERPRETED:
+      case BUILTIN:
         // These frame types have a context, but they are actually stored
         // in the place on the stack that one finds the frame type.
         UNREACHABLE();
@@ -720,10 +728,9 @@
   if (safepoint_entry.has_doubles()) {
     // Number of doubles not known at snapshot time.
     DCHECK(!isolate()->serializer_enabled());
-    parameters_base +=
-        RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT)
-            ->num_allocatable_double_registers() *
-        kDoubleSize / kPointerSize;
+    parameters_base += RegisterConfiguration::Crankshaft()
+                           ->num_allocatable_double_registers() *
+                       kDoubleSize / kPointerSize;
   }
 
   // Visit the registers that contain pointers if any.
@@ -1286,11 +1293,6 @@
   return Smi::cast(GetExpression(0))->value();
 }
 
-
-Address ArgumentsAdaptorFrame::GetCallerStackPointer() const {
-  return fp() + StandardFrameConstants::kCallerSPOffset;
-}
-
 int ArgumentsAdaptorFrame::GetLength(Address fp) {
   const int offset = ArgumentsAdaptorFrameConstants::kLengthOffset;
   return Smi::cast(Memory::Object_at(fp + offset))->value();
@@ -1301,6 +1303,15 @@
       Builtins::kArgumentsAdaptorTrampoline);
 }
 
+void BuiltinFrame::Print(StringStream* accumulator, PrintMode mode,
+                         int index) const {
+  // TODO(bmeurer)
+}
+
+int BuiltinFrame::GetNumberOfIncomingArguments() const {
+  return Smi::cast(GetExpression(0))->value();
+}
+
 Address InternalFrame::GetCallerStackPointer() const {
   // Internal frames have no arguments. The stack pointer of the
   // caller is at a fixed offset from the frame pointer.
@@ -1346,7 +1357,7 @@
   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->IsUndefined(isolate())) 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);
@@ -1355,13 +1366,6 @@
   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 {
 
 
diff --git a/src/frames.h b/src/frames.h
index 4163d6f..a1e438c 100644
--- a/src/frames.h
+++ b/src/frames.h
@@ -111,7 +111,8 @@
   V(STUB_FAILURE_TRAMPOLINE, StubFailureTrampolineFrame) \
   V(INTERNAL, InternalFrame)                             \
   V(CONSTRUCT, ConstructFrame)                           \
-  V(ARGUMENTS_ADAPTOR, ArgumentsAdaptorFrame)
+  V(ARGUMENTS_ADAPTOR, ArgumentsAdaptorFrame)            \
+  V(BUILTIN, BuiltinFrame)
 
 // Every pointer in a frame has a slot id. On 32-bit platforms, doubles consume
 // two slots.
@@ -280,6 +281,14 @@
   DEFINE_TYPED_FRAME_SIZES(2);
 };
 
+class BuiltinFrameConstants : public TypedFrameConstants {
+ public:
+  // FP-relative.
+  static const int kFunctionOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(0);
+  static const int kLengthOffset = TYPED_FRAME_PUSHED_VALUE_OFFSET(1);
+  DEFINE_TYPED_FRAME_SIZES(2);
+};
+
 class InternalFrameConstants : public TypedFrameConstants {
  public:
   // FP-relative.
@@ -325,6 +334,8 @@
 
   // FP-relative.
   static const int kLastParamFromFp = StandardFrameConstants::kCallerSPOffset;
+  static const int kCallerPCOffsetFromFp =
+      StandardFrameConstants::kCallerPCOffset;
   static const int kNewTargetFromFp =
       -StandardFrameConstants::kFixedFrameSizeFromFp - 1 * kPointerSize;
   static const int kBytecodeArrayFromFp =
@@ -409,6 +420,7 @@
   bool is_wasm_to_js() const { return type() == WASM_TO_JS; }
   bool is_js_to_wasm() const { return type() == JS_TO_WASM; }
   bool is_arguments_adaptor() const { return type() == ARGUMENTS_ADAPTOR; }
+  bool is_builtin() const { return type() == BUILTIN; }
   bool is_internal() const { return type() == INTERNAL; }
   bool is_stub_failure_trampoline() const {
     return type() == STUB_FAILURE_TRAMPOLINE;
@@ -419,7 +431,7 @@
   bool is_java_script() const {
     Type type = this->type();
     return (type == JAVA_SCRIPT) || (type == OPTIMIZED) ||
-           (type == INTERPRETED);
+           (type == INTERPRETED) || (type == BUILTIN);
   }
 
   // Accessors.
@@ -948,7 +960,28 @@
 
   int GetNumberOfIncomingArguments() const override;
 
-  Address GetCallerStackPointer() const override;
+ private:
+  friend class StackFrameIteratorBase;
+};
+
+// Builtin frames are built for builtins with JavaScript linkage, such as
+// various standard library functions (i.e. Math.asin, Math.floor, etc.).
+class BuiltinFrame final : public JavaScriptFrame {
+ public:
+  Type type() const final { return BUILTIN; }
+
+  static BuiltinFrame* cast(StackFrame* frame) {
+    DCHECK(frame->is_builtin());
+    return static_cast<BuiltinFrame*>(frame);
+  }
+
+  // Printing support.
+  void Print(StringStream* accumulator, PrintMode mode, int index) const final;
+
+ protected:
+  inline explicit BuiltinFrame(StackFrameIteratorBase* iterator);
+
+  int GetNumberOfIncomingArguments() const final;
 
  private:
   friend class StackFrameIteratorBase;
@@ -971,8 +1004,6 @@
   Object* wasm_obj();
   uint32_t function_index();
 
-  Object* function_name();
-
   static WasmFrame* cast(StackFrame* frame) {
     DCHECK(frame->is_wasm());
     return static_cast<WasmFrame*>(frame);
diff --git a/src/full-codegen/arm/full-codegen-arm.cc b/src/full-codegen/arm/full-codegen-arm.cc
index 91253e3..73e4750 100644
--- a/src/full-codegen/arm/full-codegen-arm.cc
+++ b/src/full-codegen/arm/full-codegen-arm.cc
@@ -540,10 +540,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ b(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ b(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -799,21 +801,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ mov(r2, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(r0, Heap::kTheHoleValueRootIndex);
-      } else {
-        __ mov(r0, Operand(Smi::FromInt(0)));  // Indicates no initial value.
-      }
-      __ Push(r2, r0);
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(r2);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -870,8 +862,7 @@
       PushOperand(r2);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1303,14 +1294,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ mov(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ mov(LoadGlobalDescriptor::SlotRegister(),
          Operand(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1379,18 +1370,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ ldr(r3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ mov(r2, Operand(Smi::FromInt(expr->literal_index())));
-  __ mov(r1, Operand(expr->pattern()));
-  __ mov(r0, Operand(Smi::FromInt(expr->flags())));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(r0);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1500,12 +1479,16 @@
 
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1524,6 +1507,7 @@
     __ mov(r0, Operand(Smi::FromInt(NONE)));
     PushOperand(r0);
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1569,6 +1553,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1849,7 +1835,7 @@
   // When we arrive here, r0 holds the generator object.
   __ RecordGeneratorContinuation();
   __ ldr(r1, FieldMemOperand(r0, JSGeneratorObject::kResumeModeOffset));
-  __ ldr(r0, FieldMemOperand(r0, JSGeneratorObject::kInputOffset));
+  __ ldr(r0, FieldMemOperand(r0, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ cmp(r1, Operand(Smi::FromInt(JSGeneratorObject::kReturn)));
@@ -2901,73 +2887,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r0;
-  Register index = r1;
-  Register value = r2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value);
-    __ Check(eq, kNonSmiValue);
-    __ SmiTst(index);
-    __ Check(eq, kNonSmiIndex);
-    __ SmiUntag(index, index);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ add(ip,
-         string,
-         Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
-  __ strb(value, MemOperand(ip, index, LSR, kSmiTagSize));
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r0;
-  Register index = r1;
-  Register value = r2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value);
-    __ Check(eq, kNonSmiValue);
-    __ SmiTst(index);
-    __ Check(eq, kNonSmiIndex);
-    __ SmiUntag(index, index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ add(ip,
-         string,
-         Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag));
-  STATIC_ASSERT(kSmiTagSize == 1 && kSmiTag == 0);
-  __ strh(value, MemOperand(ip, index));
-  context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -3001,13 +2920,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -3031,53 +2945,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = r1;
-  Register index = r0;
-  Register scratch = r3;
-  Register result = r0;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ mov(result, Operand(Smi::FromInt(0)));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3447,8 +3314,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/arm64/full-codegen-arm64.cc b/src/full-codegen/arm64/full-codegen-arm64.cc
index 61cb141..7848d0d 100644
--- a/src/full-codegen/arm64/full-codegen-arm64.cc
+++ b/src/full-codegen/arm64/full-codegen-arm64.cc
@@ -531,10 +531,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ B(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ B(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -796,22 +798,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ Mov(x2, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(x0, Heap::kTheHoleValueRootIndex);
-        __ Push(x2, x0);
-      } else {
-        // Pushing 0 (xzr) indicates no initial value.
-        __ Push(x2, xzr);
-      }
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(x2);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -868,8 +859,7 @@
       PushOperand(x2);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1288,14 +1278,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ Mov(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ Mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ Mov(LoadGlobalDescriptor::SlotRegister(),
          SmiFromSlot(proxy->VariableFeedbackSlot()));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1365,18 +1355,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ Ldr(x3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ Mov(x2, Smi::FromInt(expr->literal_index()));
-  __ Mov(x1, Operand(expr->pattern()));
-  __ Mov(x0, Smi::FromInt(expr->flags()));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(x0);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1484,12 +1462,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1500,14 +1482,15 @@
   for (AccessorTable::Iterator it = accessor_table.begin();
        it != accessor_table.end();
        ++it) {
-      __ Peek(x10, 0);  // Duplicate receiver.
-      PushOperand(x10);
-      VisitForStackValue(it->first);
-      EmitAccessor(it->second->getter);
-      EmitAccessor(it->second->setter);
-      __ Mov(x10, Smi::FromInt(NONE));
-      PushOperand(x10);
-      CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    __ Peek(x10, 0);  // Duplicate receiver.
+    PushOperand(x10);
+    VisitForStackValue(it->first);
+    EmitAccessor(it->second->getter);
+    EmitAccessor(it->second->setter);
+    __ Mov(x10, Smi::FromInt(NONE));
+    PushOperand(x10);
+    CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1553,6 +1536,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -2809,66 +2794,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = x0;
-  Register index = x1;
-  Register value = x2;
-  Register scratch = x10;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(value, index);
-
-  if (FLAG_debug_code) {
-    __ AssertSmi(value, kNonSmiValue);
-    __ AssertSmi(index, kNonSmiIndex);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, kIndexIsSmi, scratch,
-                                 one_byte_seq_type);
-  }
-
-  __ Add(scratch, string, SeqOneByteString::kHeaderSize - kHeapObjectTag);
-  __ SmiUntag(value);
-  __ SmiUntag(index);
-  __ Strb(value, MemOperand(scratch, index));
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = x0;
-  Register index = x1;
-  Register value = x2;
-  Register scratch = x10;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(value, index);
-
-  if (FLAG_debug_code) {
-    __ AssertSmi(value, kNonSmiValue);
-    __ AssertSmi(index, kNonSmiIndex);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, kIndexIsSmi, scratch,
-                                 two_byte_seq_type);
-  }
-
-  __ Add(scratch, string, SeqTwoByteString::kHeaderSize - kHeapObjectTag);
-  __ SmiUntag(value);
-  __ SmiUntag(index);
-  __ Strh(value, MemOperand(scratch, index, LSL, 1));
-  context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2907,13 +2832,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ B(&done);
 
@@ -2936,52 +2856,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = x1;
-  Register index = x0;
-  Register result = x0;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  x3,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ B(&done);
-
-  __ Bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ B(&done);
-
-  __ Bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger conversion.
-  __ Mov(result, Smi::FromInt(0));
-  __ B(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ Bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ASM_LOCATION("FullCodeGenerator::EmitCall");
   ZoneList<Expression*>* args = expr->arguments();
@@ -3359,8 +3233,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
@@ -3701,7 +3574,7 @@
   // When we arrive here, x0 holds the generator object.
   __ RecordGeneratorContinuation();
   __ Ldr(x1, FieldMemOperand(x0, JSGeneratorObject::kResumeModeOffset));
-  __ Ldr(x0, FieldMemOperand(x0, JSGeneratorObject::kInputOffset));
+  __ Ldr(x0, FieldMemOperand(x0, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ Cmp(x1, Operand(Smi::FromInt(JSGeneratorObject::kReturn)));
diff --git a/src/full-codegen/full-codegen.cc b/src/full-codegen/full-codegen.cc
index 2d7ad32..03140c9 100644
--- a/src/full-codegen/full-codegen.cc
+++ b/src/full-codegen/full-codegen.cc
@@ -34,7 +34,8 @@
   TRACE_EVENT0("v8", "V8.CompileFullCode");
 
   Handle<Script> script = info->script();
-  if (!script->IsUndefined() && !script->source()->IsUndefined()) {
+  if (!script->IsUndefined(isolate) &&
+      !script->source()->IsUndefined(isolate)) {
     int len = String::cast(script->source())->length();
     isolate->counters()->total_full_codegen_source_size()->Increment(len);
   }
@@ -169,13 +170,16 @@
   PrepareForBailoutForId(node->id(), state);
 }
 
-
-void FullCodeGenerator::CallLoadIC(TypeofMode typeof_mode,
-                                   TypeFeedbackId id) {
-  Handle<Code> ic = CodeFactory::LoadIC(isolate(), typeof_mode).code();
+void FullCodeGenerator::CallLoadIC(TypeFeedbackId id) {
+  Handle<Code> ic = CodeFactory::LoadIC(isolate()).code();
   CallIC(ic, id);
 }
 
+void FullCodeGenerator::CallLoadGlobalIC(TypeofMode typeof_mode,
+                                         TypeFeedbackId id) {
+  Handle<Code> ic = CodeFactory::LoadGlobalIC(isolate(), typeof_mode).code();
+  CallIC(ic, id);
+}
 
 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) {
   Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code();
@@ -611,18 +615,14 @@
   RestoreContext();
 }
 
-bool RecordStatementPosition(MacroAssembler* masm, int pos) {
-  if (pos == RelocInfo::kNoPosition) return false;
+void RecordStatementPosition(MacroAssembler* masm, int pos) {
+  if (pos == RelocInfo::kNoPosition) return;
   masm->positions_recorder()->RecordStatementPosition(pos);
-  masm->positions_recorder()->RecordPosition(pos);
-  return masm->positions_recorder()->WriteRecordedPositions();
 }
 
-
-bool RecordPosition(MacroAssembler* masm, int pos) {
-  if (pos == RelocInfo::kNoPosition) return false;
+void RecordPosition(MacroAssembler* masm, int pos) {
+  if (pos == RelocInfo::kNoPosition) return;
   masm->positions_recorder()->RecordPosition(pos);
-  return masm->positions_recorder()->WriteRecordedPositions();
 }
 
 
@@ -646,8 +646,8 @@
 void FullCodeGenerator::SetStatementPosition(
     Statement* stmt, FullCodeGenerator::InsertBreak insert_break) {
   if (stmt->position() == RelocInfo::kNoPosition) return;
-  bool recorded = RecordStatementPosition(masm_, stmt->position());
-  if (recorded && insert_break == INSERT_BREAK && info_->is_debug() &&
+  RecordStatementPosition(masm_, stmt->position());
+  if (insert_break == INSERT_BREAK && info_->is_debug() &&
       !stmt->IsDebuggerStatement()) {
     DebugCodegen::GenerateSlot(masm_, RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION);
   }
@@ -661,8 +661,8 @@
 
 void FullCodeGenerator::SetExpressionAsStatementPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
-  bool recorded = RecordStatementPosition(masm_, expr->position());
-  if (recorded && info_->is_debug()) {
+  RecordStatementPosition(masm_, expr->position());
+  if (info_->is_debug()) {
     DebugCodegen::GenerateSlot(masm_, RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION);
   }
 }
@@ -1032,17 +1032,12 @@
 
 void FullCodeGenerator::EmitNewClosure(Handle<SharedFunctionInfo> info,
                                        bool pretenure) {
-  // Use the fast case closure allocation code that allocates in new
-  // space for nested functions that don't need literals cloning. If
-  // we're running with the --always-opt or the --prepare-always-opt
+  // If we're running with the --always-opt or the --prepare-always-opt
   // flag, we need to use the runtime function so that the new function
   // we are creating here gets a chance to have its code optimized and
   // doesn't just get a copy of the existing unoptimized code.
-  if (!FLAG_always_opt &&
-      !FLAG_prepare_always_opt &&
-      !pretenure &&
-      scope()->is_function_scope() &&
-      info->num_literals() == 0) {
+  if (!FLAG_always_opt && !FLAG_prepare_always_opt && !pretenure &&
+      scope()->is_function_scope()) {
     FastNewClosureStub stub(isolate(), info->language_mode(), info->kind());
     __ Move(stub.GetCallInterfaceDescriptor().GetRegisterParameter(0), info);
     __ CallStub(&stub);
@@ -1063,7 +1058,7 @@
   __ Move(LoadDescriptor::NameRegister(), key->value());
   __ Move(LoadDescriptor::SlotRegister(),
           SmiFromSlot(prop->PropertyFeedbackSlot()));
-  CallLoadIC(NOT_INSIDE_TYPEOF);
+  CallLoadIC();
 }
 
 void FullCodeGenerator::EmitNamedSuperPropertyLoad(Property* prop) {
@@ -1526,7 +1521,7 @@
     __ LoadRoot(LoadDescriptor::NameRegister(),
                 Heap::kprototype_stringRootIndex);
     __ Move(LoadDescriptor::SlotRegister(), SmiFromSlot(lit->PrototypeSlot()));
-    CallLoadIC(NOT_INSIDE_TYPEOF);
+    CallLoadIC();
     PrepareForBailoutForId(lit->PrototypeId(), BailoutState::TOS_REGISTER);
     PushOperand(result_register());
 
@@ -1545,6 +1540,19 @@
   context()->Plug(result_register());
 }
 
+void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
+  Comment cmnt(masm_, "[ RegExpLiteral");
+  Callable callable = CodeFactory::FastCloneRegExp(isolate());
+  CallInterfaceDescriptor descriptor = callable.descriptor();
+  LoadFromFrameField(JavaScriptFrameConstants::kFunctionOffset,
+                     descriptor.GetRegisterParameter(0));
+  __ Move(descriptor.GetRegisterParameter(1),
+          Smi::FromInt(expr->literal_index()));
+  __ Move(descriptor.GetRegisterParameter(2), expr->pattern());
+  __ Move(descriptor.GetRegisterParameter(3), Smi::FromInt(expr->flags()));
+  __ Call(callable.code(), RelocInfo::CODE_TARGET);
+  context()->Plug(result_register());
+}
 
 void FullCodeGenerator::VisitNativeFunctionLiteral(
     NativeFunctionLiteral* expr) {
diff --git a/src/full-codegen/full-codegen.h b/src/full-codegen/full-codegen.h
index 0a004a8..87367ca 100644
--- a/src/full-codegen/full-codegen.h
+++ b/src/full-codegen/full-codegen.h
@@ -512,9 +512,6 @@
   F(NewObject)                          \
   F(ValueOf)                            \
   F(StringCharFromCode)                 \
-  F(StringCharAt)                       \
-  F(OneByteSeqStringSetChar)            \
-  F(TwoByteSeqStringSetChar)            \
   F(IsJSReceiver)                       \
   F(MathPow)                            \
   F(HasCachedArrayIndex)                \
@@ -657,9 +654,10 @@
   void CallIC(Handle<Code> code,
               TypeFeedbackId id = TypeFeedbackId::None());
 
+  void CallLoadIC(TypeFeedbackId id = TypeFeedbackId::None());
   // Inside typeof reference errors are never thrown.
-  void CallLoadIC(TypeofMode typeof_mode,
-                  TypeFeedbackId id = TypeFeedbackId::None());
+  void CallLoadGlobalIC(TypeofMode typeof_mode,
+                        TypeFeedbackId id = TypeFeedbackId::None());
   void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None());
 
   void SetFunctionPosition(FunctionLiteral* fun);
diff --git a/src/full-codegen/ia32/full-codegen-ia32.cc b/src/full-codegen/ia32/full-codegen-ia32.cc
index 760a818..c0f8396 100644
--- a/src/full-codegen/ia32/full-codegen-ia32.cc
+++ b/src/full-codegen/ia32/full-codegen-ia32.cc
@@ -490,10 +490,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ jmp(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ jmp(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -746,21 +748,10 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ push(Immediate(variable->name()));
-      // VariableDeclaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ push(Immediate(isolate()->factory()->the_hole_value()));
-      } else {
-        __ push(Immediate(Smi::FromInt(0)));  // Indicates no initial value.
-      }
-      __ push(
-          Immediate(Smi::FromInt(variable->DeclarationPropertyAttributes())));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -813,8 +804,7 @@
       Comment cmnt(masm_, "[ FunctionDeclaration");
       PushOperand(variable->name());
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1226,17 +1216,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ mov(LoadDescriptor::ReceiverRegister(), NativeContextOperand());
-  __ mov(LoadDescriptor::ReceiverRegister(),
-         ContextOperand(LoadDescriptor::ReceiverRegister(),
-                        Context::EXTENSION_INDEX));
-  __ mov(LoadDescriptor::NameRegister(), var->name());
-  __ mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ mov(LoadGlobalDescriptor::SlotRegister(),
          Immediate(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1305,18 +1292,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
-  __ Move(eax, Immediate(Smi::FromInt(expr->literal_index())));
-  __ Move(ecx, Immediate(expr->pattern()));
-  __ Move(edx, Immediate(Smi::FromInt(expr->flags())));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(eax);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1423,12 +1398,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1447,6 +1426,7 @@
 
     PushOperand(Smi::FromInt(NONE));
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1491,6 +1471,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1766,7 +1748,7 @@
   // When we arrive here, eax holds the generator object.
   __ RecordGeneratorContinuation();
   __ mov(ebx, FieldOperand(eax, JSGeneratorObject::kResumeModeOffset));
-  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOffset));
+  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::kReturn)));
@@ -2791,75 +2773,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = eax;
-  Register index = ebx;
-  Register value = ecx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ test(value, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ test(index, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-  }
-
-  __ SmiUntag(value);
-  __ SmiUntag(index);
-
-  if (FLAG_debug_code) {
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-  }
-
-  __ mov_b(FieldOperand(string, index, times_1, SeqOneByteString::kHeaderSize),
-           value);
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = eax;
-  Register index = ebx;
-  Register value = ecx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ test(value, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ test(index, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ SmiUntag(index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-    __ SmiTag(index);
-  }
-
-  __ SmiUntag(value);
-  // No need to untag a smi for two-byte addressing.
-  __ mov_w(FieldOperand(string, index, times_1, SeqTwoByteString::kHeaderSize),
-           value);
-  context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2895,13 +2808,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -2925,54 +2833,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = ebx;
-  Register index = eax;
-  Register scratch = edx;
-  Register result = eax;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ Move(result, Immediate(isolate()->factory()->empty_string()));
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ Move(result, Immediate(Smi::FromInt(0)));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3351,8 +3211,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/mips/full-codegen-mips.cc b/src/full-codegen/mips/full-codegen-mips.cc
index e61c3e4..014aaf6 100644
--- a/src/full-codegen/mips/full-codegen-mips.cc
+++ b/src/full-codegen/mips/full-codegen-mips.cc
@@ -531,10 +531,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ Branch(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ Branch(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -796,22 +798,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ li(a2, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(a0, Heap::kTheHoleValueRootIndex);
-      } else {
-        DCHECK(Smi::FromInt(0) == 0);
-        __ mov(a0, zero_reg);  // Smi::FromInt(0) indicates no initial value.
-      }
-      __ Push(a2, a0);
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(a2);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -868,8 +859,7 @@
       PushOperand(a2);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1298,14 +1288,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ li(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ li(LoadDescriptor::SlotRegister(),
+#endif
+  __ li(LoadGlobalDescriptor::SlotRegister(),
         Operand(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1375,18 +1365,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ lw(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ li(a2, Operand(Smi::FromInt(expr->literal_index())));
-  __ li(a1, Operand(expr->pattern()));
-  __ li(a0, Operand(Smi::FromInt(expr->flags())));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(v0);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1495,12 +1473,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1519,6 +1501,7 @@
     __ li(a0, Operand(Smi::FromInt(NONE)));
     PushOperand(a0);
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1564,6 +1547,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1845,7 +1830,7 @@
   // When we arrive here, v0 holds the generator object.
   __ RecordGeneratorContinuation();
   __ lw(a1, FieldMemOperand(v0, JSGeneratorObject::kResumeModeOffset));
-  __ lw(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOffset));
+  __ lw(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOrDebugPosOffset));
   __ Branch(&resume, eq, a1, Operand(Smi::FromInt(JSGeneratorObject::kNext)));
   __ Push(result_register());
   __ Branch(&exception, eq, a1,
@@ -2908,80 +2893,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = v0;
-  Register index = a1;
-  Register value = a2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value, at);
-    __ Check(eq, kNonSmiValue, at, Operand(zero_reg));
-    __ SmiTst(index, at);
-    __ Check(eq, kNonSmiIndex, at, Operand(zero_reg));
-    __ SmiUntag(index, index);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    Register scratch = t5;
-    __ EmitSeqStringSetCharCheck(
-        string, index, value, scratch, one_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ Addu(at,
-          string,
-          Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
-  __ SmiUntag(index);
-  __ Addu(at, at, index);
-  __ sb(value, MemOperand(at));
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = v0;
-  Register index = a1;
-  Register value = a2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value, at);
-    __ Check(eq, kNonSmiValue, at, Operand(zero_reg));
-    __ SmiTst(index, at);
-    __ Check(eq, kNonSmiIndex, at, Operand(zero_reg));
-    __ SmiUntag(index, index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    Register scratch = t5;
-    __ EmitSeqStringSetCharCheck(
-        string, index, value, scratch, two_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ Addu(at,
-          string,
-          Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag));
-  __ Addu(at, at, index);
-  STATIC_ASSERT(kSmiTagSize == 1 && kSmiTag == 0);
-  __ sh(value, MemOperand(at));
-    context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -3018,13 +2929,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -3048,55 +2954,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-  __ mov(a0, result_register());
-
-  Register object = a1;
-  Register index = a0;
-  Register scratch = a3;
-  Register result = v0;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ li(result, Operand(Smi::FromInt(0)));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3466,8 +3323,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/mips64/full-codegen-mips64.cc b/src/full-codegen/mips64/full-codegen-mips64.cc
index a93489d..a58f173 100644
--- a/src/full-codegen/mips64/full-codegen-mips64.cc
+++ b/src/full-codegen/mips64/full-codegen-mips64.cc
@@ -530,10 +530,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ Branch(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ Branch(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -795,22 +797,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ li(a2, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(a0, Heap::kTheHoleValueRootIndex);
-      } else {
-        DCHECK(Smi::FromInt(0) == 0);
-        __ mov(a0, zero_reg);  // Smi::FromInt(0) indicates no initial value.
-      }
-      __ Push(a2, a0);
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(a2);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -867,8 +858,7 @@
       PushOperand(a2);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1299,14 +1289,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ li(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ li(LoadDescriptor::SlotRegister(),
+#endif
+  __ li(LoadGlobalDescriptor::SlotRegister(),
         Operand(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1376,18 +1366,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ ld(a3, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ li(a2, Operand(Smi::FromInt(expr->literal_index())));
-  __ li(a1, Operand(expr->pattern()));
-  __ li(a0, Operand(Smi::FromInt(expr->flags())));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(v0);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1496,12 +1474,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1520,6 +1502,7 @@
     __ li(a0, Operand(Smi::FromInt(NONE)));
     PushOperand(a0);
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1565,6 +1548,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1846,7 +1831,7 @@
   // When we arrive here, v0 holds the generator object.
   __ RecordGeneratorContinuation();
   __ ld(a1, FieldMemOperand(v0, JSGeneratorObject::kResumeModeOffset));
-  __ ld(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOffset));
+  __ ld(v0, FieldMemOperand(v0, JSGeneratorObject::kInputOrDebugPosOffset));
   __ Branch(&resume, eq, a1, Operand(Smi::FromInt(JSGeneratorObject::kNext)));
   __ Push(result_register());
   __ Branch(&exception, eq, a1,
@@ -2907,81 +2892,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = v0;
-  Register index = a1;
-  Register value = a2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value, at);
-    __ Check(eq, kNonSmiValue, at, Operand(zero_reg));
-    __ SmiTst(index, at);
-    __ Check(eq, kNonSmiIndex, at, Operand(zero_reg));
-    __ SmiUntag(index, index);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    Register scratch = t1;
-    __ EmitSeqStringSetCharCheck(
-        string, index, value, scratch, one_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ Daddu(at,
-          string,
-          Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
-  __ SmiUntag(index);
-  __ Daddu(at, at, index);
-  __ sb(value, MemOperand(at));
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = v0;
-  Register index = a1;
-  Register value = a2;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ SmiTst(value, at);
-    __ Check(eq, kNonSmiValue, at, Operand(zero_reg));
-    __ SmiTst(index, at);
-    __ Check(eq, kNonSmiIndex, at, Operand(zero_reg));
-    __ SmiUntag(index, index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    Register scratch = t1;
-    __ EmitSeqStringSetCharCheck(
-        string, index, value, scratch, two_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value, value);
-  __ Daddu(at,
-          string,
-          Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag));
-  __ dsra(index, index, 32 - 1);
-  __ Daddu(at, at, index);
-  STATIC_ASSERT(kSmiTagSize == 1 && kSmiTag == 0);
-  __ sh(value, MemOperand(at));
-    context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -3018,13 +2928,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -3048,55 +2953,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-  __ mov(a0, result_register());
-
-  Register object = a1;
-  Register index = a0;
-  Register scratch = a3;
-  Register result = v0;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ li(result, Operand(Smi::FromInt(0)));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3467,8 +3323,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/ppc/OWNERS b/src/full-codegen/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/full-codegen/ppc/OWNERS
+++ b/src/full-codegen/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/full-codegen/ppc/full-codegen-ppc.cc b/src/full-codegen/ppc/full-codegen-ppc.cc
index 50248c1..1f47983 100644
--- a/src/full-codegen/ppc/full-codegen-ppc.cc
+++ b/src/full-codegen/ppc/full-codegen-ppc.cc
@@ -516,10 +516,12 @@
 void FullCodeGenerator::TestContext::Plug(Handle<Object> lit) const {
   codegen()->PrepareForBailoutBeforeSplit(condition(), true, true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ b(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ b(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -761,21 +763,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ mov(r5, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(r3, Heap::kTheHoleValueRootIndex);
-      } else {
-        __ LoadSmiLiteral(r3, Smi::FromInt(0));  // Indicates no initial value.
-      }
-      __ Push(r5, r3);
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(r5);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -828,8 +820,7 @@
       PushOperand(r5);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1265,14 +1256,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ mov(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ mov(LoadGlobalDescriptor::SlotRegister(),
          Operand(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1341,18 +1332,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ LoadP(r6, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ LoadSmiLiteral(r5, Smi::FromInt(expr->literal_index()));
-  __ mov(r4, Operand(expr->pattern()));
-  __ LoadSmiLiteral(r3, Smi::FromInt(expr->flags()));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(r3);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1461,12 +1440,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1484,6 +1467,7 @@
     __ LoadSmiLiteral(r3, Smi::FromInt(NONE));
     PushOperand(r3);
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1529,6 +1513,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1807,7 +1793,7 @@
   // When we arrive here, r3 holds the generator object.
   __ RecordGeneratorContinuation();
   __ LoadP(r4, FieldMemOperand(r3, JSGeneratorObject::kResumeModeOffset));
-  __ LoadP(r3, FieldMemOperand(r3, JSGeneratorObject::kInputOffset));
+  __ LoadP(r3, FieldMemOperand(r3, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ CmpSmiLiteral(r4, Smi::FromInt(JSGeneratorObject::kReturn), r0);
@@ -2898,70 +2884,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r3;
-  Register index = r4;
-  Register value = r5;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ TestIfSmi(value, r0);
-    __ Check(eq, kNonSmiValue, cr0);
-    __ TestIfSmi(index, r0);
-    __ Check(eq, kNonSmiIndex, cr0);
-    __ SmiUntag(index, index);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value);
-  __ addi(ip, string, Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
-  __ SmiToByteArrayOffset(r0, index);
-  __ stbx(value, MemOperand(ip, r0));
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r3;
-  Register index = r4;
-  Register value = r5;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ TestIfSmi(value, r0);
-    __ Check(eq, kNonSmiValue, cr0);
-    __ TestIfSmi(index, r0);
-    __ Check(eq, kNonSmiIndex, cr0);
-    __ SmiUntag(index, index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value);
-  __ addi(ip, string, Operand(SeqTwoByteString::kHeaderSize - kHeapObjectTag));
-  __ SmiToShortArrayOffset(r0, index);
-  __ sthx(value, MemOperand(ip, r0));
-  context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2996,8 +2918,7 @@
   Label index_out_of_range;
   Label done;
   StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
-                                      &need_conversion, &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ b(&done);
 
@@ -3021,48 +2942,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = r4;
-  Register index = r3;
-  Register scratch = r6;
-  Register result = r3;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object, index, scratch, result,
-                                  &need_conversion, &need_conversion,
-                                  &index_out_of_range, STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ b(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ b(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ LoadSmiLiteral(result, Smi::FromInt(0));
-  __ b(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3430,8 +3309,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/s390/OWNERS b/src/full-codegen/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/full-codegen/s390/OWNERS
+++ b/src/full-codegen/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/full-codegen/s390/full-codegen-s390.cc b/src/full-codegen/s390/full-codegen-s390.cc
index 0d2107d..ee0b3e3 100644
--- a/src/full-codegen/s390/full-codegen-s390.cc
+++ b/src/full-codegen/s390/full-codegen-s390.cc
@@ -512,10 +512,12 @@
 void FullCodeGenerator::TestContext::Plug(Handle<Object> lit) const {
   codegen()->PrepareForBailoutBeforeSplit(condition(), true, true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ b(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ b(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -739,21 +741,11 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ mov(r4, Operand(variable->name()));
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ LoadRoot(r2, Heap::kTheHoleValueRootIndex);
-      } else {
-        __ LoadSmiLiteral(r2, Smi::FromInt(0));  // Indicates no initial value.
-      }
-      __ Push(r4, r2);
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ Push(r4);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -804,8 +796,7 @@
       PushOperand(r4);
       // Push initial value for function declaration.
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1229,14 +1220,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ mov(LoadDescriptor::NameRegister(), Operand(var->name()));
-  __ mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ mov(LoadGlobalDescriptor::SlotRegister(),
          Operand(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 void FullCodeGenerator::EmitVariableLoad(VariableProxy* proxy,
@@ -1303,17 +1294,6 @@
   }
 }
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ LoadP(r5, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  __ LoadSmiLiteral(r4, Smi::FromInt(expr->literal_index()));
-  __ mov(r3, Operand(expr->pattern()));
-  __ LoadSmiLiteral(r2, Smi::FromInt(expr->flags()));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(r2);
-}
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1421,12 +1401,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1444,6 +1428,7 @@
     __ LoadSmiLiteral(r2, Smi::FromInt(NONE));
     PushOperand(r2);
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1489,6 +1474,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1764,7 +1751,7 @@
   // When we arrive here, r2 holds the generator object.
   __ RecordGeneratorContinuation();
   __ LoadP(r3, FieldMemOperand(r2, JSGeneratorObject::kResumeModeOffset));
-  __ LoadP(r2, FieldMemOperand(r2, JSGeneratorObject::kInputOffset));
+  __ LoadP(r2, FieldMemOperand(r2, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ CmpSmiLiteral(r3, Smi::FromInt(JSGeneratorObject::kReturn), r0);
@@ -2828,68 +2815,6 @@
   context()->Plug(r2);
 }
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r2;
-  Register index = r3;
-  Register value = r4;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ TestIfSmi(value);
-    __ Check(eq, kNonSmiValue, cr0);
-    __ TestIfSmi(index);
-    __ Check(eq, kNonSmiIndex, cr0);
-    __ SmiUntag(index);
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-    __ SmiTag(index);
-  }
-
-  __ SmiUntag(value);
-  __ AddP(ip, string, Operand(SeqOneByteString::kHeaderSize - kHeapObjectTag));
-  __ SmiToByteArrayOffset(r1, index);
-  __ StoreByte(value, MemOperand(ip, r1));
-  context()->Plug(string);
-}
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = r2;
-  Register index = r3;
-  Register value = r4;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperands(index, value);
-
-  if (FLAG_debug_code) {
-    __ TestIfSmi(value);
-    __ Check(eq, kNonSmiValue, cr0);
-    __ TestIfSmi(index);
-    __ Check(eq, kNonSmiIndex, cr0);
-    __ SmiUntag(index, index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-    __ SmiTag(index, index);
-  }
-
-  __ SmiUntag(value);
-  __ SmiToShortArrayOffset(r1, index);
-  __ StoreHalfWord(value, MemOperand(r1, string, SeqTwoByteString::kHeaderSize -
-                                                     kHeapObjectTag));
-  context()->Plug(string);
-}
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2923,8 +2848,7 @@
   Label index_out_of_range;
   Label done;
   StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
-                                      &need_conversion, &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ b(&done);
 
@@ -2947,47 +2871,6 @@
   context()->Plug(result);
 }
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = r3;
-  Register index = r2;
-  Register scratch = r5;
-  Register result = r2;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object, index, scratch, result,
-                                  &need_conversion, &need_conversion,
-                                  &index_out_of_range, STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ b(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ b(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ LoadSmiLiteral(result, Smi::FromInt(0));
-  __ b(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3345,8 +3228,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/x64/full-codegen-x64.cc b/src/full-codegen/x64/full-codegen-x64.cc
index 1ef9cee..eabb2f1 100644
--- a/src/full-codegen/x64/full-codegen-x64.cc
+++ b/src/full-codegen/x64/full-codegen-x64.cc
@@ -504,10 +504,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ jmp(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ jmp(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -758,20 +760,10 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ Push(variable->name());
-      // Declaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ PushRoot(Heap::kTheHoleValueRootIndex);
-      } else {
-        __ Push(Smi::FromInt(0));  // Indicates no initial value.
-      }
-      __ Push(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -825,8 +817,7 @@
       Comment cmnt(masm_, "[ FunctionDeclaration");
       PushOperand(variable->name());
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1255,14 +1246,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ Move(LoadDescriptor::NameRegister(), var->name());
-  __ LoadGlobalObject(LoadDescriptor::ReceiverRegister());
-  __ Move(LoadDescriptor::SlotRegister(),
+#endif
+  __ Move(LoadGlobalDescriptor::SlotRegister(),
           SmiFromSlot(proxy->VariableFeedbackSlot()));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1331,18 +1322,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ movp(rdi, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
-  __ Move(rax, Smi::FromInt(expr->literal_index()));
-  __ Move(rcx, expr->pattern());
-  __ Move(rdx, Smi::FromInt(expr->flags()));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(rax);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1449,12 +1428,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1471,6 +1454,7 @@
     EmitAccessor(it->second->setter);
     PushOperand(Smi::FromInt(NONE));
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1515,6 +1499,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1789,7 +1775,7 @@
   // When we arrive here, rax holds the generator object.
   __ RecordGeneratorContinuation();
   __ movp(rbx, FieldOperand(rax, JSGeneratorObject::kResumeModeOffset));
-  __ movp(rax, FieldOperand(rax, JSGeneratorObject::kInputOffset));
+  __ movp(rax, FieldOperand(rax, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ SmiCompare(rbx, Smi::FromInt(JSGeneratorObject::kReturn));
@@ -2780,72 +2766,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = rax;
-  Register index = rbx;
-  Register value = rcx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ Check(__ CheckSmi(value), kNonSmiValue);
-    __ Check(__ CheckSmi(index), kNonSmiValue);
-  }
-
-  __ SmiToInteger32(value, value);
-  __ SmiToInteger32(index, index);
-
-  if (FLAG_debug_code) {
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-  }
-
-  __ movb(FieldOperand(string, index, times_1, SeqOneByteString::kHeaderSize),
-          value);
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = rax;
-  Register index = rbx;
-  Register value = rcx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ Check(__ CheckSmi(value), kNonSmiValue);
-    __ Check(__ CheckSmi(index), kNonSmiValue);
-  }
-
-  __ SmiToInteger32(value, value);
-  __ SmiToInteger32(index, index);
-
-  if (FLAG_debug_code) {
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-  }
-
-  __ movw(FieldOperand(string, index, times_2, SeqTwoByteString::kHeaderSize),
-          value);
-  context()->Plug(rax);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2881,13 +2801,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -2911,54 +2826,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = rbx;
-  Register index = rax;
-  Register scratch = rdx;
-  Register result = rax;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ LoadRoot(result, Heap::kempty_stringRootIndex);
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ Move(result, Smi::FromInt(0));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3335,8 +3202,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/full-codegen/x87/full-codegen-x87.cc b/src/full-codegen/x87/full-codegen-x87.cc
index d7403fa..2fb9961 100644
--- a/src/full-codegen/x87/full-codegen-x87.cc
+++ b/src/full-codegen/x87/full-codegen-x87.cc
@@ -487,10 +487,12 @@
                                           true,
                                           true_label_,
                                           false_label_);
-  DCHECK(lit->IsNull() || lit->IsUndefined() || !lit->IsUndetectable());
-  if (lit->IsUndefined() || lit->IsNull() || lit->IsFalse()) {
+  DCHECK(lit->IsNull(isolate()) || lit->IsUndefined(isolate()) ||
+         !lit->IsUndetectable());
+  if (lit->IsUndefined(isolate()) || lit->IsNull(isolate()) ||
+      lit->IsFalse(isolate())) {
     if (false_label_ != fall_through_) __ jmp(false_label_);
-  } else if (lit->IsTrue() || lit->IsJSObject()) {
+  } else if (lit->IsTrue(isolate()) || lit->IsJSObject()) {
     if (true_label_ != fall_through_) __ jmp(true_label_);
   } else if (lit->IsString()) {
     if (String::cast(*lit)->length() == 0) {
@@ -743,21 +745,10 @@
 
     case VariableLocation::LOOKUP: {
       Comment cmnt(masm_, "[ VariableDeclaration");
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
       __ push(Immediate(variable->name()));
-      // VariableDeclaration nodes are always introduced in one of four modes.
-      DCHECK(IsDeclaredVariableMode(mode));
-      // Push initial value, if any.
-      // Note: 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.
-      if (hole_init) {
-        __ push(Immediate(isolate()->factory()->the_hole_value()));
-      } else {
-        __ push(Immediate(Smi::FromInt(0)));  // Indicates no initial value.
-      }
-      __ push(
-          Immediate(Smi::FromInt(variable->DeclarationPropertyAttributes())));
-      __ CallRuntime(Runtime::kDeclareLookupSlot);
+      __ CallRuntime(Runtime::kDeclareEvalVar);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -805,8 +796,7 @@
       Comment cmnt(masm_, "[ FunctionDeclaration");
       PushOperand(variable->name());
       VisitForStackValue(declaration->fun());
-      PushOperand(Smi::FromInt(variable->DeclarationPropertyAttributes()));
-      CallRuntimeWithOperands(Runtime::kDeclareLookupSlot);
+      CallRuntimeWithOperands(Runtime::kDeclareEvalFunction);
       PrepareForBailoutForId(proxy->id(), BailoutState::NO_REGISTERS);
       break;
     }
@@ -1218,17 +1208,14 @@
 
 void FullCodeGenerator::EmitGlobalVariableLoad(VariableProxy* proxy,
                                                TypeofMode typeof_mode) {
+#ifdef DEBUG
   Variable* var = proxy->var();
   DCHECK(var->IsUnallocatedOrGlobalSlot() ||
          (var->IsLookupSlot() && var->mode() == DYNAMIC_GLOBAL));
-  __ mov(LoadDescriptor::ReceiverRegister(), NativeContextOperand());
-  __ mov(LoadDescriptor::ReceiverRegister(),
-         ContextOperand(LoadDescriptor::ReceiverRegister(),
-                        Context::EXTENSION_INDEX));
-  __ mov(LoadDescriptor::NameRegister(), var->name());
-  __ mov(LoadDescriptor::SlotRegister(),
+#endif
+  __ mov(LoadGlobalDescriptor::SlotRegister(),
          Immediate(SmiFromSlot(proxy->VariableFeedbackSlot())));
-  CallLoadIC(typeof_mode);
+  CallLoadGlobalIC(typeof_mode);
 }
 
 
@@ -1297,18 +1284,6 @@
 }
 
 
-void FullCodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
-  Comment cmnt(masm_, "[ RegExpLiteral");
-  __ mov(edi, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
-  __ Move(eax, Immediate(Smi::FromInt(expr->literal_index())));
-  __ Move(ecx, Immediate(expr->pattern()));
-  __ Move(edx, Immediate(Smi::FromInt(expr->flags())));
-  FastCloneRegExpStub stub(isolate());
-  __ CallStub(&stub);
-  context()->Plug(eax);
-}
-
-
 void FullCodeGenerator::EmitAccessor(ObjectLiteralProperty* property) {
   Expression* expression = (property == NULL) ? NULL : property->value();
   if (expression == NULL) {
@@ -1415,12 +1390,16 @@
         break;
       case ObjectLiteral::Property::GETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->getter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->getter = property;
         }
         break;
       case ObjectLiteral::Property::SETTER:
         if (property->emit_store()) {
-          accessor_table.lookup(key)->second->setter = property;
+          AccessorTable::Iterator it = accessor_table.lookup(key);
+          it->second->bailout_id = expr->GetIdForPropertySet(property_index);
+          it->second->setter = property;
         }
         break;
     }
@@ -1439,6 +1418,7 @@
 
     PushOperand(Smi::FromInt(NONE));
     CallRuntimeWithOperands(Runtime::kDefineAccessorPropertyUnchecked);
+    PrepareForBailoutForId(it->second->bailout_id, BailoutState::NO_REGISTERS);
   }
 
   // Object literals have two parts. The "static" part on the left contains no
@@ -1483,6 +1463,8 @@
             PushOperand(Smi::FromInt(NONE));
             PushOperand(Smi::FromInt(property->NeedsSetFunctionName()));
             CallRuntimeWithOperands(Runtime::kDefineDataPropertyInLiteral);
+            PrepareForBailoutForId(expr->GetIdForPropertySet(property_index),
+                                   BailoutState::NO_REGISTERS);
           } else {
             DropOperands(3);
           }
@@ -1758,7 +1740,7 @@
   // When we arrive here, eax holds the generator object.
   __ RecordGeneratorContinuation();
   __ mov(ebx, FieldOperand(eax, JSGeneratorObject::kResumeModeOffset));
-  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOffset));
+  __ mov(eax, FieldOperand(eax, JSGeneratorObject::kInputOrDebugPosOffset));
   STATIC_ASSERT(JSGeneratorObject::kNext < JSGeneratorObject::kReturn);
   STATIC_ASSERT(JSGeneratorObject::kThrow > JSGeneratorObject::kReturn);
   __ cmp(ebx, Immediate(Smi::FromInt(JSGeneratorObject::kReturn)));
@@ -2783,75 +2765,6 @@
 }
 
 
-void FullCodeGenerator::EmitOneByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = eax;
-  Register index = ebx;
-  Register value = ecx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ test(value, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ test(index, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-  }
-
-  __ SmiUntag(value);
-  __ SmiUntag(index);
-
-  if (FLAG_debug_code) {
-    static const uint32_t one_byte_seq_type = kSeqStringTag | kOneByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, one_byte_seq_type);
-  }
-
-  __ mov_b(FieldOperand(string, index, times_1, SeqOneByteString::kHeaderSize),
-           value);
-  context()->Plug(string);
-}
-
-
-void FullCodeGenerator::EmitTwoByteSeqStringSetChar(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK_EQ(3, args->length());
-
-  Register string = eax;
-  Register index = ebx;
-  Register value = ecx;
-
-  VisitForStackValue(args->at(0));        // index
-  VisitForStackValue(args->at(1));        // value
-  VisitForAccumulatorValue(args->at(2));  // string
-  PopOperand(value);
-  PopOperand(index);
-
-  if (FLAG_debug_code) {
-    __ test(value, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ test(index, Immediate(kSmiTagMask));
-    __ Check(zero, kNonSmiValue);
-    __ SmiUntag(index);
-    static const uint32_t two_byte_seq_type = kSeqStringTag | kTwoByteStringTag;
-    __ EmitSeqStringSetCharCheck(string, index, value, two_byte_seq_type);
-    __ SmiTag(index);
-  }
-
-  __ SmiUntag(value);
-  // No need to untag a smi for two-byte addressing.
-  __ mov_w(FieldOperand(string, index, times_1, SeqTwoByteString::kHeaderSize),
-           value);
-  context()->Plug(string);
-}
-
-
 void FullCodeGenerator::EmitStringCharFromCode(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK(args->length() == 1);
@@ -2887,13 +2800,8 @@
   Label need_conversion;
   Label index_out_of_range;
   Label done;
-  StringCharCodeAtGenerator generator(object,
-                                      index,
-                                      result,
-                                      &need_conversion,
-                                      &need_conversion,
-                                      &index_out_of_range,
-                                      STRING_INDEX_IS_NUMBER);
+  StringCharCodeAtGenerator generator(object, index, result, &need_conversion,
+                                      &need_conversion, &index_out_of_range);
   generator.GenerateFast(masm_);
   __ jmp(&done);
 
@@ -2917,54 +2825,6 @@
 }
 
 
-void FullCodeGenerator::EmitStringCharAt(CallRuntime* expr) {
-  ZoneList<Expression*>* args = expr->arguments();
-  DCHECK(args->length() == 2);
-
-  VisitForStackValue(args->at(0));
-  VisitForAccumulatorValue(args->at(1));
-
-  Register object = ebx;
-  Register index = eax;
-  Register scratch = edx;
-  Register result = eax;
-
-  PopOperand(object);
-
-  Label need_conversion;
-  Label index_out_of_range;
-  Label done;
-  StringCharAtGenerator generator(object,
-                                  index,
-                                  scratch,
-                                  result,
-                                  &need_conversion,
-                                  &need_conversion,
-                                  &index_out_of_range,
-                                  STRING_INDEX_IS_NUMBER);
-  generator.GenerateFast(masm_);
-  __ jmp(&done);
-
-  __ bind(&index_out_of_range);
-  // When the index is out of range, the spec requires us to return
-  // the empty string.
-  __ Move(result, Immediate(isolate()->factory()->empty_string()));
-  __ jmp(&done);
-
-  __ bind(&need_conversion);
-  // Move smi zero into the result register, which will trigger
-  // conversion.
-  __ Move(result, Immediate(Smi::FromInt(0)));
-  __ jmp(&done);
-
-  NopRuntimeCallHelper call_helper;
-  generator.GenerateSlow(masm_, NOT_PART_OF_IC_HANDLER, call_helper);
-
-  __ bind(&done);
-  context()->Plug(result);
-}
-
-
 void FullCodeGenerator::EmitCall(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   DCHECK_LE(2, args->length());
@@ -3343,8 +3203,7 @@
   }
 
   // Convert old value into a number.
-  ToNumberStub convert_stub(isolate());
-  __ CallStub(&convert_stub);
+  __ Call(isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
   PrepareForBailoutForId(expr->ToNumberId(), BailoutState::TOS_REGISTER);
 
   // Save result for postfix expressions.
diff --git a/src/futex-emulation.cc b/src/futex-emulation.cc
index 991e4c3..1f7e8a6 100644
--- a/src/futex-emulation.cc
+++ b/src/futex-emulation.cc
@@ -142,7 +142,7 @@
     // be false, so we'll loop and then check interrupts.
     if (interrupted) {
       Object* interrupt_object = isolate->stack_guard()->HandleInterrupts();
-      if (interrupt_object->IsException()) {
+      if (interrupt_object->IsException(isolate)) {
         result = interrupt_object;
         mutex_.Pointer()->Lock();
         break;
diff --git a/src/gdb-jit.cc b/src/gdb-jit.cc
index 0df5975..e73b733 100644
--- a/src/gdb-jit.cc
+++ b/src/gdb-jit.cc
@@ -2012,17 +2012,19 @@
   return static_cast<uint32_t>((offset >> kCodeAlignmentBits) * kGoldenRatio);
 }
 
-
-static HashMap* GetLineMap() {
-  static HashMap* line_map = NULL;
-  if (line_map == NULL) line_map = new HashMap(&HashMap::PointersMatch);
+static base::HashMap* GetLineMap() {
+  static base::HashMap* line_map = NULL;
+  if (line_map == NULL) {
+    line_map = new base::HashMap(&base::HashMap::PointersMatch);
+  }
   return line_map;
 }
 
 
 static void PutLineInfo(Address addr, LineInfo* info) {
-  HashMap* line_map = GetLineMap();
-  HashMap::Entry* e = line_map->LookupOrInsert(addr, HashCodeAddress(addr));
+  base::HashMap* line_map = GetLineMap();
+  base::HashMap::Entry* e =
+      line_map->LookupOrInsert(addr, HashCodeAddress(addr));
   if (e->value != NULL) delete static_cast<LineInfo*>(e->value);
   e->value = info;
 }
diff --git a/src/global-handles.cc b/src/global-handles.cc
index 82b4fcd..dffa237 100644
--- a/src/global-handles.cc
+++ b/src/global-handles.cc
@@ -879,7 +879,7 @@
     PrintInternalFields(js_object);
     PrintF(" ] }\n");
   } else {
-    PrintF("object of unexpected type: %p\n", object);
+    PrintF("object of unexpected type: %p\n", static_cast<void*>(object));
   }
 }
 
@@ -891,7 +891,7 @@
     if (name->length() == 0) name = constructor->shared()->inferred_name();
 
     PrintF("%s", name->ToCString().get());
-  } else if (maybe_constructor->IsNull()) {
+  } else if (maybe_constructor->IsNull(isolate_)) {
     if (js_object->IsOddball()) {
       PrintF("<oddball>");
     } else {
@@ -907,7 +907,7 @@
     if (i != 0) {
       PrintF(", ");
     }
-    PrintF("%p", js_object->GetInternalField(i));
+    PrintF("%p", static_cast<void*>(js_object->GetInternalField(i)));
   }
 }
 
diff --git a/src/globals.h b/src/globals.h
index ed297e7..a31f237 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -150,12 +150,21 @@
 // encoded immediate, the addresses have to be in range of 256MB aligned
 // region. Used only for large object space.
 const size_t kMaximalCodeRangeSize = 256 * MB;
+const size_t kCodeRangeAreaAlignment = 256 * MB;
+#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
+const size_t kMaximalCodeRangeSize = 512 * MB;
+const size_t kCodeRangeAreaAlignment = 64 * KB;  // OS page on PPC Linux
 #else
 const size_t kMaximalCodeRangeSize = 512 * MB;
+const size_t kCodeRangeAreaAlignment = 4 * KB;  // OS page.
 #endif
 #if V8_OS_WIN
 const size_t kMinimumCodeRangeSize = 4 * MB;
 const size_t kReservedCodeRangePages = 1;
+// On PPC Linux PageSize is 4MB
+#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
+const size_t kMinimumCodeRangeSize = 12 * MB;
+const size_t kReservedCodeRangePages = 0;
 #else
 const size_t kMinimumCodeRangeSize = 3 * MB;
 const size_t kReservedCodeRangePages = 0;
@@ -169,14 +178,24 @@
 const bool kRequiresCodeRange = true;
 const size_t kMaximalCodeRangeSize = 256 * MB;
 const size_t kMinimumCodeRangeSize = 3 * MB;
-const size_t kReservedCodeRangePages = 0;
+const size_t kCodeRangeAreaAlignment = 4 * KB;  // OS page.
+#elif V8_HOST_ARCH_PPC && V8_TARGET_ARCH_PPC && V8_OS_LINUX
+const bool kRequiresCodeRange = false;
+const size_t kMaximalCodeRangeSize = 0 * MB;
+const size_t kMinimumCodeRangeSize = 0 * MB;
+const size_t kCodeRangeAreaAlignment = 64 * KB;  // OS page on PPC Linux
 #else
 const bool kRequiresCodeRange = false;
 const size_t kMaximalCodeRangeSize = 0 * MB;
 const size_t kMinimumCodeRangeSize = 0 * MB;
+const size_t kCodeRangeAreaAlignment = 4 * KB;  // OS page.
+#endif
 const size_t kReservedCodeRangePages = 0;
 #endif
-#endif
+
+// The external allocation limit should be below 256 MB on all architectures
+// to avoid that resource-constrained embedders run low on memory.
+const int kExternalAllocationLimit = 192 * 1024 * 1024;
 
 STATIC_ASSERT(kPointerSize == (1 << kPointerSizeLog2));
 
@@ -452,6 +471,26 @@
   kSimd128Unaligned
 };
 
+// Possible outcomes for decisions.
+enum class Decision : uint8_t { kUnknown, kTrue, kFalse };
+
+inline size_t hash_value(Decision decision) {
+  return static_cast<uint8_t>(decision);
+}
+
+inline std::ostream& operator<<(std::ostream& os, Decision decision) {
+  switch (decision) {
+    case Decision::kUnknown:
+      return os << "Unknown";
+    case Decision::kTrue:
+      return os << "True";
+    case Decision::kFalse:
+      return os << "False";
+  }
+  UNREACHABLE();
+  return os;
+}
+
 // Supported write barrier modes.
 enum WriteBarrierKind : uint8_t {
   kNoWriteBarrier,
@@ -549,6 +588,8 @@
   int instr_size;
   int reloc_size;
   int constant_pool_size;
+  byte* unwinding_info;
+  int unwinding_info_size;
   Assembler* origin;
 };
 
@@ -580,8 +621,6 @@
   MEGAMORPHIC,
   // A generic handler is installed and no extra typefeedback is recorded.
   GENERIC,
-  // Special state for debug break or step in prepare stubs.
-  DEBUG_STUB
 };
 
 enum CacheHolderFlag {
@@ -591,6 +630,7 @@
   kCacheOnReceiver
 };
 
+enum WhereToStart { kStartAtReceiver, kStartAtPrototype };
 
 // The Store Buffer (GC).
 typedef enum {
@@ -640,6 +680,15 @@
   } bits;
 };
 
+#if V8_TARGET_LITTLE_ENDIAN
+typedef IeeeDoubleLittleEndianArchType IeeeDoubleArchType;
+const int kIeeeDoubleMantissaWordOffset = 0;
+const int kIeeeDoubleExponentWordOffset = 4;
+#else
+typedef IeeeDoubleBigEndianArchType IeeeDoubleArchType;
+const int kIeeeDoubleMantissaWordOffset = 4;
+const int kIeeeDoubleExponentWordOffset = 0;
+#endif
 
 // AccessorCallback
 struct AccessorDescriptor {
@@ -693,7 +742,6 @@
   ARMv7,
   ARMv8,
   SUDIV,
-  MLS,
   UNALIGNED_ACCESSES,
   MOVW_MOVT_IMMEDIATE_LOADS,
   VFP32DREGS,
@@ -800,8 +848,14 @@
 };
 
 // The mips architecture prior to revision 5 has inverted encoding for sNaN.
-#if (V8_TARGET_ARCH_MIPS && !defined(_MIPS_ARCH_MIPS32R6)) || \
-    (V8_TARGET_ARCH_MIPS64 && !defined(_MIPS_ARCH_MIPS64R6))
+// The x87 FPU convert the sNaN to qNaN automatically when loading sNaN from
+// memmory.
+// Use mips sNaN which is a not used qNaN in x87 port as sNaN to workaround this
+// issue
+// for some test cases.
+#if (V8_TARGET_ARCH_MIPS && !defined(_MIPS_ARCH_MIPS32R6)) ||   \
+    (V8_TARGET_ARCH_MIPS64 && !defined(_MIPS_ARCH_MIPS64R6)) || \
+    (V8_TARGET_ARCH_X87)
 const uint32_t kHoleNanUpper32 = 0xFFFF7FFF;
 const uint32_t kHoleNanLower32 = 0xFFFF7FFF;
 #else
@@ -1007,6 +1061,10 @@
   return kind & FunctionKind::kAsyncFunction;
 }
 
+inline bool IsResumableFunction(FunctionKind kind) {
+  return IsGeneratorFunction(kind) || IsAsyncFunction(kind);
+}
+
 inline bool IsConciseMethod(FunctionKind kind) {
   DCHECK(IsValidFunctionKind(kind));
   return kind & FunctionKind::kConciseMethod;
diff --git a/src/heap-symbols.h b/src/heap-symbols.h
index 529342a..03b25ee 100644
--- a/src/heap-symbols.h
+++ b/src/heap-symbols.h
@@ -12,6 +12,16 @@
   V(arguments_string, "arguments")                                 \
   V(Arguments_string, "Arguments")                                 \
   V(Array_string, "Array")                                         \
+  V(arguments_to_string, "[object Arguments]")                     \
+  V(array_to_string, "[object Array]")                             \
+  V(boolean_to_string, "[object Boolean]")                         \
+  V(date_to_string, "[object Date]")                               \
+  V(error_to_string, "[object Error]")                             \
+  V(function_to_string, "[object Function]")                       \
+  V(number_to_string, "[object Number]")                           \
+  V(object_to_string, "[object Object]")                           \
+  V(regexp_to_string, "[object RegExp]")                           \
+  V(string_to_string, "[object String]")                           \
   V(bind_string, "bind")                                           \
   V(bool16x8_string, "bool16x8")                                   \
   V(Bool16x8_string, "Bool16x8")                                   \
@@ -22,6 +32,7 @@
   V(boolean_string, "boolean")                                     \
   V(Boolean_string, "Boolean")                                     \
   V(bound__string, "bound ")                                       \
+  V(buffer_string, "buffer")                                       \
   V(byte_length_string, "byteLength")                              \
   V(byte_offset_string, "byteOffset")                              \
   V(call_string, "call")                                           \
@@ -30,6 +41,7 @@
   V(cell_value_string, "%cell_value")                              \
   V(char_at_string, "CharAt")                                      \
   V(closure_string, "(closure)")                                   \
+  V(column_string, "column")                                       \
   V(compare_ic_string, "==")                                       \
   V(configurable_string, "configurable")                           \
   V(constructor_string, "constructor")                             \
@@ -78,6 +90,7 @@
   V(KeyedStoreMonomorphic_string, "KeyedStoreMonomorphic")         \
   V(last_index_string, "lastIndex")                                \
   V(length_string, "length")                                       \
+  V(line_string, "line")                                           \
   V(Map_string, "Map")                                             \
   V(minus_infinity_string, "-Infinity")                            \
   V(minus_zero_string, "-0")                                       \
@@ -91,6 +104,7 @@
   V(object_string, "object")                                       \
   V(Object_string, "Object")                                       \
   V(ownKeys_string, "ownKeys")                                     \
+  V(position_string, "position")                                   \
   V(preventExtensions_string, "preventExtensions")                 \
   V(private_api_string, "private_api")                             \
   V(Promise_string, "Promise")                                     \
@@ -99,11 +113,13 @@
   V(Proxy_string, "Proxy")                                         \
   V(query_colon_string, "(?:)")                                    \
   V(RegExp_string, "RegExp")                                       \
+  V(script_string, "script")                                       \
   V(setPrototypeOf_string, "setPrototypeOf")                       \
   V(set_string, "set")                                             \
   V(Set_string, "Set")                                             \
   V(source_mapping_url_string, "source_mapping_url")               \
   V(source_string, "source")                                       \
+  V(sourceText_string, "sourceText")                               \
   V(source_url_string, "source_url")                               \
   V(stack_string, "stack")                                         \
   V(strict_compare_ic_string, "===")                               \
@@ -166,12 +182,13 @@
   V(premonomorphic_symbol)                  \
   V(promise_combined_deferred_symbol)       \
   V(promise_debug_marker_symbol)            \
-  V(promise_has_handler_symbol)             \
+  V(promise_deferred_reactions_symbol)      \
   V(promise_fulfill_reactions_symbol)       \
-  V(promise_reject_reactions_symbol)        \
+  V(promise_has_handler_symbol)             \
   V(promise_raw_symbol)                     \
-  V(promise_state_symbol)                   \
+  V(promise_reject_reactions_symbol)        \
   V(promise_result_symbol)                  \
+  V(promise_state_symbol)                   \
   V(sealed_symbol)                          \
   V(stack_trace_symbol)                     \
   V(strict_function_transition_symbol)      \
diff --git a/src/heap/array-buffer-tracker-inl.h b/src/heap/array-buffer-tracker-inl.h
new file mode 100644
index 0000000..a176744
--- /dev/null
+++ b/src/heap/array-buffer-tracker-inl.h
@@ -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.
+
+#include "src/conversions-inl.h"
+#include "src/heap/array-buffer-tracker.h"
+#include "src/heap/heap.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+
+void ArrayBufferTracker::RegisterNew(Heap* heap, JSArrayBuffer* buffer) {
+  void* data = buffer->backing_store();
+  if (!data) return;
+
+  size_t length = NumberToSize(heap->isolate(), buffer->byte_length());
+  Page* page = Page::FromAddress(buffer->address());
+  {
+    base::LockGuard<base::Mutex> guard(page->mutex());
+    LocalArrayBufferTracker* tracker = page->local_tracker();
+    if (tracker == nullptr) {
+      page->AllocateLocalTracker();
+      tracker = page->local_tracker();
+    }
+    DCHECK_NOT_NULL(tracker);
+    tracker->Add(buffer, std::make_pair(data, length));
+  }
+  // We may go over the limit of externally allocated memory here. We call the
+  // api function to trigger a GC in this case.
+  reinterpret_cast<v8::Isolate*>(heap->isolate())
+      ->AdjustAmountOfExternalAllocatedMemory(length);
+}
+
+void ArrayBufferTracker::Unregister(Heap* heap, JSArrayBuffer* buffer) {
+  void* data = buffer->backing_store();
+  if (!data) return;
+
+  Page* page = Page::FromAddress(buffer->address());
+  size_t length = 0;
+  {
+    base::LockGuard<base::Mutex> guard(page->mutex());
+    LocalArrayBufferTracker* tracker = page->local_tracker();
+    DCHECK_NOT_NULL(tracker);
+    length = tracker->Remove(buffer).second;
+  }
+  heap->update_external_memory(-static_cast<intptr_t>(length));
+}
+
+void LocalArrayBufferTracker::Add(Key key, const Value& value) {
+  auto ret = array_buffers_.insert(std::make_pair(key, value));
+  USE(ret);
+  // Check that we indeed inserted a new value and did not overwrite an existing
+  // one (which would be a bug).
+  DCHECK(ret.second);
+}
+
+LocalArrayBufferTracker::Value LocalArrayBufferTracker::Remove(Key key) {
+  TrackingMap::iterator it = array_buffers_.find(key);
+  DCHECK(it != array_buffers_.end());
+  Value value = it->second;
+  array_buffers_.erase(it);
+  return value;
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/heap/array-buffer-tracker.cc b/src/heap/array-buffer-tracker.cc
index 6e389c1..a870b35 100644
--- a/src/heap/array-buffer-tracker.cc
+++ b/src/heap/array-buffer-tracker.cc
@@ -3,138 +3,133 @@
 // found in the LICENSE file.
 
 #include "src/heap/array-buffer-tracker.h"
+#include "src/heap/array-buffer-tracker-inl.h"
 #include "src/heap/heap.h"
-#include "src/isolate.h"
-#include "src/objects.h"
-#include "src/objects-inl.h"
-#include "src/v8.h"
 
 namespace v8 {
 namespace internal {
 
-ArrayBufferTracker::~ArrayBufferTracker() {
-  Isolate* isolate = heap()->isolate();
+LocalArrayBufferTracker::~LocalArrayBufferTracker() {
+  CHECK(array_buffers_.empty());
+}
+
+template <LocalArrayBufferTracker::FreeMode free_mode>
+void LocalArrayBufferTracker::Free() {
   size_t freed_memory = 0;
-  for (auto& buffer : live_array_buffers_) {
-    isolate->array_buffer_allocator()->Free(buffer.first, buffer.second);
-    freed_memory += buffer.second;
-  }
-  for (auto& buffer : live_array_buffers_for_scavenge_) {
-    isolate->array_buffer_allocator()->Free(buffer.first, buffer.second);
-    freed_memory += buffer.second;
-  }
-  live_array_buffers_.clear();
-  live_array_buffers_for_scavenge_.clear();
-  not_yet_discovered_array_buffers_.clear();
-  not_yet_discovered_array_buffers_for_scavenge_.clear();
-
-  if (freed_memory > 0) {
-    heap()->update_amount_of_external_allocated_memory(
-        -static_cast<int64_t>(freed_memory));
-  }
-}
-
-
-void ArrayBufferTracker::RegisterNew(JSArrayBuffer* buffer) {
-  void* data = buffer->backing_store();
-  if (!data) return;
-
-  bool in_new_space = heap()->InNewSpace(buffer);
-  size_t length = NumberToSize(heap()->isolate(), buffer->byte_length());
-  if (in_new_space) {
-    live_array_buffers_for_scavenge_[data] = length;
-  } else {
-    live_array_buffers_[data] = length;
-  }
-
-  // We may go over the limit of externally allocated memory here. We call the
-  // api function to trigger a GC in this case.
-  reinterpret_cast<v8::Isolate*>(heap()->isolate())
-      ->AdjustAmountOfExternalAllocatedMemory(length);
-}
-
-
-void ArrayBufferTracker::Unregister(JSArrayBuffer* buffer) {
-  void* data = buffer->backing_store();
-  if (!data) return;
-
-  bool in_new_space = heap()->InNewSpace(buffer);
-  std::map<void*, size_t>* live_buffers =
-      in_new_space ? &live_array_buffers_for_scavenge_ : &live_array_buffers_;
-  std::map<void*, size_t>* not_yet_discovered_buffers =
-      in_new_space ? &not_yet_discovered_array_buffers_for_scavenge_
-                   : &not_yet_discovered_array_buffers_;
-
-  DCHECK(live_buffers->count(data) > 0);
-
-  size_t length = (*live_buffers)[data];
-  live_buffers->erase(data);
-  not_yet_discovered_buffers->erase(data);
-
-  heap()->update_amount_of_external_allocated_memory(
-      -static_cast<int64_t>(length));
-}
-
-
-void ArrayBufferTracker::MarkLive(JSArrayBuffer* buffer) {
-  base::LockGuard<base::Mutex> guard(&mutex_);
-  void* data = buffer->backing_store();
-
-  // ArrayBuffer might be in the middle of being constructed.
-  if (data == heap()->undefined_value()) return;
-  if (heap()->InNewSpace(buffer)) {
-    not_yet_discovered_array_buffers_for_scavenge_.erase(data);
-  } else {
-    not_yet_discovered_array_buffers_.erase(data);
-  }
-}
-
-
-void ArrayBufferTracker::FreeDead(bool from_scavenge) {
-  size_t freed_memory = 0;
-  Isolate* isolate = heap()->isolate();
-  for (auto& buffer : not_yet_discovered_array_buffers_for_scavenge_) {
-    isolate->array_buffer_allocator()->Free(buffer.first, buffer.second);
-    freed_memory += buffer.second;
-    live_array_buffers_for_scavenge_.erase(buffer.first);
-  }
-
-  if (!from_scavenge) {
-    for (auto& buffer : not_yet_discovered_array_buffers_) {
-      isolate->array_buffer_allocator()->Free(buffer.first, buffer.second);
-      freed_memory += buffer.second;
-      live_array_buffers_.erase(buffer.first);
+  for (TrackingMap::iterator it = array_buffers_.begin();
+       it != array_buffers_.end();) {
+    if ((free_mode == kFreeAll) ||
+        Marking::IsWhite(Marking::MarkBitFrom(it->first))) {
+      heap_->isolate()->array_buffer_allocator()->Free(it->second.first,
+                                                       it->second.second);
+      freed_memory += it->second.second;
+      it = array_buffers_.erase(it);
+    } else {
+      it++;
     }
   }
-
-  not_yet_discovered_array_buffers_for_scavenge_ =
-      live_array_buffers_for_scavenge_;
-  if (!from_scavenge) not_yet_discovered_array_buffers_ = live_array_buffers_;
-
-  // Do not call through the api as this code is triggered while doing a GC.
-  heap()->update_amount_of_external_allocated_memory(
-      -static_cast<int64_t>(freed_memory));
+  if (freed_memory > 0) {
+    heap_->update_external_memory_concurrently_freed(
+        static_cast<intptr_t>(freed_memory));
+  }
 }
 
-
-void ArrayBufferTracker::PrepareDiscoveryInNewSpace() {
-  not_yet_discovered_array_buffers_for_scavenge_ =
-      live_array_buffers_for_scavenge_;
+template <typename Callback>
+void LocalArrayBufferTracker::Process(Callback callback) {
+  JSArrayBuffer* new_buffer = nullptr;
+  size_t freed_memory = 0;
+  for (TrackingMap::iterator it = array_buffers_.begin();
+       it != array_buffers_.end();) {
+    const CallbackResult result = callback(it->first, &new_buffer);
+    if (result == kKeepEntry) {
+      it++;
+    } else if (result == kUpdateEntry) {
+      DCHECK_NOT_NULL(new_buffer);
+      Page* target_page = Page::FromAddress(new_buffer->address());
+      // We need to lock the target page because we cannot guarantee
+      // exclusive access to new space pages.
+      if (target_page->InNewSpace()) target_page->mutex()->Lock();
+      LocalArrayBufferTracker* tracker = target_page->local_tracker();
+      if (tracker == nullptr) {
+        target_page->AllocateLocalTracker();
+        tracker = target_page->local_tracker();
+      }
+      DCHECK_NOT_NULL(tracker);
+      tracker->Add(new_buffer, it->second);
+      if (target_page->InNewSpace()) target_page->mutex()->Unlock();
+      it = array_buffers_.erase(it);
+    } else if (result == kRemoveEntry) {
+      heap_->isolate()->array_buffer_allocator()->Free(it->second.first,
+                                                       it->second.second);
+      freed_memory += it->second.second;
+      it = array_buffers_.erase(it);
+    } else {
+      UNREACHABLE();
+    }
+  }
+  if (freed_memory > 0) {
+    heap_->update_external_memory_concurrently_freed(
+        static_cast<intptr_t>(freed_memory));
+  }
 }
 
+void ArrayBufferTracker::FreeDeadInNewSpace(Heap* heap) {
+  DCHECK_EQ(heap->gc_state(), Heap::HeapState::SCAVENGE);
+  for (Page* page : NewSpacePageRange(heap->new_space()->FromSpaceStart(),
+                                      heap->new_space()->FromSpaceEnd())) {
+    bool empty = ProcessBuffers(page, kUpdateForwardedRemoveOthers);
+    CHECK(empty);
+  }
+  heap->account_external_memory_concurrently_freed();
+}
 
-void ArrayBufferTracker::Promote(JSArrayBuffer* buffer) {
-  base::LockGuard<base::Mutex> guard(&mutex_);
+void ArrayBufferTracker::FreeDead(Page* page) {
+  // Callers need to ensure having the page lock.
+  LocalArrayBufferTracker* tracker = page->local_tracker();
+  if (tracker == nullptr) return;
+  DCHECK(!page->SweepingDone());
+  tracker->Free<LocalArrayBufferTracker::kFreeDead>();
+  if (tracker->IsEmpty()) {
+    page->ReleaseLocalTracker();
+  }
+}
 
-  if (buffer->is_external()) return;
-  void* data = buffer->backing_store();
-  if (!data) return;
-  // ArrayBuffer might be in the middle of being constructed.
-  if (data == heap()->undefined_value()) return;
-  DCHECK(live_array_buffers_for_scavenge_.count(data) > 0);
-  live_array_buffers_[data] = live_array_buffers_for_scavenge_[data];
-  live_array_buffers_for_scavenge_.erase(data);
-  not_yet_discovered_array_buffers_for_scavenge_.erase(data);
+void ArrayBufferTracker::FreeAll(Page* page) {
+  LocalArrayBufferTracker* tracker = page->local_tracker();
+  if (tracker == nullptr) return;
+  tracker->Free<LocalArrayBufferTracker::kFreeAll>();
+  if (tracker->IsEmpty()) {
+    page->ReleaseLocalTracker();
+  }
+}
+
+bool ArrayBufferTracker::ProcessBuffers(Page* page, ProcessingMode mode) {
+  LocalArrayBufferTracker* tracker = page->local_tracker();
+  if (tracker == nullptr) return true;
+
+  DCHECK(page->SweepingDone());
+  tracker->Process(
+      [mode](JSArrayBuffer* old_buffer, JSArrayBuffer** new_buffer) {
+        MapWord map_word = old_buffer->map_word();
+        if (map_word.IsForwardingAddress()) {
+          *new_buffer = JSArrayBuffer::cast(map_word.ToForwardingAddress());
+          return LocalArrayBufferTracker::kUpdateEntry;
+        }
+        return mode == kUpdateForwardedKeepOthers
+                   ? LocalArrayBufferTracker::kKeepEntry
+                   : LocalArrayBufferTracker::kRemoveEntry;
+      });
+  return tracker->IsEmpty();
+}
+
+bool ArrayBufferTracker::IsTracked(JSArrayBuffer* buffer) {
+  Page* page = Page::FromAddress(buffer->address());
+  {
+    base::LockGuard<base::Mutex> guard(page->mutex());
+    LocalArrayBufferTracker* tracker = page->local_tracker();
+    if (tracker == nullptr) return false;
+    return tracker->IsTracked(buffer);
+  }
 }
 
 }  // namespace internal
diff --git a/src/heap/array-buffer-tracker.h b/src/heap/array-buffer-tracker.h
index 6130003..b015aa0 100644
--- a/src/heap/array-buffer-tracker.h
+++ b/src/heap/array-buffer-tracker.h
@@ -5,71 +5,97 @@
 #ifndef V8_HEAP_ARRAY_BUFFER_TRACKER_H_
 #define V8_HEAP_ARRAY_BUFFER_TRACKER_H_
 
-#include <map>
+#include <unordered_map>
 
+#include "src/allocation.h"
 #include "src/base/platform/mutex.h"
 #include "src/globals.h"
 
 namespace v8 {
 namespace internal {
 
-// Forward declarations.
 class Heap;
 class JSArrayBuffer;
+class Page;
 
-class ArrayBufferTracker {
+class ArrayBufferTracker : public AllStatic {
  public:
-  explicit ArrayBufferTracker(Heap* heap) : heap_(heap) {}
-  ~ArrayBufferTracker();
-
-  inline Heap* heap() { return heap_; }
+  enum ProcessingMode {
+    kUpdateForwardedRemoveOthers,
+    kUpdateForwardedKeepOthers,
+  };
 
   // The following methods are used to track raw C++ pointers to externally
   // allocated memory used as backing store in live array buffers.
 
-  // A new ArrayBuffer was created with |data| as backing store.
-  void RegisterNew(JSArrayBuffer* buffer);
+  // Register/unregister a new JSArrayBuffer |buffer| for tracking. Guards all
+  // access to the tracker by taking the page lock for the corresponding page.
+  inline static void RegisterNew(Heap* heap, JSArrayBuffer* buffer);
+  inline static void Unregister(Heap* heap, JSArrayBuffer* buffer);
 
-  // The backing store |data| is no longer owned by V8.
-  void Unregister(JSArrayBuffer* buffer);
+  // Frees all backing store pointers for dead JSArrayBuffers in new space.
+  // Does not take any locks and can only be called during Scavenge.
+  static void FreeDeadInNewSpace(Heap* heap);
 
-  // A live ArrayBuffer was discovered during marking/scavenge.
-  void MarkLive(JSArrayBuffer* buffer);
+  // Frees all backing store pointers for dead JSArrayBuffer on a given page.
+  // Requires marking information to be present. Requires the page lock to be
+  // taken by the caller.
+  static void FreeDead(Page* page);
 
-  // Frees all backing store pointers that weren't discovered in the previous
-  // marking or scavenge phase.
-  void FreeDead(bool from_scavenge);
+  // Frees all remaining, live or dead, array buffers on a page. Only useful
+  // during tear down.
+  static void FreeAll(Page* page);
 
-  // Prepare for a new scavenge phase. A new marking phase is implicitly
-  // prepared by finishing the previous one.
-  void PrepareDiscoveryInNewSpace();
+  // Processes all array buffers on a given page. |mode| specifies the action
+  // to perform on the buffers. Returns whether the tracker is empty or not.
+  static bool ProcessBuffers(Page* page, ProcessingMode mode);
 
-  // An ArrayBuffer moved from new space to old space.
-  void Promote(JSArrayBuffer* buffer);
+  // Returns whether a buffer is currently tracked.
+  static bool IsTracked(JSArrayBuffer* buffer);
+};
+
+// LocalArrayBufferTracker tracks internalized array buffers.
+//
+// Never use directly but instead always call through |ArrayBufferTracker|.
+class LocalArrayBufferTracker {
+ public:
+  typedef std::pair<void*, size_t> Value;
+  typedef JSArrayBuffer* Key;
+
+  enum CallbackResult { kKeepEntry, kUpdateEntry, kRemoveEntry };
+  enum FreeMode { kFreeDead, kFreeAll };
+
+  explicit LocalArrayBufferTracker(Heap* heap) : heap_(heap) {}
+  ~LocalArrayBufferTracker();
+
+  inline void Add(Key key, const Value& value);
+  inline Value Remove(Key key);
+
+  // Frees up array buffers determined by |free_mode|.
+  template <FreeMode free_mode>
+  void Free();
+
+  // Processes buffers one by one. The CallbackResult of the callback decides
+  // what action to take on the buffer.
+  //
+  // Callback should be of type:
+  //   CallbackResult fn(JSArrayBuffer* buffer, JSArrayBuffer** new_buffer);
+  template <typename Callback>
+  inline void Process(Callback callback);
+
+  bool IsEmpty() { return array_buffers_.empty(); }
+
+  bool IsTracked(Key key) {
+    return array_buffers_.find(key) != array_buffers_.end();
+  }
 
  private:
-  base::Mutex mutex_;
+  typedef std::unordered_map<Key, Value> TrackingMap;
+
   Heap* heap_;
-
-  // |live_array_buffers_| maps externally allocated memory used as backing
-  // store for ArrayBuffers to the length of the respective memory blocks.
-  //
-  // At the beginning of mark/compact, |not_yet_discovered_array_buffers_| is
-  // a copy of |live_array_buffers_| and we remove pointers as we discover live
-  // ArrayBuffer objects during marking. At the end of mark/compact, the
-  // remaining memory blocks can be freed.
-  std::map<void*, size_t> live_array_buffers_;
-  std::map<void*, size_t> not_yet_discovered_array_buffers_;
-
-  // To be able to free memory held by ArrayBuffers during scavenge as well, we
-  // have a separate list of allocated memory held by ArrayBuffers in new space.
-  //
-  // Since mark/compact also evacuates the new space, all pointers in the
-  // |live_array_buffers_for_scavenge_| list are also in the
-  // |live_array_buffers_| list.
-  std::map<void*, size_t> live_array_buffers_for_scavenge_;
-  std::map<void*, size_t> not_yet_discovered_array_buffers_for_scavenge_;
+  TrackingMap array_buffers_;
 };
+
 }  // namespace internal
 }  // namespace v8
 #endif  // V8_HEAP_ARRAY_BUFFER_TRACKER_H_
diff --git a/src/heap/gc-tracer.cc b/src/heap/gc-tracer.cc
index 4bae0a4..2b1f06a 100644
--- a/src/heap/gc-tracer.cc
+++ b/src/heap/gc-tracer.cc
@@ -135,6 +135,26 @@
   previous_ = previous_incremental_mark_compactor_event_ = current_;
 }
 
+void GCTracer::ResetForTesting() {
+  cumulative_incremental_marking_steps_ = 0.0;
+  cumulative_incremental_marking_bytes_ = 0.0;
+  cumulative_incremental_marking_duration_ = 0.0;
+  cumulative_pure_incremental_marking_duration_ = 0.0;
+  longest_incremental_marking_step_ = 0.0;
+  cumulative_incremental_marking_finalization_steps_ = 0.0;
+  cumulative_incremental_marking_finalization_duration_ = 0.0;
+  longest_incremental_marking_finalization_step_ = 0.0;
+  cumulative_marking_duration_ = 0.0;
+  cumulative_sweeping_duration_ = 0.0;
+  allocation_time_ms_ = 0.0;
+  new_space_allocation_counter_bytes_ = 0.0;
+  old_generation_allocation_counter_bytes_ = 0.0;
+  allocation_duration_since_gc_ = 0.0;
+  new_space_allocation_in_bytes_since_gc_ = 0.0;
+  old_generation_allocation_in_bytes_since_gc_ = 0.0;
+  combined_mark_compact_speed_cache_ = 0.0;
+  start_counter_ = 0;
+}
 
 void GCTracer::Start(GarbageCollector collector, const char* gc_reason,
                      const char* collector_reason) {
diff --git a/src/heap/gc-tracer.h b/src/heap/gc-tracer.h
index a657f15..ed07750 100644
--- a/src/heap/gc-tracer.h
+++ b/src/heap/gc-tracer.h
@@ -372,6 +372,8 @@
   static double AverageSpeed(const RingBuffer<BytesAndDuration>& buffer,
                              const BytesAndDuration& initial, double time_ms);
 
+  void ResetForTesting();
+
  private:
   // Print one detailed trace line in name=value format.
   // TODO(ernstm): Move to Heap.
diff --git a/src/heap/heap-inl.h b/src/heap/heap-inl.h
index f9c9235..d6c509e 100644
--- a/src/heap/heap-inl.h
+++ b/src/heap/heap-inl.h
@@ -393,14 +393,30 @@
   return OldGenerationSpaceAvailable() < 0;
 }
 
-
+template <PromotionMode promotion_mode>
 bool Heap::ShouldBePromoted(Address old_address, int object_size) {
   Page* page = Page::FromAddress(old_address);
   Address age_mark = new_space_.age_mark();
+
+  if (promotion_mode == PROMOTE_MARKED) {
+    MarkBit mark_bit = Marking::MarkBitFrom(old_address);
+    if (!Marking::IsWhite(mark_bit)) {
+      return true;
+    }
+  }
+
   return page->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK) &&
          (!page->ContainsLimit(age_mark) || old_address < age_mark);
 }
 
+PromotionMode Heap::CurrentPromotionMode() {
+  if (incremental_marking()->IsMarking()) {
+    return PROMOTE_MARKED;
+  } else {
+    return DEFAULT_PROMOTION;
+  }
+}
+
 void Heap::RecordWrite(Object* object, int offset, Object* o) {
   if (!InNewSpace(o) || !object->IsHeapObject() || InNewSpace(object)) {
     return;
@@ -460,6 +476,31 @@
             static_cast<size_t>(byte_size / kPointerSize));
 }
 
+bool Heap::PurgeLeftTrimmedObject(Object** object) {
+  HeapObject* current = reinterpret_cast<HeapObject*>(*object);
+  const MapWord map_word = current->map_word();
+  if (current->IsFiller() && !map_word.IsForwardingAddress()) {
+#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() == one_pointer_filler_map()) {
+        next += kPointerSize;
+      } else if (current->map() == two_pointer_filler_map()) {
+        next += 2 * kPointerSize;
+      } else {
+        next += current->Size();
+      }
+      current = reinterpret_cast<HeapObject*>(next);
+    }
+    DCHECK(current->IsFixedArrayBase());
+#endif  // DEBUG
+    *object = nullptr;
+    return true;
+  }
+  return false;
+}
+
 template <Heap::FindMementoMode mode>
 AllocationMemento* Heap::FindAllocationMemento(HeapObject* object) {
   // Check if there is potentially a memento behind the object. If
@@ -510,7 +551,7 @@
 
 template <Heap::UpdateAllocationSiteMode mode>
 void Heap::UpdateAllocationSite(HeapObject* object,
-                                HashMap* pretenuring_feedback) {
+                                base::HashMap* pretenuring_feedback) {
   DCHECK(InFromSpace(object));
   if (!FLAG_allocation_site_pretenuring ||
       !AllocationSite::CanTrack(object->map()->instance_type()))
@@ -538,7 +579,7 @@
     // to dereference the allocation site and rather have to postpone all checks
     // till actually merging the data.
     Address key = memento_candidate->GetAllocationSiteUnchecked();
-    HashMap::Entry* e =
+    base::HashMap::Entry* e =
         pretenuring_feedback->LookupOrInsert(key, ObjectHash(key));
     DCHECK(e != nullptr);
     (*bit_cast<intptr_t*>(&e->value))++;
@@ -596,12 +637,12 @@
   for (int i = 0; i < new_space_strings_.length(); ++i) {
     Object* obj = Object::cast(new_space_strings_[i]);
     DCHECK(heap_->InNewSpace(obj));
-    DCHECK(obj != heap_->the_hole_value());
+    DCHECK(!obj->IsTheHole(heap_->isolate()));
   }
   for (int i = 0; i < old_space_strings_.length(); ++i) {
     Object* obj = Object::cast(old_space_strings_[i]);
     DCHECK(!heap_->InNewSpace(obj));
-    DCHECK(obj != heap_->the_hole_value());
+    DCHECK(!obj->IsTheHole(heap_->isolate()));
   }
 #endif
 }
@@ -710,6 +751,17 @@
   set_interpreter_entry_return_pc_offset(Smi::FromInt(pc_offset));
 }
 
+int Heap::GetNextTemplateSerialNumber() {
+  int next_serial_number = next_template_serial_number()->value() + 1;
+  set_next_template_serial_number(Smi::FromInt(next_serial_number));
+  return next_serial_number;
+}
+
+void Heap::SetSerializedTemplates(FixedArray* templates) {
+  DCHECK_EQ(empty_fixed_array(), serialized_templates());
+  set_serialized_templates(templates);
+}
+
 AlwaysAllocateScope::AlwaysAllocateScope(Isolate* isolate)
     : heap_(isolate->heap()) {
   heap_->always_allocate_scope_count_.Increment(1);
diff --git a/src/heap/heap.cc b/src/heap/heap.cc
index c8f1557..c59a8d3 100644
--- a/src/heap/heap.cc
+++ b/src/heap/heap.cc
@@ -17,7 +17,7 @@
 #include "src/debug/debug.h"
 #include "src/deoptimizer.h"
 #include "src/global-handles.h"
-#include "src/heap/array-buffer-tracker.h"
+#include "src/heap/array-buffer-tracker-inl.h"
 #include "src/heap/gc-idle-time-handler.h"
 #include "src/heap/gc-tracer.h"
 #include "src/heap/incremental-marking.h"
@@ -32,7 +32,6 @@
 #include "src/heap/scavenger-inl.h"
 #include "src/heap/store-buffer.h"
 #include "src/interpreter/interpreter.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/jsregexp.h"
 #include "src/runtime-profiler.h"
 #include "src/snapshot/natives.h"
@@ -69,8 +68,9 @@
 };
 
 Heap::Heap()
-    : amount_of_external_allocated_memory_(0),
-      amount_of_external_allocated_memory_at_last_global_gc_(0),
+    : external_memory_(0),
+      external_memory_limit_(kExternalAllocationLimit),
+      external_memory_at_last_mark_compact_(0),
       isolate_(nullptr),
       code_range_size_(0),
       // semispace_size_ should be a power of 2 and old_generation_size_ should
@@ -160,7 +160,6 @@
       gc_callbacks_depth_(0),
       deserialization_complete_(false),
       strong_roots_list_(NULL),
-      array_buffer_tracker_(NULL),
       heap_iterator_depth_(0),
       force_oom_(false) {
 // Allow build-time customization of the max semispace size. Building
@@ -385,9 +384,8 @@
                          ", committed: %6" V8PRIdPTR " KB\n",
                this->SizeOfObjects() / KB, this->Available() / KB,
                this->CommittedMemory() / KB);
-  PrintIsolate(
-      isolate_, "External memory reported: %6" V8PRIdPTR " KB\n",
-      static_cast<intptr_t>(amount_of_external_allocated_memory_ / KB));
+  PrintIsolate(isolate_, "External memory reported: %6" V8PRIdPTR " KB\n",
+               static_cast<intptr_t>(external_memory_ / KB));
   PrintIsolate(isolate_, "Total time spent in GC  : %.1f ms\n",
                total_gc_time_ms_);
 }
@@ -502,11 +500,10 @@
   }
 }
 
-
 void Heap::MergeAllocationSitePretenuringFeedback(
-    const HashMap& local_pretenuring_feedback) {
+    const base::HashMap& local_pretenuring_feedback) {
   AllocationSite* site = nullptr;
-  for (HashMap::Entry* local_entry = local_pretenuring_feedback.Start();
+  for (base::HashMap::Entry* local_entry = local_pretenuring_feedback.Start();
        local_entry != nullptr;
        local_entry = local_pretenuring_feedback.Next(local_entry)) {
     site = reinterpret_cast<AllocationSite*>(local_entry->key);
@@ -535,8 +532,8 @@
 class Heap::PretenuringScope {
  public:
   explicit PretenuringScope(Heap* heap) : heap_(heap) {
-    heap_->global_pretenuring_feedback_ =
-        new HashMap(HashMap::PointersMatch, kInitialFeedbackCapacity);
+    heap_->global_pretenuring_feedback_ = new base::HashMap(
+        base::HashMap::PointersMatch, kInitialFeedbackCapacity);
   }
 
   ~PretenuringScope() {
@@ -562,7 +559,7 @@
 
     // Step 1: Digest feedback for recorded allocation sites.
     bool maximum_size_scavenge = MaximumSizeScavenge();
-    for (HashMap::Entry* e = global_pretenuring_feedback_->Start();
+    for (base::HashMap::Entry* e = global_pretenuring_feedback_->Start();
          e != nullptr; e = global_pretenuring_feedback_->Next(e)) {
       allocation_sites++;
       site = reinterpret_cast<AllocationSite*>(e->key);
@@ -1111,9 +1108,11 @@
     // Visit all HeapObject pointers in [start, end).
     for (Object** p = start; p < end; p++) {
       if ((*p)->IsHeapObject()) {
+        HeapObject* object = HeapObject::cast(*p);
+        Isolate* isolate = object->GetIsolate();
         // Check that the string is actually internalized.
-        CHECK((*p)->IsTheHole() || (*p)->IsUndefined() ||
-              (*p)->IsInternalizedString());
+        CHECK(object->IsTheHole(isolate) || object->IsUndefined(isolate) ||
+              object->IsInternalizedString());
       }
     }
   }
@@ -1212,12 +1211,12 @@
   }
 
   Object* context = native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(isolate())) {
     // GC can happen when the context is not fully initialized,
     // so the cache can be undefined.
     Object* cache =
         Context::cast(context)->get(Context::NORMALIZED_MAP_CACHE_INDEX);
-    if (!cache->IsUndefined()) {
+    if (!cache->IsUndefined(isolate())) {
       NormalizedMapCache::cast(cache)->Clear();
     }
     context = Context::cast(context)->next_context_link();
@@ -1340,8 +1339,8 @@
   intptr_t old_gen_size = PromotedSpaceSizeOfObjects();
   if (collector == MARK_COMPACTOR) {
     // Register the amount of external allocated memory.
-    amount_of_external_allocated_memory_at_last_global_gc_ =
-        amount_of_external_allocated_memory_;
+    external_memory_at_last_mark_compact_ = external_memory_;
+    external_memory_limit_ = external_memory_ + kExternalAllocationLimit;
     SetOldGenerationAllocationLimit(old_gen_size, gc_speed, mutator_speed);
   } else if (HasLowYoungGenerationAllocationRate() &&
              old_generation_size_configured_) {
@@ -1612,6 +1611,8 @@
   // Pause the inline allocation steps.
   PauseAllocationObserversScope pause_observers(this);
 
+  mark_compact_collector()->sweeper().EnsureNewSpaceCompleted();
+
 #ifdef VERIFY_HEAP
   if (FLAG_verify_heap) VerifyNonPointerSpacePointers(this);
 #endif
@@ -1626,7 +1627,12 @@
 
   scavenge_collector_->SelectScavengingVisitorsTable();
 
-  array_buffer_tracker()->PrepareDiscoveryInNewSpace();
+  if (UsingEmbedderHeapTracer()) {
+    // Register found wrappers with embedder so it can add them to its marking
+    // deque and correctly manage the case when v8 scavenger collects the
+    // wrappers by either keeping wrappables alive, or cleaning marking deque.
+    mark_compact_collector()->RegisterWrappersWithEmbedderHeapTracer();
+  }
 
   // Flip the semispaces.  After flipping, to space is empty, from space has
   // live objects.
@@ -1653,6 +1659,7 @@
   Address new_space_front = new_space_.ToSpaceStart();
   promotion_queue_.Initialize();
 
+  PromotionMode promotion_mode = CurrentPromotionMode();
   ScavengeVisitor scavenge_visitor(this);
 
   if (FLAG_scavenge_reclaim_unmodified_objects) {
@@ -1669,8 +1676,21 @@
   {
     // Copy objects reachable from the old generation.
     TRACE_GC(tracer(), GCTracer::Scope::SCAVENGER_OLD_TO_NEW_POINTERS);
-    RememberedSet<OLD_TO_NEW>::IterateWithWrapper(this,
-                                                  Scavenger::ScavengeObject);
+    RememberedSet<OLD_TO_NEW>::Iterate(this, [this](Address addr) {
+      return Scavenger::CheckAndScavengeObject(this, addr);
+    });
+
+    RememberedSet<OLD_TO_NEW>::IterateTyped(
+        this, [this](SlotType type, Address host_addr, Address addr) {
+          return UpdateTypedSlotHelper::UpdateTypedSlot(
+              isolate(), type, addr, [this](Object** addr) {
+                // We expect that objects referenced by code are long living.
+                // If we do not force promotion, then we need to clear
+                // old_to_new slots in dead code objects after mark-compact.
+                return Scavenger::CheckAndScavengeObject(
+                    this, reinterpret_cast<Address>(addr));
+              });
+        });
   }
 
   {
@@ -1692,7 +1712,8 @@
 
   {
     TRACE_GC(tracer(), GCTracer::Scope::SCAVENGER_SEMISPACE);
-    new_space_front = DoScavenge(&scavenge_visitor, new_space_front);
+    new_space_front =
+        DoScavenge(&scavenge_visitor, new_space_front, promotion_mode);
   }
 
   if (FLAG_scavenge_reclaim_unmodified_objects) {
@@ -1701,12 +1722,14 @@
 
     isolate()->global_handles()->IterateNewSpaceWeakUnmodifiedRoots(
         &scavenge_visitor);
-    new_space_front = DoScavenge(&scavenge_visitor, new_space_front);
+    new_space_front =
+        DoScavenge(&scavenge_visitor, new_space_front, promotion_mode);
   } else {
     TRACE_GC(tracer(), GCTracer::Scope::SCAVENGER_OBJECT_GROUPS);
     while (isolate()->global_handles()->IterateObjectGroups(
         &scavenge_visitor, &IsUnscavengedHeapObject)) {
-      new_space_front = DoScavenge(&scavenge_visitor, new_space_front);
+      new_space_front =
+          DoScavenge(&scavenge_visitor, new_space_front, promotion_mode);
     }
     isolate()->global_handles()->RemoveObjectGroups();
     isolate()->global_handles()->RemoveImplicitRefGroups();
@@ -1716,7 +1739,8 @@
 
     isolate()->global_handles()->IterateNewSpaceWeakIndependentRoots(
         &scavenge_visitor);
-    new_space_front = DoScavenge(&scavenge_visitor, new_space_front);
+    new_space_front =
+        DoScavenge(&scavenge_visitor, new_space_front, promotion_mode);
   }
 
   UpdateNewSpaceReferencesInExternalStringTable(
@@ -1734,7 +1758,7 @@
   // Set age mark.
   new_space_.set_age_mark(new_space_.top());
 
-  array_buffer_tracker()->FreeDead(true);
+  ArrayBufferTracker::FreeDeadInNewSpace(this);
 
   // Update how much has survived scavenge.
   IncrementYoungSurvivorsCounter(static_cast<int>(
@@ -1898,9 +1922,9 @@
   external_string_table_.Iterate(&external_string_table_visitor);
 }
 
-
 Address Heap::DoScavenge(ObjectVisitor* scavenge_visitor,
-                         Address new_space_front) {
+                         Address new_space_front,
+                         PromotionMode promotion_mode) {
   do {
     SemiSpace::AssertValidRange(new_space_front, new_space_.top());
     // The addresses new_space_front and new_space_.top() define a
@@ -1909,8 +1933,14 @@
     while (new_space_front != new_space_.top()) {
       if (!Page::IsAlignedToPageSize(new_space_front)) {
         HeapObject* object = HeapObject::FromAddress(new_space_front);
-        new_space_front +=
-            StaticScavengeVisitor::IterateBody(object->map(), object);
+        if (promotion_mode == PROMOTE_MARKED) {
+          new_space_front += StaticScavengeVisitor<PROMOTE_MARKED>::IterateBody(
+              object->map(), object);
+        } else {
+          new_space_front +=
+              StaticScavengeVisitor<DEFAULT_PROMOTION>::IterateBody(
+                  object->map(), object);
+        }
       } else {
         new_space_front = Page::FromAllocationAreaAddress(new_space_front)
                               ->next_page()
@@ -2014,12 +2044,12 @@
 
 
 void Heap::RegisterNewArrayBuffer(JSArrayBuffer* buffer) {
-  return array_buffer_tracker()->RegisterNew(buffer);
+  ArrayBufferTracker::RegisterNew(this, buffer);
 }
 
 
 void Heap::UnregisterArrayBuffer(JSArrayBuffer* buffer) {
-  return array_buffer_tracker()->Unregister(buffer);
+  ArrayBufferTracker::Unregister(this, buffer);
 }
 
 
@@ -2306,8 +2336,9 @@
     }
 
     {  // Create a separate external one byte string map for native sources.
-      AllocationResult allocation = AllocateMap(EXTERNAL_ONE_BYTE_STRING_TYPE,
-                                                ExternalOneByteString::kSize);
+      AllocationResult allocation =
+          AllocateMap(SHORT_EXTERNAL_ONE_BYTE_STRING_TYPE,
+                      ExternalOneByteString::kShortSize);
       if (!allocation.To(&obj)) return false;
       Map* map = Map::cast(obj);
       map->SetConstructorFunctionIndex(Context::STRING_FUNCTION_INDEX);
@@ -2794,6 +2825,20 @@
   }
 
   {
+    Handle<FixedArray> empty_literals_array =
+        factory->NewFixedArray(1, TENURED);
+    empty_literals_array->set(0, *factory->empty_fixed_array());
+    set_empty_literals_array(*empty_literals_array);
+  }
+
+  {
+    Handle<FixedArray> empty_sloppy_arguments_elements =
+        factory->NewFixedArray(2, TENURED);
+    empty_sloppy_arguments_elements->set_map(sloppy_arguments_elements_map());
+    set_empty_sloppy_arguments_elements(*empty_sloppy_arguments_elements);
+  }
+
+  {
     Handle<WeakCell> cell = factory->NewWeakCell(factory->undefined_value());
     set_empty_weak_cell(*cell);
     cell->clear();
@@ -2825,6 +2870,7 @@
 
   // Handling of script id generation is in Heap::NextScriptId().
   set_last_script_id(Smi::FromInt(v8::UnboundScript::kNoScriptId));
+  set_next_template_serial_number(Smi::FromInt(0));
 
   // Allocate the empty script.
   Handle<Script> script = factory->NewScript(factory->empty_string());
@@ -2851,6 +2897,8 @@
       handle(Smi::FromInt(Isolate::kArrayProtectorValid), isolate()));
   set_species_protector(*species_cell);
 
+  set_serialized_templates(empty_fixed_array());
+
   set_weak_stack_trace_list(Smi::FromInt(0));
 
   set_noscript_shared_function_infos(Smi::FromInt(0));
@@ -2888,6 +2936,7 @@
     case kRetainedMapsRootIndex:
     case kNoScriptSharedFunctionInfosRootIndex:
     case kWeakStackTraceListRootIndex:
+    case kSerializedTemplatesRootIndex:
 // Smi values
 #define SMI_ENTRY(type, name, Name) case k##Name##RootIndex:
       SMI_ROOT_LIST(SMI_ENTRY)
@@ -3073,14 +3122,8 @@
 
   if (lo_space()->Contains(object)) return false;
 
-  Page* page = Page::FromAddress(address);
-  // We can move the object start if:
-  // (1) the object is not in old space,
-  // (2) the page of the object was already swept,
-  // (3) the page was already concurrently swept. This case is an optimization
-  // for concurrent sweeping. The WasSwept predicate for concurrently swept
-  // pages is set after sweeping all pages.
-  return !InOldSpace(object) || page->SweepingDone();
+  // We can move the object start if the page was already swept.
+  return Page::FromAddress(address)->SweepingDone();
 }
 
 
@@ -3105,6 +3148,7 @@
 
 FixedArrayBase* Heap::LeftTrimFixedArray(FixedArrayBase* object,
                                          int elements_to_trim) {
+  CHECK_NOT_NULL(object);
   DCHECK(!object->IsFixedTypedArrayBase());
   DCHECK(!object->IsByteArray());
   const int element_size = object->IsFixedArray() ? kPointerSize : kDoubleSize;
@@ -3323,8 +3367,7 @@
   result->set_map_no_write_barrier(code_map());
   Code* code = Code::cast(result);
   DCHECK(IsAligned(bit_cast<intptr_t>(code->address()), kCodeAlignment));
-  DCHECK(memory_allocator()->code_range() == NULL ||
-         !memory_allocator()->code_range()->valid() ||
+  DCHECK(!memory_allocator()->code_range()->valid() ||
          memory_allocator()->code_range()->contains(code->address()) ||
          object_size <= code_space()->AreaSize());
   code->set_gc_metadata(Smi::FromInt(0));
@@ -3350,8 +3393,7 @@
 
   // Relocate the copy.
   DCHECK(IsAligned(bit_cast<intptr_t>(new_code->address()), kCodeAlignment));
-  DCHECK(memory_allocator()->code_range() == NULL ||
-         !memory_allocator()->code_range()->valid() ||
+  DCHECK(!memory_allocator()->code_range()->valid() ||
          memory_allocator()->code_range()->contains(code->address()) ||
          obj_size <= code_space()->AreaSize());
   new_code->Relocate(new_addr - old_addr);
@@ -3382,60 +3424,6 @@
   return copy;
 }
 
-AllocationResult Heap::CopyCode(Code* code, Vector<byte> reloc_info) {
-  // Allocate ByteArray before the Code object, so that we do not risk
-  // leaving uninitialized Code object (and breaking the heap).
-  ByteArray* reloc_info_array = nullptr;
-  {
-    AllocationResult allocation =
-        AllocateByteArray(reloc_info.length(), TENURED);
-    if (!allocation.To(&reloc_info_array)) return allocation;
-  }
-
-  int new_body_size = RoundUp(code->instruction_size(), kObjectAlignment);
-
-  int new_obj_size = Code::SizeFor(new_body_size);
-
-  Address old_addr = code->address();
-
-  size_t relocation_offset =
-      static_cast<size_t>(code->instruction_end() - old_addr);
-
-  HeapObject* result = nullptr;
-  AllocationResult allocation = AllocateRaw(new_obj_size, CODE_SPACE);
-  if (!allocation.To(&result)) return allocation;
-
-  // Copy code object.
-  Address new_addr = result->address();
-
-  // Copy header and instructions.
-  CopyBytes(new_addr, old_addr, relocation_offset);
-
-  Code* new_code = Code::cast(result);
-  new_code->set_relocation_info(reloc_info_array);
-
-  // Copy patched rinfo.
-  CopyBytes(new_code->relocation_start(), reloc_info.start(),
-            static_cast<size_t>(reloc_info.length()));
-
-  // Relocate the copy.
-  DCHECK(IsAligned(bit_cast<intptr_t>(new_code->address()), kCodeAlignment));
-  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);
-  // We have to iterate over over the object and process its pointers when
-  // black allocation is on.
-  incremental_marking()->IterateBlackObject(new_code);
-#ifdef VERIFY_HEAP
-  if (FLAG_verify_heap) code->ObjectVerify();
-#endif
-  return new_code;
-}
-
-
 void Heap::InitializeAllocationMemento(AllocationMemento* memento,
                                        AllocationSite* allocation_site) {
   memento->set_map_no_write_barrier(allocation_memento_map());
@@ -3533,7 +3521,8 @@
   // Initialize the JSObject.
   InitializeJSObjectFromMap(js_obj, properties, map);
   DCHECK(js_obj->HasFastElements() || js_obj->HasFixedTypedArrayElements() ||
-         js_obj->HasFastStringWrapperElements());
+         js_obj->HasFastStringWrapperElements() ||
+         js_obj->HasFastArgumentsElements());
   return js_obj;
 }
 
@@ -3559,10 +3548,11 @@
   // Make the clone.
   Map* map = source->map();
 
-  // We can only clone regexps, normal objects, api objects or arrays. Copying
-  // anything else will break invariants.
+  // We can only clone regexps, normal objects, api objects, errors or arrays.
+  // Copying anything else will break invariants.
   CHECK(map->instance_type() == JS_REGEXP_TYPE ||
         map->instance_type() == JS_OBJECT_TYPE ||
+        map->instance_type() == JS_ERROR_TYPE ||
         map->instance_type() == JS_ARRAY_TYPE ||
         map->instance_type() == JS_API_OBJECT_TYPE ||
         map->instance_type() == JS_SPECIAL_API_OBJECT_TYPE);
@@ -4420,8 +4410,36 @@
 }
 
 void Heap::CollectGarbageOnMemoryPressure(const char* source) {
+  const int kGarbageThresholdInBytes = 8 * MB;
+  const double kGarbageThresholdAsFractionOfTotalMemory = 0.1;
+  // This constant is the maximum response time in RAIL performance model.
+  const double kMaxMemoryPressurePauseMs = 100;
+
+  double start = MonotonicallyIncreasingTimeInMs();
   CollectAllGarbage(kReduceMemoryFootprintMask | kAbortIncrementalMarkingMask,
-                    source);
+                    source, kGCCallbackFlagCollectAllAvailableGarbage);
+  double end = MonotonicallyIncreasingTimeInMs();
+
+  // Estimate how much memory we can free.
+  int64_t potential_garbage =
+      (CommittedMemory() - SizeOfObjects()) + external_memory_;
+  // If we can potentially free large amount of memory, then start GC right
+  // away instead of waiting for memory reducer.
+  if (potential_garbage >= kGarbageThresholdInBytes &&
+      potential_garbage >=
+          CommittedMemory() * kGarbageThresholdAsFractionOfTotalMemory) {
+    // If we spent less than half of the time budget, then perform full GC
+    // Otherwise, start incremental marking.
+    if (end - start < kMaxMemoryPressurePauseMs / 2) {
+      CollectAllGarbage(
+          kReduceMemoryFootprintMask | kAbortIncrementalMarkingMask, source,
+          kGCCallbackFlagCollectAllAvailableGarbage);
+    } else {
+      if (FLAG_incremental_marking && incremental_marking()->IsStopped()) {
+        StartIdleIncrementalMarking();
+      }
+    }
+  }
 }
 
 void Heap::MemoryPressureNotification(MemoryPressureLevel level,
@@ -4444,6 +4462,15 @@
   }
 }
 
+void Heap::CollectCodeStatistics() {
+  PagedSpace::ResetCodeAndMetadataStatistics(isolate());
+  // We do not look for code in new space, or map space.  If code
+  // somehow ends up in those spaces, we would miss it here.
+  code_space_->CollectCodeStatistics();
+  old_space_->CollectCodeStatistics();
+  lo_space_->CollectCodeStatistics();
+}
+
 #ifdef DEBUG
 
 void Heap::Print() {
@@ -4458,11 +4485,7 @@
 
 void Heap::ReportCodeStatistics(const char* title) {
   PrintF(">>>>>> Code Stats (%s) >>>>>>\n", title);
-  PagedSpace::ResetCodeStatistics(isolate());
-  // We do not look for code in new space, map space, or old space.  If code
-  // somehow ends up in those spaces, we would miss it here.
-  code_space_->CollectCodeStatistics();
-  lo_space_->CollectCodeStatistics();
+  CollectCodeStatistics();
   PagedSpace::ReportCodeStatistics(isolate());
 }
 
@@ -4632,10 +4655,8 @@
 
 void Heap::ZapFromSpace() {
   if (!new_space_.IsFromSpaceCommitted()) return;
-  NewSpacePageIterator it(new_space_.FromSpaceStart(),
-                          new_space_.FromSpaceEnd());
-  while (it.has_next()) {
-    Page* page = it.next();
+  for (Page* page : NewSpacePageRange(new_space_.FromSpaceStart(),
+                                      new_space_.FromSpaceEnd())) {
     for (Address cursor = page->area_start(), limit = page->area_end();
          cursor < limit; cursor += kPointerSize) {
       Memory::Address_at(cursor) = kFromSpaceZapValue;
@@ -4759,49 +4780,6 @@
   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]);
@@ -4817,13 +4795,13 @@
   v->Synchronize(VisitorSynchronization::kTop);
   Relocatable::Iterate(isolate_, v);
   v->Synchronize(VisitorSynchronization::kRelocatable);
+  isolate_->debug()->Iterate(v);
+  v->Synchronize(VisitorSynchronization::kDebug);
 
   isolate_->compilation_cache()->Iterate(v);
   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);
@@ -5064,11 +5042,8 @@
 
 
 int64_t Heap::PromotedExternalMemorySize() {
-  if (amount_of_external_allocated_memory_ <=
-      amount_of_external_allocated_memory_at_last_global_gc_)
-    return 0;
-  return amount_of_external_allocated_memory_ -
-         amount_of_external_allocated_memory_at_last_global_gc_;
+  if (external_memory_ <= external_memory_at_last_mark_compact_) return 0;
+  return external_memory_ - external_memory_at_last_mark_compact_;
 }
 
 
@@ -5242,7 +5217,8 @@
 
 static void InitializeGCOnce() {
   Scavenger::Initialize();
-  StaticScavengeVisitor::Initialize();
+  StaticScavengeVisitor<DEFAULT_PROMOTION>::Initialize();
+  StaticScavengeVisitor<PROMOTE_MARKED>::Initialize();
   MarkCompactCollector::Initialize();
 }
 
@@ -5335,8 +5311,6 @@
 
   scavenge_job_ = new ScavengeJob();
 
-  array_buffer_tracker_ = new ArrayBufferTracker(this);
-
   LOG(isolate_, IntPtrTEvent("heap-capacity", Capacity()));
   LOG(isolate_, IntPtrTEvent("heap-available", Available()));
 
@@ -5399,8 +5373,9 @@
   // All pages right after bootstrapping must be marked as never-evacuate.
   PagedSpaces spaces(this);
   for (PagedSpace* s = spaces.next(); s != NULL; s = spaces.next()) {
-    PageIterator it(s);
-    while (it.has_next()) CHECK(it.next()->NeverEvacuate());
+    for (Page* p : *s) {
+      CHECK(p->NeverEvacuate());
+    }
   }
 #endif  // DEBUG
 }
@@ -5496,9 +5471,6 @@
   delete scavenge_job_;
   scavenge_job_ = nullptr;
 
-  delete array_buffer_tracker_;
-  array_buffer_tracker_ = nullptr;
-
   isolate_->global_handles()->TearDown();
 
   external_string_table_.TearDown();
@@ -5605,6 +5577,33 @@
   return DependentCode::cast(empty_fixed_array());
 }
 
+namespace {
+void CompactWeakFixedArray(Object* object) {
+  if (object->IsWeakFixedArray()) {
+    WeakFixedArray* array = WeakFixedArray::cast(object);
+    array->Compact<WeakFixedArray::NullCallback>();
+  }
+}
+}  // anonymous namespace
+
+void Heap::CompactWeakFixedArrays() {
+  // Find known WeakFixedArrays and compact them.
+  HeapIterator iterator(this);
+  for (HeapObject* o = iterator.next(); o != NULL; o = iterator.next()) {
+    if (o->IsPrototypeInfo()) {
+      Object* prototype_users = PrototypeInfo::cast(o)->prototype_users();
+      if (prototype_users->IsWeakFixedArray()) {
+        WeakFixedArray* array = WeakFixedArray::cast(prototype_users);
+        array->Compact<JSObject::PrototypeRegistryCompactionCallback>();
+      }
+    } else if (o->IsScript()) {
+      CompactWeakFixedArray(Script::cast(o)->shared_function_infos());
+    }
+  }
+  CompactWeakFixedArray(noscript_shared_function_infos());
+  CompactWeakFixedArray(script_list());
+  CompactWeakFixedArray(weak_stack_trace_list());
+}
 
 void Heap::AddRetainedMap(Handle<Map> map) {
   Handle<WeakCell> cell = Map::WeakCellForMap(map);
@@ -5932,14 +5931,14 @@
   // No iterator means we are done.
   if (object_iterator_ == nullptr) return nullptr;
 
-  if (HeapObject* obj = object_iterator_->next_object()) {
+  if (HeapObject* obj = object_iterator_->Next()) {
     // If the current iterator has more objects we are fine.
     return obj;
   } else {
     // Go though the spaces looking for one that has objects.
     while (space_iterator_->has_next()) {
       object_iterator_ = space_iterator_->next();
-      if (HeapObject* obj = object_iterator_->next_object()) {
+      if (HeapObject* obj = object_iterator_->Next()) {
         return obj;
       }
     }
@@ -6231,8 +6230,9 @@
 
 void Heap::ExternalStringTable::CleanUp() {
   int last = 0;
+  Isolate* isolate = heap_->isolate();
   for (int i = 0; i < new_space_strings_.length(); ++i) {
-    if (new_space_strings_[i] == heap_->the_hole_value()) {
+    if (new_space_strings_[i]->IsTheHole(isolate)) {
       continue;
     }
     DCHECK(new_space_strings_[i]->IsExternalString());
@@ -6247,7 +6247,7 @@
 
   last = 0;
   for (int i = 0; i < old_space_strings_.length(); ++i) {
-    if (old_space_strings_[i] == heap_->the_hole_value()) {
+    if (old_space_strings_[i]->IsTheHole(isolate)) {
       continue;
     }
     DCHECK(old_space_strings_[i]->IsExternalString());
diff --git a/src/heap/heap.h b/src/heap/heap.h
index 8fdb64a..ed1e652 100644
--- a/src/heap/heap.h
+++ b/src/heap/heap.h
@@ -28,68 +28,72 @@
 
 // Defines all the roots in Heap.
 #define STRONG_ROOT_LIST(V)                                                    \
-  V(Map, byte_array_map, ByteArrayMap)                                         \
+  /* Cluster the most popular ones in a few cache lines here at the top.    */ \
+  /* The first 32 entries are most often used in the startup snapshot and   */ \
+  /* can use a shorter representation in the serialization format.          */ \
   V(Map, free_space_map, FreeSpaceMap)                                         \
   V(Map, one_pointer_filler_map, OnePointerFillerMap)                          \
   V(Map, two_pointer_filler_map, TwoPointerFillerMap)                          \
-  /* Cluster the most popular ones in a few cache lines here at the top.    */ \
+  V(Oddball, uninitialized_value, UninitializedValue)                          \
   V(Oddball, undefined_value, UndefinedValue)                                  \
   V(Oddball, the_hole_value, TheHoleValue)                                     \
   V(Oddball, null_value, NullValue)                                            \
   V(Oddball, true_value, TrueValue)                                            \
   V(Oddball, false_value, FalseValue)                                          \
   V(String, empty_string, empty_string)                                        \
-  V(Oddball, uninitialized_value, UninitializedValue)                          \
-  V(Map, cell_map, CellMap)                                                    \
-  V(Map, global_property_cell_map, GlobalPropertyCellMap)                      \
-  V(Map, shared_function_info_map, SharedFunctionInfoMap)                      \
   V(Map, meta_map, MetaMap)                                                    \
-  V(Map, heap_number_map, HeapNumberMap)                                       \
-  V(Map, mutable_heap_number_map, MutableHeapNumberMap)                        \
-  V(Map, float32x4_map, Float32x4Map)                                          \
-  V(Map, int32x4_map, Int32x4Map)                                              \
-  V(Map, uint32x4_map, Uint32x4Map)                                            \
-  V(Map, bool32x4_map, Bool32x4Map)                                            \
-  V(Map, int16x8_map, Int16x8Map)                                              \
-  V(Map, uint16x8_map, Uint16x8Map)                                            \
-  V(Map, bool16x8_map, Bool16x8Map)                                            \
-  V(Map, int8x16_map, Int8x16Map)                                              \
-  V(Map, uint8x16_map, Uint8x16Map)                                            \
-  V(Map, bool8x16_map, Bool8x16Map)                                            \
-  V(Map, native_context_map, NativeContextMap)                                 \
+  V(Map, byte_array_map, ByteArrayMap)                                         \
   V(Map, fixed_array_map, FixedArrayMap)                                       \
-  V(Map, code_map, CodeMap)                                                    \
-  V(Map, scope_info_map, ScopeInfoMap)                                         \
   V(Map, fixed_cow_array_map, FixedCOWArrayMap)                                \
-  V(Map, fixed_double_array_map, FixedDoubleArrayMap)                          \
-  V(Map, weak_cell_map, WeakCellMap)                                           \
-  V(Map, transition_array_map, TransitionArrayMap)                             \
+  V(Map, hash_table_map, HashTableMap)                                         \
+  V(Map, symbol_map, SymbolMap)                                                \
   V(Map, one_byte_string_map, OneByteStringMap)                                \
   V(Map, one_byte_internalized_string_map, OneByteInternalizedStringMap)       \
+  V(Map, scope_info_map, ScopeInfoMap)                                         \
+  V(Map, shared_function_info_map, SharedFunctionInfoMap)                      \
+  V(Map, code_map, CodeMap)                                                    \
   V(Map, function_context_map, FunctionContextMap)                             \
+  V(Map, cell_map, CellMap)                                                    \
+  V(Map, weak_cell_map, WeakCellMap)                                           \
+  V(Map, global_property_cell_map, GlobalPropertyCellMap)                      \
+  V(Map, foreign_map, ForeignMap)                                              \
+  V(Map, heap_number_map, HeapNumberMap)                                       \
+  V(Map, transition_array_map, TransitionArrayMap)                             \
+  V(FixedArray, empty_literals_array, EmptyLiteralsArray)                      \
   V(FixedArray, empty_fixed_array, EmptyFixedArray)                            \
-  V(ByteArray, empty_byte_array, EmptyByteArray)                               \
+  V(FixedArray, cleared_optimized_code_map, ClearedOptimizedCodeMap)           \
   V(DescriptorArray, empty_descriptor_array, EmptyDescriptorArray)             \
+  /* Entries beyond the first 32                                            */ \
   /* The roots above this line should be boring from a GC point of view.    */ \
   /* This means they are never in new space and never on a page that is     */ \
   /* being compacted.                                                       */ \
+  /* Oddballs */                                                               \
   V(Oddball, no_interceptor_result_sentinel, NoInterceptorResultSentinel)      \
   V(Oddball, arguments_marker, ArgumentsMarker)                                \
   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)                          \
-  V(Object, instanceof_cache_answer, InstanceofCacheAnswer)                    \
-  V(FixedArray, single_character_string_cache, SingleCharacterStringCache)     \
-  V(FixedArray, string_split_cache, StringSplitCache)                          \
-  V(FixedArray, regexp_multiple_cache, RegExpMultipleCache)                    \
-  V(Smi, hash_seed, HashSeed)                                                  \
-  V(Map, hash_table_map, HashTableMap)                                         \
+  /* Context maps */                                                           \
+  V(Map, native_context_map, NativeContextMap)                                 \
+  V(Map, module_context_map, ModuleContextMap)                                 \
+  V(Map, script_context_map, ScriptContextMap)                                 \
+  V(Map, block_context_map, BlockContextMap)                                   \
+  V(Map, catch_context_map, CatchContextMap)                                   \
+  V(Map, with_context_map, WithContextMap)                                     \
+  V(Map, debug_evaluate_context_map, DebugEvaluateContextMap)                  \
+  V(Map, script_context_table_map, ScriptContextTableMap)                      \
+  /* Maps */                                                                   \
+  V(Map, fixed_double_array_map, FixedDoubleArrayMap)                          \
+  V(Map, mutable_heap_number_map, MutableHeapNumberMap)                        \
   V(Map, ordered_hash_table_map, OrderedHashTableMap)                          \
-  V(Map, symbol_map, SymbolMap)                                                \
+  V(Map, sloppy_arguments_elements_map, SloppyArgumentsElementsMap)            \
+  V(Map, message_object_map, JSMessageObjectMap)                               \
+  V(Map, neander_map, NeanderMap)                                              \
+  V(Map, external_map, ExternalMap)                                            \
+  V(Map, bytecode_array_map, BytecodeArrayMap)                                 \
+  /* String maps */                                                            \
+  V(Map, native_source_string_map, NativeSourceStringMap)                      \
   V(Map, string_map, StringMap)                                                \
   V(Map, cons_one_byte_string_map, ConsOneByteStringMap)                       \
   V(Map, cons_string_map, ConsStringMap)                                       \
@@ -99,7 +103,6 @@
   V(Map, external_string_with_one_byte_data_map,                               \
     ExternalStringWithOneByteDataMap)                                          \
   V(Map, external_one_byte_string_map, ExternalOneByteStringMap)               \
-  V(Map, native_source_string_map, NativeSourceStringMap)                      \
   V(Map, short_external_string_map, ShortExternalStringMap)                    \
   V(Map, short_external_string_with_one_byte_data_map,                         \
     ShortExternalStringWithOneByteDataMap)                                     \
@@ -116,6 +119,7 @@
   V(Map, short_external_one_byte_internalized_string_map,                      \
     ShortExternalOneByteInternalizedStringMap)                                 \
   V(Map, short_external_one_byte_string_map, ShortExternalOneByteStringMap)    \
+  /* Array element maps */                                                     \
   V(Map, fixed_uint8_array_map, FixedUint8ArrayMap)                            \
   V(Map, fixed_int8_array_map, FixedInt8ArrayMap)                              \
   V(Map, fixed_uint16_array_map, FixedUint16ArrayMap)                          \
@@ -125,6 +129,18 @@
   V(Map, fixed_float32_array_map, FixedFloat32ArrayMap)                        \
   V(Map, fixed_float64_array_map, FixedFloat64ArrayMap)                        \
   V(Map, fixed_uint8_clamped_array_map, FixedUint8ClampedArrayMap)             \
+  V(Map, float32x4_map, Float32x4Map)                                          \
+  V(Map, int32x4_map, Int32x4Map)                                              \
+  V(Map, uint32x4_map, Uint32x4Map)                                            \
+  V(Map, bool32x4_map, Bool32x4Map)                                            \
+  V(Map, int16x8_map, Int16x8Map)                                              \
+  V(Map, uint16x8_map, Uint16x8Map)                                            \
+  V(Map, bool16x8_map, Bool16x8Map)                                            \
+  V(Map, int8x16_map, Int8x16Map)                                              \
+  V(Map, uint8x16_map, Uint8x16Map)                                            \
+  V(Map, bool8x16_map, Bool8x16Map)                                            \
+  /* Canonical empty values */                                                 \
+  V(ByteArray, empty_byte_array, EmptyByteArray)                               \
   V(FixedTypedArrayBase, empty_fixed_uint8_array, EmptyFixedUint8Array)        \
   V(FixedTypedArrayBase, empty_fixed_int8_array, EmptyFixedInt8Array)          \
   V(FixedTypedArrayBase, empty_fixed_uint16_array, EmptyFixedUint16Array)      \
@@ -135,14 +151,57 @@
   V(FixedTypedArrayBase, empty_fixed_float64_array, EmptyFixedFloat64Array)    \
   V(FixedTypedArrayBase, empty_fixed_uint8_clamped_array,                      \
     EmptyFixedUint8ClampedArray)                                               \
-  V(Map, sloppy_arguments_elements_map, SloppyArgumentsElementsMap)            \
-  V(Map, catch_context_map, CatchContextMap)                                   \
-  V(Map, with_context_map, WithContextMap)                                     \
-  V(Map, debug_evaluate_context_map, DebugEvaluateContextMap)                  \
-  V(Map, block_context_map, BlockContextMap)                                   \
-  V(Map, module_context_map, ModuleContextMap)                                 \
-  V(Map, script_context_map, ScriptContextMap)                                 \
-  V(Map, script_context_table_map, ScriptContextTableMap)                      \
+  V(Script, empty_script, EmptyScript)                                         \
+  V(Cell, undefined_cell, UndefinedCell)                                       \
+  V(FixedArray, empty_sloppy_arguments_elements, EmptySloppyArgumentsElements) \
+  V(SeededNumberDictionary, empty_slow_element_dictionary,                     \
+    EmptySlowElementDictionary)                                                \
+  V(TypeFeedbackVector, dummy_vector, DummyVector)                             \
+  V(PropertyCell, empty_property_cell, EmptyPropertyCell)                      \
+  V(WeakCell, empty_weak_cell, EmptyWeakCell)                                  \
+  /* Protectors */                                                             \
+  V(PropertyCell, array_protector, ArrayProtector)                             \
+  V(Cell, is_concat_spreadable_protector, IsConcatSpreadableProtector)         \
+  V(PropertyCell, has_instance_protector, HasInstanceProtector)                \
+  V(Cell, species_protector, SpeciesProtector)                                 \
+  /* Special numbers */                                                        \
+  V(HeapNumber, nan_value, NanValue)                                           \
+  V(HeapNumber, infinity_value, InfinityValue)                                 \
+  V(HeapNumber, minus_zero_value, MinusZeroValue)                              \
+  V(HeapNumber, minus_infinity_value, MinusInfinityValue)                      \
+  /* Caches */                                                                 \
+  V(FixedArray, number_string_cache, NumberStringCache)                        \
+  V(FixedArray, single_character_string_cache, SingleCharacterStringCache)     \
+  V(FixedArray, string_split_cache, StringSplitCache)                          \
+  V(FixedArray, regexp_multiple_cache, RegExpMultipleCache)                    \
+  V(Object, instanceof_cache_function, InstanceofCacheFunction)                \
+  V(Object, instanceof_cache_map, InstanceofCacheMap)                          \
+  V(Object, instanceof_cache_answer, InstanceofCacheAnswer)                    \
+  V(FixedArray, natives_source_cache, NativesSourceCache)                      \
+  V(FixedArray, experimental_natives_source_cache,                             \
+    ExperimentalNativesSourceCache)                                            \
+  V(FixedArray, extra_natives_source_cache, ExtraNativesSourceCache)           \
+  V(FixedArray, experimental_extra_natives_source_cache,                       \
+    ExperimentalExtraNativesSourceCache)                                       \
+  /* Lists and dictionaries */                                                 \
+  V(NameDictionary, intrinsic_function_names, IntrinsicFunctionNames)          \
+  V(NameDictionary, empty_properties_dictionary, EmptyPropertiesDictionary)    \
+  V(Object, symbol_registry, SymbolRegistry)                                   \
+  V(Object, script_list, ScriptList)                                           \
+  V(UnseededNumberDictionary, code_stubs, CodeStubs)                           \
+  V(FixedArray, materialized_objects, MaterializedObjects)                     \
+  V(FixedArray, microtask_queue, MicrotaskQueue)                               \
+  V(FixedArray, detached_contexts, DetachedContexts)                           \
+  V(ArrayList, retained_maps, RetainedMaps)                                    \
+  V(WeakHashTable, weak_object_to_code_table, WeakObjectToCodeTable)           \
+  V(Object, weak_stack_trace_list, WeakStackTraceList)                         \
+  V(Object, noscript_shared_function_infos, NoScriptSharedFunctionInfos)       \
+  V(FixedArray, serialized_templates, SerializedTemplates)                     \
+  /* Configured values */                                                      \
+  V(JSObject, message_listeners, MessageListeners)                             \
+  V(Code, js_entry_code, JsEntryCode)                                          \
+  V(Code, js_construct_entry_code, JsConstructEntryCode)                       \
+  /* Oddball maps */                                                           \
   V(Map, undefined_map, UndefinedMap)                                          \
   V(Map, the_hole_map, TheHoleMap)                                             \
   V(Map, null_map, NullMap)                                                    \
@@ -153,59 +212,21 @@
   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)                                              \
-  V(Map, external_map, ExternalMap)                                            \
-  V(HeapNumber, nan_value, NanValue)                                           \
-  V(HeapNumber, infinity_value, InfinityValue)                                 \
-  V(HeapNumber, minus_zero_value, MinusZeroValue)                              \
-  V(HeapNumber, minus_infinity_value, MinusInfinityValue)                      \
-  V(JSObject, message_listeners, MessageListeners)                             \
-  V(UnseededNumberDictionary, code_stubs, CodeStubs)                           \
-  V(Code, js_entry_code, JsEntryCode)                                          \
-  V(Code, js_construct_entry_code, JsConstructEntryCode)                       \
-  V(FixedArray, natives_source_cache, NativesSourceCache)                      \
-  V(FixedArray, experimental_natives_source_cache,                             \
-    ExperimentalNativesSourceCache)                                            \
-  V(FixedArray, extra_natives_source_cache, ExtraNativesSourceCache)           \
-  V(FixedArray, experimental_extra_natives_source_cache,                       \
-    ExperimentalExtraNativesSourceCache)                                       \
-  V(Script, empty_script, EmptyScript)                                         \
-  V(NameDictionary, intrinsic_function_names, IntrinsicFunctionNames)          \
-  V(NameDictionary, empty_properties_dictionary, EmptyPropertiesDictionary)    \
-  V(Cell, undefined_cell, UndefinedCell)                                       \
-  V(Object, symbol_registry, SymbolRegistry)                                   \
-  V(Object, script_list, ScriptList)                                           \
-  V(SeededNumberDictionary, empty_slow_element_dictionary,                     \
-    EmptySlowElementDictionary)                                                \
-  V(FixedArray, materialized_objects, MaterializedObjects)                     \
-  V(FixedArray, microtask_queue, MicrotaskQueue)                               \
-  V(TypeFeedbackVector, dummy_vector, DummyVector)                             \
-  V(FixedArray, cleared_optimized_code_map, ClearedOptimizedCodeMap)           \
-  V(FixedArray, detached_contexts, DetachedContexts)                           \
-  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, has_instance_protector, HasInstanceProtector)                \
-  V(Cell, species_protector, SpeciesProtector)
+  V(Map, stale_register_map, StaleRegisterMap)
 
 // Entries in this list are limited to Smis and are not visited during GC.
-#define SMI_ROOT_LIST(V)                                                   \
-  V(Smi, stack_limit, StackLimit)                                          \
-  V(Smi, real_stack_limit, RealStackLimit)                                 \
-  V(Smi, last_script_id, LastScriptId)                                     \
-  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)             \
+#define SMI_ROOT_LIST(V)                                                       \
+  V(Smi, stack_limit, StackLimit)                                              \
+  V(Smi, real_stack_limit, RealStackLimit)                                     \
+  V(Smi, last_script_id, LastScriptId)                                         \
+  V(Smi, hash_seed, HashSeed)                                                  \
+  /* To distinguish the function templates, so that we can find them in the */ \
+  /* function cache of the native context. */                                  \
+  V(Smi, next_template_serial_number, NextTemplateSerialNumber)                \
+  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, interpreter_entry_return_pc_offset, InterpreterEntryReturnPCOffset)
 
 #define ROOT_LIST(V)  \
@@ -301,6 +322,8 @@
 class ScavengeJob;
 class WeakObjectRetainer;
 
+enum PromotionMode { PROMOTE_MARKED, DEFAULT_PROMOTION };
+
 typedef void (*ObjectSlotCallback)(HeapObject** from, HeapObject* to);
 
 // A queue of objects promoted during scavenge. Each object is accompanied
@@ -603,6 +626,12 @@
   // stored on the map to facilitate fast dispatch for {StaticVisitorBase}.
   static int GetStaticVisitorIdForMap(Map* map);
 
+  // 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).
+  inline bool PurgeLeftTrimmedObject(Object** object);
+
   // Notifies the heap that is ok to start marking or other activities that
   // should not happen during deserialization.
   void NotifyDeserializationComplete();
@@ -774,8 +803,11 @@
 
   // An object should be promoted if the object has survived a
   // scavenge operation.
+  template <PromotionMode promotion_mode>
   inline bool ShouldBePromoted(Address old_address, int object_size);
 
+  inline PromotionMode CurrentPromotionMode();
+
   void ClearNormalizedMapCaches();
 
   void IncrementDeferredCount(v8::Isolate::UseCounterFeature feature);
@@ -795,6 +827,9 @@
   inline void SetGetterStubDeoptPCOffset(int pc_offset);
   inline void SetSetterStubDeoptPCOffset(int pc_offset);
   inline void SetInterpreterEntryReturnPCOffset(int pc_offset);
+  inline int GetNextTemplateSerialNumber();
+
+  inline void SetSerializedTemplates(FixedArray* templates);
 
   // For post mortem debugging.
   void RememberUnmappedPage(Address page, bool compacted);
@@ -807,12 +842,16 @@
     global_ic_age_ = (global_ic_age_ + 1) & SharedFunctionInfo::ICAgeBits::kMax;
   }
 
-  int64_t amount_of_external_allocated_memory() {
-    return amount_of_external_allocated_memory_;
+  int64_t external_memory() { return external_memory_; }
+  void update_external_memory(int64_t delta) { external_memory_ += delta; }
+
+  void update_external_memory_concurrently_freed(intptr_t freed) {
+    external_memory_concurrently_freed_.Increment(freed);
   }
 
-  void update_amount_of_external_allocated_memory(int64_t delta) {
-    amount_of_external_allocated_memory_ += delta;
+  void account_external_memory_concurrently_freed() {
+    external_memory_ -= external_memory_concurrently_freed_.Value();
+    external_memory_concurrently_freed_.SetValue(0);
   }
 
   void DeoptMarkedAllocationSites();
@@ -826,6 +865,8 @@
 
   DependentCode* LookupWeakObjectToCodeDependency(Handle<HeapObject> obj);
 
+  void CompactWeakFixedArrays();
+
   void AddRetainedMap(Handle<Map> map);
 
   // This event is triggered after successful allocation of a new object made
@@ -1168,6 +1209,13 @@
                          const char** object_sub_type);
 
   // ===========================================================================
+  // Code statistics. ==========================================================
+  // ===========================================================================
+
+  // Collect code (Code and BytecodeArray objects) statistics.
+  void CollectCodeStatistics();
+
+  // ===========================================================================
   // GC statistics. ============================================================
   // ===========================================================================
 
@@ -1342,10 +1390,6 @@
   void RegisterNewArrayBuffer(JSArrayBuffer* buffer);
   void UnregisterArrayBuffer(JSArrayBuffer* buffer);
 
-  inline ArrayBufferTracker* array_buffer_tracker() {
-    return array_buffer_tracker_;
-  }
-
   // ===========================================================================
   // Allocation site tracking. =================================================
   // ===========================================================================
@@ -1357,7 +1401,7 @@
   // value) is cached on the local pretenuring feedback.
   template <UpdateAllocationSiteMode mode>
   inline void UpdateAllocationSite(HeapObject* object,
-                                   HashMap* pretenuring_feedback);
+                                   base::HashMap* pretenuring_feedback);
 
   // Removes an entry from the global pretenuring storage.
   inline void RemoveAllocationSitePretenuringFeedback(AllocationSite* site);
@@ -1366,7 +1410,7 @@
   // method needs to be called after evacuation, as allocation sites may be
   // evacuated and this method resolves forward pointers accordingly.
   void MergeAllocationSitePretenuringFeedback(
-      const HashMap& local_pretenuring_feedback);
+      const base::HashMap& local_pretenuring_feedback);
 
 // =============================================================================
 
@@ -1683,7 +1727,8 @@
   // Performs a minor collection in new generation.
   void Scavenge();
 
-  Address DoScavenge(ObjectVisitor* scavenge_visitor, Address new_space_front);
+  Address DoScavenge(ObjectVisitor* scavenge_visitor, Address new_space_front,
+                     PromotionMode promotion_mode);
 
   void UpdateNewSpaceReferencesInExternalStringTable(
       ExternalStringTableUpdaterCallback updater_func);
@@ -1808,11 +1853,6 @@
   AllocateBytecodeArray(int length, const byte* raw_bytecodes, int frame_size,
                         int parameter_count, FixedArray* constant_pool);
 
-  // Copy the code and scope info part of the code object, but insert
-  // the provided data as the relocation information.
-  MUST_USE_RESULT AllocationResult CopyCode(Code* code,
-                                            Vector<byte> reloc_info);
-
   MUST_USE_RESULT AllocationResult CopyCode(Code* code);
 
   MUST_USE_RESULT AllocationResult
@@ -1972,12 +2012,17 @@
 
   void set_force_oom(bool value) { force_oom_ = value; }
 
-  // The amount of external memory registered through the API kept alive
-  // by global handles
-  int64_t amount_of_external_allocated_memory_;
+  // The amount of external memory registered through the API.
+  int64_t external_memory_;
 
-  // Caches the amount of external memory registered at the last global gc.
-  int64_t amount_of_external_allocated_memory_at_last_global_gc_;
+  // The limit when to trigger memory pressure from the API.
+  int64_t external_memory_limit_;
+
+  // Caches the amount of external memory registered at the last MC.
+  int64_t external_memory_at_last_mark_compact_;
+
+  // The amount of memory that has been freed concurrently.
+  base::AtomicNumber<intptr_t> external_memory_concurrently_freed_;
 
   // This can be calculated directly from a pointer to the heap; however, it is
   // more expedient to get at the isolate directly from within Heap methods.
@@ -2184,7 +2229,7 @@
   // storage is only alive temporary during a GC. The invariant is that all
   // pointers in this map are already fixed, i.e., they do not point to
   // forwarding pointers.
-  HashMap* global_pretenuring_feedback_;
+  base::HashMap* global_pretenuring_feedback_;
 
   char trace_ring_buffer_[kTraceRingBufferSize];
   // If it's not full then the data is from 0 to ring_buffer_end_.  If it's
@@ -2217,8 +2262,6 @@
 
   StrongRootsList* strong_roots_list_;
 
-  ArrayBufferTracker* array_buffer_tracker_;
-
   // The depth of HeapIterator nestings.
   int heap_iterator_depth_;
 
@@ -2236,7 +2279,7 @@
   friend class MarkCompactCollector;
   friend class MarkCompactMarkingVisitor;
   friend class NewSpace;
-  friend class ObjectStatsVisitor;
+  friend class ObjectStatsCollector;
   friend class Page;
   friend class Scavenger;
   friend class StoreBuffer;
diff --git a/src/heap/incremental-marking.cc b/src/heap/incremental-marking.cc
index c250b90..f578d43 100644
--- a/src/heap/incremental-marking.cc
+++ b/src/heap/incremental-marking.cc
@@ -10,8 +10,9 @@
 #include "src/heap/gc-idle-time-handler.h"
 #include "src/heap/gc-tracer.h"
 #include "src/heap/mark-compact-inl.h"
-#include "src/heap/objects-visiting.h"
+#include "src/heap/object-stats.h"
 #include "src/heap/objects-visiting-inl.h"
+#include "src/heap/objects-visiting.h"
 #include "src/tracing/trace-event.h"
 #include "src/v8.h"
 
@@ -175,6 +176,9 @@
     table_.Register(kVisitFixedArray, &VisitFixedArrayIncremental);
     table_.Register(kVisitNativeContext, &VisitNativeContextIncremental);
     table_.Register(kVisitJSRegExp, &VisitJSRegExp);
+    if (FLAG_track_gc_object_stats) {
+      IncrementalMarkingObjectStatsVisitor::Initialize(&table_);
+    }
   }
 
   static const int kProgressBarScanningChunk = 32 * 1024;
@@ -231,7 +235,7 @@
     // Note that GC can happen when the context is not fully initialized,
     // so the cache can be undefined.
     Object* cache = context->get(Context::NORMALIZED_MAP_CACHE_INDEX);
-    if (!cache->IsUndefined()) {
+    if (!cache->IsUndefined(map->GetIsolate())) {
       MarkObjectGreyDoNotEnqueue(cache);
     }
     VisitNativeContext(map, context);
@@ -341,9 +345,7 @@
 
 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace(
     PagedSpace* space) {
-  PageIterator it(space);
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     SetOldSpacePageFlags(p, false, false);
   }
 }
@@ -351,9 +353,7 @@
 
 void IncrementalMarking::DeactivateIncrementalWriteBarrierForSpace(
     NewSpace* space) {
-  NewSpacePageIterator it(space);
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     SetNewSpacePageFlags(p, false);
   }
 }
@@ -365,27 +365,21 @@
   DeactivateIncrementalWriteBarrierForSpace(heap_->code_space());
   DeactivateIncrementalWriteBarrierForSpace(heap_->new_space());
 
-  LargePage* lop = heap_->lo_space()->first_page();
-  while (LargePage::IsValid(lop)) {
+  for (LargePage* lop : *heap_->lo_space()) {
     SetOldSpacePageFlags(lop, false, false);
-    lop = lop->next_page();
   }
 }
 
 
 void IncrementalMarking::ActivateIncrementalWriteBarrier(PagedSpace* space) {
-  PageIterator it(space);
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     SetOldSpacePageFlags(p, true, is_compacting_);
   }
 }
 
 
 void IncrementalMarking::ActivateIncrementalWriteBarrier(NewSpace* space) {
-  NewSpacePageIterator it(space->ToSpaceStart(), space->ToSpaceEnd());
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     SetNewSpacePageFlags(p, true);
   }
 }
@@ -397,10 +391,8 @@
   ActivateIncrementalWriteBarrier(heap_->code_space());
   ActivateIncrementalWriteBarrier(heap_->new_space());
 
-  LargePage* lop = heap_->lo_space()->first_page();
-  while (LargePage::IsValid(lop)) {
+  for (LargePage* lop : *heap_->lo_space()) {
     SetOldSpacePageFlags(lop, true, is_compacting_);
-    lop = lop->next_page();
   }
 }
 
@@ -469,9 +461,10 @@
   UnseededNumberDictionary* stubs = heap->code_stubs();
 
   int capacity = stubs->Capacity();
+  Isolate* isolate = heap->isolate();
   for (int i = 0; i < capacity; i++) {
     Object* k = stubs->KeyAt(i);
-    if (stubs->IsKey(k)) {
+    if (stubs->IsKey(isolate, k)) {
       uint32_t key = NumberToUint32(k);
 
       if (CodeStub::MajorKeyFromKey(key) == CodeStub::RecordWrite) {
@@ -537,6 +530,10 @@
 
   state_ = MARKING;
 
+  if (heap_->UsingEmbedderHeapTracer()) {
+    heap_->mark_compact_collector()->embedder_heap_tracer()->TracePrologue();
+  }
+
   RecordWriteStub::Mode mode = is_compacting_
                                    ? RecordWriteStub::INCREMENTAL_COMPACTION
                                    : RecordWriteStub::INCREMENTAL;
@@ -930,12 +927,12 @@
   }
 
   Object* context = heap_->native_contexts_list();
-  while (!context->IsUndefined()) {
+  while (!context->IsUndefined(heap_->isolate())) {
     // GC can happen when the context is not fully initialized,
     // so the cache can be undefined.
     HeapObject* cache = HeapObject::cast(
         Context::cast(context)->get(Context::NORMALIZED_MAP_CACHE_INDEX));
-    if (!cache->IsUndefined()) {
+    if (!cache->IsUndefined(heap_->isolate())) {
       MarkBit mark_bit = Marking::MarkBitFrom(cache);
       if (Marking::IsGrey(mark_bit)) {
         Marking::GreyToBlack(mark_bit);
diff --git a/src/heap/incremental-marking.h b/src/heap/incremental-marking.h
index 9c5a3b5..5f5a1de 100644
--- a/src/heap/incremental-marking.h
+++ b/src/heap/incremental-marking.h
@@ -215,6 +215,8 @@
 
   bool black_allocation() { return black_allocation_; }
 
+  void StartBlackAllocationForTesting() { StartBlackAllocation(); }
+
  private:
   class Observer : public AllocationObserver {
    public:
diff --git a/src/heap/mark-compact-inl.h b/src/heap/mark-compact-inl.h
index 455f443..8ecdd62 100644
--- a/src/heap/mark-compact-inl.h
+++ b/src/heap/mark-compact-inl.h
@@ -79,7 +79,7 @@
 
 void CodeFlusher::AddCandidate(JSFunction* function) {
   DCHECK(function->code() == function->shared()->code());
-  if (function->next_function_link()->IsUndefined()) {
+  if (function->next_function_link()->IsUndefined(isolate_)) {
     SetNextCandidate(function, jsfunction_candidates_head_);
     jsfunction_candidates_head_ = function;
   }
@@ -105,7 +105,7 @@
 
 
 void CodeFlusher::ClearNextCandidate(JSFunction* candidate, Object* undefined) {
-  DCHECK(undefined->IsUndefined());
+  DCHECK(undefined->IsUndefined(candidate->GetIsolate()));
   candidate->set_next_function_link(undefined, SKIP_WRITE_BARRIER);
 }
 
diff --git a/src/heap/mark-compact.cc b/src/heap/mark-compact.cc
index b2ae93d..f9a55df 100644
--- a/src/heap/mark-compact.cc
+++ b/src/heap/mark-compact.cc
@@ -25,7 +25,6 @@
 #include "src/heap/spaces-inl.h"
 #include "src/ic/ic.h"
 #include "src/ic/stub-cache.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/utils-inl.h"
 #include "src/v8.h"
 
@@ -132,13 +131,14 @@
 
 static void VerifyMarking(NewSpace* space) {
   Address end = space->top();
-  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(), Page::FromAddress(space->bottom())->area_start());
-  while (it.has_next()) {
-    Page* page = it.next();
-    Address limit = it.has_next() ? page->area_end() : end;
+
+  NewSpacePageRange range(space->bottom(), end);
+  for (auto it = range.begin(); it != range.end();) {
+    Page* page = *(it++);
+    Address limit = it != range.end() ? page->area_end() : end;
     CHECK(limit == end || !page->Contains(end));
     VerifyMarking(space->heap(), page->area_start(), limit);
   }
@@ -146,10 +146,7 @@
 
 
 static void VerifyMarking(PagedSpace* space) {
-  PageIterator it(space);
-
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     if (p->IsFlagSet(Page::BLACK_PAGE)) {
       VerifyMarkingBlackPage(space->heap(), p);
     } else {
@@ -205,13 +202,12 @@
 
 
 static void VerifyEvacuation(NewSpace* space) {
-  NewSpacePageIterator it(space->bottom(), space->top());
   VerifyEvacuationVisitor visitor;
-
-  while (it.has_next()) {
-    Page* page = it.next();
+  NewSpacePageRange range(space->bottom(), space->top());
+  for (auto it = range.begin(); it != range.end();) {
+    Page* page = *(it++);
     Address current = page->area_start();
-    Address limit = it.has_next() ? page->area_end() : space->top();
+    Address limit = it != range.end() ? page->area_end() : space->top();
     CHECK(limit == space->top() || !page->Contains(space->top()));
     while (current < limit) {
       HeapObject* object = HeapObject::FromAddress(current);
@@ -226,10 +222,7 @@
   if (FLAG_use_allocation_folding && (space == heap->old_space())) {
     return;
   }
-  PageIterator it(space);
-
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     if (p->IsEvacuationCandidate()) continue;
     VerifyEvacuation(p);
   }
@@ -361,10 +354,7 @@
 
 #ifdef VERIFY_HEAP
 void MarkCompactCollector::VerifyMarkbitsAreClean(PagedSpace* space) {
-  PageIterator it(space);
-
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     CHECK(p->markbits()->IsClean());
     CHECK_EQ(0, p->LiveBytes());
   }
@@ -372,10 +362,7 @@
 
 
 void MarkCompactCollector::VerifyMarkbitsAreClean(NewSpace* space) {
-  NewSpacePageIterator it(space->bottom(), space->top());
-
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : NewSpacePageRange(space->bottom(), space->top())) {
     CHECK(p->markbits()->IsClean());
     CHECK_EQ(0, p->LiveBytes());
   }
@@ -420,10 +407,7 @@
 
 
 static void ClearMarkbitsInPagedSpace(PagedSpace* space) {
-  PageIterator it(space);
-
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     Bitmap::Clear(p);
     if (p->IsFlagSet(Page::BLACK_PAGE)) {
       p->ClearFlag(Page::BLACK_PAGE);
@@ -433,10 +417,8 @@
 
 
 static void ClearMarkbitsInNewSpace(NewSpace* space) {
-  NewSpacePageIterator it(space->ToSpaceStart(), space->ToSpaceEnd());
-
-  while (it.has_next()) {
-    Bitmap::Clear(it.next());
+  for (Page* page : *space) {
+    Bitmap::Clear(page);
   }
 }
 
@@ -472,13 +454,13 @@
  private:
   // v8::Task overrides.
   void Run() override {
-    DCHECK_GE(space_to_start_, FIRST_PAGED_SPACE);
+    DCHECK_GE(space_to_start_, FIRST_SPACE);
     DCHECK_LE(space_to_start_, LAST_PAGED_SPACE);
-    const int offset = space_to_start_ - FIRST_PAGED_SPACE;
-    const int num_spaces = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1;
+    const int offset = space_to_start_ - FIRST_SPACE;
+    const int num_spaces = LAST_PAGED_SPACE - FIRST_SPACE + 1;
     for (int i = 0; i < num_spaces; i++) {
-      const int space_id = FIRST_PAGED_SPACE + ((i + offset) % num_spaces);
-      DCHECK_GE(space_id, FIRST_PAGED_SPACE);
+      const int space_id = FIRST_SPACE + ((i + offset) % num_spaces);
+      DCHECK_GE(space_id, FIRST_SPACE);
       DCHECK_LE(space_id, LAST_PAGED_SPACE);
       sweeper_->ParallelSweepSpace(static_cast<AllocationSpace>(space_id), 0);
     }
@@ -508,7 +490,7 @@
 
 void MarkCompactCollector::Sweeper::StartSweepingHelper(
     AllocationSpace space_to_start) {
-  num_sweeping_tasks_++;
+  num_sweeping_tasks_.Increment(1);
   V8::GetCurrentPlatform()->CallOnBackgroundThread(
       new SweeperTask(this, &pending_sweeper_tasks_semaphore_, space_to_start),
       v8::Platform::kShortRunningTask);
@@ -516,9 +498,8 @@
 
 void MarkCompactCollector::Sweeper::SweepOrWaitUntilSweepingCompleted(
     Page* page) {
-  PagedSpace* owner = reinterpret_cast<PagedSpace*>(page->owner());
   if (!page->SweepingDone()) {
-    ParallelSweepPage(page, owner);
+    ParallelSweepPage(page, page->owner()->identity());
     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
@@ -555,18 +536,31 @@
   }
 
   if (FLAG_concurrent_sweeping) {
-    while (num_sweeping_tasks_ > 0) {
+    while (num_sweeping_tasks_.Value() > 0) {
       pending_sweeper_tasks_semaphore_.Wait();
-      num_sweeping_tasks_--;
+      num_sweeping_tasks_.Increment(-1);
     }
   }
 
-  ForAllSweepingSpaces(
-      [this](AllocationSpace space) { DCHECK(sweeping_list_[space].empty()); });
+  ForAllSweepingSpaces([this](AllocationSpace space) {
+    if (space == NEW_SPACE) {
+      swept_list_[NEW_SPACE].Clear();
+    }
+    DCHECK(sweeping_list_[space].empty());
+  });
   late_pages_ = false;
   sweeping_in_progress_ = false;
 }
 
+void MarkCompactCollector::Sweeper::EnsureNewSpaceCompleted() {
+  if (!sweeping_in_progress_) return;
+  if (!FLAG_concurrent_sweeping || !IsSweepingCompleted()) {
+    for (Page* p : *heap_->new_space()) {
+      SweepOrWaitUntilSweepingCompleted(p);
+    }
+  }
+}
+
 void MarkCompactCollector::EnsureSweepingCompleted() {
   if (!sweeper().sweeping_in_progress()) return;
 
@@ -583,12 +577,11 @@
 }
 
 bool MarkCompactCollector::Sweeper::IsSweepingCompleted() {
-  if (!pending_sweeper_tasks_semaphore_.WaitFor(
-          base::TimeDelta::FromSeconds(0))) {
-    return false;
+  while (pending_sweeper_tasks_semaphore_.WaitFor(
+      base::TimeDelta::FromSeconds(0))) {
+    num_sweeping_tasks_.Increment(-1);
   }
-  pending_sweeper_tasks_semaphore_.Signal();
-  return true;
+  return num_sweeping_tasks_.Value() == 0;
 }
 
 void Marking::TransferMark(Heap* heap, Address old_start, Address new_start) {
@@ -703,9 +696,7 @@
   std::vector<LiveBytesPagePair> pages;
   pages.reserve(number_of_pages);
 
-  PageIterator it(space);
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     if (p->NeverEvacuate()) continue;
     if (p->IsFlagSet(Page::BLACK_PAGE)) continue;
     // Invariant: Evacuation candidates are just created when marking is
@@ -858,9 +849,22 @@
     AbortWeakCells();
     AbortTransitionArrays();
     AbortCompaction();
+    if (heap_->UsingEmbedderHeapTracer()) {
+      heap_->mark_compact_collector()->embedder_heap_tracer()->AbortTracing();
+    }
     was_marked_incrementally_ = false;
   }
 
+  if (!was_marked_incrementally_) {
+    if (heap_->UsingEmbedderHeapTracer()) {
+      heap_->mark_compact_collector()->embedder_heap_tracer()->TracePrologue();
+    }
+  }
+
+  if (UsingEmbedderHeapTracer()) {
+    embedder_heap_tracer()->EnterFinalPause();
+  }
+
   // Don't start compaction if we are in the middle of incremental
   // marking cycle. We did not collect any slots.
   if (!FLAG_never_compact && !was_marked_incrementally_) {
@@ -872,6 +876,7 @@
        space = spaces.next()) {
     space->PrepareForMarkCompact();
   }
+  heap()->account_external_memory_concurrently_freed();
 
 #ifdef VERIFY_HEAP
   if (!was_marked_incrementally_ && FLAG_verify_heap) {
@@ -1074,7 +1079,7 @@
 
 
 void CodeFlusher::EvictCandidate(JSFunction* function) {
-  DCHECK(!function->next_function_link()->IsUndefined());
+  DCHECK(!function->next_function_link()->IsUndefined(isolate_));
   Object* undefined = isolate_->heap()->undefined_value();
 
   // Make sure previous flushing decisions are revisited.
@@ -1299,7 +1304,7 @@
   table_.Register(kVisitJSRegExp, &VisitRegExpAndFlushCode);
 
   if (FLAG_track_gc_object_stats) {
-    ObjectStatsVisitor::Initialize(&table_);
+    MarkCompactObjectStatsVisitor::Initialize(&table_);
   }
 }
 
@@ -1408,6 +1413,8 @@
 
     HeapObject* object = HeapObject::cast(*p);
 
+    if (collector_->heap()->PurgeLeftTrimmedObject(p)) return;
+
     MarkBit mark_bit = Marking::MarkBitFrom(object);
     if (Marking::IsBlackOrGrey(mark_bit)) return;
 
@@ -1535,6 +1542,9 @@
 
 class RecordMigratedSlotVisitor final : public ObjectVisitor {
  public:
+  explicit RecordMigratedSlotVisitor(MarkCompactCollector* collector)
+      : collector_(collector) {}
+
   inline void VisitPointer(Object** p) final {
     RecordMigratedSlot(*p, reinterpret_cast<Address>(p));
   }
@@ -1550,10 +1560,59 @@
     Address code_entry = Memory::Address_at(code_entry_slot);
     if (Page::FromAddress(code_entry)->IsEvacuationCandidate()) {
       RememberedSet<OLD_TO_OLD>::InsertTyped(Page::FromAddress(code_entry_slot),
-                                             CODE_ENTRY_SLOT, code_entry_slot);
+                                             nullptr, CODE_ENTRY_SLOT,
+                                             code_entry_slot);
     }
   }
 
+  inline void VisitCodeTarget(RelocInfo* rinfo) final {
+    DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode()));
+    Code* target = Code::GetCodeFromTargetAddress(rinfo->target_address());
+    Code* host = rinfo->host();
+    collector_->RecordRelocSlot(host, rinfo, target);
+  }
+
+  inline void VisitDebugTarget(RelocInfo* rinfo) final {
+    DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
+           rinfo->IsPatchedDebugBreakSlotSequence());
+    Code* target = Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
+    Code* host = rinfo->host();
+    collector_->RecordRelocSlot(host, rinfo, target);
+  }
+
+  inline void VisitEmbeddedPointer(RelocInfo* rinfo) final {
+    DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
+    HeapObject* object = HeapObject::cast(rinfo->target_object());
+    Code* host = rinfo->host();
+    collector_->RecordRelocSlot(host, rinfo, object);
+  }
+
+  inline void VisitCell(RelocInfo* rinfo) final {
+    DCHECK(rinfo->rmode() == RelocInfo::CELL);
+    Cell* cell = rinfo->target_cell();
+    Code* host = rinfo->host();
+    collector_->RecordRelocSlot(host, rinfo, cell);
+  }
+
+  // Entries that will never move.
+  inline void VisitCodeAgeSequence(RelocInfo* rinfo) final {
+    DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode()));
+    Code* stub = rinfo->code_age_stub();
+    USE(stub);
+    DCHECK(!Page::FromAddress(stub->address())->IsEvacuationCandidate());
+  }
+
+  // Entries that are skipped for recording.
+  inline void VisitExternalReference(RelocInfo* rinfo) final {}
+  inline void VisitExternalReference(Address* p) final {}
+  inline void VisitRuntimeEntry(RelocInfo* rinfo) final {}
+  inline void VisitExternalOneByteString(
+      v8::String::ExternalOneByteStringResource** resource) final {}
+  inline void VisitExternalTwoByteString(
+      v8::String::ExternalStringResource** resource) final {}
+  inline void VisitInternalReference(RelocInfo* rinfo) final {}
+  inline void VisitEmbedderReference(Object** p, uint16_t class_id) final {}
+
  private:
   inline void RecordMigratedSlot(Object* value, Address slot) {
     if (value->IsHeapObject()) {
@@ -1565,6 +1624,8 @@
       }
     }
   }
+
+  MarkCompactCollector* collector_;
 };
 
 class MarkCompactCollector::HeapObjectVisitor {
@@ -1582,12 +1643,15 @@
       : heap_(heap),
         compaction_spaces_(compaction_spaces),
         profiling_(
-            heap->isolate()->cpu_profiler()->is_profiling() ||
+            heap->isolate()->is_profiling() ||
             heap->isolate()->logger()->is_logging_code_events() ||
             heap->isolate()->heap_profiler()->is_tracking_object_moves()) {}
 
   inline bool TryEvacuateObject(PagedSpace* target_space, HeapObject* object,
                                 HeapObject** target_object) {
+#ifdef VERIFY_HEAP
+    if (AbortCompactionForTesting(object)) return false;
+#endif  // VERIFY_HEAP
     int size = object->Size();
     AllocationAlignment alignment = object->RequiredAlignment();
     AllocationResult allocation = target_space->AllocateRaw(size, alignment);
@@ -1622,7 +1686,7 @@
         PROFILE(heap_->isolate(),
                 CodeMoveEvent(AbstractCode::cast(src), dst_addr));
       }
-      RecordMigratedSlotVisitor visitor;
+      RecordMigratedSlotVisitor visitor(heap_->mark_compact_collector());
       dst->IterateBodyFast(dst->map()->instance_type(), size, &visitor);
     } else if (dest == CODE_SPACE) {
       DCHECK_CODEOBJECT_SIZE(size, heap_->code_space());
@@ -1631,9 +1695,9 @@
                 CodeMoveEvent(AbstractCode::cast(src), dst_addr));
       }
       heap_->CopyBlock(dst_addr, src_addr, size);
-      RememberedSet<OLD_TO_OLD>::InsertTyped(Page::FromAddress(dst_addr),
-                                             RELOCATED_CODE_OBJECT, dst_addr);
       Code::cast(dst)->Relocate(dst_addr - src_addr);
+      RecordMigratedSlotVisitor visitor(heap_->mark_compact_collector());
+      dst->IterateBodyFast(dst->map()->instance_type(), size, &visitor);
     } else {
       DCHECK_OBJECT_SIZE(size);
       DCHECK(dest == NEW_SPACE);
@@ -1645,6 +1709,26 @@
     Memory::Address_at(src_addr) = dst_addr;
   }
 
+#ifdef VERIFY_HEAP
+  bool AbortCompactionForTesting(HeapObject* object) {
+    if (FLAG_stress_compaction) {
+      const uintptr_t mask = static_cast<uintptr_t>(FLAG_random_seed) &
+                             Page::kPageAlignmentMask & ~kPointerAlignmentMask;
+      if ((reinterpret_cast<uintptr_t>(object->address()) &
+           Page::kPageAlignmentMask) == mask) {
+        Page* page = Page::FromAddress(object->address());
+        if (page->IsFlagSet(Page::COMPACTION_WAS_ABORTED_FOR_TESTING)) {
+          page->ClearFlag(Page::COMPACTION_WAS_ABORTED_FOR_TESTING);
+        } else {
+          page->SetFlag(Page::COMPACTION_WAS_ABORTED_FOR_TESTING);
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+#endif  // VERIFY_HEAP
+
   Heap* heap_;
   CompactionSpaceCollection* compaction_spaces_;
   bool profiling_;
@@ -1658,7 +1742,7 @@
 
   explicit EvacuateNewSpaceVisitor(Heap* heap,
                                    CompactionSpaceCollection* compaction_spaces,
-                                   HashMap* local_pretenuring_feedback)
+                                   base::HashMap* local_pretenuring_feedback)
       : EvacuateVisitorBase(heap, compaction_spaces),
         buffer_(LocalAllocationBuffer::InvalidBuffer()),
         space_to_allocate_(NEW_SPACE),
@@ -1671,23 +1755,15 @@
                                                local_pretenuring_feedback_);
     int size = object->Size();
     HeapObject* target_object = nullptr;
-    if (heap_->ShouldBePromoted(object->address(), size) &&
+    if (heap_->ShouldBePromoted<DEFAULT_PROMOTION>(object->address(), size) &&
         TryEvacuateObject(compaction_spaces_->Get(OLD_SPACE), object,
                           &target_object)) {
-      // If we end up needing more special cases, we should factor this out.
-      if (V8_UNLIKELY(target_object->IsJSArrayBuffer())) {
-        heap_->array_buffer_tracker()->Promote(
-            JSArrayBuffer::cast(target_object));
-      }
       promoted_size_ += size;
       return true;
     }
     HeapObject* target = nullptr;
     AllocationSpace space = AllocateTargetObject(object, &target);
     MigrateObject(HeapObject::cast(target), object, size, space);
-    if (V8_UNLIKELY(target->IsJSArrayBuffer())) {
-      heap_->array_buffer_tracker()->MarkLive(JSArrayBuffer::cast(target));
-    }
     semispace_copied_size_ += size;
     return true;
   }
@@ -1706,6 +1782,7 @@
     const int size = old_object->Size();
     AllocationAlignment alignment = old_object->RequiredAlignment();
     AllocationResult allocation;
+    AllocationSpace space_allocated_in = space_to_allocate_;
     if (space_to_allocate_ == NEW_SPACE) {
       if (size > kMaxLabObjectSize) {
         allocation =
@@ -1716,11 +1793,12 @@
     }
     if (allocation.IsRetry() || (space_to_allocate_ == OLD_SPACE)) {
       allocation = AllocateInOldSpace(size, alignment);
+      space_allocated_in = OLD_SPACE;
     }
     bool ok = allocation.To(target_object);
     DCHECK(ok);
     USE(ok);
-    return space_to_allocate_;
+    return space_allocated_in;
   }
 
   inline bool NewLocalAllocationBuffer() {
@@ -1795,36 +1873,44 @@
   AllocationSpace space_to_allocate_;
   intptr_t promoted_size_;
   intptr_t semispace_copied_size_;
-  HashMap* local_pretenuring_feedback_;
+  base::HashMap* local_pretenuring_feedback_;
 };
 
 class MarkCompactCollector::EvacuateNewSpacePageVisitor final
     : public MarkCompactCollector::HeapObjectVisitor {
  public:
-  EvacuateNewSpacePageVisitor() : promoted_size_(0) {}
+  explicit EvacuateNewSpacePageVisitor(Heap* heap)
+      : heap_(heap), promoted_size_(0), semispace_copied_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);
-    }
+  static void MoveToOldSpace(Page* page, PagedSpace* owner) {
+    page->Unlink();
+    Page* new_page = Page::ConvertNewToOld(page, owner);
+    new_page->SetFlag(Page::PAGE_NEW_OLD_PROMOTION);
+  }
+
+  static void MoveToToSpace(Page* page) {
+    page->heap()->new_space()->MovePageFromSpaceToSpace(page);
+    page->SetFlag(Page::PAGE_NEW_NEW_PROMOTION);
   }
 
   inline bool Visit(HeapObject* object) {
-    if (V8_UNLIKELY(object->IsJSArrayBuffer())) {
-      object->GetHeap()->array_buffer_tracker()->Promote(
-          JSArrayBuffer::cast(object));
-    }
-    RecordMigratedSlotVisitor visitor;
+    RecordMigratedSlotVisitor visitor(heap_->mark_compact_collector());
     object->IterateBodyFast(&visitor);
     promoted_size_ += object->Size();
     return true;
   }
 
   intptr_t promoted_size() { return promoted_size_; }
+  intptr_t semispace_copied_size() { return semispace_copied_size_; }
+
+  void account_semispace_copied(intptr_t copied) {
+    semispace_copied_size_ += copied;
+  }
 
  private:
+  Heap* heap_;
   intptr_t promoted_size_;
+  intptr_t semispace_copied_size_;
 };
 
 class MarkCompactCollector::EvacuateOldSpaceVisitor final
@@ -1849,30 +1935,20 @@
 class MarkCompactCollector::EvacuateRecordOnlyVisitor final
     : public MarkCompactCollector::HeapObjectVisitor {
  public:
-  explicit EvacuateRecordOnlyVisitor(AllocationSpace space) : space_(space) {}
+  explicit EvacuateRecordOnlyVisitor(Heap* heap) : heap_(heap) {}
 
   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());
-    }
+    RecordMigratedSlotVisitor visitor(heap_->mark_compact_collector());
+    object->IterateBody(&visitor);
     return true;
   }
 
  private:
-  AllocationSpace space_;
+  Heap* heap_;
 };
 
 void MarkCompactCollector::DiscoverGreyObjectsInSpace(PagedSpace* space) {
-  PageIterator it(space);
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *space) {
     if (!p->IsFlagSet(Page::BLACK_PAGE)) {
       DiscoverGreyObjectsOnPage(p);
     }
@@ -1883,9 +1959,7 @@
 
 void MarkCompactCollector::DiscoverGreyObjectsInNewSpace() {
   NewSpace* space = heap()->new_space();
-  NewSpacePageIterator it(space->bottom(), space->top());
-  while (it.has_next()) {
-    Page* page = it.next();
+  for (Page* page : NewSpacePageRange(space->bottom(), space->top())) {
     DiscoverGreyObjectsOnPage(page);
     if (marking_deque()->IsFull()) return;
   }
@@ -2052,8 +2126,10 @@
   bool work_to_do = true;
   while (work_to_do) {
     if (UsingEmbedderHeapTracer()) {
-      embedder_heap_tracer()->TraceWrappersFrom(wrappers_to_trace_);
-      wrappers_to_trace_.clear();
+      RegisterWrappersWithEmbedderHeapTracer();
+      embedder_heap_tracer()->AdvanceTracing(
+          0, EmbedderHeapTracer::AdvanceTracingActions(
+                 EmbedderHeapTracer::ForceCompletionAction::FORCE_COMPLETION));
     }
     if (!only_process_harmony_weak_collections) {
       isolate()->global_handles()->IterateObjectGroups(
@@ -2170,6 +2246,15 @@
   embedder_heap_tracer_ = tracer;
 }
 
+void MarkCompactCollector::RegisterWrappersWithEmbedderHeapTracer() {
+  DCHECK(UsingEmbedderHeapTracer());
+  if (wrappers_to_trace_.empty()) {
+    return;
+  }
+  embedder_heap_tracer()->RegisterV8References(wrappers_to_trace_);
+  wrappers_to_trace_.clear();
+}
+
 void MarkCompactCollector::TracePossibleWrapper(JSObject* js_object) {
   DCHECK(js_object->WasConstructedFromApiFunction());
   if (js_object->GetInternalFieldCount() >= 2 &&
@@ -2177,7 +2262,7 @@
       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*>(
+    wrappers_to_trace_.push_back(std::pair<void*, void*>(
         reinterpret_cast<void*>(js_object->GetInternalField(0)),
         reinterpret_cast<void*>(js_object->GetInternalField(1))));
   }
@@ -2210,6 +2295,10 @@
     } else {
       // Abort any pending incremental activities e.g. incremental sweeping.
       incremental_marking->Stop();
+      if (FLAG_track_gc_object_stats) {
+        // Clear object stats collected during incremental marking.
+        heap()->object_stats_->ClearObjectStats();
+      }
       if (marking_deque_.in_use()) {
         marking_deque_.Uninitialize(true);
       }
@@ -2246,10 +2335,6 @@
     {
       TRACE_GC(heap()->tracer(),
                GCTracer::Scope::MC_MARK_WEAK_CLOSURE_EPHEMERAL);
-      if (UsingEmbedderHeapTracer()) {
-        embedder_heap_tracer()->TracePrologue();
-        ProcessMarkingDeque();
-      }
       ProcessEphemeralMarking(&root_visitor, false);
     }
 
@@ -2378,7 +2463,7 @@
   for (uint32_t i = 0; i < capacity; i++) {
     uint32_t key_index = table->EntryToIndex(i);
     Object* key = table->get(key_index);
-    if (!table->IsKey(key)) continue;
+    if (!table->IsKey(isolate, key)) continue;
     uint32_t value_index = table->EntryToValueIndex(i);
     Object* value = table->get(value_index);
     DCHECK(key->IsWeakCell());
@@ -2750,128 +2835,20 @@
         slot_type = OBJECT_SLOT;
       }
     }
-    RememberedSet<OLD_TO_OLD>::InsertTyped(source_page, slot_type, addr);
+    RememberedSet<OLD_TO_OLD>::InsertTyped(
+        source_page, reinterpret_cast<Address>(host), slot_type, addr);
   }
 }
 
-static inline void UpdateTypedSlot(Isolate* isolate, ObjectVisitor* v,
-                                   SlotType slot_type, Address addr) {
-  switch (slot_type) {
-    case CODE_TARGET_SLOT: {
-      RelocInfo rinfo(isolate, addr, RelocInfo::CODE_TARGET, 0, NULL);
-      rinfo.Visit(isolate, v);
-      break;
-    }
-    case CELL_TARGET_SLOT: {
-      RelocInfo rinfo(isolate, addr, RelocInfo::CELL, 0, NULL);
-      rinfo.Visit(isolate, v);
-      break;
-    }
-    case CODE_ENTRY_SLOT: {
-      v->VisitCodeEntry(addr);
-      break;
-    }
-    case RELOCATED_CODE_OBJECT: {
-      HeapObject* obj = HeapObject::FromAddress(addr);
-      Code::BodyDescriptor::IterateBody(obj, v);
-      break;
-    }
-    case DEBUG_TARGET_SLOT: {
-      RelocInfo rinfo(isolate, addr, RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION, 0,
-                      NULL);
-      if (rinfo.IsPatchedDebugBreakSlotSequence()) rinfo.Visit(isolate, v);
-      break;
-    }
-    case EMBEDDED_OBJECT_SLOT: {
-      RelocInfo rinfo(isolate, addr, RelocInfo::EMBEDDED_OBJECT, 0, NULL);
-      rinfo.Visit(isolate, v);
-      break;
-    }
-    case OBJECT_SLOT: {
-      v->VisitPointer(reinterpret_cast<Object**>(addr));
-      break;
-    }
-    default:
-      UNREACHABLE();
-      break;
-  }
-}
+static inline SlotCallbackResult UpdateSlot(Object** slot) {
+  Object* obj = reinterpret_cast<Object*>(
+      base::NoBarrier_Load(reinterpret_cast<base::AtomicWord*>(slot)));
 
-
-// Visitor for updating pointers from live objects in old spaces to new space.
-// It does not expect to encounter pointers to dead objects.
-class PointersUpdatingVisitor : public ObjectVisitor {
- public:
-  explicit PointersUpdatingVisitor(Heap* heap) : heap_(heap) {}
-
-  void VisitPointer(Object** p) override { UpdatePointer(p); }
-
-  void VisitPointers(Object** start, Object** end) override {
-    for (Object** p = start; p < end; p++) UpdatePointer(p);
-  }
-
-  void VisitCell(RelocInfo* rinfo) override {
-    DCHECK(rinfo->rmode() == RelocInfo::CELL);
-    Object* cell = rinfo->target_cell();
-    Object* old_cell = cell;
-    VisitPointer(&cell);
-    if (cell != old_cell) {
-      rinfo->set_target_cell(reinterpret_cast<Cell*>(cell));
-    }
-  }
-
-  void VisitEmbeddedPointer(RelocInfo* rinfo) override {
-    DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
-    Object* target = rinfo->target_object();
-    Object* old_target = target;
-    VisitPointer(&target);
-    // Avoid unnecessary changes that might unnecessary flush the instruction
-    // cache.
-    if (target != old_target) {
-      rinfo->set_target_object(target);
-    }
-  }
-
-  void VisitCodeTarget(RelocInfo* rinfo) override {
-    DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode()));
-    Object* target = Code::GetCodeFromTargetAddress(rinfo->target_address());
-    Object* old_target = target;
-    VisitPointer(&target);
-    if (target != old_target) {
-      rinfo->set_target_address(Code::cast(target)->instruction_start());
-    }
-  }
-
-  void VisitCodeAgeSequence(RelocInfo* rinfo) override {
-    DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode()));
-    Object* stub = rinfo->code_age_stub();
-    DCHECK(stub != NULL);
-    VisitPointer(&stub);
-    if (stub != rinfo->code_age_stub()) {
-      rinfo->set_code_age_stub(Code::cast(stub));
-    }
-  }
-
-  void VisitDebugTarget(RelocInfo* rinfo) override {
-    DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
-           rinfo->IsPatchedDebugBreakSlotSequence());
-    Object* target =
-        Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
-    VisitPointer(&target);
-    rinfo->set_debug_call_address(Code::cast(target)->instruction_start());
-  }
-
-  static inline void UpdateSlot(Heap* heap, Object** slot) {
-    Object* obj = reinterpret_cast<Object*>(
-        base::NoBarrier_Load(reinterpret_cast<base::AtomicWord*>(slot)));
-
-    if (!obj->IsHeapObject()) return;
-
+  if (obj->IsHeapObject()) {
     HeapObject* heap_obj = HeapObject::cast(obj);
-
     MapWord map_word = heap_obj->map_word();
     if (map_word.IsForwardingAddress()) {
-      DCHECK(heap->InFromSpace(heap_obj) ||
+      DCHECK(heap_obj->GetHeap()->InFromSpace(heap_obj) ||
              MarkCompactCollector::IsOnEvacuationCandidate(heap_obj) ||
              Page::FromAddress(heap_obj->address())
                  ->IsFlagSet(Page::COMPACTION_WAS_ABORTED));
@@ -2880,15 +2857,42 @@
           reinterpret_cast<base::AtomicWord*>(slot),
           reinterpret_cast<base::AtomicWord>(obj),
           reinterpret_cast<base::AtomicWord>(target));
-      DCHECK(!heap->InFromSpace(target) &&
+      DCHECK(!heap_obj->GetHeap()->InFromSpace(target) &&
              !MarkCompactCollector::IsOnEvacuationCandidate(target));
     }
   }
+  return REMOVE_SLOT;
+}
 
- private:
-  inline void UpdatePointer(Object** p) { UpdateSlot(heap_, p); }
+// Visitor for updating pointers from live objects in old spaces to new space.
+// It does not expect to encounter pointers to dead objects.
+class PointersUpdatingVisitor : public ObjectVisitor {
+ public:
+  void VisitPointer(Object** p) override { UpdateSlot(p); }
 
-  Heap* heap_;
+  void VisitPointers(Object** start, Object** end) override {
+    for (Object** p = start; p < end; p++) UpdateSlot(p);
+  }
+
+  void VisitCell(RelocInfo* rinfo) override {
+    UpdateTypedSlotHelper::UpdateCell(rinfo, UpdateSlot);
+  }
+
+  void VisitEmbeddedPointer(RelocInfo* rinfo) override {
+    UpdateTypedSlotHelper::UpdateEmbeddedPointer(rinfo, UpdateSlot);
+  }
+
+  void VisitCodeTarget(RelocInfo* rinfo) override {
+    UpdateTypedSlotHelper::UpdateCodeTarget(rinfo, UpdateSlot);
+  }
+
+  void VisitCodeEntry(Address entry_address) override {
+    UpdateTypedSlotHelper::UpdateCodeEntry(entry_address, UpdateSlot);
+  }
+
+  void VisitDebugTarget(RelocInfo* rinfo) override {
+    UpdateTypedSlotHelper::UpdateDebugTarget(rinfo, UpdateSlot);
+  }
 };
 
 static String* UpdateReferenceInExternalStringTableEntry(Heap* heap,
@@ -3033,21 +3037,34 @@
 
 void MarkCompactCollector::EvacuateNewSpacePrologue() {
   NewSpace* new_space = heap()->new_space();
-  NewSpacePageIterator it(new_space->bottom(), new_space->top());
   // Append the list of new space pages to be processed.
-  while (it.has_next()) {
-    newspace_evacuation_candidates_.Add(it.next());
+  for (Page* p : NewSpacePageRange(new_space->bottom(), new_space->top())) {
+    newspace_evacuation_candidates_.Add(p);
   }
   new_space->Flip();
   new_space->ResetAllocationInfo();
 }
 
-void MarkCompactCollector::EvacuateNewSpaceEpilogue() {
-  newspace_evacuation_candidates_.Rewind(0);
-}
-
 class MarkCompactCollector::Evacuator : public Malloced {
  public:
+  enum EvacuationMode {
+    kObjectsNewToOld,
+    kPageNewToOld,
+    kObjectsOldToOld,
+    kPageNewToNew,
+  };
+
+  static inline EvacuationMode ComputeEvacuationMode(MemoryChunk* chunk) {
+    // Note: The order of checks is important in this function.
+    if (chunk->IsFlagSet(MemoryChunk::PAGE_NEW_OLD_PROMOTION))
+      return kPageNewToOld;
+    if (chunk->IsFlagSet(MemoryChunk::PAGE_NEW_NEW_PROMOTION))
+      return kPageNewToNew;
+    if (chunk->InNewSpace()) return kObjectsNewToOld;
+    DCHECK(chunk->IsEvacuationCandidate());
+    return kObjectsOldToOld;
+  }
+
   // NewSpacePages with more live bytes than this threshold qualify for fast
   // evacuation.
   static int PageEvacuationThreshold() {
@@ -3059,11 +3076,11 @@
   explicit Evacuator(MarkCompactCollector* collector)
       : collector_(collector),
         compaction_spaces_(collector->heap()),
-        local_pretenuring_feedback_(HashMap::PointersMatch,
+        local_pretenuring_feedback_(base::HashMap::PointersMatch,
                                     kInitialLocalPretenuringFeedbackCapacity),
         new_space_visitor_(collector->heap(), &compaction_spaces_,
                            &local_pretenuring_feedback_),
-        new_space_page_visitor(),
+        new_space_page_visitor(collector->heap()),
         old_space_visitor_(collector->heap(), &compaction_spaces_),
         duration_(0.0),
         bytes_compacted_(0) {}
@@ -3077,38 +3094,20 @@
   CompactionSpaceCollection* compaction_spaces() { return &compaction_spaces_; }
 
  private:
-  enum EvacuationMode {
-    kObjectsNewToOld,
-    kPageNewToOld,
-    kObjectsOldToOld,
-  };
-
   static const int kInitialLocalPretenuringFeedbackCapacity = 256;
 
   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;
   }
 
-  template <IterationMode mode, class Visitor>
-  inline bool EvacuateSinglePage(Page* p, Visitor* visitor);
-
   MarkCompactCollector* collector_;
 
   // Locally cached collector data.
   CompactionSpaceCollection compaction_spaces_;
-  HashMap local_pretenuring_feedback_;
+  base::HashMap local_pretenuring_feedback_;
 
   // Visitors for the corresponding spaces.
   EvacuateNewSpaceVisitor new_space_visitor_;
@@ -3120,75 +3119,78 @@
   intptr_t bytes_compacted_;
 };
 
-template <MarkCompactCollector::IterationMode mode, class Visitor>
-bool MarkCompactCollector::Evacuator::EvacuateSinglePage(Page* p,
-                                                         Visitor* visitor) {
+bool MarkCompactCollector::Evacuator::EvacuatePage(Page* page) {
   bool success = false;
-  DCHECK(p->IsEvacuationCandidate() || p->InNewSpace() ||
-         p->IsFlagSet(Page::PAGE_NEW_OLD_PROMOTION));
-  int saved_live_bytes = p->LiveBytes();
-  double evacuation_time;
+  DCHECK(page->SweepingDone());
+  int saved_live_bytes = page->LiveBytes();
+  double evacuation_time = 0.0;
+  Heap* heap = page->heap();
   {
-    AlwaysAllocateScope always_allocate(heap()->isolate());
+    AlwaysAllocateScope always_allocate(heap->isolate());
     TimedScope timed_scope(&evacuation_time);
-    success = collector_->VisitLiveObjects<Visitor>(p, visitor, mode);
+    switch (ComputeEvacuationMode(page)) {
+      case kObjectsNewToOld:
+        success = collector_->VisitLiveObjects(page, &new_space_visitor_,
+                                               kClearMarkbits);
+        ArrayBufferTracker::ProcessBuffers(
+            page, ArrayBufferTracker::kUpdateForwardedRemoveOthers);
+        DCHECK(success);
+        break;
+      case kPageNewToOld:
+        success = collector_->VisitLiveObjects(page, &new_space_page_visitor,
+                                               kKeepMarking);
+        // ArrayBufferTracker will be updated during sweeping.
+        DCHECK(success);
+        break;
+      case kPageNewToNew:
+        new_space_page_visitor.account_semispace_copied(page->LiveBytes());
+        // ArrayBufferTracker will be updated during sweeping.
+        success = true;
+        break;
+      case kObjectsOldToOld:
+        success = collector_->VisitLiveObjects(page, &old_space_visitor_,
+                                               kClearMarkbits);
+        if (!success) {
+          // Aborted compaction page. We have to record slots here, since we
+          // might not have recorded them in first place.
+          // Note: We mark the page as aborted here to be able to record slots
+          // for code objects in |RecordMigratedSlotVisitor|.
+          page->SetFlag(Page::COMPACTION_WAS_ABORTED);
+          EvacuateRecordOnlyVisitor record_visitor(collector_->heap());
+          success =
+              collector_->VisitLiveObjects(page, &record_visitor, kKeepMarking);
+          ArrayBufferTracker::ProcessBuffers(
+              page, ArrayBufferTracker::kUpdateForwardedKeepOthers);
+          DCHECK(success);
+          // We need to return failure here to indicate that we want this page
+          // added to the sweeper.
+          success = false;
+        } else {
+          ArrayBufferTracker::ProcessBuffers(
+              page, ArrayBufferTracker::kUpdateForwardedRemoveOthers);
+        }
+        break;
+      default:
+        UNREACHABLE();
+    }
   }
+  ReportCompactionProgress(evacuation_time, saved_live_bytes);
   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 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);
-  }
-  if (success) {
-    ReportCompactionProgress(evacuation_time, saved_live_bytes);
+    PrintIsolate(heap->isolate(),
+                 "evacuation[%p]: page=%p new_space=%d "
+                 "page_evacuation=%d executable=%d contains_age_mark=%d "
+                 "live_bytes=%d time=%f\n",
+                 static_cast<void*>(this), static_cast<void*>(page),
+                 page->InNewSpace(),
+                 page->IsFlagSet(Page::PAGE_NEW_OLD_PROMOTION) ||
+                     page->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION),
+                 page->IsFlagSet(MemoryChunk::IS_EXECUTABLE),
+                 page->Contains(heap->new_space()->age_mark()),
+                 saved_live_bytes, evacuation_time);
   }
   return success;
 }
 
-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 result;
-}
-
 void MarkCompactCollector::Evacuator::Finalize() {
   heap()->old_space()->MergeCompactionSpace(compaction_spaces_.Get(OLD_SPACE));
   heap()->code_space()->MergeCompactionSpace(
@@ -3197,11 +3199,13 @@
   heap()->IncrementPromotedObjectsSize(new_space_visitor_.promoted_size() +
                                        new_space_page_visitor.promoted_size());
   heap()->IncrementSemiSpaceCopiedObjectSize(
-      new_space_visitor_.semispace_copied_size());
+      new_space_visitor_.semispace_copied_size() +
+      new_space_page_visitor.semispace_copied_size());
   heap()->IncrementYoungSurvivorsCounter(
       new_space_visitor_.promoted_size() +
       new_space_visitor_.semispace_copied_size() +
-      new_space_page_visitor.promoted_size());
+      new_space_page_visitor.promoted_size() +
+      new_space_page_visitor.semispace_copied_size());
   heap()->MergeAllocationSitePretenuringFeedback(local_pretenuring_feedback_);
 }
 
@@ -3249,31 +3253,33 @@
 
   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) {
-        DCHECK(p->IsEvacuationCandidate());
-        DCHECK(p->SweepingDone());
-        p->Unlink();
-      } else {
-        // We have partially compacted the page, i.e., some objects may have
-        // moved, others are still in place.
-        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;
-      }
+    using Evacuator = MarkCompactCollector::Evacuator;
+    Page* p = static_cast<Page*>(chunk);
+    switch (Evacuator::ComputeEvacuationMode(p)) {
+      case Evacuator::kPageNewToOld:
+        break;
+      case Evacuator::kPageNewToNew:
+        DCHECK(success);
+        break;
+      case Evacuator::kObjectsNewToOld:
+        DCHECK(success);
+        break;
+      case Evacuator::kObjectsOldToOld:
+        if (success) {
+          DCHECK(p->IsEvacuationCandidate());
+          DCHECK(p->SweepingDone());
+          p->Unlink();
+        } else {
+          // We have partially compacted the page, i.e., some objects may have
+          // moved, others are still in place.
+          p->ClearEvacuationCandidate();
+          // Slots have already been recorded so we just need to add it to the
+          // sweeper, which will happen after updating pointers.
+          *data += 1;
+        }
+        break;
+      default:
+        UNREACHABLE();
     }
   }
 };
@@ -3295,10 +3301,14 @@
     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());
+      if (page->IsFlagSet(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK)) {
+        EvacuateNewSpacePageVisitor::MoveToOldSpace(page, heap()->old_space());
+      } else {
+        EvacuateNewSpacePageVisitor::MoveToToSpace(page);
+      }
     }
+
     job.AddPage(page, &abandoned_pages);
   }
   DCHECK_GE(job.NumberOfPages(), 1);
@@ -3352,16 +3362,21 @@
 template <MarkCompactCollector::Sweeper::SweepingMode sweeping_mode,
           MarkCompactCollector::Sweeper::SweepingParallelism parallelism,
           MarkCompactCollector::Sweeper::SkipListRebuildingMode skip_list_mode,
+          MarkCompactCollector::Sweeper::FreeListRebuildingMode free_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((space == nullptr) || (space->identity() != CODE_SPACE) ||
+         (skip_list_mode == REBUILD_SKIP_LIST));
   DCHECK((p->skip_list() == NULL) || (skip_list_mode == REBUILD_SKIP_LIST));
   DCHECK(parallelism == SWEEP_ON_MAIN_THREAD || sweeping_mode == SWEEP_ONLY);
 
+  // Before we sweep objects on the page, we free dead array buffers which
+  // requires valid mark bits.
+  ArrayBufferTracker::FreeDead(p);
+
   Address free_start = p->area_start();
   DCHECK(reinterpret_cast<intptr_t>(free_start) % (32 * kPointerSize) == 0);
 
@@ -3387,8 +3402,13 @@
       if (free_space_mode == ZAP_FREE_SPACE) {
         memset(free_start, 0xcc, size);
       }
-      freed_bytes = space->UnaccountedFree(free_start, size);
-      max_freed_bytes = Max(freed_bytes, max_freed_bytes);
+      if (free_list_mode == REBUILD_FREE_LIST) {
+        freed_bytes = space->UnaccountedFree(free_start, size);
+        max_freed_bytes = Max(freed_bytes, max_freed_bytes);
+      } else {
+        p->heap()->CreateFillerObjectAt(free_start, size,
+                                        ClearRecordedSlots::kNo);
+      }
     }
     Map* map = object->synchronized_map();
     int size = object->SizeFromMap(map);
@@ -3415,10 +3435,16 @@
     if (free_space_mode == ZAP_FREE_SPACE) {
       memset(free_start, 0xcc, size);
     }
-    freed_bytes = space->UnaccountedFree(free_start, size);
-    max_freed_bytes = Max(freed_bytes, max_freed_bytes);
+    if (free_list_mode == REBUILD_FREE_LIST) {
+      freed_bytes = space->UnaccountedFree(free_start, size);
+      max_freed_bytes = Max(freed_bytes, max_freed_bytes);
+    } else {
+      p->heap()->CreateFillerObjectAt(free_start, size,
+                                      ClearRecordedSlots::kNo);
+    }
   }
   p->concurrent_sweeping_state().SetValue(Page::kSweepingDone);
+  if (free_list_mode == IGNORE_FREE_LIST) return 0;
   return FreeList::GuaranteedAllocatable(static_cast<int>(max_freed_bytes));
 }
 
@@ -3438,6 +3464,7 @@
     Address start = code->instruction_start();
     Address end = code->address() + code->Size();
     RememberedSet<OLD_TO_OLD>::RemoveRangeTyped(page, start, end);
+    RememberedSet<OLD_TO_NEW>::RemoveRangeTyped(page, start, end);
   }
 }
 
@@ -3533,12 +3560,15 @@
 
     EvacuateNewSpacePrologue();
     EvacuatePagesInParallel();
-    EvacuateNewSpaceEpilogue();
     heap()->new_space()->set_age_mark(heap()->new_space()->top());
   }
 
   UpdatePointersAfterEvacuation();
 
+  if (!heap()->new_space()->Rebalance()) {
+    FatalProcessOutOfMemory("NewSpace::Rebalance");
+  }
+
   // Give pages that are queued to be freed back to the OS. Note that filtering
   // 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
@@ -3548,6 +3578,19 @@
   {
     TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE_CLEAN_UP);
 
+    for (Page* p : newspace_evacuation_candidates_) {
+      if (p->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION)) {
+        p->ClearFlag(Page::PAGE_NEW_NEW_PROMOTION);
+        sweeper().AddLatePage(p->owner()->identity(), p);
+      } else if (p->IsFlagSet(Page::PAGE_NEW_OLD_PROMOTION)) {
+        p->ClearFlag(Page::PAGE_NEW_OLD_PROMOTION);
+        p->ForAllFreeListCategories(
+            [](FreeListCategory* category) { DCHECK(!category->is_linked()); });
+        sweeper().AddLatePage(p->owner()->identity(), p);
+      }
+    }
+    newspace_evacuation_candidates_.Rewind(0);
+
     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
@@ -3560,11 +3603,6 @@
       }
     }
 
-    // EvacuateNewSpaceAndCandidates iterates over new space objects and for
-    // ArrayBuffers either re-registers them as live or promotes them. This is
-    // needed to properly free them.
-    heap()->array_buffer_tracker()->FreeDead(false);
-
     // Deallocate evacuated candidate pages.
     ReleaseEvacuationCandidates();
   }
@@ -3580,12 +3618,12 @@
 class PointerUpdateJobTraits {
  public:
   typedef int PerPageData;  // Per page data is not used in this job.
-  typedef PointersUpdatingVisitor* PerTaskData;
+  typedef int PerTaskData;  // Per task data is not used in this job.
 
-  static bool ProcessPageInParallel(Heap* heap, PerTaskData visitor,
-                                    MemoryChunk* chunk, PerPageData) {
+  static bool ProcessPageInParallel(Heap* heap, PerTaskData, MemoryChunk* chunk,
+                                    PerPageData) {
     UpdateUntypedPointers(heap, chunk);
-    UpdateTypedPointers(heap, chunk, visitor);
+    UpdateTypedPointers(heap, chunk);
     return true;
   }
   static const bool NeedSequentialFinalization = false;
@@ -3595,37 +3633,71 @@
  private:
   static void UpdateUntypedPointers(Heap* heap, MemoryChunk* chunk) {
     if (direction == OLD_TO_NEW) {
-      RememberedSet<OLD_TO_NEW>::IterateWithWrapper(heap, chunk,
-                                                    UpdateOldToNewSlot);
+      RememberedSet<OLD_TO_NEW>::Iterate(chunk, [heap, chunk](Address slot) {
+        return CheckAndUpdateOldToNewSlot(heap, slot);
+      });
     } else {
-      RememberedSet<OLD_TO_OLD>::Iterate(chunk, [heap](Address slot) {
-        PointersUpdatingVisitor::UpdateSlot(heap,
-                                            reinterpret_cast<Object**>(slot));
-        return REMOVE_SLOT;
+      RememberedSet<OLD_TO_OLD>::Iterate(chunk, [](Address slot) {
+        return UpdateSlot(reinterpret_cast<Object**>(slot));
       });
     }
   }
 
-  static void UpdateTypedPointers(Heap* heap, MemoryChunk* chunk,
-                                  PointersUpdatingVisitor* visitor) {
+  static void UpdateTypedPointers(Heap* heap, MemoryChunk* chunk) {
     if (direction == OLD_TO_OLD) {
       Isolate* isolate = heap->isolate();
       RememberedSet<OLD_TO_OLD>::IterateTyped(
-          chunk, [isolate, visitor](SlotType type, Address slot) {
-            UpdateTypedSlot(isolate, visitor, type, slot);
-            return REMOVE_SLOT;
+          chunk, [isolate](SlotType type, Address host_addr, Address slot) {
+            return UpdateTypedSlotHelper::UpdateTypedSlot(isolate, type, slot,
+                                                          UpdateSlot);
+          });
+    } else {
+      Isolate* isolate = heap->isolate();
+      RememberedSet<OLD_TO_NEW>::IterateTyped(
+          chunk,
+          [isolate, heap](SlotType type, Address host_addr, Address slot) {
+            return UpdateTypedSlotHelper::UpdateTypedSlot(
+                isolate, type, slot, [heap](Object** slot) {
+                  return CheckAndUpdateOldToNewSlot(
+                      heap, reinterpret_cast<Address>(slot));
+                });
           });
     }
   }
 
-  static void UpdateOldToNewSlot(HeapObject** address, HeapObject* object) {
-    MapWord map_word = object->map_word();
-    // 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();
+  static SlotCallbackResult CheckAndUpdateOldToNewSlot(Heap* heap,
+                                                       Address slot_address) {
+    Object** slot = reinterpret_cast<Object**>(slot_address);
+    if (heap->InFromSpace(*slot)) {
+      HeapObject* heap_object = reinterpret_cast<HeapObject*>(*slot);
+      DCHECK(heap_object->IsHeapObject());
+      MapWord map_word = heap_object->map_word();
+      // 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.
+        *slot = map_word.ToForwardingAddress();
+      }
+      // If the object was in from space before and is after executing the
+      // callback in to space, the object is still live.
+      // Unfortunately, we do not know about the slot. It could be in a
+      // just freed free space object.
+      if (heap->InToSpace(*slot)) {
+        return KEEP_SLOT;
+      }
+    } else if (heap->InToSpace(*slot)) {
+      DCHECK(Page::FromAddress(reinterpret_cast<HeapObject*>(*slot)->address())
+                 ->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION));
+      // Slots can be in "to" space after a page has been moved. Since there is
+      // no forwarding information present we need to check the markbits to
+      // determine liveness.
+      if (Marking::IsBlack(
+              Marking::MarkBitFrom(reinterpret_cast<HeapObject*>(*slot))))
+        return KEEP_SLOT;
+    } else {
+      DCHECK(!heap->InNewSpace(*slot));
     }
+    return REMOVE_SLOT;
   }
 };
 
@@ -3642,10 +3714,9 @@
       heap, heap->isolate()->cancelable_task_manager(), semaphore);
   RememberedSet<direction>::IterateMemoryChunks(
       heap, [&job](MemoryChunk* chunk) { job.AddPage(chunk, 0); });
-  PointersUpdatingVisitor visitor(heap);
   int num_pages = job.NumberOfPages();
   int num_tasks = NumberOfPointerUpdateTasks(num_pages);
-  job.Run(num_tasks, [&visitor](int i) { return &visitor; });
+  job.Run(num_tasks, [](int i) { return 0; });
 }
 
 class ToSpacePointerUpdateJobTraits {
@@ -3655,6 +3726,24 @@
 
   static bool ProcessPageInParallel(Heap* heap, PerTaskData visitor,
                                     MemoryChunk* chunk, PerPageData limits) {
+    if (chunk->IsFlagSet(Page::PAGE_NEW_NEW_PROMOTION)) {
+      // New->new promoted pages contain garbage so they require iteration
+      // using markbits.
+      ProcessPageInParallelVisitLive(heap, visitor, chunk, limits);
+    } else {
+      ProcessPageInParallelVisitAll(heap, visitor, chunk, limits);
+    }
+    return true;
+  }
+
+  static const bool NeedSequentialFinalization = false;
+  static void FinalizePageSequentially(Heap*, MemoryChunk*, bool, PerPageData) {
+  }
+
+ private:
+  static void ProcessPageInParallelVisitAll(Heap* heap, PerTaskData visitor,
+                                            MemoryChunk* chunk,
+                                            PerPageData limits) {
     for (Address cur = limits.first; cur < limits.second;) {
       HeapObject* object = HeapObject::FromAddress(cur);
       Map* map = object->map();
@@ -3662,10 +3751,18 @@
       object->IterateBody(map->instance_type(), size, visitor);
       cur += size;
     }
-    return true;
   }
-  static const bool NeedSequentialFinalization = false;
-  static void FinalizePageSequentially(Heap*, MemoryChunk*, bool, PerPageData) {
+
+  static void ProcessPageInParallelVisitLive(Heap* heap, PerTaskData visitor,
+                                             MemoryChunk* chunk,
+                                             PerPageData limits) {
+    LiveObjectIterator<kBlackObjects> it(chunk);
+    HeapObject* object = NULL;
+    while ((object = it.Next()) != NULL) {
+      Map* map = object->map();
+      int size = object->SizeFromMap(map);
+      object->IterateBody(map->instance_type(), size, visitor);
+    }
   }
 };
 
@@ -3674,15 +3771,13 @@
       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()) {
-    Page* page = it.next();
+  for (Page* page : NewSpacePageRange(space_start, space_end)) {
     Address start =
         page->Contains(space_start) ? space_start : page->area_start();
     Address end = page->Contains(space_end) ? space_end : page->area_end();
     job.AddPage(page, std::make_pair(start, end));
   }
-  PointersUpdatingVisitor visitor(heap);
+  PointersUpdatingVisitor visitor;
   int num_tasks = FLAG_parallel_pointer_update ? job.NumberOfPages() : 1;
   job.Run(num_tasks, [&visitor](int i) { return &visitor; });
 }
@@ -3690,7 +3785,7 @@
 void MarkCompactCollector::UpdatePointersAfterEvacuation() {
   TRACE_GC(heap()->tracer(), GCTracer::Scope::MC_EVACUATE_UPDATE_POINTERS);
 
-  PointersUpdatingVisitor updating_visitor(heap());
+  PointersUpdatingVisitor updating_visitor;
 
   {
     TRACE_GC(heap()->tracer(),
@@ -3741,7 +3836,7 @@
   int pages_freed = 0;
   Page* page = nullptr;
   while ((page = GetSweepingPageSafe(identity)) != nullptr) {
-    int freed = ParallelSweepPage(page, heap_->paged_space(identity));
+    int freed = ParallelSweepPage(page, identity);
     pages_freed += 1;
     DCHECK_GE(freed, 0);
     max_freed = Max(max_freed, freed);
@@ -3753,7 +3848,7 @@
 }
 
 int MarkCompactCollector::Sweeper::ParallelSweepPage(Page* page,
-                                                     PagedSpace* space) {
+                                                     AllocationSpace identity) {
   int max_freed = 0;
   if (page->mutex()->TryLock()) {
     // If this page was already swept in the meantime, we can return here.
@@ -3762,19 +3857,25 @@
       return 0;
     }
     page->concurrent_sweeping_state().SetValue(Page::kSweepingInProgress);
-    if (space->identity() == OLD_SPACE) {
+    if (identity == NEW_SPACE) {
+      RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
+               IGNORE_FREE_LIST, IGNORE_FREE_SPACE>(nullptr, page, nullptr);
+    } else if (identity == OLD_SPACE) {
       max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
-                           IGNORE_FREE_SPACE>(space, page, NULL);
-    } else if (space->identity() == CODE_SPACE) {
+                           REBUILD_FREE_LIST, IGNORE_FREE_SPACE>(
+          heap_->paged_space(identity), page, nullptr);
+    } else if (identity == CODE_SPACE) {
       max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, REBUILD_SKIP_LIST,
-                           IGNORE_FREE_SPACE>(space, page, NULL);
+                           REBUILD_FREE_LIST, IGNORE_FREE_SPACE>(
+          heap_->paged_space(identity), page, nullptr);
     } else {
       max_freed = RawSweep<SWEEP_ONLY, SWEEP_IN_PARALLEL, IGNORE_SKIP_LIST,
-                           IGNORE_FREE_SPACE>(space, page, NULL);
+                           REBUILD_FREE_LIST, IGNORE_FREE_SPACE>(
+          heap_->paged_space(identity), page, nullptr);
     }
     {
       base::LockGuard<base::Mutex> guard(&mutex_);
-      swept_list_[space->identity()].Add(page);
+      swept_list_[identity].Add(page);
     }
     page->concurrent_sweeping_state().SetValue(Page::kSweepingDone);
     page->mutex()->Unlock();
@@ -3800,7 +3901,8 @@
                                                          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);
+  if (space != NEW_SPACE)
+    heap_->paged_space(space)->accounting_stats_.ShrinkSpace(to_sweep);
 }
 
 Page* MarkCompactCollector::Sweeper::GetSweepingPageSafe(
@@ -3821,15 +3923,15 @@
 }
 
 void MarkCompactCollector::StartSweepSpace(PagedSpace* space) {
+  Address space_top = space->top();
   space->ClearStats();
 
-  PageIterator it(space);
-
   int will_be_swept = 0;
   bool unused_page_present = false;
 
-  while (it.has_next()) {
-    Page* p = it.next();
+  // Loop needs to support deletion if live bytes == 0 for a page.
+  for (auto it = space->begin(); it != space->end();) {
+    Page* p = *(it++);
     DCHECK(p->SweepingDone());
 
     if (p->IsEvacuationCandidate()) {
@@ -3844,7 +3946,15 @@
       Bitmap::Clear(p);
       p->concurrent_sweeping_state().SetValue(Page::kSweepingDone);
       p->ClearFlag(Page::BLACK_PAGE);
-      // TODO(hpayer): Free unused memory of last black page.
+      // Area above the high watermark is free.
+      Address free_start = p->HighWaterMark();
+      // Check if the space top was in this page, which means that the
+      // high watermark is not up-to-date.
+      if (free_start < space_top && space_top <= p->area_end()) {
+        free_start = space_top;
+      }
+      int size = static_cast<int>(p->area_end() - free_start);
+      space->Free(free_start, size);
       continue;
     }
 
@@ -3855,8 +3965,8 @@
       // testing this is fine.
       p->concurrent_sweeping_state().SetValue(Page::kSweepingInProgress);
       Sweeper::RawSweep<Sweeper::SWEEP_ONLY, Sweeper::SWEEP_ON_MAIN_THREAD,
-                        Sweeper::IGNORE_SKIP_LIST, Sweeper::IGNORE_FREE_SPACE>(
-          space, p, nullptr);
+                        Sweeper::IGNORE_SKIP_LIST, Sweeper::IGNORE_FREE_LIST,
+                        Sweeper::IGNORE_FREE_SPACE>(space, p, nullptr);
       continue;
     }
 
@@ -3864,8 +3974,10 @@
     if (p->LiveBytes() == 0) {
       if (unused_page_present) {
         if (FLAG_gc_verbose) {
-          PrintIsolate(isolate(), "sweeping: released page: %p", p);
+          PrintIsolate(isolate(), "sweeping: released page: %p",
+                       static_cast<void*>(p));
         }
+        ArrayBufferTracker::FreeAll(p);
         space->ReleasePage(p);
         continue;
       }
@@ -3936,7 +4048,10 @@
   Page* source_page = Page::FromAddress(reinterpret_cast<Address>(host));
   if (target_page->IsEvacuationCandidate() &&
       !ShouldSkipEvacuationSlotRecording(host)) {
-    RememberedSet<OLD_TO_OLD>::InsertTyped(source_page, CODE_ENTRY_SLOT, slot);
+    // TODO(ulan): remove this check after investigating crbug.com/414964.
+    CHECK(target->IsCode());
+    RememberedSet<OLD_TO_OLD>::InsertTyped(
+        source_page, reinterpret_cast<Address>(host), CODE_ENTRY_SLOT, slot);
   }
 }
 
diff --git a/src/heap/mark-compact.h b/src/heap/mark-compact.h
index d6adb03..07b289e 100644
--- a/src/heap/mark-compact.h
+++ b/src/heap/mark-compact.h
@@ -408,6 +408,7 @@
 
     enum SweepingMode { SWEEP_ONLY, SWEEP_AND_VISIT_LIVE_OBJECTS };
     enum SkipListRebuildingMode { REBUILD_SKIP_LIST, IGNORE_SKIP_LIST };
+    enum FreeListRebuildingMode { REBUILD_FREE_LIST, IGNORE_FREE_LIST };
     enum FreeSpaceTreatmentMode { IGNORE_FREE_SPACE, ZAP_FREE_SPACE };
     enum SweepingParallelism { SWEEP_ON_MAIN_THREAD, SWEEP_IN_PARALLEL };
 
@@ -416,6 +417,7 @@
 
     template <SweepingMode sweeping_mode, SweepingParallelism parallelism,
               SkipListRebuildingMode skip_list_mode,
+              FreeListRebuildingMode free_list_mode,
               FreeSpaceTreatmentMode free_space_mode>
     static int RawSweep(PagedSpace* space, Page* p, ObjectVisitor* v);
 
@@ -434,11 +436,12 @@
 
     int ParallelSweepSpace(AllocationSpace identity, int required_freed_bytes,
                            int max_pages = 0);
-    int ParallelSweepPage(Page* page, PagedSpace* space);
+    int ParallelSweepPage(Page* page, AllocationSpace identity);
 
     void StartSweeping();
     void StartSweepingHelper(AllocationSpace space_to_start);
     void EnsureCompleted();
+    void EnsureNewSpaceCompleted();
     bool IsSweepingCompleted();
     void SweepOrWaitUntilSweepingCompleted(Page* page);
 
@@ -467,7 +470,7 @@
     SweepingList sweeping_list_[kAllocationSpaces];
     bool sweeping_in_progress_;
     bool late_pages_;
-    int num_sweeping_tasks_;
+    base::AtomicNumber<intptr_t> num_sweeping_tasks_;
   };
 
   enum IterationMode {
@@ -613,9 +616,7 @@
 
   Sweeper& sweeper() { return sweeper_; }
 
-  std::vector<std::pair<void*, void*>>& wrappers_to_trace() {
-    return wrappers_to_trace_;
-  }
+  void RegisterWrappersWithEmbedderHeapTracer();
 
   void SetEmbedderHeapTracer(EmbedderHeapTracer* tracer);
 
@@ -793,7 +794,6 @@
   void SweepSpaces();
 
   void EvacuateNewSpacePrologue();
-  void EvacuateNewSpaceEpilogue();
 
   void EvacuatePagesInParallel();
 
diff --git a/src/heap/object-stats.cc b/src/heap/object-stats.cc
index 0198c6b..e7d90b3 100644
--- a/src/heap/object-stats.cc
+++ b/src/heap/object-stats.cc
@@ -134,8 +134,7 @@
 
 Isolate* ObjectStats::isolate() { return heap()->isolate(); }
 
-
-void ObjectStatsVisitor::CountFixedArray(
+void ObjectStatsCollector::CountFixedArray(
     FixedArrayBase* fixed_array, FixedArraySubInstanceType fast_type,
     FixedArraySubInstanceType dictionary_type) {
   Heap* heap = fixed_array->map()->GetHeap();
@@ -152,12 +151,32 @@
   }
 }
 
+void ObjectStatsCollector::CollectStatistics(StaticVisitorBase::VisitorId id,
+                                             Map* map, HeapObject* obj) {
+  // Record any type specific statistics here.
+  switch (id) {
+    case StaticVisitorBase::kVisitMap:
+      RecordMapStats(map, obj);
+      break;
+    case StaticVisitorBase::kVisitCode:
+      RecordCodeStats(map, obj);
+      break;
+    case StaticVisitorBase::kVisitSharedFunctionInfo:
+      RecordSharedFunctionInfoStats(map, obj);
+      break;
+    case StaticVisitorBase::kVisitFixedArray:
+      RecordFixedArrayStats(map, obj);
+      break;
+    default:
+      break;
+  }
 
-void ObjectStatsVisitor::VisitBase(VisitorId id, Map* map, HeapObject* obj) {
   Heap* heap = map->GetHeap();
   int object_size = obj->Size();
   heap->object_stats_->RecordObjectStats(map->instance_type(), object_size);
-  table_.GetVisitorById(id)(map, obj);
+}
+
+void ObjectStatsCollector::CollectFixedArrayStatistics(HeapObject* obj) {
   if (obj->IsJSObject()) {
     JSObject* object = JSObject::cast(obj);
     CountFixedArray(object->elements(), DICTIONARY_ELEMENTS_SUB_TYPE,
@@ -167,16 +186,7 @@
   }
 }
 
-
-template <ObjectStatsVisitor::VisitorId id>
-void ObjectStatsVisitor::Visit(Map* map, HeapObject* obj) {
-  VisitBase(id, map, obj);
-}
-
-
-template <>
-void ObjectStatsVisitor::Visit<ObjectStatsVisitor::kVisitMap>(Map* map,
-                                                              HeapObject* obj) {
+void ObjectStatsCollector::RecordMapStats(Map* map, HeapObject* obj) {
   Heap* heap = map->GetHeap();
   Map* map_obj = Map::cast(obj);
   DCHECK(map->instance_type() == MAP_TYPE);
@@ -187,54 +197,42 @@
                                                       fixed_array_size);
   }
   if (map_obj->has_code_cache()) {
-    FixedArray* cache = FixedArray::cast(map_obj->code_cache());
+    FixedArray* cache = map_obj->code_cache();
     heap->object_stats_->RecordFixedArraySubTypeStats(MAP_CODE_CACHE_SUB_TYPE,
                                                       cache->Size());
   }
-  VisitBase(kVisitMap, map, obj);
 }
 
-
-template <>
-void ObjectStatsVisitor::Visit<ObjectStatsVisitor::kVisitCode>(
-    Map* map, HeapObject* obj) {
+void ObjectStatsCollector::RecordCodeStats(Map* map, HeapObject* obj) {
   Heap* heap = map->GetHeap();
   int object_size = obj->Size();
   DCHECK(map->instance_type() == CODE_TYPE);
   Code* code_obj = Code::cast(obj);
   heap->object_stats_->RecordCodeSubTypeStats(code_obj->kind(),
                                               code_obj->GetAge(), object_size);
-  VisitBase(kVisitCode, map, obj);
 }
 
-
-template <>
-void ObjectStatsVisitor::Visit<ObjectStatsVisitor::kVisitSharedFunctionInfo>(
-    Map* map, HeapObject* obj) {
+void ObjectStatsCollector::RecordSharedFunctionInfoStats(Map* map,
+                                                         HeapObject* obj) {
   Heap* heap = map->GetHeap();
   SharedFunctionInfo* sfi = SharedFunctionInfo::cast(obj);
   if (sfi->scope_info() != heap->empty_fixed_array()) {
     heap->object_stats_->RecordFixedArraySubTypeStats(
         SCOPE_INFO_SUB_TYPE, FixedArray::cast(sfi->scope_info())->Size());
   }
-  VisitBase(kVisitSharedFunctionInfo, map, obj);
 }
 
-
-template <>
-void ObjectStatsVisitor::Visit<ObjectStatsVisitor::kVisitFixedArray>(
-    Map* map, HeapObject* obj) {
+void ObjectStatsCollector::RecordFixedArrayStats(Map* map, HeapObject* obj) {
   Heap* heap = map->GetHeap();
   FixedArray* fixed_array = FixedArray::cast(obj);
   if (fixed_array == heap->string_table()) {
     heap->object_stats_->RecordFixedArraySubTypeStats(STRING_TABLE_SUB_TYPE,
                                                       fixed_array->Size());
   }
-  VisitBase(kVisitFixedArray, map, obj);
 }
 
-
-void ObjectStatsVisitor::Initialize(VisitorDispatchTable<Callback>* original) {
+void MarkCompactObjectStatsVisitor::Initialize(
+    VisitorDispatchTable<Callback>* original) {
   // Copy the original visitor table to make call-through possible. After we
   // preserved a copy locally, we patch the original table to call us.
   table_.CopyFrom(original);
@@ -243,5 +241,29 @@
 #undef COUNT_FUNCTION
 }
 
+template <MarkCompactObjectStatsVisitor::VisitorId id>
+void MarkCompactObjectStatsVisitor::Visit(Map* map, HeapObject* obj) {
+  ObjectStatsCollector::CollectStatistics(id, map, obj);
+  table_.GetVisitorById(id)(map, obj);
+  ObjectStatsCollector::CollectFixedArrayStatistics(obj);
+}
+
+void IncrementalMarkingObjectStatsVisitor::Initialize(
+    VisitorDispatchTable<Callback>* original) {
+  // Copy the original visitor table to make call-through possible. After we
+  // preserved a copy locally, we patch the original table to call us.
+  table_.CopyFrom(original);
+#define COUNT_FUNCTION(id) original->Register(kVisit##id, Visit<kVisit##id>);
+  VISITOR_ID_LIST(COUNT_FUNCTION)
+#undef COUNT_FUNCTION
+}
+
+template <IncrementalMarkingObjectStatsVisitor::VisitorId id>
+void IncrementalMarkingObjectStatsVisitor::Visit(Map* map, HeapObject* obj) {
+  ObjectStatsCollector::CollectStatistics(id, map, obj);
+  table_.GetVisitorById(id)(map, obj);
+  ObjectStatsCollector::CollectFixedArrayStatistics(obj);
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/heap/object-stats.h b/src/heap/object-stats.h
index e2dcfaa..ce0a317 100644
--- a/src/heap/object-stats.h
+++ b/src/heap/object-stats.h
@@ -81,16 +81,34 @@
   size_t object_sizes_last_time_[OBJECT_STATS_COUNT];
 };
 
-
-class ObjectStatsVisitor : public StaticMarkingVisitor<ObjectStatsVisitor> {
+class ObjectStatsCollector {
  public:
-  static void Initialize(VisitorDispatchTable<Callback>* original);
-
-  static void VisitBase(VisitorId id, Map* map, HeapObject* obj);
+  static void CollectStatistics(StaticVisitorBase::VisitorId id, Map* map,
+                                HeapObject* obj);
+  static void CollectFixedArrayStatistics(HeapObject* obj);
 
   static void CountFixedArray(FixedArrayBase* fixed_array,
                               FixedArraySubInstanceType fast_type,
                               FixedArraySubInstanceType dictionary_type);
+  static void RecordMapStats(Map* map, HeapObject* obj);
+  static void RecordCodeStats(Map* map, HeapObject* obj);
+  static void RecordSharedFunctionInfoStats(Map* map, HeapObject* obj);
+  static void RecordFixedArrayStats(Map* map, HeapObject* obj);
+};
+
+class MarkCompactObjectStatsVisitor
+    : public StaticMarkingVisitor<MarkCompactObjectStatsVisitor> {
+ public:
+  static void Initialize(VisitorDispatchTable<Callback>* original);
+
+  template <VisitorId id>
+  static inline void Visit(Map* map, HeapObject* obj);
+};
+
+class IncrementalMarkingObjectStatsVisitor
+    : public StaticMarkingVisitor<IncrementalMarkingObjectStatsVisitor> {
+ public:
+  static void Initialize(VisitorDispatchTable<Callback>* original);
 
   template <VisitorId id>
   static inline void Visit(Map* map, HeapObject* obj);
diff --git a/src/heap/objects-visiting-inl.h b/src/heap/objects-visiting-inl.h
index 4373451..6d26ad0 100644
--- a/src/heap/objects-visiting-inl.h
+++ b/src/heap/objects-visiting-inl.h
@@ -77,7 +77,10 @@
       &FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode,
                            int>::Visit);
 
-  table_.Register(kVisitJSArrayBuffer, &VisitJSArrayBuffer);
+  table_.Register(
+      kVisitJSArrayBuffer,
+      &FlexibleBodyVisitor<StaticVisitor, JSArrayBuffer::BodyDescriptor,
+                           int>::Visit);
 
   table_.Register(kVisitFreeSpace, &VisitFreeSpace);
 
@@ -99,21 +102,6 @@
                                           kVisitStructGeneric>();
 }
 
-
-template <typename StaticVisitor>
-int StaticNewSpaceVisitor<StaticVisitor>::VisitJSArrayBuffer(
-    Map* map, HeapObject* object) {
-  typedef FlexibleBodyVisitor<StaticVisitor, JSArrayBuffer::BodyDescriptor, int>
-      JSArrayBufferBodyVisitor;
-
-  if (!JSArrayBuffer::cast(object)->is_external()) {
-    Heap* heap = map->GetHeap();
-    heap->array_buffer_tracker()->MarkLive(JSArrayBuffer::cast(object));
-  }
-  return JSArrayBufferBodyVisitor::Visit(map, object);
-}
-
-
 template <typename StaticVisitor>
 int StaticNewSpaceVisitor<StaticVisitor>::VisitBytecodeArray(
     Map* map, HeapObject* object) {
@@ -185,7 +173,10 @@
 
   table_.Register(kVisitJSFunction, &VisitJSFunction);
 
-  table_.Register(kVisitJSArrayBuffer, &VisitJSArrayBuffer);
+  table_.Register(
+      kVisitJSArrayBuffer,
+      &FlexibleBodyVisitor<StaticVisitor, JSArrayBuffer::BodyDescriptor,
+                           void>::Visit);
 
   // Registration for kVisitJSRegExp is done by StaticVisitor.
 
@@ -385,7 +376,7 @@
   }
   // Enqueue the array in linked list of encountered transition arrays if it is
   // not already in the list.
-  if (array->next_link()->IsUndefined()) {
+  if (array->next_link()->IsUndefined(heap->isolate())) {
     Heap* heap = map->GetHeap();
     array->set_next_link(heap->encountered_transition_arrays(),
                          UPDATE_WEAK_WRITE_BARRIER);
@@ -459,9 +450,6 @@
   if (shared->ic_age() != heap->global_ic_age()) {
     shared->ResetForNewContext(heap->global_ic_age());
   }
-  if (FLAG_cleanup_code_caches_at_gc) {
-    shared->ClearTypeFeedbackInfoAtGCTime();
-  }
   if (FLAG_flush_optimized_code_cache) {
     if (!shared->OptimizedCodeMapIsCleared()) {
       // Always flush the optimized code map if requested by flag.
@@ -492,6 +480,9 @@
                                                           HeapObject* object) {
   Heap* heap = map->GetHeap();
   JSFunction* function = JSFunction::cast(object);
+  if (FLAG_cleanup_code_caches_at_gc) {
+    function->ClearTypeFeedbackInfoAtGCTime();
+  }
   MarkCompactCollector* collector = heap->mark_compact_collector();
   if (collector->is_code_flushing_enabled()) {
     if (IsFlushable(heap, function)) {
@@ -520,24 +511,6 @@
   JSObjectVisitor::Visit(map, object);
 }
 
-
-template <typename StaticVisitor>
-void StaticMarkingVisitor<StaticVisitor>::VisitJSArrayBuffer(
-    Map* map, HeapObject* object) {
-  Heap* heap = map->GetHeap();
-
-  typedef FlexibleBodyVisitor<StaticVisitor, JSArrayBuffer::BodyDescriptor,
-                              void> JSArrayBufferBodyVisitor;
-
-  JSArrayBufferBodyVisitor::Visit(map, object);
-
-  if (!JSArrayBuffer::cast(object)->is_external() &&
-      !heap->InNewSpace(object)) {
-    heap->array_buffer_tracker()->MarkLive(JSArrayBuffer::cast(object));
-  }
-}
-
-
 template <typename StaticVisitor>
 void StaticMarkingVisitor<StaticVisitor>::VisitBytecodeArray(
     Map* map, HeapObject* object) {
@@ -647,9 +620,10 @@
     return false;
   }
 
-  // We do not (yet?) flush code for generator functions, because we don't know
-  // if there are still live activations (generator objects) on the heap.
-  if (shared_info->is_generator()) {
+  // We do not (yet?) flush code for generator functions, or async functions,
+  // because we don't know if there are still live activations
+  // (generator objects) on the heap.
+  if (shared_info->is_resumable()) {
     return false;
   }
 
diff --git a/src/heap/objects-visiting.cc b/src/heap/objects-visiting.cc
index dfde574..83e2e1c 100644
--- a/src/heap/objects-visiting.cc
+++ b/src/heap/objects-visiting.cc
@@ -103,6 +103,8 @@
       return kVisitJSArrayBuffer;
 
     case JS_OBJECT_TYPE:
+    case JS_ERROR_TYPE:
+    case JS_ARGUMENTS_TYPE:
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
     case JS_GENERATOR_OBJECT_TYPE:
     case JS_MODULE_TYPE:
@@ -212,7 +214,7 @@
         }
       }
       // Retained object is new tail.
-      DCHECK(!retained->IsUndefined());
+      DCHECK(!retained->IsUndefined(heap->isolate()));
       candidate = reinterpret_cast<T*>(retained);
       tail = candidate;
 
diff --git a/src/heap/objects-visiting.h b/src/heap/objects-visiting.h
index 4be40cd..303db0e 100644
--- a/src/heap/objects-visiting.h
+++ b/src/heap/objects-visiting.h
@@ -300,7 +300,6 @@
     return FreeSpace::cast(object)->size();
   }
 
-  INLINE(static int VisitJSArrayBuffer(Map* map, HeapObject* object));
   INLINE(static int VisitBytecodeArray(Map* map, HeapObject* object));
 
   class DataObjectVisitor {
@@ -379,7 +378,6 @@
   INLINE(static void VisitWeakCollection(Map* map, HeapObject* object));
   INLINE(static void VisitJSFunction(Map* map, HeapObject* object));
   INLINE(static void VisitJSRegExp(Map* map, HeapObject* object));
-  INLINE(static void VisitJSArrayBuffer(Map* map, HeapObject* object));
   INLINE(static void VisitNativeContext(Map* map, HeapObject* object));
   INLINE(static void VisitBytecodeArray(Map* map, HeapObject* object));
 
diff --git a/src/heap/remembered-set.cc b/src/heap/remembered-set.cc
index 403c99b..0bc5e6e 100644
--- a/src/heap/remembered-set.cc
+++ b/src/heap/remembered-set.cc
@@ -16,10 +16,7 @@
 template <PointerDirection direction>
 void RememberedSet<direction>::ClearInvalidSlots(Heap* heap) {
   STATIC_ASSERT(direction == OLD_TO_NEW);
-  PageIterator it(heap->old_space());
-  MemoryChunk* chunk;
-  while (it.has_next()) {
-    chunk = it.next();
+  for (MemoryChunk* chunk : *heap->old_space()) {
     SlotSet* slots = GetSlotSet(chunk);
     if (slots != nullptr) {
       slots->Iterate([heap, chunk](Address addr) {
diff --git a/src/heap/remembered-set.h b/src/heap/remembered-set.h
index 45408bf..339748c 100644
--- a/src/heap/remembered-set.h
+++ b/src/heap/remembered-set.h
@@ -5,6 +5,7 @@
 #ifndef V8_REMEMBERED_SET_H
 #define V8_REMEMBERED_SET_H
 
+#include "src/assembler.h"
 #include "src/heap/heap.h"
 #include "src/heap/slot-set.h"
 #include "src/heap/spaces.h"
@@ -14,6 +15,7 @@
 
 enum PointerDirection { OLD_TO_OLD, OLD_TO_NEW };
 
+// TODO(ulan): Investigate performance of de-templatizing this class.
 template <PointerDirection direction>
 class RememberedSet {
  public:
@@ -67,9 +69,7 @@
   // The callback should take (MemoryChunk* chunk) and return void.
   template <typename Callback>
   static void IterateMemoryChunks(Heap* heap, Callback callback) {
-    MemoryChunkIterator it(heap, direction == OLD_TO_OLD
-                                     ? MemoryChunkIterator::ALL
-                                     : MemoryChunkIterator::ALL_BUT_CODE_SPACE);
+    MemoryChunkIterator it(heap);
     MemoryChunk* chunk;
     while ((chunk = it.next()) != nullptr) {
       SlotSet* slots = GetSlotSet(chunk);
@@ -98,62 +98,58 @@
     }
   }
 
-  // Iterates and filters the remembered set with the given callback.
-  // The callback should take (HeapObject** slot, HeapObject* target) and
-  // update the slot.
-  // A special wrapper takes care of filtering the slots based on their values.
-  // For OLD_TO_NEW case: slots that do not point to the ToSpace after
-  // callback invocation will be removed from the set.
-  template <typename Callback>
-  static void IterateWithWrapper(Heap* heap, Callback callback) {
-    Iterate(heap, [heap, callback](Address addr) {
-      return Wrapper(heap, addr, callback);
-    });
-  }
-
-  template <typename Callback>
-  static void IterateWithWrapper(Heap* heap, MemoryChunk* chunk,
-                                 Callback callback) {
-    Iterate(chunk, [heap, callback](Address addr) {
-      return Wrapper(heap, addr, callback);
-    });
-  }
-
   // Given a page and a typed slot in that page, this function adds the slot
   // to the remembered set.
-  static void InsertTyped(Page* page, SlotType slot_type, Address slot_addr) {
-    STATIC_ASSERT(direction == OLD_TO_OLD);
-    TypedSlotSet* slot_set = page->typed_old_to_old_slots();
+  static void InsertTyped(Page* page, Address host_addr, SlotType slot_type,
+                          Address slot_addr) {
+    TypedSlotSet* slot_set = GetTypedSlotSet(page);
     if (slot_set == nullptr) {
-      page->AllocateTypedOldToOldSlots();
-      slot_set = page->typed_old_to_old_slots();
+      AllocateTypedSlotSet(page);
+      slot_set = GetTypedSlotSet(page);
+    }
+    if (host_addr == nullptr) {
+      host_addr = page->address();
     }
     uintptr_t offset = slot_addr - page->address();
+    uintptr_t host_offset = host_addr - page->address();
     DCHECK_LT(offset, static_cast<uintptr_t>(TypedSlotSet::kMaxOffset));
-    slot_set->Insert(slot_type, static_cast<uint32_t>(offset));
+    DCHECK_LT(host_offset, static_cast<uintptr_t>(TypedSlotSet::kMaxOffset));
+    slot_set->Insert(slot_type, static_cast<uint32_t>(host_offset),
+                     static_cast<uint32_t>(offset));
   }
 
   // Given a page and a range of typed slots in that page, this function removes
   // the slots from the remembered set.
   static void RemoveRangeTyped(Page* page, Address start, Address end) {
-    TypedSlotSet* slots = page->typed_old_to_old_slots();
+    TypedSlotSet* slots = GetTypedSlotSet(page);
     if (slots != nullptr) {
-      slots->Iterate([start, end](SlotType slot_type, Address slot_addr) {
+      slots->Iterate([start, end](SlotType slot_type, Address host_addr,
+                                  Address slot_addr) {
         return start <= slot_addr && slot_addr < end ? REMOVE_SLOT : KEEP_SLOT;
       });
     }
   }
 
+  // Iterates and filters the remembered set with the given callback.
+  // The callback should take (SlotType slot_type, SlotAddress slot) and return
+  // SlotCallbackResult.
+  template <typename Callback>
+  static void IterateTyped(Heap* heap, Callback callback) {
+    IterateMemoryChunks(heap, [callback](MemoryChunk* chunk) {
+      IterateTyped(chunk, callback);
+    });
+  }
+
   // Iterates and filters typed old to old pointers in the given memory chunk
   // with the given callback. The callback should take (SlotType slot_type,
   // Address slot_addr) and return SlotCallbackResult.
   template <typename Callback>
   static void IterateTyped(MemoryChunk* chunk, Callback callback) {
-    TypedSlotSet* slots = chunk->typed_old_to_old_slots();
+    TypedSlotSet* slots = GetTypedSlotSet(chunk);
     if (slots != nullptr) {
       int new_count = slots->Iterate(callback);
       if (new_count == 0) {
-        chunk->ReleaseTypedOldToOldSlots();
+        ReleaseTypedSlotSet(chunk);
       }
     }
   }
@@ -161,7 +157,7 @@
   // Clear all old to old slots from the remembered set.
   static void ClearAll(Heap* heap) {
     STATIC_ASSERT(direction == OLD_TO_OLD);
-    MemoryChunkIterator it(heap, MemoryChunkIterator::ALL);
+    MemoryChunkIterator it(heap);
     MemoryChunk* chunk;
     while ((chunk = it.next()) != nullptr) {
       chunk->ReleaseOldToOldSlots();
@@ -190,7 +186,7 @@
     if (direction == OLD_TO_OLD) {
       return chunk->typed_old_to_old_slots();
     } else {
-      return nullptr;
+      return chunk->typed_old_to_new_slots();
     }
   }
 
@@ -202,6 +198,14 @@
     }
   }
 
+  static void ReleaseTypedSlotSet(MemoryChunk* chunk) {
+    if (direction == OLD_TO_OLD) {
+      chunk->ReleaseTypedOldToOldSlots();
+    } else {
+      chunk->ReleaseTypedOldToNewSlots();
+    }
+  }
+
   static SlotSet* AllocateSlotSet(MemoryChunk* chunk) {
     if (direction == OLD_TO_OLD) {
       chunk->AllocateOldToOldSlots();
@@ -212,33 +216,135 @@
     }
   }
 
-  template <typename Callback>
-  static SlotCallbackResult Wrapper(Heap* heap, Address slot_address,
-                                    Callback slot_callback) {
-    STATIC_ASSERT(direction == OLD_TO_NEW);
-    Object** slot = reinterpret_cast<Object**>(slot_address);
-    Object* object = *slot;
-    if (heap->InFromSpace(object)) {
-      HeapObject* heap_object = reinterpret_cast<HeapObject*>(object);
-      DCHECK(heap_object->IsHeapObject());
-      slot_callback(reinterpret_cast<HeapObject**>(slot), heap_object);
-      object = *slot;
-      // If the object was in from space before and is after executing the
-      // callback in to space, the object is still live.
-      // Unfortunately, we do not know about the slot. It could be in a
-      // just freed free space object.
-      if (heap->InToSpace(object)) {
-        return KEEP_SLOT;
-      }
+  static TypedSlotSet* AllocateTypedSlotSet(MemoryChunk* chunk) {
+    if (direction == OLD_TO_OLD) {
+      chunk->AllocateTypedOldToOldSlots();
+      return chunk->typed_old_to_old_slots();
     } else {
-      DCHECK(!heap->InNewSpace(object));
+      chunk->AllocateTypedOldToNewSlots();
+      return chunk->typed_old_to_new_slots();
     }
-    return REMOVE_SLOT;
   }
 
   static bool IsValidSlot(Heap* heap, MemoryChunk* chunk, Object** slot);
 };
 
+class UpdateTypedSlotHelper {
+ public:
+  // Updates a cell slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateCell(RelocInfo* rinfo, Callback callback) {
+    DCHECK(rinfo->rmode() == RelocInfo::CELL);
+    Object* cell = rinfo->target_cell();
+    Object* old_cell = cell;
+    SlotCallbackResult result = callback(&cell);
+    if (cell != old_cell) {
+      rinfo->set_target_cell(reinterpret_cast<Cell*>(cell));
+    }
+    return result;
+  }
+
+  // Updates a code entry slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateCodeEntry(Address entry_address,
+                                            Callback callback) {
+    Object* code = Code::GetObjectFromEntryAddress(entry_address);
+    Object* old_code = code;
+    SlotCallbackResult result = callback(&code);
+    if (code != old_code) {
+      Memory::Address_at(entry_address) =
+          reinterpret_cast<Code*>(code)->entry();
+    }
+    return result;
+  }
+
+  // Updates a code target slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateCodeTarget(RelocInfo* rinfo,
+                                             Callback callback) {
+    DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode()));
+    Object* target = Code::GetCodeFromTargetAddress(rinfo->target_address());
+    Object* old_target = target;
+    SlotCallbackResult result = callback(&target);
+    if (target != old_target) {
+      rinfo->set_target_address(Code::cast(target)->instruction_start());
+    }
+    return result;
+  }
+
+  // Updates an embedded pointer slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateEmbeddedPointer(RelocInfo* rinfo,
+                                                  Callback callback) {
+    DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
+    Object* target = rinfo->target_object();
+    Object* old_target = target;
+    SlotCallbackResult result = callback(&target);
+    if (target != old_target) {
+      rinfo->set_target_object(target);
+    }
+    return result;
+  }
+
+  // Updates a debug target slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateDebugTarget(RelocInfo* rinfo,
+                                              Callback callback) {
+    DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
+           rinfo->IsPatchedDebugBreakSlotSequence());
+    Object* target =
+        Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
+    SlotCallbackResult result = callback(&target);
+    rinfo->set_debug_call_address(Code::cast(target)->instruction_start());
+    return result;
+  }
+
+  // Updates a typed slot using an untyped slot callback.
+  // The callback accepts (Heap*, Object**) and returns SlotCallbackResult.
+  template <typename Callback>
+  static SlotCallbackResult UpdateTypedSlot(Isolate* isolate,
+                                            SlotType slot_type, Address addr,
+                                            Callback callback) {
+    switch (slot_type) {
+      case CODE_TARGET_SLOT: {
+        RelocInfo rinfo(isolate, addr, RelocInfo::CODE_TARGET, 0, NULL);
+        return UpdateCodeTarget(&rinfo, callback);
+      }
+      case CELL_TARGET_SLOT: {
+        RelocInfo rinfo(isolate, addr, RelocInfo::CELL, 0, NULL);
+        return UpdateCell(&rinfo, callback);
+      }
+      case CODE_ENTRY_SLOT: {
+        return UpdateCodeEntry(addr, callback);
+      }
+      case DEBUG_TARGET_SLOT: {
+        RelocInfo rinfo(isolate, addr, RelocInfo::DEBUG_BREAK_SLOT_AT_POSITION,
+                        0, NULL);
+        if (rinfo.IsPatchedDebugBreakSlotSequence()) {
+          return UpdateDebugTarget(&rinfo, callback);
+        }
+        return REMOVE_SLOT;
+      }
+      case EMBEDDED_OBJECT_SLOT: {
+        RelocInfo rinfo(isolate, addr, RelocInfo::EMBEDDED_OBJECT, 0, NULL);
+        return UpdateEmbeddedPointer(&rinfo, callback);
+      }
+      case OBJECT_SLOT: {
+        return callback(reinterpret_cast<Object**>(addr));
+      }
+      case NUMBER_OF_SLOT_TYPES:
+        break;
+    }
+    UNREACHABLE();
+    return REMOVE_SLOT;
+  }
+};
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/heap/scavenger-inl.h b/src/heap/scavenger-inl.h
index b8fd1c8..0b6a0f4 100644
--- a/src/heap/scavenger-inl.h
+++ b/src/heap/scavenger-inl.h
@@ -37,10 +37,35 @@
   return ScavengeObjectSlow(p, object);
 }
 
+SlotCallbackResult Scavenger::CheckAndScavengeObject(Heap* heap,
+                                                     Address slot_address) {
+  Object** slot = reinterpret_cast<Object**>(slot_address);
+  Object* object = *slot;
+  if (heap->InFromSpace(object)) {
+    HeapObject* heap_object = reinterpret_cast<HeapObject*>(object);
+    DCHECK(heap_object->IsHeapObject());
+
+    ScavengeObject(reinterpret_cast<HeapObject**>(slot), heap_object);
+
+    object = *slot;
+    // If the object was in from space before and is after executing the
+    // callback in to space, the object is still live.
+    // Unfortunately, we do not know about the slot. It could be in a
+    // just freed free space object.
+    if (heap->InToSpace(object)) {
+      return KEEP_SLOT;
+    }
+  } else {
+    DCHECK(!heap->InNewSpace(object));
+  }
+  return REMOVE_SLOT;
+}
 
 // static
-void StaticScavengeVisitor::VisitPointer(Heap* heap, HeapObject* obj,
-                                         Object** p) {
+template <PromotionMode promotion_mode>
+void StaticScavengeVisitor<promotion_mode>::VisitPointer(Heap* heap,
+                                                         HeapObject* obj,
+                                                         Object** p) {
   Object* object = *p;
   if (!heap->InNewSpace(object)) return;
   Scavenger::ScavengeObject(reinterpret_cast<HeapObject**>(p),
diff --git a/src/heap/scavenger.cc b/src/heap/scavenger.cc
index 456d8a4..9b8bfc2 100644
--- a/src/heap/scavenger.cc
+++ b/src/heap/scavenger.cc
@@ -10,7 +10,6 @@
 #include "src/heap/scavenger-inl.h"
 #include "src/isolate.h"
 #include "src/log.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -23,8 +22,7 @@
 
 enum MarksHandling { TRANSFER_MARKS, IGNORE_MARKS };
 
-
-template <MarksHandling marks_handling,
+template <MarksHandling marks_handling, PromotionMode promotion_mode,
           LoggingAndProfiling logging_and_profiling_mode>
 class ScavengingVisitor : public StaticVisitorBase {
  public:
@@ -37,7 +35,8 @@
     table_.Register(kVisitFixedDoubleArray, &EvacuateFixedDoubleArray);
     table_.Register(kVisitFixedTypedArray, &EvacuateFixedTypedArray);
     table_.Register(kVisitFixedFloat64Array, &EvacuateFixedFloat64Array);
-    table_.Register(kVisitJSArrayBuffer, &EvacuateJSArrayBuffer);
+    table_.Register(kVisitJSArrayBuffer,
+                    &ObjectEvacuationStrategy<POINTER_OBJECT>::Visit);
 
     table_.Register(
         kVisitNativeContext,
@@ -200,7 +199,6 @@
     return false;
   }
 
-
   template <ObjectContents object_contents, AllocationAlignment alignment>
   static inline void EvacuateObject(Map* map, HeapObject** slot,
                                     HeapObject* object, int object_size) {
@@ -208,7 +206,8 @@
     SLOW_DCHECK(object->Size() == object_size);
     Heap* heap = map->GetHeap();
 
-    if (!heap->ShouldBePromoted(object->address(), object_size)) {
+    if (!heap->ShouldBePromoted<promotion_mode>(object->address(),
+                                                object_size)) {
       // A semi-space copy may fail due to fragmentation. In that case, we
       // try to promote the object.
       if (SemiSpaceCopyObject<alignment>(map, slot, object, object_size)) {
@@ -220,14 +219,15 @@
                                                   object_size)) {
       return;
     }
-
+    if (promotion_mode == PROMOTE_MARKED) {
+      FatalProcessOutOfMemory("Scavenger: promoting marked\n");
+    }
     // If promotion failed, we try to copy the object to the other semi-space
     if (SemiSpaceCopyObject<alignment>(map, slot, object, object_size)) return;
 
     FatalProcessOutOfMemory("Scavenger: semi-space copy\n");
   }
 
-
   static inline void EvacuateJSFunction(Map* map, HeapObject** slot,
                                         HeapObject* object) {
     ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object);
@@ -252,7 +252,6 @@
     }
   }
 
-
   static inline void EvacuateFixedArray(Map* map, HeapObject** slot,
                                         HeapObject* object) {
     int length = reinterpret_cast<FixedArray*>(object)->synchronized_length();
@@ -261,7 +260,6 @@
                                                  object_size);
   }
 
-
   static inline void EvacuateFixedDoubleArray(Map* map, HeapObject** slot,
                                               HeapObject* object) {
     int length = reinterpret_cast<FixedDoubleArray*>(object)->length();
@@ -269,7 +267,6 @@
     EvacuateObject<DATA_OBJECT, kDoubleAligned>(map, slot, object, object_size);
   }
 
-
   static inline void EvacuateFixedTypedArray(Map* map, HeapObject** slot,
                                              HeapObject* object) {
     int object_size = reinterpret_cast<FixedTypedArrayBase*>(object)->size();
@@ -277,7 +274,6 @@
                                                  object_size);
   }
 
-
   static inline void EvacuateFixedFloat64Array(Map* map, HeapObject** slot,
                                                HeapObject* object) {
     int object_size = reinterpret_cast<FixedFloat64Array*>(object)->size();
@@ -285,28 +281,12 @@
                                                    object_size);
   }
 
-
-  static inline void EvacuateJSArrayBuffer(Map* map, HeapObject** slot,
-                                           HeapObject* object) {
-    ObjectEvacuationStrategy<POINTER_OBJECT>::Visit(map, slot, object);
-
-    Heap* heap = map->GetHeap();
-    MapWord map_word = object->map_word();
-    DCHECK(map_word.IsForwardingAddress());
-    HeapObject* target = map_word.ToForwardingAddress();
-    if (!heap->InNewSpace(target)) {
-      heap->array_buffer_tracker()->Promote(JSArrayBuffer::cast(target));
-    }
-  }
-
-
   static inline void EvacuateByteArray(Map* map, HeapObject** slot,
                                        HeapObject* object) {
     int object_size = reinterpret_cast<ByteArray*>(object)->ByteArraySize();
     EvacuateObject<DATA_OBJECT, kWordAligned>(map, slot, object, object_size);
   }
 
-
   static inline void EvacuateSeqOneByteString(Map* map, HeapObject** slot,
                                               HeapObject* object) {
     int object_size = SeqOneByteString::cast(object)
@@ -314,7 +294,6 @@
     EvacuateObject<DATA_OBJECT, kWordAligned>(map, slot, object, object_size);
   }
 
-
   static inline void EvacuateSeqTwoByteString(Map* map, HeapObject** slot,
                                               HeapObject* object) {
     int object_size = SeqTwoByteString::cast(object)
@@ -322,7 +301,6 @@
     EvacuateObject<DATA_OBJECT, kWordAligned>(map, slot, object, object_size);
   }
 
-
   static inline void EvacuateShortcutCandidate(Map* map, HeapObject** slot,
                                                HeapObject* object) {
     DCHECK(IsShortcutCandidate(map->instance_type()));
@@ -380,21 +358,21 @@
   static VisitorDispatchTable<ScavengingCallback> table_;
 };
 
-
-template <MarksHandling marks_handling,
+template <MarksHandling marks_handling, PromotionMode promotion_mode,
           LoggingAndProfiling logging_and_profiling_mode>
-VisitorDispatchTable<ScavengingCallback>
-    ScavengingVisitor<marks_handling, logging_and_profiling_mode>::table_;
-
+VisitorDispatchTable<ScavengingCallback> ScavengingVisitor<
+    marks_handling, promotion_mode, logging_and_profiling_mode>::table_;
 
 // static
 void Scavenger::Initialize() {
-  ScavengingVisitor<TRANSFER_MARKS,
+  ScavengingVisitor<TRANSFER_MARKS, PROMOTE_MARKED,
                     LOGGING_AND_PROFILING_DISABLED>::Initialize();
-  ScavengingVisitor<IGNORE_MARKS, LOGGING_AND_PROFILING_DISABLED>::Initialize();
-  ScavengingVisitor<TRANSFER_MARKS,
+  ScavengingVisitor<IGNORE_MARKS, DEFAULT_PROMOTION,
+                    LOGGING_AND_PROFILING_DISABLED>::Initialize();
+  ScavengingVisitor<TRANSFER_MARKS, PROMOTE_MARKED,
                     LOGGING_AND_PROFILING_ENABLED>::Initialize();
-  ScavengingVisitor<IGNORE_MARKS, LOGGING_AND_PROFILING_ENABLED>::Initialize();
+  ScavengingVisitor<IGNORE_MARKS, DEFAULT_PROMOTION,
+                    LOGGING_AND_PROFILING_ENABLED>::Initialize();
 }
 
 
@@ -412,28 +390,28 @@
 void Scavenger::SelectScavengingVisitorsTable() {
   bool logging_and_profiling =
       FLAG_verify_predictable || isolate()->logger()->is_logging() ||
-      isolate()->cpu_profiler()->is_profiling() ||
+      isolate()->is_profiling() ||
       (isolate()->heap_profiler() != NULL &&
        isolate()->heap_profiler()->is_tracking_object_moves());
 
   if (!heap()->incremental_marking()->IsMarking()) {
     if (!logging_and_profiling) {
       scavenging_visitors_table_.CopyFrom(
-          ScavengingVisitor<IGNORE_MARKS,
+          ScavengingVisitor<IGNORE_MARKS, DEFAULT_PROMOTION,
                             LOGGING_AND_PROFILING_DISABLED>::GetTable());
     } else {
       scavenging_visitors_table_.CopyFrom(
-          ScavengingVisitor<IGNORE_MARKS,
+          ScavengingVisitor<IGNORE_MARKS, DEFAULT_PROMOTION,
                             LOGGING_AND_PROFILING_ENABLED>::GetTable());
     }
   } else {
     if (!logging_and_profiling) {
       scavenging_visitors_table_.CopyFrom(
-          ScavengingVisitor<TRANSFER_MARKS,
+          ScavengingVisitor<TRANSFER_MARKS, PROMOTE_MARKED,
                             LOGGING_AND_PROFILING_DISABLED>::GetTable());
     } else {
       scavenging_visitors_table_.CopyFrom(
-          ScavengingVisitor<TRANSFER_MARKS,
+          ScavengingVisitor<TRANSFER_MARKS, PROMOTE_MARKED,
                             LOGGING_AND_PROFILING_ENABLED>::GetTable());
     }
 
@@ -467,6 +445,8 @@
   Object* object = *p;
   if (!heap_->InNewSpace(object)) return;
 
+  if (heap_->PurgeLeftTrimmedObject(p)) return;
+
   Scavenger::ScavengeObject(reinterpret_cast<HeapObject**>(p),
                             reinterpret_cast<HeapObject*>(object));
 }
diff --git a/src/heap/scavenger.h b/src/heap/scavenger.h
index 5d0abf4..f2213b8 100644
--- a/src/heap/scavenger.h
+++ b/src/heap/scavenger.h
@@ -6,6 +6,7 @@
 #define V8_HEAP_SCAVENGER_H_
 
 #include "src/heap/objects-visiting.h"
+#include "src/heap/slot-set.h"
 
 namespace v8 {
 namespace internal {
@@ -25,6 +26,8 @@
   // ensure the precondition that the object is (a) a heap object and (b) in
   // the heap's from space.
   static inline void ScavengeObject(HeapObject** p, HeapObject* object);
+  static inline SlotCallbackResult CheckAndScavengeObject(Heap* heap,
+                                                          Address slot_address);
 
   // Slow part of {ScavengeObject} above.
   static void ScavengeObjectSlow(HeapObject** p, HeapObject* object);
@@ -60,8 +63,9 @@
 
 // Helper class for turning the scavenger into an object visitor that is also
 // filtering out non-HeapObjects and objects which do not reside in new space.
+template <PromotionMode promotion_mode>
 class StaticScavengeVisitor
-    : public StaticNewSpaceVisitor<StaticScavengeVisitor> {
+    : public StaticNewSpaceVisitor<StaticScavengeVisitor<promotion_mode>> {
  public:
   static inline void VisitPointer(Heap* heap, HeapObject* object, Object** p);
 };
diff --git a/src/heap/slot-set.h b/src/heap/slot-set.h
index e55ffe9..2fac50f 100644
--- a/src/heap/slot-set.h
+++ b/src/heap/slot-set.h
@@ -217,7 +217,6 @@
 enum SlotType {
   EMBEDDED_OBJECT_SLOT,
   OBJECT_SLOT,
-  RELOCATED_CODE_OBJECT,
   CELL_TARGET_SLOT,
   CODE_TARGET_SLOT,
   CODE_ENTRY_SLOT,
@@ -234,7 +233,30 @@
 // typed slots contain V8 internal pointers that are not directly exposed to JS.
 class TypedSlotSet {
  public:
-  typedef uint32_t TypedSlot;
+  struct TypedSlot {
+    TypedSlot() : type_and_offset_(0), host_offset_(0) {}
+
+    TypedSlot(SlotType type, uint32_t host_offset, uint32_t offset)
+        : type_and_offset_(TypeField::encode(type) |
+                           OffsetField::encode(offset)),
+          host_offset_(host_offset) {}
+
+    bool operator==(const TypedSlot other) {
+      return type_and_offset_ == other.type_and_offset_ &&
+             host_offset_ == other.host_offset_;
+    }
+
+    bool operator!=(const TypedSlot other) { return !(*this == other); }
+
+    SlotType type() { return TypeField::decode(type_and_offset_); }
+
+    uint32_t offset() { return OffsetField::decode(type_and_offset_); }
+
+    uint32_t host_offset() { return host_offset_; }
+
+    uint32_t type_and_offset_;
+    uint32_t host_offset_;
+  };
   static const int kMaxOffset = 1 << 29;
 
   explicit TypedSlotSet(Address page_start) : page_start_(page_start) {
@@ -251,8 +273,8 @@
   }
 
   // The slot offset specifies a slot at address page_start_ + offset.
-  void Insert(SlotType type, int offset) {
-    TypedSlot slot = ToTypedSlot(type, offset);
+  void Insert(SlotType type, uint32_t host_offset, uint32_t offset) {
+    TypedSlot slot(type, host_offset, offset);
     if (!chunk_->AddSlot(slot)) {
       chunk_ = new Chunk(chunk_, NextCapacity(chunk_->capacity));
       bool added = chunk_->AddSlot(slot);
@@ -273,7 +295,7 @@
   template <typename Callback>
   int Iterate(Callback callback) {
     STATIC_ASSERT(NUMBER_OF_SLOT_TYPES < 8);
-    const TypedSlot kRemovedSlot = TypeField::encode(NUMBER_OF_SLOT_TYPES);
+    const TypedSlot kRemovedSlot(NUMBER_OF_SLOT_TYPES, 0, 0);
     Chunk* chunk = chunk_;
     int new_count = 0;
     while (chunk != nullptr) {
@@ -282,9 +304,10 @@
       for (int i = 0; i < count; i++) {
         TypedSlot slot = buffer[i];
         if (slot != kRemovedSlot) {
-          SlotType type = TypeField::decode(slot);
-          Address addr = page_start_ + OffsetField::decode(slot);
-          if (callback(type, addr) == KEEP_SLOT) {
+          SlotType type = slot.type();
+          Address addr = page_start_ + slot.offset();
+          Address host_addr = page_start_ + slot.host_offset();
+          if (callback(type, host_addr, addr) == KEEP_SLOT) {
             new_count++;
           } else {
             buffer[i] = kRemovedSlot;
@@ -304,10 +327,6 @@
     return Min(kMaxBufferSize, capacity * 2);
   }
 
-  static TypedSlot ToTypedSlot(SlotType type, int offset) {
-    return TypeField::encode(type) | OffsetField::encode(offset);
-  }
-
   class OffsetField : public BitField<int, 0, 29> {};
   class TypeField : public BitField<SlotType, 29, 3> {};
 
diff --git a/src/heap/spaces-inl.h b/src/heap/spaces-inl.h
index f9e40bb..dbf3fff 100644
--- a/src/heap/spaces-inl.h
+++ b/src/heap/spaces-inl.h
@@ -15,6 +15,24 @@
 namespace v8 {
 namespace internal {
 
+template <class PAGE_TYPE>
+PageIteratorImpl<PAGE_TYPE>& PageIteratorImpl<PAGE_TYPE>::operator++() {
+  p_ = p_->next_page();
+  return *this;
+}
+
+template <class PAGE_TYPE>
+PageIteratorImpl<PAGE_TYPE> PageIteratorImpl<PAGE_TYPE>::operator++(int) {
+  PageIteratorImpl<PAGE_TYPE> tmp(*this);
+  operator++();
+  return tmp;
+}
+
+NewSpacePageRange::NewSpacePageRange(Address start, Address limit)
+    : range_(Page::FromAddress(start),
+             Page::FromAllocationAreaAddress(limit)->next_page()) {
+  SemiSpace::AssertValidRange(start, limit);
+}
 
 // -----------------------------------------------------------------------------
 // Bitmap
@@ -31,25 +49,6 @@
     bitmap->cells()[i] = 0xffffffff;
 }
 
-// -----------------------------------------------------------------------------
-// PageIterator
-
-PageIterator::PageIterator(PagedSpace* space)
-    : space_(space),
-      prev_page_(&space->anchor_),
-      next_page_(prev_page_->next_page()) {}
-
-
-bool PageIterator::has_next() { return next_page_ != &space_->anchor_; }
-
-
-Page* PageIterator::next() {
-  DCHECK(has_next());
-  prev_page_ = next_page_;
-  next_page_ = next_page_->next_page();
-  return prev_page_;
-}
-
 
 // -----------------------------------------------------------------------------
 // SemiSpaceIterator
@@ -72,56 +71,17 @@
   return nullptr;
 }
 
-
-HeapObject* SemiSpaceIterator::next_object() { return Next(); }
-
-
-// -----------------------------------------------------------------------------
-// NewSpacePageIterator
-
-NewSpacePageIterator::NewSpacePageIterator(NewSpace* space)
-    : 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()),
-      next_page_(prev_page_->next_page()),
-      last_page_(prev_page_->prev_page()) {}
-
-NewSpacePageIterator::NewSpacePageIterator(Address start, Address 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_; }
-
-Page* NewSpacePageIterator::next() {
-  DCHECK(has_next());
-  prev_page_ = next_page_;
-  next_page_ = next_page_->next_page();
-  return prev_page_;
-}
-
-
 // -----------------------------------------------------------------------------
 // HeapObjectIterator
 
 HeapObject* HeapObjectIterator::Next() {
   do {
     HeapObject* next_obj = FromCurrentPage();
-    if (next_obj != NULL) return next_obj;
+    if (next_obj != nullptr) return next_obj;
   } while (AdvanceToNextPage());
-  return NULL;
+  return nullptr;
 }
 
-
-HeapObject* HeapObjectIterator::next_object() { return Next(); }
-
-
 HeapObject* HeapObjectIterator::FromCurrentPage() {
   while (cur_addr_ != cur_end_) {
     if (cur_addr_ == space_->top() && cur_addr_ != space_->limit()) {
@@ -129,15 +89,9 @@
       continue;
     }
     HeapObject* obj = HeapObject::FromAddress(cur_addr_);
-    int obj_size = obj->Size();
+    const int obj_size = obj->Size();
     cur_addr_ += obj_size;
-    DCHECK(cur_addr_ <= cur_end_);
-    // TODO(hpayer): Remove the debugging code.
-    if (cur_addr_ > cur_end_) {
-      space_->heap()->isolate()->PushStackTraceAndDie(0xaaaaaaaa, obj, NULL,
-                                                      obj_size);
-    }
-
+    DCHECK_LE(cur_addr_, cur_end_);
     if (!obj->IsFiller()) {
       if (obj->IsCode()) {
         DCHECK_EQ(space_, space_->heap()->code_space());
@@ -148,21 +102,7 @@
       return obj;
     }
   }
-  return NULL;
-}
-
-// -----------------------------------------------------------------------------
-// LargePageIterator
-
-LargePageIterator::LargePageIterator(LargeObjectSpace* space)
-    : next_page_(space->first_page()) {}
-
-LargePage* LargePageIterator::next() {
-  LargePage* result = next_page_;
-  if (next_page_ != nullptr) {
-    next_page_ = next_page_->next_page();
-  }
-  return result;
+  return nullptr;
 }
 
 // -----------------------------------------------------------------------------
@@ -209,9 +149,8 @@
 }
 
 bool SemiSpace::ContainsSlow(Address a) {
-  NewSpacePageIterator it(this);
-  while (it.has_next()) {
-    if (it.next() == MemoryChunk::FromAddress(a)) return true;
+  for (Page* p : *this) {
+    if (p == MemoryChunk::FromAddress(a)) return true;
   }
   return false;
 }
@@ -260,6 +199,7 @@
                                        : MemoryChunk::IN_TO_SPACE));
   Page* page = static_cast<Page*>(chunk);
   heap->incremental_marking()->SetNewSpacePageFlags(page);
+  page->AllocateLocalTracker();
   return page;
 }
 
@@ -270,7 +210,6 @@
 Page* Page::Initialize(Heap* heap, MemoryChunk* chunk, Executability executable,
                        PagedSpace* owner) {
   Page* page = reinterpret_cast<Page*>(chunk);
-  page->mutex_ = new base::Mutex();
   DCHECK(page->area_size() <= kAllocatableMemory);
   DCHECK(chunk->owner() == owner);
 
@@ -311,8 +250,8 @@
 
 void MemoryChunk::ResetLiveBytes() {
   if (FLAG_trace_live_bytes) {
-    PrintIsolate(heap()->isolate(), "live-bytes: reset page=%p %d->0\n", this,
-                 live_byte_count_);
+    PrintIsolate(heap()->isolate(), "live-bytes: reset page=%p %d->0\n",
+                 static_cast<void*>(this), live_byte_count_);
   }
   live_byte_count_ = 0;
 }
@@ -320,9 +259,9 @@
 void MemoryChunk::IncrementLiveBytes(int by) {
   if (IsFlagSet(BLACK_PAGE)) return;
   if (FLAG_trace_live_bytes) {
-    PrintIsolate(heap()->isolate(),
-                 "live-bytes: update page=%p delta=%d %d->%d\n", this, by,
-                 live_byte_count_, live_byte_count_ + by);
+    PrintIsolate(
+        heap()->isolate(), "live-bytes: update page=%p delta=%d %d->%d\n",
+        static_cast<void*>(this), by, live_byte_count_, live_byte_count_ + by);
   }
   live_byte_count_ += by;
   DCHECK_GE(live_byte_count_, 0);
@@ -382,6 +321,7 @@
 }
 
 void Page::MarkNeverAllocateForTesting() {
+  DCHECK(this->owner()->identity() != NEW_SPACE);
   DCHECK(!IsFlagSet(NEVER_ALLOCATE_ON_PAGE));
   SetFlag(NEVER_ALLOCATE_ON_PAGE);
   reinterpret_cast<PagedSpace*>(owner())->free_list()->EvictFreeListItems(this);
@@ -404,42 +344,34 @@
   InitializeFreeListCategories();
 }
 
-MemoryChunkIterator::MemoryChunkIterator(Heap* heap, Mode mode)
-    : state_(kOldSpaceState),
-      mode_(mode),
-      old_iterator_(heap->old_space()),
-      code_iterator_(heap->code_space()),
-      map_iterator_(heap->map_space()),
-      lo_iterator_(heap->lo_space()) {}
+MemoryChunkIterator::MemoryChunkIterator(Heap* heap)
+    : heap_(heap),
+      state_(kOldSpaceState),
+      old_iterator_(heap->old_space()->begin()),
+      code_iterator_(heap->code_space()->begin()),
+      map_iterator_(heap->map_space()->begin()),
+      lo_iterator_(heap->lo_space()->begin()) {}
 
 MemoryChunk* MemoryChunkIterator::next() {
   switch (state_) {
     case kOldSpaceState: {
-      if (old_iterator_.has_next()) {
-        return old_iterator_.next();
-      }
+      if (old_iterator_ != heap_->old_space()->end()) return *(old_iterator_++);
       state_ = kMapState;
       // Fall through.
     }
     case kMapState: {
-      if (mode_ != ALL_BUT_MAP_SPACE && map_iterator_.has_next()) {
-        return map_iterator_.next();
-      }
+      if (map_iterator_ != heap_->map_space()->end()) return *(map_iterator_++);
       state_ = kCodeState;
       // Fall through.
     }
     case kCodeState: {
-      if (mode_ != ALL_BUT_CODE_SPACE && code_iterator_.has_next()) {
-        return code_iterator_.next();
-      }
+      if (code_iterator_ != heap_->code_space()->end())
+        return *(code_iterator_++);
       state_ = kLargeObjectState;
       // Fall through.
     }
     case kLargeObjectState: {
-      MemoryChunk* answer = lo_iterator_.next();
-      if (answer != nullptr) {
-        return answer;
-      }
+      if (lo_iterator_ != heap_->lo_space()->end()) return *(lo_iterator_++);
       state_ = kFinishedState;
       // Fall through;
     }
diff --git a/src/heap/spaces.cc b/src/heap/spaces.cc
index e517c45..1dcd044 100644
--- a/src/heap/spaces.cc
+++ b/src/heap/spaces.cc
@@ -4,10 +4,13 @@
 
 #include "src/heap/spaces.h"
 
+#include <utility>
+
 #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/array-buffer-tracker.h"
 #include "src/heap/slot-set.h"
 #include "src/macro-assembler.h"
 #include "src/msan.h"
@@ -21,50 +24,34 @@
 // ----------------------------------------------------------------------------
 // HeapObjectIterator
 
-HeapObjectIterator::HeapObjectIterator(PagedSpace* space) {
-  // You can't actually iterate over the anchor page.  It is not a real page,
-  // just an anchor for the double linked page list.  Initialize as if we have
-  // reached the end of the anchor page, then the first iteration will move on
-  // to the first page.
-  Initialize(space, NULL, NULL, kAllPagesInSpace);
-}
+HeapObjectIterator::HeapObjectIterator(PagedSpace* space)
+    : cur_addr_(nullptr),
+      cur_end_(nullptr),
+      space_(space),
+      page_range_(space->anchor()->next_page(), space->anchor()),
+      current_page_(page_range_.begin()) {}
 
-
-HeapObjectIterator::HeapObjectIterator(Page* page) {
+HeapObjectIterator::HeapObjectIterator(Page* page)
+    : cur_addr_(nullptr),
+      cur_end_(nullptr),
+      space_(reinterpret_cast<PagedSpace*>(page->owner())),
+      page_range_(page),
+      current_page_(page_range_.begin()) {
+#ifdef DEBUG
   Space* owner = page->owner();
   DCHECK(owner == page->heap()->old_space() ||
          owner == page->heap()->map_space() ||
          owner == page->heap()->code_space());
-  Initialize(reinterpret_cast<PagedSpace*>(owner), page->area_start(),
-             page->area_end(), kOnePageOnly);
-  DCHECK(page->SweepingDone());
+#endif  // DEBUG
 }
 
-
-void HeapObjectIterator::Initialize(PagedSpace* space, Address cur, Address end,
-                                    HeapObjectIterator::PageMode mode) {
-  space_ = space;
-  cur_addr_ = cur;
-  cur_end_ = end;
-  page_mode_ = mode;
-}
-
-
 // We have hit the end of the page and should advance to the next block of
 // objects.  This happens at the end of the page.
 bool HeapObjectIterator::AdvanceToNextPage() {
-  DCHECK(cur_addr_ == cur_end_);
-  if (page_mode_ == kOnePageOnly) return false;
-  Page* cur_page;
-  if (cur_addr_ == NULL) {
-    cur_page = space_->anchor();
-  } else {
-    cur_page = Page::FromAddress(cur_addr_ - 1);
-    DCHECK(cur_addr_ == cur_page->area_end());
-  }
-  cur_page = cur_page->next_page();
-  if (cur_page == space_->anchor()) return false;
-  cur_page->heap()
+  DCHECK_EQ(cur_addr_, cur_end_);
+  if (current_page_ == page_range_.end()) return false;
+  Page* cur_page = *(current_page_++);
+  space_->heap()
       ->mark_compact_collector()
       ->sweeper()
       .SweepOrWaitUntilSweepingCompleted(cur_page);
@@ -119,15 +106,16 @@
     requested = kMinimumCodeRangeSize;
   }
 
+  const size_t reserved_area =
+      kReservedCodeRangePages * base::OS::CommitPageSize();
+  if (requested < (kMaximalCodeRangeSize - reserved_area))
+    requested += reserved_area;
+
   DCHECK(!kRequiresCodeRange || requested <= kMaximalCodeRangeSize);
-#ifdef V8_TARGET_ARCH_MIPS64
-  // To use pseudo-relative jumps such as j/jal instructions which have 28-bit
-  // encoded immediate, the addresses have to be in range of 256Mb aligned
-  // region.
-  code_range_ = new base::VirtualMemory(requested, kMaximalCodeRangeSize);
-#else
-  code_range_ = new base::VirtualMemory(requested);
-#endif
+
+  code_range_ = new base::VirtualMemory(
+      requested, Max(kCodeRangeAreaAlignment,
+                     static_cast<size_t>(base::OS::AllocateAlignment())));
   CHECK(code_range_ != NULL);
   if (!code_range_->IsReserved()) {
     delete code_range_;
@@ -141,18 +129,16 @@
 
   // On some platforms, specifically Win64, we need to reserve some pages at
   // the beginning of an executable space.
-  if (kReservedCodeRangePages) {
-    if (!code_range_->Commit(
-            base, kReservedCodeRangePages * base::OS::CommitPageSize(), true)) {
+  if (reserved_area > 0) {
+    if (!code_range_->Commit(base, reserved_area, true)) {
       delete code_range_;
       code_range_ = NULL;
       return false;
     }
-    base += kReservedCodeRangePages * base::OS::CommitPageSize();
+    base += reserved_area;
   }
   Address aligned_base = RoundUp(base, MemoryChunk::kAlignment);
-  size_t size = code_range_->size() - (aligned_base - base) -
-                kReservedCodeRangePages * base::OS::CommitPageSize();
+  size_t size = code_range_->size() - (aligned_base - base) - reserved_area;
   allocation_list_.Add(FreeBlock(aligned_base, size));
   current_allocation_block_index_ = 0;
 
@@ -364,6 +350,7 @@
 };
 
 void MemoryAllocator::Unmapper::FreeQueuedChunks() {
+  ReconsiderDelayedChunks();
   if (FLAG_concurrent_sweeping) {
     V8::GetCurrentPlatform()->CallOnBackgroundThread(
         new UnmapFreeMemoryTask(this), v8::Platform::kShortRunningTask);
@@ -397,6 +384,24 @@
   }
 }
 
+void MemoryAllocator::Unmapper::ReconsiderDelayedChunks() {
+  std::list<MemoryChunk*> delayed_chunks(std::move(delayed_regular_chunks_));
+  // Move constructed, so the permanent list should be empty.
+  DCHECK(delayed_regular_chunks_.empty());
+  for (auto it = delayed_chunks.begin(); it != delayed_chunks.end(); ++it) {
+    AddMemoryChunkSafe<kRegular>(*it);
+  }
+}
+
+bool MemoryAllocator::CanFreeMemoryChunk(MemoryChunk* chunk) {
+  MarkCompactCollector* mc = isolate_->heap()->mark_compact_collector();
+  // We cannot free memory chunks in new space while the sweeper is running
+  // since a sweeper thread might be stuck right before trying to lock the
+  // corresponding page.
+  return !chunk->InNewSpace() || (mc == nullptr) ||
+         mc->sweeper().IsSweepingCompleted();
+}
+
 bool MemoryAllocator::CommitMemory(Address base, size_t size,
                                    Executability executable) {
   if (!base::VirtualMemory::CommitRegion(base, size,
@@ -414,8 +419,8 @@
   // Code which is part of the code-range does not have its own VirtualMemory.
   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);
+  DCHECK(executable == NOT_EXECUTABLE || !code_range()->valid() ||
+         reservation->size() <= Page::kPageSize);
 
   reservation->Release();
 }
@@ -429,8 +434,7 @@
     DCHECK(executable == EXECUTABLE);
     code_range()->FreeRawMemory(base, size);
   } else {
-    DCHECK(executable == NOT_EXECUTABLE || code_range() == NULL ||
-           !code_range()->valid());
+    DCHECK(executable == NOT_EXECUTABLE || !code_range()->valid());
     bool result = base::VirtualMemory::ReleaseRegion(base, size);
     USE(result);
     DCHECK(result);
@@ -506,19 +510,21 @@
   chunk->InitializeReservedMemory();
   chunk->old_to_new_slots_ = nullptr;
   chunk->old_to_old_slots_ = nullptr;
+  chunk->typed_old_to_new_slots_ = nullptr;
   chunk->typed_old_to_old_slots_ = nullptr;
   chunk->skip_list_ = nullptr;
   chunk->write_barrier_counter_ = kWriteBarrierCounterGranularity;
   chunk->progress_bar_ = 0;
   chunk->high_water_mark_.SetValue(static_cast<intptr_t>(area_start - base));
   chunk->concurrent_sweeping_state().SetValue(kSweepingDone);
-  chunk->mutex_ = nullptr;
+  chunk->mutex_ = new base::Mutex();
   chunk->available_in_free_list_ = 0;
   chunk->wasted_memory_ = 0;
   chunk->ResetLiveBytes();
   Bitmap::Clear(chunk);
   chunk->set_next_chunk(nullptr);
   chunk->set_prev_chunk(nullptr);
+  chunk->local_tracker_ = nullptr;
 
   DCHECK(OFFSET_OF(MemoryChunk, flags_) == kFlagsOffset);
   DCHECK(OFFSET_OF(MemoryChunk, live_byte_count_) == kLiveBytesOffset);
@@ -560,8 +566,7 @@
       }
     } else {
       CodeRange* code_range = heap_->memory_allocator()->code_range();
-      DCHECK(code_range != NULL && code_range->valid() &&
-             IsFlagSet(IS_EXECUTABLE));
+      DCHECK(code_range->valid() && IsFlagSet(IS_EXECUTABLE));
       if (!code_range->CommitRawMemory(start, length)) return false;
     }
 
@@ -577,8 +582,7 @@
       if (!reservation_.Uncommit(start, length)) return false;
     } else {
       CodeRange* code_range = heap_->memory_allocator()->code_range();
-      DCHECK(code_range != NULL && code_range->valid() &&
-             IsFlagSet(IS_EXECUTABLE));
+      DCHECK(code_range->valid() && IsFlagSet(IS_EXECUTABLE));
       if (!code_range->UncommitRawMemory(start, length)) return false;
     }
   }
@@ -672,10 +676,9 @@
 #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 (code_range() != NULL && code_range()->valid() &&
-        reserve_area_size > CodePageAreaSize()) {
+    if (code_range()->valid() && reserve_area_size > CodePageAreaSize()) {
 #else
-    if (code_range() != NULL && code_range()->valid()) {
+    if (code_range()->valid()) {
 #endif
       base =
           code_range()->AllocateRawMemory(chunk_size, commit_size, &chunk_size);
@@ -727,10 +730,6 @@
       static_cast<int>(chunk_size));
 
   LOG(isolate_, NewEvent("MemoryChunk", base, chunk_size));
-  if (owner != NULL) {
-    ObjectSpace space = static_cast<ObjectSpace>(1 << owner->identity());
-    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
@@ -762,11 +761,6 @@
 void MemoryAllocator::PreFreeMemory(MemoryChunk* chunk) {
   DCHECK(!chunk->IsFlagSet(MemoryChunk::PRE_FREED));
   LOG(isolate_, DeleteEvent("MemoryChunk", chunk));
-  if (chunk->owner() != NULL) {
-    ObjectSpace space =
-        static_cast<ObjectSpace>(1 << chunk->owner()->identity());
-    PerformAllocationCallback(space, kAllocationActionFree, chunk->size());
-  }
 
   isolate_->heap()->RememberUnmappedPage(reinterpret_cast<Address>(chunk),
                                          chunk->IsEvacuationCandidate());
@@ -915,52 +909,6 @@
   }
 }
 
-
-void MemoryAllocator::PerformAllocationCallback(ObjectSpace space,
-                                                AllocationAction action,
-                                                size_t size) {
-  for (int i = 0; i < memory_allocation_callbacks_.length(); ++i) {
-    MemoryAllocationCallbackRegistration registration =
-        memory_allocation_callbacks_[i];
-    if ((registration.space & space) == space &&
-        (registration.action & action) == action)
-      registration.callback(space, action, static_cast<int>(size));
-  }
-}
-
-
-bool MemoryAllocator::MemoryAllocationCallbackRegistered(
-    MemoryAllocationCallback callback) {
-  for (int i = 0; i < memory_allocation_callbacks_.length(); ++i) {
-    if (memory_allocation_callbacks_[i].callback == callback) return true;
-  }
-  return false;
-}
-
-
-void MemoryAllocator::AddMemoryAllocationCallback(
-    MemoryAllocationCallback callback, ObjectSpace space,
-    AllocationAction action) {
-  DCHECK(callback != NULL);
-  MemoryAllocationCallbackRegistration registration(callback, space, action);
-  DCHECK(!MemoryAllocator::MemoryAllocationCallbackRegistered(callback));
-  return memory_allocation_callbacks_.Add(registration);
-}
-
-
-void MemoryAllocator::RemoveMemoryAllocationCallback(
-    MemoryAllocationCallback callback) {
-  DCHECK(callback != NULL);
-  for (int i = 0; i < memory_allocation_callbacks_.length(); ++i) {
-    if (memory_allocation_callbacks_[i].callback == callback) {
-      memory_allocation_callbacks_.Remove(i);
-      return;
-    }
-  }
-  UNREACHABLE();
-}
-
-
 #ifdef DEBUG
 void MemoryAllocator::ReportStatistics() {
   intptr_t size = Size();
@@ -1041,6 +989,9 @@
   }
   if (old_to_new_slots_ != nullptr) ReleaseOldToNewSlots();
   if (old_to_old_slots_ != nullptr) ReleaseOldToOldSlots();
+  if (typed_old_to_new_slots_ != nullptr) ReleaseTypedOldToNewSlots();
+  if (typed_old_to_old_slots_ != nullptr) ReleaseTypedOldToOldSlots();
+  if (local_tracker_ != nullptr) ReleaseLocalTracker();
 }
 
 static SlotSet* AllocateSlotSet(size_t size, Address page_start) {
@@ -1073,6 +1024,16 @@
   old_to_old_slots_ = nullptr;
 }
 
+void MemoryChunk::AllocateTypedOldToNewSlots() {
+  DCHECK(nullptr == typed_old_to_new_slots_);
+  typed_old_to_new_slots_ = new TypedSlotSet(address());
+}
+
+void MemoryChunk::ReleaseTypedOldToNewSlots() {
+  delete typed_old_to_new_slots_;
+  typed_old_to_new_slots_ = nullptr;
+}
+
 void MemoryChunk::AllocateTypedOldToOldSlots() {
   DCHECK(nullptr == typed_old_to_old_slots_);
   typed_old_to_old_slots_ = new TypedSlotSet(address());
@@ -1082,6 +1043,18 @@
   delete typed_old_to_old_slots_;
   typed_old_to_old_slots_ = nullptr;
 }
+
+void MemoryChunk::AllocateLocalTracker() {
+  DCHECK_NULL(local_tracker_);
+  local_tracker_ = new LocalArrayBufferTracker(heap());
+}
+
+void MemoryChunk::ReleaseLocalTracker() {
+  DCHECK_NOT_NULL(local_tracker_);
+  delete local_tracker_;
+  local_tracker_ = nullptr;
+}
+
 // -----------------------------------------------------------------------------
 // PagedSpace implementation
 
@@ -1120,9 +1093,10 @@
 
 
 void PagedSpace::TearDown() {
-  PageIterator iterator(this);
-  while (iterator.has_next()) {
-    heap()->memory_allocator()->Free<MemoryAllocator::kFull>(iterator.next());
+  for (auto it = begin(); it != end();) {
+    Page* page = *(it++);  // Will be erased.
+    ArrayBufferTracker::FreeAll(page);
+    heap()->memory_allocator()->Free<MemoryAllocator::kFull>(page);
   }
   anchor_.set_next_page(&anchor_);
   anchor_.set_prev_page(&anchor_);
@@ -1178,10 +1152,8 @@
   AccountCommitted(other->CommittedMemory());
 
   // Move over pages.
-  PageIterator it(other);
-  Page* p = nullptr;
-  while (it.has_next()) {
-    p = it.next();
+  for (auto it = other->begin(); it != other->end();) {
+    Page* p = *(it++);
 
     // Relinking requires the category to be unlinked.
     other->UnlinkFreeListCategories(p);
@@ -1198,18 +1170,16 @@
   if (!base::VirtualMemory::HasLazyCommits()) return CommittedMemory();
   MemoryChunk::UpdateHighWaterMark(allocation_info_.top());
   size_t size = 0;
-  PageIterator it(this);
-  while (it.has_next()) {
-    size += it.next()->CommittedPhysicalMemory();
+  for (Page* page : *this) {
+    size += page->CommittedPhysicalMemory();
   }
   return size;
 }
 
 bool PagedSpace::ContainsSlow(Address addr) {
   Page* p = Page::FromAddress(addr);
-  PageIterator iterator(this);
-  while (iterator.has_next()) {
-    if (iterator.next() == p) return true;
+  for (Page* page : *this) {
+    if (page == p) return true;
   }
   return false;
 }
@@ -1233,7 +1203,6 @@
   return Smi::FromInt(0);
 }
 
-
 bool PagedSpace::Expand() {
   int size = AreaSize();
   if (snapshotable() && !HasPages()) {
@@ -1257,7 +1226,8 @@
     Bitmap::SetAllBits(p);
     p->SetFlag(Page::BLACK_PAGE);
     if (FLAG_trace_incremental_marking) {
-      PrintIsolate(heap()->isolate(), "Added black page %p\n", p);
+      PrintIsolate(heap()->isolate(), "Added black page %p\n",
+                   static_cast<void*>(p));
     }
   }
 
@@ -1270,20 +1240,17 @@
 
 
 int PagedSpace::CountTotalPages() {
-  PageIterator it(this);
   int count = 0;
-  while (it.has_next()) {
-    it.next();
+  for (Page* page : *this) {
     count++;
+    USE(page);
   }
   return count;
 }
 
 
 void PagedSpace::ResetFreeListStatistics() {
-  PageIterator page_iterator(this);
-  while (page_iterator.has_next()) {
-    Page* page = page_iterator.next();
+  for (Page* page : *this) {
     page->ResetFreeListStatistics();
   }
 }
@@ -1326,9 +1293,7 @@
 void PagedSpace::Verify(ObjectVisitor* visitor) {
   bool allocation_pointer_found_in_space =
       (allocation_info_.top() == allocation_info_.limit());
-  PageIterator page_iterator(this);
-  while (page_iterator.has_next()) {
-    Page* page = page_iterator.next();
+  for (Page* page : *this) {
     CHECK(page->owner() == this);
     if (page == Page::FromAllocationAreaAddress(allocation_info_.top())) {
       allocation_pointer_found_in_space = true;
@@ -1415,7 +1380,6 @@
   from_space_.TearDown();
 }
 
-
 void NewSpace::Flip() { SemiSpace::Swap(&from_space_, &to_space_); }
 
 
@@ -1461,6 +1425,48 @@
   DCHECK_SEMISPACE_ALLOCATION_INFO(allocation_info_, to_space_);
 }
 
+bool NewSpace::Rebalance() {
+  CHECK(heap()->promotion_queue()->is_empty());
+  // Order here is important to make use of the page pool.
+  return to_space_.EnsureCurrentCapacity() &&
+         from_space_.EnsureCurrentCapacity();
+}
+
+bool SemiSpace::EnsureCurrentCapacity() {
+  if (is_committed()) {
+    const int expected_pages = current_capacity_ / Page::kPageSize;
+    int actual_pages = 0;
+    Page* current_page = anchor()->next_page();
+    while (current_page != anchor()) {
+      actual_pages++;
+      current_page = current_page->next_page();
+      if (actual_pages > expected_pages) {
+        Page* to_remove = current_page->prev_page();
+        // Make sure we don't overtake the actual top pointer.
+        CHECK_NE(to_remove, current_page_);
+        to_remove->Unlink();
+        heap()->memory_allocator()->Free<MemoryAllocator::kPooledAndQueue>(
+            to_remove);
+      }
+    }
+    while (actual_pages < expected_pages) {
+      actual_pages++;
+      current_page =
+          heap()->memory_allocator()->AllocatePage<MemoryAllocator::kPooled>(
+              Page::kAllocatableMemory, this, executable());
+      if (current_page == nullptr) return false;
+      DCHECK_NOT_NULL(current_page);
+      current_page->InsertAfter(anchor());
+      Bitmap::Clear(current_page);
+      current_page->SetFlags(anchor()->prev_page()->GetFlags(),
+                             Page::kCopyAllFlags);
+      heap()->CreateFillerObjectAt(current_page->area_start(),
+                                   current_page->area_size(),
+                                   ClearRecordedSlots::kNo);
+    }
+  }
+  return true;
+}
 
 void LocalAllocationBuffer::Close() {
   if (IsValid()) {
@@ -1517,11 +1523,9 @@
   Address old_top = allocation_info_.top();
   to_space_.Reset();
   UpdateAllocationInfo();
-  pages_used_ = 0;
   // Clear all mark-bits in the to-space.
-  NewSpacePageIterator it(&to_space_);
-  while (it.has_next()) {
-    Bitmap::Clear(it.next());
+  for (Page* p : to_space_) {
+    Bitmap::Clear(p);
   }
   InlineAllocationStep(old_top, allocation_info_.top(), nullptr, 0);
 }
@@ -1563,7 +1567,6 @@
 
   int remaining_in_page = static_cast<int>(limit - top);
   heap()->CreateFillerObjectAt(top, remaining_in_page, ClearRecordedSlots::kNo);
-  pages_used_++;
   UpdateAllocationInfo();
 
   return true;
@@ -1739,7 +1742,12 @@
 
 void SemiSpace::TearDown() {
   // Properly uncommit memory to keep the allocator counters in sync.
-  if (is_committed()) Uncommit();
+  if (is_committed()) {
+    for (Page* p : *this) {
+      ArrayBufferTracker::FreeAll(p);
+    }
+    Uncommit();
+  }
   current_capacity_ = maximum_capacity_ = 0;
 }
 
@@ -1771,10 +1779,9 @@
 
 bool SemiSpace::Uncommit() {
   DCHECK(is_committed());
-  NewSpacePageIterator it(this);
-  while (it.has_next()) {
-    heap()->memory_allocator()->Free<MemoryAllocator::kPooledAndQueue>(
-        it.next());
+  for (auto it = begin(); it != end();) {
+    Page* p = *(it++);
+    heap()->memory_allocator()->Free<MemoryAllocator::kPooledAndQueue>(p);
   }
   anchor()->set_next_page(anchor());
   anchor()->set_prev_page(anchor());
@@ -1788,9 +1795,8 @@
 size_t SemiSpace::CommittedPhysicalMemory() {
   if (!is_committed()) return 0;
   size_t size = 0;
-  NewSpacePageIterator it(this);
-  while (it.has_next()) {
-    size += it.next()->CommittedPhysicalMemory();
+  for (Page* p : *this) {
+    size += p->CommittedPhysicalMemory();
   }
   return size;
 }
@@ -1871,9 +1877,7 @@
   anchor_.prev_page()->set_next_page(&anchor_);
   anchor_.next_page()->set_prev_page(&anchor_);
 
-  NewSpacePageIterator it(this);
-  while (it.has_next()) {
-    Page* page = it.next();
+  for (Page* page : *this) {
     page->set_owner(this);
     page->SetFlags(flags, mask);
     if (id_ == kToSpace) {
@@ -1894,23 +1898,21 @@
 void SemiSpace::Reset() {
   DCHECK_NE(anchor_.next_page(), &anchor_);
   current_page_ = anchor_.next_page();
+  pages_used_ = 0;
 }
 
-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::RemovePage(Page* page) {
+  if (current_page_ == page) {
+    current_page_ = page->prev_page();
+  }
+  page->Unlink();
+}
+
+void SemiSpace::PrependPage(Page* page) {
+  page->SetFlags(current_page()->GetFlags(), Page::kCopyAllFlags);
+  page->set_owner(this);
+  page->InsertAfter(anchor());
+  pages_used_++;
 }
 
 void SemiSpace::Swap(SemiSpace* from, SemiSpace* to) {
@@ -1938,9 +1940,8 @@
   DCHECK_EQ(Page::FromAllocationAreaAddress(mark)->owner(), this);
   age_mark_ = mark;
   // Mark all pages up to the one containing mark.
-  NewSpacePageIterator it(space_start(), mark);
-  while (it.has_next()) {
-    it.next()->SetFlag(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK);
+  for (Page* p : NewSpacePageRange(space_start(), mark)) {
+    p->SetFlag(MemoryChunk::NEW_SPACE_BELOW_AGE_MARK);
   }
 }
 
@@ -2016,7 +2017,6 @@
   limit_ = end;
 }
 
-
 #ifdef DEBUG
 // heap_histograms is shared, always clear it before using it.
 static void ClearHistograms(Isolate* isolate) {
@@ -2034,25 +2034,22 @@
 
 
 static void ClearCodeKindStatistics(int* code_kind_statistics) {
-  for (int i = 0; i < Code::NUMBER_OF_KINDS; i++) {
+  for (int i = 0; i < AbstractCode::NUMBER_OF_KINDS; i++) {
     code_kind_statistics[i] = 0;
   }
 }
-
-
 static void ReportCodeKindStatistics(int* code_kind_statistics) {
   PrintF("\n   Code kind histograms: \n");
-  for (int i = 0; i < Code::NUMBER_OF_KINDS; i++) {
+  for (int i = 0; i < AbstractCode::NUMBER_OF_KINDS; i++) {
     if (code_kind_statistics[i] > 0) {
       PrintF("     %-20s: %10d bytes\n",
-             Code::Kind2String(static_cast<Code::Kind>(i)),
+             AbstractCode::Kind2String(static_cast<AbstractCode::Kind>(i)),
              code_kind_statistics[i]);
     }
   }
   PrintF("\n");
 }
 
-
 static int CollectHistogramInfo(HeapObject* obj) {
   Isolate* isolate = obj->GetIsolate();
   InstanceType type = obj->map()->instance_type();
@@ -2562,10 +2559,11 @@
 
 void FreeList::PrintCategories(FreeListCategoryType type) {
   FreeListCategoryIterator it(this, type);
-  PrintF("FreeList[%p, top=%p, %d] ", this, categories_[type], type);
+  PrintF("FreeList[%p, top=%p, %d] ", static_cast<void*>(this),
+         static_cast<void*>(categories_[type]), type);
   while (it.HasNext()) {
     FreeListCategory* current = it.Next();
-    PrintF("%p -> ", current);
+    PrintF("%p -> ", static_cast<void*>(current));
   }
   PrintF("null\n");
 }
@@ -2649,9 +2647,7 @@
   free_list_.RepairLists(heap());
   // Each page may have a small free space that is not tracked by a free list.
   // Update the maps for those free space objects.
-  PageIterator iterator(this);
-  while (iterator.has_next()) {
-    Page* page = iterator.next();
+  for (Page* page : *this) {
     int size = static_cast<int>(page->wasted_memory());
     if (size == 0) continue;
     Address address = page->OffsetToAddress(Page::kPageSize - size);
@@ -2748,12 +2744,15 @@
   return SweepAndRetryAllocation(size_in_bytes);
 }
 
-
 #ifdef DEBUG
 void PagedSpace::ReportCodeStatistics(Isolate* isolate) {
   CommentStatistic* comments_statistics =
       isolate->paged_space_comments_statistics();
   ReportCodeKindStatistics(isolate->code_kind_statistics());
+  PrintF("Code size including metadata    : %10d bytes\n",
+         isolate->code_and_metadata_size());
+  PrintF("Bytecode size including metadata: %10d bytes\n",
+         isolate->bytecode_and_metadata_size());
   PrintF(
       "Code comment statistics (\"   [ comment-txt   :    size/   "
       "count  (average)\"):\n");
@@ -2767,7 +2766,6 @@
   PrintF("\n");
 }
 
-
 void PagedSpace::ResetCodeStatistics(Isolate* isolate) {
   CommentStatistic* comments_statistics =
       isolate->paged_space_comments_statistics();
@@ -2843,40 +2841,28 @@
   EnterComment(isolate, comment_txt, flat_delta);
 }
 
-
-// Collects code size statistics:
-// - by code kind
-// - by code comment
-void PagedSpace::CollectCodeStatistics() {
-  Isolate* isolate = heap()->isolate();
-  HeapObjectIterator obj_it(this);
-  for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) {
-    if (obj->IsAbstractCode()) {
-      AbstractCode* code = AbstractCode::cast(obj);
-      isolate->code_kind_statistics()[code->kind()] += code->Size();
-    }
-    if (obj->IsCode()) {
-      // TODO(mythria): Also enable this for BytecodeArray when it supports
-      // RelocInformation.
-      Code* code = Code::cast(obj);
-      RelocIterator it(code);
-      int delta = 0;
-      const byte* prev_pc = code->instruction_start();
-      while (!it.done()) {
-        if (it.rinfo()->rmode() == RelocInfo::COMMENT) {
-          delta += static_cast<int>(it.rinfo()->pc() - prev_pc);
-          CollectCommentStatistics(isolate, &it);
-          prev_pc = it.rinfo()->pc();
-        }
-        it.next();
-      }
-
-      DCHECK(code->instruction_start() <= prev_pc &&
-             prev_pc <= code->instruction_end());
-      delta += static_cast<int>(code->instruction_end() - prev_pc);
-      EnterComment(isolate, "NoComment", delta);
-    }
+// Collects code comment statistics
+static void CollectCodeCommentStatistics(HeapObject* obj, Isolate* isolate) {
+  if (!obj->IsCode()) {
+    return;
   }
+  Code* code = Code::cast(obj);
+  RelocIterator it(code);
+  int delta = 0;
+  const byte* prev_pc = code->instruction_start();
+  while (!it.done()) {
+    if (it.rinfo()->rmode() == RelocInfo::COMMENT) {
+      delta += static_cast<int>(it.rinfo()->pc() - prev_pc);
+      CollectCommentStatistics(isolate, &it);
+      prev_pc = it.rinfo()->pc();
+    }
+    it.next();
+  }
+
+  DCHECK(code->instruction_start() <= prev_pc &&
+         prev_pc <= code->instruction_end());
+  delta += static_cast<int>(code->instruction_end() - prev_pc);
+  EnterComment(isolate, "NoComment", delta);
 }
 
 
@@ -2897,6 +2883,44 @@
 }
 #endif
 
+static void RecordCodeSizeIncludingMetadata(AbstractCode* abstract_code,
+                                            Isolate* isolate) {
+  int size = abstract_code->SizeIncludingMetadata();
+  if (abstract_code->IsCode()) {
+    size += isolate->code_and_metadata_size();
+    isolate->set_code_and_metadata_size(size);
+  } else {
+    size += isolate->bytecode_and_metadata_size();
+    isolate->set_bytecode_and_metadata_size(size);
+  }
+}
+
+// Collects code size statistics:
+// - code and metadata size
+// - by code kind (only in debug mode)
+// - by code comment (only in debug mode)
+void PagedSpace::CollectCodeStatistics() {
+  Isolate* isolate = heap()->isolate();
+  HeapObjectIterator obj_it(this);
+  for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) {
+    if (obj->IsAbstractCode()) {
+      AbstractCode* code = AbstractCode::cast(obj);
+      RecordCodeSizeIncludingMetadata(code, isolate);
+#ifdef DEBUG
+      isolate->code_kind_statistics()[code->kind()] += code->Size();
+      CollectCodeCommentStatistics(obj, isolate);
+#endif
+    }
+  }
+}
+
+void PagedSpace::ResetCodeAndMetadataStatistics(Isolate* isolate) {
+  isolate->set_code_and_metadata_size(0);
+  isolate->set_bytecode_and_metadata_size(0);
+#ifdef DEBUG
+  ResetCodeStatistics(isolate);
+#endif
+}
 
 // -----------------------------------------------------------------------------
 // MapSpace implementation
@@ -2926,15 +2950,13 @@
 // -----------------------------------------------------------------------------
 // LargeObjectSpace
 
-
 LargeObjectSpace::LargeObjectSpace(Heap* heap, AllocationSpace id)
     : Space(heap, id, NOT_EXECUTABLE),  // Managed on a per-allocation basis
       first_page_(NULL),
       size_(0),
       page_count_(0),
       objects_size_(0),
-      chunk_map_(HashMap::PointersMatch, 1024) {}
-
+      chunk_map_(base::HashMap::PointersMatch, 1024) {}
 
 LargeObjectSpace::~LargeObjectSpace() {}
 
@@ -2954,10 +2976,6 @@
     LargePage* page = first_page_;
     first_page_ = first_page_->next_page();
     LOG(heap()->isolate(), DeleteEvent("LargeObjectChunk", page->address()));
-
-    ObjectSpace space = static_cast<ObjectSpace>(1 << identity());
-    heap()->memory_allocator()->PerformAllocationCallback(
-        space, kAllocationActionFree, page->size());
     heap()->memory_allocator()->Free<MemoryAllocator::kFull>(page);
   }
   SetUp();
@@ -2989,7 +3007,7 @@
   uintptr_t base = reinterpret_cast<uintptr_t>(page) / MemoryChunk::kAlignment;
   uintptr_t limit = base + (page->size() - 1) / MemoryChunk::kAlignment;
   for (uintptr_t key = base; key <= limit; key++) {
-    HashMap::Entry* entry = chunk_map_.LookupOrInsert(
+    base::HashMap::Entry* entry = chunk_map_.LookupOrInsert(
         reinterpret_cast<void*>(key), static_cast<uint32_t>(key));
     DCHECK(entry != NULL);
     entry->value = page;
@@ -3013,14 +3031,10 @@
 
 
 size_t LargeObjectSpace::CommittedPhysicalMemory() {
-  if (!base::VirtualMemory::HasLazyCommits()) return CommittedMemory();
-  size_t size = 0;
-  LargePage* current = first_page_;
-  while (current != NULL) {
-    size += current->CommittedPhysicalMemory();
-    current = current->next_page();
-  }
-  return size;
+  // On a platform that provides lazy committing of memory, we over-account
+  // the actually committed memory. There is no easy way right now to support
+  // precise accounting of committed memory in large object space.
+  return CommittedMemory();
 }
 
 
@@ -3036,8 +3050,8 @@
 
 LargePage* LargeObjectSpace::FindPage(Address a) {
   uintptr_t key = reinterpret_cast<uintptr_t>(a) / MemoryChunk::kAlignment;
-  HashMap::Entry* e = chunk_map_.Lookup(reinterpret_cast<void*>(key),
-                                        static_cast<uint32_t>(key));
+  base::HashMap::Entry* e = chunk_map_.Lookup(reinterpret_cast<void*>(key),
+                                              static_cast<uint32_t>(key));
   if (e != NULL) {
     DCHECK(e->value != NULL);
     LargePage* page = reinterpret_cast<LargePage*>(e->value);
@@ -3167,6 +3181,20 @@
 }
 #endif
 
+void LargeObjectSpace::CollectCodeStatistics() {
+  Isolate* isolate = heap()->isolate();
+  LargeObjectIterator obj_it(this);
+  for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) {
+    if (obj->IsAbstractCode()) {
+      AbstractCode* code = AbstractCode::cast(obj);
+      RecordCodeSizeIncludingMetadata(code, isolate);
+#ifdef DEBUG
+      isolate->code_kind_statistics()[code->kind()] += code->Size();
+      CollectCodeCommentStatistics(obj, isolate);
+#endif
+    }
+  }
+}
 
 #ifdef DEBUG
 void LargeObjectSpace::Print() {
@@ -3196,21 +3224,9 @@
 }
 
 
-void LargeObjectSpace::CollectCodeStatistics() {
-  Isolate* isolate = heap()->isolate();
-  LargeObjectIterator obj_it(this);
-  for (HeapObject* obj = obj_it.Next(); obj != NULL; obj = obj_it.Next()) {
-    if (obj->IsAbstractCode()) {
-      AbstractCode* code = AbstractCode::cast(obj);
-      isolate->code_kind_statistics()[code->kind()] += code->Size();
-    }
-  }
-}
-
-
 void Page::Print() {
   // Make a best-effort to print the objects in the page.
-  PrintF("Page@%p in %s\n", this->address(),
+  PrintF("Page@%p in %s\n", static_cast<void*>(this->address()),
          AllocationSpaceName(this->owner()->identity()));
   printf(" --------------------------------------\n");
   HeapObjectIterator objects(this);
diff --git a/src/heap/spaces.h b/src/heap/spaces.h
index 67e9aae..04c89a8 100644
--- a/src/heap/spaces.h
+++ b/src/heap/spaces.h
@@ -11,9 +11,9 @@
 #include "src/base/atomic-utils.h"
 #include "src/base/atomicops.h"
 #include "src/base/bits.h"
+#include "src/base/hashmap.h"
 #include "src/base/platform/mutex.h"
 #include "src/flags.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #include "src/objects.h"
 #include "src/utils.h"
@@ -27,6 +27,7 @@
 class CompactionSpaceCollection;
 class FreeList;
 class Isolate;
+class LocalArrayBufferTracker;
 class MemoryAllocator;
 class MemoryChunk;
 class Page;
@@ -424,6 +425,10 @@
     // from new to old space during evacuation.
     PAGE_NEW_OLD_PROMOTION,
 
+    // |PAGE_NEW_NEW_PROMOTION|: A page tagged with this flag has been moved
+    // within the new space during evacuation.
+    PAGE_NEW_NEW_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.
@@ -450,6 +455,11 @@
     //   has been aborted and needs special handling by the sweeper.
     COMPACTION_WAS_ABORTED,
 
+    // |COMPACTION_WAS_ABORTED_FOR_TESTING|: During stress testing evacuation
+    // on pages is sometimes aborted. The flag is used to avoid repeatedly
+    // triggering on the same page.
+    COMPACTION_WAS_ABORTED_FOR_TESTING,
+
     // |ANCHOR|: Flag is set if page is an anchor.
     ANCHOR,
 
@@ -509,6 +519,7 @@
   static const size_t kWriteBarrierCounterOffset =
       kOldToNewSlotsOffset + kPointerSize  // SlotSet* old_to_new_slots_;
       + kPointerSize                       // SlotSet* old_to_old_slots_;
+      + kPointerSize   // TypedSlotSet* typed_old_to_new_slots_;
       + kPointerSize   // TypedSlotSet* typed_old_to_old_slots_;
       + kPointerSize;  // SkipList* skip_list_;
 
@@ -522,7 +533,8 @@
       + kPointerSize      // AtomicValue next_chunk_
       + kPointerSize      // AtomicValue prev_chunk_
       // FreeListCategory categories_[kNumberOfCategories]
-      + FreeListCategory::kSize * kNumberOfCategories;
+      + FreeListCategory::kSize * kNumberOfCategories +
+      kPointerSize;  // LocalArrayBufferTracker* local_tracker_;
 
   // We add some more space to the computed header size to amount for missing
   // alignment requirements in our computation.
@@ -625,16 +637,24 @@
 
   inline SlotSet* old_to_new_slots() { return old_to_new_slots_; }
   inline SlotSet* old_to_old_slots() { return old_to_old_slots_; }
+  inline TypedSlotSet* typed_old_to_new_slots() {
+    return typed_old_to_new_slots_;
+  }
   inline TypedSlotSet* typed_old_to_old_slots() {
     return typed_old_to_old_slots_;
   }
+  inline LocalArrayBufferTracker* local_tracker() { return local_tracker_; }
 
   void AllocateOldToNewSlots();
   void ReleaseOldToNewSlots();
   void AllocateOldToOldSlots();
   void ReleaseOldToOldSlots();
+  void AllocateTypedOldToNewSlots();
+  void ReleaseTypedOldToNewSlots();
   void AllocateTypedOldToOldSlots();
   void ReleaseTypedOldToOldSlots();
+  void AllocateLocalTracker();
+  void ReleaseLocalTracker();
 
   Address area_start() { return area_start_; }
   Address area_end() { return area_end_; }
@@ -645,6 +665,8 @@
   // Approximate amount of physical memory committed for this chunk.
   size_t CommittedPhysicalMemory() { return high_water_mark_.Value(); }
 
+  Address HighWaterMark() { return address() + high_water_mark_.Value(); }
+
   int progress_bar() {
     DCHECK(IsFlagSet(HAS_PROGRESS_BAR));
     return progress_bar_;
@@ -707,7 +729,8 @@
   }
 
   bool ShouldSkipEvacuationSlotRecording() {
-    return (flags_ & kSkipEvacuationSlotsRecordingMask) != 0;
+    return ((flags_ & kSkipEvacuationSlotsRecordingMask) != 0) &&
+           !IsFlagSet(COMPACTION_WAS_ABORTED);
   }
 
   Executability executable() {
@@ -792,6 +815,7 @@
   // is ceil(size() / kPageSize).
   SlotSet* old_to_new_slots_;
   SlotSet* old_to_old_slots_;
+  TypedSlotSet* typed_old_to_new_slots_;
   TypedSlotSet* typed_old_to_old_slots_;
 
   SkipList* skip_list_;
@@ -817,6 +841,8 @@
 
   FreeListCategory categories_[kNumberOfCategories];
 
+  LocalArrayBufferTracker* local_tracker_;
+
  private:
   void InitializeReservedMemory() { reservation_.Reset(); }
 
@@ -1154,15 +1180,6 @@
   void FreeRawMemory(Address buf, size_t length);
 
  private:
-  // Frees the range of virtual memory, and frees the data structures used to
-  // manage it.
-  void TearDown();
-
-  Isolate* isolate_;
-
-  // The reserved range of virtual memory that all code objects are put in.
-  base::VirtualMemory* code_range_;
-  // Plain old data class, just a struct plus a constructor.
   class FreeBlock {
    public:
     FreeBlock() : start(0), size(0) {}
@@ -1181,6 +1198,26 @@
     size_t size;
   };
 
+  // Frees the range of virtual memory, and frees the data structures used to
+  // manage it.
+  void TearDown();
+
+  // Finds a block on the allocation list that contains at least the
+  // requested amount of memory.  If none is found, sorts and merges
+  // the existing free memory blocks, and searches again.
+  // If none can be found, returns false.
+  bool GetNextAllocationBlock(size_t requested);
+  // Compares the start addresses of two free blocks.
+  static int CompareFreeBlockAddress(const FreeBlock* left,
+                                     const FreeBlock* right);
+  bool ReserveBlock(const size_t requested_size, FreeBlock* block);
+  void ReleaseBlock(const FreeBlock* block);
+
+  Isolate* isolate_;
+
+  // The reserved range of virtual memory that all code objects are put in.
+  base::VirtualMemory* code_range_;
+
   // The global mutex guards free_list_ and allocation_list_ as GC threads may
   // access both lists concurrently to the main thread.
   base::Mutex code_range_mutex_;
@@ -1195,17 +1232,6 @@
   List<FreeBlock> allocation_list_;
   int current_allocation_block_index_;
 
-  // Finds a block on the allocation list that contains at least the
-  // requested amount of memory.  If none is found, sorts and merges
-  // the existing free memory blocks, and searches again.
-  // If none can be found, returns false.
-  bool GetNextAllocationBlock(size_t requested);
-  // Compares the start addresses of two free blocks.
-  static int CompareFreeBlockAddress(const FreeBlock* left,
-                                     const FreeBlock* right);
-  bool ReserveBlock(const size_t requested_size, FreeBlock* block);
-  void ReleaseBlock(const FreeBlock* block);
-
   DISALLOW_COPY_AND_ASSIGN(CodeRange);
 };
 
@@ -1321,7 +1347,12 @@
     template <ChunkQueueType type>
     void AddMemoryChunkSafe(MemoryChunk* chunk) {
       base::LockGuard<base::Mutex> guard(&mutex_);
-      chunks_[type].push_back(chunk);
+      if (type != kRegular || allocator_->CanFreeMemoryChunk(chunk)) {
+        chunks_[type].push_back(chunk);
+      } else {
+        DCHECK_EQ(type, kRegular);
+        delayed_regular_chunks_.push_back(chunk);
+      }
     }
 
     template <ChunkQueueType type>
@@ -1333,11 +1364,16 @@
       return chunk;
     }
 
+    void ReconsiderDelayedChunks();
     void PerformFreeMemoryOnQueuedChunks();
 
     base::Mutex mutex_;
     MemoryAllocator* allocator_;
     std::list<MemoryChunk*> chunks_[kNumberOfChunkQueues];
+    // Delayed chunks cannot be processed in the current unmapping cycle because
+    // of dependencies such as an active sweeper.
+    // See MemoryAllocator::CanFreeMemoryChunk.
+    std::list<MemoryChunk*> delayed_regular_chunks_;
     base::Semaphore pending_unmapping_tasks_semaphore_;
     intptr_t concurrent_unmapping_tasks_active_;
 
@@ -1376,6 +1412,8 @@
   template <MemoryAllocator::FreeMode mode = kFull>
   void Free(MemoryChunk* chunk);
 
+  bool CanFreeMemoryChunk(MemoryChunk* chunk);
+
   // Returns allocated spaces in bytes.
   intptr_t Size() { return size_.Value(); }
 
@@ -1446,16 +1484,6 @@
   // filling it up with a recognizable non-NULL bit pattern.
   void ZapBlock(Address start, size_t size);
 
-  void PerformAllocationCallback(ObjectSpace space, AllocationAction action,
-                                 size_t size);
-
-  void AddMemoryAllocationCallback(MemoryAllocationCallback callback,
-                                   ObjectSpace space, AllocationAction action);
-
-  void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback);
-
-  bool MemoryAllocationCallbackRegistered(MemoryAllocationCallback callback);
-
   static int CodePageGuardStartOffset();
 
   static int CodePageGuardSize();
@@ -1516,19 +1544,6 @@
   base::AtomicValue<void*> lowest_ever_allocated_;
   base::AtomicValue<void*> highest_ever_allocated_;
 
-  struct MemoryAllocationCallbackRegistration {
-    MemoryAllocationCallbackRegistration(MemoryAllocationCallback callback,
-                                         ObjectSpace space,
-                                         AllocationAction action)
-        : callback(callback), space(space), action(action) {}
-    MemoryAllocationCallback callback;
-    ObjectSpace space;
-    AllocationAction action;
-  };
-
-  // A List of callback that are triggered when memory is allocated or free'd
-  List<MemoryAllocationCallbackRegistration> memory_allocation_callbacks_;
-
   // Initializes pages in a chunk. Returns the first page address.
   // This function and GetChunkId() are provided for the mark-compact
   // collector to rebuild page headers in the from space, which is
@@ -1569,10 +1584,44 @@
 class ObjectIterator : public Malloced {
  public:
   virtual ~ObjectIterator() {}
-
-  virtual HeapObject* next_object() = 0;
+  virtual HeapObject* Next() = 0;
 };
 
+template <class PAGE_TYPE>
+class PageIteratorImpl
+    : public std::iterator<std::forward_iterator_tag, PAGE_TYPE> {
+ public:
+  explicit PageIteratorImpl(PAGE_TYPE* p) : p_(p) {}
+  PageIteratorImpl(const PageIteratorImpl<PAGE_TYPE>& other) : p_(other.p_) {}
+  PAGE_TYPE* operator*() { return p_; }
+  bool operator==(const PageIteratorImpl<PAGE_TYPE>& rhs) {
+    return rhs.p_ == p_;
+  }
+  bool operator!=(const PageIteratorImpl<PAGE_TYPE>& rhs) {
+    return rhs.p_ != p_;
+  }
+  inline PageIteratorImpl<PAGE_TYPE>& operator++();
+  inline PageIteratorImpl<PAGE_TYPE> operator++(int);
+
+ private:
+  PAGE_TYPE* p_;
+};
+
+typedef PageIteratorImpl<Page> PageIterator;
+typedef PageIteratorImpl<LargePage> LargePageIterator;
+
+class PageRange {
+ public:
+  typedef PageIterator iterator;
+  PageRange(Page* begin, Page* end) : begin_(begin), end_(end) {}
+  explicit PageRange(Page* page) : PageRange(page, page->next_page()) {}
+  iterator begin() { return iterator(begin_); }
+  iterator end() { return iterator(end_); }
+
+ private:
+  Page* begin_;
+  Page* end_;
+};
 
 // -----------------------------------------------------------------------------
 // Heap object iterator in new/old/map spaces.
@@ -1591,18 +1640,10 @@
 
   // Advance to the next object, skipping free spaces and other fillers and
   // skipping the special garbage section of which there is one per space.
-  // Returns NULL when the iteration has ended.
-  inline HeapObject* Next();
-  inline HeapObject* next_object() override;
+  // Returns nullptr when the iteration has ended.
+  inline HeapObject* Next() override;
 
  private:
-  enum PageMode { kOnePageOnly, kAllPagesInSpace };
-
-  Address cur_addr_;              // Current iteration point.
-  Address cur_end_;               // End iteration point.
-  PagedSpace* space_;
-  PageMode page_mode_;
-
   // Fast (inlined) path of next().
   inline HeapObject* FromCurrentPage();
 
@@ -1610,28 +1651,11 @@
   // iteration has ended.
   bool AdvanceToNextPage();
 
-  // Initializes fields.
-  inline void Initialize(PagedSpace* owner, Address start, Address end,
-                         PageMode mode);
-};
-
-
-// -----------------------------------------------------------------------------
-// A PageIterator iterates the pages in a paged space.
-
-class PageIterator BASE_EMBEDDED {
- public:
-  explicit inline PageIterator(PagedSpace* space);
-
-  inline bool has_next();
-  inline Page* next();
-
- private:
+  Address cur_addr_;  // Current iteration point.
+  Address cur_end_;   // End iteration point.
   PagedSpace* space_;
-  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.
-  Page* next_page_;
+  PageRange page_range_;
+  PageRange::iterator current_page_;
 };
 
 
@@ -2083,8 +2107,21 @@
   AllocationInfo allocation_info_;
 };
 
+class NewSpacePageRange {
+ public:
+  typedef PageRange::iterator iterator;
+  inline NewSpacePageRange(Address start, Address limit);
+  iterator begin() { return range_.begin(); }
+  iterator end() { return range_.end(); }
+
+ private:
+  PageRange range_;
+};
+
 class PagedSpace : public Space {
  public:
+  typedef PageIterator iterator;
+
   static const intptr_t kCompactionMemoryWanted = 500 * KB;
 
   // Creates a space with an id.
@@ -2236,6 +2273,12 @@
   // The dummy page that anchors the linked list of pages.
   Page* anchor() { return &anchor_; }
 
+  // Collect code size related statistics
+  void CollectCodeStatistics();
+
+  // Reset code size related statistics
+  static void ResetCodeAndMetadataStatistics(Isolate* isolate);
+
 #ifdef VERIFY_HEAP
   // Verify integrity of this space.
   virtual void Verify(ObjectVisitor* visitor);
@@ -2253,7 +2296,6 @@
   void ReportStatistics();
 
   // Report code object related statistics
-  void CollectCodeStatistics();
   static void ReportCodeStatistics(Isolate* isolate);
   static void ResetCodeStatistics(Isolate* isolate);
 #endif
@@ -2288,6 +2330,9 @@
   inline void UnlinkFreeListCategories(Page* page);
   inline intptr_t RelinkFreeListCategories(Page* page);
 
+  iterator begin() { return iterator(anchor_.next_page()); }
+  iterator end() { return iterator(&anchor_); }
+
  protected:
   // PagedSpaces that should be included in snapshots have different, i.e.,
   // smaller, initial pages.
@@ -2342,7 +2387,6 @@
 
   friend class IncrementalMarking;
   friend class MarkCompactCollector;
-  friend class PageIterator;
 
   // Used in cctest.
   friend class HeapTester;
@@ -2393,6 +2437,8 @@
 // space as a marking stack when tracing live objects.
 class SemiSpace : public Space {
  public:
+  typedef PageIterator iterator;
+
   static void Swap(SemiSpace* from, SemiSpace* to);
 
   SemiSpace(Heap* heap, SemiSpaceId semispace)
@@ -2404,7 +2450,8 @@
         committed_(false),
         id_(semispace),
         anchor_(this),
-        current_page_(nullptr) {}
+        current_page_(nullptr),
+        pages_used_(0) {}
 
   inline bool Contains(HeapObject* o);
   inline bool Contains(Object* o);
@@ -2427,6 +2474,8 @@
   // than the current capacity.
   bool ShrinkTo(int new_capacity);
 
+  bool EnsureCurrentCapacity();
+
   // Returns the start address of the first page of the space.
   Address space_start() {
     DCHECK_NE(anchor_.next_page(), anchor());
@@ -2435,6 +2484,7 @@
 
   Page* first_page() { return anchor_.next_page(); }
   Page* current_page() { return current_page_; }
+  int pages_used() { return pages_used_; }
 
   // Returns one past the end address of the space.
   Address space_end() { return anchor_.prev_page()->area_end(); }
@@ -2447,15 +2497,23 @@
 
   bool AdvancePage() {
     Page* next_page = current_page_->next_page();
-    if (next_page == anchor()) return false;
+    // We cannot expand if we reached the maximum number of pages already. Note
+    // that we need to account for the next page already for this check as we
+    // could potentially fill the whole page after advancing.
+    const bool reached_max_pages = (pages_used_ + 1) == max_pages();
+    if (next_page == anchor() || reached_max_pages) {
+      return false;
+    }
     current_page_ = next_page;
+    pages_used_++;
     return true;
   }
 
   // Resets the space to using the first page.
   void Reset();
 
-  bool ReplaceWithEmptyPage(Page* page);
+  void RemovePage(Page* page);
+  void PrependPage(Page* page);
 
   // Age mark accessors.
   Address age_mark() { return age_mark_; }
@@ -2505,10 +2563,14 @@
   virtual void Verify();
 #endif
 
+  iterator begin() { return iterator(anchor_.next_page()); }
+  iterator end() { return iterator(anchor()); }
+
  private:
   void RewindPages(Page* start, int num_pages);
 
   inline Page* anchor() { return &anchor_; }
+  inline int max_pages() { return current_capacity_ / Page::kPageSize; }
 
   // Copies the flags into the masked positions on all pages in the space.
   void FixPagesFlags(intptr_t flags, intptr_t flag_mask);
@@ -2516,7 +2578,8 @@
   // The currently committed space capacity.
   int current_capacity_;
 
-  // The maximum capacity that can be used by this space.
+  // The maximum capacity that can be used by this space. A space cannot grow
+  // beyond that size.
   int maximum_capacity_;
 
   // The minimum capacity for the space. A space cannot shrink below this size.
@@ -2530,9 +2593,10 @@
 
   Page anchor_;
   Page* current_page_;
+  int pages_used_;
 
+  friend class NewSpace;
   friend class SemiSpaceIterator;
-  friend class NewSpacePageIterator;
 };
 
 
@@ -2546,10 +2610,7 @@
   // Create an iterator over the allocated objects in the given to-space.
   explicit SemiSpaceIterator(NewSpace* space);
 
-  inline HeapObject* Next();
-
-  // Implementation of the ObjectIterator functions.
-  inline HeapObject* next_object() override;
+  inline HeapObject* Next() override;
 
  private:
   void Initialize(Address start, Address end);
@@ -2560,35 +2621,6 @@
   Address limit_;
 };
 
-
-// -----------------------------------------------------------------------------
-// A PageIterator iterates the pages in a semi-space.
-class NewSpacePageIterator BASE_EMBEDDED {
- public:
-  // Make an iterator that runs over all pages in to-space.
-  explicit inline NewSpacePageIterator(NewSpace* space);
-
-  // Make an iterator that runs over all pages in the given semispace,
-  // even those not used in allocation.
-  explicit inline NewSpacePageIterator(SemiSpace* space);
-
-  // Make iterator that iterates from the page containing start
-  // to the page that contains limit in the same semispace.
-  inline NewSpacePageIterator(Address start, Address limit);
-
-  inline bool has_next();
-  inline Page* next();
-
- private:
-  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.
-  Page* next_page_;
-  // Last page returned.
-  Page* last_page_;
-};
-
-
 // -----------------------------------------------------------------------------
 // The young generation space.
 //
@@ -2597,12 +2629,13 @@
 
 class NewSpace : public Space {
  public:
+  typedef PageIterator iterator;
+
   explicit NewSpace(Heap* heap)
       : Space(heap, NEW_SPACE, NOT_EXECUTABLE),
         to_space_(heap, kToSpace),
         from_space_(heap, kFromSpace),
         reservation_(),
-        pages_used_(0),
         top_on_previous_step_(0),
         allocated_histogram_(nullptr),
         promoted_histogram_(nullptr) {}
@@ -2634,7 +2667,7 @@
 
   // Return the allocated bytes in the active semispace.
   intptr_t Size() override {
-    return pages_used_ * Page::kAllocatableMemory +
+    return to_space_.pages_used() * Page::kAllocatableMemory +
            static_cast<int>(top() - to_space_.page_low());
   }
 
@@ -2711,12 +2744,14 @@
     return static_cast<size_t>(allocated);
   }
 
-  bool ReplaceWithEmptyPage(Page* page) {
-    // This method is called after flipping the semispace.
+  void MovePageFromSpaceToSpace(Page* page) {
     DCHECK(page->InFromSpace());
-    return from_space_.ReplaceWithEmptyPage(page);
+    from_space_.RemovePage(page);
+    to_space_.PrependPage(page);
   }
 
+  bool Rebalance();
+
   // Return the maximum capacity of a semispace.
   int MaximumCapacity() {
     DCHECK(to_space_.maximum_capacity() == from_space_.maximum_capacity());
@@ -2859,6 +2894,9 @@
   void PauseAllocationObservers() override;
   void ResumeAllocationObservers() override;
 
+  iterator begin() { return to_space_.begin(); }
+  iterator end() { return to_space_.end(); }
+
  private:
   // Update allocation info to match the current to-space page.
   void UpdateAllocationInfo();
@@ -2869,7 +2907,6 @@
   SemiSpace to_space_;
   SemiSpace from_space_;
   base::VirtualMemory reservation_;
-  int pages_used_;
 
   // Allocation pointer and limit for normal allocation and allocation during
   // mark-compact collection.
@@ -3003,6 +3040,8 @@
 
 class LargeObjectSpace : public Space {
  public:
+  typedef LargePageIterator iterator;
+
   LargeObjectSpace(Heap* heap, AllocationSpace id);
   virtual ~LargeObjectSpace();
 
@@ -3061,6 +3100,12 @@
 
   LargePage* first_page() { return first_page_; }
 
+  // Collect code statistics.
+  void CollectCodeStatistics();
+
+  iterator begin() { return iterator(first_page_); }
+  iterator end() { return iterator(nullptr); }
+
 #ifdef VERIFY_HEAP
   virtual void Verify();
 #endif
@@ -3068,7 +3113,6 @@
 #ifdef DEBUG
   void Print() override;
   void ReportStatistics();
-  void CollectCodeStatistics();
 #endif
 
  private:
@@ -3078,7 +3122,7 @@
   int page_count_;         // number of chunks
   intptr_t objects_size_;  // size of objects
   // Map MemoryChunk::kAlignment-aligned chunks to large pages covering them
-  HashMap chunk_map_;
+  base::HashMap chunk_map_;
 
   friend class LargeObjectIterator;
 };
@@ -3088,31 +3132,17 @@
  public:
   explicit LargeObjectIterator(LargeObjectSpace* space);
 
-  HeapObject* Next();
-
-  // implementation of ObjectIterator.
-  virtual HeapObject* next_object() { return Next(); }
+  HeapObject* Next() override;
 
  private:
   LargePage* current_;
 };
 
-class LargePageIterator BASE_EMBEDDED {
- public:
-  explicit inline LargePageIterator(LargeObjectSpace* space);
-
-  inline LargePage* next();
-
- private:
-  LargePage* next_page_;
-};
-
 // Iterates over the chunks (pages and large object pages) that can contain
 // pointers to new space or to evacuation candidates.
 class MemoryChunkIterator BASE_EMBEDDED {
  public:
-  enum Mode { ALL, ALL_BUT_MAP_SPACE, ALL_BUT_CODE_SPACE };
-  inline explicit MemoryChunkIterator(Heap* heap, Mode mode);
+  inline explicit MemoryChunkIterator(Heap* heap);
 
   // Return NULL when the iterator is done.
   inline MemoryChunk* next();
@@ -3125,8 +3155,8 @@
     kLargeObjectState,
     kFinishedState
   };
+  Heap* heap_;
   State state_;
-  const Mode mode_;
   PageIterator old_iterator_;
   PageIterator code_iterator_;
   PageIterator map_iterator_;
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
index fdf11c1..925ae48 100644
--- a/src/ia32/assembler-ia32.cc
+++ b/src/ia32/assembler-ia32.cc
@@ -191,36 +191,24 @@
   return Memory::Address_at(pc_);
 }
 
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(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));
-  }
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Memory::Address_at(pc_) = address;
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Memory::uint32_at(pc_) = size;
 }
 
 // -----------------------------------------------------------------------------
@@ -344,6 +332,8 @@
   desc->reloc_size = (buffer_ + buffer_size_) - reloc_info_writer.pos();
   desc->origin = this;
   desc->constant_pool_size = 0;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -730,6 +720,33 @@
   emit_operand(reg, op);
 }
 
+void Assembler::lock() {
+  EnsureSpace ensure_space(this);
+  EMIT(0xF0);
+}
+
+void Assembler::cmpxchg(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x0F);
+  EMIT(0xB1);
+  emit_operand(src, dst);
+}
+
+void Assembler::cmpxchg_b(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x0F);
+  EMIT(0xB0);
+  emit_operand(src, dst);
+}
+
+void Assembler::cmpxchg_w(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x66);
+  EMIT(0x0F);
+  EMIT(0xB1);
+  emit_operand(src, dst);
+}
+
 void Assembler::adc(Register dst, int32_t imm32) {
   EnsureSpace ensure_space(this);
   emit_arith(2, Operand(dst), Immediate(imm32));
@@ -1516,7 +1533,6 @@
 
 
 void Assembler::call(Label* L) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   if (L->is_bound()) {
     const int long_size = 5;
@@ -1534,7 +1550,6 @@
 
 
 void Assembler::call(byte* entry, RelocInfo::Mode rmode) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   DCHECK(!RelocInfo::IsCodeTarget(rmode));
   EMIT(0xE8);
@@ -1553,7 +1568,6 @@
 
 
 void Assembler::call(const Operand& adr) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   EMIT(0xFF);
   emit_operand(edx, adr);
@@ -1568,7 +1582,6 @@
 void Assembler::call(Handle<Code> code,
                      RelocInfo::Mode rmode,
                      TypeFeedbackId ast_id) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   DCHECK(RelocInfo::IsCodeTarget(rmode)
       || rmode == RelocInfo::CODE_AGE_SEQUENCE);
diff --git a/src/ia32/assembler-ia32.h b/src/ia32/assembler-ia32.h
index c3edacb..4e542d7 100644
--- a/src/ia32/assembler-ia32.h
+++ b/src/ia32/assembler-ia32.h
@@ -124,8 +124,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -149,6 +147,8 @@
 #undef DECLARE_REGISTER
 const Register no_reg = {Register::kCode_no_reg};
 
+static const bool kSimpleFPAliasing = true;
+
 struct XMMRegister {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
@@ -165,7 +165,6 @@
     return result;
   }
 
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
 
   int code() const {
@@ -175,8 +174,6 @@
 
   bool is(XMMRegister reg) const { return reg_code == reg.reg_code; }
 
-  const char* ToString();
-
   int reg_code;
 };
 
@@ -662,6 +659,14 @@
   void xchg_b(Register reg, const Operand& op);
   void xchg_w(Register reg, const Operand& op);
 
+  // Lock prefix
+  void lock();
+
+  // CompareExchange
+  void cmpxchg(const Operand& dst, Register src);
+  void cmpxchg_b(const Operand& dst, Register src);
+  void cmpxchg_w(const Operand& dst, Register src);
+
   // Arithmetics
   void adc(Register dst, int32_t imm32);
   void adc(Register dst, const Operand& src);
diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
index 232c56b..96b2787 100644
--- a/src/ia32/builtins-ia32.cc
+++ b/src/ia32/builtins-ia32.cc
@@ -16,10 +16,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- eax                : number of arguments excluding receiver
   //  -- edi                : target
@@ -39,19 +36,11 @@
   __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  if (extra_args != BuiltinExtraArguments::kNone) {
-    __ PopReturnAddressTo(ecx);
-    if (extra_args & BuiltinExtraArguments::kTarget) {
-      ++num_extra_args;
-      __ Push(edi);
-    }
-    if (extra_args & BuiltinExtraArguments::kNewTarget) {
-      ++num_extra_args;
-      __ Push(edx);
-    }
-    __ PushReturnAddressFrom(ecx);
-  }
+  const int num_extra_args = 2;
+  __ PopReturnAddressTo(ecx);
+  __ Push(edi);
+  __ Push(edx);
+  __ PushReturnAddressFrom(ecx);
 
   // JumpToExternalReference expects eax to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -395,8 +384,8 @@
   __ AssertGeneratorObject(ebx);
 
   // Store input value into generator object.
-  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), eax);
-  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, eax, ecx,
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOrDebugPosOffset), eax);
+  __ RecordWriteField(ebx, JSGeneratorObject::kInputOrDebugPosOffset, eax, ecx,
                       kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -407,22 +396,20 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ cmpb(Operand::StaticVariable(last_step_action), Immediate(StepIn));
+  __ j(greater_equal, &prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ cmp(ebx, Operand::StaticVariable(debug_suspended_generator));
+  __ j(equal, &prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Pop return address.
   __ PopReturnAddressTo(eax);
@@ -518,6 +505,51 @@
     __ mov(eax, ebx);  // Continuation expects generator object in eax.
     __ jmp(edx);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ Push(edi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+}
+
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
+                                  Register scratch2) {
+  Register args_count = scratch1;
+  Register return_pc = scratch2;
+
+  // Get the arguments + reciever count.
+  __ mov(args_count,
+         Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ mov(args_count,
+         FieldOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments.
+  __ pop(return_pc);
+  __ add(esp, args_count);
+  __ push(return_pc);
 }
 
 // Generate code for entering a JS function with the interpreter.
@@ -623,18 +655,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, ebx, ecx);
   __ ret(0);
 
   // Load debug copy of the bytecode array.
@@ -661,6 +682,31 @@
   __ jmp(ecx);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ mov(edi, Operand(ebp, StandardFrameConstants::kFunctionOffset));
+  __ mov(kContextRegister,
+         Operand(ebp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, ebx, ecx);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(eax);
+
+    // Push function as argument and compile for baseline.
+    __ push(edi);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(eax);
+  }
+  __ ret(0);
+}
+
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          Register array_limit) {
   // ----------- S t a t e -------------
@@ -840,13 +886,30 @@
   const int bailout_id = BailoutId::None().ToInt();
   __ cmp(temp, Immediate(Smi::FromInt(bailout_id)));
   __ j(not_equal, &loop_bottom);
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
                             SharedFunctionInfo::kOffsetToPreviousLiterals));
+
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ JumpIfSmi(FieldOperand(temp, WeakCell::kValueOffset),
+               &maybe_cleared_weakcell);
+  // The WeakCell value is a pointer, therefore it's a valid literals array.
   __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // We have a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ cmp(FieldOperand(temp, WeakCell::kValueOffset), Immediate(0));
+  __ j(equal, &gotta_call_runtime);
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ mov(ecx, Operand(esp, 0));
   __ mov(FieldOperand(ecx, JSFunction::kLiteralsOffset), temp);
   __ push(index);
@@ -1119,6 +1182,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- eax    : number of arguments
+  //  -- edi    : function
+  //  -- esi    : context
   //  -- esp[0] : return address
   //  -- esp[4] : receiver
   // -----------------------------------
@@ -1161,7 +1227,11 @@
   __ bind(&receiver_not_date);
   {
     FrameScope scope(masm, StackFrame::MANUAL);
-    __ EnterFrame(StackFrame::INTERNAL);
+    __ Push(ebp);
+    __ Move(ebp, esp);
+    __ Push(esi);
+    __ Push(edi);
+    __ Push(Immediate(0));
     __ CallRuntime(Runtime::kThrowNotDateError);
   }
 }
@@ -1495,6 +1565,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- eax                 : number of arguments
+  //  -- edi                 : function
+  //  -- esi                 : context
   //  -- esp[0]              : return address
   //  -- esp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- esp[(argc + 1) * 8] : receiver
@@ -1522,27 +1594,32 @@
     __ mov(ebx, Operand(esp, ecx, times_pointer_size, 0));
 
     // Load the double value of the parameter into xmm1, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(ebx, &convert_smi);
     __ JumpIfRoot(FieldOperand(ebx, HeapObject::kMapOffset),
                   Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(ebp);
+      __ Move(ebp, esp);
+      __ Push(esi);
+      __ Push(edi);
       __ SmiTag(eax);
       __ SmiTag(ecx);
       __ Push(eax);
       __ Push(ecx);
       __ Push(edx);
       __ mov(eax, ebx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mov(ebx, eax);
       __ Pop(edx);
       __ Pop(ecx);
       __ Pop(eax);
+      __ Pop(edi);
+      __ Pop(esi);
       {
         // Restore the double accumulator value (xmm0).
         Label restore_smi, done_restore;
@@ -1557,6 +1634,7 @@
       }
       __ SmiUntag(ecx);
       __ SmiUntag(eax);
+      __ leave();
     }
     __ jmp(&convert);
     __ bind(&convert_number);
@@ -1590,8 +1668,10 @@
 
     // Left and right hand side are equal, check for -0 vs. +0.
     __ bind(&compare_equal);
+    __ Push(edi);  // Preserve function in edi.
     __ movmskpd(edi, reg);
     __ test(edi, Immediate(1));
+    __ Pop(edi);
     __ j(not_zero, &compare_swap);
 
     __ bind(&done_compare);
@@ -1631,8 +1711,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0 (already in eax).
   __ bind(&no_arguments);
@@ -1682,8 +1761,7 @@
       __ Push(edi);
       __ Push(edx);
       __ Move(eax, ebx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(ebx, eax);
       __ Pop(edx);
       __ Pop(edi);
@@ -2575,6 +2653,81 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in eax.
+  __ AssertString(eax);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ test(FieldOperand(eax, String::kHashFieldOffset),
+          Immediate(String::kContainsCachedArrayIndexMask));
+  __ j(not_zero, &runtime, Label::kNear);
+  __ mov(eax, FieldOperand(eax, String::kHashFieldOffset));
+  __ IndexFromHash(eax, eax);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(eax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in eax.
+  Label not_smi;
+  __ JumpIfNotSmi(eax, &not_smi, Label::kNear);
+  __ Ret();
+  __ bind(&not_smi);
+
+  Label not_heap_number;
+  __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
+  __ j(not_equal, &not_heap_number, Label::kNear);
+  __ Ret();
+  __ bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in eax.
+  __ AssertNotNumber(eax);
+
+  Label not_string;
+  __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edi);
+  // eax: object
+  // edi: object map
+  __ j(above_equal, &not_string, Label::kNear);
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ bind(&not_string);
+
+  Label not_oddball;
+  __ CmpInstanceType(edi, ODDBALL_TYPE);
+  __ j(not_equal, &not_oddball, Label::kNear);
+  __ mov(eax, FieldOperand(eax, Oddball::kToNumberOffset));
+  __ Ret();
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(eax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- eax : actual number of arguments
diff --git a/src/ia32/code-stubs-ia32.cc b/src/ia32/code-stubs-ia32.cc
index b711ce9..5761b16 100644
--- a/src/ia32/code-stubs-ia32.cc
+++ b/src/ia32/code-stubs-ia32.cc
@@ -22,78 +22,29 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  // register state
-  // eax -- number of arguments
-  // edi -- function
-  // ebx -- allocation site with elements kind
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(eax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ pop(ecx);
+  __ mov(MemOperand(esp, eax, times_4, 0), edi);
+  __ push(edi);
+  __ push(ebx);
+  __ push(ecx);
+  __ add(eax, Immediate(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  // register state
-  // eax -- number of arguments
-  // edi -- constructor function
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(eax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
-
 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
                                                ExternalReference miss) {
   // Update the static counter each time a new code stub is generated.
@@ -680,7 +631,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ ret(0);
@@ -1469,6 +1419,7 @@
   // edi : the function to call
   Isolate* isolate = masm->isolate();
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_increment_count, done_initialize_count;
 
   // Load the cache state into ecx.
   __ mov(ecx, FieldOperand(ebx, edx, times_half_pointer_size,
@@ -1481,7 +1432,7 @@
   // type-feedback-vector.h).
   Label check_allocation_site;
   __ cmp(edi, FieldOperand(ecx, WeakCell::kValueOffset));
-  __ j(equal, &done, Label::kFar);
+  __ j(equal, &done_increment_count, Label::kFar);
   __ CompareRoot(ecx, Heap::kmegamorphic_symbolRootIndex);
   __ j(equal, &done, Label::kFar);
   __ CompareRoot(FieldOperand(ecx, HeapObject::kMapOffset),
@@ -1504,7 +1455,7 @@
   __ LoadGlobalFunction(Context::ARRAY_FUNCTION_INDEX, ecx);
   __ cmp(edi, ecx);
   __ j(not_equal, &megamorphic);
-  __ jmp(&done, Label::kFar);
+  __ jmp(&done_increment_count, Label::kFar);
 
   __ bind(&miss);
 
@@ -1533,11 +1484,25 @@
   // slot.
   CreateAllocationSiteStub create_stub(isolate);
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ jmp(&done);
+  __ jmp(&done_initialize_count);
 
   __ bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(isolate);
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+  __ bind(&done_initialize_count);
+
+  // Initialize the call counter.
+  __ mov(FieldOperand(ebx, edx, times_half_pointer_size,
+                      FixedArray::kHeaderSize + kPointerSize),
+         Immediate(Smi::FromInt(1)));
+  __ jmp(&done);
+
+  __ bind(&done_increment_count);
+  // Increment the call count for monomorphic function calls.
+  __ add(FieldOperand(ebx, edx, times_half_pointer_size,
+                      FixedArray::kHeaderSize + kPointerSize),
+         Immediate(Smi::FromInt(1)));
+
   __ bind(&done);
 }
 
@@ -1601,7 +1566,7 @@
   // Increment the call count for monomorphic function calls.
   __ add(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   __ mov(ebx, ecx);
   __ mov(edx, edi);
@@ -1649,7 +1614,7 @@
   // Increment the call count for monomorphic function calls.
   __ add(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   __ bind(&call_function);
   __ Set(eax, argc);
@@ -1720,7 +1685,7 @@
   // Initialize the call counter.
   __ mov(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   // Store the function. Use a stub since we need a frame for allocation.
   // ebx - vector
@@ -1774,7 +1739,7 @@
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
   // It is important that the store buffer overflow stubs are generated first.
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -2102,13 +2067,7 @@
   }
   __ push(object_);
   __ push(index_);  // Consumed by runtime conversion function.
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   if (!index_.is(eax)) {
     // Save the conversion result before the pop instructions below
     // have a chance to overwrite it.
@@ -2441,77 +2400,12 @@
   // ecx: sub string length (smi)
   // edx: from index (smi)
   StringCharAtGenerator generator(eax, edx, ecx, eax, &runtime, &runtime,
-                                  &runtime, STRING_INDEX_IS_NUMBER,
-                                  RECEIVER_IS_STRING);
+                                  &runtime, RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ ret(3 * kPointerSize);
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in eax.
-  Label not_smi;
-  __ JumpIfNotSmi(eax, &not_smi, Label::kNear);
-  __ Ret();
-  __ bind(&not_smi);
-
-  Label not_heap_number;
-  __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
-  __ j(not_equal, &not_heap_number, Label::kNear);
-  __ Ret();
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in eax.
-  __ AssertNotNumber(eax);
-
-  Label not_string;
-  __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edi);
-  // eax: object
-  // edi: object map
-  __ j(above_equal, &not_string, Label::kNear);
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ bind(&not_string);
-
-  Label not_oddball;
-  __ CmpInstanceType(edi, ODDBALL_TYPE);
-  __ j(not_equal, &not_oddball, Label::kNear);
-  __ mov(eax, FieldOperand(eax, Oddball::kToNumberOffset));
-  __ Ret();
-  __ bind(&not_oddball);
-
-  __ pop(ecx);   // Pop return address.
-  __ push(eax);  // Push argument.
-  __ push(ecx);  // Push return address.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in eax.
-  __ AssertString(eax);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ test(FieldOperand(eax, String::kHashFieldOffset),
-          Immediate(String::kContainsCachedArrayIndexMask));
-  __ j(not_zero, &runtime, Label::kNear);
-  __ mov(eax, FieldOperand(eax, String::kHashFieldOffset));
-  __ IndexFromHash(eax, eax);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ PopReturnAddressTo(ecx);     // Pop return address.
-  __ Push(eax);                   // Push argument.
-  __ PushReturnAddressFrom(ecx);  // Push return address.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in eax.
   Label is_number;
@@ -2718,7 +2612,7 @@
   // Load ecx with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ mov(ecx, handle(isolate()->heap()->undefined_value()));
+  __ mov(ecx, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3549,14 +3443,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4332,19 +4226,14 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
 
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4352,8 +4241,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4373,13 +4260,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4491,7 +4380,7 @@
   __ TailCallStub(&stub1);
 
   __ bind(&not_one_case);
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN);
 }
 
@@ -4804,8 +4693,11 @@
     __ mov(eax, edi);
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ cmp(ecx, Immediate(Page::kMaxRegularHeapObjectSize));
+    __ j(greater, &too_big_for_new_space);
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ SmiTag(ecx);
@@ -4818,6 +4710,22 @@
       __ Pop(eax);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ PopReturnAddressTo(ecx);
+    // We reload the function from the caller frame due to register pressure
+    // within this stub. This is the slow path, hence reloading is preferable.
+    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(ebp, StandardFrameConstants::kCallerFPOffset));
+      __ Push(Operand(edx, StandardFrameConstants::kFunctionOffset));
+    } else {
+      __ Push(Operand(ebp, StandardFrameConstants::kFunctionOffset));
+    }
+    __ PushReturnAddressFrom(ecx);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -5174,8 +5082,11 @@
   __ mov(eax, edi);
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ cmp(ecx, Immediate(Page::kMaxRegularHeapObjectSize));
+  __ j(greater, &too_big_for_new_space);
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
     __ SmiTag(ecx);
@@ -5188,37 +5099,22 @@
     __ Pop(eax);
   }
   __ jmp(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context_reg = esi;
-  Register slot_reg = ebx;
-  Register result_reg = eax;
-  Label slow_case;
-
-  // Go up context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ mov(result_reg, ContextOperand(context_reg, Context::PREVIOUS_INDEX));
-    context_reg = result_reg;
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ PopReturnAddressTo(ecx);
+  // We reload the function from the caller frame due to register pressure
+  // within this stub. This is the slow path, hence reloading is preferable.
+  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(ebp, StandardFrameConstants::kCallerFPOffset));
+    __ Push(Operand(edx, StandardFrameConstants::kFunctionOffset));
+  } else {
+    __ Push(Operand(ebp, StandardFrameConstants::kFunctionOffset));
   }
-
-  // Load the PropertyCell value at the specified slot.
-  __ mov(result_reg, ContextOperand(context_reg, slot_reg));
-  __ mov(result_reg, FieldOperand(result_reg, PropertyCell::kValueOffset));
-
-  // Check that value is not the_hole.
-  __ CompareRoot(result_reg, Heap::kTheHoleValueRootIndex);
-  __ j(equal, &slow_case, Label::kNear);
-  __ Ret();
-
-  // Fallback to the runtime.
-  __ bind(&slow_case);
-  __ SmiTag(slot_reg);
-  __ Pop(result_reg);  // Pop return address.
-  __ Push(slot_reg);
-  __ Push(result_reg);  // Push return address.
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  __ PushReturnAddressFrom(ecx);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/ia32/code-stubs-ia32.h b/src/ia32/code-stubs-ia32.h
index fc813f5..c1878f0 100644
--- a/src/ia32/code-stubs-ia32.h
+++ b/src/ia32/code-stubs-ia32.h
@@ -301,8 +301,8 @@
                                   Register r2,
                                   Register r3) {
       for (int i = 0; i < Register::kNumRegisters; i++) {
-        Register candidate = Register::from_code(i);
-        if (candidate.IsAllocatable()) {
+        if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(i)) {
+          Register candidate = Register::from_code(i);
           if (candidate.is(ecx)) continue;
           if (candidate.is(r1)) continue;
           if (candidate.is(r2)) continue;
diff --git a/src/ia32/codegen-ia32.cc b/src/ia32/codegen-ia32.cc
index 36c83cc..18e5364 100644
--- a/src/ia32/codegen-ia32.cc
+++ b/src/ia32/codegen-ia32.cc
@@ -34,43 +34,6 @@
 #define __ masm.
 
 
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-  // esp[1 * kPointerSize]: raw double input
-  // esp[0 * kPointerSize]: return address
-  {
-    XMMRegister input = xmm1;
-    XMMRegister result = xmm2;
-    __ movsd(input, Operand(esp, 1 * kPointerSize));
-    __ push(eax);
-    __ push(ebx);
-
-    MathExpGenerator::EmitMathExp(&masm, input, result, xmm0, eax, ebx);
-
-    __ pop(ebx);
-    __ pop(eax);
-    __ movsd(Operand(esp, 1 * kPointerSize), result);
-    __ fld_d(Operand(esp, 1 * kPointerSize));
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-}
-
-
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
   size_t actual_size;
   // Allocate buffer in executable space.
@@ -580,6 +543,7 @@
 
   __ push(eax);
   __ push(ebx);
+  __ push(esi);
 
   __ mov(edi, FieldOperand(edi, FixedArray::kLengthOffset));
 
@@ -620,8 +584,9 @@
 
   // Call into runtime if GC is required.
   __ bind(&gc_required);
+
   // Restore registers before jumping into runtime.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  __ pop(esi);
   __ pop(ebx);
   __ pop(eax);
   __ jmp(fail);
@@ -656,12 +621,11 @@
   __ sub(edi, Immediate(Smi::FromInt(1)));
   __ j(not_sign, &loop);
 
+  // Restore registers.
+  __ pop(esi);
   __ pop(ebx);
   __ pop(eax);
 
-  // Restore esi.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-
   __ bind(&only_change_map);
   // eax: value
   // ebx: target map
@@ -927,64 +891,6 @@
   __ bind(&done);
 }
 
-
-static Operand ExpConstant(int index) {
-  return Operand::StaticVariable(ExternalReference::math_exp_constants(index));
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   XMMRegister input,
-                                   XMMRegister result,
-                                   XMMRegister double_scratch,
-                                   Register temp1,
-                                   Register temp2) {
-  DCHECK(!input.is(double_scratch));
-  DCHECK(!input.is(result));
-  DCHECK(!result.is(double_scratch));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label done;
-
-  __ movsd(double_scratch, ExpConstant(0));
-  __ xorpd(result, result);
-  __ ucomisd(double_scratch, input);
-  __ j(above_equal, &done);
-  __ ucomisd(input, ExpConstant(1));
-  __ movsd(result, ExpConstant(2));
-  __ j(above_equal, &done);
-  __ movsd(double_scratch, ExpConstant(3));
-  __ movsd(result, ExpConstant(4));
-  __ mulsd(double_scratch, input);
-  __ addsd(double_scratch, result);
-  __ movd(temp2, double_scratch);
-  __ subsd(double_scratch, result);
-  __ movsd(result, ExpConstant(6));
-  __ mulsd(double_scratch, ExpConstant(5));
-  __ subsd(double_scratch, input);
-  __ subsd(result, double_scratch);
-  __ movsd(input, double_scratch);
-  __ mulsd(input, double_scratch);
-  __ mulsd(result, input);
-  __ mov(temp1, temp2);
-  __ mulsd(result, ExpConstant(7));
-  __ subsd(result, double_scratch);
-  __ add(temp1, Immediate(0x1ff800));
-  __ addsd(result, ExpConstant(8));
-  __ and_(temp2, Immediate(0x7ff));
-  __ shr(temp1, 11);
-  __ shl(temp1, 20);
-  __ movd(input, temp1);
-  __ pshufd(input, input, static_cast<uint8_t>(0xe1));  // Order: 11 10 00 01
-  __ movsd(double_scratch, Operand::StaticArray(
-      temp2, times_8, ExternalReference::math_exp_log_table()));
-  __ orps(input, double_scratch);
-  __ mulsd(result, input);
-  __ bind(&done);
-}
-
 #undef __
 
 
diff --git a/src/ia32/codegen-ia32.h b/src/ia32/codegen-ia32.h
index 133b1ad..46468e9 100644
--- a/src/ia32/codegen-ia32.h
+++ b/src/ia32/codegen-ia32.h
@@ -29,19 +29,6 @@
 };
 
 
-class MathExpGenerator : public AllStatic {
- public:
-  static void EmitMathExp(MacroAssembler* masm,
-                          XMMRegister input,
-                          XMMRegister result,
-                          XMMRegister double_scratch,
-                          Register temp1,
-                          Register temp2);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/ia32/deoptimizer-ia32.cc b/src/ia32/deoptimizer-ia32.cc
index 656d3e9..c14a2a1 100644
--- a/src/ia32/deoptimizer-ia32.cc
+++ b/src/ia32/deoptimizer-ia32.cc
@@ -196,8 +196,7 @@
 
   const int kDoubleRegsSize = kDoubleSize * XMMRegister::kMaxNumRegisters;
   __ sub(esp, Immediate(kDoubleRegsSize));
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     XMMRegister xmm_reg = XMMRegister::from_code(code);
diff --git a/src/ia32/disasm-ia32.cc b/src/ia32/disasm-ia32.cc
index 8a1b3b5..be3530c 100644
--- a/src/ia32/disasm-ia32.cc
+++ b/src/ia32/disasm-ia32.cc
@@ -1232,6 +1232,10 @@
       return "shrd";  // 3-operand version.
     case 0xAB:
       return "bts";
+    case 0xB0:
+      return "cmpxchg_b";
+    case 0xB1:
+      return "cmpxchg";
     case 0xBC:
       return "bsf";
     case 0xBD:
@@ -1264,6 +1268,9 @@
     vex_byte0_ = *data;
     vex_byte1_ = *(data + 1);
     data += 2;
+  } else if (*data == 0xF0 /*lock*/) {
+    AppendToBuffer("lock ");
+    data++;
   }
 
   bool processed = true;  // Will be set to false if the current instruction
@@ -1496,6 +1503,18 @@
             } else {
               AppendToBuffer(",%s,cl", NameOfCPURegister(regop));
             }
+          } else if (f0byte == 0xB0) {
+            // cmpxchg_b
+            data += 2;
+            AppendToBuffer("%s ", f0mnem);
+            int mod, regop, rm;
+            get_modrm(*data, &mod, &regop, &rm);
+            data += PrintRightOperand(data);
+            AppendToBuffer(",%s", NameOfByteCPURegister(regop));
+          } else if (f0byte == 0xB1) {
+            // cmpxchg
+            data += 2;
+            data += PrintOperands(f0mnem, OPER_REG_OP_ORDER, data);
           } else if (f0byte == 0xBC) {
             data += 2;
             int mod, regop, rm;
@@ -1620,9 +1639,8 @@
           data++;
           int mod, regop, rm;
           get_modrm(*data, &mod, &regop, &rm);
-          AppendToBuffer("xchg_w ");
+          AppendToBuffer("xchg_w %s,", NameOfCPURegister(regop));
           data += PrintRightOperand(data);
-          AppendToBuffer(",%s", NameOfCPURegister(regop));
         } else if (*data == 0x89) {
           data++;
           int mod, regop, rm;
@@ -1897,6 +1915,9 @@
                            NameOfXMMRegister(regop),
                            NameOfXMMRegister(rm));
             data++;
+          } else if (*data == 0xB1) {
+            data++;
+            data += PrintOperands("cmpxchg_w", OPER_REG_OP_ORDER, data);
           } else {
             UnimplementedInstruction();
           }
@@ -2227,7 +2248,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -2290,7 +2311,7 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    fprintf(f, "%p", prev_pc);
+    fprintf(f, "%p", static_cast<void*>(prev_pc));
     fprintf(f, "    ");
 
     for (byte* bp = prev_pc; bp < pc; bp++) {
diff --git a/src/ia32/interface-descriptors-ia32.cc b/src/ia32/interface-descriptors-ia32.cc
index 8a877b1..98259c7 100644
--- a/src/ia32/interface-descriptors-ia32.cc
+++ b/src/ia32/interface-descriptors-ia32.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return esi; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {eax, ebx, ecx, edx, edi};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return edx; }
 const Register LoadDescriptor::NameRegister() { return ecx; }
@@ -44,9 +52,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return ebx; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
 
@@ -68,8 +73,6 @@
 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) {
@@ -259,43 +262,27 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // eax -- number of arguments
   // edi -- function
   // ebx -- allocation site with elements kind
-  Register registers[] = {edi, ebx};
+  Register registers[] = {edi, ebx, eax};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {edi, ebx, eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
   // register state
   // eax -- number of arguments
   // edi -- function
-  Register registers[] = {edi};
+  // ebx -- allocation site with elements kind
+  Register registers[] = {edi, ebx, eax};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {edi, eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {eax};
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc
index 08189e2..25a0a95 100644
--- a/src/ia32/macro-assembler-ia32.cc
+++ b/src/ia32/macro-assembler-ia32.cc
@@ -1095,8 +1095,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   mov(vector, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
-  mov(vector, FieldOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  mov(vector, FieldOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  mov(vector, FieldOperand(vector, JSFunction::kLiteralsOffset));
+  mov(vector, FieldOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -2362,10 +2362,11 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  cmpb(Operand::StaticVariable(step_in_enabled), Immediate(0));
-  j(equal, &skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  cmpb(Operand::StaticVariable(last_step_action), Immediate(StepIn));
+  j(less, &skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -2678,7 +2679,7 @@
 
 
 void MacroAssembler::Move(Register dst, const Immediate& x) {
-  if (x.is_zero()) {
+  if (x.is_zero() && RelocInfo::IsNone(x.rmode_)) {
     xor_(dst, dst);  // Shorter than mov of 32-bit immediate 0.
   } else {
     mov(dst, x);
diff --git a/src/ic/access-compiler.h b/src/ic/access-compiler.h
index 50c2cc7..ecc5c08 100644
--- a/src/ic/access-compiler.h
+++ b/src/ic/access-compiler.h
@@ -58,7 +58,6 @@
   Register vector() const;
   Register scratch1() const { return registers_[2]; }
   Register scratch2() const { return registers_[3]; }
-  Register scratch3() const { return registers_[4]; }
 
   static Register* GetCallingConvention(Code::Kind);
   static Register* load_calling_convention();
diff --git a/src/ic/arm/access-compiler-arm.cc b/src/ic/arm/access-compiler-arm.cc
index d360f5a..9ce485e 100644
--- a/src/ic/arm/access-compiler-arm.cc
+++ b/src/ic/arm/access-compiler-arm.cc
@@ -19,19 +19,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r3, r0, r4, r5};
+  static Register registers[] = {receiver, name, r3, r0, r4};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r3, r4, r5};
+  static Register registers[] = {receiver, name, r3, r4};
   return registers;
 }
 
diff --git a/src/ic/arm/handler-compiler-arm.cc b/src/ic/arm/handler-compiler-arm.cc
index ed26a4e..b98602b 100644
--- a/src/ic/arm/handler-compiler-arm.cc
+++ b/src/ic/arm/handler-compiler-arm.cc
@@ -204,8 +204,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ ldr(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
@@ -290,7 +291,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -437,28 +438,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ mov(scratch1, Operand(validity_cell));
-      __ ldr(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ cmp(scratch1, Operand(Smi::FromInt(Map::kPrototypeChainValid)));
-      __ b(ne, miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ mov(scratch1, Operand(validity_cell));
+    __ ldr(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ cmp(scratch1, Operand(Smi::FromInt(Map::kPrototypeChainValid)));
+    __ b(ne, miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ ldr(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ b(ne, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ ldr(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ b(ne, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -494,8 +492,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -505,33 +505,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ldr(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ ldr(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ldr(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ b(ne, miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ldr(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -545,17 +524,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ ldr(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ b(ne, miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -600,7 +570,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -660,7 +630,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -678,7 +648,7 @@
 
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ mov(ip, Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/arm/ic-arm.cc b/src/ic/arm/ic-arm.cc
index b0bcc88..f3af785 100644
--- a/src/ic/arm/ic-arm.cc
+++ b/src/ic/arm/ic-arm.cc
@@ -734,26 +734,6 @@
   GenerateMiss(masm);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(receiver.is(r1));
-  DCHECK(name.is(r2));
-  DCHECK(StoreDescriptor::ValueRegister().is(r0));
-
-  // Get the receiver from the stack and probe the stub cache.
-  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);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -845,8 +825,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n", address,
-           cmp_instruction_address, delta);
+    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(cmp_instruction_address), delta);
   }
 
   Address patch_address =
diff --git a/src/ic/arm64/access-compiler-arm64.cc b/src/ic/arm64/access-compiler-arm64.cc
index 892ce85..6273633 100644
--- a/src/ic/arm64/access-compiler-arm64.cc
+++ b/src/ic/arm64/access-compiler-arm64.cc
@@ -26,19 +26,19 @@
 // we use the same assignments as ARM to remain on the safe side.
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, x3, x0, x4, x5};
+  static Register registers[] = {receiver, name, x3, x0, x4};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, value, scratch1, scratch2, scratch3.
+  // receiver, value, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, x3, x4, x5};
+  static Register registers[] = {receiver, name, x3, x4};
   return registers;
 }
 
diff --git a/src/ic/arm64/handler-compiler-arm64.cc b/src/ic/arm64/handler-compiler-arm64.cc
index 84c0397..1126beb 100644
--- a/src/ic/arm64/handler-compiler-arm64.cc
+++ b/src/ic/arm64/handler-compiler-arm64.cc
@@ -110,8 +110,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ Ldr(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ JumpIfNotRoot(scratch, Heap::kTheHoleValueRootIndex, miss);
@@ -197,7 +198,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -467,28 +468,25 @@
   DCHECK(!AreAliased(object_reg, scratch1, scratch2));
   DCHECK(!AreAliased(holder_reg, scratch1, scratch2));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ Mov(scratch1, Operand(validity_cell));
-      __ Ldr(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ Cmp(scratch1, Operand(Smi::FromInt(Map::kPrototypeChainValid)));
-      __ B(ne, miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ Mov(scratch1, Operand(validity_cell));
+    __ Ldr(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ Cmp(scratch1, Operand(Smi::FromInt(Map::kPrototypeChainValid)));
+    __ B(ne, miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ Ldr(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ B(ne, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ Ldr(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ B(ne, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -525,8 +523,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -535,34 +535,12 @@
       DCHECK(current.is_null() || (current->property_dictionary()->FindEntry(
                                        name) == NameDictionary::kNotFound));
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ Ldr(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ Ldr(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ Ldr(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ B(ne, miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ Ldr(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -576,17 +554,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ Ldr(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ B(ne, miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -637,7 +606,7 @@
   DCHECK(!AreAliased(receiver(), this->name(), scratch1(), scratch2(),
                      scratch3()));
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -696,7 +665,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -718,7 +687,7 @@
   DCHECK(!AreAliased(holder_reg, scratch1(), scratch2(), value()));
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ Mov(scratch1(), Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/arm64/ic-arm64.cc b/src/ic/arm64/ic-arm64.cc
index 3fd384e..69b8c2f 100644
--- a/src/ic/arm64/ic-arm64.cc
+++ b/src/ic/arm64/ic-arm64.cc
@@ -724,24 +724,6 @@
   GenerateMiss(masm);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(!AreAliased(receiver, name, StoreDescriptor::ValueRegister(), x5, x6,
-                     x7, x8));
-
-  // Probe the stub cache.
-  Code::Flags flags =
-      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, x5, x6, x7, x8);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -821,8 +803,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  Patching ic at %p, marker=%p, SMI check=%p\n", address,
-           info_address, reinterpret_cast<void*>(info.SmiCheck()));
+    PrintF("[  Patching ic at %p, marker=%p, SMI check=%p\n",
+           static_cast<void*>(address), static_cast<void*>(info_address),
+           static_cast<void*>(info.SmiCheck()));
   }
 
   // Patch and activate code generated by JumpPatchSite::EmitJumpIfNotSmi()
diff --git a/src/ic/call-optimization.cc b/src/ic/call-optimization.cc
index 571b614..f7a1f69 100644
--- a/src/ic/call-optimization.cc
+++ b/src/ic/call-optimization.cc
@@ -89,11 +89,12 @@
 
 void CallOptimization::Initialize(
     Handle<FunctionTemplateInfo> function_template_info) {
-  if (function_template_info->call_code()->IsUndefined()) return;
+  Isolate* isolate = function_template_info->GetIsolate();
+  if (function_template_info->call_code()->IsUndefined(isolate)) return;
   api_call_info_ =
       handle(CallHandlerInfo::cast(function_template_info->call_code()));
 
-  if (!function_template_info->signature()->IsUndefined()) {
+  if (!function_template_info->signature()->IsUndefined(isolate)) {
     expected_receiver_type_ =
         handle(FunctionTemplateInfo::cast(function_template_info->signature()));
   }
@@ -110,15 +111,17 @@
 
 void CallOptimization::AnalyzePossibleApiFunction(Handle<JSFunction> function) {
   if (!function->shared()->IsApiFunction()) return;
-  Handle<FunctionTemplateInfo> info(function->shared()->get_api_func_data());
+  Isolate* isolate = function->GetIsolate();
+  Handle<FunctionTemplateInfo> info(function->shared()->get_api_func_data(),
+                                    isolate);
 
   // Require a C++ callback.
-  if (info->call_code()->IsUndefined()) return;
-  api_call_info_ = handle(CallHandlerInfo::cast(info->call_code()));
+  if (info->call_code()->IsUndefined(isolate)) return;
+  api_call_info_ = handle(CallHandlerInfo::cast(info->call_code()), isolate);
 
-  if (!info->signature()->IsUndefined()) {
+  if (!info->signature()->IsUndefined(isolate)) {
     expected_receiver_type_ =
-        handle(FunctionTemplateInfo::cast(info->signature()));
+        handle(FunctionTemplateInfo::cast(info->signature()), isolate);
   }
 
   is_simple_api_call_ = true;
diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc
index 2c8c092..6d153bb 100644
--- a/src/ic/handler-compiler.cc
+++ b/src/ic/handler-compiler.cc
@@ -9,7 +9,6 @@
 #include "src/ic/ic-inl.h"
 #include "src/ic/ic.h"
 #include "src/isolate-inl.h"
-#include "src/profiler/cpu-profiler.h"
 
 namespace v8 {
 namespace internal {
@@ -28,7 +27,7 @@
 Handle<Code> NamedLoadHandlerCompiler::ComputeLoadNonexistent(
     Handle<Name> name, Handle<Map> receiver_map) {
   Isolate* isolate = name->GetIsolate();
-  if (receiver_map->prototype()->IsNull()) {
+  if (receiver_map->prototype()->IsNull(isolate)) {
     // TODO(jkummerow/verwaest): If there is no prototype and the property
     // is nonexistent, introduce a builtin to handle this (fast properties
     // -> return undefined, dictionary properties -> do negative lookup).
@@ -51,7 +50,7 @@
   Handle<JSObject> last(JSObject::cast(receiver_map->prototype()));
   while (true) {
     if (current_map->is_dictionary_map()) cache_name = name;
-    if (current_map->prototype()->IsNull()) break;
+    if (current_map->prototype()->IsNull(isolate)) break;
     if (name->IsPrivate()) {
       // TODO(verwaest): Use nonexistent_private_symbol.
       cache_name = name;
@@ -79,7 +78,7 @@
                                               Handle<Name> name) {
   Code::Flags flags = Code::ComputeHandlerFlags(kind, cache_holder());
   Handle<Code> code = GetCodeWithFlags(flags, name);
-  PROFILE(isolate(), CodeCreateEvent(Logger::HANDLER_TAG,
+  PROFILE(isolate(), CodeCreateEvent(CodeEventListener::HANDLER_TAG,
                                      AbstractCode::cast(*code), *name));
 #ifdef DEBUG
   code->VerifyEmbeddedObjects();
@@ -226,7 +225,11 @@
 Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
     Handle<Name> name, Handle<AccessorInfo> callback) {
   Register reg = Frontend(name);
-  GenerateLoadCallback(reg, callback);
+  if (FLAG_runtime_call_stats) {
+    TailCallBuiltin(masm(), Builtins::kLoadIC_Slow);
+  } else {
+    GenerateLoadCallback(reg, callback);
+  }
   return GetCode(kind(), name);
 }
 
@@ -236,8 +239,12 @@
     int accessor_index) {
   DCHECK(call_optimization.is_simple_api_call());
   Register holder = Frontend(name);
-  GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(),
-                          scratch2(), false, no_reg, holder, accessor_index);
+  if (FLAG_runtime_call_stats) {
+    TailCallBuiltin(masm(), Builtins::kLoadIC_Slow);
+  } else {
+    GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(),
+                            scratch2(), false, no_reg, holder, accessor_index);
+  }
   return GetCode(kind(), name);
 }
 
@@ -420,7 +427,6 @@
   }
 }
 
-
 Handle<Code> NamedLoadHandlerCompiler::CompileLoadViaGetter(
     Handle<Name> name, int accessor_index, int expected_arguments) {
   Register holder = Frontend(name);
@@ -445,8 +451,7 @@
     PrototypeIterator::WhereToEnd end =
         name->IsPrivate() ? PrototypeIterator::END_AT_NON_HIDDEN
                           : PrototypeIterator::END_AT_NULL;
-    PrototypeIterator iter(isolate(), holder(),
-                           PrototypeIterator::START_AT_PROTOTYPE, end);
+    PrototypeIterator iter(isolate(), holder(), kStartAtPrototype, end);
     while (!iter.IsAtEnd()) {
       last = PrototypeIterator::GetCurrent<JSObject>(iter);
       iter.Advance();
@@ -563,9 +568,14 @@
     Handle<JSObject> object, Handle<Name> name,
     const CallOptimization& call_optimization, int accessor_index) {
   Register holder = Frontend(name);
-  GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()),
-                          receiver(), scratch2(), true, value(), holder,
-                          accessor_index);
+  if (FLAG_runtime_call_stats) {
+    GenerateRestoreName(name);
+    TailCallBuiltin(masm(), Builtins::kStoreIC_Slow);
+  } else {
+    GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()),
+                            receiver(), scratch2(), true, value(), holder,
+                            accessor_index);
+  }
   return GetCode(kind(), name);
 }
 
@@ -593,7 +603,8 @@
            *receiver_map == isolate()->get_initial_js_array_map(elements_kind));
 
       if (receiver_map->has_indexed_interceptor() &&
-          !receiver_map->GetIndexedInterceptor()->getter()->IsUndefined() &&
+          !receiver_map->GetIndexedInterceptor()->getter()->IsUndefined(
+              isolate()) &&
           !receiver_map->GetIndexedInterceptor()->non_masking()) {
         cached_stub = LoadIndexedInterceptorStub(isolate()).GetCode();
       } else if (IsSloppyArgumentsElements(elements_kind)) {
@@ -604,8 +615,7 @@
                                           convert_hole_to_undefined).GetCode();
       } else {
         DCHECK(elements_kind == DICTIONARY_ELEMENTS);
-        LoadICState state = LoadICState(kNoExtraICState);
-        cached_stub = LoadDictionaryElementStub(isolate(), state).GetCode();
+        cached_stub = LoadDictionaryElementStub(isolate()).GetCode();
       }
     }
 
diff --git a/src/ic/handler-compiler.h b/src/ic/handler-compiler.h
index e34cd68..a571f4f 100644
--- a/src/ic/handler-compiler.h
+++ b/src/ic/handler-compiler.h
@@ -205,8 +205,7 @@
                                                         Register prototype,
                                                         Label* miss);
 
-
-  Register scratch4() { return registers_[5]; }
+  Register scratch3() { return registers_[4]; }
 };
 
 
diff --git a/src/ic/ia32/access-compiler-ia32.cc b/src/ic/ia32/access-compiler-ia32.cc
index 1825202..3219f3d 100644
--- a/src/ic/ia32/access-compiler-ia32.cc
+++ b/src/ic/ia32/access-compiler-ia32.cc
@@ -18,19 +18,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, ebx, eax, edi, no_reg};
+  static Register registers[] = {receiver, name, ebx, eax, edi};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, ebx, edi, no_reg};
+  static Register registers[] = {receiver, name, ebx, edi};
   return registers;
 }
 
diff --git a/src/ic/ia32/handler-compiler-ia32.cc b/src/ic/ia32/handler-compiler-ia32.cc
index 37ab66d..2a883c7 100644
--- a/src/ic/ia32/handler-compiler-ia32.cc
+++ b/src/ic/ia32/handler-compiler-ia32.cc
@@ -199,7 +199,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ mov(data, Immediate(isolate->factory()->undefined_value()));
   } else {
@@ -237,12 +237,12 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Factory* factory = masm->isolate()->factory();
-  Handle<WeakCell> weak_cell = factory->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ cmp(FieldOperand(scratch, PropertyCell::kValueOffset),
-         Immediate(factory->the_hole_value()));
+         Immediate(isolate->factory()->the_hole_value()));
   __ j(not_equal, miss);
 }
 
@@ -439,28 +439,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      // Operand::ForCell(...) points to the cell's payload!
-      __ cmp(Operand::ForCell(validity_cell),
-             Immediate(Smi::FromInt(Map::kPrototypeChainValid)));
-      __ j(not_equal, miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    // Operand::ForCell(...) points to the cell's payload!
+    __ cmp(Operand::ForCell(validity_cell),
+           Immediate(Smi::FromInt(Map::kPrototypeChainValid)));
+    __ j(not_equal, miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ mov(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ j(not_equal, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ mov(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ j(not_equal, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -496,8 +493,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -507,34 +506,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-        __ mov(holder_reg, FieldOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(map_reg, FieldOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ j(not_equal, miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(holder_reg, FieldOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -548,17 +525,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ j(not_equal, miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -604,7 +572,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -671,7 +639,7 @@
 
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   // Call the runtime system to load the interceptor.
   __ pop(scratch2());  // save old return address
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
@@ -692,7 +660,7 @@
   __ push(holder_reg);
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ Push(callback);
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/ia32/ic-ia32.cc b/src/ic/ia32/ic-ia32.cc
index d32e1c3..4fa990d 100644
--- a/src/ic/ia32/ic-ia32.cc
+++ b/src/ic/ia32/ic-ia32.cc
@@ -708,15 +708,6 @@
   __ TailCallRuntime(Runtime::kKeyedGetProperty);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  // This shouldn't be called.
-  // TODO(mvstanton): remove this method.
-  __ int3();
-  return;
-}
-
-
 static void StoreIC_PushArgs(MacroAssembler* masm) {
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
@@ -836,8 +827,9 @@
   // condition code uses at the patched jump.
   uint8_t delta = *reinterpret_cast<uint8_t*>(delta_address);
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, test=%p, delta=%d\n", address,
-           test_instruction_address, delta);
+    PrintF("[  patching ic at %p, test=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(test_instruction_address), delta);
   }
 
   // Patch with a short conditional jump. Enabling means switching from a short
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc
index e89cb4b..af025fb 100644
--- a/src/ic/ic-compiler.cc
+++ b/src/ic/ic-compiler.cc
@@ -6,8 +6,6 @@
 
 #include "src/ic/handler-compiler.h"
 #include "src/ic/ic-inl.h"
-#include "src/profiler/cpu-profiler.h"
-
 
 namespace v8 {
 namespace internal {
@@ -15,6 +13,7 @@
 
 Handle<Code> PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler(
     Handle<Map> receiver_map, ExtraICState extra_ic_state) {
+  // TODO(ishell): remove extra_ic_state
   Isolate* isolate = receiver_map->GetIsolate();
   bool is_js_array = receiver_map->instance_type() == JS_ARRAY_TYPE;
   ElementsKind elements_kind = receiver_map->elements_kind();
@@ -42,8 +41,7 @@
   } else {
     DCHECK(receiver_map->has_dictionary_elements());
     TRACE_HANDLER_STATS(isolate, KeyedLoadIC_LoadDictionaryElementStub);
-    stub = LoadDictionaryElementStub(isolate, LoadICState(extra_ic_state))
-               .GetCode();
+    stub = LoadDictionaryElementStub(isolate).GetCode();
   }
   return stub;
 }
diff --git a/src/ic/ic-state.cc b/src/ic/ic-state.cc
index bf1e45f..d157c92 100644
--- a/src/ic/ic-state.cc
+++ b/src/ic/ic-state.cc
@@ -257,10 +257,10 @@
 
   if (old_extra_ic_state == GetExtraICState()) {
     // Tagged operations can lead to non-truncating HChanges
-    if (left->IsUndefined() || left->IsBoolean()) {
+    if (left->IsUndefined(isolate_) || left->IsBoolean()) {
       left_kind_ = GENERIC;
     } else {
-      DCHECK(right->IsUndefined() || right->IsBoolean());
+      DCHECK(right->IsUndefined(isolate_) || right->IsBoolean());
       right_kind_ = GENERIC;
     }
   }
@@ -274,7 +274,7 @@
   if (object->IsBoolean() && is_truncating) {
     // Booleans will be automatically truncated by HChange.
     new_kind = INT32;
-  } else if (object->IsUndefined()) {
+  } else if (object->IsUndefined(isolate_)) {
     // Undefined will be automatically truncated by HChange.
     new_kind = is_truncating ? INT32 : NUMBER;
   } else if (object->IsSmi()) {
@@ -446,8 +446,9 @@
 
 // static
 CompareICState::State CompareICState::TargetState(
-    State old_state, State old_left, State old_right, Token::Value op,
-    bool has_inlined_smi_code, Handle<Object> x, Handle<Object> y) {
+    Isolate* isolate, State old_state, State old_left, State old_right,
+    Token::Value op, bool has_inlined_smi_code, Handle<Object> x,
+    Handle<Object> y) {
   switch (old_state) {
     case UNINITIALIZED:
       if (x->IsBoolean() && y->IsBoolean()) return BOOLEAN;
@@ -456,8 +457,8 @@
       if (Token::IsOrderedRelationalCompareOp(op)) {
         // Ordered comparisons treat undefined as NaN, so the
         // NUMBER stub will do the right thing.
-        if ((x->IsNumber() && y->IsUndefined()) ||
-            (y->IsNumber() && x->IsUndefined())) {
+        if ((x->IsNumber() && y->IsUndefined(isolate)) ||
+            (y->IsNumber() && x->IsUndefined(isolate))) {
           return NUMBER;
         }
       }
diff --git a/src/ic/ic-state.h b/src/ic/ic-state.h
index e1d33f8..b12b17d 100644
--- a/src/ic/ic-state.h
+++ b/src/ic/ic-state.h
@@ -193,13 +193,13 @@
 
   static const char* GetStateName(CompareICState::State state);
 
-  static State TargetState(State old_state, State old_left, State old_right,
-                           Token::Value op, bool has_inlined_smi_code,
-                           Handle<Object> x, Handle<Object> y);
+  static State TargetState(Isolate* isolate, State old_state, State old_left,
+                           State old_right, Token::Value op,
+                           bool has_inlined_smi_code, Handle<Object> x,
+                           Handle<Object> y);
 };
 
-
-class LoadICState final BASE_EMBEDDED {
+class LoadGlobalICState final BASE_EMBEDDED {
  private:
   class TypeofModeBits : public BitField<TypeofMode, 0, 1> {};
   STATIC_ASSERT(static_cast<int>(INSIDE_TYPEOF) == 0);
@@ -208,9 +208,10 @@
  public:
   static const uint32_t kNextBitFieldOffset = TypeofModeBits::kNext;
 
-  explicit LoadICState(ExtraICState extra_ic_state) : state_(extra_ic_state) {}
+  explicit LoadGlobalICState(ExtraICState extra_ic_state)
+      : state_(extra_ic_state) {}
 
-  explicit LoadICState(TypeofMode typeof_mode)
+  explicit LoadGlobalICState(TypeofMode typeof_mode)
       : state_(TypeofModeBits::encode(typeof_mode)) {}
 
   ExtraICState GetExtraICState() const { return state_; }
@@ -218,7 +219,7 @@
   TypeofMode typeof_mode() const { return TypeofModeBits::decode(state_); }
 
   static TypeofMode GetTypeofMode(ExtraICState state) {
-    return LoadICState(state).typeof_mode();
+    return LoadGlobalICState(state).typeof_mode();
   }
 };
 
diff --git a/src/ic/ic.cc b/src/ic/ic.cc
index 2dcb8d9..5d20420 100644
--- a/src/ic/ic.cc
+++ b/src/ic/ic.cc
@@ -5,8 +5,8 @@
 #include "src/ic/ic.h"
 
 #include "src/accessors.h"
+#include "src/api-arguments-inl.h"
 #include "src/api.h"
-#include "src/api-arguments.h"
 #include "src/arguments.h"
 #include "src/base/bits.h"
 #include "src/codegen.h"
@@ -16,14 +16,14 @@
 #include "src/frames-inl.h"
 #include "src/ic/call-optimization.h"
 #include "src/ic/handler-compiler.h"
-#include "src/ic/ic-inl.h"
 #include "src/ic/ic-compiler.h"
+#include "src/ic/ic-inl.h"
 #include "src/ic/stub-cache.h"
 #include "src/isolate-inl.h"
 #include "src/macro-assembler.h"
 #include "src/prototype.h"
-#include "src/runtime/runtime.h"
 #include "src/runtime/runtime-utils.h"
+#include "src/runtime/runtime.h"
 #include "src/tracing/trace-event.h"
 
 namespace v8 {
@@ -45,12 +45,6 @@
       return 'N';
     case GENERIC:
       return 'G';
-
-    // We never see the debugger states here, because the state is
-    // computed from the original code - not the patched code. Let
-    // these cases fall through to the unreachable code below.
-    case DEBUG_STUB:
-      break;
   }
   UNREACHABLE();
   return 0;
@@ -126,14 +120,13 @@
           casted_nexus<KeyedStoreICNexus>()->GetKeyedAccessStoreMode();
       modifier = GetTransitionMarkModifier(mode);
     }
-    PrintF(" (%c->%c%s) ", TransitionMarkFromState(old_state),
-           TransitionMarkFromState(new_state), modifier);
-#ifdef OBJECT_PRINT
-    OFStream os(stdout);
-    name->Print(os);
-#else
+    void* map = nullptr;
+    if (!receiver_map().is_null()) {
+      map = reinterpret_cast<void*>(*receiver_map());
+    }
+    PrintF(" (%c->%c%s) map=%p ", TransitionMarkFromState(old_state),
+           TransitionMarkFromState(new_state), modifier, map);
     name->ShortPrint(stdout);
-#endif
     PrintF("]\n");
   }
 }
@@ -184,11 +177,32 @@
   pc_address_ = StackFrame::ResolveReturnAddressLocation(pc_address);
   Code* target = this->target();
   kind_ = target->kind();
-  state_ = UseVector() ? nexus->StateFromFeedback() : target->ic_state();
+  state_ = UseVector() ? nexus->StateFromFeedback() : StateFromCode(target);
   old_state_ = state_;
   extra_ic_state_ = target->extra_ic_state();
 }
 
+InlineCacheState IC::StateFromCode(Code* code) {
+  Isolate* isolate = code->GetIsolate();
+  switch (code->kind()) {
+    case Code::BINARY_OP_IC: {
+      BinaryOpICState state(isolate, code->extra_ic_state());
+      return state.GetICState();
+    }
+    case Code::COMPARE_IC: {
+      CompareICStub stub(isolate, code->extra_ic_state());
+      return stub.GetICState();
+    }
+    case Code::TO_BOOLEAN_IC: {
+      ToBooleanICStub stub(isolate, code->extra_ic_state());
+      return stub.GetICState();
+    }
+    default:
+      if (code->is_debug_stub()) return UNINITIALIZED;
+      UNREACHABLE();
+      return UNINITIALIZED;
+  }
+}
 
 SharedFunctionInfo* IC::GetSharedFunctionInfo() const {
   // Compute the JavaScript frame for the frame pointer of this IC
@@ -223,7 +237,6 @@
   return host->kind() == Code::OPTIMIZED_FUNCTION;
 }
 
-
 static void LookupForRead(LookupIterator* it) {
   for (; it->IsFound(); it->Next()) {
     switch (it->state()) {
@@ -235,7 +248,8 @@
       case LookupIterator::INTERCEPTOR: {
         // If there is a getter, return; otherwise loop to perform the lookup.
         Handle<JSObject> holder = it->GetHolder<JSObject>();
-        if (!holder->GetNamedInterceptor()->getter()->IsUndefined()) {
+        if (!holder->GetNamedInterceptor()->getter()->IsUndefined(
+                it->isolate())) {
           return;
         }
         break;
@@ -257,9 +271,14 @@
 
 bool IC::ShouldRecomputeHandler(Handle<Object> receiver, Handle<String> name) {
   if (!RecomputeHandlerForName(name)) return false;
+
   DCHECK(UseVector());
   maybe_handler_ = nexus()->FindHandlerForMap(receiver_map());
 
+  // This is a contextual access, always just update the handler and stay
+  // monomorphic.
+  if (kind() == Code::LOAD_GLOBAL_IC) return true;
+
   // 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
   // to a more general elements kind.
@@ -275,15 +294,6 @@
                                                receiver_map()->elements_kind());
   }
 
-  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;
 }
 
@@ -304,7 +314,7 @@
   update_receiver_map(receiver);
   if (!name->IsString()) return;
   if (state() != MONOMORPHIC && state() != POLYMORPHIC) return;
-  if (receiver->IsUndefined() || receiver->IsNull()) return;
+  if (receiver->IsUndefined(isolate()) || receiver->IsNull(isolate())) return;
 
   // Remove the target from the code cache if it became invalid
   // because of changes in the prototype chain to avoid hitting it
@@ -359,7 +369,6 @@
       }
       break;
     case RECOMPUTE_HANDLER:
-    case DEBUG_STUB:
       UNREACHABLE();
   }
 }
@@ -384,8 +393,8 @@
 
   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();
+  State old_state = StateFromCode(old_target);
+  State new_state = StateFromCode(target);
 
   Isolate* isolate = target->GetIsolate();
   Code* host =
@@ -455,6 +464,12 @@
   OnTypeFeedbackChanged(isolate, host);
 }
 
+void LoadGlobalIC::Clear(Isolate* isolate, Code* host,
+                         LoadGlobalICNexus* nexus) {
+  if (IsCleared(nexus)) return;
+  nexus->ConfigureUninitialized();
+  OnTypeFeedbackChanged(isolate, host);
+}
 
 void StoreIC::Clear(Isolate* isolate, Code* host, StoreICNexus* nexus) {
   if (IsCleared(nexus)) return;
@@ -486,8 +501,9 @@
 // static
 Handle<Code> KeyedLoadIC::ChooseMegamorphicStub(Isolate* isolate,
                                                 ExtraICState extra_state) {
+  // TODO(ishell): remove extra_ic_state
   if (FLAG_compiled_keyed_generic_loads) {
-    return KeyedLoadGenericStub(isolate, LoadICState(extra_state)).GetCode();
+    return KeyedLoadGenericStub(isolate).GetCode();
   } else {
     return isolate->builtins()->KeyedLoadIC_Megamorphic();
   }
@@ -532,6 +548,9 @@
   if (kind() == Code::LOAD_IC) {
     LoadICNexus* nexus = casted_nexus<LoadICNexus>();
     nexus->ConfigureMonomorphic(map, handler);
+  } else if (kind() == Code::LOAD_GLOBAL_IC) {
+    LoadGlobalICNexus* nexus = casted_nexus<LoadGlobalICNexus>();
+    nexus->ConfigureHandlerMode(handler);
   } else if (kind() == Code::KEYED_LOAD_IC) {
     KeyedLoadICNexus* nexus = casted_nexus<KeyedLoadICNexus>();
     nexus->ConfigureMonomorphic(name, map, handler);
@@ -588,63 +607,21 @@
 MaybeHandle<Object> LoadIC::Load(Handle<Object> object, Handle<Name> name) {
   // If the object is undefined or null it's illegal to try to get any
   // of its properties; throw a TypeError in that case.
-  if (object->IsUndefined() || object->IsNull()) {
+  if (object->IsUndefined(isolate()) || object->IsNull(isolate())) {
     return TypeError(MessageTemplate::kNonObjectPropertyLoad, object, name);
   }
 
-  // Check if the name is trivially convertible to an index and get
-  // the element or char if so.
-  uint32_t index;
-  if (kind() == Code::KEYED_LOAD_IC && name->AsArrayIndex(&index)) {
-    // Rewrite to the generic keyed load stub.
-    if (FLAG_use_ic) {
-      DCHECK(UseVector());
-      ConfigureVectorState(MEGAMORPHIC, name);
-      TRACE_GENERIC_IC(isolate(), "LoadIC", "name as array index");
-      TRACE_IC("LoadIC", name);
-    }
-    Handle<Object> result;
-    ASSIGN_RETURN_ON_EXCEPTION(isolate(), result,
-                               Object::GetElement(isolate(), object, index),
-                               Object);
-    return result;
-  }
-
   bool use_ic = MigrateDeprecated(object) ? false : FLAG_use_ic;
 
-  if (object->IsJSGlobalObject() && name->IsString()) {
-    // Look up in script context table.
-    Handle<String> str_name = Handle<String>::cast(name);
-    Handle<JSGlobalObject> global = Handle<JSGlobalObject>::cast(object);
-    Handle<ScriptContextTable> script_contexts(
-        global->native_context()->script_context_table());
-
-    ScriptContextTable::LookupResult lookup_result;
-    if (ScriptContextTable::Lookup(script_contexts, str_name, &lookup_result)) {
-      Handle<Object> result =
-          FixedArray::get(*ScriptContextTable::GetContext(
-                              script_contexts, lookup_result.context_index),
-                          lookup_result.slot_index, isolate());
-      if (*result == *isolate()->factory()->the_hole_value()) {
-        // Do not install stubs and stay pre-monomorphic for
-        // uninitialized accesses.
-        return ReferenceError(name);
-      }
-
-      if (use_ic && LoadScriptContextFieldStub::Accepted(&lookup_result)) {
-        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadScriptContextFieldStub);
-        LoadScriptContextFieldStub stub(isolate(), &lookup_result);
-        PatchCache(name, stub.GetCode());
-      }
-      return result;
-    }
+  if (state() != UNINITIALIZED) {
+    JSObject::MakePrototypesFast(object, kStartAtReceiver, isolate());
+    update_receiver_map(object);
   }
-
   // Named lookup in the object.
   LookupIterator it(object, name);
   LookupForRead(&it);
 
-  if (it.IsFound() || !ShouldThrowReferenceError(object)) {
+  if (it.IsFound() || !ShouldThrowReferenceError()) {
     // Update inline cache and stub cache.
     if (use_ic) UpdateCaches(&it);
 
@@ -655,7 +632,7 @@
                                Object);
     if (it.IsFound()) {
       return result;
-    } else if (!ShouldThrowReferenceError(object)) {
+    } else if (!ShouldThrowReferenceError()) {
       LOG(isolate(), SuspectReadEvent(*name, *object));
       return result;
     }
@@ -663,6 +640,38 @@
   return ReferenceError(name);
 }
 
+MaybeHandle<Object> LoadGlobalIC::Load(Handle<Name> name) {
+  Handle<JSGlobalObject> global = isolate()->global_object();
+
+  if (name->IsString()) {
+    // Look up in script context table.
+    Handle<String> str_name = Handle<String>::cast(name);
+    Handle<ScriptContextTable> script_contexts(
+        global->native_context()->script_context_table());
+
+    ScriptContextTable::LookupResult lookup_result;
+    if (ScriptContextTable::Lookup(script_contexts, str_name, &lookup_result)) {
+      Handle<Object> result =
+          FixedArray::get(*ScriptContextTable::GetContext(
+                              script_contexts, lookup_result.context_index),
+                          lookup_result.slot_index, isolate());
+      if (result->IsTheHole(isolate())) {
+        // Do not install stubs and stay pre-monomorphic for
+        // uninitialized accesses.
+        return ReferenceError(name);
+      }
+
+      if (FLAG_use_ic && LoadScriptContextFieldStub::Accepted(&lookup_result)) {
+        TRACE_HANDLER_STATS(isolate(), LoadIC_LoadScriptContextFieldStub);
+        LoadScriptContextFieldStub stub(isolate(), &lookup_result);
+        PatchCache(name, stub.GetCode());
+        TRACE_IC("LoadGlobalIC", name);
+      }
+      return result;
+    }
+  }
+  return LoadIC::Load(global, name);
+}
 
 static bool AddOneReceiverMapIfMissing(MapHandleList* receiver_maps,
                                        Handle<Map> new_receiver_map) {
@@ -780,6 +789,11 @@
       break;
     case RECOMPUTE_HANDLER:
     case MONOMORPHIC:
+      if (kind() == Code::LOAD_GLOBAL_IC) {
+        UpdateMonomorphicIC(code, name);
+        break;
+      }
+    // Fall through.
     case POLYMORPHIC:
       if (!is_keyed() || state() == RECOMPUTE_HANDLER) {
         if (UpdatePolymorphicIC(name, code)) break;
@@ -796,35 +810,34 @@
       DCHECK(UseVector());
       vector_set_ = true;
       break;
-    case DEBUG_STUB:
-      break;
     case GENERIC:
       UNREACHABLE();
       break;
   }
 }
 
-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> LoadIC::initialize_stub_in_optimized_code(Isolate* isolate) {
+  if (FLAG_tf_load_ic_stub) {
+    return LoadICTFStub(isolate).GetCode();
+  }
+  return LoadICStub(isolate).GetCode();
+}
+
+Handle<Code> LoadGlobalIC::initialize_stub_in_optimized_code(
+    Isolate* isolate, ExtraICState extra_state) {
+  return LoadGlobalICStub(isolate, LoadGlobalICState(extra_state)).GetCode();
 }
 
 Handle<Code> KeyedLoadIC::initialize_stub_in_optimized_code(
-    Isolate* isolate, State initialization_state, ExtraICState extra_state) {
-  if (initialization_state != MEGAMORPHIC) {
-    return KeyedLoadICStub(isolate, LoadICState(extra_state)).GetCode();
-  }
-  return isolate->builtins()->KeyedLoadIC_Megamorphic();
+    Isolate* isolate, ExtraICState extra_state) {
+  // TODO(ishell): remove extra_ic_state
+  return KeyedLoadICStub(isolate).GetCode();
 }
 
-
 Handle<Code> KeyedStoreIC::initialize_stub_in_optimized_code(
-    Isolate* isolate, LanguageMode language_mode, State initialization_state) {
+    Isolate* isolate, LanguageMode language_mode) {
   StoreICState state = StoreICState(language_mode);
-  if (initialization_state != MEGAMORPHIC) {
-    return VectorKeyedStoreICStub(isolate, state).GetCode();
-  }
-  return ChooseMegamorphicStub(isolate, state.GetExtraICState());
+  return VectorKeyedStoreICStub(isolate, state).GetCode();
 }
 
 
@@ -884,7 +897,7 @@
 
 
 void LoadIC::UpdateCaches(LookupIterator* lookup) {
-  if (state() == UNINITIALIZED) {
+  if (state() == UNINITIALIZED && kind() != Code::LOAD_GLOBAL_IC) {
     // This is the first time we execute this inline cache. Set the target to
     // the pre monomorphic stub to delay setting the monomorphic state.
     ConfigureVectorState(PREMONOMORPHIC, Handle<Object>());
@@ -897,7 +910,7 @@
       lookup->state() == LookupIterator::ACCESS_CHECK) {
     code = slow_stub();
   } else if (!lookup->IsFound()) {
-    if (kind() == Code::LOAD_IC) {
+    if (kind() == Code::LOAD_IC || kind() == Code::LOAD_GLOBAL_IC) {
       code = NamedLoadHandlerCompiler::ComputeLoadNonexistent(lookup->name(),
                                                               receiver_map());
       // TODO(jkummerow/verwaest): Introduce a builtin that handles this case.
@@ -906,21 +919,41 @@
       code = slow_stub();
     }
   } else {
-    if (lookup->state() == LookupIterator::ACCESSOR) {
+    if (kind() == Code::LOAD_GLOBAL_IC &&
+        lookup->state() == LookupIterator::DATA &&
+        lookup->GetHolder<Object>()->IsJSGlobalObject()) {
+#if DEBUG
+      Handle<Object> holder = lookup->GetHolder<Object>();
+      Handle<Object> receiver = lookup->GetReceiver();
+      DCHECK_EQ(*receiver, *holder);
+#endif
+      // Now update the cell in the feedback vector.
+      LoadGlobalICNexus* nexus = casted_nexus<LoadGlobalICNexus>();
+      nexus->ConfigurePropertyCellMode(lookup->GetPropertyCell());
+      TRACE_IC("LoadGlobalIC", lookup->name());
+      return;
+    } else if (lookup->state() == LookupIterator::ACCESSOR) {
       if (!IsCompatibleReceiver(lookup, receiver_map())) {
         TRACE_GENERIC_IC(isolate(), "LoadIC", "incompatible receiver type");
         code = slow_stub();
       }
     } else if (lookup->state() == LookupIterator::INTERCEPTOR) {
-      // 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);
-      if (it.state() == LookupIterator::ACCESSOR &&
-          !IsCompatibleReceiver(&it, receiver_map())) {
-        TRACE_GENERIC_IC(isolate(), "LoadIC", "incompatible receiver type");
+      if (kind() == Code::LOAD_GLOBAL_IC) {
+        // The interceptor handler requires name but it is not passed explicitly
+        // to LoadGlobalIC and the LoadGlobalIC dispatcher also does not load
+        // it so we will just use slow stub.
         code = slow_stub();
+      } else {
+        // 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);
+        if (it.state() == LookupIterator::ACCESSOR &&
+            !IsCompatibleReceiver(&it, receiver_map())) {
+          TRACE_GENERIC_IC(isolate(), "LoadIC", "incompatible receiver type");
+          code = slow_stub();
+        }
       }
     }
     if (code.is_null()) code = ComputeHandler(lookup);
@@ -947,7 +980,8 @@
       lookup->GetReceiver().is_identical_to(lookup->GetHolder<JSObject>());
   CacheHolderFlag flag;
   Handle<Map> stub_holder_map;
-  if (kind() == Code::LOAD_IC || kind() == Code::KEYED_LOAD_IC) {
+  if (kind() == Code::LOAD_IC || kind() == Code::LOAD_GLOBAL_IC ||
+      kind() == Code::KEYED_LOAD_IC) {
     stub_holder_map = IC::GetHandlerCacheHolder(
         receiver_map(), receiver_is_holder, isolate(), &flag);
   } else {
@@ -1040,13 +1074,6 @@
         FieldIndex index = FieldIndex::ForInObjectOffset(object_offset, *map);
         return SimpleFieldLoad(index);
       }
-      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();
-      }
 
       if (IsCompatibleReceiver(lookup, map)) {
         Handle<Object> accessors = lookup->GetAccessors();
@@ -1089,7 +1116,7 @@
 
     case LookupIterator::DATA: {
       if (lookup->is_dictionary_holder()) {
-        if (kind() != Code::LOAD_IC) {
+        if (kind() != Code::LOAD_IC && kind() != Code::LOAD_GLOBAL_IC) {
           TRACE_HANDLER_STATS(isolate(), LoadIC_SlowStub);
           return slow_stub();
         }
@@ -1166,7 +1193,7 @@
   Handle<Map> map = receiver_map();
   switch (lookup->state()) {
     case LookupIterator::INTERCEPTOR: {
-      DCHECK(!holder->GetNamedInterceptor()->getter()->IsUndefined());
+      DCHECK(!holder->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
       TRACE_HANDLER_STATS(isolate(), LoadIC_LoadInterceptor);
       NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
       // Perform a lookup behind the interceptor. Copy the LookupIterator since
@@ -1182,8 +1209,6 @@
       int object_offset;
       DCHECK(!Accessors::IsJSObjectFieldAccessor(map, lookup->name(),
                                                  &object_offset));
-      DCHECK(!Accessors::IsJSArrayBufferViewFieldAccessor(map, lookup->name(),
-                                                          &object_offset));
 #endif
 
       DCHECK(IsCompatibleReceiver(lookup, map));
@@ -1200,7 +1225,6 @@
           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);
@@ -1220,7 +1244,6 @@
         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();
@@ -1228,7 +1251,7 @@
 
     case LookupIterator::DATA: {
       if (lookup->is_dictionary_holder()) {
-        DCHECK(kind() == Code::LOAD_IC);
+        DCHECK(kind() == Code::LOAD_IC || kind() == Code::LOAD_GLOBAL_IC);
         DCHECK(holder->IsJSGlobalObject());
         TRACE_HANDLER_STATS(isolate(), LoadIC_LoadGlobal);
         NamedLoadHandlerCompiler compiler(isolate(), map, holder, cache_holder);
@@ -1281,7 +1304,7 @@
         key = handle(Smi::FromInt(int_value), isolate);
       }
     }
-  } else if (key->IsUndefined()) {
+  } else if (key->IsUndefined(isolate)) {
     key = isolate->factory()->undefined_string();
   }
   return key;
@@ -1373,7 +1396,10 @@
   // internalized string directly or is representable as a smi.
   key = TryConvertKey(key, isolate());
 
-  if (key->IsInternalizedString() || key->IsSymbol()) {
+  uint32_t index;
+  if ((key->IsInternalizedString() &&
+       !String::cast(*key)->AsArrayIndex(&index)) ||
+      key->IsSymbol()) {
     ASSIGN_RETURN_ON_EXCEPTION(isolate(), load_handle,
                                LoadIC::Load(object, Handle<Name>::cast(key)),
                                Object);
@@ -1421,9 +1447,9 @@
         InterceptorInfo* info = holder->GetNamedInterceptor();
         if (it->HolderIsReceiverOrHiddenPrototype()) {
           return !info->non_masking() && receiver.is_identical_to(holder) &&
-                 !info->setter()->IsUndefined();
-        } else if (!info->getter()->IsUndefined() ||
-                   !info->query()->IsUndefined()) {
+                 !info->setter()->IsUndefined(it->isolate());
+        } else if (!info->getter()->IsUndefined(it->isolate()) ||
+                   !info->query()->IsUndefined(it->isolate())) {
           return false;
         }
         break;
@@ -1472,24 +1498,6 @@
 MaybeHandle<Object> StoreIC::Store(Handle<Object> object, Handle<Name> name,
                                    Handle<Object> value,
                                    JSReceiver::StoreFromKeyed store_mode) {
-  // Check if the name is trivially convertible to an index and set the element.
-  uint32_t index;
-  if (kind() == Code::KEYED_STORE_IC && name->AsArrayIndex(&index)) {
-    // Rewrite to the generic keyed store stub.
-    if (FLAG_use_ic) {
-      DCHECK(UseVector());
-      ConfigureVectorState(MEGAMORPHIC, name);
-      TRACE_IC("StoreIC", name);
-      TRACE_GENERIC_IC(isolate(), "StoreIC", "name as array index");
-    }
-    Handle<Object> result;
-    ASSIGN_RETURN_ON_EXCEPTION(
-        isolate(), result,
-        Object::SetElement(isolate(), object, index, value, language_mode()),
-        Object);
-    return result;
-  }
-
   if (object->IsJSGlobalObject() && name->IsString()) {
     // Look up in script context table.
     Handle<String> str_name = Handle<String>::cast(name);
@@ -1508,7 +1516,7 @@
       Handle<Object> previous_value =
           FixedArray::get(*script_context, lookup_result.slot_index, isolate());
 
-      if (*previous_value == *isolate()->factory()->the_hole_value()) {
+      if (previous_value->IsTheHole(isolate())) {
         // Do not install stubs and stay pre-monomorphic for
         // uninitialized accesses.
         return ReferenceError(name);
@@ -1538,10 +1546,13 @@
 
   // If the object is undefined or null it's illegal to try to set any
   // properties on it; throw a TypeError in that case.
-  if (object->IsUndefined() || object->IsNull()) {
+  if (object->IsUndefined(isolate()) || object->IsNull(isolate())) {
     return TypeError(MessageTemplate::kNonObjectPropertyStore, object, name);
   }
 
+  if (state() != UNINITIALIZED) {
+    JSObject::MakePrototypesFast(object, kStartAtPrototype, isolate());
+  }
   LookupIterator it(object, name);
   if (FLAG_use_ic) UpdateCaches(&it, value, store_mode);
 
@@ -1558,27 +1569,12 @@
   return code;
 }
 
-
 Handle<Code> StoreIC::initialize_stub_in_optimized_code(
-    Isolate* isolate, LanguageMode language_mode, State initialization_state) {
-  DCHECK(initialization_state == UNINITIALIZED ||
-         initialization_state == PREMONOMORPHIC ||
-         initialization_state == MEGAMORPHIC);
-  if (initialization_state != MEGAMORPHIC) {
-    VectorStoreICStub stub(isolate, StoreICState(language_mode));
-    return stub.GetCode();
-  }
-
-  return is_strict(language_mode)
-             ? isolate->builtins()->StoreIC_Megamorphic_Strict()
-             : isolate->builtins()->StoreIC_Megamorphic();
+    Isolate* isolate, LanguageMode language_mode) {
+  VectorStoreICStub stub(isolate, StoreICState(language_mode));
+  return stub.GetCode();
 }
 
-Handle<Code> StoreIC::slow_stub() const {
-  return isolate()->builtins()->StoreIC_Slow();
-}
-
-
 void StoreIC::UpdateCaches(LookupIterator* lookup, Handle<Object> value,
                            JSReceiver::StoreFromKeyed store_mode) {
   if (state() == UNINITIALIZED) {
@@ -1641,7 +1637,7 @@
     }
 
     case LookupIterator::INTERCEPTOR: {
-      DCHECK(!holder->GetNamedInterceptor()->setter()->IsUndefined());
+      DCHECK(!holder->GetNamedInterceptor()->setter()->IsUndefined(isolate()));
       TRACE_HANDLER_STATS(isolate(), StoreIC_StoreInterceptorStub);
       StoreInterceptorStub stub(isolate());
       return stub.GetCode();
@@ -1797,7 +1793,6 @@
         NamedStoreHandlerCompiler compiler(isolate(), receiver_map(), holder);
         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());
@@ -1812,7 +1807,6 @@
           Handle<Code> code = compiler.CompileStoreCallback(
               receiver, lookup->name(), call_optimization,
               lookup->GetAccessorIndex());
-          if (FLAG_runtime_call_stats) return slow_stub();
           return code;
         }
         TRACE_HANDLER_STATS(isolate(), StoreIC_StoreViaSetter);
@@ -2268,32 +2262,111 @@
   TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("v8"), "V8.IcMiss");
   HandleScope scope(isolate);
   Handle<Object> receiver = args.at<Object>(0);
-  Handle<Name> key = args.at<Name>(1);
-  Handle<Object> result;
 
-  DCHECK(args.length() == 4);
+  DCHECK_EQ(4, args.length());
   Handle<Smi> slot = args.at<Smi>(2);
   Handle<TypeFeedbackVector> vector = args.at<TypeFeedbackVector>(3);
   FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
   // A monomorphic or polymorphic KeyedLoadIC with a string key can call the
   // LoadIC miss handler if the handler misses. Since the vector Nexus is
   // set up outside the IC, handle that here.
-  if (vector->GetKind(vector_slot) == FeedbackVectorSlotKind::LOAD_IC) {
+  FeedbackVectorSlotKind kind = vector->GetKind(vector_slot);
+  if (kind == FeedbackVectorSlotKind::LOAD_IC) {
+    Handle<Name> key = args.at<Name>(1);
     LoadICNexus nexus(vector, vector_slot);
     LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
+
+  } else if (kind == FeedbackVectorSlotKind::LOAD_GLOBAL_IC) {
+    Handle<Name> key(vector->GetName(vector_slot), isolate);
+    DCHECK_NE(*key, *isolate->factory()->empty_string());
+    DCHECK_EQ(*isolate->global_object(), *receiver);
+    LoadGlobalICNexus nexus(vector, vector_slot);
+    LoadGlobalIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
+    ic.UpdateState(receiver, key);
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(key));
+
   } else {
-    DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
-              vector->GetKind(vector_slot));
+    Handle<Name> key = args.at<Name>(1);
+    DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC, kind);
     KeyedLoadICNexus nexus(vector, vector_slot);
     KeyedLoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
   }
+}
+
+// Used from ic-<arch>.cc.
+RUNTIME_FUNCTION(Runtime_LoadGlobalIC_Miss) {
+  TimerEventScope<TimerEventIcMiss> timer(isolate);
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+  Handle<JSGlobalObject> global = isolate->global_object();
+  Handle<Smi> slot = args.at<Smi>(0);
+  Handle<TypeFeedbackVector> vector = args.at<TypeFeedbackVector>(1);
+  FeedbackVectorSlot vector_slot = vector->ToSlot(slot->value());
+  DCHECK_EQ(FeedbackVectorSlotKind::LOAD_GLOBAL_IC,
+            vector->GetKind(vector_slot));
+  Handle<String> name(vector->GetName(vector_slot), isolate);
+  DCHECK_NE(*name, *isolate->factory()->empty_string());
+
+  LoadGlobalICNexus nexus(vector, vector_slot);
+  LoadGlobalIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
+  ic.UpdateState(global, name);
+
+  Handle<Object> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(name));
   return *result;
 }
 
+RUNTIME_FUNCTION(Runtime_LoadGlobalIC_Slow) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(2, args.length());
+  CONVERT_SMI_ARG_CHECKED(slot, 0);
+  CONVERT_ARG_HANDLE_CHECKED(TypeFeedbackVector, vector, 1);
+
+  FeedbackVectorSlot vector_slot = vector->ToSlot(slot);
+  DCHECK_EQ(FeedbackVectorSlotKind::LOAD_GLOBAL_IC,
+            vector->GetKind(vector_slot));
+  Handle<String> name(vector->GetName(vector_slot), isolate);
+  DCHECK_NE(*name, *isolate->factory()->empty_string());
+
+  Handle<JSGlobalObject> global = isolate->global_object();
+
+  Handle<ScriptContextTable> script_contexts(
+      global->native_context()->script_context_table());
+
+  ScriptContextTable::LookupResult lookup_result;
+  if (ScriptContextTable::Lookup(script_contexts, name, &lookup_result)) {
+    Handle<Context> script_context = ScriptContextTable::GetContext(
+        script_contexts, lookup_result.context_index);
+    Handle<Object> result =
+        FixedArray::get(*script_context, lookup_result.slot_index, isolate);
+    if (*result == *isolate->factory()->the_hole_value()) {
+      THROW_NEW_ERROR_RETURN_FAILURE(
+          isolate, NewReferenceError(MessageTemplate::kNotDefined, name));
+    }
+    return *result;
+  }
+
+  Handle<Object> result;
+  bool is_found = false;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result,
+      Runtime::GetObjectProperty(isolate, global, name, &is_found));
+  if (!is_found) {
+    LoadICNexus nexus(isolate);
+    LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
+    // It is actually a LoadGlobalICs here but the predicate handles this case
+    // properly.
+    if (ic.ShouldThrowReferenceError()) {
+      THROW_NEW_ERROR_RETURN_FAILURE(
+          isolate, NewReferenceError(MessageTemplate::kNotDefined, name));
+    }
+  }
+  return *result;
+}
 
 // Used from ic-<arch>.cc
 RUNTIME_FUNCTION(Runtime_KeyedLoadIC_Miss) {
@@ -2302,7 +2375,6 @@
   HandleScope scope(isolate);
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Object> key = args.at<Object>(1);
-  Handle<Object> result;
 
   DCHECK(args.length() == 4);
   Handle<Smi> slot = args.at<Smi>(2);
@@ -2311,8 +2383,7 @@
   KeyedLoadICNexus nexus(vector, vector_slot);
   KeyedLoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
   ic.UpdateState(receiver, key);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 }
 
 
@@ -2322,7 +2393,6 @@
   HandleScope scope(isolate);
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Object> key = args.at<Object>(1);
-  Handle<Object> result;
 
   DCHECK(args.length() == 4);
   Handle<Smi> slot = args.at<Smi>(2);
@@ -2331,9 +2401,7 @@
   KeyedLoadICNexus nexus(vector, vector_slot);
   KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
   ic.UpdateState(receiver, key);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
-
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
 }
 
 
@@ -2345,7 +2413,6 @@
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Name> key = args.at<Name>(1);
   Handle<Object> value = args.at<Object>(2);
-  Handle<Object> result;
 
   DCHECK(args.length() == 5 || args.length() == 6);
   Handle<Smi> slot = args.at<Smi>(3);
@@ -2355,18 +2422,15 @@
     StoreICNexus nexus(vector, vector_slot);
     StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                       ic.Store(receiver, key, value));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
   } else {
     DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
               vector->GetKind(vector_slot));
     KeyedStoreICNexus nexus(vector, vector_slot);
     KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                       ic.Store(receiver, key, value));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
   }
-  return *result;
 }
 
 
@@ -2377,7 +2441,6 @@
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Name> key = args.at<Name>(1);
   Handle<Object> value = args.at<Object>(2);
-  Handle<Object> result;
 
   int length = args.length();
   DCHECK(length == 5 || length == 6);
@@ -2407,18 +2470,15 @@
     StoreICNexus nexus(vector, vector_slot);
     StoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                       ic.Store(receiver, key, value));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
   } else {
     DCHECK_EQ(FeedbackVectorSlotKind::KEYED_STORE_IC,
               vector->GetKind(vector_slot));
     KeyedStoreICNexus nexus(vector, vector_slot);
     KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                       ic.Store(receiver, key, value));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
   }
-  return *result;
 }
 
 
@@ -2430,7 +2490,6 @@
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Object> key = args.at<Object>(1);
   Handle<Object> value = args.at<Object>(2);
-  Handle<Object> result;
 
   DCHECK(args.length() == 5);
   Handle<Smi> slot = args.at<Smi>(3);
@@ -2439,9 +2498,7 @@
   KeyedStoreICNexus nexus(vector, vector_slot);
   KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
   ic.UpdateState(receiver, key);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     ic.Store(receiver, key, value));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 }
 
 
@@ -2452,7 +2509,6 @@
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Object> key = args.at<Object>(1);
   Handle<Object> value = args.at<Object>(2);
-  Handle<Object> result;
 
   DCHECK(args.length() == 5);
   Handle<Smi> slot = args.at<Smi>(3);
@@ -2461,9 +2517,7 @@
   KeyedStoreICNexus nexus(vector, vector_slot);
   KeyedStoreIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
   ic.UpdateState(receiver, key);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     ic.Store(receiver, key, value));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, ic.Store(receiver, key, value));
 }
 
 
@@ -2477,11 +2531,9 @@
   StoreICNexus nexus(isolate);
   StoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
   language_mode = ic.language_mode();
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
-  return *result;
 }
 
 
@@ -2495,11 +2547,9 @@
   KeyedStoreICNexus nexus(isolate);
   KeyedStoreIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
   language_mode = ic.language_mode();
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
-  return *result;
 }
 
 
@@ -2522,11 +2572,9 @@
     JSObject::TransitionElementsKind(Handle<JSObject>::cast(object),
                                      map->elements_kind());
   }
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
-  return *result;
 }
 
 
@@ -2535,27 +2583,6 @@
     Handle<Object> right) {
   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;
   switch (state.op()) {
@@ -2676,11 +2703,8 @@
   Handle<Object> left = args.at<Object>(BinaryOpICStub::kLeft);
   Handle<Object> right = args.at<Object>(BinaryOpICStub::kRight);
   BinaryOpIC ic(isolate);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      ic.Transition(Handle<AllocationSite>::null(), left, right));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, ic.Transition(Handle<AllocationSite>::null(), left, right));
 }
 
 
@@ -2695,10 +2719,8 @@
   Handle<Object> right =
       args.at<Object>(BinaryOpWithAllocationSiteStub::kRight);
   BinaryOpIC ic(isolate);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, ic.Transition(allocation_site, left, right));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           ic.Transition(allocation_site, left, right));
 }
 
 Code* CompareIC::GetRawUninitialized(Isolate* isolate, Token::Value op) {
@@ -2726,7 +2748,7 @@
   CompareICState::State new_right =
       CompareICState::NewInputState(old_stub.right(), y);
   CompareICState::State state = CompareICState::TargetState(
-      old_stub.state(), old_stub.left(), old_stub.right(), op_,
+      isolate(), old_stub.state(), old_stub.left(), old_stub.right(), op_,
       HasInlinedSmiCode(address()), x, y);
   CompareICStub stub(isolate(), op_, new_left, new_right, state);
   if (state == CompareICState::KNOWN_RECEIVER) {
@@ -2805,6 +2827,12 @@
   CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode, 5);
   HandleScope scope(isolate);
 
+  if (FLAG_runtime_call_stats) {
+    RETURN_RESULT_OR_FAILURE(
+        isolate, Runtime::SetObjectProperty(isolate, receiver, name, value,
+                                            language_mode));
+  }
+
   Handle<AccessorInfo> callback(
       callback_or_cell->IsWeakCell()
           ? AccessorInfo::cast(WeakCell::cast(*callback_or_cell)->value())
@@ -2910,15 +2938,15 @@
 
   if (it.IsFound()) return *result;
 
+#ifdef DEBUG
   LoadICNexus nexus(isolate);
   LoadIC ic(IC::NO_EXTRA_FRAME, isolate, &nexus);
-  if (!ic.ShouldThrowReferenceError(it.GetReceiver())) {
-    return isolate->heap()->undefined_value();
-  }
+  // It could actually be any kind of LoadICs here but the predicate handles
+  // all the cases properly.
+  DCHECK(!ic.ShouldThrowReferenceError());
+#endif
 
-  // Throw a reference error.
-  THROW_NEW_ERROR_RETURN_FAILURE(
-      isolate, NewReferenceError(MessageTemplate::kNotDefined, it.name()));
+  return isolate->heap()->undefined_value();
 }
 
 
@@ -2996,7 +3024,6 @@
   HandleScope scope(isolate);
   Handle<Object> receiver = args.at<Object>(0);
   Handle<Name> key = args.at<Name>(1);
-  Handle<Object> result;
 
   DCHECK(args.length() == 4);
   Handle<Smi> slot = args.at<Smi>(2);
@@ -3009,17 +3036,15 @@
     LoadICNexus nexus(vector, vector_slot);
     LoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
   } else {
     DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
               vector->GetKind(vector_slot));
     KeyedLoadICNexus nexus(vector, vector_slot);
     KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
     ic.UpdateState(receiver, key);
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, ic.Load(receiver, key));
+    RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
   }
-
-  return *result;
 }
 }  // namespace internal
 }  // namespace v8
diff --git a/src/ic/ic.h b/src/ic/ic.h
index 5dae179..8d45eab 100644
--- a/src/ic/ic.h
+++ b/src/ic/ic.h
@@ -47,7 +47,8 @@
 
 #ifdef DEBUG
   bool IsLoadStub() const {
-    return kind_ == Code::LOAD_IC || kind_ == Code::KEYED_LOAD_IC;
+    return kind_ == Code::LOAD_IC || kind_ == Code::LOAD_GLOBAL_IC ||
+           kind_ == Code::KEYED_LOAD_IC;
   }
   bool IsStoreStub() const {
     return kind_ == Code::STORE_IC || kind_ == Code::KEYED_STORE_IC;
@@ -63,22 +64,19 @@
                                              Isolate* isolate,
                                              CacheHolderFlag* flag);
 
-  static bool IsCleared(Code* code) {
-    InlineCacheState state = code->ic_state();
-    return !FLAG_use_ic || state == UNINITIALIZED || state == PREMONOMORPHIC;
-  }
-
   static bool IsCleared(FeedbackNexus* nexus) {
     InlineCacheState state = nexus->StateFromFeedback();
     return !FLAG_use_ic || state == UNINITIALIZED || state == PREMONOMORPHIC;
   }
 
   static bool ICUseVector(Code::Kind kind) {
-    return kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC ||
-           kind == Code::CALL_IC || kind == Code::STORE_IC ||
-           kind == Code::KEYED_STORE_IC;
+    return kind == Code::LOAD_IC || kind == Code::LOAD_GLOBAL_IC ||
+           kind == Code::KEYED_LOAD_IC || kind == Code::CALL_IC ||
+           kind == Code::STORE_IC || kind == Code::KEYED_STORE_IC;
   }
 
+  static InlineCacheState StateFromCode(Code* code);
+
  protected:
   Address fp() const { return fp_; }
   Address pc() const { return *pc_address_; }
@@ -271,18 +269,16 @@
 
 class LoadIC : public IC {
  public:
-  TypeofMode typeof_mode() const {
-    return LoadICState::GetTypeofMode(extra_ic_state());
-  }
-
   LoadIC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus = NULL)
       : IC(depth, isolate, nexus) {
     DCHECK(nexus != NULL);
     DCHECK(IsLoadStub());
   }
 
-  bool ShouldThrowReferenceError(Handle<Object> receiver) {
-    return receiver->IsJSGlobalObject() && typeof_mode() == NOT_INSIDE_TYPEOF;
+  bool ShouldThrowReferenceError() const {
+    return kind() == Code::LOAD_GLOBAL_IC &&
+           LoadGlobalICState::GetTypeofMode(extra_ic_state()) ==
+               NOT_INSIDE_TYPEOF;
   }
 
   // Code generator routines.
@@ -291,8 +287,7 @@
   static void GenerateRuntimeGetProperty(MacroAssembler* masm);
   static void GenerateNormal(MacroAssembler* masm);
 
-  static Handle<Code> initialize_stub_in_optimized_code(
-      Isolate* isolate, ExtraICState extra_state, State initialization_state);
+  static Handle<Code> initialize_stub_in_optimized_code(Isolate* isolate);
 
   MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Object> object,
                                            Handle<Name> name);
@@ -300,7 +295,7 @@
   static void Clear(Isolate* isolate, Code* host, LoadICNexus* nexus);
 
  protected:
-  Handle<Code> slow_stub() const {
+  virtual Handle<Code> slow_stub() const {
     return isolate()->builtins()->LoadIC_Slow();
   }
 
@@ -319,6 +314,23 @@
   friend class IC;
 };
 
+class LoadGlobalIC : public LoadIC {
+ public:
+  LoadGlobalIC(FrameDepth depth, Isolate* isolate, FeedbackNexus* nexus = NULL)
+      : LoadIC(depth, isolate, nexus) {}
+
+  static Handle<Code> initialize_stub_in_optimized_code(
+      Isolate* isolate, ExtraICState extra_state);
+
+  MUST_USE_RESULT MaybeHandle<Object> Load(Handle<Name> name);
+
+  static void Clear(Isolate* isolate, Code* host, LoadGlobalICNexus* nexus);
+
+ protected:
+  Handle<Code> slow_stub() const override {
+    return isolate()->builtins()->LoadGlobalIC_Slow();
+  }
+};
 
 class KeyedLoadIC : public LoadIC {
  public:
@@ -337,7 +349,7 @@
   static void GenerateMegamorphic(MacroAssembler* masm);
 
   static Handle<Code> initialize_stub_in_optimized_code(
-      Isolate* isolate, State initialization_state, ExtraICState extra_state);
+      Isolate* isolate, ExtraICState extra_state);
   static Handle<Code> ChooseMegamorphicStub(Isolate* isolate,
                                             ExtraICState extra_state);
 
@@ -366,13 +378,10 @@
   // Code generators for stub routines. Only called once at startup.
   static void GenerateSlow(MacroAssembler* 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_in_optimized_code(
-      Isolate* isolate, LanguageMode language_mode, State initialization_state);
+      Isolate* isolate, LanguageMode language_mode);
 
   MUST_USE_RESULT MaybeHandle<Object> Store(
       Handle<Object> object, Handle<Name> name, Handle<Object> value,
@@ -386,7 +395,9 @@
 
  protected:
   // Stub accessors.
-  Handle<Code> slow_stub() const;
+  Handle<Code> slow_stub() const {
+    return isolate()->builtins()->StoreIC_Slow();
+  }
 
   // Update the inline cache and the global stub cache based on the
   // lookup result.
@@ -428,7 +439,7 @@
                                   LanguageMode language_mode);
 
   static Handle<Code> initialize_stub_in_optimized_code(
-      Isolate* isolate, LanguageMode language_mode, State initialization_state);
+      Isolate* isolate, LanguageMode language_mode);
   static Handle<Code> ChooseMegamorphicStub(Isolate* isolate,
                                             ExtraICState extra_state);
 
diff --git a/src/ic/mips/access-compiler-mips.cc b/src/ic/mips/access-compiler-mips.cc
index b122946..2aa0283 100644
--- a/src/ic/mips/access-compiler-mips.cc
+++ b/src/ic/mips/access-compiler-mips.cc
@@ -19,19 +19,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, a3, a0, t0, t1};
+  static Register registers[] = {receiver, name, a3, a0, t0};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, a3, t0, t1};
+  static Register registers[] = {receiver, name, a3, t0};
   return registers;
 }
 
diff --git a/src/ic/mips/handler-compiler-mips.cc b/src/ic/mips/handler-compiler-mips.cc
index 847782e..66789e4 100644
--- a/src/ic/mips/handler-compiler-mips.cc
+++ b/src/ic/mips/handler-compiler-mips.cc
@@ -196,8 +196,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ lw(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
@@ -279,7 +280,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -423,28 +424,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ li(scratch1, Operand(validity_cell));
-      __ lw(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ Branch(miss, ne, scratch1,
-                Operand(Smi::FromInt(Map::kPrototypeChainValid)));
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ li(scratch1, Operand(validity_cell));
+    __ lw(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ Branch(miss, ne, scratch1,
+              Operand(Smi::FromInt(Map::kPrototypeChainValid)));
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ lw(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ GetWeakValue(scratch2, cell);
-      __ Branch(miss, ne, scratch1, Operand(scratch2));
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ lw(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ GetWeakValue(scratch2, cell);
+    __ Branch(miss, ne, scratch1, Operand(scratch2));
   }
 
   // Keep track of the current object in register reg.
@@ -480,8 +478,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -491,33 +491,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ lw(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ lw(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ lw(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ GetWeakValue(scratch2, cell);
-        __ Branch(miss, ne, scratch2, Operand(map_reg));
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ lw(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -531,17 +510,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ lw(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ GetWeakValue(scratch2, cell);
-    __ Branch(miss, ne, scratch2, Operand(scratch1));
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -587,7 +557,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -646,7 +616,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -662,7 +632,7 @@
   __ Push(receiver(), holder_reg);  // Receiver.
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ li(at, Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/mips/ic-mips.cc b/src/ic/mips/ic-mips.cc
index 6c44918..f20262b 100644
--- a/src/ic/mips/ic-mips.cc
+++ b/src/ic/mips/ic-mips.cc
@@ -727,25 +727,6 @@
   __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(receiver.is(a1));
-  DCHECK(name.is(a2));
-  DCHECK(StoreDescriptor::ValueRegister().is(a0));
-
-  // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags =
-      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, t1, t2, t3, t4);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -839,8 +820,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, andi=%p, delta=%d\n", address,
-           andi_instruction_address, delta);
+    PrintF("[  patching ic at %p, andi=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(andi_instruction_address), delta);
   }
 
   Address patch_address =
diff --git a/src/ic/mips64/access-compiler-mips64.cc b/src/ic/mips64/access-compiler-mips64.cc
index 96e921c..bf6c73e 100644
--- a/src/ic/mips64/access-compiler-mips64.cc
+++ b/src/ic/mips64/access-compiler-mips64.cc
@@ -19,19 +19,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, a3, a0, a4, a5};
+  static Register registers[] = {receiver, name, a3, a0, a4};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, a3, a4, a5};
+  static Register registers[] = {receiver, name, a3, a4};
   return registers;
 }
 
diff --git a/src/ic/mips64/handler-compiler-mips64.cc b/src/ic/mips64/handler-compiler-mips64.cc
index 81a9b3f..99ecbe2 100644
--- a/src/ic/mips64/handler-compiler-mips64.cc
+++ b/src/ic/mips64/handler-compiler-mips64.cc
@@ -196,8 +196,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ ld(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
@@ -279,7 +280,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -423,28 +424,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ li(scratch1, Operand(validity_cell));
-      __ ld(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ Branch(miss, ne, scratch1,
-                Operand(Smi::FromInt(Map::kPrototypeChainValid)));
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ li(scratch1, Operand(validity_cell));
+    __ ld(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ Branch(miss, ne, scratch1,
+              Operand(Smi::FromInt(Map::kPrototypeChainValid)));
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ ld(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ GetWeakValue(scratch2, cell);
-      __ Branch(miss, ne, scratch1, Operand(scratch2));
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ ld(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ GetWeakValue(scratch2, cell);
+    __ Branch(miss, ne, scratch1, Operand(scratch2));
   }
 
   // Keep track of the current object in register reg.
@@ -480,8 +478,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -491,33 +491,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ld(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ ld(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ld(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ GetWeakValue(scratch2, cell);
-        __ Branch(miss, ne, scratch2, Operand(map_reg));
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ ld(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -531,17 +510,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ ld(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ GetWeakValue(scratch2, cell);
-    __ Branch(miss, ne, scratch2, Operand(scratch1));
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -587,7 +557,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -646,7 +616,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -662,7 +632,7 @@
   __ Push(receiver(), holder_reg);  // Receiver.
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ li(at, Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/mips64/ic-mips64.cc b/src/ic/mips64/ic-mips64.cc
index 5193c85..81f1f92 100644
--- a/src/ic/mips64/ic-mips64.cc
+++ b/src/ic/mips64/ic-mips64.cc
@@ -731,25 +731,6 @@
   __ TailCallRuntime(Runtime::kKeyedStoreIC_Miss);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(receiver.is(a1));
-  DCHECK(name.is(a2));
-  DCHECK(StoreDescriptor::ValueRegister().is(a0));
-
-  // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags =
-      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, a5, a6, a7, t0);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -841,8 +822,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, andi=%p, delta=%d\n", address,
-           andi_instruction_address, delta);
+    PrintF("[  patching ic at %p, andi=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(andi_instruction_address), delta);
   }
 
   Address patch_address =
diff --git a/src/ic/ppc/OWNERS b/src/ic/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/ic/ppc/OWNERS
+++ b/src/ic/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/ic/ppc/access-compiler-ppc.cc b/src/ic/ppc/access-compiler-ppc.cc
index b1e06e1..6143b4c 100644
--- a/src/ic/ppc/access-compiler-ppc.cc
+++ b/src/ic/ppc/access-compiler-ppc.cc
@@ -19,19 +19,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r6, r3, r7, r8};
+  static Register registers[] = {receiver, name, r6, r3, r7};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r6, r7, r8};
+  static Register registers[] = {receiver, name, r6, r7};
   return registers;
 }
 
diff --git a/src/ic/ppc/handler-compiler-ppc.cc b/src/ic/ppc/handler-compiler-ppc.cc
index 49af112..3293d82 100644
--- a/src/ic/ppc/handler-compiler-ppc.cc
+++ b/src/ic/ppc/handler-compiler-ppc.cc
@@ -199,8 +199,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ LoadP(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ LoadRoot(ip, Heap::kTheHoleValueRootIndex);
@@ -285,7 +286,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -432,28 +433,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ mov(scratch1, Operand(validity_cell));
-      __ LoadP(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ CmpSmiLiteral(scratch1, Smi::FromInt(Map::kPrototypeChainValid), r0);
-      __ bne(miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ mov(scratch1, Operand(validity_cell));
+    __ LoadP(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ CmpSmiLiteral(scratch1, Smi::FromInt(Map::kPrototypeChainValid), r0);
+    __ bne(miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ LoadP(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ b(ne, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ LoadP(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ b(ne, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -488,8 +486,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -499,33 +499,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ LoadP(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ bne(miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -539,17 +518,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ LoadP(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ bne(miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -595,7 +565,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -655,7 +625,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -672,7 +642,7 @@
 
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ mov(ip, Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/ppc/ic-ppc.cc b/src/ic/ppc/ic-ppc.cc
index 3c86786..1f0236d 100644
--- a/src/ic/ppc/ic-ppc.cc
+++ b/src/ic/ppc/ic-ppc.cc
@@ -737,26 +737,6 @@
   GenerateMiss(masm);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(receiver.is(r4));
-  DCHECK(name.is(r5));
-  DCHECK(StoreDescriptor::ValueRegister().is(r3));
-
-  // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags =
-      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
-
-  masm->isolate()->stub_cache()->GenerateProbe(
-      masm, Code::STORE_IC, flags, receiver, name, r8, r9, r10, r11);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -851,8 +831,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n", address,
-           cmp_instruction_address, delta);
+    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(cmp_instruction_address), delta);
   }
 
   Address patch_address =
diff --git a/src/ic/s390/OWNERS b/src/ic/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/ic/s390/OWNERS
+++ b/src/ic/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/ic/s390/access-compiler-s390.cc b/src/ic/s390/access-compiler-s390.cc
index 316be71..0a3285d 100644
--- a/src/ic/s390/access-compiler-s390.cc
+++ b/src/ic/s390/access-compiler-s390.cc
@@ -19,18 +19,18 @@
 }
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r5, r2, r6, r7};
+  static Register registers[] = {receiver, name, r5, r2, r6};
   return registers;
 }
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, r5, r6, r7};
+  static Register registers[] = {receiver, name, r5, r6};
   return registers;
 }
 
diff --git a/src/ic/s390/handler-compiler-s390.cc b/src/ic/s390/handler-compiler-s390.cc
index f15a04d..b643a84 100644
--- a/src/ic/s390/handler-compiler-s390.cc
+++ b/src/ic/s390/handler-compiler-s390.cc
@@ -188,8 +188,9 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Handle<WeakCell> weak_cell = masm->isolate()->factory()->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ LoadP(scratch, FieldMemOperand(scratch, PropertyCell::kValueOffset));
   __ CompareRoot(scratch, Heap::kTheHoleValueRootIndex);
@@ -270,7 +271,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -406,28 +407,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ mov(scratch1, Operand(validity_cell));
-      __ LoadP(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
-      __ CmpSmiLiteral(scratch1, Smi::FromInt(Map::kPrototypeChainValid), r0);
-      __ bne(miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ mov(scratch1, Operand(validity_cell));
+    __ LoadP(scratch1, FieldMemOperand(scratch1, Cell::kValueOffset));
+    __ CmpSmiLiteral(scratch1, Smi::FromInt(Map::kPrototypeChainValid), r0);
+    __ bne(miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ LoadP(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ b(ne, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ LoadP(scratch1, FieldMemOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ b(ne, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -462,8 +460,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -473,33 +473,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-        __ LoadP(holder_reg, FieldMemOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(map_reg, FieldMemOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ bne(miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ LoadP(holder_reg, FieldMemOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -513,17 +492,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ LoadP(scratch1, FieldMemOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ bne(miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -565,7 +535,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -623,7 +593,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
 
@@ -639,7 +609,7 @@
 
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ mov(ip, Operand(callback));
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/s390/ic-s390.cc b/src/ic/s390/ic-s390.cc
index bf9f8a1..64adc9f 100644
--- a/src/ic/s390/ic-s390.cc
+++ b/src/ic/s390/ic-s390.cc
@@ -719,24 +719,6 @@
   GenerateMiss(masm);
 }
 
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  Register receiver = StoreDescriptor::ReceiverRegister();
-  Register name = StoreDescriptor::NameRegister();
-  DCHECK(receiver.is(r3));
-  DCHECK(name.is(r4));
-  DCHECK(StoreDescriptor::ValueRegister().is(r2));
-
-  // Get the receiver from the stack and probe the stub cache.
-  Code::Flags flags =
-      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::STORE_IC));
-
-  masm->isolate()->stub_cache()->GenerateProbe(masm, Code::STORE_IC, flags,
-                                               receiver, name, r7, r8, r9, ip);
-
-  // Cache miss: Jump to runtime.
-  GenerateMiss(masm);
-}
-
 void StoreIC::GenerateMiss(MacroAssembler* masm) {
   StoreIC_PushArgs(masm);
 
@@ -828,8 +810,9 @@
   }
 
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n", address,
-           cmp_instruction_address, delta);
+    PrintF("[  patching ic at %p, cmp=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(cmp_instruction_address), delta);
   }
 
   // Expected sequence to enable by changing the following
diff --git a/src/ic/stub-cache.cc b/src/ic/stub-cache.cc
index 5d71c1f..f51366f 100644
--- a/src/ic/stub-cache.cc
+++ b/src/ic/stub-cache.cc
@@ -34,7 +34,6 @@
   // cache only contains handlers. Make sure that the bits are the least
   // significant so they will be the ones masked out.
   DCHECK_EQ(Code::HANDLER, Code::ExtractKindFromFlags(flags));
-  STATIC_ASSERT((Code::ICStateField::kMask & 1) == 1);
 
   // Make sure that the cache holder are not included in the hash.
   DCHECK(Code::ExtractCacheHolderFromFlags(flags) == 0);
@@ -75,12 +74,14 @@
   flags = CommonStubCacheChecks(name, map, flags);
   int primary_offset = PrimaryOffset(name, flags, map);
   Entry* primary = entry(primary_, primary_offset);
-  if (primary->key == name && primary->map == map) {
+  if (primary->key == name && primary->map == map &&
+      flags == Code::RemoveHolderFromFlags(primary->value->flags())) {
     return primary->value;
   }
   int secondary_offset = SecondaryOffset(name, flags, primary_offset);
   Entry* secondary = entry(secondary_, secondary_offset);
-  if (secondary->key == name && secondary->map == map) {
+  if (secondary->key == name && secondary->map == map &&
+      flags == Code::RemoveHolderFromFlags(secondary->value->flags())) {
     return secondary->value;
   }
   return NULL;
diff --git a/src/ic/stub-cache.h b/src/ic/stub-cache.h
index 4b27e6e..03afcdc 100644
--- a/src/ic/stub-cache.h
+++ b/src/ic/stub-cache.h
@@ -92,9 +92,24 @@
   // automatically discards the hash bit field.
   static const int kCacheIndexShift = Name::kHashShift;
 
- private:
+  static const int kPrimaryTableBits = 11;
+  static const int kPrimaryTableSize = (1 << kPrimaryTableBits);
+  static const int kSecondaryTableBits = 9;
+  static const int kSecondaryTableSize = (1 << kSecondaryTableBits);
+
+  static int PrimaryOffsetForTesting(Name* name, Code::Flags flags, Map* map) {
+    return PrimaryOffset(name, flags, map);
+  }
+
+  static int SecondaryOffsetForTesting(Name* name, Code::Flags flags,
+                                       int seed) {
+    return SecondaryOffset(name, flags, seed);
+  }
+
+  // The constructor is made public only for the purposes of testing.
   explicit StubCache(Isolate* isolate);
 
+ private:
   // The stub cache has a primary and secondary level.  The two levels have
   // different hashing algorithms in order to avoid simultaneous collisions
   // in both caches.  Unlike a probing strategy (quadratic or otherwise) the
@@ -150,11 +165,6 @@
                                     offset * multiplier);
   }
 
-  static const int kPrimaryTableBits = 11;
-  static const int kPrimaryTableSize = (1 << kPrimaryTableBits);
-  static const int kSecondaryTableBits = 9;
-  static const int kSecondaryTableSize = (1 << kSecondaryTableBits);
-
  private:
   Entry primary_[kPrimaryTableSize];
   Entry secondary_[kSecondaryTableSize];
diff --git a/src/ic/x64/access-compiler-x64.cc b/src/ic/x64/access-compiler-x64.cc
index b8d50b3..2b29252 100644
--- a/src/ic/x64/access-compiler-x64.cc
+++ b/src/ic/x64/access-compiler-x64.cc
@@ -19,19 +19,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, rax, rbx, rdi, r8};
+  static Register registers[] = {receiver, name, rax, rbx, rdi};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, rbx, rdi, r8};
+  static Register registers[] = {receiver, name, rbx, rdi};
   return registers;
 }
 
diff --git a/src/ic/x64/handler-compiler-x64.cc b/src/ic/x64/handler-compiler-x64.cc
index 21d96ea..5c64288 100644
--- a/src/ic/x64/handler-compiler-x64.cc
+++ b/src/ic/x64/handler-compiler-x64.cc
@@ -180,7 +180,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ LoadRoot(data, Heap::kUndefinedValueRootIndex);
   } else {
@@ -220,12 +220,12 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Factory* factory = masm->isolate()->factory();
-  Handle<WeakCell> weak_cell = factory->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ Cmp(FieldOperand(scratch, PropertyCell::kValueOffset),
-         factory->the_hole_value());
+         isolate->factory()->the_hole_value());
   __ j(not_equal, miss);
 }
 
@@ -440,29 +440,26 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      __ Move(scratch1, validity_cell, RelocInfo::CELL);
-      // Move(..., CELL) loads the payload's address!
-      __ SmiCompare(Operand(scratch1, 0),
-                    Smi::FromInt(Map::kPrototypeChainValid));
-      __ j(not_equal, miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    __ Move(scratch1, validity_cell, RelocInfo::CELL);
+    // Move(..., CELL) loads the payload's address!
+    __ SmiCompare(Operand(scratch1, 0),
+                  Smi::FromInt(Map::kPrototypeChainValid));
+    __ j(not_equal, miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ movp(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ j(not_equal, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ movp(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ j(not_equal, miss);
   }
 
   // Keep track of the current object in register reg.  On the first
@@ -500,8 +497,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -511,34 +510,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ movp(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-        __ movp(holder_reg, FieldOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ movp(map_reg, FieldOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ j(not_equal, miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ movp(holder_reg, FieldOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -552,17 +529,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ movp(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ j(not_equal, miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -607,7 +575,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -669,7 +637,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   // Call the runtime system to load the interceptor.
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   __ PopReturnAddressTo(scratch2());
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
                            holder());
@@ -689,7 +657,7 @@
   __ Push(holder_reg);
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ Push(callback);
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/x64/ic-x64.cc b/src/ic/x64/ic-x64.cc
index 4e9927d..da74582 100644
--- a/src/ic/x64/ic-x64.cc
+++ b/src/ic/x64/ic-x64.cc
@@ -451,7 +451,7 @@
   __ JumpIfDictionaryInPrototypeChain(receiver, rdi, kScratchRegister, slow);
 
   __ bind(&fast_double_without_map_check);
-  __ StoreNumberToDoubleElements(value, rbx, key, xmm0,
+  __ StoreNumberToDoubleElements(value, rbx, key, kScratchDoubleReg,
                                  &transition_double_elements);
   if (increment_length == kIncrementLength) {
     // Add 1 to receiver->length.
@@ -710,13 +710,6 @@
   __ TailCallRuntime(Runtime::kKeyedGetProperty);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  // This shouldn't be called.
-  __ int3();
-}
-
-
 static void StoreIC_PushArgs(MacroAssembler* masm) {
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
@@ -829,8 +822,9 @@
   // condition code uses at the patched jump.
   uint8_t delta = *reinterpret_cast<uint8_t*>(delta_address);
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, test=%p, delta=%d\n", address,
-           test_instruction_address, delta);
+    PrintF("[  patching ic at %p, test=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(test_instruction_address), delta);
   }
 
   // Patch with a short conditional jump. Enabling means switching from a short
diff --git a/src/ic/x64/stub-cache-x64.cc b/src/ic/x64/stub-cache-x64.cc
index a65165b..fa0a0b3 100644
--- a/src/ic/x64/stub-cache-x64.cc
+++ b/src/ic/x64/stub-cache-x64.cc
@@ -106,7 +106,8 @@
   // the vector and slot registers, which need to be preserved for a handler
   // call or miss.
   if (IC::ICUseVector(ic_kind)) {
-    if (ic_kind == Code::LOAD_IC || ic_kind == Code::KEYED_LOAD_IC) {
+    if (ic_kind == Code::LOAD_IC || ic_kind == Code::LOAD_GLOBAL_IC ||
+        ic_kind == Code::KEYED_LOAD_IC) {
       Register vector = LoadWithVectorDescriptor::VectorRegister();
       Register slot = LoadDescriptor::SlotRegister();
       DCHECK(!AreAliased(vector, slot, scratch));
diff --git a/src/ic/x87/access-compiler-x87.cc b/src/ic/x87/access-compiler-x87.cc
index 2c1b942..e528de6 100644
--- a/src/ic/x87/access-compiler-x87.cc
+++ b/src/ic/x87/access-compiler-x87.cc
@@ -18,19 +18,19 @@
 
 
 Register* PropertyAccessCompiler::load_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3, scratch4.
+  // receiver, name, scratch1, scratch2, scratch3.
   Register receiver = LoadDescriptor::ReceiverRegister();
   Register name = LoadDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, ebx, eax, edi, no_reg};
+  static Register registers[] = {receiver, name, ebx, eax, edi};
   return registers;
 }
 
 
 Register* PropertyAccessCompiler::store_calling_convention() {
-  // receiver, name, scratch1, scratch2, scratch3.
+  // receiver, name, scratch1, scratch2.
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
-  static Register registers[] = {receiver, name, ebx, edi, no_reg};
+  static Register registers[] = {receiver, name, ebx, edi};
   return registers;
 }
 
diff --git a/src/ic/x87/handler-compiler-x87.cc b/src/ic/x87/handler-compiler-x87.cc
index 7983273..c5f2d9f 100644
--- a/src/ic/x87/handler-compiler-x87.cc
+++ b/src/ic/x87/handler-compiler-x87.cc
@@ -199,7 +199,7 @@
   Handle<CallHandlerInfo> api_call_info = optimization.api_call_info();
   bool call_data_undefined = false;
   // Put call data in place.
-  if (api_call_info->data()->IsUndefined()) {
+  if (api_call_info->data()->IsUndefined(isolate)) {
     call_data_undefined = true;
     __ mov(data, Immediate(isolate->factory()->undefined_value()));
   } else {
@@ -237,12 +237,12 @@
     MacroAssembler* masm, Handle<JSGlobalObject> global, Handle<Name> name,
     Register scratch, Label* miss) {
   Handle<PropertyCell> cell = JSGlobalObject::EnsurePropertyCell(global, name);
-  DCHECK(cell->value()->IsTheHole());
-  Factory* factory = masm->isolate()->factory();
-  Handle<WeakCell> weak_cell = factory->NewWeakCell(cell);
+  Isolate* isolate = masm->isolate();
+  DCHECK(cell->value()->IsTheHole(isolate));
+  Handle<WeakCell> weak_cell = isolate->factory()->NewWeakCell(cell);
   __ LoadWeakValue(scratch, weak_cell, miss);
   __ cmp(FieldOperand(scratch, PropertyCell::kValueOffset),
-         Immediate(factory->the_hole_value()));
+         Immediate(isolate->factory()->the_hole_value()));
   __ j(not_equal, miss);
 }
 
@@ -439,28 +439,25 @@
   DCHECK(!scratch2.is(object_reg) && !scratch2.is(holder_reg) &&
          !scratch2.is(scratch1));
 
-  if (FLAG_eliminate_prototype_chain_checks) {
-    Handle<Cell> validity_cell =
-        Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
-    if (!validity_cell.is_null()) {
-      DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid),
-                validity_cell->value());
-      // Operand::ForCell(...) points to the cell's payload!
-      __ cmp(Operand::ForCell(validity_cell),
-             Immediate(Smi::FromInt(Map::kPrototypeChainValid)));
-      __ j(not_equal, miss);
-    }
+  Handle<Cell> validity_cell =
+      Map::GetOrCreatePrototypeChainValidityCell(receiver_map, isolate());
+  if (!validity_cell.is_null()) {
+    DCHECK_EQ(Smi::FromInt(Map::kPrototypeChainValid), validity_cell->value());
+    // Operand::ForCell(...) points to the cell's payload!
+    __ cmp(Operand::ForCell(validity_cell),
+           Immediate(Smi::FromInt(Map::kPrototypeChainValid)));
+    __ j(not_equal, miss);
+  }
 
-    // The prototype chain of primitives (and their JSValue wrappers) depends
-    // on the native context, which can't be guarded by validity cells.
-    // |object_reg| holds the native context specific prototype in this case;
-    // we need to check its map.
-    if (check == CHECK_ALL_MAPS) {
-      __ mov(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
-      Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
-      __ CmpWeakValue(scratch1, cell, scratch2);
-      __ j(not_equal, miss);
-    }
+  // The prototype chain of primitives (and their JSValue wrappers) depends
+  // on the native context, which can't be guarded by validity cells.
+  // |object_reg| holds the native context specific prototype in this case;
+  // we need to check its map.
+  if (check == CHECK_ALL_MAPS) {
+    __ mov(scratch1, FieldOperand(object_reg, HeapObject::kMapOffset));
+    Handle<WeakCell> cell = Map::WeakCellForMap(receiver_map);
+    __ CmpWeakValue(scratch1, cell, scratch2);
+    __ j(not_equal, miss);
   }
 
   // Keep track of the current object in register reg.
@@ -496,8 +493,10 @@
            !current_map->is_access_check_needed());
 
     prototype = handle(JSObject::cast(current_map->prototype()));
-    if (current_map->is_dictionary_map() &&
-        !current_map->IsJSGlobalObjectMap()) {
+    if (current_map->IsJSGlobalObjectMap()) {
+      GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
+                                name, scratch2, miss);
+    } else if (current_map->is_dictionary_map()) {
       DCHECK(!current_map->IsJSGlobalProxyMap());  // Proxy maps are fast.
       if (!name->IsUniqueName()) {
         DCHECK(name->IsString());
@@ -507,34 +506,12 @@
              current->property_dictionary()->FindEntry(name) ==
                  NameDictionary::kNotFound);
 
-      if (FLAG_eliminate_prototype_chain_checks && depth > 1) {
+      if (depth > 1) {
         // TODO(jkummerow): Cache and re-use weak cell.
         __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
       }
       GenerateDictionaryNegativeLookup(masm(), miss, reg, name, scratch1,
                                        scratch2);
-
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-        __ mov(holder_reg, FieldOperand(scratch1, Map::kPrototypeOffset));
-      }
-    } else {
-      Register map_reg = scratch1;
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(map_reg, FieldOperand(reg, HeapObject::kMapOffset));
-      }
-      if (current_map->IsJSGlobalObjectMap()) {
-        GenerateCheckPropertyCell(masm(), Handle<JSGlobalObject>::cast(current),
-                                  name, scratch2, miss);
-      } else if (!FLAG_eliminate_prototype_chain_checks &&
-                 (depth != 1 || check == CHECK_ALL_MAPS)) {
-        Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-        __ CmpWeakValue(map_reg, cell, scratch2);
-        __ j(not_equal, miss);
-      }
-      if (!FLAG_eliminate_prototype_chain_checks) {
-        __ mov(holder_reg, FieldOperand(map_reg, Map::kPrototypeOffset));
-      }
     }
 
     reg = holder_reg;  // From now on the object will be in holder_reg.
@@ -548,17 +525,8 @@
   // Log the check depth.
   LOG(isolate(), IntEvent("check-maps-depth", depth + 1));
 
-  if (!FLAG_eliminate_prototype_chain_checks &&
-      (depth != 0 || check == CHECK_ALL_MAPS)) {
-    // Check the holder map.
-    __ mov(scratch1, FieldOperand(reg, HeapObject::kMapOffset));
-    Handle<WeakCell> cell = Map::WeakCellForMap(current_map);
-    __ CmpWeakValue(scratch1, cell, scratch2);
-    __ j(not_equal, miss);
-  }
-
   bool return_holder = return_what == RETURN_HOLDER;
-  if (FLAG_eliminate_prototype_chain_checks && return_holder && depth != 0) {
+  if (return_holder && depth != 0) {
     __ LoadWeakValue(reg, isolate()->factory()->NewWeakCell(current), miss);
   }
 
@@ -604,7 +572,7 @@
 void NamedLoadHandlerCompiler::GenerateLoadInterceptorWithFollowup(
     LookupIterator* it, Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
 
   // Compile the interceptor call, followed by inline code to load the
   // property from further up the prototype chain if the call fails.
@@ -671,7 +639,7 @@
 
 void NamedLoadHandlerCompiler::GenerateLoadInterceptor(Register holder_reg) {
   DCHECK(holder()->HasNamedInterceptor());
-  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined());
+  DCHECK(!holder()->GetNamedInterceptor()->getter()->IsUndefined(isolate()));
   // Call the runtime system to load the interceptor.
   __ pop(scratch2());  // save old return address
   PushInterceptorArguments(masm(), receiver(), holder_reg, this->name(),
@@ -692,7 +660,7 @@
   __ push(holder_reg);
   // If the callback cannot leak, then push the callback directly,
   // otherwise wrap it in a weak cell.
-  if (callback->data()->IsUndefined() || callback->data()->IsSmi()) {
+  if (callback->data()->IsUndefined(isolate()) || callback->data()->IsSmi()) {
     __ Push(callback);
   } else {
     Handle<WeakCell> cell = isolate()->factory()->NewWeakCell(callback);
diff --git a/src/ic/x87/ic-x87.cc b/src/ic/x87/ic-x87.cc
index 9491954..9db5591 100644
--- a/src/ic/x87/ic-x87.cc
+++ b/src/ic/x87/ic-x87.cc
@@ -708,15 +708,6 @@
   __ TailCallRuntime(Runtime::kKeyedGetProperty);
 }
 
-
-void StoreIC::GenerateMegamorphic(MacroAssembler* masm) {
-  // This shouldn't be called.
-  // TODO(mvstanton): remove this method.
-  __ int3();
-  return;
-}
-
-
 static void StoreIC_PushArgs(MacroAssembler* masm) {
   Register receiver = StoreDescriptor::ReceiverRegister();
   Register name = StoreDescriptor::NameRegister();
@@ -836,8 +827,9 @@
   // condition code uses at the patched jump.
   uint8_t delta = *reinterpret_cast<uint8_t*>(delta_address);
   if (FLAG_trace_ic) {
-    PrintF("[  patching ic at %p, test=%p, delta=%d\n", address,
-           test_instruction_address, delta);
+    PrintF("[  patching ic at %p, test=%p, delta=%d\n",
+           static_cast<void*>(address),
+           static_cast<void*>(test_instruction_address), delta);
   }
 
   // Patch with a short conditional jump. Enabling means switching from a short
diff --git a/src/icu_util.cc b/src/icu_util.cc
index 0225130..a6f0453 100644
--- a/src/icu_util.cc
+++ b/src/icu_util.cc
@@ -15,6 +15,8 @@
 #include "unicode/putil.h"
 #include "unicode/udata.h"
 
+#include "src/base/file-utils.h"
+
 #define ICU_UTIL_DATA_FILE   0
 #define ICU_UTIL_DATA_SHARED 1
 #define ICU_UTIL_DATA_STATIC 2
@@ -38,6 +40,26 @@
 }  // namespace
 #endif
 
+bool InitializeICUDefaultLocation(const char* exec_path,
+                                  const char* icu_data_file) {
+#if !defined(V8_I18N_SUPPORT)
+  return true;
+#else
+#if ICU_UTIL_DATA_IMPL == ICU_UTIL_DATA_FILE
+  if (icu_data_file) {
+    return InitializeICU(icu_data_file);
+  }
+  char* icu_data_file_default;
+  RelativePath(&icu_data_file_default, exec_path, "icudtl.dat");
+  bool result = InitializeICU(icu_data_file_default);
+  free(icu_data_file_default);
+  return result;
+#else
+  return InitializeICU(NULL);
+#endif
+#endif
+}
+
 bool InitializeICU(const char* icu_data_file) {
 #if !defined(V8_I18N_SUPPORT)
   return true;
diff --git a/src/icu_util.h b/src/icu_util.h
index c308dec..c5ef862 100644
--- a/src/icu_util.h
+++ b/src/icu_util.h
@@ -14,6 +14,11 @@
 // function should be called before ICU is used.
 bool InitializeICU(const char* icu_data_file);
 
+// Like above, but using the default icudtl.dat location if icu_data_file is
+// not specified.
+bool InitializeICUDefaultLocation(const char* exec_path,
+                                  const char* icu_data_file);
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/interface-descriptors.cc b/src/interface-descriptors.cc
index 860ad2a..50638f9 100644
--- a/src/interface-descriptors.cc
+++ b/src/interface-descriptors.cc
@@ -43,9 +43,8 @@
   return function;
 }
 
-
 void CallInterfaceDescriptorData::InitializePlatformSpecific(
-    int register_parameter_count, Register* registers,
+    int register_parameter_count, const Register* registers,
     PlatformInterfaceDescriptor* platform_descriptor) {
   platform_specific_descriptor_ = platform_descriptor;
   register_param_count_ = register_parameter_count;
@@ -98,6 +97,38 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
+FunctionType* LoadGlobalDescriptor::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, SmiType(zone));
+  return function;
+}
+
+void LoadGlobalDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {LoadWithVectorDescriptor::SlotRegister()};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
+
+FunctionType*
+LoadGlobalWithVectorDescriptor::BuildCallInterfaceDescriptorFunctionType(
+    Isolate* isolate, int paramater_count) {
+  Zone* zone = isolate->interface_descriptor_zone();
+  FunctionType* function =
+      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction();
+  function->InitParameter(0, SmiType(zone));
+  function->InitParameter(1, AnyTagged(zone));
+  return function;
+}
+
+void LoadGlobalWithVectorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  Register registers[] = {LoadWithVectorDescriptor::SlotRegister(),
+                          LoadWithVectorDescriptor::VectorRegister()};
+  data->InitializePlatformSpecific(arraysize(registers), registers);
+}
 
 void StoreDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -143,23 +174,6 @@
 }
 
 FunctionType*
-LoadGlobalViaContextDescriptor::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, UntaggedIntegral32(zone));
-  return function;
-}
-
-
-void LoadGlobalViaContextDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  Register registers[] = {SlotRegister()};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-FunctionType*
 StoreGlobalViaContextDescriptor::BuildCallInterfaceDescriptorFunctionType(
     Isolate* isolate, int paramater_count) {
   Zone* zone = isolate->interface_descriptor_zone();
@@ -190,19 +204,12 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-void HasPropertyDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  Register registers[] = {KeyRegister(), ObjectRegister()};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
 void MathPowTaggedDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {exponent()};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
 void MathPowIntegerDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   Register registers[] = {exponent()};
@@ -309,6 +316,48 @@
   data->InitializePlatformSpecific(0, nullptr);
 }
 
+CallInterfaceDescriptor OnStackArgsDescriptorBase::ForArgs(
+    Isolate* isolate, int parameter_count) {
+  switch (parameter_count) {
+    case 1:
+      return OnStackWith1ArgsDescriptor(isolate);
+    case 2:
+      return OnStackWith2ArgsDescriptor(isolate);
+    case 3:
+      return OnStackWith3ArgsDescriptor(isolate);
+    case 4:
+      return OnStackWith4ArgsDescriptor(isolate);
+    case 5:
+      return OnStackWith5ArgsDescriptor(isolate);
+    case 6:
+      return OnStackWith6ArgsDescriptor(isolate);
+    case 7:
+      return OnStackWith7ArgsDescriptor(isolate);
+    default:
+      UNREACHABLE();
+      return VoidDescriptor(isolate);
+  }
+}
+
+FunctionType*
+OnStackArgsDescriptorBase::BuildCallInterfaceDescriptorFunctionTypeWithArg(
+    Isolate* isolate, int register_parameter_count, int parameter_count) {
+  DCHECK_EQ(0, register_parameter_count);
+  DCHECK_GT(parameter_count, 0);
+  Zone* zone = isolate->interface_descriptor_zone();
+  FunctionType* function =
+      Type::Function(AnyTagged(zone), AnyTagged(zone), parameter_count, zone)
+          ->AsFunction();
+  for (int i = 0; i < parameter_count; i++) {
+    function->InitParameter(i, AnyTagged(zone));
+  }
+  return function;
+}
+
+void OnStackArgsDescriptorBase::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
+  data->InitializePlatformSpecific(0, nullptr);
+}
 
 void GrowArrayElementsDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
@@ -316,7 +365,8 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-FunctionType* FastArrayPushDescriptor::BuildCallInterfaceDescriptorFunctionType(
+FunctionType*
+VarArgFunctionDescriptor::BuildCallInterfaceDescriptorFunctionType(
     Isolate* isolate, int paramater_count) {
   Zone* zone = isolate->interface_descriptor_zone();
   FunctionType* function =
@@ -444,26 +494,29 @@
   return function;
 }
 
+FunctionType* ArraySingleArgumentConstructorDescriptor::
+    BuildCallInterfaceDescriptorFunctionType(Isolate* isolate,
+                                             int paramater_count) {
+  Zone* zone = isolate->interface_descriptor_zone();
+  FunctionType* function =
+      Type::Function(AnyTagged(zone), Type::Undefined(), 5, zone)->AsFunction();
+  function->InitParameter(0, Type::Receiver());  // JSFunction
+  function->InitParameter(1, AnyTagged(zone));
+  function->InitParameter(2, UntaggedIntegral32(zone));
+  function->InitParameter(3, AnyTagged(zone));
+  function->InitParameter(4, AnyTagged(zone));
+  return function;
+}
+
 FunctionType*
-ArrayConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
+ArrayNArgumentsConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
     Isolate* isolate, int paramater_count) {
   Zone* zone = isolate->interface_descriptor_zone();
   FunctionType* function =
       Type::Function(AnyTagged(zone), Type::Undefined(), 3, zone)->AsFunction();
   function->InitParameter(0, Type::Receiver());  // JSFunction
-  function->InitParameter(1, AnyTagged(zone));
-  function->InitParameter(2, UntaggedIntegral32(zone));
-  return function;
-}
-
-FunctionType*
-InternalArrayConstructorDescriptor::BuildCallInterfaceDescriptorFunctionType(
-    Isolate* isolate, int paramater_count) {
-  Zone* zone = isolate->interface_descriptor_zone();
-  FunctionType* function =
-      Type::Function(AnyTagged(zone), Type::Undefined(), 2, zone)->AsFunction();
-  function->InitParameter(0, Type::Receiver());  // JSFunction
-  function->InitParameter(1, UntaggedIntegral32(zone));
+  function->InitParameter(1, AnyTagged(zone));   // Allocation site or undefined
+  function->InitParameter(2, UntaggedIntegral32(zone));  //  Arg count
   return function;
 }
 
diff --git a/src/interface-descriptors.h b/src/interface-descriptors.h
index 60d8723..18fc9a8 100644
--- a/src/interface-descriptors.h
+++ b/src/interface-descriptors.h
@@ -13,84 +13,90 @@
 
 class PlatformInterfaceDescriptor;
 
-#define INTERFACE_DESCRIPTOR_LIST(V)          \
-  V(Void)                                     \
-  V(Load)                                     \
-  V(Store)                                    \
-  V(StoreTransition)                          \
-  V(VectorStoreTransition)                    \
-  V(VectorStoreICTrampoline)                  \
-  V(VectorStoreIC)                            \
-  V(LoadWithVector)                           \
-  V(FastArrayPush)                            \
-  V(FastNewClosure)                           \
-  V(FastNewContext)                           \
-  V(FastNewObject)                            \
-  V(FastNewRestParameter)                     \
-  V(FastNewSloppyArguments)                   \
-  V(FastNewStrictArguments)                   \
-  V(TypeConversion)                           \
-  V(Typeof)                                   \
-  V(FastCloneRegExp)                          \
-  V(FastCloneShallowArray)                    \
-  V(FastCloneShallowObject)                   \
-  V(CreateAllocationSite)                     \
-  V(CreateWeakCell)                           \
-  V(CallFunction)                             \
-  V(CallFunctionWithFeedback)                 \
-  V(CallFunctionWithFeedbackAndVector)        \
-  V(CallConstruct)                            \
-  V(CallTrampoline)                           \
-  V(ConstructStub)                            \
-  V(ConstructTrampoline)                      \
-  V(RegExpConstructResult)                    \
-  V(TransitionElementsKind)                   \
-  V(AllocateHeapNumber)                       \
-  V(AllocateFloat32x4)                        \
-  V(AllocateInt32x4)                          \
-  V(AllocateUint32x4)                         \
-  V(AllocateBool32x4)                         \
-  V(AllocateInt16x8)                          \
-  V(AllocateUint16x8)                         \
-  V(AllocateBool16x8)                         \
-  V(AllocateInt8x16)                          \
-  V(AllocateUint8x16)                         \
-  V(AllocateBool8x16)                         \
-  V(ArrayNoArgumentConstructor)               \
-  V(ArrayConstructorConstantArgCount)         \
-  V(ArrayConstructor)                         \
-  V(InternalArrayConstructorConstantArgCount) \
-  V(InternalArrayConstructor)                 \
-  V(Compare)                                  \
-  V(BinaryOp)                                 \
-  V(BinaryOpWithAllocationSite)               \
-  V(CountOp)                                  \
-  V(StringAdd)                                \
-  V(StringCompare)                            \
-  V(Keyed)                                    \
-  V(Named)                                    \
-  V(HasProperty)                              \
-  V(CallHandler)                              \
-  V(ArgumentAdaptor)                          \
-  V(ApiCallbackWith0Args)                     \
-  V(ApiCallbackWith1Args)                     \
-  V(ApiCallbackWith2Args)                     \
-  V(ApiCallbackWith3Args)                     \
-  V(ApiCallbackWith4Args)                     \
-  V(ApiCallbackWith5Args)                     \
-  V(ApiCallbackWith6Args)                     \
-  V(ApiCallbackWith7Args)                     \
-  V(ApiGetter)                                \
-  V(LoadGlobalViaContext)                     \
-  V(StoreGlobalViaContext)                    \
-  V(MathPowTagged)                            \
-  V(MathPowInteger)                           \
-  V(ContextOnly)                              \
-  V(GrowArrayElements)                        \
-  V(InterpreterDispatch)                      \
-  V(InterpreterPushArgsAndCall)               \
-  V(InterpreterPushArgsAndConstruct)          \
-  V(InterpreterCEntry)                        \
+#define INTERFACE_DESCRIPTOR_LIST(V)   \
+  V(Void)                              \
+  V(ContextOnly)                       \
+  V(OnStackWith1Args)                  \
+  V(OnStackWith2Args)                  \
+  V(OnStackWith3Args)                  \
+  V(OnStackWith4Args)                  \
+  V(OnStackWith5Args)                  \
+  V(OnStackWith6Args)                  \
+  V(OnStackWith7Args)                  \
+  V(Load)                              \
+  V(LoadGlobal)                        \
+  V(LoadGlobalWithVector)              \
+  V(Store)                             \
+  V(StoreTransition)                   \
+  V(VectorStoreTransition)             \
+  V(VectorStoreICTrampoline)           \
+  V(VectorStoreIC)                     \
+  V(LoadWithVector)                    \
+  V(VarArgFunction)                    \
+  V(FastNewClosure)                    \
+  V(FastNewContext)                    \
+  V(FastNewObject)                     \
+  V(FastNewRestParameter)              \
+  V(FastNewSloppyArguments)            \
+  V(FastNewStrictArguments)            \
+  V(TypeConversion)                    \
+  V(Typeof)                            \
+  V(FastCloneRegExp)                   \
+  V(FastCloneShallowArray)             \
+  V(FastCloneShallowObject)            \
+  V(CreateAllocationSite)              \
+  V(CreateWeakCell)                    \
+  V(CallFunction)                      \
+  V(CallFunctionWithFeedback)          \
+  V(CallFunctionWithFeedbackAndVector) \
+  V(CallConstruct)                     \
+  V(CallTrampoline)                    \
+  V(ConstructStub)                     \
+  V(ConstructTrampoline)               \
+  V(RegExpConstructResult)             \
+  V(TransitionElementsKind)            \
+  V(AllocateHeapNumber)                \
+  V(AllocateFloat32x4)                 \
+  V(AllocateInt32x4)                   \
+  V(AllocateUint32x4)                  \
+  V(AllocateBool32x4)                  \
+  V(AllocateInt16x8)                   \
+  V(AllocateUint16x8)                  \
+  V(AllocateBool16x8)                  \
+  V(AllocateInt8x16)                   \
+  V(AllocateUint8x16)                  \
+  V(AllocateBool8x16)                  \
+  V(ArrayNoArgumentConstructor)        \
+  V(ArraySingleArgumentConstructor)    \
+  V(ArrayNArgumentsConstructor)        \
+  V(Compare)                           \
+  V(BinaryOp)                          \
+  V(BinaryOpWithAllocationSite)        \
+  V(CountOp)                           \
+  V(StringAdd)                         \
+  V(StringCompare)                     \
+  V(Keyed)                             \
+  V(Named)                             \
+  V(HasProperty)                       \
+  V(CallHandler)                       \
+  V(ArgumentAdaptor)                   \
+  V(ApiCallbackWith0Args)              \
+  V(ApiCallbackWith1Args)              \
+  V(ApiCallbackWith2Args)              \
+  V(ApiCallbackWith3Args)              \
+  V(ApiCallbackWith4Args)              \
+  V(ApiCallbackWith5Args)              \
+  V(ApiCallbackWith6Args)              \
+  V(ApiCallbackWith7Args)              \
+  V(ApiGetter)                         \
+  V(StoreGlobalViaContext)             \
+  V(MathPowTagged)                     \
+  V(MathPowInteger)                    \
+  V(GrowArrayElements)                 \
+  V(InterpreterDispatch)               \
+  V(InterpreterPushArgsAndCall)        \
+  V(InterpreterPushArgsAndConstruct)   \
+  V(InterpreterCEntry)                 \
   V(ResumeGenerator)
 
 class CallInterfaceDescriptorData {
@@ -110,7 +116,7 @@
   // and register side by side (eg, RegRep(r1, Representation::Tagged()).
   // The same should go for the CodeStubDescriptor class.
   void InitializePlatformSpecific(
-      int register_parameter_count, Register* registers,
+      int register_parameter_count, const Register* registers,
       PlatformInterfaceDescriptor* platform_descriptor = NULL);
 
   bool IsInitialized() const { return register_param_count_ >= 0; }
@@ -219,6 +225,12 @@
     }
   }
 
+  // Initializes |data| using the platform dependent default set of registers.
+  // It is intended to be used for TurboFan stubs when particular set of
+  // registers does not matter.
+  static void DefaultInitializePlatformSpecific(
+      CallInterfaceDescriptorData* data, int register_parameter_count);
+
  private:
   const CallInterfaceDescriptorData* data_;
 };
@@ -230,6 +242,17 @@
   }                                                        \
   static inline CallDescriptors::Key key();
 
+#define DECLARE_DEFAULT_DESCRIPTOR(name, base, parameter_count)            \
+  DECLARE_DESCRIPTOR_WITH_BASE(name, base)                                 \
+ protected:                                                                \
+  void InitializePlatformSpecific(CallInterfaceDescriptorData* data)       \
+      override {                                                           \
+    DefaultInitializePlatformSpecific(data, parameter_count);              \
+  }                                                                        \
+  name(Isolate* isolate, CallDescriptors::Key key) : base(isolate, key) {} \
+                                                                           \
+ public:
+
 #define DECLARE_DESCRIPTOR(name, base)                                         \
   DECLARE_DESCRIPTOR_WITH_BASE(name, base)                                     \
  protected:                                                                    \
@@ -262,6 +285,77 @@
   DECLARE_DESCRIPTOR(VoidDescriptor, CallInterfaceDescriptor)
 };
 
+class ContextOnlyDescriptor : public CallInterfaceDescriptor {
+ public:
+  DECLARE_DESCRIPTOR(ContextOnlyDescriptor, CallInterfaceDescriptor)
+};
+
+// The OnStackWith*ArgsDescriptors have a lot of boilerplate. The superclass
+// OnStackArgsDescriptorBase is not meant to be instantiated directly and has no
+// public constructors to ensure this is so.contains all the logic, and the
+//
+// Use OnStackArgsDescriptorBase::ForArgs(isolate, parameter_count) to
+// instantiate a descriptor with the number of args.
+class OnStackArgsDescriptorBase : public CallInterfaceDescriptor {
+ public:
+  static CallInterfaceDescriptor ForArgs(Isolate* isolate, int parameter_count);
+
+ protected:
+  OnStackArgsDescriptorBase(Isolate* isolate, CallDescriptors::Key key)
+      : CallInterfaceDescriptor(isolate, key) {}
+  void InitializePlatformSpecific(CallInterfaceDescriptorData* data) override;
+  FunctionType* BuildCallInterfaceDescriptorFunctionTypeWithArg(
+      Isolate* isolate, int register_parameter_count, int parameter_count);
+};
+
+class OnStackWith1ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith1ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     1)
+};
+
+class OnStackWith2ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith2ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     2)
+};
+
+class OnStackWith3ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith3ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     3)
+};
+
+class OnStackWith4ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith4ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     4)
+};
+
+class OnStackWith5ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith5ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     5)
+};
+
+class OnStackWith6ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith6ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     6)
+};
+
+class OnStackWith7ArgsDescriptor : public OnStackArgsDescriptorBase {
+ public:
+  DECLARE_DESCRIPTOR_WITH_BASE_AND_FUNCTION_TYPE_ARG(OnStackWith7ArgsDescriptor,
+                                                     OnStackArgsDescriptorBase,
+                                                     7)
+};
 
 // LoadDescriptor is used by all stubs that implement Load/KeyedLoad ICs.
 class LoadDescriptor : public CallInterfaceDescriptor {
@@ -275,6 +369,17 @@
   static const Register SlotRegister();
 };
 
+class LoadGlobalDescriptor : public CallInterfaceDescriptor {
+ public:
+  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadGlobalDescriptor,
+                                               CallInterfaceDescriptor)
+
+  enum ParameterIndices { kSlotIndex };
+
+  static const Register SlotRegister() {
+    return LoadDescriptor::SlotRegister();
+  }
+};
 
 class StoreDescriptor : public CallInterfaceDescriptor {
  public:
@@ -378,6 +483,17 @@
   static const Register VectorRegister();
 };
 
+class LoadGlobalWithVectorDescriptor : public LoadGlobalDescriptor {
+ public:
+  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadGlobalWithVectorDescriptor,
+                                               LoadGlobalDescriptor)
+
+  enum ParameterIndices { kSlotIndex, kVectorIndex };
+
+  static const Register VectorRegister() {
+    return LoadWithVectorDescriptor::VectorRegister();
+  }
+};
 
 class FastNewClosureDescriptor : public CallInterfaceDescriptor {
  public:
@@ -425,10 +541,7 @@
  public:
   enum ParameterIndices { kKeyIndex, kObjectIndex };
 
-  DECLARE_DESCRIPTOR(HasPropertyDescriptor, CallInterfaceDescriptor)
-
-  static const Register KeyRegister();
-  static const Register ObjectRegister();
+  DECLARE_DEFAULT_DESCRIPTOR(HasPropertyDescriptor, CallInterfaceDescriptor, 2)
 };
 
 class TypeofDescriptor : public CallInterfaceDescriptor {
@@ -532,15 +645,6 @@
 };
 
 
-class LoadGlobalViaContextDescriptor : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(LoadGlobalViaContextDescriptor,
-                                               CallInterfaceDescriptor)
-
-  static const Register SlotRegister();
-};
-
-
 class StoreGlobalViaContextDescriptor : public CallInterfaceDescriptor {
  public:
   DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(StoreGlobalViaContextDescriptor,
@@ -578,37 +682,36 @@
     kFunctionIndex,
     kAllocationSiteIndex,
     kArgumentCountIndex,
+    kFunctionParameterIndex,
     kContextIndex
   };
 };
 
-class ArrayConstructorConstantArgCountDescriptor
+class ArraySingleArgumentConstructorDescriptor
     : public CallInterfaceDescriptor {
  public:
-  DECLARE_DESCRIPTOR(ArrayConstructorConstantArgCountDescriptor,
-                     CallInterfaceDescriptor)
-};
-
-
-class ArrayConstructorDescriptor : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(ArrayConstructorDescriptor,
-                                               CallInterfaceDescriptor)
-};
-
-
-class InternalArrayConstructorConstantArgCountDescriptor
-    : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR(InternalArrayConstructorConstantArgCountDescriptor,
-                     CallInterfaceDescriptor)
-};
-
-
-class InternalArrayConstructorDescriptor : public CallInterfaceDescriptor {
- public:
   DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
-      InternalArrayConstructorDescriptor, CallInterfaceDescriptor)
+      ArraySingleArgumentConstructorDescriptor, CallInterfaceDescriptor)
+  enum ParameterIndices {
+    kFunctionIndex,
+    kAllocationSiteIndex,
+    kArgumentCountIndex,
+    kFunctionParameterIndex,
+    kArraySizeSmiParameterIndex,
+    kContextIndex
+  };
+};
+
+class ArrayNArgumentsConstructorDescriptor : public CallInterfaceDescriptor {
+ public:
+  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(
+      ArrayNArgumentsConstructorDescriptor, CallInterfaceDescriptor)
+  enum ParameterIndices {
+    kFunctionIndex,
+    kAllocationSiteIndex,
+    kArgumentCountIndex,
+    kContextIndex
+  };
 };
 
 
@@ -756,7 +859,6 @@
   static const Register CallbackRegister();
 };
 
-
 class MathPowTaggedDescriptor : public CallInterfaceDescriptor {
  public:
   DECLARE_DESCRIPTOR(MathPowTaggedDescriptor, CallInterfaceDescriptor)
@@ -764,7 +866,6 @@
   static const Register exponent();
 };
 
-
 class MathPowIntegerDescriptor : public CallInterfaceDescriptor {
  public:
   DECLARE_DESCRIPTOR(MathPowIntegerDescriptor, CallInterfaceDescriptor)
@@ -772,15 +873,9 @@
   static const Register exponent();
 };
 
-
-class ContextOnlyDescriptor : public CallInterfaceDescriptor {
+class VarArgFunctionDescriptor : public CallInterfaceDescriptor {
  public:
-  DECLARE_DESCRIPTOR(ContextOnlyDescriptor, CallInterfaceDescriptor)
-};
-
-class FastArrayPushDescriptor : public CallInterfaceDescriptor {
- public:
-  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(FastArrayPushDescriptor,
+  DECLARE_DESCRIPTOR_WITH_CUSTOM_FUNCTION_TYPE(VarArgFunctionDescriptor,
                                                CallInterfaceDescriptor)
 };
 
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc
index 75bf631..c74fe7e 100644
--- a/src/interpreter/bytecode-array-builder.cc
+++ b/src/interpreter/bytecode-array-builder.cc
@@ -6,7 +6,10 @@
 
 #include "src/compiler.h"
 #include "src/interpreter/bytecode-array-writer.h"
+#include "src/interpreter/bytecode-dead-code-optimizer.h"
+#include "src/interpreter/bytecode-label.h"
 #include "src/interpreter/bytecode-peephole-optimizer.h"
+#include "src/interpreter/bytecode-register-optimizer.h"
 #include "src/interpreter/interpreter-intrinsics.h"
 
 namespace v8 {
@@ -22,29 +25,34 @@
       bytecode_generated_(false),
       constant_array_builder_(isolate, zone),
       handler_table_builder_(isolate, zone),
-      source_position_table_builder_(isolate, zone),
-      exit_seen_in_block_(false),
-      unbound_jumps_(0),
+      return_seen_in_block_(false),
       parameter_count_(parameter_count),
       local_register_count_(locals_count),
       context_register_count_(context_count),
       temporary_allocator_(zone, fixed_register_count()),
-      bytecode_array_writer_(zone, &source_position_table_builder_),
+      bytecode_array_writer_(isolate, zone, &constant_array_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_deadcode) {
+    pipeline_ = new (zone) BytecodeDeadCodeOptimizer(pipeline_);
+  }
+
   if (FLAG_ignition_peephole) {
     pipeline_ = new (zone)
         BytecodePeepholeOptimizer(&constant_array_builder_, pipeline_);
   }
 
+  if (FLAG_ignition_reo) {
+    pipeline_ = new (zone) BytecodeRegisterOptimizer(
+        zone, &temporary_allocator_, parameter_count, pipeline_);
+  }
+
   return_position_ =
       literal ? std::max(literal->start_position(), literal->end_position() - 1)
               : RelocInfo::kNoPosition;
-  LOG_CODE_EVENT(isolate_, CodeStartLinePosInfoRecordEvent(
-                               source_position_table_builder()));
 }
 
 Register BytecodeArrayBuilder::first_context_register() const {
@@ -52,132 +60,98 @@
   return Register(local_register_count_);
 }
 
-
 Register BytecodeArrayBuilder::last_context_register() const {
   DCHECK_GT(context_register_count_, 0);
   return Register(local_register_count_ + context_register_count_ - 1);
 }
 
-
 Register BytecodeArrayBuilder::Parameter(int parameter_index) const {
   DCHECK_GE(parameter_index, 0);
   return Register::FromParameterIndex(parameter_index, parameter_count());
 }
 
-
 bool BytecodeArrayBuilder::RegisterIsParameterOrLocal(Register reg) const {
   return reg.is_parameter() || reg.index() < locals_count();
 }
 
-
 Handle<BytecodeArray> BytecodeArrayBuilder::ToBytecodeArray() {
-  DCHECK_EQ(0, unbound_jumps_);
-  DCHECK_EQ(bytecode_generated_, false);
-  DCHECK(exit_seen_in_block_);
-
-  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(),
-      constant_pool);
-  bytecode_array->set_handler_table(*handler_table);
-  bytecode_array->set_source_position_table(*source_position_table);
-
-  void* line_info = source_position_table_builder()->DetachJITHandlerData();
-  LOG_CODE_EVENT(isolate_, CodeEndLinePosInfoRecordEvent(
-                               AbstractCode::cast(*bytecode_array), line_info));
-
+  DCHECK(return_seen_in_block_);
+  DCHECK(!bytecode_generated_);
   bytecode_generated_ = true;
-  return bytecode_array;
+
+  Handle<FixedArray> handler_table = handler_table_builder()->ToHandlerTable();
+  return pipeline_->ToBytecodeArray(fixed_register_count(), parameter_count(),
+                                    handler_table);
 }
 
+namespace {
+
+static bool ExpressionPositionIsNeeded(Bytecode bytecode) {
+  // An expression position is always needed if filtering is turned
+  // off. Otherwise an expression is only needed if the bytecode has
+  // external side effects.
+  return !FLAG_ignition_filter_expression_positions ||
+         !Bytecodes::IsWithoutExternalSideEffects(bytecode);
+}
+
+}  // namespace
+
 void BytecodeArrayBuilder::AttachSourceInfo(BytecodeNode* node) {
   if (latest_source_info_.is_valid()) {
-    node->source_info().Update(latest_source_info_);
-    latest_source_info_.set_invalid();
+    // Statement positions need to be emitted immediately.  Expression
+    // positions can be pushed back until a bytecode is found that can
+    // throw. Hence we only invalidate the existing source position
+    // information if it is used.
+    if (latest_source_info_.is_statement() ||
+        ExpressionPositionIsNeeded(node->bytecode())) {
+      node->source_info().Clone(latest_source_info_);
+      latest_source_info_.set_invalid();
+    }
   }
 }
 
+void BytecodeArrayBuilder::Output(Bytecode bytecode, uint32_t operand0,
+                                  uint32_t operand1, uint32_t operand2,
+                                  uint32_t operand3) {
+  DCHECK(OperandsAreValid(bytecode, 4, operand0, operand1, operand2, operand3));
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand3);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
+}
+
+void BytecodeArrayBuilder::Output(Bytecode bytecode, uint32_t operand0,
+                                  uint32_t operand1, uint32_t operand2) {
+  DCHECK(OperandsAreValid(bytecode, 3, operand0, operand1, operand2));
+  BytecodeNode node(bytecode, operand0, operand1, operand2);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
+}
+
+void BytecodeArrayBuilder::Output(Bytecode bytecode, uint32_t operand0,
+                                  uint32_t operand1) {
+  DCHECK(OperandsAreValid(bytecode, 2, operand0, operand1));
+  BytecodeNode node(bytecode, operand0, operand1);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
+}
+
+void BytecodeArrayBuilder::Output(Bytecode bytecode, uint32_t operand0) {
+  DCHECK(OperandsAreValid(bytecode, 1, operand0));
+  BytecodeNode node(bytecode, operand0);
+  AttachSourceInfo(&node);
+  pipeline()->Write(&node);
+}
+
 void BytecodeArrayBuilder::Output(Bytecode bytecode) {
-  // Don't output dead code.
-  if (exit_seen_in_block_) return;
-
+  DCHECK(OperandsAreValid(bytecode, 0));
   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) {
-  // 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) {
-  // 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) {
-  // 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) {
-  // 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 =
-      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
-  OutputScaled(BytecodeForBinaryOperation(op), operand_scale,
-               RegisterOperand(reg));
+  Output(BytecodeForBinaryOperation(op), RegisterOperand(reg));
   return *this;
 }
 
@@ -186,7 +160,6 @@
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LogicalNot() {
   Output(Bytecode::kToBooleanLogicalNot);
   return *this;
@@ -200,62 +173,47 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::CompareOperation(Token::Value op,
                                                              Register reg) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
-  OutputScaled(BytecodeForCompareOperation(op), operand_scale,
-               RegisterOperand(reg));
+  Output(BytecodeForCompareOperation(op), RegisterOperand(reg));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadLiteral(
     v8::internal::Smi* smi) {
   int32_t raw_smi = smi->value();
   if (raw_smi == 0) {
     Output(Bytecode::kLdaZero);
   } else {
-    OperandSize operand_size = Bytecodes::SizeForSignedOperand(raw_smi);
-    OperandScale operand_scale = Bytecodes::OperandSizesToScale(operand_size);
-    OutputScaled(Bytecode::kLdaSmi, operand_scale,
-                 SignedOperand(raw_smi, operand_size));
+    Output(Bytecode::kLdaSmi, SignedOperand(raw_smi));
   }
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadLiteral(Handle<Object> object) {
   size_t entry = GetConstantPoolEntry(object);
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(Bytecodes::SizeForUnsignedOperand(entry));
-  OutputScaled(Bytecode::kLdaConstant, operand_scale, UnsignedOperand(entry));
+  Output(Bytecode::kLdaConstant, UnsignedOperand(entry));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadUndefined() {
   Output(Bytecode::kLdaUndefined);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNull() {
   Output(Bytecode::kLdaNull);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadTheHole() {
   Output(Bytecode::kLdaTheHole);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadTrue() {
   Output(Bytecode::kLdaTrue);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadFalse() {
   Output(Bytecode::kLdaFalse);
   return *this;
@@ -263,43 +221,29 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadAccumulatorWithRegister(
     Register reg) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
-  OutputScaled(Bytecode::kLdar, operand_scale, RegisterOperand(reg));
+  Output(Bytecode::kLdar, RegisterOperand(reg));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreAccumulatorInRegister(
     Register reg) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(reg.SizeOfOperand());
-  OutputScaled(Bytecode::kStar, operand_scale, RegisterOperand(reg));
+  Output(Bytecode::kStar, RegisterOperand(reg));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::MoveRegister(Register from,
                                                          Register to) {
   DCHECK(from != to);
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(from.SizeOfOperand(), to.SizeOfOperand());
-  OutputScaled(Bytecode::kMov, operand_scale, RegisterOperand(from),
-               RegisterOperand(to));
+  Output(Bytecode::kMov, RegisterOperand(from), RegisterOperand(to));
   return *this;
 }
 
-BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(
-    const Handle<String> name, int feedback_slot, TypeofMode typeof_mode) {
+BytecodeArrayBuilder& BytecodeArrayBuilder::LoadGlobal(int feedback_slot,
+                                                       TypeofMode typeof_mode) {
   // TODO(rmcilroy): Potentially store typeof information in an
   // operand rather than having extra bytecodes.
   Bytecode bytecode = BytecodeForLoadGlobal(typeof_mode);
-  size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      Bytecodes::SizeForUnsignedOperand(name_index),
-      Bytecodes::SizeForUnsignedOperand(feedback_slot));
-  OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index),
-               UnsignedOperand(feedback_slot));
+  Output(bytecode, UnsignedOperand(feedback_slot));
   return *this;
 }
 
@@ -307,31 +251,21 @@
     const Handle<String> name, int feedback_slot, LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForStoreGlobal(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      Bytecodes::SizeForUnsignedOperand(name_index),
-      Bytecodes::SizeForUnsignedOperand(feedback_slot));
-  OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index),
-               UnsignedOperand(feedback_slot));
+  Output(bytecode, UnsignedOperand(name_index), UnsignedOperand(feedback_slot));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadContextSlot(Register context,
                                                             int slot_index) {
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      context.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(slot_index));
-  OutputScaled(Bytecode::kLdaContextSlot, operand_scale,
-               RegisterOperand(context), UnsignedOperand(slot_index));
+  Output(Bytecode::kLdaContextSlot, RegisterOperand(context),
+         UnsignedOperand(slot_index));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreContextSlot(Register context,
                                                              int slot_index) {
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      context.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(slot_index));
-  OutputScaled(Bytecode::kStaContextSlot, operand_scale,
-               RegisterOperand(context), UnsignedOperand(slot_index));
+  Output(Bytecode::kStaContextSlot, RegisterOperand(context),
+         UnsignedOperand(slot_index));
   return *this;
 }
 
@@ -341,9 +275,7 @@
                           ? Bytecode::kLdaLookupSlotInsideTypeof
                           : Bytecode::kLdaLookupSlot;
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      Bytecodes::SizeForUnsignedOperand(name_index));
-  OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index));
+  Output(bytecode, UnsignedOperand(name_index));
   return *this;
 }
 
@@ -351,70 +283,52 @@
     const Handle<String> name, LanguageMode language_mode) {
   Bytecode bytecode = BytecodeForStoreLookupSlot(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      Bytecodes::SizeForUnsignedOperand(name_index));
-  OutputScaled(bytecode, operand_scale, UnsignedOperand(name_index));
+  Output(bytecode, UnsignedOperand(name_index));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty(
     Register object, const Handle<Name> name, int feedback_slot) {
   size_t name_index = GetConstantPoolEntry(name);
-  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));
+  Output(Bytecode::kLdaNamedProperty, RegisterOperand(object),
+         UnsignedOperand(name_index), UnsignedOperand(feedback_slot));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty(
     Register object, int feedback_slot) {
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      object.SizeOfOperand(), Bytecodes::SizeForUnsignedOperand(feedback_slot));
-  OutputScaled(Bytecode::kKeyedLoadIC, operand_scale, RegisterOperand(object),
-               UnsignedOperand(feedback_slot));
+  Output(Bytecode::kLdaKeyedProperty, RegisterOperand(object),
+         UnsignedOperand(feedback_slot));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty(
     Register object, const Handle<Name> name, int feedback_slot,
     LanguageMode language_mode) {
-  Bytecode bytecode = BytecodeForStoreIC(language_mode);
+  Bytecode bytecode = BytecodeForStoreNamedProperty(language_mode);
   size_t name_index = GetConstantPoolEntry(name);
-  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));
+  Output(bytecode, RegisterOperand(object), UnsignedOperand(name_index),
+         UnsignedOperand(feedback_slot));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::StoreKeyedProperty(
     Register object, Register key, int feedback_slot,
     LanguageMode language_mode) {
-  Bytecode bytecode = BytecodeForKeyedStoreIC(language_mode);
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      object.SizeOfOperand(), key.SizeOfOperand(),
-      Bytecodes::SizeForUnsignedOperand(feedback_slot));
-  OutputScaled(bytecode, operand_scale, RegisterOperand(object),
-               RegisterOperand(key), UnsignedOperand(feedback_slot));
+  Bytecode bytecode = BytecodeForStoreKeyedProperty(language_mode);
+  Output(bytecode, RegisterOperand(object), RegisterOperand(key),
+         UnsignedOperand(feedback_slot));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateClosure(
     Handle<SharedFunctionInfo> shared_info, PretenureFlag tenured) {
   size_t entry = GetConstantPoolEntry(shared_info);
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(Bytecodes::SizeForUnsignedOperand(entry));
-  OutputScaled(Bytecode::kCreateClosure, operand_scale, UnsignedOperand(entry),
-               UnsignedOperand(static_cast<size_t>(tenured)));
+  Output(Bytecode::kCreateClosure, UnsignedOperand(entry),
+         UnsignedOperand(static_cast<size_t>(tenured)));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateArguments(
     CreateArgumentsType type) {
   // TODO(rmcilroy): Consider passing the type as a bytecode operand rather
@@ -425,71 +339,47 @@
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateRegExpLiteral(
     Handle<String> pattern, int literal_index, int flags) {
   size_t pattern_entry = GetConstantPoolEntry(pattern);
-  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));
+  Output(Bytecode::kCreateRegExpLiteral, UnsignedOperand(pattern_entry),
+         UnsignedOperand(literal_index), UnsignedOperand(flags));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateArrayLiteral(
     Handle<FixedArray> constant_elements, int literal_index, int flags) {
   size_t constant_elements_entry = GetConstantPoolEntry(constant_elements);
-  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));
+  Output(Bytecode::kCreateArrayLiteral,
+         UnsignedOperand(constant_elements_entry),
+         UnsignedOperand(literal_index), UnsignedOperand(flags));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CreateObjectLiteral(
     Handle<FixedArray> constant_properties, int literal_index, int flags) {
   size_t constant_properties_entry = GetConstantPoolEntry(constant_properties);
-  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));
+  Output(Bytecode::kCreateObjectLiteral,
+         UnsignedOperand(constant_properties_entry),
+         UnsignedOperand(literal_index), UnsignedOperand(flags));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::PushContext(Register context) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(context.SizeOfOperand());
-  OutputScaled(Bytecode::kPushContext, operand_scale, RegisterOperand(context));
+  Output(Bytecode::kPushContext, RegisterOperand(context));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::PopContext(Register context) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(context.SizeOfOperand());
-  OutputScaled(Bytecode::kPopContext, operand_scale, RegisterOperand(context));
+  Output(Bytecode::kPopContext, RegisterOperand(context));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CastAccumulatorToJSObject() {
   Output(Bytecode::kToObject);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CastAccumulatorToName() {
   Output(Bytecode::kToName);
   return *this;
@@ -500,207 +390,24 @@
   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(current_offset, label->offset());
-    // Now treat as if the label will only be back referred to.
-  }
-  label->bind_to(current_offset);
+  pipeline_->BindLabel(label);
   LeaveBasicBlock();
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::Bind(const BytecodeLabel& target,
                                                  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(target.offset(), label->offset());
-    // Now treat as if the label will only be back referred to.
-  }
-  label->bind_to(target.offset());
+  pipeline_->BindLabel(target, label);
   LeaveBasicBlock();
   return *this;
 }
 
-
-// static
-Bytecode BytecodeArrayBuilder::GetJumpWithConstantOperand(
-    Bytecode jump_bytecode) {
-  switch (jump_bytecode) {
-    case Bytecode::kJump:
-      return Bytecode::kJumpConstant;
-    case Bytecode::kJumpIfTrue:
-      return Bytecode::kJumpIfTrueConstant;
-    case Bytecode::kJumpIfFalse:
-      return Bytecode::kJumpIfFalseConstant;
-    case Bytecode::kJumpIfToBooleanTrue:
-      return Bytecode::kJumpIfToBooleanTrueConstant;
-    case Bytecode::kJumpIfToBooleanFalse:
-      return Bytecode::kJumpIfToBooleanFalseConstant;
-    case Bytecode::kJumpIfNotHole:
-      return Bytecode::kJumpIfNotHoleConstant;
-    case Bytecode::kJumpIfNull:
-      return Bytecode::kJumpIfNullConstant;
-    case Bytecode::kJumpIfUndefined:
-      return Bytecode::kJumpIfUndefinedConstant;
-    default:
-      UNREACHABLE();
-      return Bytecode::kIllegal;
-  }
-}
-
-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));
-  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);
-    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(Bytecodes::SizeForUnsignedOperand(entry) == OperandSize::kByte);
-    jump_bytecode = GetJumpWithConstantOperand(jump_bytecode);
-    bytecodes->at(jump_location) = Bytecodes::ToByte(jump_bytecode);
-    bytecodes->at(operand_location) = static_cast<uint8_t>(entry);
-  }
-}
-
-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));
-  size_t operand_location = jump_location + 1;
-  uint8_t operand_bytes[2];
-  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);
-    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(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::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);
-  uint8_t operand_bytes[4];
-  WriteUnalignedUInt32(operand_bytes, static_cast<uint32_t>(delta));
-  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(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);
-  int prefix_offset = 0;
-  OperandScale operand_scale = OperandScale::kSingle;
-  if (Bytecodes::IsPrefixScalingBytecode(jump_bytecode)) {
-    // If a prefix scaling bytecode is emitted the target offset is one
-    // less than the case of no prefix scaling bytecode.
-    delta -= 1;
-    prefix_offset = 1;
-    operand_scale = Bytecodes::PrefixBytecodeToOperandScale(jump_bytecode);
-    jump_bytecode =
-        Bytecodes::FromByte(bytecodes->at(jump_location + prefix_offset));
-  }
-
-  DCHECK(Bytecodes::IsJump(jump_bytecode));
-  switch (operand_scale) {
-    case OperandScale::kSingle:
-      PatchJumpWith8BitOperand(bytecodes, jump_location, delta);
-      break;
-    case OperandScale::kDouble:
-      PatchJumpWith16BitOperand(bytecodes, jump_location + prefix_offset,
-                                delta);
-      break;
-    case OperandScale::kQuadruple:
-      PatchJumpWith32BitOperand(bytecodes, jump_location + prefix_offset,
-                                delta);
-      break;
-    default:
-      UNREACHABLE();
-  }
-  unbound_jumps_--;
-}
-
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::OutputJump(Bytecode jump_bytecode,
                                                        BytecodeLabel* label) {
-  // Don't emit dead code.
-  if (exit_seen_in_block_) return *this;
-
-  if (label->is_bound()) {
-    // Label has been bound already so this is a backwards jump.
-    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 = 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, Bytecodes::OperandSizesToScale(operand_size),
-                 SignedOperand(delta, operand_size));
-  } else {
-    // The label has not yet been bound so this is a forward reference
-    // that will be patched when the label is bound. We create a
-    // reservation in the constant pool so the jump can be patched
-    // 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.
-    unbound_jumps_++;
-    OperandSize reserved_operand_size =
-        constant_array_builder()->CreateReservedEntry();
-    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);
-  }
+  BytecodeNode node(jump_bytecode, 0);
+  AttachSourceInfo(&node);
+  pipeline_->WriteJump(&node, label);
   LeaveBasicBlock();
   return *this;
 }
@@ -730,39 +437,43 @@
   return OutputJump(Bytecode::kJumpIfUndefined, label);
 }
 
-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;
-}
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::JumpIfNotHole(
     BytecodeLabel* label) {
   return OutputJump(Bytecode::kJumpIfNotHole, label);
 }
 
-BytecodeArrayBuilder& BytecodeArrayBuilder::Throw() {
-  Output(Bytecode::kThrow);
-  exit_seen_in_block_ = true;
+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. There can be
+    // a prior statement position from constructs like:
+    //
+    //    do var x;  while (false);
+    //
+    // A Nop could be inserted for empty statements, but since no code
+    // is associated with these positions, instead we force the stack
+    // check's expression position which eliminates the empty
+    // statement's position.
+    latest_source_info_.ForceExpressionPosition(position);
+  }
+  Output(Bytecode::kStackCheck);
   return *this;
 }
 
+BytecodeArrayBuilder& BytecodeArrayBuilder::Throw() {
+  Output(Bytecode::kThrow);
+  return *this;
+}
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ReThrow() {
   Output(Bytecode::kReThrow);
-  exit_seen_in_block_ = true;
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::Return() {
   SetReturnPosition();
   Output(Bytecode::kReturn);
-  exit_seen_in_block_ = true;
+  return_seen_in_block_ = true;
   return *this;
 }
 
@@ -773,100 +484,74 @@
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInPrepare(
     Register cache_info_triple) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(cache_info_triple.SizeOfOperand());
-  OutputScaled(Bytecode::kForInPrepare, operand_scale,
-               RegisterOperand(cache_info_triple));
+  Output(Bytecode::kForInPrepare, RegisterOperand(cache_info_triple));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInDone(Register index,
                                                       Register cache_length) {
-  OperandScale operand_scale = Bytecodes::OperandSizesToScale(
-      index.SizeOfOperand(), cache_length.SizeOfOperand());
-  OutputScaled(Bytecode::kForInDone, operand_scale, RegisterOperand(index),
-               RegisterOperand(cache_length));
+  Output(Bytecode::kForInDone, RegisterOperand(index),
+         RegisterOperand(cache_length));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInNext(
     Register receiver, Register index, Register cache_type_array_pair,
     int 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));
+  Output(Bytecode::kForInNext, RegisterOperand(receiver),
+         RegisterOperand(index), RegisterOperand(cache_type_array_pair),
+         UnsignedOperand(feedback_slot));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::ForInStep(Register index) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(index.SizeOfOperand());
-  OutputScaled(Bytecode::kForInStep, operand_scale, RegisterOperand(index));
+  Output(Bytecode::kForInStep, RegisterOperand(index));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::SuspendGenerator(
     Register generator) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(generator.SizeOfOperand());
-  OutputScaled(Bytecode::kSuspendGenerator, operand_scale,
-               RegisterOperand(generator));
+  Output(Bytecode::kSuspendGenerator, RegisterOperand(generator));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::ResumeGenerator(
     Register generator) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(generator.SizeOfOperand());
-  OutputScaled(Bytecode::kResumeGenerator, operand_scale,
-               RegisterOperand(generator));
+  Output(Bytecode::kResumeGenerator, RegisterOperand(generator));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkHandler(int handler_id,
                                                         bool will_catch) {
-  size_t offset = pipeline()->FlushForOffset();
-  handler_table_builder()->SetHandlerTarget(handler_id, offset);
+  BytecodeLabel handler;
+  Bind(&handler);
+  handler_table_builder()->SetHandlerTarget(handler_id, handler.offset());
   handler_table_builder()->SetPrediction(handler_id, will_catch);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkTryBegin(int handler_id,
                                                          Register context) {
-  size_t offset = pipeline()->FlushForOffset();
-  handler_table_builder()->SetTryRegionStart(handler_id, offset);
+  BytecodeLabel try_begin;
+  Bind(&try_begin);
+  handler_table_builder()->SetTryRegionStart(handler_id, try_begin.offset());
   handler_table_builder()->SetContextRegister(handler_id, context);
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::MarkTryEnd(int handler_id) {
-  size_t offset = pipeline()->FlushForOffset();
-  handler_table_builder()->SetTryRegionEnd(handler_id, offset);
+  BytecodeLabel try_end;
+  Bind(&try_end);
+  handler_table_builder()->SetTryRegionEnd(handler_id, try_end.offset());
   return *this;
 }
 
-
-void BytecodeArrayBuilder::LeaveBasicBlock() {
-  exit_seen_in_block_ = false;
-  pipeline()->FlushBasicBlock();
-}
-
 void BytecodeArrayBuilder::EnsureReturn() {
-  if (!exit_seen_in_block_) {
+  if (!return_seen_in_block_) {
     LoadUndefined();
     Return();
   }
-  DCHECK(exit_seen_in_block_);
+  DCHECK(return_seen_in_block_);
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::Call(Register callable,
@@ -875,14 +560,8 @@
                                                  int feedback_slot,
                                                  TailCallMode tail_call_mode) {
   Bytecode bytecode = BytecodeForCall(tail_call_mode);
-  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),
-               UnsignedOperand(feedback_slot));
+  Output(bytecode, RegisterOperand(callable), RegisterOperand(receiver_args),
+         UnsignedOperand(receiver_args_count), UnsignedOperand(feedback_slot));
   return *this;
 }
 
@@ -893,15 +572,11 @@
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
   }
-  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));
+  Output(Bytecode::kNew, RegisterOperand(constructor),
+         RegisterOperand(first_arg), UnsignedOperand(arg_count));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CallRuntime(
     Runtime::FunctionId function_id, Register first_arg, size_t arg_count) {
   DCHECK_EQ(1, Runtime::FunctionForId(function_id)->result_size);
@@ -910,17 +585,19 @@
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
   }
-  Bytecode bytecode = IntrinsicsHelper::IsSupported(function_id)
-                          ? Bytecode::kInvokeIntrinsic
-                          : Bytecode::kCallRuntime;
-  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));
+  Bytecode bytecode;
+  uint32_t id;
+  if (IntrinsicsHelper::IsSupported(function_id)) {
+    bytecode = Bytecode::kInvokeIntrinsic;
+    id = static_cast<uint32_t>(IntrinsicsHelper::FromRuntimeId(function_id));
+  } else {
+    bytecode = Bytecode::kCallRuntime;
+    id = static_cast<uint32_t>(function_id);
+  }
+  Output(bytecode, id, RegisterOperand(first_arg), UnsignedOperand(arg_count));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::CallRuntimeForPair(
     Runtime::FunctionId function_id, Register first_arg, size_t arg_count,
     Register first_return) {
@@ -930,34 +607,22 @@
     DCHECK_EQ(0u, arg_count);
     first_arg = Register(0);
   }
-  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));
+  Output(Bytecode::kCallRuntimeForPair, static_cast<uint16_t>(function_id),
+         RegisterOperand(first_arg), UnsignedOperand(arg_count),
+         RegisterOperand(first_return));
   return *this;
 }
 
 BytecodeArrayBuilder& BytecodeArrayBuilder::CallJSRuntime(
     int context_index, Register receiver_args, size_t 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));
+  Output(Bytecode::kCallJSRuntime, UnsignedOperand(context_index),
+         RegisterOperand(receiver_args), UnsignedOperand(receiver_args_count));
   return *this;
 }
 
-
 BytecodeArrayBuilder& BytecodeArrayBuilder::Delete(Register object,
                                                    LanguageMode language_mode) {
-  OperandScale operand_scale =
-      Bytecodes::OperandSizesToScale(object.SizeOfOperand());
-  OutputScaled(BytecodeForDelete(language_mode), operand_scale,
-               RegisterOperand(object));
+  Output(BytecodeForDelete(language_mode), RegisterOperand(object));
   return *this;
 }
 
@@ -967,101 +632,37 @@
 
 void BytecodeArrayBuilder::SetReturnPosition() {
   if (return_position_ == RelocInfo::kNoPosition) return;
-  if (exit_seen_in_block_) return;
-  latest_source_info_.Update({return_position_, true});
+  latest_source_info_.MakeStatementPosition(return_position_);
 }
 
 void BytecodeArrayBuilder::SetStatementPosition(Statement* stmt) {
   if (stmt->position() == RelocInfo::kNoPosition) return;
-  if (exit_seen_in_block_) return;
-  latest_source_info_.Update({stmt->position(), true});
+  latest_source_info_.MakeStatementPosition(stmt->position());
 }
 
 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
-  if (exit_seen_in_block_) return;
-  latest_source_info_.Update({expr->position(), false});
+  if (!latest_source_info_.is_statement()) {
+    // Ensure the current expression position is overwritten with the
+    // latest value.
+    latest_source_info_.MakeExpressionPosition(expr->position());
+  }
 }
 
 void BytecodeArrayBuilder::SetExpressionAsStatementPosition(Expression* expr) {
   if (expr->position() == RelocInfo::kNoPosition) return;
-  if (exit_seen_in_block_) return;
-  latest_source_info_.Update({expr->position(), true});
+  latest_source_info_.MakeStatementPosition(expr->position());
 }
 
 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const {
   return temporary_register_allocator()->RegisterIsLive(reg);
 }
 
-bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode,
-                                          OperandScale operand_scale,
-                                          int operand_index,
-                                          uint32_t operand_value) const {
-  OperandSize operand_size =
-      Bytecodes::GetOperandSize(bytecode, operand_index, operand_scale);
-  OperandType operand_type = Bytecodes::GetOperandType(bytecode, operand_index);
-  switch (operand_type) {
-    case OperandType::kNone:
-      return false;
-    case OperandType::kRegCount: {
-      if (operand_index > 0) {
-        OperandType previous_operand_type =
-            Bytecodes::GetOperandType(bytecode, operand_index - 1);
-        if (previous_operand_type != OperandType::kMaybeReg &&
-            previous_operand_type != OperandType::kReg) {
-          return false;
-        }
-      }
-    }  // Fall-through
-    case OperandType::kFlag8:
-    case OperandType::kIdx:
-    case OperandType::kRuntimeId:
-    case OperandType::kImm: {
-      size_t unsigned_value = static_cast<size_t>(operand_value);
-      return Bytecodes::SizeForUnsignedOperand(unsigned_value) <= operand_size;
-    }
-    case OperandType::kMaybeReg:
-      if (RegisterFromOperand(operand_value) == Register(0)) {
-        return true;
-      }
-    // Fall-through to kReg case.
-    case OperandType::kReg:
-    case OperandType::kRegOut: {
-      Register reg = RegisterFromOperand(operand_value);
-      return RegisterIsValid(reg, operand_size);
-    }
-    case OperandType::kRegOutPair:
-    case OperandType::kRegPair: {
-      Register reg0 = RegisterFromOperand(operand_value);
-      Register reg1 = Register(reg0.index() + 1);
-      // The size of reg1 is immaterial.
-      return RegisterIsValid(reg0, operand_size) &&
-             RegisterIsValid(reg1, OperandSize::kQuad);
-    }
-    case OperandType::kRegOutTriple: {
-      Register reg0 = RegisterFromOperand(operand_value);
-      Register reg1 = Register(reg0.index() + 1);
-      Register reg2 = Register(reg0.index() + 2);
-      // The size of reg1 and reg2 is immaterial.
-      return RegisterIsValid(reg0, operand_size) &&
-             RegisterIsValid(reg1, OperandSize::kQuad) &&
-             RegisterIsValid(reg2, OperandSize::kQuad);
-    }
-  }
-  UNREACHABLE();
-  return false;
-}
-
-bool BytecodeArrayBuilder::RegisterIsValid(Register reg,
-                                           OperandSize reg_size) const {
+bool BytecodeArrayBuilder::RegisterIsValid(Register reg) const {
   if (!reg.is_valid()) {
     return false;
   }
 
-  if (reg.SizeOfOperand() > reg_size) {
-    return false;
-  }
-
   if (reg.is_current_context() || reg.is_function_closure() ||
       reg.is_new_target()) {
     return true;
@@ -1075,6 +676,90 @@
   }
 }
 
+bool BytecodeArrayBuilder::OperandsAreValid(
+    Bytecode bytecode, int operand_count, uint32_t operand0, uint32_t operand1,
+    uint32_t operand2, uint32_t operand3) const {
+  if (Bytecodes::NumberOfOperands(bytecode) != operand_count) {
+    return false;
+  }
+
+  uint32_t operands[] = {operand0, operand1, operand2, operand3};
+  const OperandType* operand_types = Bytecodes::GetOperandTypes(bytecode);
+  for (int i = 0; i < operand_count; ++i) {
+    switch (operand_types[i]) {
+      case OperandType::kNone:
+        return false;
+      case OperandType::kRegCount: {
+        CHECK_NE(i, 0);
+        CHECK(operand_types[i - 1] == OperandType::kMaybeReg ||
+              operand_types[i - 1] == OperandType::kReg);
+        if (i > 0 && operands[i] > 0) {
+          Register start = Register::FromOperand(operands[i - 1]);
+          Register end(start.index() + static_cast<int>(operands[i]) - 1);
+          if (!RegisterIsValid(start) || !RegisterIsValid(end) || start > end) {
+            return false;
+          }
+        }
+        break;
+      }
+      case OperandType::kFlag8:
+      case OperandType::kIntrinsicId:
+        if (Bytecodes::SizeForUnsignedOperand(operands[i]) >
+            OperandSize::kByte) {
+          return false;
+        }
+        break;
+      case OperandType::kRuntimeId:
+        if (Bytecodes::SizeForUnsignedOperand(operands[i]) >
+            OperandSize::kShort) {
+          return false;
+        }
+        break;
+      case OperandType::kIdx:
+        // TODO(oth): Consider splitting OperandType::kIdx into two
+        // operand types. One which is a constant pool index that can
+        // be checked, and the other is an unsigned value.
+        break;
+      case OperandType::kImm:
+        break;
+      case OperandType::kMaybeReg:
+        if (Register::FromOperand(operands[i]) == Register(0)) {
+          break;
+        }
+      // Fall-through to kReg case.
+      case OperandType::kReg:
+      case OperandType::kRegOut: {
+        Register reg = Register::FromOperand(operands[i]);
+        if (!RegisterIsValid(reg)) {
+          return false;
+        }
+        break;
+      }
+      case OperandType::kRegOutPair:
+      case OperandType::kRegPair: {
+        Register reg0 = Register::FromOperand(operands[i]);
+        Register reg1 = Register(reg0.index() + 1);
+        if (!RegisterIsValid(reg0) || !RegisterIsValid(reg1)) {
+          return false;
+        }
+        break;
+      }
+      case OperandType::kRegOutTriple: {
+        Register reg0 = Register::FromOperand(operands[i]);
+        Register reg1 = Register(reg0.index() + 1);
+        Register reg2 = Register(reg0.index() + 2);
+        if (!RegisterIsValid(reg0) || !RegisterIsValid(reg1) ||
+            !RegisterIsValid(reg2)) {
+          return false;
+        }
+        break;
+      }
+    }
+  }
+
+  return true;
+}
+
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForBinaryOperation(Token::Value op) {
   switch (op) {
@@ -1106,7 +791,6 @@
   }
 }
 
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForCountOperation(Token::Value op) {
   switch (op) {
@@ -1120,7 +804,6 @@
   }
 }
 
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForCompareOperation(Token::Value op) {
   switch (op) {
@@ -1148,35 +831,33 @@
   }
 }
 
-
 // static
-Bytecode BytecodeArrayBuilder::BytecodeForStoreIC(LanguageMode language_mode) {
-  switch (language_mode) {
-    case SLOPPY:
-      return Bytecode::kStoreICSloppy;
-    case STRICT:
-      return Bytecode::kStoreICStrict;
-    default:
-      UNREACHABLE();
-  }
-  return Bytecode::kIllegal;
-}
-
-
-// static
-Bytecode BytecodeArrayBuilder::BytecodeForKeyedStoreIC(
+Bytecode BytecodeArrayBuilder::BytecodeForStoreNamedProperty(
     LanguageMode language_mode) {
   switch (language_mode) {
     case SLOPPY:
-      return Bytecode::kKeyedStoreICSloppy;
+      return Bytecode::kStaNamedPropertySloppy;
     case STRICT:
-      return Bytecode::kKeyedStoreICStrict;
+      return Bytecode::kStaNamedPropertyStrict;
     default:
       UNREACHABLE();
   }
   return Bytecode::kIllegal;
 }
 
+// static
+Bytecode BytecodeArrayBuilder::BytecodeForStoreKeyedProperty(
+    LanguageMode language_mode) {
+  switch (language_mode) {
+    case SLOPPY:
+      return Bytecode::kStaKeyedPropertySloppy;
+    case STRICT:
+      return Bytecode::kStaKeyedPropertyStrict;
+    default:
+      UNREACHABLE();
+  }
+  return Bytecode::kIllegal;
+}
 
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForLoadGlobal(TypeofMode typeof_mode) {
@@ -1184,7 +865,6 @@
                                       : Bytecode::kLdaGlobal;
 }
 
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForStoreGlobal(
     LanguageMode language_mode) {
@@ -1199,7 +879,6 @@
   return Bytecode::kIllegal;
 }
 
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForStoreLookupSlot(
     LanguageMode language_mode) {
@@ -1229,7 +908,6 @@
   return Bytecode::kIllegal;
 }
 
-
 // static
 Bytecode BytecodeArrayBuilder::BytecodeForDelete(LanguageMode language_mode) {
   switch (language_mode) {
@@ -1256,38 +934,6 @@
   return Bytecode::kIllegal;
 }
 
-uint32_t BytecodeArrayBuilder::RegisterOperand(Register reg) {
-  return static_cast<uint32_t>(reg.ToOperand());
-}
-
-Register BytecodeArrayBuilder::RegisterFromOperand(uint32_t operand) {
-  return Register::FromOperand(static_cast<int32_t>(operand));
-}
-
-uint32_t BytecodeArrayBuilder::SignedOperand(int value, OperandSize size) {
-  switch (size) {
-    case OperandSize::kByte:
-      return static_cast<uint8_t>(value & 0xff);
-    case OperandSize::kShort:
-      return static_cast<uint16_t>(value & 0xffff);
-    case OperandSize::kQuad:
-      return static_cast<uint32_t>(value);
-    case OperandSize::kNone:
-      UNREACHABLE();
-  }
-  return 0;
-}
-
-uint32_t BytecodeArrayBuilder::UnsignedOperand(int value) {
-  DCHECK_GE(value, 0);
-  return static_cast<uint32_t>(value);
-}
-
-uint32_t BytecodeArrayBuilder::UnsignedOperand(size_t value) {
-  DCHECK_LE(value, kMaxUInt32);
-  return static_cast<uint32_t>(value);
-}
-
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/src/interpreter/bytecode-array-builder.h b/src/interpreter/bytecode-array-builder.h
index 3930a06..8a10973 100644
--- a/src/interpreter/bytecode-array-builder.h
+++ b/src/interpreter/bytecode-array-builder.h
@@ -11,7 +11,6 @@
 #include "src/interpreter/bytecodes.h"
 #include "src/interpreter/constant-array-builder.h"
 #include "src/interpreter/handler-table-builder.h"
-#include "src/interpreter/source-position-table.h"
 #include "src/zone-containers.h"
 
 namespace v8 {
@@ -86,8 +85,7 @@
   BytecodeArrayBuilder& LoadFalse();
 
   // Global loads to the accumulator and stores from the accumulator.
-  BytecodeArrayBuilder& LoadGlobal(const Handle<String> name, int feedback_slot,
-                                   TypeofMode typeof_mode);
+  BytecodeArrayBuilder& LoadGlobal(int feedback_slot, TypeofMode typeof_mode);
   BytecodeArrayBuilder& StoreGlobal(const Handle<String> name,
                                     int feedback_slot,
                                     LanguageMode language_mode);
@@ -273,11 +271,23 @@
 
   void EnsureReturn();
 
-  static uint32_t RegisterOperand(Register reg);
-  static Register RegisterFromOperand(uint32_t operand);
-  static uint32_t SignedOperand(int value, OperandSize size);
-  static uint32_t UnsignedOperand(int value);
-  static uint32_t UnsignedOperand(size_t value);
+  static uint32_t RegisterOperand(Register reg) {
+    return static_cast<uint32_t>(reg.ToOperand());
+  }
+
+  static uint32_t SignedOperand(int value) {
+    return static_cast<uint32_t>(value);
+  }
+
+  static uint32_t UnsignedOperand(int value) {
+    DCHECK_GE(value, 0);
+    return static_cast<uint32_t>(value);
+  }
+
+  static uint32_t UnsignedOperand(size_t value) {
+    DCHECK_LE(value, kMaxUInt32);
+    return static_cast<uint32_t>(value);
+  }
 
  private:
   friend class BytecodeRegisterAllocator;
@@ -285,8 +295,8 @@
   static Bytecode BytecodeForBinaryOperation(Token::Value op);
   static Bytecode BytecodeForCountOperation(Token::Value op);
   static Bytecode BytecodeForCompareOperation(Token::Value op);
-  static Bytecode BytecodeForStoreIC(LanguageMode language_mode);
-  static Bytecode BytecodeForKeyedStoreIC(LanguageMode language_mode);
+  static Bytecode BytecodeForStoreNamedProperty(LanguageMode language_mode);
+  static Bytecode BytecodeForStoreKeyedProperty(LanguageMode language_mode);
   static Bytecode BytecodeForLoadGlobal(TypeofMode typeof_mode);
   static Bytecode BytecodeForStoreGlobal(LanguageMode language_mode);
   static Bytecode BytecodeForStoreLookupSlot(LanguageMode language_mode);
@@ -294,34 +304,21 @@
   static Bytecode BytecodeForDelete(LanguageMode language_mode);
   static Bytecode BytecodeForCall(TailCallMode tail_call_mode);
 
-  static Bytecode GetJumpWithConstantOperand(Bytecode jump_smi8_operand);
-
+  void Output(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+              uint32_t operand2, uint32_t operand3);
+  void Output(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
+              uint32_t operand2);
+  void Output(Bytecode bytecode, uint32_t operand0, uint32_t operand1);
+  void Output(Bytecode bytecode, uint32_t operand0);
   void Output(Bytecode bytecode);
-  void OutputScaled(Bytecode bytecode, OperandScale operand_scale,
-                    uint32_t operand0, uint32_t operand1, uint32_t operand2,
-                    uint32_t operand3);
-  void OutputScaled(Bytecode bytecode, OperandScale operand_scale,
-                    uint32_t operand0, uint32_t operand1, uint32_t operand2);
-  void OutputScaled(Bytecode bytecode, OperandScale operand_scale,
-                    uint32_t operand0, uint32_t operand1);
-  void OutputScaled(Bytecode bytecode, OperandScale operand_scale,
-                    uint32_t operand0);
 
   BytecodeArrayBuilder& OutputJump(Bytecode jump_bytecode,
                                    BytecodeLabel* label);
-  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();
-
-  bool OperandIsValid(Bytecode bytecode, OperandScale operand_scale,
-                      int operand_index, uint32_t operand_value) const;
-  bool RegisterIsValid(Register reg, OperandSize reg_size) const;
+  bool RegisterIsValid(Register reg) const;
+  bool OperandsAreValid(Bytecode bytecode, int operand_count,
+                        uint32_t operand0 = 0, uint32_t operand1 = 0,
+                        uint32_t operand2 = 0, uint32_t operand3 = 0) const;
 
   // Attach latest source position to |node|.
   void AttachSourceInfo(BytecodeNode* node);
@@ -337,6 +334,8 @@
   // during bytecode generation.
   BytecodeArrayBuilder& Illegal();
 
+  void LeaveBasicBlock() { return_seen_in_block_ = false; }
+
   Isolate* isolate() const { return isolate_; }
   BytecodeArrayWriter* bytecode_array_writer() {
     return &bytecode_array_writer_;
@@ -351,18 +350,13 @@
   HandlerTableBuilder* handler_table_builder() {
     return &handler_table_builder_;
   }
-  SourcePositionTableBuilder* source_position_table_builder() {
-    return &source_position_table_builder_;
-  }
 
   Isolate* isolate_;
   Zone* zone_;
   bool bytecode_generated_;
   ConstantArrayBuilder constant_array_builder_;
   HandlerTableBuilder handler_table_builder_;
-  SourcePositionTableBuilder source_position_table_builder_;
-  bool exit_seen_in_block_;
-  int unbound_jumps_;
+  bool return_seen_in_block_;
   int parameter_count_;
   int local_register_count_;
   int context_register_count_;
@@ -375,47 +369,6 @@
   DISALLOW_COPY_AND_ASSIGN(BytecodeArrayBuilder);
 };
 
-
-// A label representing a branch target in a bytecode array. When a
-// label is bound, it represents a known position in the bytecode
-// array. For labels that are forward references there can be at most
-// one reference whilst it is unbound.
-class BytecodeLabel final {
- public:
-  BytecodeLabel() : bound_(false), offset_(kInvalidOffset) {}
-
-  bool is_bound() const { return bound_; }
-  size_t offset() const { return offset_; }
-
- private:
-  static const size_t kInvalidOffset = static_cast<size_t>(-1);
-
-  void bind_to(size_t offset) {
-    DCHECK(!bound_ && offset != kInvalidOffset);
-    offset_ = offset;
-    bound_ = true;
-  }
-
-  void set_referrer(size_t offset) {
-    DCHECK(!bound_ && offset != kInvalidOffset && offset_ == kInvalidOffset);
-    offset_ = offset;
-  }
-
-  bool is_forward_target() const {
-    return offset() != kInvalidOffset && !is_bound();
-  }
-
-  // There are three states for a label:
-  //                    bound_   offset_
-  //  UNSET             false    kInvalidOffset
-  //  FORWARD_TARGET    false    Offset of referring jump
-  //  BACKWARD_TARGET    true    Offset of label in bytecode array when bound
-  bool bound_;
-  size_t offset_;
-
-  friend class BytecodeArrayBuilder;
-};
-
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/src/interpreter/bytecode-array-iterator.cc b/src/interpreter/bytecode-array-iterator.cc
index 319d2a0..a4a8f79 100644
--- a/src/interpreter/bytecode-array-iterator.cc
+++ b/src/interpreter/bytecode-array-iterator.cc
@@ -4,6 +4,7 @@
 
 #include "src/interpreter/bytecode-array-iterator.h"
 
+#include "src/interpreter/interpreter-intrinsics.h"
 #include "src/objects-inl.h"
 
 namespace v8 {
@@ -140,11 +141,23 @@
   }
 }
 
-uint32_t BytecodeArrayIterator::GetRuntimeIdOperand(int operand_index) const {
+Runtime::FunctionId BytecodeArrayIterator::GetRuntimeIdOperand(
+    int operand_index) const {
   OperandType operand_type =
       Bytecodes::GetOperandType(current_bytecode(), operand_index);
   DCHECK(operand_type == OperandType::kRuntimeId);
-  return GetUnsignedOperand(operand_index, operand_type);
+  uint32_t raw_id = GetUnsignedOperand(operand_index, operand_type);
+  return static_cast<Runtime::FunctionId>(raw_id);
+}
+
+Runtime::FunctionId BytecodeArrayIterator::GetIntrinsicIdOperand(
+    int operand_index) const {
+  OperandType operand_type =
+      Bytecodes::GetOperandType(current_bytecode(), operand_index);
+  DCHECK(operand_type == OperandType::kIntrinsicId);
+  uint32_t raw_id = GetUnsignedOperand(operand_index, operand_type);
+  return IntrinsicsHelper::ToRuntimeId(
+      static_cast<IntrinsicsHelper::IntrinsicId>(raw_id));
 }
 
 Handle<Object> BytecodeArrayIterator::GetConstantForIndexOperand(
diff --git a/src/interpreter/bytecode-array-iterator.h b/src/interpreter/bytecode-array-iterator.h
index b372894..90001ef 100644
--- a/src/interpreter/bytecode-array-iterator.h
+++ b/src/interpreter/bytecode-array-iterator.h
@@ -8,6 +8,7 @@
 #include "src/handles.h"
 #include "src/interpreter/bytecodes.h"
 #include "src/objects.h"
+#include "src/runtime/runtime.h"
 
 namespace v8 {
 namespace internal {
@@ -34,7 +35,8 @@
   uint32_t GetRegisterCountOperand(int operand_index) const;
   Register GetRegisterOperand(int operand_index) const;
   int GetRegisterOperandRange(int operand_index) const;
-  uint32_t GetRuntimeIdOperand(int operand_index) const;
+  Runtime::FunctionId GetRuntimeIdOperand(int operand_index) const;
+  Runtime::FunctionId GetIntrinsicIdOperand(int operand_index) const;
   Handle<Object> GetConstantForIndexOperand(int operand_index) const;
 
   // Returns the absolute offset of the branch target at the current
diff --git a/src/interpreter/bytecode-array-writer.cc b/src/interpreter/bytecode-array-writer.cc
index 029688e..c476042 100644
--- a/src/interpreter/bytecode-array-writer.cc
+++ b/src/interpreter/bytecode-array-writer.cc
@@ -4,46 +4,165 @@
 
 #include "src/interpreter/bytecode-array-writer.h"
 
-#include <iomanip>
-#include "src/interpreter/source-position-table.h"
+#include "src/api.h"
+#include "src/interpreter/bytecode-label.h"
+#include "src/interpreter/constant-array-builder.h"
+#include "src/log.h"
 
 namespace v8 {
 namespace internal {
 namespace interpreter {
 
 BytecodeArrayWriter::BytecodeArrayWriter(
-    Zone* zone, SourcePositionTableBuilder* source_position_table_builder)
-    : bytecodes_(zone),
+    Isolate* isolate, Zone* zone, ConstantArrayBuilder* constant_array_builder)
+    : isolate_(isolate),
+      bytecodes_(zone),
       max_register_count_(0),
-      source_position_table_builder_(source_position_table_builder) {}
+      unbound_jumps_(0),
+      source_position_table_builder_(isolate, zone),
+      constant_array_builder_(constant_array_builder) {
+  LOG_CODE_EVENT(isolate_, CodeStartLinePosInfoRecordEvent(
+                               source_position_table_builder()));
+}
 
 // override
 BytecodeArrayWriter::~BytecodeArrayWriter() {}
 
 // override
-size_t BytecodeArrayWriter::FlushForOffset() { return bytecodes()->size(); }
+Handle<BytecodeArray> BytecodeArrayWriter::ToBytecodeArray(
+    int fixed_register_count, int parameter_count,
+    Handle<FixedArray> handler_table) {
+  DCHECK_EQ(0, unbound_jumps_);
+
+  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 = max_register_count() * kPointerSize;
+  int frame_size = std::max(frame_size_for_locals, frame_size_used);
+  Handle<FixedArray> constant_pool = constant_array_builder()->ToFixedArray();
+  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,
+      constant_pool);
+  bytecode_array->set_handler_table(*handler_table);
+  bytecode_array->set_source_position_table(*source_position_table);
+
+  void* line_info = source_position_table_builder()->DetachJITHandlerData();
+  LOG_CODE_EVENT(isolate_, CodeEndLinePosInfoRecordEvent(
+                               AbstractCode::cast(*bytecode_array), line_info));
+  return bytecode_array;
+}
 
 // override
 void BytecodeArrayWriter::Write(BytecodeNode* node) {
+  DCHECK(!Bytecodes::IsJump(node->bytecode()));
   UpdateSourcePositionTable(node);
   EmitBytecode(node);
 }
 
+// override
+void BytecodeArrayWriter::WriteJump(BytecodeNode* node, BytecodeLabel* label) {
+  DCHECK(Bytecodes::IsJump(node->bytecode()));
+  UpdateSourcePositionTable(node);
+  EmitJump(node, label);
+}
+
+// override
+void BytecodeArrayWriter::BindLabel(BytecodeLabel* label) {
+  size_t current_offset = bytecodes()->size();
+  if (label->is_forward_target()) {
+    // An earlier jump instruction refers to this label. Update it's location.
+    PatchJump(current_offset, label->offset());
+    // Now treat as if the label will only be back referred to.
+  }
+  label->bind_to(current_offset);
+}
+
+// override
+void BytecodeArrayWriter::BindLabel(const BytecodeLabel& target,
+                                    BytecodeLabel* label) {
+  DCHECK(!label->is_bound());
+  DCHECK(target.is_bound());
+  if (label->is_forward_target()) {
+    // An earlier jump instruction refers to this label. Update it's location.
+    PatchJump(target.offset(), label->offset());
+    // Now treat as if the label will only be back referred to.
+  }
+  label->bind_to(target.offset());
+}
+
 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());
+    source_position_table_builder()->AddPosition(bytecode_offset,
+                                                 source_info.source_position(),
+                                                 source_info.is_statement());
   }
 }
 
+namespace {
+
+OperandScale ScaleForScalableByteOperand(OperandSize operand_size) {
+  STATIC_ASSERT(static_cast<int>(OperandSize::kByte) ==
+                static_cast<int>(OperandScale::kSingle));
+  STATIC_ASSERT(static_cast<int>(OperandSize::kShort) ==
+                static_cast<int>(OperandScale::kDouble));
+  STATIC_ASSERT(static_cast<int>(OperandSize::kQuad) ==
+                static_cast<int>(OperandScale::kQuadruple));
+  return static_cast<OperandScale>(operand_size);
+}
+
+OperandScale OperandScaleForScalableSignedByte(uint32_t operand_value) {
+  int32_t signed_operand = static_cast<int32_t>(operand_value);
+  OperandSize bytes_required = Bytecodes::SizeForSignedOperand(signed_operand);
+  return ScaleForScalableByteOperand(bytes_required);
+}
+
+OperandScale OperandScaleForScalableUnsignedByte(uint32_t operand_value) {
+  OperandSize bytes_required = Bytecodes::SizeForUnsignedOperand(operand_value);
+  return ScaleForScalableByteOperand(bytes_required);
+}
+
+OperandScale GetOperandScale(const BytecodeNode* const node) {
+  const OperandTypeInfo* operand_type_infos =
+      Bytecodes::GetOperandTypeInfos(node->bytecode());
+  OperandScale operand_scale = OperandScale::kSingle;
+  for (int i = 0; i < node->operand_count(); ++i) {
+    switch (operand_type_infos[i]) {
+      case OperandTypeInfo::kScalableSignedByte: {
+        uint32_t operand = node->operand(i);
+        operand_scale =
+            std::max(operand_scale, OperandScaleForScalableSignedByte(operand));
+        break;
+      }
+      case OperandTypeInfo::kScalableUnsignedByte: {
+        uint32_t operand = node->operand(i);
+        operand_scale = std::max(operand_scale,
+                                 OperandScaleForScalableUnsignedByte(operand));
+        break;
+      }
+      case OperandTypeInfo::kFixedUnsignedByte:
+      case OperandTypeInfo::kFixedUnsignedShort:
+        break;
+      case OperandTypeInfo::kNone:
+        UNREACHABLE();
+        break;
+    }
+  }
+  return operand_scale;
+}
+
+}  // namespace
+
 void BytecodeArrayWriter::EmitBytecode(const BytecodeNode* const node) {
   DCHECK_NE(node->bytecode(), Bytecode::kIllegal);
 
-  OperandScale operand_scale = node->operand_scale();
+  OperandScale operand_scale = GetOperandScale(node);
   if (operand_scale != OperandScale::kSingle) {
     Bytecode prefix = Bytecodes::OperandScaleToPrefixBytecode(operand_scale);
     bytecodes()->push_back(Bytecodes::ToByte(prefix));
@@ -54,10 +173,12 @@
 
   int register_operand_bitmap = Bytecodes::GetRegisterOperandBitmap(bytecode);
   const uint32_t* const operands = node->operands();
+  const OperandSize* operand_sizes =
+      Bytecodes::GetOperandSizes(bytecode, operand_scale);
   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)) {
+    switch (operand_sizes[i]) {
       case OperandSize::kNone:
         UNREACHABLE();
         break;
@@ -93,11 +214,175 @@
   }
 }
 
-// override
-void BytecodeArrayWriter::FlushBasicBlock() {}
+// static
+Bytecode GetJumpWithConstantOperand(Bytecode jump_bytecode) {
+  switch (jump_bytecode) {
+    case Bytecode::kJump:
+      return Bytecode::kJumpConstant;
+    case Bytecode::kJumpIfTrue:
+      return Bytecode::kJumpIfTrueConstant;
+    case Bytecode::kJumpIfFalse:
+      return Bytecode::kJumpIfFalseConstant;
+    case Bytecode::kJumpIfToBooleanTrue:
+      return Bytecode::kJumpIfToBooleanTrueConstant;
+    case Bytecode::kJumpIfToBooleanFalse:
+      return Bytecode::kJumpIfToBooleanFalseConstant;
+    case Bytecode::kJumpIfNotHole:
+      return Bytecode::kJumpIfNotHoleConstant;
+    case Bytecode::kJumpIfNull:
+      return Bytecode::kJumpIfNullConstant;
+    case Bytecode::kJumpIfUndefined:
+      return Bytecode::kJumpIfUndefinedConstant;
+    default:
+      UNREACHABLE();
+      return Bytecode::kIllegal;
+  }
+}
 
-int BytecodeArrayWriter::GetMaximumFrameSizeUsed() {
-  return max_register_count_ * kPointerSize;
+void BytecodeArrayWriter::PatchJumpWith8BitOperand(size_t jump_location,
+                                                   int delta) {
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes()->at(jump_location));
+  DCHECK(Bytecodes::IsJumpImmediate(jump_bytecode));
+  size_t operand_location = jump_location + 1;
+  DCHECK_EQ(bytecodes()->at(operand_location), k8BitJumpPlaceholder);
+  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);
+    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_LE(entry, kMaxUInt32);
+    DCHECK_EQ(Bytecodes::SizeForUnsignedOperand(static_cast<uint32_t>(entry)),
+              OperandSize::kByte);
+    jump_bytecode = GetJumpWithConstantOperand(jump_bytecode);
+    bytecodes()->at(jump_location) = Bytecodes::ToByte(jump_bytecode);
+    bytecodes()->at(operand_location) = static_cast<uint8_t>(entry);
+  }
+}
+
+void BytecodeArrayWriter::PatchJumpWith16BitOperand(size_t jump_location,
+                                                    int delta) {
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes()->at(jump_location));
+  DCHECK(Bytecodes::IsJumpImmediate(jump_bytecode));
+  size_t operand_location = jump_location + 1;
+  uint8_t operand_bytes[2];
+  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);
+    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(bytecodes()->at(operand_location) == k8BitJumpPlaceholder &&
+         bytecodes()->at(operand_location + 1) == k8BitJumpPlaceholder);
+  bytecodes()->at(operand_location++) = operand_bytes[0];
+  bytecodes()->at(operand_location) = operand_bytes[1];
+}
+
+void BytecodeArrayWriter::PatchJumpWith32BitOperand(size_t jump_location,
+                                                    int delta) {
+  DCHECK(Bytecodes::IsJumpImmediate(
+      Bytecodes::FromByte(bytecodes()->at(jump_location))));
+  constant_array_builder()->DiscardReservedEntry(OperandSize::kQuad);
+  uint8_t operand_bytes[4];
+  WriteUnalignedUInt32(operand_bytes, static_cast<uint32_t>(delta));
+  size_t operand_location = jump_location + 1;
+  DCHECK(bytecodes()->at(operand_location) == k8BitJumpPlaceholder &&
+         bytecodes()->at(operand_location + 1) == k8BitJumpPlaceholder &&
+         bytecodes()->at(operand_location + 2) == k8BitJumpPlaceholder &&
+         bytecodes()->at(operand_location + 3) == k8BitJumpPlaceholder);
+  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 BytecodeArrayWriter::PatchJump(size_t jump_target, size_t jump_location) {
+  Bytecode jump_bytecode = Bytecodes::FromByte(bytecodes()->at(jump_location));
+  int delta = static_cast<int>(jump_target - jump_location);
+  int prefix_offset = 0;
+  OperandScale operand_scale = OperandScale::kSingle;
+  if (Bytecodes::IsPrefixScalingBytecode(jump_bytecode)) {
+    // If a prefix scaling bytecode is emitted the target offset is one
+    // less than the case of no prefix scaling bytecode.
+    delta -= 1;
+    prefix_offset = 1;
+    operand_scale = Bytecodes::PrefixBytecodeToOperandScale(jump_bytecode);
+    jump_bytecode =
+        Bytecodes::FromByte(bytecodes()->at(jump_location + prefix_offset));
+  }
+
+  DCHECK(Bytecodes::IsJump(jump_bytecode));
+  switch (operand_scale) {
+    case OperandScale::kSingle:
+      PatchJumpWith8BitOperand(jump_location, delta);
+      break;
+    case OperandScale::kDouble:
+      PatchJumpWith16BitOperand(jump_location + prefix_offset, delta);
+      break;
+    case OperandScale::kQuadruple:
+      PatchJumpWith32BitOperand(jump_location + prefix_offset, delta);
+      break;
+    default:
+      UNREACHABLE();
+  }
+  unbound_jumps_--;
+}
+
+void BytecodeArrayWriter::EmitJump(BytecodeNode* node, BytecodeLabel* label) {
+  DCHECK(Bytecodes::IsJump(node->bytecode()));
+  DCHECK_EQ(0, node->operand(0));
+
+  size_t current_offset = bytecodes()->size();
+
+  if (label->is_bound()) {
+    CHECK_GE(current_offset, label->offset());
+    CHECK_LE(current_offset, static_cast<size_t>(kMaxInt));
+    // Label has been bound already so this is a backwards jump.
+    size_t abs_delta = current_offset - label->offset();
+    int delta = -static_cast<int>(abs_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;
+    }
+    node->set_bytecode(node->bytecode(), delta);
+  } else {
+    // The label has not yet been bound so this is a forward reference
+    // that will be patched when the label is bound. We create a
+    // reservation in the constant pool so the jump can be patched
+    // 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.
+    unbound_jumps_++;
+    label->set_referrer(current_offset);
+    OperandSize reserved_operand_size =
+        constant_array_builder()->CreateReservedEntry();
+    switch (reserved_operand_size) {
+      case OperandSize::kNone:
+        UNREACHABLE();
+        break;
+      case OperandSize::kByte:
+        node->set_bytecode(node->bytecode(), k8BitJumpPlaceholder);
+        break;
+      case OperandSize::kShort:
+        node->set_bytecode(node->bytecode(), k16BitJumpPlaceholder);
+        break;
+      case OperandSize::kQuad:
+        node->set_bytecode(node->bytecode(), k32BitJumpPlaceholder);
+        break;
+    }
+  }
+  EmitBytecode(node);
 }
 
 }  // namespace interpreter
diff --git a/src/interpreter/bytecode-array-writer.h b/src/interpreter/bytecode-array-writer.h
index b1303c9..76d881e 100644
--- a/src/interpreter/bytecode-array-writer.h
+++ b/src/interpreter/bytecode-array-writer.h
@@ -6,40 +6,70 @@
 #define V8_INTERPRETER_BYTECODE_ARRAY_WRITER_H_
 
 #include "src/interpreter/bytecode-pipeline.h"
+#include "src/interpreter/source-position-table.h"
 
 namespace v8 {
 namespace internal {
 namespace interpreter {
 
+class BytecodeLabel;
 class SourcePositionTableBuilder;
+class ConstantArrayBuilder;
 
 // 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);
+  BytecodeArrayWriter(Isolate* isolate, Zone* zone,
+                      ConstantArrayBuilder* constant_array_builder);
   virtual ~BytecodeArrayWriter();
 
+  // BytecodePipelineStage interface.
   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();
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override;
+  void BindLabel(BytecodeLabel* label) override;
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override;
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handler_table) override;
 
  private:
+  // Constants that act as placeholders for jump operands to be
+  // patched. These have operand sizes that match the sizes of
+  // reserved constant pool entries.
+  const uint32_t k8BitJumpPlaceholder = 0x7f;
+  const uint32_t k16BitJumpPlaceholder =
+      k8BitJumpPlaceholder | (k8BitJumpPlaceholder << 8);
+  const uint32_t k32BitJumpPlaceholder =
+      k16BitJumpPlaceholder | (k16BitJumpPlaceholder << 16);
+
+  void PatchJump(size_t jump_target, size_t jump_location);
+  void PatchJumpWith8BitOperand(size_t jump_location, int delta);
+  void PatchJumpWith16BitOperand(size_t jump_location, int delta);
+  void PatchJumpWith32BitOperand(size_t jump_location, int delta);
+
   void EmitBytecode(const BytecodeNode* const node);
+  void EmitJump(BytecodeNode* node, BytecodeLabel* label);
   void UpdateSourcePositionTable(const BytecodeNode* const node);
 
+  Isolate* isolate() { return isolate_; }
+  ZoneVector<uint8_t>* bytecodes() { return &bytecodes_; }
+  SourcePositionTableBuilder* source_position_table_builder() {
+    return &source_position_table_builder_;
+  }
+  ConstantArrayBuilder* constant_array_builder() {
+    return constant_array_builder_;
+  }
+  int max_register_count() { return max_register_count_; }
+
+  Isolate* isolate_;
   ZoneVector<uint8_t> bytecodes_;
   int max_register_count_;
-  SourcePositionTableBuilder* source_position_table_builder_;
+  int unbound_jumps_;
+  SourcePositionTableBuilder source_position_table_builder_;
+  ConstantArrayBuilder* constant_array_builder_;
 
+  friend class BytecodeArrayWriterUnittest;
   DISALLOW_COPY_AND_ASSIGN(BytecodeArrayWriter);
 };
 
diff --git a/src/interpreter/bytecode-dead-code-optimizer.cc b/src/interpreter/bytecode-dead-code-optimizer.cc
new file mode 100644
index 0000000..964d2a8
--- /dev/null
+++ b/src/interpreter/bytecode-dead-code-optimizer.cc
@@ -0,0 +1,77 @@
+// 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/interpreter/bytecode-dead-code-optimizer.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+BytecodeDeadCodeOptimizer::BytecodeDeadCodeOptimizer(
+    BytecodePipelineStage* next_stage)
+    : next_stage_(next_stage), exit_seen_in_block_(false) {}
+
+// override
+Handle<BytecodeArray> BytecodeDeadCodeOptimizer::ToBytecodeArray(
+    int fixed_register_count, int parameter_count,
+    Handle<FixedArray> handler_table) {
+  return next_stage_->ToBytecodeArray(fixed_register_count, parameter_count,
+                                      handler_table);
+}
+
+// override
+void BytecodeDeadCodeOptimizer::Write(BytecodeNode* node) {
+  // Don't emit dead code.
+  if (exit_seen_in_block_) return;
+
+  switch (node->bytecode()) {
+    case Bytecode::kReturn:
+    case Bytecode::kThrow:
+    case Bytecode::kReThrow:
+      exit_seen_in_block_ = true;
+      break;
+    default:
+      break;
+  }
+
+  next_stage_->Write(node);
+}
+
+// override
+void BytecodeDeadCodeOptimizer::WriteJump(BytecodeNode* node,
+                                          BytecodeLabel* label) {
+  // Don't emit dead code.
+  // TODO(rmcilroy): For forward jumps we could mark the label as dead, thereby
+  // avoiding emitting dead code when we bind the label.
+  if (exit_seen_in_block_) return;
+
+  switch (node->bytecode()) {
+    case Bytecode::kJump:
+    case Bytecode::kJumpConstant:
+      exit_seen_in_block_ = true;
+      break;
+    default:
+      break;
+  }
+
+  next_stage_->WriteJump(node, label);
+}
+
+// override
+void BytecodeDeadCodeOptimizer::BindLabel(BytecodeLabel* label) {
+  next_stage_->BindLabel(label);
+  exit_seen_in_block_ = false;
+}
+
+// override
+void BytecodeDeadCodeOptimizer::BindLabel(const BytecodeLabel& target,
+                                          BytecodeLabel* label) {
+  next_stage_->BindLabel(target, label);
+  // exit_seen_in_block_ was reset when target was bound, so shouldn't be
+  // changed here.
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/src/interpreter/bytecode-dead-code-optimizer.h b/src/interpreter/bytecode-dead-code-optimizer.h
new file mode 100644
index 0000000..8d68e54
--- /dev/null
+++ b/src/interpreter/bytecode-dead-code-optimizer.h
@@ -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.
+
+#ifndef V8_INTERPRETER_BYTECODE_DEAD_CODE_OPTIMIZER_H_
+#define V8_INTERPRETER_BYTECODE_DEAD_CODE_OPTIMIZER_H_
+
+#include "src/interpreter/bytecode-pipeline.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+// An optimization stage for eliminating obviously dead code in bytecode
+// generation.
+class BytecodeDeadCodeOptimizer final : public BytecodePipelineStage,
+                                        public ZoneObject {
+ public:
+  explicit BytecodeDeadCodeOptimizer(BytecodePipelineStage* next_stage);
+
+  // BytecodePipelineStage interface.
+  void Write(BytecodeNode* node) override;
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override;
+  void BindLabel(BytecodeLabel* label) override;
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override;
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handler_table) override;
+
+ private:
+  BytecodePipelineStage* next_stage_;
+  bool exit_seen_in_block_;
+
+  DISALLOW_COPY_AND_ASSIGN(BytecodeDeadCodeOptimizer);
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_DEAD_CODE_OPTIMIZER_H_
diff --git a/src/interpreter/bytecode-generator.cc b/src/interpreter/bytecode-generator.cc
index 650234a..b7cfd49 100644
--- a/src/interpreter/bytecode-generator.cc
+++ b/src/interpreter/bytecode-generator.cc
@@ -17,7 +17,6 @@
 namespace internal {
 namespace interpreter {
 
-
 // Scoped class tracking context objects created by the visitor. Represents
 // mutations of the context chain within the function body, allowing pushing and
 // popping of the current {context_register} during visitation.
@@ -88,7 +87,6 @@
   bool should_pop_context_;
 };
 
-
 // Scoped class for tracking control statements entered by the
 // visitor. The pattern derives AstGraphBuilder::ControlScope.
 class BytecodeGenerator::ControlScope BASE_EMBEDDED {
@@ -124,7 +122,6 @@
   DISALLOW_COPY_AND_ASSIGN(ControlScope);
 };
 
-
 // Helper class for a try-finally control scope. It can record intercepted
 // control-flow commands that cause entry into a finally-block, and re-apply
 // them after again leaving that block. Special tokens are used to identify
@@ -203,7 +200,6 @@
   Register result_register_;
 };
 
-
 // Scoped class for dealing with control flow reaching the function level.
 class BytecodeGenerator::ControlScopeForTopLevel final
     : public BytecodeGenerator::ControlScope {
@@ -228,7 +224,6 @@
   }
 };
 
-
 // Scoped class for enabling break inside blocks and switch blocks.
 class BytecodeGenerator::ControlScopeForBreakable final
     : public BytecodeGenerator::ControlScope {
@@ -260,7 +255,6 @@
   BreakableControlFlowBuilder* control_builder_;
 };
 
-
 // Scoped class for enabling 'break' and 'continue' in iteration
 // constructs, e.g. do...while, while..., for...
 class BytecodeGenerator::ControlScopeForIteration final
@@ -295,7 +289,6 @@
   LoopBuilder* loop_builder_;
 };
 
-
 // Scoped class for enabling 'throw' in try-catch constructs.
 class BytecodeGenerator::ControlScopeForTryCatch final
     : public BytecodeGenerator::ControlScope {
@@ -324,7 +317,6 @@
   }
 };
 
-
 // Scoped class for enabling control flow through try-finally constructs.
 class BytecodeGenerator::ControlScopeForTryFinally final
     : public BytecodeGenerator::ControlScope {
@@ -360,7 +352,6 @@
   DeferredCommands* commands_;
 };
 
-
 void BytecodeGenerator::ControlScope::PerformCommand(Command command,
                                                      Statement* statement) {
   ControlScope* current = this;
@@ -383,7 +374,6 @@
   UNREACHABLE();
 }
 
-
 class BytecodeGenerator::RegisterAllocationScope {
  public:
   explicit RegisterAllocationScope(BytecodeGenerator* generator)
@@ -441,7 +431,6 @@
   DISALLOW_COPY_AND_ASSIGN(RegisterAllocationScope);
 };
 
-
 // Scoped base class for determining where the result of an expression
 // is stored.
 class BytecodeGenerator::ExpressionResultScope {
@@ -489,7 +478,6 @@
   DISALLOW_COPY_AND_ASSIGN(ExpressionResultScope);
 };
 
-
 // Scoped class used when the result of the current expression is not
 // expected to produce a result.
 class BytecodeGenerator::EffectResultScope final
@@ -504,7 +492,6 @@
   virtual void SetResultInRegister(Register reg) {}
 };
 
-
 // Scoped class used when the result of the current expression to be
 // evaluated should go into the interpreter's accumulator register.
 class BytecodeGenerator::AccumulatorResultScope final
@@ -521,7 +508,6 @@
   }
 };
 
-
 // Scoped class used when the result of the current expression to be
 // evaluated should go into an interpreter register.
 class BytecodeGenerator::RegisterResultScope final
@@ -585,7 +571,7 @@
 
   RegisterAllocationScope register_scope(this);
 
-  if (IsGeneratorFunction(info()->literal()->kind())) {
+  if (IsResumableFunction(info()->literal()->kind())) {
     generator_state_ = register_allocator()->NewRegister();
     VisitGeneratorPrologue();
   }
@@ -613,7 +599,6 @@
   return builder()->ToBytecodeArray();
 }
 
-
 void BytecodeGenerator::MakeBytecodeBody() {
   // Build the arguments object if it is used.
   VisitArgumentsObject(scope()->arguments());
@@ -656,13 +641,7 @@
         .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);
+  BuildAbort(BailoutReason::kInvalidJumpTableIndex);
 }
 
 void BytecodeGenerator::VisitIterationHeader(IterationStatement* stmt,
@@ -717,10 +696,13 @@
   BuildIndexedJump(generator_state_, 0, generator_resume_points_.size(),
                    generator_resume_points_);
 
-  builder()->Bind(&regular_call);
+  builder()
+      ->Bind(&regular_call)
+      .LoadLiteral(Smi::FromInt(JSGeneratorObject::kGeneratorExecuting))
+      .StoreAccumulatorInRegister(generator_state_);
   // 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).
+  // after which we will run into the generator object creation and other extra
+  // code inserted by the parser.
 }
 
 void BytecodeGenerator::VisitBlock(Block* stmt) {
@@ -734,7 +716,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitBlockDeclarationsAndStatements(Block* stmt) {
   BlockBuilder block_builder(builder());
   ControlScopeForBreakable execution_control(this, stmt, &block_builder);
@@ -745,7 +726,6 @@
   if (stmt->labels() != nullptr) block_builder.EndBlock();
 }
 
-
 void BytecodeGenerator::VisitVariableDeclaration(VariableDeclaration* decl) {
   Variable* variable = decl->proxy()->var();
   VariableMode mode = decl->mode();
@@ -780,34 +760,20 @@
       }
       break;
     case VariableLocation::LOOKUP: {
-      DCHECK(IsDeclaredVariableMode(mode));
+      DCHECK_EQ(VAR, mode);
+      DCHECK(!hole_init);
 
-      register_allocator()->PrepareForConsecutiveAllocations(3);
-      Register name = register_allocator()->NextConsecutiveRegister();
-      Register init_value = register_allocator()->NextConsecutiveRegister();
-      Register attributes = register_allocator()->NextConsecutiveRegister();
+      Register name = register_allocator()->NewRegister();
 
-      builder()->LoadLiteral(variable->name()).StoreAccumulatorInRegister(name);
-      if (hole_init) {
-        builder()->LoadTheHole().StoreAccumulatorInRegister(init_value);
-      } else {
-        // For variables, we must not use an initial value (such as 'undefined')
-        // because we may have a (legal) redeclaration and we must not destroy
-        // the current value.
-        builder()
-            ->LoadLiteral(Smi::FromInt(0))
-            .StoreAccumulatorInRegister(init_value);
-      }
       builder()
-          ->LoadLiteral(Smi::FromInt(variable->DeclarationPropertyAttributes()))
-          .StoreAccumulatorInRegister(attributes)
-          .CallRuntime(Runtime::kDeclareLookupSlot, name, 3);
+          ->LoadLiteral(variable->name())
+          .StoreAccumulatorInRegister(name)
+          .CallRuntime(Runtime::kDeclareEvalVar, name, 1);
       break;
     }
   }
 }
 
-
 void BytecodeGenerator::VisitFunctionDeclaration(FunctionDeclaration* decl) {
   Variable* variable = decl->proxy()->var();
   switch (variable->location()) {
@@ -838,33 +804,26 @@
       break;
     }
     case VariableLocation::LOOKUP: {
-      register_allocator()->PrepareForConsecutiveAllocations(3);
+      register_allocator()->PrepareForConsecutiveAllocations(2);
       Register name = register_allocator()->NextConsecutiveRegister();
       Register literal = register_allocator()->NextConsecutiveRegister();
-      Register attributes = register_allocator()->NextConsecutiveRegister();
       builder()->LoadLiteral(variable->name()).StoreAccumulatorInRegister(name);
 
       VisitForAccumulatorValue(decl->fun());
-      builder()
-          ->StoreAccumulatorInRegister(literal)
-          .LoadLiteral(Smi::FromInt(variable->DeclarationPropertyAttributes()))
-          .StoreAccumulatorInRegister(attributes)
-          .CallRuntime(Runtime::kDeclareLookupSlot, name, 3);
+      builder()->StoreAccumulatorInRegister(literal).CallRuntime(
+          Runtime::kDeclareEvalFunction, name, 2);
     }
   }
 }
 
-
 void BytecodeGenerator::VisitImportDeclaration(ImportDeclaration* decl) {
   UNIMPLEMENTED();
 }
 
-
 void BytecodeGenerator::VisitExportDeclaration(ExportDeclaration* decl) {
   UNIMPLEMENTED();
 }
 
-
 void BytecodeGenerator::VisitDeclarations(
     ZoneList<Declaration*>* declarations) {
   RegisterAllocationScope register_scope(this);
@@ -893,7 +852,6 @@
   globals()->clear();
 }
 
-
 void BytecodeGenerator::VisitStatements(ZoneList<Statement*>* statements) {
   for (int i = 0; i < statements->length(); i++) {
     // Allocate an outer register allocations scope for the statement.
@@ -904,17 +862,14 @@
   }
 }
 
-
 void BytecodeGenerator::VisitExpressionStatement(ExpressionStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   VisitForEffect(stmt->expression());
 }
 
-
 void BytecodeGenerator::VisitEmptyStatement(EmptyStatement* stmt) {
 }
 
-
 void BytecodeGenerator::VisitIfStatement(IfStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   BytecodeLabel else_label, end_label;
@@ -944,32 +899,27 @@
   }
 }
 
-
 void BytecodeGenerator::VisitSloppyBlockFunctionStatement(
     SloppyBlockFunctionStatement* stmt) {
   Visit(stmt->statement());
 }
 
-
 void BytecodeGenerator::VisitContinueStatement(ContinueStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   execution_control()->Continue(stmt->target());
 }
 
-
 void BytecodeGenerator::VisitBreakStatement(BreakStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   execution_control()->Break(stmt->target());
 }
 
-
 void BytecodeGenerator::VisitReturnStatement(ReturnStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   VisitForAccumulatorValue(stmt->expression());
   execution_control()->ReturnAccumulator();
 }
 
-
 void BytecodeGenerator::VisitWithStatement(WithStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   VisitForAccumulatorValue(stmt->expression());
@@ -978,7 +928,6 @@
   VisitInScope(stmt->statement(), stmt->scope());
 }
 
-
 void BytecodeGenerator::VisitSwitchStatement(SwitchStatement* stmt) {
   // We need this scope because we visit for register values. We have to
   // maintain a execution result scope where registers can be allocated.
@@ -1029,7 +978,6 @@
   switch_builder.SetBreakTarget(done_label);
 }
 
-
 void BytecodeGenerator::VisitCaseClause(CaseClause* clause) {
   // Handled entirely in VisitSwitchStatement.
   UNREACHABLE();
@@ -1078,7 +1026,6 @@
   loop_builder.EndLoop();
 }
 
-
 void BytecodeGenerator::VisitForStatement(ForStatement* stmt) {
   if (stmt->init() != nullptr) {
     Visit(stmt->init());
@@ -1105,7 +1052,6 @@
   loop_builder.EndLoop();
 }
 
-
 void BytecodeGenerator::VisitForInAssignment(Expression* expr,
                                              FeedbackVectorSlot slot) {
   DCHECK(expr->IsValidReferenceExpression());
@@ -1179,7 +1125,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitForInStatement(ForInStatement* stmt) {
   if (stmt->subject()->IsNullLiteral() ||
       stmt->subject()->IsUndefinedLiteral()) {
@@ -1231,7 +1176,6 @@
   builder()->Bind(&subject_undefined_label);
 }
 
-
 void BytecodeGenerator::VisitForOfStatement(ForOfStatement* stmt) {
   LoopBuilder loop_builder(builder());
   ControlScopeForIteration control_scope(this, stmt, &loop_builder);
@@ -1251,7 +1195,6 @@
   loop_builder.EndLoop();
 }
 
-
 void BytecodeGenerator::VisitTryCatchStatement(TryCatchStatement* stmt) {
   TryCatchBuilder try_control_builder(builder());
   Register no_reg;
@@ -1288,7 +1231,6 @@
   try_control_builder.EndCatch();
 }
 
-
 void BytecodeGenerator::VisitTryFinallyStatement(TryFinallyStatement* stmt) {
   TryFinallyBuilder try_control_builder(builder(), IsInsideTryCatch());
   Register no_reg;
@@ -1353,13 +1295,11 @@
   commands.ApplyDeferredCommands();
 }
 
-
 void BytecodeGenerator::VisitDebuggerStatement(DebuggerStatement* stmt) {
   builder()->SetStatementPosition(stmt);
   builder()->Debugger();
 }
 
-
 void BytecodeGenerator::VisitFunctionLiteral(FunctionLiteral* expr) {
   // Find or build a shared function info.
   Handle<SharedFunctionInfo> shared_info =
@@ -1372,7 +1312,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitClassLiteral(ClassLiteral* expr) {
   if (expr->scope()->ContextLocalCount() > 0) {
     VisitNewLocalBlockContext(expr->scope());
@@ -1530,13 +1469,11 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitDoExpression(DoExpression* expr) {
   VisitBlock(expr->block());
   VisitVariableProxy(expr->result());
 }
 
-
 void BytecodeGenerator::VisitConditional(Conditional* expr) {
   // TODO(rmcilroy): Spot easy cases where there code would not need to
   // emit the then block or the else block, e.g. condition is
@@ -1557,21 +1494,20 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitLiteral(Literal* expr) {
   if (!execution_result()->IsEffect()) {
     Handle<Object> value = expr->value();
     if (value->IsSmi()) {
       builder()->LoadLiteral(Smi::cast(*value));
-    } else if (value->IsUndefined()) {
+    } else if (value->IsUndefined(isolate())) {
       builder()->LoadUndefined();
-    } else if (value->IsTrue()) {
+    } else if (value->IsTrue(isolate())) {
       builder()->LoadTrue();
-    } else if (value->IsFalse()) {
+    } else if (value->IsFalse(isolate())) {
       builder()->LoadFalse();
-    } else if (value->IsNull()) {
+    } else if (value->IsNull(isolate())) {
       builder()->LoadNull();
-    } else if (value->IsTheHole()) {
+    } else if (value->IsTheHole(isolate())) {
       builder()->LoadTheHole();
     } else {
       builder()->LoadLiteral(value);
@@ -1580,7 +1516,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitRegExpLiteral(RegExpLiteral* expr) {
   // Materialize a regular expression literal.
   builder()->CreateRegExpLiteral(expr->pattern(), expr->literal_index(),
@@ -1588,7 +1523,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitObjectLiteral(ObjectLiteral* expr) {
   // Copy the literal boilerplate.
   int fast_clone_properties_count = 0;
@@ -1792,7 +1726,6 @@
   execution_result()->SetResultInRegister(literal);
 }
 
-
 void BytecodeGenerator::VisitArrayLiteral(ArrayLiteral* expr) {
   // Deep-copy the literal boilerplate.
   builder()->CreateArrayLiteral(expr->constant_elements(),
@@ -1832,7 +1765,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitVariableProxy(VariableProxy* proxy) {
   builder()->SetExpressionPosition(proxy);
   VisitVariableLoad(proxy->var(), proxy->VariableFeedbackSlot());
@@ -1868,8 +1800,7 @@
     }
     case VariableLocation::GLOBAL:
     case VariableLocation::UNALLOCATED: {
-      builder()->LoadGlobal(variable->name(), feedback_index(slot),
-                            typeof_mode);
+      builder()->LoadGlobal(feedback_index(slot), typeof_mode);
       execution_result()->SetResultInAccumulator();
       break;
     }
@@ -1958,6 +1889,15 @@
   builder()->CallRuntime(function_id, receiver, 4);
 }
 
+void BytecodeGenerator::BuildAbort(BailoutReason bailout_reason) {
+  RegisterAllocationScope register_scope(this);
+  Register reason = register_allocator()->NewRegister();
+  builder()
+      ->LoadLiteral(Smi::FromInt(static_cast<int>(bailout_reason)))
+      .StoreAccumulatorInRegister(reason)
+      .CallRuntime(Runtime::kAbort, reason, 1);
+}
+
 void BytecodeGenerator::BuildThrowReferenceError(Handle<String> name) {
   RegisterAllocationScope register_scope(this);
   Register name_reg = register_allocator()->NewRegister();
@@ -2125,7 +2065,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitAssignment(Assignment* expr) {
   DCHECK(expr->target()->IsValidReferenceExpressionOrThis());
   Register object, key, home_object, value;
@@ -2297,12 +2236,12 @@
 
     Register input = register_allocator()->NewRegister();
     builder()
-        ->CallRuntime(Runtime::kGeneratorGetInput, generator, 1)
+        ->CallRuntime(Runtime::kInlineGeneratorGetInputOrDebugPos, generator, 1)
         .StoreAccumulatorInRegister(input);
 
     Register resume_mode = register_allocator()->NewRegister();
     builder()
-        ->CallRuntime(Runtime::kGeneratorGetResumeMode, generator, 1)
+        ->CallRuntime(Runtime::kInlineGeneratorGetResumeMode, generator, 1)
         .StoreAccumulatorInRegister(resume_mode);
 
     // Now dispatch on resume mode.
@@ -2329,14 +2268,13 @@
           ->MoveRegister(input, value)
           .LoadTrue()
           .StoreAccumulatorInRegister(done)
-          .CallRuntime(Runtime::kCreateIterResultObject, value, 2);
+          .CallRuntime(Runtime::kInlineCreateIterResultObject, value, 2);
       execution_control()->ReturnAccumulator();
     }
 
     builder()->Bind(&resume_with_throw);
-    builder()
-        ->LoadAccumulatorWithRegister(input)
-        .Throw();
+    builder()->SetExpressionPosition(expr);
+    builder()->LoadAccumulatorWithRegister(input).Throw();
 
     builder()->Bind(&resume_with_next);
     builder()->LoadAccumulatorWithRegister(input);
@@ -2355,7 +2293,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitPropertyLoad(Register obj, Property* expr) {
   LhsKind property_kind = Property::GetAssignType(expr);
   FeedbackVectorSlot slot = expr->PropertyFeedbackSlot();
@@ -2649,7 +2586,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitCallRuntime(CallRuntime* expr) {
   ZoneList<Expression*>* args = expr->arguments();
   if (expr->is_jsruntime()) {
@@ -2670,14 +2606,12 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitVoid(UnaryOperation* expr) {
   VisitForEffect(expr->expression());
   builder()->LoadUndefined();
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitTypeOf(UnaryOperation* expr) {
   if (expr->expression()->IsVariableProxy()) {
     // Typeof does not throw a reference error on global variables, hence we
@@ -2692,14 +2626,12 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitNot(UnaryOperation* expr) {
   VisitForAccumulatorValue(expr->expression());
   builder()->LogicalNot();
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitUnaryOperation(UnaryOperation* expr) {
   switch (expr->op()) {
     case Token::Value::NOT:
@@ -2725,7 +2657,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitDelete(UnaryOperation* expr) {
   if (expr->expression()->IsProperty()) {
     // Delete of an object property is allowed both in sloppy
@@ -2787,7 +2718,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitCountOperation(CountOperation* expr) {
   DCHECK(expr->expression()->IsValidReferenceExpressionOrThis());
 
@@ -2909,7 +2839,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitBinaryOperation(BinaryOperation* binop) {
   switch (binop->op()) {
     case Token::COMMA:
@@ -2927,7 +2856,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitCompareOperation(CompareOperation* expr) {
   Register lhs = VisitForRegisterValue(expr->left());
   VisitForAccumulatorValue(expr->right());
@@ -2936,7 +2864,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitArithmeticExpression(BinaryOperation* expr) {
   Register lhs = VisitForRegisterValue(expr->left());
   VisitForAccumulatorValue(expr->right());
@@ -2944,39 +2871,32 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitSpread(Spread* expr) { UNREACHABLE(); }
 
-
 void BytecodeGenerator::VisitEmptyParentheses(EmptyParentheses* expr) {
   UNREACHABLE();
 }
 
-
 void BytecodeGenerator::VisitThisFunction(ThisFunction* expr) {
   execution_result()->SetResultInRegister(Register::function_closure());
 }
 
-
 void BytecodeGenerator::VisitSuperCallReference(SuperCallReference* expr) {
   // Handled by VisitCall().
   UNREACHABLE();
 }
 
-
 void BytecodeGenerator::VisitSuperPropertyReference(
     SuperPropertyReference* expr) {
   builder()->CallRuntime(Runtime::kThrowUnsupportedSuperError, Register(0), 0);
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitCommaExpression(BinaryOperation* binop) {
   VisitForEffect(binop->left());
   Visit(binop->right());
 }
 
-
 void BytecodeGenerator::VisitLogicalOrExpression(BinaryOperation* binop) {
   Expression* left = binop->left();
   Expression* right = binop->right();
@@ -2995,7 +2915,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitLogicalAndExpression(BinaryOperation* binop) {
   Expression* left = binop->left();
   Expression* right = binop->right();
@@ -3014,12 +2933,10 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitRewritableExpression(RewritableExpression* expr) {
   Visit(expr->expression());
 }
 
-
 void BytecodeGenerator::VisitNewLocalFunctionContext() {
   AccumulatorResultScope accumulator_execution_result(this);
   Scope* scope = this->scope();
@@ -3043,7 +2960,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitBuildLocalActivationContext() {
   Scope* scope = this->scope();
 
@@ -3072,7 +2988,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitNewLocalBlockContext(Scope* scope) {
   AccumulatorResultScope accumulator_execution_result(this);
   DCHECK(scope->is_block_scope());
@@ -3126,7 +3041,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 void BytecodeGenerator::VisitObjectLiteralAccessor(
     Register home_object, ObjectLiteralProperty* property, Register value_out) {
   // TODO(rmcilroy): Replace value_out with VisitForRegister();
@@ -3152,7 +3066,6 @@
   }
 }
 
-
 void BytecodeGenerator::VisitArgumentsObject(Variable* variable) {
   if (variable == nullptr) return;
 
@@ -3187,7 +3100,6 @@
   VisitVariableAssignment(variable, Token::INIT, FeedbackVectorSlot::Invalid());
 }
 
-
 void BytecodeGenerator::VisitNewTargetVariable(Variable* variable) {
   if (variable == nullptr) return;
 
@@ -3196,7 +3108,6 @@
   VisitVariableAssignment(variable, Token::INIT, FeedbackVectorSlot::Invalid());
 }
 
-
 void BytecodeGenerator::VisitFunctionClosureForContext() {
   AccumulatorResultScope accumulator_execution_result(this);
   Scope* closure_scope = execution_context()->scope()->ClosureScope();
@@ -3223,7 +3134,6 @@
   execution_result()->SetResultInAccumulator();
 }
 
-
 // Visits the expression |expr| and places the result in the accumulator.
 void BytecodeGenerator::VisitForAccumulatorValue(Expression* expr) {
   AccumulatorResultScope accumulator_scope(this);
@@ -3244,7 +3154,6 @@
   Visit(expr);
 }
 
-
 // Visits the expression |expr| and returns the register containing
 // the expression result.
 Register BytecodeGenerator::VisitForRegisterValue(Expression* expr) {
@@ -3268,14 +3177,12 @@
   Visit(stmt);
 }
 
-
 LanguageMode BytecodeGenerator::language_mode() const {
   return execution_context()->scope()->language_mode();
 }
 
-
 int BytecodeGenerator::feedback_index(FeedbackVectorSlot slot) const {
-  return info()->shared_info()->feedback_vector()->GetIndex(slot);
+  return TypeFeedbackVector::GetIndex(slot);
 }
 
 }  // namespace interpreter
diff --git a/src/interpreter/bytecode-generator.h b/src/interpreter/bytecode-generator.h
index 0dcc9be..3adca6b 100644
--- a/src/interpreter/bytecode-generator.h
+++ b/src/interpreter/bytecode-generator.h
@@ -7,6 +7,7 @@
 
 #include "src/ast/ast.h"
 #include "src/interpreter/bytecode-array-builder.h"
+#include "src/interpreter/bytecode-label.h"
 #include "src/interpreter/bytecodes.h"
 
 namespace v8 {
@@ -105,6 +106,7 @@
   void BuildKeyedSuperPropertyLoad(Register receiver, Register home_object,
                                    Register key);
 
+  void BuildAbort(BailoutReason bailout_reason);
   void BuildThrowIfHole(Handle<String> name);
   void BuildThrowIfNotHole(Handle<String> name);
   void BuildThrowReassignConstant(Handle<String> name);
diff --git a/src/interpreter/bytecode-label.h b/src/interpreter/bytecode-label.h
new file mode 100644
index 0000000..2f89c48
--- /dev/null
+++ b/src/interpreter/bytecode-label.h
@@ -0,0 +1,56 @@
+// 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_LABEL_H_
+#define V8_INTERPRETER_BYTECODE_LABEL_H_
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+// A label representing a branch target in a bytecode array. When a
+// label is bound, it represents a known position in the bytecode
+// array. For labels that are forward references there can be at most
+// one reference whilst it is unbound.
+class BytecodeLabel final {
+ public:
+  BytecodeLabel() : bound_(false), offset_(kInvalidOffset) {}
+
+  bool is_bound() const { return bound_; }
+  size_t offset() const { return offset_; }
+
+ private:
+  static const size_t kInvalidOffset = static_cast<size_t>(-1);
+
+  void bind_to(size_t offset) {
+    DCHECK(!bound_ && offset != kInvalidOffset);
+    offset_ = offset;
+    bound_ = true;
+  }
+
+  void set_referrer(size_t offset) {
+    DCHECK(!bound_ && offset != kInvalidOffset && offset_ == kInvalidOffset);
+    offset_ = offset;
+  }
+
+  bool is_forward_target() const {
+    return offset() != kInvalidOffset && !is_bound();
+  }
+
+  // There are three states for a label:
+  //                    bound_   offset_
+  //  UNSET             false    kInvalidOffset
+  //  FORWARD_TARGET    false    Offset of referring jump
+  //  BACKWARD_TARGET    true    Offset of label in bytecode array when bound
+  bool bound_;
+  size_t offset_;
+
+  friend class BytecodeArrayWriter;
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_LABEL_H_
diff --git a/src/interpreter/bytecode-peephole-optimizer.cc b/src/interpreter/bytecode-peephole-optimizer.cc
index 803fc23..1108d83 100644
--- a/src/interpreter/bytecode-peephole-optimizer.cc
+++ b/src/interpreter/bytecode-peephole-optimizer.cc
@@ -15,12 +15,57 @@
 BytecodePeepholeOptimizer::BytecodePeepholeOptimizer(
     ConstantArrayBuilder* constant_array_builder,
     BytecodePipelineStage* next_stage)
-    : constant_array_builder_(constant_array_builder),
-      next_stage_(next_stage),
-      last_is_discardable_(false) {
+    : constant_array_builder_(constant_array_builder), next_stage_(next_stage) {
   InvalidateLast();
 }
 
+// override
+Handle<BytecodeArray> BytecodePeepholeOptimizer::ToBytecodeArray(
+    int fixed_register_count, int parameter_count,
+    Handle<FixedArray> handler_table) {
+  Flush();
+  return next_stage_->ToBytecodeArray(fixed_register_count, parameter_count,
+                                      handler_table);
+}
+
+// override
+void BytecodePeepholeOptimizer::Write(BytecodeNode* node) {
+  node = OptimizeAndEmitLast(node);
+  if (node != nullptr) {
+    SetLast(node);
+  }
+}
+
+// override
+void BytecodePeepholeOptimizer::WriteJump(BytecodeNode* node,
+                                          BytecodeLabel* label) {
+  node = OptimizeAndEmitLast(node);
+  next_stage_->WriteJump(node, label);
+}
+
+// override
+void BytecodePeepholeOptimizer::BindLabel(BytecodeLabel* label) {
+  Flush();
+  next_stage_->BindLabel(label);
+}
+
+// override
+void BytecodePeepholeOptimizer::BindLabel(const BytecodeLabel& target,
+                                          BytecodeLabel* label) {
+  // There is no need to flush here, it will have been flushed when |target|
+  // was bound.
+  next_stage_->BindLabel(target, label);
+}
+
+void BytecodePeepholeOptimizer::Flush() {
+  // TODO(oth/rmcilroy): We could check CanElideLast() here to potentially
+  // eliminate last rather than writing it.
+  if (LastIsValid()) {
+    next_stage_->Write(&last_);
+    InvalidateLast();
+  }
+}
+
 void BytecodePeepholeOptimizer::InvalidateLast() {
   last_.set_bytecode(Bytecode::kIllegal);
 }
@@ -31,51 +76,6 @@
 
 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(
@@ -94,22 +94,18 @@
            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);
+void BytecodePeepholeOptimizer::TryToRemoveLastExpressionPosition(
+    const BytecodeNode* const current) {
+  if (current->source_info().is_valid() &&
+      last_.source_info().is_expression() &&
+      Bytecodes::IsWithoutExternalSideEffects(last_.bytecode())) {
+    // The last bytecode has been marked as expression. It has no
+    // external effects so can't throw and the current bytecode is a
+    // source position. Remove the expression position on the last
+    // bytecode to open up potential peephole optimizations and to
+    // save the memory and perf cost of storing the unneeded
+    // expression position.
+    last_.source_info().set_invalid();
   }
 }
 
@@ -134,15 +130,135 @@
   }
 }
 
+bool BytecodePeepholeOptimizer::CanElideLastBasedOnSourcePosition(
+    const BytecodeNode* const current) const {
+  //
+  // The rules for allowing the elision of the last bytecode based
+  // on source position are:
+  //
+  //                     C U R R E N T
+  //              +--------+--------+--------+
+  //              |  None  |  Expr  |  Stmt  |
+  //  L  +--------+--------+--------+--------+
+  //     |  None  |  YES   |  YES   |  YES   |
+  //  A  +--------+--------+--------+--------+
+  //     |  Expr  |  YES   | MAYBE  |  MAYBE |
+  //  S  +--------+--------+--------+--------+
+  //     |  Stmt  |  YES   |   NO   |   NO   |
+  //  T  +--------+--------+--------+--------+
+  //
+  // The goal is not lose any statement positions and not lose useful
+  // expression positions. Whenever the last bytecode is elided it's
+  // source position information is applied to the current node
+  // updating it if necessary.
+  //
+  // The last bytecode can be elided for the MAYBE cases if the last
+  // bytecode is known not to throw. If it throws, the system would
+  // not have correct stack trace information. The appropriate check
+  // for this would be Bytecodes::IsWithoutExternalSideEffects(),
+  // which is checked in
+  // BytecodePeepholeOptimizer::TransformLastAndCurrentBytecodes() to
+  // keep the check here simple.
+  //
+  // In rare cases, bytecode generation produces consecutive bytecodes
+  // with the same expression positions. In principle, the latter of
+  // these can be elided, but would make this function more expensive.
+  //
+  return (!last_.source_info().is_valid() ||
+          !current->source_info().is_valid());
+}
+
+namespace {
+
+void TransformLdaStarToLdrLdar(Bytecode new_bytecode, BytecodeNode* const last,
+                               BytecodeNode* const current) {
+  DCHECK_EQ(current->bytecode(), Bytecode::kStar);
+
+  //
+  // An example transformation here would be:
+  //
+  //   LdaGlobal i0, i1  ____\  LdrGlobal i0, i1, R
+  //   Star R            ====/  Ldar R
+  //
+  // which loads a global value into both a register and the
+  // accumulator. However, in the second form the Ldar can often be
+  // peephole optimized away unlike the Star in the first form.
+  //
+  last->Transform(new_bytecode, current->operand(0));
+  current->set_bytecode(Bytecode::kLdar, current->operand(0));
+}
+
+}  // namespace
+
+bool BytecodePeepholeOptimizer::TransformLastAndCurrentBytecodes(
+    BytecodeNode* const current) {
+  if (current->bytecode() == Bytecode::kStar &&
+      !current->source_info().is_statement()) {
+    // Note: If the Star is tagged with a statement position, we can't
+    // perform this transform as the store to the register will
+    // have the wrong ordering for stepping in the debugger.
+    switch (last_.bytecode()) {
+      case Bytecode::kLdaNamedProperty:
+        TransformLdaStarToLdrLdar(Bytecode::kLdrNamedProperty, &last_, current);
+        return true;
+      case Bytecode::kLdaKeyedProperty:
+        TransformLdaStarToLdrLdar(Bytecode::kLdrKeyedProperty, &last_, current);
+        return true;
+      case Bytecode::kLdaGlobal:
+        TransformLdaStarToLdrLdar(Bytecode::kLdrGlobal, &last_, current);
+        return true;
+      case Bytecode::kLdaContextSlot:
+        TransformLdaStarToLdrLdar(Bytecode::kLdrContextSlot, &last_, current);
+        return true;
+      case Bytecode::kLdaUndefined:
+        TransformLdaStarToLdrLdar(Bytecode::kLdrUndefined, &last_, current);
+        return true;
+      default:
+        break;
+    }
+  }
+  return false;
+}
+
+bool BytecodePeepholeOptimizer::RemoveToBooleanFromJump(
+    BytecodeNode* const current) {
+  bool can_remove = Bytecodes::IsJumpIfToBoolean(current->bytecode()) &&
+                    Bytecodes::WritesBooleanToAccumulator(last_.bytecode());
+  if (can_remove) {
+    // Conditional jumps with boolean conditions are emiitted 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));
+  }
+  return can_remove;
+}
+
+bool BytecodePeepholeOptimizer::RemoveToBooleanFromLogicalNot(
+    BytecodeNode* const current) {
+  bool can_remove = current->bytecode() == Bytecode::kToBooleanLogicalNot &&
+                    Bytecodes::WritesBooleanToAccumulator(last_.bytecode());
+  if (can_remove) {
+    // 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);
+  }
+  return can_remove;
+}
+
+bool BytecodePeepholeOptimizer::TransformCurrentBytecode(
+    BytecodeNode* const current) {
+  return RemoveToBooleanFromJump(current) ||
+         RemoveToBooleanFromLogicalNot(current);
+}
+
 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.
+    // Nop are placeholders for holding source position information.
     return true;
   } else if (Bytecodes::IsAccumulatorLoadWithoutEffects(current->bytecode()) &&
              Bytecodes::IsAccumulatorLoadWithoutEffects(last_.bytecode())) {
@@ -150,25 +266,58 @@
     // consecutive accumulator loads (that don't have side effects) then only
     // the final load is potentially visible.
     return true;
+  } else if (Bytecodes::GetAccumulatorUse(current->bytecode()) ==
+                 AccumulatorUse::kWrite &&
+             Bytecodes::IsAccumulatorLoadWithoutEffects(last_.bytecode())) {
+    // The current instruction clobbers the accumulator without reading it. The
+    // load in the last instruction can be elided as it has no effect.
+    return true;
   } else {
     return false;
   }
 }
 
 BytecodeNode* BytecodePeepholeOptimizer::Optimize(BytecodeNode* current) {
-  UpdateCurrentBytecode(current);
+  TryToRemoveLastExpressionPosition(current);
+
+  if (TransformCurrentBytecode(current) ||
+      TransformLastAndCurrentBytecodes(current)) {
+    return current;
+  }
 
   if (CanElideCurrent(current)) {
     if (current->source_info().is_valid()) {
+      // Preserve the source information by replacing the current bytecode
+      // with a no op bytecode.
       current->set_bytecode(Bytecode::kNop);
     } else {
       current = nullptr;
     }
-  } else if (CanElideLast(current)) {
+    return current;
+  }
+
+  if (CanElideLast(current) && CanElideLastBasedOnSourcePosition(current)) {
     if (last_.source_info().is_valid()) {
-      current->source_info().Update(last_.source_info());
+      // Current can not be valid per CanElideLastBasedOnSourcePosition().
+      current->source_info().Clone(last_.source_info());
     }
     InvalidateLast();
+    return current;
+  }
+
+  return current;
+}
+
+BytecodeNode* BytecodePeepholeOptimizer::OptimizeAndEmitLast(
+    BytecodeNode* current) {
+  // Attempt optimization if there is an earlier node to optimize with.
+  if (LastIsValid()) {
+    current = Optimize(current);
+    // Only output the last node if it wasn't invalidated by the optimization.
+    if (LastIsValid()) {
+      next_stage_->Write(&last_);
+      InvalidateLast();
+    }
   }
   return current;
 }
diff --git a/src/interpreter/bytecode-peephole-optimizer.h b/src/interpreter/bytecode-peephole-optimizer.h
index 1981395..e6ada2a 100644
--- a/src/interpreter/bytecode-peephole-optimizer.h
+++ b/src/interpreter/bytecode-peephole-optimizer.h
@@ -22,16 +22,31 @@
   BytecodePeepholeOptimizer(ConstantArrayBuilder* constant_array_builder,
                             BytecodePipelineStage* next_stage);
 
+  // BytecodePipelineStage interface.
   void Write(BytecodeNode* node) override;
-  size_t FlushForOffset() override;
-  void FlushBasicBlock() override;
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override;
+  void BindLabel(BytecodeLabel* label) override;
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override;
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handler_table) override;
 
  private:
+  BytecodeNode* OptimizeAndEmitLast(BytecodeNode* current);
   BytecodeNode* Optimize(BytecodeNode* current);
+  void Flush();
 
-  void UpdateCurrentBytecode(BytecodeNode* const current);
+  void TryToRemoveLastExpressionPosition(const BytecodeNode* const current);
+  bool TransformCurrentBytecode(BytecodeNode* const current);
+  bool TransformLastAndCurrentBytecodes(BytecodeNode* const current);
   bool CanElideCurrent(const BytecodeNode* const current) const;
   bool CanElideLast(const BytecodeNode* const current) const;
+  bool CanElideLastBasedOnSourcePosition(
+      const BytecodeNode* const current) const;
+
+  // Simple substitution methods.
+  bool RemoveToBooleanFromJump(BytecodeNode* const current);
+  bool RemoveToBooleanFromLogicalNot(BytecodeNode* const current);
 
   void InvalidateLast();
   bool LastIsValid() const;
@@ -45,7 +60,6 @@
   ConstantArrayBuilder* constant_array_builder_;
   BytecodePipelineStage* next_stage_;
   BytecodeNode last_;
-  bool last_is_discardable_;
 
   DISALLOW_COPY_AND_ASSIGN(BytecodePeepholeOptimizer);
 };
diff --git a/src/interpreter/bytecode-pipeline.cc b/src/interpreter/bytecode-pipeline.cc
index 7bfb815..58ade92 100644
--- a/src/interpreter/bytecode-pipeline.cc
+++ b/src/interpreter/bytecode-pipeline.cc
@@ -11,104 +11,74 @@
 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) {
+BytecodeNode::BytecodeNode(Bytecode bytecode, uint32_t operand0) {
   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) {
+                           uint32_t operand1) {
   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) {
+                           uint32_t operand1, uint32_t operand2) {
   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) {
+                           uint32_t operand3) {
   DCHECK_EQ(Bytecodes::NumberOfOperands(bytecode), 4);
   bytecode_ = bytecode;
   operands_[0] = operand0;
   operands_[1] = operand1;
   operands_[2] = operand2;
   operands_[3] = operand3;
-  operand_scale_ = operand_scale;
+}
+
+BytecodeNode::BytecodeNode(const BytecodeNode& other) {
+  memcpy(this, &other, sizeof(other));
+}
+
+BytecodeNode& BytecodeNode::operator=(const BytecodeNode& other) {
+  memcpy(this, &other, sizeof(other));
+  return *this;
 }
 
 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) {
+void BytecodeNode::set_bytecode(Bytecode bytecode, uint32_t operand0) {
   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::Clone(const BytecodeNode* const other) {
+  memcpy(this, other, sizeof(*other));
 }
 
 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];
@@ -116,7 +86,7 @@
   os.copyfmt(saved_state);
 
   if (source_info_.is_valid()) {
-    os << source_info_;
+    os << ' ' << source_info_;
   }
   os << '\n';
 #else
@@ -124,8 +94,21 @@
 #endif  // DEBUG
 }
 
-void BytecodeNode::Clone(const BytecodeNode* const other) {
-  memcpy(this, other, sizeof(*other));
+void BytecodeNode::Transform(Bytecode new_bytecode, uint32_t extra_operand) {
+  DCHECK_EQ(Bytecodes::NumberOfOperands(new_bytecode),
+            Bytecodes::NumberOfOperands(bytecode()) + 1);
+  DCHECK(Bytecodes::NumberOfOperands(bytecode()) < 1 ||
+         Bytecodes::GetOperandType(new_bytecode, 0) ==
+             Bytecodes::GetOperandType(bytecode(), 0));
+  DCHECK(Bytecodes::NumberOfOperands(bytecode()) < 2 ||
+         Bytecodes::GetOperandType(new_bytecode, 1) ==
+             Bytecodes::GetOperandType(bytecode(), 1));
+  DCHECK(Bytecodes::NumberOfOperands(bytecode()) < 3 ||
+         Bytecodes::GetOperandType(new_bytecode, 2) ==
+             Bytecodes::GetOperandType(bytecode(), 2));
+  DCHECK(Bytecodes::NumberOfOperands(bytecode()) < 4);
+  operands_[operand_count()] = extra_operand;
+  bytecode_ = new_bytecode;
 }
 
 bool BytecodeNode::operator==(const BytecodeNode& other) const {
@@ -144,11 +127,6 @@
   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';
@@ -157,6 +135,11 @@
   return os;
 }
 
+std::ostream& operator<<(std::ostream& os, const BytecodeNode& node) {
+  node.Print(os);
+  return os;
+}
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/src/interpreter/bytecode-pipeline.h b/src/interpreter/bytecode-pipeline.h
index ade712c..e2beff2 100644
--- a/src/interpreter/bytecode-pipeline.h
+++ b/src/interpreter/bytecode-pipeline.h
@@ -13,6 +13,7 @@
 namespace internal {
 namespace interpreter {
 
+class BytecodeLabel;
 class BytecodeNode;
 class BytecodeSourceInfo;
 
@@ -26,12 +27,26 @@
   // 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;
+  // Write jump bytecode node |node| which jumps to |label| into pipeline.
+  // The node and label are only valid for the duration of the call. This call
+  // implicitly ends the current basic block so should always write to the next
+  // stage.
+  virtual void WriteJump(BytecodeNode* node, BytecodeLabel* label) = 0;
 
-  // Flush state to terminate basic block.
-  virtual void FlushBasicBlock() = 0;
+  // Binds |label| to the current bytecode location. This call implicitly
+  // ends the current basic block and so any deferred bytecodes should be
+  // written to the next stage.
+  virtual void BindLabel(BytecodeLabel* label) = 0;
+
+  // Binds |label| to the location of |target|. This call implicitly
+  // ends the current basic block and so any deferred bytecodes should be
+  // written to the next stage.
+  virtual void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) = 0;
+
+  // Flush the pipeline and generate a bytecode array.
+  virtual Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handler_table) = 0;
 };
 
 // Source code position information.
@@ -39,35 +54,84 @@
  public:
   static const int kUninitializedPosition = -1;
 
-  BytecodeSourceInfo(int position = kUninitializedPosition,
-                     bool is_statement = false)
-      : source_position_(position), is_statement_(is_statement) {}
+  BytecodeSourceInfo()
+      : position_type_(PositionType::kNone),
+        source_position_(kUninitializedPosition) {}
 
-  // Combine later source info with current.
-  void Update(const BytecodeSourceInfo& entry);
+  BytecodeSourceInfo(int source_position, bool is_statement)
+      : position_type_(is_statement ? PositionType::kStatement
+                                    : PositionType::kExpression),
+        source_position_(source_position) {
+    DCHECK_GE(source_position, 0);
+  }
+
+  // Makes instance into a statement position.
+  void MakeStatementPosition(int source_position) {
+    // Statement positions can be replaced by other statement
+    // positions. For example , "for (x = 0; x < 3; ++x) 7;" has a
+    // statement position associated with 7 but no bytecode associated
+    // with it. Then Next is emitted after the body and has
+    // statement position and overrides the existing one.
+    position_type_ = PositionType::kStatement;
+    source_position_ = source_position;
+  }
+
+  // Makes instance into an expression position. Instance should not
+  // be a statement position otherwise it could be lost and impair the
+  // debugging experience.
+  void MakeExpressionPosition(int source_position) {
+    DCHECK(!is_statement());
+    position_type_ = PositionType::kExpression;
+    source_position_ = source_position;
+  }
+
+  // Forces an instance into an expression position.
+  void ForceExpressionPosition(int source_position) {
+    position_type_ = PositionType::kExpression;
+    source_position_ = source_position;
+  }
+
+  // Clones a source position. The current instance is expected to be
+  // invalid.
+  void Clone(const BytecodeSourceInfo& other) {
+    DCHECK(!is_valid());
+    position_type_ = other.position_type_;
+    source_position_ = other.source_position_;
+  }
 
   int source_position() const {
     DCHECK(is_valid());
     return source_position_;
   }
 
-  bool is_statement() const { return is_valid() && is_statement_; }
+  bool is_statement() const {
+    return position_type_ == PositionType::kStatement;
+  }
+  bool is_expression() const {
+    return position_type_ == PositionType::kExpression;
+  }
 
-  bool is_valid() const { return source_position_ != kUninitializedPosition; }
-  void set_invalid() { source_position_ = kUninitializedPosition; }
+  bool is_valid() const { return position_type_ != PositionType::kNone; }
+  void set_invalid() {
+    position_type_ = PositionType::kNone;
+    source_position_ = kUninitializedPosition;
+  }
 
   bool operator==(const BytecodeSourceInfo& other) const {
-    return source_position_ == other.source_position_ &&
-           is_statement_ == other.is_statement_;
+    return position_type_ == other.position_type_ &&
+           source_position_ == other.source_position_;
   }
+
   bool operator!=(const BytecodeSourceInfo& other) const {
-    return source_position_ != other.source_position_ ||
-           is_statement_ != other.is_statement_;
+    return position_type_ != other.position_type_ ||
+           source_position_ != other.source_position_;
   }
 
  private:
+  enum class PositionType : uint8_t { kNone, kExpression, kStatement };
+
+  PositionType position_type_;
   int source_position_;
-  bool is_statement_;
 
   DISALLOW_COPY_AND_ASSIGN(BytecodeSourceInfo);
 };
@@ -77,19 +141,18 @@
 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);
+  BytecodeNode(Bytecode bytecode, uint32_t operand0, uint32_t operand1);
   BytecodeNode(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
-               OperandScale operand_scale);
+               uint32_t operand2);
   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);
+               uint32_t operand2, uint32_t operand3);
+
+  BytecodeNode(const BytecodeNode& other);
+  BytecodeNode& operator=(const BytecodeNode& other);
 
   void set_bytecode(Bytecode bytecode);
-  void set_bytecode(Bytecode bytecode, uint32_t operand0,
-                    OperandScale operand_scale);
+  void set_bytecode(Bytecode bytecode, uint32_t operand0);
 
   // Clone |other|.
   void Clone(const BytecodeNode* const other);
@@ -97,8 +160,9 @@
   // 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;
+  // Transform to a node representing |new_bytecode| which has one
+  // operand more than the current bytecode.
+  void Transform(Bytecode new_bytecode, uint32_t extra_operand);
 
   Bytecode bytecode() const { return bytecode_; }
 
@@ -110,7 +174,6 @@
   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_; }
@@ -124,7 +187,6 @@
 
   Bytecode bytecode_;
   uint32_t operands_[kMaxOperands];
-  OperandScale operand_scale_;
   BytecodeSourceInfo source_info_;
 };
 
diff --git a/src/interpreter/bytecode-register-allocator.cc b/src/interpreter/bytecode-register-allocator.cc
index 9bdde9a..10afcdc 100644
--- a/src/interpreter/bytecode-register-allocator.cc
+++ b/src/interpreter/bytecode-register-allocator.cc
@@ -14,7 +14,8 @@
                                                        int allocation_base)
     : free_temporaries_(zone),
       allocation_base_(allocation_base),
-      allocation_count_(0) {}
+      allocation_count_(0),
+      observer_(nullptr) {}
 
 Register TemporaryRegisterAllocator::first_temporary_register() const {
   DCHECK(allocation_count() > 0);
@@ -26,6 +27,12 @@
   return Register(allocation_base() + allocation_count() - 1);
 }
 
+void TemporaryRegisterAllocator::set_observer(
+    TemporaryRegisterObserver* observer) {
+  DCHECK(observer_ == nullptr);
+  observer_ = observer;
+}
+
 int TemporaryRegisterAllocator::AllocateTemporaryRegister() {
   allocation_count_ += 1;
   return allocation_base() + allocation_count() - 1;
@@ -140,6 +147,9 @@
 void TemporaryRegisterAllocator::ReturnTemporaryRegister(int reg_index) {
   DCHECK(free_temporaries_.find(reg_index) == free_temporaries_.end());
   free_temporaries_.insert(reg_index);
+  if (observer_) {
+    observer_->TemporaryRegisterFreeEvent(Register(reg_index));
+  }
 }
 
 BytecodeRegisterAllocator::BytecodeRegisterAllocator(
@@ -156,7 +166,6 @@
   allocated_.clear();
 }
 
-
 Register BytecodeRegisterAllocator::NewRegister() {
   int allocated = -1;
   if (next_consecutive_count_ <= 0) {
@@ -170,7 +179,6 @@
   return Register(allocated);
 }
 
-
 bool BytecodeRegisterAllocator::RegisterIsAllocatedInThisScope(
     Register reg) const {
   for (auto i = allocated_.begin(); i != allocated_.end(); i++) {
@@ -179,7 +187,6 @@
   return false;
 }
 
-
 void BytecodeRegisterAllocator::PrepareForConsecutiveAllocations(size_t count) {
   if (static_cast<int>(count) > next_consecutive_count_) {
     next_consecutive_register_ =
@@ -188,7 +195,6 @@
   }
 }
 
-
 Register BytecodeRegisterAllocator::NextConsecutiveRegister() {
   DCHECK_GE(next_consecutive_register_, 0);
   DCHECK_GT(next_consecutive_count_, 0);
diff --git a/src/interpreter/bytecode-register-allocator.h b/src/interpreter/bytecode-register-allocator.h
index a4f6845..b8f737b 100644
--- a/src/interpreter/bytecode-register-allocator.h
+++ b/src/interpreter/bytecode-register-allocator.h
@@ -14,6 +14,7 @@
 
 class BytecodeArrayBuilder;
 class Register;
+class TemporaryRegisterObserver;
 
 class TemporaryRegisterAllocator final {
  public:
@@ -54,6 +55,9 @@
   // Returns the number of temporary register allocations made.
   int allocation_count() const { return allocation_count_; }
 
+  // Sets an observer for temporary register events.
+  void set_observer(TemporaryRegisterObserver* observer);
+
  private:
   // Allocate a temporary register.
   int AllocateTemporaryRegister();
@@ -61,10 +65,17 @@
   ZoneSet<int> free_temporaries_;
   int allocation_base_;
   int allocation_count_;
+  TemporaryRegisterObserver* observer_;
 
   DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterAllocator);
 };
 
+class TemporaryRegisterObserver {
+ public:
+  virtual ~TemporaryRegisterObserver() {}
+  virtual void TemporaryRegisterFreeEvent(Register reg) = 0;
+};
+
 // A class that allows the instantiator to allocate temporary registers that are
 // cleaned up when scope is closed.
 class BytecodeRegisterAllocator final {
diff --git a/src/interpreter/bytecode-register-optimizer.cc b/src/interpreter/bytecode-register-optimizer.cc
new file mode 100644
index 0000000..ab25f95
--- /dev/null
+++ b/src/interpreter/bytecode-register-optimizer.cc
@@ -0,0 +1,630 @@
+// 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/interpreter/bytecode-register-optimizer.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+const uint32_t BytecodeRegisterOptimizer::kInvalidEquivalenceId;
+
+// A class for tracking the state of a register. This class tracks
+// which equivalence set a register is a member of and also whether a
+// register is materialized in the bytecode stream.
+class BytecodeRegisterOptimizer::RegisterInfo final : public ZoneObject {
+ public:
+  RegisterInfo(Register reg, uint32_t equivalence_id, bool materialized)
+      : register_(reg),
+        equivalence_id_(equivalence_id),
+        materialized_(materialized),
+        next_(this),
+        prev_(this) {}
+
+  void AddToEquivalenceSetOf(RegisterInfo* info);
+  void MoveToNewEquivalenceSet(uint32_t equivalence_id, bool materialized);
+  bool IsOnlyMemberOfEquivalenceSet() const;
+  bool IsOnlyMaterializedMemberOfEquivalenceSet() const;
+  bool IsInSameEquivalenceSet(RegisterInfo* info) const;
+
+  // Get a member of this register's equivalence set that is
+  // materialized. The materialized equivalent will be this register
+  // if it is materialized. Returns nullptr if no materialized
+  // equivalent exists.
+  RegisterInfo* GetMaterializedEquivalent();
+
+  // Get a member of this register's equivalence set that is
+  // materialized and not register |reg|. The materialized equivalent
+  // will be this register if it is materialized. Returns nullptr if
+  // no materialized equivalent exists.
+  RegisterInfo* GetMaterializedEquivalentOtherThan(Register reg);
+
+  // Get a member of this register's equivalence set that is intended
+  // to be materialized in place of this register (which is currently
+  // materialized). The best candidate is deemed to be the register
+  // with the lowest index as this permits temporary registers to be
+  // removed from the bytecode stream. Returns nullptr if no candidate
+  // exists.
+  RegisterInfo* GetEquivalentToMaterialize();
+
+  // Get an equivalent register. Returns this if none exists.
+  RegisterInfo* GetEquivalent();
+
+  Register register_value() const { return register_; }
+  bool materialized() const { return materialized_; }
+  void set_materialized(bool materialized) { materialized_ = materialized; }
+  void set_equivalence_id(uint32_t equivalence_id) {
+    equivalence_id_ = equivalence_id;
+  }
+  uint32_t equivalence_id() const { return equivalence_id_; }
+
+ private:
+  Register register_;
+  uint32_t equivalence_id_;
+  bool materialized_;
+
+  // Equivalence set pointers.
+  RegisterInfo* next_;
+  RegisterInfo* prev_;
+
+  DISALLOW_COPY_AND_ASSIGN(RegisterInfo);
+};
+
+void BytecodeRegisterOptimizer::RegisterInfo::AddToEquivalenceSetOf(
+    RegisterInfo* info) {
+  DCHECK_NE(kInvalidEquivalenceId, info->equivalence_id());
+  // Fix old list
+  next_->prev_ = prev_;
+  prev_->next_ = next_;
+  // Add to new list.
+  next_ = info->next_;
+  prev_ = info;
+  prev_->next_ = this;
+  next_->prev_ = this;
+  set_equivalence_id(info->equivalence_id());
+  set_materialized(false);
+}
+
+void BytecodeRegisterOptimizer::RegisterInfo::MoveToNewEquivalenceSet(
+    uint32_t equivalence_id, bool materialized) {
+  next_->prev_ = prev_;
+  prev_->next_ = next_;
+  next_ = prev_ = this;
+  equivalence_id_ = equivalence_id;
+  materialized_ = materialized;
+}
+
+bool BytecodeRegisterOptimizer::RegisterInfo::IsOnlyMemberOfEquivalenceSet()
+    const {
+  return this->next_ == this;
+}
+
+bool BytecodeRegisterOptimizer::RegisterInfo::
+    IsOnlyMaterializedMemberOfEquivalenceSet() const {
+  DCHECK(materialized());
+
+  const RegisterInfo* visitor = this->next_;
+  while (visitor != this) {
+    if (visitor->materialized()) {
+      return false;
+    }
+    visitor = visitor->next_;
+  }
+  return true;
+}
+
+bool BytecodeRegisterOptimizer::RegisterInfo::IsInSameEquivalenceSet(
+    RegisterInfo* info) const {
+  return equivalence_id() == info->equivalence_id();
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::RegisterInfo::GetMaterializedEquivalent() {
+  RegisterInfo* visitor = this;
+  do {
+    if (visitor->materialized()) {
+      return visitor;
+    }
+    visitor = visitor->next_;
+  } while (visitor != this);
+
+  return nullptr;
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::RegisterInfo::GetMaterializedEquivalentOtherThan(
+    Register reg) {
+  RegisterInfo* visitor = this;
+  do {
+    if (visitor->materialized() && visitor->register_value() != reg) {
+      return visitor;
+    }
+    visitor = visitor->next_;
+  } while (visitor != this);
+
+  return nullptr;
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::RegisterInfo::GetEquivalentToMaterialize() {
+  DCHECK(this->materialized());
+  RegisterInfo* visitor = this->next_;
+  RegisterInfo* best_info = nullptr;
+  while (visitor != this) {
+    if (visitor->materialized()) {
+      return nullptr;
+    }
+    if (best_info == nullptr ||
+        visitor->register_value() < best_info->register_value()) {
+      best_info = visitor;
+    }
+    visitor = visitor->next_;
+  }
+  return best_info;
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::RegisterInfo::GetEquivalent() {
+  return next_;
+}
+
+BytecodeRegisterOptimizer::BytecodeRegisterOptimizer(
+    Zone* zone, TemporaryRegisterAllocator* register_allocator,
+    int parameter_count, BytecodePipelineStage* next_stage)
+    : accumulator_(Register::virtual_accumulator()),
+      temporary_base_(register_allocator->allocation_base()),
+      register_info_table_(zone),
+      equivalence_id_(0),
+      next_stage_(next_stage),
+      flush_required_(false),
+      zone_(zone) {
+  register_allocator->set_observer(this);
+
+  // Calculate offset so register index values can be mapped into
+  // a vector of register metadata.
+  if (parameter_count != 0) {
+    register_info_table_offset_ =
+        -Register::FromParameterIndex(0, parameter_count).index();
+  } else {
+    // TODO(oth): This path shouldn't be necessary in bytecode generated
+    // from Javascript, but a set of tests do not include the JS receiver.
+    register_info_table_offset_ = -accumulator_.index();
+  }
+
+  // Initialize register map for parameters, locals, and the
+  // accumulator.
+  register_info_table_.resize(register_info_table_offset_ +
+                              static_cast<size_t>(temporary_base_.index()));
+  for (size_t i = 0; i < register_info_table_.size(); ++i) {
+    register_info_table_[i] = new (zone) RegisterInfo(
+        RegisterFromRegisterInfoTableIndex(i), NextEquivalenceId(), true);
+    DCHECK_EQ(register_info_table_[i]->register_value().index(),
+              RegisterFromRegisterInfoTableIndex(i).index());
+  }
+  accumulator_info_ = GetRegisterInfo(accumulator_);
+  DCHECK(accumulator_info_->register_value() == accumulator_);
+}
+
+// override
+Handle<BytecodeArray> BytecodeRegisterOptimizer::ToBytecodeArray(
+    int fixed_register_count, int parameter_count,
+    Handle<FixedArray> handler_table) {
+  FlushState();
+  return next_stage_->ToBytecodeArray(fixed_register_count, parameter_count,
+                                      handler_table);
+}
+
+// override
+void BytecodeRegisterOptimizer::Write(BytecodeNode* node) {
+  //
+  // Transfers with observable registers as the destination will be
+  // immediately materialized so the source position information will
+  // be ordered correctly.
+  //
+  // Transfers without observable destination registers will initially
+  // be emitted as Nop's with the source position. They may, or may
+  // not, be materialized by the optimizer. However, the source
+  // position is not lost and being attached to a Nop is fine as the
+  // destination register is not observable in the debugger.
+  //
+  switch (node->bytecode()) {
+    case Bytecode::kLdar: {
+      DoLdar(node);
+      return;
+    }
+    case Bytecode::kStar: {
+      DoStar(node);
+      return;
+    }
+    case Bytecode::kMov: {
+      DoMov(node);
+      return;
+    }
+    default:
+      break;
+  }
+
+  if (Bytecodes::IsJump(node->bytecode()) ||
+      node->bytecode() == Bytecode::kDebugger ||
+      node->bytecode() == Bytecode::kSuspendGenerator) {
+    // All state must be flushed before emitting
+    // - a jump (due to how bytecode offsets for jumps are evaluated),
+    // - a call to the debugger (as it can manipulate locals and parameters),
+    // - a generator suspend (as this involves saving all registers).
+    FlushState();
+  }
+
+  PrepareOperands(node);
+  WriteToNextStage(node);
+}
+
+// override
+void BytecodeRegisterOptimizer::WriteJump(BytecodeNode* node,
+                                          BytecodeLabel* label) {
+  FlushState();
+  next_stage_->WriteJump(node, label);
+}
+
+// override
+void BytecodeRegisterOptimizer::BindLabel(BytecodeLabel* label) {
+  FlushState();
+  next_stage_->BindLabel(label);
+}
+
+// override
+void BytecodeRegisterOptimizer::BindLabel(const BytecodeLabel& target,
+                                          BytecodeLabel* label) {
+  // There is no need to flush here, it will have been flushed when |target|
+  // was bound.
+  next_stage_->BindLabel(target, label);
+}
+
+void BytecodeRegisterOptimizer::FlushState() {
+  if (!flush_required_) {
+    return;
+  }
+
+  // Materialize all live registers and break equivalences.
+  size_t count = register_info_table_.size();
+  for (size_t i = 0; i < count; ++i) {
+    RegisterInfo* reg_info = register_info_table_[i];
+    if (reg_info->materialized()) {
+      // Walk equivalents of materialized registers, materializing
+      // each equivalent register as necessary and placing in their
+      // own equivalence set.
+      RegisterInfo* equivalent;
+      while ((equivalent = reg_info->GetEquivalent()) != reg_info) {
+        if (!equivalent->materialized()) {
+          OutputRegisterTransfer(reg_info, equivalent);
+        }
+        equivalent->MoveToNewEquivalenceSet(NextEquivalenceId(), true);
+      }
+    }
+  }
+
+  flush_required_ = false;
+}
+
+void BytecodeRegisterOptimizer::WriteToNextStage(BytecodeNode* node) const {
+  next_stage_->Write(node);
+}
+
+void BytecodeRegisterOptimizer::WriteToNextStage(
+    BytecodeNode* node, const BytecodeSourceInfo& source_info) const {
+  if (source_info.is_valid()) {
+    node->source_info().Clone(source_info);
+  }
+  next_stage_->Write(node);
+}
+
+void BytecodeRegisterOptimizer::OutputRegisterTransfer(
+    RegisterInfo* input_info, RegisterInfo* output_info,
+    const BytecodeSourceInfo& source_info) {
+  Register input = input_info->register_value();
+  Register output = output_info->register_value();
+  DCHECK_NE(input.index(), output.index());
+
+  if (input == accumulator_) {
+    uint32_t operand = static_cast<uint32_t>(output.ToOperand());
+    BytecodeNode node(Bytecode::kStar, operand);
+    WriteToNextStage(&node, source_info);
+  } else if (output == accumulator_) {
+    uint32_t operand = static_cast<uint32_t>(input.ToOperand());
+    BytecodeNode node(Bytecode::kLdar, operand);
+    WriteToNextStage(&node, source_info);
+  } else {
+    uint32_t operand0 = static_cast<uint32_t>(input.ToOperand());
+    uint32_t operand1 = static_cast<uint32_t>(output.ToOperand());
+    BytecodeNode node(Bytecode::kMov, operand0, operand1);
+    WriteToNextStage(&node, source_info);
+  }
+  output_info->set_materialized(true);
+}
+
+void BytecodeRegisterOptimizer::CreateMaterializedEquivalent(
+    RegisterInfo* info) {
+  DCHECK(info->materialized());
+  RegisterInfo* unmaterialized = info->GetEquivalentToMaterialize();
+  if (unmaterialized) {
+    OutputRegisterTransfer(info, unmaterialized);
+  }
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::GetMaterializedEquivalent(RegisterInfo* info) {
+  return info->materialized() ? info : info->GetMaterializedEquivalent();
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::GetMaterializedEquivalentNotAccumulator(
+    RegisterInfo* info) {
+  if (info->materialized()) {
+    return info;
+  }
+
+  RegisterInfo* result = info->GetMaterializedEquivalentOtherThan(accumulator_);
+  if (result == nullptr) {
+    Materialize(info);
+    result = info;
+  }
+  DCHECK(result->register_value() != accumulator_);
+  return result;
+}
+
+void BytecodeRegisterOptimizer::Materialize(RegisterInfo* info) {
+  if (!info->materialized()) {
+    RegisterInfo* materialized = info->GetMaterializedEquivalent();
+    OutputRegisterTransfer(materialized, info);
+  }
+}
+
+void BytecodeRegisterOptimizer::AddToEquivalenceSet(
+    RegisterInfo* set_member, RegisterInfo* non_set_member) {
+  non_set_member->AddToEquivalenceSetOf(set_member);
+  // Flushing is only required when two or more registers are placed
+  // in the same equivalence set.
+  flush_required_ = true;
+}
+
+void BytecodeRegisterOptimizer::RegisterTransfer(
+    RegisterInfo* input_info, RegisterInfo* output_info,
+    const BytecodeSourceInfo& source_info) {
+  // Materialize an alternate in the equivalence set that
+  // |output_info| is leaving.
+  if (output_info->materialized()) {
+    CreateMaterializedEquivalent(output_info);
+  }
+
+  // Add |output_info| to new equivalence set.
+  if (!output_info->IsInSameEquivalenceSet(input_info)) {
+    AddToEquivalenceSet(input_info, output_info);
+  }
+
+  bool output_is_observable =
+      RegisterIsObservable(output_info->register_value());
+  if (output_is_observable) {
+    // Force store to be emitted when register is observable.
+    output_info->set_materialized(false);
+    RegisterInfo* materialized_info = input_info->GetMaterializedEquivalent();
+    OutputRegisterTransfer(materialized_info, output_info, source_info);
+  } else if (source_info.is_valid()) {
+    // Emit a placeholder nop to maintain source position info.
+    EmitNopForSourceInfo(source_info);
+  }
+}
+
+void BytecodeRegisterOptimizer::EmitNopForSourceInfo(
+    const BytecodeSourceInfo& source_info) const {
+  DCHECK(source_info.is_valid());
+  BytecodeNode nop(Bytecode::kNop);
+  nop.source_info().Clone(source_info);
+  WriteToNextStage(&nop);
+}
+
+void BytecodeRegisterOptimizer::DoLdar(const BytecodeNode* const node) {
+  Register input = GetRegisterInputOperand(
+      0, node->bytecode(), node->operands(), node->operand_count());
+  RegisterInfo* input_info = GetRegisterInfo(input);
+  RegisterTransfer(input_info, accumulator_info_, node->source_info());
+}
+
+void BytecodeRegisterOptimizer::DoMov(const BytecodeNode* const node) {
+  Register input = GetRegisterInputOperand(
+      0, node->bytecode(), node->operands(), node->operand_count());
+  RegisterInfo* input_info = GetRegisterInfo(input);
+  Register output = GetRegisterOutputOperand(
+      1, node->bytecode(), node->operands(), node->operand_count());
+  RegisterInfo* output_info = GetOrCreateRegisterInfo(output);
+  RegisterTransfer(input_info, output_info, node->source_info());
+}
+
+void BytecodeRegisterOptimizer::DoStar(const BytecodeNode* const node) {
+  Register output = GetRegisterOutputOperand(
+      0, node->bytecode(), node->operands(), node->operand_count());
+  RegisterInfo* output_info = GetOrCreateRegisterInfo(output);
+  RegisterTransfer(accumulator_info_, output_info, node->source_info());
+}
+
+void BytecodeRegisterOptimizer::PrepareRegisterOutputOperand(
+    RegisterInfo* reg_info) {
+  if (reg_info->materialized()) {
+    CreateMaterializedEquivalent(reg_info);
+  }
+  reg_info->MoveToNewEquivalenceSet(NextEquivalenceId(), true);
+}
+
+void BytecodeRegisterOptimizer::PrepareRegisterRangeOutputOperand(
+    Register start, int count) {
+  for (int i = 0; i < count; ++i) {
+    Register reg(start.index() + i);
+    RegisterInfo* reg_info = GetOrCreateRegisterInfo(reg);
+    PrepareRegisterOutputOperand(reg_info);
+  }
+}
+
+Register BytecodeRegisterOptimizer::GetEquivalentRegisterForInputOperand(
+    Register reg) {
+  // For a temporary register, RegInfo state may need be created. For
+  // locals and parameters, the RegInfo state is created in the
+  // BytecodeRegisterOptimizer constructor.
+  RegisterInfo* reg_info = GetOrCreateRegisterInfo(reg);
+  if (reg_info->materialized()) {
+    return reg;
+  } else {
+    RegisterInfo* equivalent_info =
+        GetMaterializedEquivalentNotAccumulator(reg_info);
+    return equivalent_info->register_value();
+  }
+}
+
+void BytecodeRegisterOptimizer::PrepareRegisterInputOperand(
+    BytecodeNode* const node, Register reg, int operand_index) {
+  Register equivalent = GetEquivalentRegisterForInputOperand(reg);
+  node->operands()[operand_index] =
+      static_cast<uint32_t>(equivalent.ToOperand());
+}
+
+void BytecodeRegisterOptimizer::PrepareRegisterRangeInputOperand(Register start,
+                                                                 int count) {
+  for (int i = 0; i < count; ++i) {
+    Register current(start.index() + i);
+    RegisterInfo* input_info = GetRegisterInfo(current);
+    Materialize(input_info);
+  }
+}
+
+void BytecodeRegisterOptimizer::PrepareRegisterOperands(
+    BytecodeNode* const node) {
+  //
+  // For each input operand, get a materialized equivalent if it is
+  // just a single register, otherwise materialize register range.
+  // Update operand_scale if necessary.
+  //
+  // For each output register about to be clobbered, materialize an
+  // equivalent if it exists. Put each register in it's own equivalence set.
+  //
+  int register_operand_bitmap =
+      Bytecodes::GetRegisterOperandBitmap(node->bytecode());
+  const OperandType* operand_types =
+      Bytecodes::GetOperandTypes(node->bytecode());
+  uint32_t* operands = node->operands();
+  for (int i = 0; register_operand_bitmap != 0;
+       ++i, register_operand_bitmap >>= 1) {
+    if ((register_operand_bitmap & 1) == 0) {
+      continue;
+    }
+    OperandType operand_type = operand_types[i];
+    int count = 0;
+    if (operand_types[i + 1] == OperandType::kRegCount) {
+      count = static_cast<int>(operands[i + 1]);
+      if (count == 0) {
+        continue;
+      }
+    } else {
+      count = Bytecodes::GetNumberOfRegistersRepresentedBy(operand_type);
+    }
+
+    Register reg = Register::FromOperand(static_cast<int32_t>(operands[i]));
+    if (Bytecodes::IsRegisterInputOperandType(operand_type)) {
+      if (count == 1) {
+        PrepareRegisterInputOperand(node, reg, i);
+      } else if (count > 1) {
+        PrepareRegisterRangeInputOperand(reg, count);
+      }
+    } else if (Bytecodes::IsRegisterOutputOperandType(operand_type)) {
+      PrepareRegisterRangeOutputOperand(reg, count);
+    }
+  }
+}
+
+void BytecodeRegisterOptimizer::PrepareAccumulator(BytecodeNode* const node) {
+  // Materialize the accumulator if it is read by the bytecode. The
+  // accumulator is special and no other register can be materialized
+  // in it's place.
+  if (Bytecodes::ReadsAccumulator(node->bytecode()) &&
+      !accumulator_info_->materialized()) {
+    Materialize(accumulator_info_);
+  }
+
+  // Materialize an equivalent to the accumulator if it will be
+  // clobbered when the bytecode is dispatched.
+  if (Bytecodes::WritesAccumulator(node->bytecode())) {
+    PrepareRegisterOutputOperand(accumulator_info_);
+  }
+}
+
+void BytecodeRegisterOptimizer::PrepareOperands(BytecodeNode* const node) {
+  PrepareAccumulator(node);
+  PrepareRegisterOperands(node);
+}
+
+// static
+Register BytecodeRegisterOptimizer::GetRegisterInputOperand(
+    int index, Bytecode bytecode, const uint32_t* operands, int operand_count) {
+  DCHECK_LT(index, operand_count);
+  DCHECK(Bytecodes::IsRegisterInputOperandType(
+      Bytecodes::GetOperandType(bytecode, index)));
+  return OperandToRegister(operands[index]);
+}
+
+// static
+Register BytecodeRegisterOptimizer::GetRegisterOutputOperand(
+    int index, Bytecode bytecode, const uint32_t* operands, int operand_count) {
+  DCHECK_LT(index, operand_count);
+  DCHECK(Bytecodes::IsRegisterOutputOperandType(
+      Bytecodes::GetOperandType(bytecode, index)));
+  return OperandToRegister(operands[index]);
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::GetRegisterInfo(Register reg) {
+  size_t index = GetRegisterInfoTableIndex(reg);
+  return (index < register_info_table_.size()) ? register_info_table_[index]
+                                               : nullptr;
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::GetOrCreateRegisterInfo(Register reg) {
+  size_t index = GetRegisterInfoTableIndex(reg);
+  return index < register_info_table_.size() ? register_info_table_[index]
+                                             : NewRegisterInfo(reg);
+}
+
+BytecodeRegisterOptimizer::RegisterInfo*
+BytecodeRegisterOptimizer::NewRegisterInfo(Register reg) {
+  size_t index = GetRegisterInfoTableIndex(reg);
+  DCHECK_GE(index, register_info_table_.size());
+  GrowRegisterMap(reg);
+  return register_info_table_[index];
+}
+
+void BytecodeRegisterOptimizer::GrowRegisterMap(Register reg) {
+  DCHECK(RegisterIsTemporary(reg));
+  size_t index = GetRegisterInfoTableIndex(reg);
+  DCHECK_GE(index, register_info_table_.size());
+  size_t new_size = index + 1;
+  size_t old_size = register_info_table_.size();
+  register_info_table_.resize(new_size);
+  for (size_t i = old_size; i < new_size; ++i) {
+    register_info_table_[i] = new (zone()) RegisterInfo(
+        RegisterFromRegisterInfoTableIndex(i), NextEquivalenceId(), false);
+  }
+}
+
+void BytecodeRegisterOptimizer::TemporaryRegisterFreeEvent(Register reg) {
+  RegisterInfo* info = GetRegisterInfo(reg);
+  if (info != nullptr) {
+    // If register is materialized and part of equivalence set, make
+    // sure another member of the set holds the value before the
+    // temporary register is removed.
+    if (info->materialized()) {
+      CreateMaterializedEquivalent(info);
+    }
+    info->MoveToNewEquivalenceSet(kInvalidEquivalenceId, false);
+  }
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/src/interpreter/bytecode-register-optimizer.h b/src/interpreter/bytecode-register-optimizer.h
new file mode 100644
index 0000000..4229610
--- /dev/null
+++ b/src/interpreter/bytecode-register-optimizer.h
@@ -0,0 +1,155 @@
+// 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_INTERPRETER_BYTECODE_REGISTER_OPTIMIZER_H_
+#define V8_INTERPRETER_BYTECODE_REGISTER_OPTIMIZER_H_
+
+#include "src/interpreter/bytecode-pipeline.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+// An optimization stage for eliminating unnecessary transfers between
+// registers. The bytecode generator uses temporary registers
+// liberally for correctness and convenience and this stage removes
+// transfers that are not required and preserves correctness.
+class BytecodeRegisterOptimizer final : public BytecodePipelineStage,
+                                        public TemporaryRegisterObserver,
+                                        public ZoneObject {
+ public:
+  BytecodeRegisterOptimizer(Zone* zone,
+                            TemporaryRegisterAllocator* register_allocator,
+                            int parameter_count,
+                            BytecodePipelineStage* next_stage);
+  virtual ~BytecodeRegisterOptimizer() {}
+
+  // BytecodePipelineStage interface.
+  void Write(BytecodeNode* node) override;
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override;
+  void BindLabel(BytecodeLabel* label) override;
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override;
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handler_table) override;
+
+ private:
+  static const uint32_t kInvalidEquivalenceId = kMaxUInt32;
+
+  class RegisterInfo;
+
+  // TemporaryRegisterObserver interface.
+  void TemporaryRegisterFreeEvent(Register reg) override;
+
+  // Helpers for BytecodePipelineStage interface.
+  void FlushState();
+  void WriteToNextStage(BytecodeNode* node) const;
+  void WriteToNextStage(BytecodeNode* node,
+                        const BytecodeSourceInfo& output_info) const;
+
+  // Update internal state for register transfer from |input| to
+  // |output| using |source_info| as source position information if
+  // any bytecodes are emitted due to transfer.
+  void RegisterTransfer(RegisterInfo* input, RegisterInfo* output,
+                        const BytecodeSourceInfo& source_info);
+
+  // Emit a register transfer bytecode from |input| to |output|.
+  void OutputRegisterTransfer(
+      RegisterInfo* input, RegisterInfo* output,
+      const BytecodeSourceInfo& source_info = BytecodeSourceInfo());
+
+  // Emits a Nop to preserve source position information in the
+  // bytecode pipeline.
+  void EmitNopForSourceInfo(const BytecodeSourceInfo& source_info) const;
+
+  // Handlers for bytecode nodes for register to register transfers.
+  void DoLdar(const BytecodeNode* const node);
+  void DoMov(const BytecodeNode* const node);
+  void DoStar(const BytecodeNode* const node);
+
+  // Operand processing methods for bytecodes other than those
+  // performing register to register transfers.
+  void PrepareOperands(BytecodeNode* const node);
+  void PrepareAccumulator(BytecodeNode* const node);
+  void PrepareRegisterOperands(BytecodeNode* const node);
+
+  void PrepareRegisterOutputOperand(RegisterInfo* reg_info);
+  void PrepareRegisterRangeOutputOperand(Register start, int count);
+  void PrepareRegisterInputOperand(BytecodeNode* const node, Register reg,
+                                   int operand_index);
+  void PrepareRegisterRangeInputOperand(Register start, int count);
+
+  Register GetEquivalentRegisterForInputOperand(Register reg);
+
+  static Register GetRegisterInputOperand(int index, Bytecode bytecode,
+                                          const uint32_t* operands,
+                                          int operand_count);
+  static Register GetRegisterOutputOperand(int index, Bytecode bytecode,
+                                           const uint32_t* operands,
+                                           int operand_count);
+
+  void CreateMaterializedEquivalent(RegisterInfo* info);
+  RegisterInfo* GetMaterializedEquivalent(RegisterInfo* info);
+  RegisterInfo* GetMaterializedEquivalentNotAccumulator(RegisterInfo* info);
+  void Materialize(RegisterInfo* info);
+  void AddToEquivalenceSet(RegisterInfo* set_member,
+                           RegisterInfo* non_set_member);
+
+  // Methods for finding and creating metadata for each register.
+  RegisterInfo* GetOrCreateRegisterInfo(Register reg);
+  RegisterInfo* GetRegisterInfo(Register reg);
+  RegisterInfo* NewRegisterInfo(Register reg);
+  void GrowRegisterMap(Register reg);
+
+  bool RegisterIsTemporary(Register reg) const {
+    return reg >= temporary_base_;
+  }
+
+  bool RegisterIsObservable(Register reg) const {
+    return reg != accumulator_ && !RegisterIsTemporary(reg);
+  }
+
+  static Register OperandToRegister(uint32_t operand) {
+    return Register::FromOperand(static_cast<int32_t>(operand));
+  }
+
+  size_t GetRegisterInfoTableIndex(Register reg) const {
+    return static_cast<size_t>(reg.index() + register_info_table_offset_);
+  }
+
+  Register RegisterFromRegisterInfoTableIndex(size_t index) const {
+    return Register(static_cast<int>(index) - register_info_table_offset_);
+  }
+
+  uint32_t NextEquivalenceId() {
+    equivalence_id_++;
+    CHECK_NE(equivalence_id_, kInvalidEquivalenceId);
+    return equivalence_id_;
+  }
+
+  Zone* zone() { return zone_; }
+
+  const Register accumulator_;
+  RegisterInfo* accumulator_info_;
+  const Register temporary_base_;
+
+  // Direct mapping to register info.
+  ZoneVector<RegisterInfo*> register_info_table_;
+  int register_info_table_offset_;
+
+  // Counter for equivalence sets identifiers.
+  int equivalence_id_;
+
+  BytecodePipelineStage* next_stage_;
+  bool flush_required_;
+  Zone* zone_;
+
+  DISALLOW_COPY_AND_ASSIGN(BytecodeRegisterOptimizer);
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_INTERPRETER_BYTECODE_REGISTER_OPTIMIZER_H_
diff --git a/src/interpreter/bytecode-traits.h b/src/interpreter/bytecode-traits.h
index e7d1432..ea3d5d4 100644
--- a/src/interpreter/bytecode-traits.h
+++ b/src/interpreter/bytecode-traits.h
@@ -30,13 +30,15 @@
 
 template <OperandType>
 struct OperandTraits {
-  typedef OperandTypeInfoTraits<OperandTypeInfo::kNone> TypeInfo;
+  typedef OperandTypeInfoTraits<OperandTypeInfo::kNone> TypeInfoTraits;
+  static const OperandTypeInfo kOperandTypeInfo = OperandTypeInfo::kNone;
 };
 
-#define DECLARE_OPERAND_TYPE_TRAITS(Name, InfoType)   \
-  template <>                                         \
-  struct OperandTraits<OperandType::k##Name> {        \
-    typedef OperandTypeInfoTraits<InfoType> TypeInfo; \
+#define DECLARE_OPERAND_TYPE_TRAITS(Name, InfoType)           \
+  template <>                                                 \
+  struct OperandTraits<OperandType::k##Name> {                \
+    typedef OperandTypeInfoTraits<InfoType> TypeInfoTraits;   \
+    static const OperandTypeInfo kOperandTypeInfo = InfoType; \
   };
 OPERAND_TYPE_LIST(DECLARE_OPERAND_TYPE_TRAITS)
 #undef DECLARE_OPERAND_TYPE_TRAITS
@@ -57,8 +59,8 @@
   };
 
   static const int kSize =
-      Helper<OperandTraits<operand_type>::TypeInfo::kIsScalable,
-             OperandTraits<operand_type>::TypeInfo::kUnscaledSize,
+      Helper<OperandTraits<operand_type>::TypeInfoTraits::kIsScalable,
+             OperandTraits<operand_type>::TypeInfoTraits::kUnscaledSize,
              operand_scale>::kSize;
   static const OperandSize kOperandSize = static_cast<OperandSize>(kSize);
 };
@@ -89,7 +91,16 @@
     return operand_types;
   }
 
-  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+  static const OperandTypeInfo* GetOperandTypeInfos() {
+    static const OperandTypeInfo operand_type_infos[] = {
+        OperandTraits<operand_0>::kOperandTypeInfo,
+        OperandTraits<operand_1>::kOperandTypeInfo,
+        OperandTraits<operand_2>::kOperandTypeInfo,
+        OperandTraits<operand_3>::kOperandTypeInfo, OperandTypeInfo::kNone};
+    return operand_type_infos;
+  }
+
+  static const OperandSize* GetOperandSizes(OperandScale operand_scale) {
     switch (operand_scale) {
 #define CASE(Name, _)                                                  \
   case OperandScale::k##Name: {                                        \
@@ -99,14 +110,13 @@
         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];                                           \
+    return kOperandSizes;                                              \
   }
       OPERAND_SCALE_LIST(CASE)
 #undef CASE
     }
     UNREACHABLE();
-    return OperandSize::kNone;
+    return nullptr;
   }
 
   template <OperandType ot>
@@ -116,10 +126,10 @@
   }
 
   static inline bool IsScalable() {
-    return (OperandTraits<operand_0>::TypeInfo::kIsScalable |
-            OperandTraits<operand_1>::TypeInfo::kIsScalable |
-            OperandTraits<operand_2>::TypeInfo::kIsScalable |
-            OperandTraits<operand_3>::TypeInfo::kIsScalable);
+    return (OperandTraits<operand_0>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_1>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_2>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_3>::TypeInfoTraits::kIsScalable);
   }
 
   static const AccumulatorUse kAccumulatorUse = accumulator_use;
@@ -145,7 +155,15 @@
     return operand_types;
   }
 
-  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+  static const OperandTypeInfo* GetOperandTypeInfos() {
+    static const OperandTypeInfo operand_type_infos[] = {
+        OperandTraits<operand_0>::kOperandTypeInfo,
+        OperandTraits<operand_1>::kOperandTypeInfo,
+        OperandTraits<operand_2>::kOperandTypeInfo, OperandTypeInfo::kNone};
+    return operand_type_infos;
+  }
+
+  static const OperandSize* GetOperandSizes(OperandScale operand_scale) {
     switch (operand_scale) {
 #define CASE(Name, _)                                                  \
   case OperandScale::k##Name: {                                        \
@@ -154,14 +172,13 @@
         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];                                           \
+    return kOperandSizes;                                              \
   }
       OPERAND_SCALE_LIST(CASE)
 #undef CASE
     }
     UNREACHABLE();
-    return OperandSize::kNone;
+    return nullptr;
   }
 
   template <OperandType ot>
@@ -170,9 +187,9 @@
   }
 
   static inline bool IsScalable() {
-    return (OperandTraits<operand_0>::TypeInfo::kIsScalable |
-            OperandTraits<operand_1>::TypeInfo::kIsScalable |
-            OperandTraits<operand_2>::TypeInfo::kIsScalable);
+    return (OperandTraits<operand_0>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_1>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_2>::TypeInfoTraits::kIsScalable);
   }
 
   static const AccumulatorUse kAccumulatorUse = accumulator_use;
@@ -196,7 +213,14 @@
     return operand_types;
   }
 
-  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+  static const OperandTypeInfo* GetOperandTypeInfos() {
+    static const OperandTypeInfo operand_type_infos[] = {
+        OperandTraits<operand_0>::kOperandTypeInfo,
+        OperandTraits<operand_1>::kOperandTypeInfo, OperandTypeInfo::kNone};
+    return operand_type_infos;
+  }
+
+  static const OperandSize* GetOperandSizes(OperandScale operand_scale) {
     switch (operand_scale) {
 #define CASE(Name, _)                                                  \
   case OperandScale::k##Name: {                                        \
@@ -204,14 +228,13 @@
         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];                                           \
+    return kOperandSizes;                                              \
   }
       OPERAND_SCALE_LIST(CASE)
 #undef CASE
     }
     UNREACHABLE();
-    return OperandSize::kNone;
+    return nullptr;
   }
 
   template <OperandType ot>
@@ -220,8 +243,8 @@
   }
 
   static inline bool IsScalable() {
-    return (OperandTraits<operand_0>::TypeInfo::kIsScalable |
-            OperandTraits<operand_1>::TypeInfo::kIsScalable);
+    return (OperandTraits<operand_0>::TypeInfoTraits::kIsScalable |
+            OperandTraits<operand_1>::TypeInfoTraits::kIsScalable);
   }
 
   static const AccumulatorUse kAccumulatorUse = accumulator_use;
@@ -241,21 +264,26 @@
     return operand_types;
   }
 
-  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
+  static const OperandTypeInfo* GetOperandTypeInfos() {
+    static const OperandTypeInfo operand_type_infos[] = {
+        OperandTraits<operand_0>::kOperandTypeInfo, OperandTypeInfo::kNone};
+    return operand_type_infos;
+  }
+
+  static const OperandSize* GetOperandSizes(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];                                           \
+    return kOperandSizes;                                              \
   }
       OPERAND_SCALE_LIST(CASE)
 #undef CASE
     }
     UNREACHABLE();
-    return OperandSize::kNone;
+    return nullptr;
   }
 
   template <OperandType ot>
@@ -264,7 +292,7 @@
   }
 
   static inline bool IsScalable() {
-    return OperandTraits<operand_0>::TypeInfo::kIsScalable;
+    return OperandTraits<operand_0>::TypeInfoTraits::kIsScalable;
   }
 
   static const AccumulatorUse kAccumulatorUse = accumulator_use;
@@ -282,9 +310,14 @@
     return operand_types;
   }
 
-  static OperandSize GetOperandSize(int i, OperandScale operand_scale) {
-    UNREACHABLE();
-    return OperandSize::kNone;
+  static const OperandTypeInfo* GetOperandTypeInfos() {
+    static const OperandTypeInfo operand_type_infos[] = {
+        OperandTypeInfo::kNone};
+    return operand_type_infos;
+  }
+
+  static const OperandSize* GetOperandSizes(OperandScale operand_scale) {
+    return nullptr;
   }
 
   template <OperandType ot>
diff --git a/src/interpreter/bytecodes.cc b/src/interpreter/bytecodes.cc
index 5a67847..44c5138 100644
--- a/src/interpreter/bytecodes.cc
+++ b/src/interpreter/bytecodes.cc
@@ -6,6 +6,7 @@
 
 #include <iomanip>
 
+#include "src/base/bits.h"
 #include "src/frames.h"
 #include "src/interpreter/bytecode-traits.h"
 #include "src/interpreter/interpreter.h"
@@ -100,14 +101,6 @@
   return "";
 }
 
-
-// static
-uint8_t Bytecodes::ToByte(Bytecode bytecode) {
-  DCHECK(bytecode <= Bytecode::kLast);
-  return static_cast<uint8_t>(bytecode);
-}
-
-
 // static
 Bytecode Bytecodes::FromByte(uint8_t value) {
   Bytecode bytecode = static_cast<Bytecode>(value);
@@ -115,7 +108,6 @@
   return bytecode;
 }
 
-
 // static
 Bytecode Bytecodes::GetDebugBreak(Bytecode bytecode) {
   DCHECK(!IsDebugBreak(bytecode));
@@ -148,7 +140,6 @@
   return size;
 }
 
-
 // static
 size_t Bytecodes::ReturnCount(Bytecode bytecode) {
   return bytecode == Bytecode::kReturn ? 1 : 0;
@@ -168,7 +159,6 @@
   return 0;
 }
 
-
 // static
 int Bytecodes::NumberOfRegisterOperands(Bytecode bytecode) {
   DCHECK(bytecode <= Bytecode::kLast);
@@ -285,6 +275,34 @@
 }
 
 // static
+bool Bytecodes::IsJumpWithoutEffects(Bytecode bytecode) {
+  return IsJump(bytecode) && !IsJumpIfToBoolean(bytecode);
+}
+
+// static
+bool Bytecodes::IsRegisterLoadWithoutEffects(Bytecode bytecode) {
+  switch (bytecode) {
+    case Bytecode::kMov:
+    case Bytecode::kPopContext:
+    case Bytecode::kPushContext:
+    case Bytecode::kStar:
+    case Bytecode::kLdrUndefined:
+      return true;
+    default:
+      return false;
+  }
+}
+
+// static
+bool Bytecodes::IsWithoutExternalSideEffects(Bytecode bytecode) {
+  // These bytecodes only manipulate interpreter frame state and will
+  // never throw.
+  return (IsAccumulatorLoadWithoutEffects(bytecode) ||
+          IsRegisterLoadWithoutEffects(bytecode) ||
+          bytecode == Bytecode::kNop || IsJumpWithoutEffects(bytecode));
+}
+
+// static
 OperandType Bytecodes::GetOperandType(Bytecode bytecode, int i) {
   DCHECK_LE(bytecode, Bytecode::kLast);
   DCHECK_LT(i, NumberOfOperands(bytecode));
@@ -307,18 +325,39 @@
 }
 
 // static
-OperandSize Bytecodes::GetOperandSize(Bytecode bytecode, int i,
-                                      OperandScale operand_scale) {
+const OperandTypeInfo* Bytecodes::GetOperandTypeInfos(Bytecode bytecode) {
   DCHECK(bytecode <= Bytecode::kLast);
   switch (bytecode) {
 #define CASE(Name, ...)   \
   case Bytecode::k##Name: \
-    return BytecodeTraits<__VA_ARGS__>::GetOperandSize(i, operand_scale);
+    return BytecodeTraits<__VA_ARGS__>::GetOperandTypeInfos();
     BYTECODE_LIST(CASE)
 #undef CASE
   }
   UNREACHABLE();
-  return OperandSize::kNone;
+  return nullptr;
+}
+
+// static
+OperandSize Bytecodes::GetOperandSize(Bytecode bytecode, int i,
+                                      OperandScale operand_scale) {
+  DCHECK_LT(i, NumberOfOperands(bytecode));
+  return GetOperandSizes(bytecode, operand_scale)[i];
+}
+
+// static
+const OperandSize* Bytecodes::GetOperandSizes(Bytecode bytecode,
+                                              OperandScale operand_scale) {
+  DCHECK(bytecode <= Bytecode::kLast);
+  switch (bytecode) {
+#define CASE(Name, ...)   \
+  case Bytecode::k##Name: \
+    return BytecodeTraits<__VA_ARGS__>::GetOperandSizes(operand_scale);
+    BYTECODE_LIST(CASE)
+#undef CASE
+  }
+  UNREACHABLE();
+  return nullptr;
 }
 
 // static
@@ -574,7 +613,7 @@
   switch (operand_type) {
 #define CASE(Name, _)        \
   case OperandType::k##Name: \
-    return OperandTraits<OperandType::k##Name>::TypeInfo::kIsUnsigned;
+    return OperandTraits<OperandType::k##Name>::TypeInfoTraits::kIsUnsigned;
     OPERAND_TYPE_LIST(CASE)
 #undef CASE
   }
@@ -584,9 +623,9 @@
 
 // static
 OperandSize Bytecodes::SizeForSignedOperand(int value) {
-  if (kMinInt8 <= value && value <= kMaxInt8) {
+  if (value >= kMinInt8 && value <= kMaxInt8) {
     return OperandSize::kByte;
-  } else if (kMinInt16 <= value && value <= kMaxInt16) {
+  } else if (value >= kMinInt16 && value <= kMaxInt16) {
     return OperandSize::kShort;
   } else {
     return OperandSize::kQuad;
@@ -594,8 +633,7 @@
 }
 
 // static
-OperandSize Bytecodes::SizeForUnsignedOperand(int value) {
-  DCHECK_GE(value, 0);
+OperandSize Bytecodes::SizeForUnsignedOperand(uint32_t value) {
   if (value <= kMaxUInt8) {
     return OperandSize::kByte;
   } else if (value <= kMaxUInt16) {
@@ -605,42 +643,6 @@
   }
 }
 
-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
 Register Bytecodes::DecodeRegisterOperand(const uint8_t* operand_start,
                                           OperandType operand_type,
@@ -735,6 +737,7 @@
         break;
       case interpreter::OperandType::kIdx:
       case interpreter::OperandType::kRuntimeId:
+      case interpreter::OperandType::kIntrinsicId:
         os << "["
            << DecodeUnsignedOperand(operand_start, op_type, operand_scale)
            << "]";
@@ -829,6 +832,10 @@
     (InterpreterFrameConstants::kRegisterFileFromFp -
      InterpreterFrameConstants::kBytecodeOffsetFromFp) /
     kPointerSize;
+static const int kCallerPCOffsetRegisterIndex =
+    (InterpreterFrameConstants::kRegisterFileFromFp -
+     InterpreterFrameConstants::kCallerPCOffsetFromFp) /
+    kPointerSize;
 
 Register Register::FromParameterIndex(int index, int parameter_count) {
   DCHECK_GE(index, 0);
@@ -881,6 +888,11 @@
   return index() == kBytecodeOffsetRegisterIndex;
 }
 
+// static
+Register Register::virtual_accumulator() {
+  return Register(kCallerPCOffsetRegisterIndex);
+}
+
 OperandSize Register::SizeOfOperand() const {
   int32_t operand = ToOperand();
   if (operand >= kMinInt8 && operand <= kMaxInt8) {
diff --git a/src/interpreter/bytecodes.h b/src/interpreter/bytecodes.h
index d67a390..63a69f1 100644
--- a/src/interpreter/bytecodes.h
+++ b/src/interpreter/bytecodes.h
@@ -30,6 +30,7 @@
 
 #define SCALAR_OPERAND_TYPE_LIST(V)                   \
   V(Flag8, OperandTypeInfo::kFixedUnsignedByte)       \
+  V(IntrinsicId, OperandTypeInfo::kFixedUnsignedByte) \
   V(Idx, OperandTypeInfo::kScalableUnsignedByte)      \
   V(Imm, OperandTypeInfo::kScalableSignedByte)        \
   V(RegCount, OperandTypeInfo::kScalableUnsignedByte) \
@@ -73,188 +74,197 @@
   DEBUG_BREAK_PREFIX_BYTECODE_LIST(V)
 
 // The list of bytecodes which are interpreted by the interpreter.
-#define BYTECODE_LIST(V)                                                      \
-  /* Extended width operands */                                               \
-  V(Wide, AccumulatorUse::kNone)                                              \
-  V(ExtraWide, AccumulatorUse::kNone)                                         \
-                                                                              \
-  /* Loading the accumulator */                                               \
-  V(LdaZero, AccumulatorUse::kWrite)                                          \
-  V(LdaSmi, AccumulatorUse::kWrite, OperandType::kImm)                        \
-  V(LdaUndefined, AccumulatorUse::kWrite)                                     \
-  V(LdaNull, AccumulatorUse::kWrite)                                          \
-  V(LdaTheHole, AccumulatorUse::kWrite)                                       \
-  V(LdaTrue, AccumulatorUse::kWrite)                                          \
-  V(LdaFalse, AccumulatorUse::kWrite)                                         \
-  V(LdaConstant, AccumulatorUse::kWrite, OperandType::kIdx)                   \
-                                                                              \
-  /* Globals */                                                               \
-  V(LdaGlobal, AccumulatorUse::kWrite, OperandType::kIdx, OperandType::kIdx)  \
-  V(LdaGlobalInsideTypeof, AccumulatorUse::kWrite, OperandType::kIdx,         \
-    OperandType::kIdx)                                                        \
-  V(StaGlobalSloppy, AccumulatorUse::kRead, OperandType::kIdx,                \
-    OperandType::kIdx)                                                        \
-  V(StaGlobalStrict, AccumulatorUse::kRead, OperandType::kIdx,                \
-    OperandType::kIdx)                                                        \
-                                                                              \
-  /* Context operations */                                                    \
-  V(PushContext, AccumulatorUse::kRead, OperandType::kRegOut)                 \
-  V(PopContext, AccumulatorUse::kNone, OperandType::kReg)                     \
-  V(LdaContextSlot, AccumulatorUse::kWrite, OperandType::kReg,                \
-    OperandType::kIdx)                                                        \
-  V(StaContextSlot, AccumulatorUse::kRead, OperandType::kReg,                 \
-    OperandType::kIdx)                                                        \
-                                                                              \
-  /* Load-Store lookup slots */                                               \
-  V(LdaLookupSlot, AccumulatorUse::kWrite, OperandType::kIdx)                 \
-  V(LdaLookupSlotInsideTypeof, AccumulatorUse::kWrite, OperandType::kIdx)     \
-  V(StaLookupSlotSloppy, AccumulatorUse::kReadWrite, OperandType::kIdx)       \
-  V(StaLookupSlotStrict, AccumulatorUse::kReadWrite, OperandType::kIdx)       \
-                                                                              \
-  /* Register-accumulator transfers */                                        \
-  V(Ldar, AccumulatorUse::kWrite, OperandType::kReg)                          \
-  V(Star, AccumulatorUse::kRead, OperandType::kRegOut)                        \
-                                                                              \
-  /* Register-register transfers */                                           \
-  V(Mov, AccumulatorUse::kNone, OperandType::kReg, OperandType::kRegOut)      \
-                                                                              \
-  /* LoadIC operations */                                                     \
-  V(LoadIC, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kIdx,     \
-    OperandType::kIdx)                                                        \
-  V(KeyedLoadIC, AccumulatorUse::kReadWrite, OperandType::kReg,               \
-    OperandType::kIdx)                                                        \
-                                                                              \
-  /* StoreIC operations */                                                    \
-  V(StoreICSloppy, AccumulatorUse::kRead, OperandType::kReg,                  \
-    OperandType::kIdx, OperandType::kIdx)                                     \
-  V(StoreICStrict, AccumulatorUse::kRead, OperandType::kReg,                  \
-    OperandType::kIdx, OperandType::kIdx)                                     \
-  V(KeyedStoreICSloppy, AccumulatorUse::kRead, OperandType::kReg,             \
-    OperandType::kReg, OperandType::kIdx)                                     \
-  V(KeyedStoreICStrict, AccumulatorUse::kRead, OperandType::kReg,             \
-    OperandType::kReg, OperandType::kIdx)                                     \
-                                                                              \
-  /* Binary Operators */                                                      \
-  V(Add, AccumulatorUse::kReadWrite, OperandType::kReg)                       \
-  V(Sub, AccumulatorUse::kReadWrite, OperandType::kReg)                       \
-  V(Mul, AccumulatorUse::kReadWrite, OperandType::kReg)                       \
-  V(Div, AccumulatorUse::kReadWrite, OperandType::kReg)                       \
-  V(Mod, AccumulatorUse::kReadWrite, OperandType::kReg)                       \
-  V(BitwiseOr, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
-  V(BitwiseXor, AccumulatorUse::kReadWrite, OperandType::kReg)                \
-  V(BitwiseAnd, AccumulatorUse::kReadWrite, OperandType::kReg)                \
-  V(ShiftLeft, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
-  V(ShiftRight, AccumulatorUse::kReadWrite, OperandType::kReg)                \
-  V(ShiftRightLogical, AccumulatorUse::kReadWrite, OperandType::kReg)         \
-                                                                              \
-  /* 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)      \
-  V(DeletePropertySloppy, AccumulatorUse::kReadWrite, OperandType::kReg)      \
-                                                                              \
-  /* Call operations */                                                       \
-  V(Call, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,       \
-    OperandType::kRegCount, OperandType::kIdx)                                \
-  V(TailCall, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,   \
-    OperandType::kRegCount, OperandType::kIdx)                                \
-  V(CallRuntime, AccumulatorUse::kWrite, OperandType::kRuntimeId,             \
-    OperandType::kMaybeReg, OperandType::kRegCount)                           \
-  V(CallRuntimeForPair, AccumulatorUse::kNone, OperandType::kRuntimeId,       \
-    OperandType::kMaybeReg, OperandType::kRegCount, OperandType::kRegOutPair) \
-  V(CallJSRuntime, AccumulatorUse::kWrite, OperandType::kIdx,                 \
-    OperandType::kReg, OperandType::kRegCount)                                \
-                                                                              \
-  /* Intrinsics */                                                            \
-  V(InvokeIntrinsic, AccumulatorUse::kWrite, OperandType::kRuntimeId,         \
-    OperandType::kMaybeReg, OperandType::kRegCount)                           \
-                                                                              \
-  /* New operator */                                                          \
-  V(New, AccumulatorUse::kReadWrite, OperandType::kReg,                       \
-    OperandType::kMaybeReg, OperandType::kRegCount)                           \
-                                                                              \
-  /* Test Operators */                                                        \
-  V(TestEqual, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
-  V(TestNotEqual, AccumulatorUse::kReadWrite, OperandType::kReg)              \
-  V(TestEqualStrict, AccumulatorUse::kReadWrite, OperandType::kReg)           \
-  V(TestLessThan, AccumulatorUse::kReadWrite, OperandType::kReg)              \
-  V(TestGreaterThan, AccumulatorUse::kReadWrite, OperandType::kReg)           \
-  V(TestLessThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg)       \
-  V(TestGreaterThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg)    \
-  V(TestInstanceOf, AccumulatorUse::kReadWrite, OperandType::kReg)            \
-  V(TestIn, AccumulatorUse::kReadWrite, OperandType::kReg)                    \
-                                                                              \
-  /* Cast operators */                                                        \
-  V(ToName, AccumulatorUse::kReadWrite)                                       \
-  V(ToNumber, AccumulatorUse::kReadWrite)                                     \
-  V(ToObject, AccumulatorUse::kReadWrite)                                     \
-                                                                              \
-  /* Literals */                                                              \
-  V(CreateRegExpLiteral, AccumulatorUse::kWrite, OperandType::kIdx,           \
-    OperandType::kIdx, OperandType::kFlag8)                                   \
-  V(CreateArrayLiteral, AccumulatorUse::kWrite, OperandType::kIdx,            \
-    OperandType::kIdx, OperandType::kFlag8)                                   \
-  V(CreateObjectLiteral, AccumulatorUse::kWrite, OperandType::kIdx,           \
-    OperandType::kIdx, OperandType::kFlag8)                                   \
-                                                                              \
-  /* Closure allocation */                                                    \
-  V(CreateClosure, AccumulatorUse::kWrite, OperandType::kIdx,                 \
-    OperandType::kFlag8)                                                      \
-                                                                              \
-  /* Arguments allocation */                                                  \
-  V(CreateMappedArguments, AccumulatorUse::kWrite)                            \
-  V(CreateUnmappedArguments, AccumulatorUse::kWrite)                          \
-  V(CreateRestParameter, AccumulatorUse::kWrite)                              \
-                                                                              \
-  /* Control Flow */                                                          \
-  V(Jump, AccumulatorUse::kNone, OperandType::kImm)                           \
-  V(JumpConstant, AccumulatorUse::kNone, OperandType::kIdx)                   \
-  V(JumpIfTrue, AccumulatorUse::kRead, OperandType::kImm)                     \
-  V(JumpIfTrueConstant, AccumulatorUse::kRead, OperandType::kIdx)             \
-  V(JumpIfFalse, AccumulatorUse::kRead, OperandType::kImm)                    \
-  V(JumpIfFalseConstant, AccumulatorUse::kRead, OperandType::kIdx)            \
-  V(JumpIfToBooleanTrue, AccumulatorUse::kRead, OperandType::kImm)            \
-  V(JumpIfToBooleanTrueConstant, AccumulatorUse::kRead, OperandType::kIdx)    \
-  V(JumpIfToBooleanFalse, AccumulatorUse::kRead, OperandType::kImm)           \
-  V(JumpIfToBooleanFalseConstant, AccumulatorUse::kRead, OperandType::kIdx)   \
-  V(JumpIfNull, AccumulatorUse::kRead, OperandType::kImm)                     \
-  V(JumpIfNullConstant, AccumulatorUse::kRead, OperandType::kIdx)             \
-  V(JumpIfUndefined, AccumulatorUse::kRead, OperandType::kImm)                \
-  V(JumpIfUndefinedConstant, AccumulatorUse::kRead, OperandType::kIdx)        \
-  V(JumpIfNotHole, AccumulatorUse::kRead, OperandType::kImm)                  \
-  V(JumpIfNotHoleConstant, AccumulatorUse::kRead, OperandType::kIdx)          \
-                                                                              \
-  /* Complex flow control For..in */                                          \
-  V(ForInPrepare, AccumulatorUse::kRead, OperandType::kRegOutTriple)          \
-  V(ForInDone, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg)  \
-  V(ForInNext, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,  \
-    OperandType::kRegPair, OperandType::kIdx)                                 \
-  V(ForInStep, AccumulatorUse::kWrite, OperandType::kReg)                     \
-                                                                              \
-  /* Perform a stack guard check */                                           \
-  V(StackCheck, AccumulatorUse::kNone)                                        \
-                                                                              \
-  /* Non-local flow control */                                                \
-  V(Throw, AccumulatorUse::kRead)                                             \
-  V(ReThrow, AccumulatorUse::kRead)                                           \
-  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)                                           \
-                                                                              \
-  /* No operation (used to maintain source positions for peephole */          \
-  /* eliminated bytecodes). */                                                \
+#define BYTECODE_LIST(V)                                                       \
+  /* Extended width operands */                                                \
+  V(Wide, AccumulatorUse::kNone)                                               \
+  V(ExtraWide, AccumulatorUse::kNone)                                          \
+                                                                               \
+  /* Loading the accumulator */                                                \
+  V(LdaZero, AccumulatorUse::kWrite)                                           \
+  V(LdaSmi, AccumulatorUse::kWrite, OperandType::kImm)                         \
+  V(LdaUndefined, AccumulatorUse::kWrite)                                      \
+  V(LdaNull, AccumulatorUse::kWrite)                                           \
+  V(LdaTheHole, AccumulatorUse::kWrite)                                        \
+  V(LdaTrue, AccumulatorUse::kWrite)                                           \
+  V(LdaFalse, AccumulatorUse::kWrite)                                          \
+  V(LdaConstant, AccumulatorUse::kWrite, OperandType::kIdx)                    \
+                                                                               \
+  /* Loading registers */                                                      \
+  V(LdrUndefined, AccumulatorUse::kNone, OperandType::kRegOut)                 \
+                                                                               \
+  /* Globals */                                                                \
+  V(LdaGlobal, AccumulatorUse::kWrite, OperandType::kIdx)                      \
+  V(LdrGlobal, AccumulatorUse::kNone, OperandType::kIdx, OperandType::kRegOut) \
+  V(LdaGlobalInsideTypeof, AccumulatorUse::kWrite, OperandType::kIdx)          \
+  V(StaGlobalSloppy, AccumulatorUse::kRead, OperandType::kIdx,                 \
+    OperandType::kIdx)                                                         \
+  V(StaGlobalStrict, AccumulatorUse::kRead, OperandType::kIdx,                 \
+    OperandType::kIdx)                                                         \
+                                                                               \
+  /* Context operations */                                                     \
+  V(PushContext, AccumulatorUse::kRead, OperandType::kRegOut)                  \
+  V(PopContext, AccumulatorUse::kNone, OperandType::kReg)                      \
+  V(LdaContextSlot, AccumulatorUse::kWrite, OperandType::kReg,                 \
+    OperandType::kIdx)                                                         \
+  V(LdrContextSlot, AccumulatorUse::kNone, OperandType::kReg,                  \
+    OperandType::kIdx, OperandType::kRegOut)                                   \
+  V(StaContextSlot, AccumulatorUse::kRead, OperandType::kReg,                  \
+    OperandType::kIdx)                                                         \
+                                                                               \
+  /* Load-Store lookup slots */                                                \
+  V(LdaLookupSlot, AccumulatorUse::kWrite, OperandType::kIdx)                  \
+  V(LdaLookupSlotInsideTypeof, AccumulatorUse::kWrite, OperandType::kIdx)      \
+  V(StaLookupSlotSloppy, AccumulatorUse::kReadWrite, OperandType::kIdx)        \
+  V(StaLookupSlotStrict, AccumulatorUse::kReadWrite, OperandType::kIdx)        \
+                                                                               \
+  /* Register-accumulator transfers */                                         \
+  V(Ldar, AccumulatorUse::kWrite, OperandType::kReg)                           \
+  V(Star, AccumulatorUse::kRead, OperandType::kRegOut)                         \
+                                                                               \
+  /* Register-register transfers */                                            \
+  V(Mov, AccumulatorUse::kNone, OperandType::kReg, OperandType::kRegOut)       \
+                                                                               \
+  /* Property loads (LoadIC) operations */                                     \
+  V(LdaNamedProperty, AccumulatorUse::kWrite, OperandType::kReg,               \
+    OperandType::kIdx, OperandType::kIdx)                                      \
+  V(LdrNamedProperty, AccumulatorUse::kNone, OperandType::kReg,                \
+    OperandType::kIdx, OperandType::kIdx, OperandType::kRegOut)                \
+  V(LdaKeyedProperty, AccumulatorUse::kReadWrite, OperandType::kReg,           \
+    OperandType::kIdx)                                                         \
+  V(LdrKeyedProperty, AccumulatorUse::kRead, OperandType::kReg,                \
+    OperandType::kIdx, OperandType::kRegOut)                                   \
+                                                                               \
+  /* Propery stores (StoreIC) operations */                                    \
+  V(StaNamedPropertySloppy, AccumulatorUse::kRead, OperandType::kReg,          \
+    OperandType::kIdx, OperandType::kIdx)                                      \
+  V(StaNamedPropertyStrict, AccumulatorUse::kRead, OperandType::kReg,          \
+    OperandType::kIdx, OperandType::kIdx)                                      \
+  V(StaKeyedPropertySloppy, AccumulatorUse::kRead, OperandType::kReg,          \
+    OperandType::kReg, OperandType::kIdx)                                      \
+  V(StaKeyedPropertyStrict, AccumulatorUse::kRead, OperandType::kReg,          \
+    OperandType::kReg, OperandType::kIdx)                                      \
+                                                                               \
+  /* Binary Operators */                                                       \
+  V(Add, AccumulatorUse::kReadWrite, OperandType::kReg)                        \
+  V(Sub, AccumulatorUse::kReadWrite, OperandType::kReg)                        \
+  V(Mul, AccumulatorUse::kReadWrite, OperandType::kReg)                        \
+  V(Div, AccumulatorUse::kReadWrite, OperandType::kReg)                        \
+  V(Mod, AccumulatorUse::kReadWrite, OperandType::kReg)                        \
+  V(BitwiseOr, AccumulatorUse::kReadWrite, OperandType::kReg)                  \
+  V(BitwiseXor, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
+  V(BitwiseAnd, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
+  V(ShiftLeft, AccumulatorUse::kReadWrite, OperandType::kReg)                  \
+  V(ShiftRight, AccumulatorUse::kReadWrite, OperandType::kReg)                 \
+  V(ShiftRightLogical, AccumulatorUse::kReadWrite, OperandType::kReg)          \
+                                                                               \
+  /* 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)       \
+  V(DeletePropertySloppy, AccumulatorUse::kReadWrite, OperandType::kReg)       \
+                                                                               \
+  /* Call operations */                                                        \
+  V(Call, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,        \
+    OperandType::kRegCount, OperandType::kIdx)                                 \
+  V(TailCall, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,    \
+    OperandType::kRegCount, OperandType::kIdx)                                 \
+  V(CallRuntime, AccumulatorUse::kWrite, OperandType::kRuntimeId,              \
+    OperandType::kMaybeReg, OperandType::kRegCount)                            \
+  V(CallRuntimeForPair, AccumulatorUse::kNone, OperandType::kRuntimeId,        \
+    OperandType::kMaybeReg, OperandType::kRegCount, OperandType::kRegOutPair)  \
+  V(CallJSRuntime, AccumulatorUse::kWrite, OperandType::kIdx,                  \
+    OperandType::kReg, OperandType::kRegCount)                                 \
+                                                                               \
+  /* Intrinsics */                                                             \
+  V(InvokeIntrinsic, AccumulatorUse::kWrite, OperandType::kIntrinsicId,        \
+    OperandType::kMaybeReg, OperandType::kRegCount)                            \
+                                                                               \
+  /* New operator */                                                           \
+  V(New, AccumulatorUse::kReadWrite, OperandType::kReg,                        \
+    OperandType::kMaybeReg, OperandType::kRegCount)                            \
+                                                                               \
+  /* Test Operators */                                                         \
+  V(TestEqual, AccumulatorUse::kReadWrite, OperandType::kReg)                  \
+  V(TestNotEqual, AccumulatorUse::kReadWrite, OperandType::kReg)               \
+  V(TestEqualStrict, AccumulatorUse::kReadWrite, OperandType::kReg)            \
+  V(TestLessThan, AccumulatorUse::kReadWrite, OperandType::kReg)               \
+  V(TestGreaterThan, AccumulatorUse::kReadWrite, OperandType::kReg)            \
+  V(TestLessThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg)        \
+  V(TestGreaterThanOrEqual, AccumulatorUse::kReadWrite, OperandType::kReg)     \
+  V(TestInstanceOf, AccumulatorUse::kReadWrite, OperandType::kReg)             \
+  V(TestIn, AccumulatorUse::kReadWrite, OperandType::kReg)                     \
+                                                                               \
+  /* Cast operators */                                                         \
+  V(ToName, AccumulatorUse::kReadWrite)                                        \
+  V(ToNumber, AccumulatorUse::kReadWrite)                                      \
+  V(ToObject, AccumulatorUse::kReadWrite)                                      \
+                                                                               \
+  /* Literals */                                                               \
+  V(CreateRegExpLiteral, AccumulatorUse::kWrite, OperandType::kIdx,            \
+    OperandType::kIdx, OperandType::kFlag8)                                    \
+  V(CreateArrayLiteral, AccumulatorUse::kWrite, OperandType::kIdx,             \
+    OperandType::kIdx, OperandType::kFlag8)                                    \
+  V(CreateObjectLiteral, AccumulatorUse::kWrite, OperandType::kIdx,            \
+    OperandType::kIdx, OperandType::kFlag8)                                    \
+                                                                               \
+  /* Closure allocation */                                                     \
+  V(CreateClosure, AccumulatorUse::kWrite, OperandType::kIdx,                  \
+    OperandType::kFlag8)                                                       \
+                                                                               \
+  /* Arguments allocation */                                                   \
+  V(CreateMappedArguments, AccumulatorUse::kWrite)                             \
+  V(CreateUnmappedArguments, AccumulatorUse::kWrite)                           \
+  V(CreateRestParameter, AccumulatorUse::kWrite)                               \
+                                                                               \
+  /* Control Flow */                                                           \
+  V(Jump, AccumulatorUse::kNone, OperandType::kImm)                            \
+  V(JumpConstant, AccumulatorUse::kNone, OperandType::kIdx)                    \
+  V(JumpIfTrue, AccumulatorUse::kRead, OperandType::kImm)                      \
+  V(JumpIfTrueConstant, AccumulatorUse::kRead, OperandType::kIdx)              \
+  V(JumpIfFalse, AccumulatorUse::kRead, OperandType::kImm)                     \
+  V(JumpIfFalseConstant, AccumulatorUse::kRead, OperandType::kIdx)             \
+  V(JumpIfToBooleanTrue, AccumulatorUse::kRead, OperandType::kImm)             \
+  V(JumpIfToBooleanTrueConstant, AccumulatorUse::kRead, OperandType::kIdx)     \
+  V(JumpIfToBooleanFalse, AccumulatorUse::kRead, OperandType::kImm)            \
+  V(JumpIfToBooleanFalseConstant, AccumulatorUse::kRead, OperandType::kIdx)    \
+  V(JumpIfNull, AccumulatorUse::kRead, OperandType::kImm)                      \
+  V(JumpIfNullConstant, AccumulatorUse::kRead, OperandType::kIdx)              \
+  V(JumpIfUndefined, AccumulatorUse::kRead, OperandType::kImm)                 \
+  V(JumpIfUndefinedConstant, AccumulatorUse::kRead, OperandType::kIdx)         \
+  V(JumpIfNotHole, AccumulatorUse::kRead, OperandType::kImm)                   \
+  V(JumpIfNotHoleConstant, AccumulatorUse::kRead, OperandType::kIdx)           \
+                                                                               \
+  /* Complex flow control For..in */                                           \
+  V(ForInPrepare, AccumulatorUse::kRead, OperandType::kRegOutTriple)           \
+  V(ForInDone, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg)   \
+  V(ForInNext, AccumulatorUse::kWrite, OperandType::kReg, OperandType::kReg,   \
+    OperandType::kRegPair, OperandType::kIdx)                                  \
+  V(ForInStep, AccumulatorUse::kWrite, OperandType::kReg)                      \
+                                                                               \
+  /* Perform a stack guard check */                                            \
+  V(StackCheck, AccumulatorUse::kNone)                                         \
+                                                                               \
+  /* Non-local flow control */                                                 \
+  V(Throw, AccumulatorUse::kRead)                                              \
+  V(ReThrow, AccumulatorUse::kRead)                                            \
+  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)                                            \
+                                                                               \
+  /* No operation (used to maintain source positions for peephole */           \
+  /* eliminated bytecodes). */                                                 \
   V(Nop, AccumulatorUse::kNone)
 
 enum class AccumulatorUse : uint8_t {
@@ -376,6 +386,11 @@
   static Register bytecode_offset();
   bool is_bytecode_offset() const;
 
+  // Returns a register that can be used to represent the accumulator
+  // within code in the interpreter, but should never be emitted in
+  // bytecode.
+  static Register virtual_accumulator();
+
   OperandSize SizeOfOperand() const;
 
   int32_t ToOperand() const { return kRegisterFileStartOffset - index_; }
@@ -442,7 +457,10 @@
   static const char* OperandSizeToString(OperandSize operand_size);
 
   // Returns byte value of bytecode.
-  static uint8_t ToByte(Bytecode bytecode);
+  static uint8_t ToByte(Bytecode bytecode) {
+    DCHECK_LE(bytecode, Bytecode::kLast);
+    return static_cast<uint8_t>(bytecode);
+  }
 
   // Returns bytecode for |value|.
   static Bytecode FromByte(uint8_t value);
@@ -476,10 +494,22 @@
   // 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,
+  // Return true if |bytecode| is an accumulator load without effects,
   // e.g. LdaConstant, LdaTrue, Ldar.
   static bool IsAccumulatorLoadWithoutEffects(Bytecode bytecode);
 
+  // Return true if |bytecode| is a jump without effects,
+  // e.g.  any jump excluding those that include type coercion like
+  // JumpIfTrueToBoolean.
+  static bool IsJumpWithoutEffects(Bytecode bytecode);
+
+  // Return true if |bytecode| is a register load without effects,
+  // e.g. Mov, Star, LdrUndefined.
+  static bool IsRegisterLoadWithoutEffects(Bytecode bytecode);
+
+  // Returns true if |bytecode| has no effects.
+  static bool IsWithoutExternalSideEffects(Bytecode bytecode);
+
   // Returns the i-th operand of |bytecode|.
   static OperandType GetOperandType(Bytecode bytecode, int i);
 
@@ -487,10 +517,18 @@
   // OperandType::kNone.
   static const OperandType* GetOperandTypes(Bytecode bytecode);
 
+  // Returns a pointer to an array of operand type info terminated in
+  // OperandTypeInfo::kNone.
+  static const OperandTypeInfo* GetOperandTypeInfos(Bytecode bytecode);
+
   // Returns the size of the i-th operand of |bytecode|.
   static OperandSize GetOperandSize(Bytecode bytecode, int i,
                                     OperandScale operand_scale);
 
+  // Returns a pointer to an array of the operand sizes for |bytecode|.
+  static const OperandSize* GetOperandSizes(Bytecode bytecode,
+                                            OperandScale operand_scale);
+
   // Returns the offset of the i-th operand of |bytecode| relative to the start
   // of the bytecode.
   static int GetOperandOffset(Bytecode bytecode, int i,
@@ -617,17 +655,7 @@
   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);
+  static OperandSize SizeForUnsignedOperand(uint32_t value);
 
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(Bytecodes);
diff --git a/src/interpreter/control-flow-builders.h b/src/interpreter/control-flow-builders.h
index 8778b26..b72d6d5 100644
--- a/src/interpreter/control-flow-builders.h
+++ b/src/interpreter/control-flow-builders.h
@@ -7,6 +7,7 @@
 
 #include "src/interpreter/bytecode-array-builder.h"
 
+#include "src/interpreter/bytecode-label.h"
 #include "src/zone-containers.h"
 
 namespace v8 {
diff --git a/src/interpreter/interpreter-assembler.cc b/src/interpreter/interpreter-assembler.cc
index 4e911eb..ee5f8be 100644
--- a/src/interpreter/interpreter-assembler.cc
+++ b/src/interpreter/interpreter-assembler.cc
@@ -31,6 +31,7 @@
                         Bytecodes::ReturnCount(bytecode)),
       bytecode_(bytecode),
       operand_scale_(operand_scale),
+      interpreted_frame_pointer_(this, MachineType::PointerRepresentation()),
       accumulator_(this, MachineRepresentation::kTagged),
       accumulator_use_(AccumulatorUse::kNone),
       made_call_(false),
@@ -50,6 +51,13 @@
   DCHECK_EQ(accumulator_use_, Bytecodes::GetAccumulatorUse(bytecode_));
 }
 
+Node* InterpreterAssembler::GetInterpretedFramePointer() {
+  if (!interpreted_frame_pointer_.IsBound()) {
+    interpreted_frame_pointer_.Bind(LoadParentFramePointer());
+  }
+  return interpreted_frame_pointer_.value();
+}
+
 Node* InterpreterAssembler::GetAccumulatorUnchecked() {
   return accumulator_.value();
 }
@@ -93,7 +101,8 @@
 }
 
 Node* InterpreterAssembler::RegisterLocation(Node* reg_index) {
-  return IntPtrAdd(LoadParentFramePointer(), RegisterFrameOffset(reg_index));
+  return IntPtrAdd(GetInterpretedFramePointer(),
+                   RegisterFrameOffset(reg_index));
 }
 
 Node* InterpreterAssembler::RegisterFrameOffset(Node* index) {
@@ -101,24 +110,24 @@
 }
 
 Node* InterpreterAssembler::LoadRegister(Register reg) {
-  return Load(MachineType::AnyTagged(), LoadParentFramePointer(),
+  return Load(MachineType::AnyTagged(), GetInterpretedFramePointer(),
               IntPtrConstant(reg.ToOperand() << kPointerSizeLog2));
 }
 
 Node* InterpreterAssembler::LoadRegister(Node* reg_index) {
-  return Load(MachineType::AnyTagged(), LoadParentFramePointer(),
+  return Load(MachineType::AnyTagged(), GetInterpretedFramePointer(),
               RegisterFrameOffset(reg_index));
 }
 
 Node* InterpreterAssembler::StoreRegister(Node* value, Register reg) {
   return StoreNoWriteBarrier(
-      MachineRepresentation::kTagged, LoadParentFramePointer(),
+      MachineRepresentation::kTagged, GetInterpretedFramePointer(),
       IntPtrConstant(reg.ToOperand() << kPointerSizeLog2), value);
 }
 
 Node* InterpreterAssembler::StoreRegister(Node* value, Node* reg_index) {
   return StoreNoWriteBarrier(MachineRepresentation::kTagged,
-                             LoadParentFramePointer(),
+                             GetInterpretedFramePointer(),
                              RegisterFrameOffset(reg_index), value);
 }
 
@@ -363,6 +372,15 @@
   return BytecodeUnsignedOperand(operand_index, operand_size);
 }
 
+Node* InterpreterAssembler::BytecodeOperandIntrinsicId(int operand_index) {
+  DCHECK(OperandType::kIntrinsicId ==
+         Bytecodes::GetOperandType(bytecode_, operand_index));
+  OperandSize operand_size =
+      Bytecodes::GetOperandSize(bytecode_, operand_index, operand_scale());
+  DCHECK_EQ(operand_size, OperandSize::kByte);
+  return BytecodeUnsignedOperand(operand_index, operand_size);
+}
+
 Node* InterpreterAssembler::LoadConstantPoolEntry(Node* index) {
   Node* constant_pool = LoadObjectField(BytecodeArrayTaggedPointer(),
                                         BytecodeArray::kConstantPoolOffset);
@@ -394,10 +412,9 @@
 
 Node* InterpreterAssembler::LoadTypeFeedbackVector() {
   Node* function = LoadRegister(Register::function_closure());
-  Node* shared_info =
-      LoadObjectField(function, JSFunction::kSharedFunctionInfoOffset);
+  Node* literals = LoadObjectField(function, JSFunction::kLiteralsOffset);
   Node* vector =
-      LoadObjectField(shared_info, SharedFunctionInfo::kFeedbackVectorOffset);
+      LoadObjectField(literals, LiteralsArray::kFeedbackVectorOffset);
   return vector;
 }
 
diff --git a/src/interpreter/interpreter-assembler.h b/src/interpreter/interpreter-assembler.h
index f8d4b7c..183d4dd 100644
--- a/src/interpreter/interpreter-assembler.h
+++ b/src/interpreter/interpreter-assembler.h
@@ -41,6 +41,9 @@
   // Returns the runtime id immediate for bytecode operand
   // |operand_index| in the current bytecode.
   compiler::Node* BytecodeOperandRuntimeId(int operand_index);
+  // Returns the intrinsic id immediate for bytecode operand
+  // |operand_index| in the current bytecode.
+  compiler::Node* BytecodeOperandIntrinsicId(int operand_index);
 
   // Accumulator.
   compiler::Node* GetAccumulator();
@@ -146,6 +149,9 @@
   void AbortIfWordNotEqual(compiler::Node* lhs, compiler::Node* rhs,
                            BailoutReason bailout_reason);
 
+  // Returns the offset from the BytecodeArrayPointer of the current bytecode.
+  compiler::Node* BytecodeOffset();
+
  protected:
   Bytecode bytecode() const { return bytecode_; }
   static bool TargetSupportsUnalignedAccess();
@@ -153,8 +159,7 @@
  private:
   // Returns a tagged pointer to the current function's BytecodeArray object.
   compiler::Node* BytecodeArrayTaggedPointer();
-  // Returns the offset from the BytecodeArrayPointer of the current bytecode.
-  compiler::Node* BytecodeOffset();
+
   // Returns a raw pointer to first entry in the interpreter dispatch table.
   compiler::Node* DispatchTableRawPointer();
 
@@ -163,6 +168,10 @@
   // tracing as these need to bypass accumulator use validity checks.
   compiler::Node* GetAccumulatorUnchecked();
 
+  // Returns the frame pointer for the interpreted frame of the function being
+  // interpreted.
+  compiler::Node* GetInterpretedFramePointer();
+
   // Saves and restores interpreter bytecode offset to the interpreter stack
   // frame when performing a call.
   void CallPrologue() override;
@@ -229,6 +238,7 @@
 
   Bytecode bytecode_;
   OperandScale operand_scale_;
+  CodeStubAssembler::Variable interpreted_frame_pointer_;
   CodeStubAssembler::Variable accumulator_;
   AccumulatorUse accumulator_use_;
   bool made_call_;
diff --git a/src/interpreter/interpreter-intrinsics.cc b/src/interpreter/interpreter-intrinsics.cc
index 6d9917d..109bf8e 100644
--- a/src/interpreter/interpreter-intrinsics.cc
+++ b/src/interpreter/interpreter-intrinsics.cc
@@ -4,6 +4,8 @@
 
 #include "src/interpreter/interpreter-intrinsics.h"
 
+#include "src/code-factory.h"
+
 namespace v8 {
 namespace internal {
 namespace interpreter {
@@ -13,8 +15,11 @@
 #define __ assembler_->
 
 IntrinsicsHelper::IntrinsicsHelper(InterpreterAssembler* assembler)
-    : assembler_(assembler) {}
+    : isolate_(assembler->isolate()),
+      zone_(assembler->zone()),
+      assembler_(assembler) {}
 
+// static
 bool IntrinsicsHelper::IsSupported(Runtime::FunctionId function_id) {
   switch (function_id) {
 #define SUPPORTED(name, lower_case, count) case Runtime::kInline##name:
@@ -26,6 +31,36 @@
   }
 }
 
+// static
+IntrinsicsHelper::IntrinsicId IntrinsicsHelper::FromRuntimeId(
+    Runtime::FunctionId function_id) {
+  switch (function_id) {
+#define TO_RUNTIME_ID(name, lower_case, count) \
+  case Runtime::kInline##name:                 \
+    return IntrinsicId::k##name;
+    INTRINSICS_LIST(TO_RUNTIME_ID)
+#undef TO_RUNTIME_ID
+    default:
+      UNREACHABLE();
+      return static_cast<IntrinsicsHelper::IntrinsicId>(-1);
+  }
+}
+
+// static
+Runtime::FunctionId IntrinsicsHelper::ToRuntimeId(
+    IntrinsicsHelper::IntrinsicId intrinsic_id) {
+  switch (intrinsic_id) {
+#define TO_INTRINSIC_ID(name, lower_case, count) \
+  case IntrinsicId::k##name:                     \
+    return Runtime::kInline##name;
+    INTRINSICS_LIST(TO_INTRINSIC_ID)
+#undef TO_INTRINSIC_ID
+    default:
+      UNREACHABLE();
+      return static_cast<Runtime::FunctionId>(-1);
+  }
+}
+
 Node* IntrinsicsHelper::InvokeIntrinsic(Node* function_id, Node* context,
                                         Node* first_arg_reg, Node* arg_count) {
   InterpreterAssembler::Label abort(assembler_), end(assembler_);
@@ -42,25 +77,27 @@
 #undef LABEL_POINTER
 
 #define CASE(name, lower_case, count) \
-  static_cast<int32_t>(Runtime::kInline##name),
+  static_cast<int32_t>(IntrinsicId::k##name),
   int32_t cases[] = {INTRINSICS_LIST(CASE)};
 #undef CASE
 
   __ Switch(function_id, &abort, cases, labels, arraysize(cases));
 #define HANDLE_CASE(name, lower_case, expected_arg_count)   \
   __ Bind(&lower_case);                                     \
-  if (FLAG_debug_code) {                                    \
+  if (FLAG_debug_code && expected_arg_count >= 0) {         \
     AbortIfArgCountMismatch(expected_arg_count, arg_count); \
   }                                                         \
-  result.Bind(name(first_arg_reg));                         \
+  result.Bind(name(first_arg_reg, arg_count, context));     \
   __ Goto(&end);
   INTRINSICS_LIST(HANDLE_CASE)
 #undef HANDLE_CASE
 
   __ Bind(&abort);
-  __ Abort(BailoutReason::kUnexpectedFunctionIDForInvokeIntrinsic);
-  result.Bind(__ UndefinedConstant());
-  __ Goto(&end);
+  {
+    __ Abort(BailoutReason::kUnexpectedFunctionIDForInvokeIntrinsic);
+    result.Bind(__ UndefinedConstant());
+    __ Goto(&end);
+  }
 
   __ Bind(&end);
   return result.value();
@@ -74,84 +111,246 @@
 
   InterpreterAssembler::Label if_true(assembler_), if_false(assembler_),
       end(assembler_);
-  Node* condition;
   if (mode == kInstanceTypeEqual) {
-    condition = __ Word32Equal(instance_type, __ Int32Constant(type));
+    return __ Word32Equal(instance_type, __ Int32Constant(type));
   } else {
     DCHECK(mode == kInstanceTypeGreaterThanOrEqual);
-    condition =
-        __ Int32GreaterThanOrEqual(instance_type, __ Int32Constant(type));
+    return __ Int32GreaterThanOrEqual(instance_type, __ Int32Constant(type));
   }
-  __ Branch(condition, &if_true, &if_false);
+}
 
-  __ Bind(&if_true);
-  return_value.Bind(__ BooleanConstant(true));
-  __ Goto(&end);
+Node* IntrinsicsHelper::IsInstanceType(Node* input, int type) {
+  InterpreterAssembler::Variable return_value(assembler_,
+                                              MachineRepresentation::kTagged);
+  InterpreterAssembler::Label if_not_smi(assembler_), return_true(assembler_),
+      return_false(assembler_), end(assembler_);
+  Node* arg = __ LoadRegister(input);
+  __ GotoIf(__ WordIsSmi(arg), &return_false);
 
-  __ Bind(&if_false);
-  return_value.Bind(__ BooleanConstant(false));
-  __ Goto(&end);
+  Node* condition = CompareInstanceType(arg, type, kInstanceTypeEqual);
+  __ Branch(condition, &return_true, &return_false);
+
+  __ Bind(&return_true);
+  {
+    return_value.Bind(__ BooleanConstant(true));
+    __ Goto(&end);
+  }
+
+  __ Bind(&return_false);
+  {
+    return_value.Bind(__ BooleanConstant(false));
+    __ Goto(&end);
+  }
 
   __ Bind(&end);
   return return_value.value();
 }
 
-Node* IntrinsicsHelper::IsJSReceiver(Node* input) {
+Node* IntrinsicsHelper::IsJSReceiver(Node* input, Node* arg_count,
+                                     Node* context) {
   InterpreterAssembler::Variable return_value(assembler_,
                                               MachineRepresentation::kTagged);
-
-  InterpreterAssembler::Label if_smi(assembler_), if_not_smi(assembler_),
+  InterpreterAssembler::Label return_true(assembler_), return_false(assembler_),
       end(assembler_);
+
   Node* arg = __ LoadRegister(input);
+  __ GotoIf(__ WordIsSmi(arg), &return_false);
 
-  __ Branch(__ WordIsSmi(arg), &if_smi, &if_not_smi);
-  __ Bind(&if_smi);
-  return_value.Bind(__ BooleanConstant(false));
-  __ Goto(&end);
-
-  __ Bind(&if_not_smi);
   STATIC_ASSERT(LAST_TYPE == LAST_JS_RECEIVER_TYPE);
-  return_value.Bind(CompareInstanceType(arg, FIRST_JS_RECEIVER_TYPE,
-                                        kInstanceTypeGreaterThanOrEqual));
-  __ Goto(&end);
+  Node* condition = CompareInstanceType(arg, FIRST_JS_RECEIVER_TYPE,
+                                        kInstanceTypeGreaterThanOrEqual);
+  __ Branch(condition, &return_true, &return_false);
+
+  __ Bind(&return_true);
+  {
+    return_value.Bind(__ BooleanConstant(true));
+    __ Goto(&end);
+  }
+
+  __ Bind(&return_false);
+  {
+    return_value.Bind(__ BooleanConstant(false));
+    __ Goto(&end);
+  }
 
   __ Bind(&end);
   return return_value.value();
 }
 
-Node* IntrinsicsHelper::IsArray(Node* input) {
+Node* IntrinsicsHelper::IsArray(Node* input, Node* arg_count, Node* context) {
+  return IsInstanceType(input, JS_ARRAY_TYPE);
+}
+
+Node* IntrinsicsHelper::IsJSProxy(Node* input, Node* arg_count, Node* context) {
+  return IsInstanceType(input, JS_PROXY_TYPE);
+}
+
+Node* IntrinsicsHelper::IsRegExp(Node* input, Node* arg_count, Node* context) {
+  return IsInstanceType(input, JS_REGEXP_TYPE);
+}
+
+Node* IntrinsicsHelper::IsTypedArray(Node* input, Node* arg_count,
+                                     Node* context) {
+  return IsInstanceType(input, JS_TYPED_ARRAY_TYPE);
+}
+
+Node* IntrinsicsHelper::IsSmi(Node* input, Node* arg_count, Node* context) {
   InterpreterAssembler::Variable return_value(assembler_,
                                               MachineRepresentation::kTagged);
-
   InterpreterAssembler::Label if_smi(assembler_), if_not_smi(assembler_),
       end(assembler_);
+
   Node* arg = __ LoadRegister(input);
 
   __ Branch(__ WordIsSmi(arg), &if_smi, &if_not_smi);
   __ Bind(&if_smi);
-  return_value.Bind(__ BooleanConstant(false));
-  __ Goto(&end);
+  {
+    return_value.Bind(__ BooleanConstant(true));
+    __ Goto(&end);
+  }
 
   __ Bind(&if_not_smi);
-  return_value.Bind(
-      CompareInstanceType(arg, JS_ARRAY_TYPE, kInstanceTypeEqual));
-  __ Goto(&end);
+  {
+    return_value.Bind(__ BooleanConstant(false));
+    __ Goto(&end);
+  }
 
   __ Bind(&end);
   return return_value.value();
 }
 
+Node* IntrinsicsHelper::IntrinsicAsStubCall(Node* args_reg, Node* context,
+                                            Callable const& callable) {
+  int param_count = callable.descriptor().GetParameterCount();
+  Node** args = zone()->NewArray<Node*>(param_count + 1);  // 1 for context
+  for (int i = 0; i < param_count; i++) {
+    args[i] = __ LoadRegister(args_reg);
+    args_reg = __ NextRegister(args_reg);
+  }
+  args[param_count] = context;
+
+  return __ CallStubN(callable, args);
+}
+
+Node* IntrinsicsHelper::HasProperty(Node* input, Node* arg_count,
+                                    Node* context) {
+  return IntrinsicAsStubCall(input, context,
+                             CodeFactory::HasProperty(isolate()));
+}
+
+Node* IntrinsicsHelper::MathPow(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::MathPow(isolate()));
+}
+
+Node* IntrinsicsHelper::NewObject(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context,
+                             CodeFactory::FastNewObject(isolate()));
+}
+
+Node* IntrinsicsHelper::NumberToString(Node* input, Node* arg_count,
+                                       Node* context) {
+  return IntrinsicAsStubCall(input, context,
+                             CodeFactory::NumberToString(isolate()));
+}
+
+Node* IntrinsicsHelper::RegExpConstructResult(Node* input, Node* arg_count,
+                                              Node* context) {
+  return IntrinsicAsStubCall(input, context,
+                             CodeFactory::RegExpConstructResult(isolate()));
+}
+
+Node* IntrinsicsHelper::RegExpExec(Node* input, Node* arg_count,
+                                   Node* context) {
+  return IntrinsicAsStubCall(input, context,
+                             CodeFactory::RegExpExec(isolate()));
+}
+
+Node* IntrinsicsHelper::SubString(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::SubString(isolate()));
+}
+
+Node* IntrinsicsHelper::ToString(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToString(isolate()));
+}
+
+Node* IntrinsicsHelper::ToName(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToName(isolate()));
+}
+
+Node* IntrinsicsHelper::ToLength(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToLength(isolate()));
+}
+
+Node* IntrinsicsHelper::ToInteger(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToInteger(isolate()));
+}
+
+Node* IntrinsicsHelper::ToNumber(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToNumber(isolate()));
+}
+
+Node* IntrinsicsHelper::ToObject(Node* input, Node* arg_count, Node* context) {
+  return IntrinsicAsStubCall(input, context, CodeFactory::ToObject(isolate()));
+}
+
+Node* IntrinsicsHelper::Call(Node* args_reg, Node* arg_count, Node* context) {
+  // First argument register contains the function target.
+  Node* function = __ LoadRegister(args_reg);
+
+  // Receiver is the second runtime call argument.
+  Node* receiver_reg = __ NextRegister(args_reg);
+  Node* receiver_arg = __ RegisterLocation(receiver_reg);
+
+  // Subtract function and receiver from arg count.
+  Node* function_and_receiver_count = __ Int32Constant(2);
+  Node* target_args_count = __ Int32Sub(arg_count, function_and_receiver_count);
+
+  if (FLAG_debug_code) {
+    InterpreterAssembler::Label arg_count_positive(assembler_);
+    Node* comparison = __ Int32LessThan(target_args_count, __ Int32Constant(0));
+    __ GotoUnless(comparison, &arg_count_positive);
+    __ Abort(kWrongArgumentCountForInvokeIntrinsic);
+    __ Goto(&arg_count_positive);
+    __ Bind(&arg_count_positive);
+  }
+
+  Node* result = __ CallJS(function, context, receiver_arg, target_args_count,
+                           TailCallMode::kDisallow);
+  return result;
+}
+
+Node* IntrinsicsHelper::ValueOf(Node* args_reg, Node* arg_count,
+                                Node* context) {
+  InterpreterAssembler::Variable return_value(assembler_,
+                                              MachineRepresentation::kTagged);
+  InterpreterAssembler::Label done(assembler_);
+
+  Node* object = __ LoadRegister(args_reg);
+  return_value.Bind(object);
+
+  // If the object is a smi return the object.
+  __ GotoIf(__ WordIsSmi(object), &done);
+
+  // If the object is not a value type, return the object.
+  Node* condition =
+      CompareInstanceType(object, JS_VALUE_TYPE, kInstanceTypeEqual);
+  __ GotoUnless(condition, &done);
+
+  // If the object is a value type, return the value field.
+  return_value.Bind(__ LoadObjectField(object, JSValue::kValueOffset));
+  __ Goto(&done);
+
+  __ Bind(&done);
+  return return_value.value();
+}
+
 void IntrinsicsHelper::AbortIfArgCountMismatch(int expected, Node* actual) {
-  InterpreterAssembler::Label match(assembler_), mismatch(assembler_),
-      end(assembler_);
+  InterpreterAssembler::Label match(assembler_);
   Node* comparison = __ Word32Equal(actual, __ Int32Constant(expected));
-  __ Branch(comparison, &match, &mismatch);
-  __ Bind(&mismatch);
+  __ GotoIf(comparison, &match);
   __ Abort(kWrongArgumentCountForInvokeIntrinsic);
-  __ Goto(&end);
+  __ Goto(&match);
   __ Bind(&match);
-  __ Goto(&end);
-  __ Bind(&end);
 }
 
 }  // namespace interpreter
diff --git a/src/interpreter/interpreter-intrinsics.h b/src/interpreter/interpreter-intrinsics.h
index e27c678..b1c0cdc 100644
--- a/src/interpreter/interpreter-intrinsics.h
+++ b/src/interpreter/interpreter-intrinsics.h
@@ -20,14 +20,43 @@
 class Node;
 }  // namespace compiler
 
-#define INTRINSICS_LIST(V)           \
-  V(IsJSReceiver, is_js_receiver, 1) \
-  V(IsArray, is_array, 1)
-
 namespace interpreter {
 
+// List of supported intrisics, with upper case name, lower case name and
+// expected number of arguments (-1 denoting argument count is variable).
+#define INTRINSICS_LIST(V)                              \
+  V(Call, call, -1)                                     \
+  V(HasProperty, has_property, 2)                       \
+  V(IsArray, is_array, 1)                               \
+  V(IsJSProxy, is_js_proxy, 1)                          \
+  V(IsJSReceiver, is_js_receiver, 1)                    \
+  V(IsRegExp, is_regexp, 1)                             \
+  V(IsSmi, is_smi, 1)                                   \
+  V(IsTypedArray, is_typed_array, 1)                    \
+  V(MathPow, math_pow, 2)                               \
+  V(NewObject, new_object, 2)                           \
+  V(NumberToString, number_to_string, 1)                \
+  V(RegExpConstructResult, reg_exp_construct_result, 3) \
+  V(RegExpExec, reg_exp_exec, 4)                        \
+  V(SubString, sub_string, 3)                           \
+  V(ToString, to_string, 1)                             \
+  V(ToName, to_name, 1)                                 \
+  V(ToLength, to_length, 1)                             \
+  V(ToInteger, to_integer, 1)                           \
+  V(ToNumber, to_number, 1)                             \
+  V(ToObject, to_object, 1)                             \
+  V(ValueOf, value_of, 1)
+
 class IntrinsicsHelper {
  public:
+  enum class IntrinsicId {
+#define DECLARE_INTRINSIC_ID(name, lower_case, count) k##name,
+    INTRINSICS_LIST(DECLARE_INTRINSIC_ID)
+#undef DECLARE_INTRINSIC_ID
+        kIdCount
+  };
+  STATIC_ASSERT(static_cast<uint32_t>(IntrinsicId::kIdCount) <= kMaxUInt8);
+
   explicit IntrinsicsHelper(InterpreterAssembler* assembler);
 
   compiler::Node* InvokeIntrinsic(compiler::Node* function_id,
@@ -36,22 +65,36 @@
                                   compiler::Node* arg_count);
 
   static bool IsSupported(Runtime::FunctionId function_id);
+  static IntrinsicId FromRuntimeId(Runtime::FunctionId function_id);
+  static Runtime::FunctionId ToRuntimeId(IntrinsicId intrinsic_id);
 
  private:
   enum InstanceTypeCompareMode {
     kInstanceTypeEqual,
     kInstanceTypeGreaterThanOrEqual
   };
+
+  compiler::Node* IsInstanceType(compiler::Node* input, int type);
   compiler::Node* CompareInstanceType(compiler::Node* map, int type,
                                       InstanceTypeCompareMode mode);
+  compiler::Node* IntrinsicAsStubCall(compiler::Node* input,
+                                      compiler::Node* context,
+                                      Callable const& callable);
   void AbortIfArgCountMismatch(int expected, compiler::Node* actual);
-  InterpreterAssembler* assembler_;
 
-#define DECLARE_INTRINSIC_HELPER(name, lower_case, count) \
-  compiler::Node* name(compiler::Node* input);
+#define DECLARE_INTRINSIC_HELPER(name, lower_case, count)                \
+  compiler::Node* name(compiler::Node* input, compiler::Node* arg_count, \
+                       compiler::Node* context);
   INTRINSICS_LIST(DECLARE_INTRINSIC_HELPER)
 #undef DECLARE_INTRINSIC_HELPER
 
+  Isolate* isolate() { return isolate_; }
+  Zone* zone() { return zone_; }
+
+  Isolate* isolate_;
+  Zone* zone_;
+  InterpreterAssembler* assembler_;
+
   DISALLOW_COPY_AND_ASSIGN(IntrinsicsHelper);
 };
 
diff --git a/src/interpreter/interpreter.cc b/src/interpreter/interpreter.cc
index a42da50..8a05777 100644
--- a/src/interpreter/interpreter.cc
+++ b/src/interpreter/interpreter.cc
@@ -62,10 +62,11 @@
       size_t index = GetDispatchTableIndex(Bytecode::k##Name, operand_scale);  \
       dispatch_table_[index] = code->entry();                                  \
       TraceCodegen(code);                                                      \
-      LOG_CODE_EVENT(                                                          \
+      PROFILE(                                                                 \
           isolate_,                                                            \
           CodeCreateEvent(                                                     \
-              Logger::BYTECODE_HANDLER_TAG, AbstractCode::cast(*code),         \
+              CodeEventListener::BYTECODE_HANDLER_TAG,                         \
+              AbstractCode::cast(*code),                                       \
               Bytecodes::ToString(Bytecode::k##Name, operand_scale).c_str())); \
     }                                                                          \
   }
@@ -180,9 +181,8 @@
 bool Interpreter::IsDispatchTableInitialized() {
   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.
+    // 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;
@@ -250,7 +250,8 @@
                                     NewStringType::kNormal)
                 .ToLocalChecked();
         Local<v8::Number> counter_object = v8::Number::New(isolate, counter);
-        CHECK(counters_row->Set(context, to_name_object, counter_object)
+        CHECK(counters_row
+                  ->DefineOwnProperty(context, to_name_object, counter_object)
                   .IsJust());
       }
     }
@@ -261,7 +262,9 @@
                                 NewStringType::kNormal)
             .ToLocalChecked();
 
-    CHECK(counters_map->Set(context, from_name_object, counters_row).IsJust());
+    CHECK(
+        counters_map->DefineOwnProperty(context, from_name_object, counters_row)
+            .IsJust());
   }
 
   return counters_map;
@@ -286,19 +289,14 @@
   __ Dispatch();
 }
 
-void Interpreter::DoLoadConstant(InterpreterAssembler* assembler) {
-  Node* index = __ BytecodeOperandIdx(0);
-  Node* constant = __ LoadConstantPoolEntry(index);
-  __ SetAccumulator(constant);
-  __ Dispatch();
-}
-
-
 // LdaConstant <idx>
 //
 // Load constant literal at |idx| in the constant pool into the accumulator.
 void Interpreter::DoLdaConstant(InterpreterAssembler* assembler) {
-  DoLoadConstant(assembler);
+  Node* index = __ BytecodeOperandIdx(0);
+  Node* constant = __ LoadConstantPoolEntry(index);
+  __ SetAccumulator(constant);
+  __ Dispatch();
 }
 
 // LdaUndefined
@@ -311,6 +309,16 @@
   __ Dispatch();
 }
 
+// LdrUndefined <reg>
+//
+// Loads undefined into the accumulator and |reg|.
+void Interpreter::DoLdrUndefined(InterpreterAssembler* assembler) {
+  Node* undefined_value =
+      __ HeapConstant(isolate_->factory()->undefined_value());
+  Node* destination = __ BytecodeOperandReg(0);
+  __ StoreRegister(undefined_value, destination);
+  __ Dispatch();
+}
 
 // LdaNull
 //
@@ -321,7 +329,6 @@
   __ Dispatch();
 }
 
-
 // LdaTheHole
 //
 // Load TheHole into the accumulator.
@@ -331,7 +338,6 @@
   __ Dispatch();
 }
 
-
 // LdaTrue
 //
 // Load True into the accumulator.
@@ -341,7 +347,6 @@
   __ Dispatch();
 }
 
-
 // LdaFalse
 //
 // Load False into the accumulator.
@@ -351,7 +356,6 @@
   __ Dispatch();
 }
 
-
 // Ldar <src>
 //
 // Load accumulator with value from register <src>.
@@ -362,7 +366,6 @@
   __ Dispatch();
 }
 
-
 // Star <dst>
 //
 // Store accumulator to register <dst>.
@@ -373,7 +376,6 @@
   __ Dispatch();
 }
 
-
 // Mov <src> <dst>
 //
 // Stores the value of register <src> to register <dst>.
@@ -385,48 +387,58 @@
   __ Dispatch();
 }
 
-
-void Interpreter::DoLoadGlobal(Callable ic, InterpreterAssembler* assembler) {
+Node* Interpreter::BuildLoadGlobal(Callable ic,
+                                   InterpreterAssembler* assembler) {
   // Get the global object.
   Node* context = __ GetContext();
-  Node* native_context =
-      __ LoadContextSlot(context, Context::NATIVE_CONTEXT_INDEX);
-  Node* global = __ LoadContextSlot(native_context, Context::EXTENSION_INDEX);
 
-  // Load the global via the LoadIC.
+  // Load the global via the LoadGlobalIC.
   Node* code_target = __ HeapConstant(ic.code());
-  Node* constant_index = __ BytecodeOperandIdx(0);
-  Node* name = __ LoadConstantPoolEntry(constant_index);
-  Node* raw_slot = __ BytecodeOperandIdx(1);
+  Node* raw_slot = __ BytecodeOperandIdx(0);
   Node* smi_slot = __ SmiTag(raw_slot);
   Node* type_feedback_vector = __ LoadTypeFeedbackVector();
-  Node* result = __ CallStub(ic.descriptor(), code_target, context, global,
-                             name, smi_slot, type_feedback_vector);
-  __ SetAccumulator(result);
-  __ Dispatch();
+  return __ CallStub(ic.descriptor(), code_target, context, smi_slot,
+                     type_feedback_vector);
 }
 
-// LdaGlobal <name_index> <slot>
+// LdaGlobal <slot>
 //
 // Load the global with name in constant pool entry <name_index> into the
 // accumulator using FeedBackVector slot <slot> outside of a typeof.
 void Interpreter::DoLdaGlobal(InterpreterAssembler* assembler) {
-  Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_, NOT_INSIDE_TYPEOF,
-                                                   UNINITIALIZED);
-  DoLoadGlobal(ic, assembler);
+  Callable ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate_, NOT_INSIDE_TYPEOF);
+  Node* result = BuildLoadGlobal(ic, assembler);
+  __ SetAccumulator(result);
+  __ Dispatch();
 }
 
-// LdaGlobalInsideTypeof <name_index> <slot>
+// LdrGlobal <slot> <reg>
+//
+// Load the global with name in constant pool entry <name_index> into
+// register <reg> using FeedBackVector slot <slot> outside of a typeof.
+void Interpreter::DoLdrGlobal(InterpreterAssembler* assembler) {
+  Callable ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate_, NOT_INSIDE_TYPEOF);
+  Node* result = BuildLoadGlobal(ic, assembler);
+  Node* destination = __ BytecodeOperandReg(1);
+  __ StoreRegister(result, destination);
+  __ Dispatch();
+}
+
+// LdaGlobalInsideTypeof <slot>
 //
 // Load the global with name in constant pool entry <name_index> into the
 // accumulator using FeedBackVector slot <slot> inside of a typeof.
 void Interpreter::DoLdaGlobalInsideTypeof(InterpreterAssembler* assembler) {
-  Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_, INSIDE_TYPEOF,
-                                                   UNINITIALIZED);
-  DoLoadGlobal(ic, assembler);
+  Callable ic =
+      CodeFactory::LoadGlobalICInOptimizedCode(isolate_, INSIDE_TYPEOF);
+  Node* result = BuildLoadGlobal(ic, assembler);
+  __ SetAccumulator(result);
+  __ Dispatch();
 }
 
-void Interpreter::DoStoreGlobal(Callable ic, InterpreterAssembler* assembler) {
+void Interpreter::DoStaGlobal(Callable ic, InterpreterAssembler* assembler) {
   // Get the global object.
   Node* context = __ GetContext();
   Node* native_context =
@@ -446,40 +458,51 @@
   __ Dispatch();
 }
 
-
 // StaGlobalSloppy <name_index> <slot>
 //
 // Store the value in the accumulator into the global with name in constant pool
 // entry <name_index> using FeedBackVector slot <slot> in sloppy mode.
 void Interpreter::DoStaGlobalSloppy(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::StoreICInOptimizedCode(isolate_, SLOPPY, UNINITIALIZED);
-  DoStoreGlobal(ic, assembler);
+  Callable ic = CodeFactory::StoreICInOptimizedCode(isolate_, SLOPPY);
+  DoStaGlobal(ic, assembler);
 }
 
-
 // StaGlobalStrict <name_index> <slot>
 //
 // Store the value in the accumulator into the global with name in constant pool
 // entry <name_index> using FeedBackVector slot <slot> in strict mode.
 void Interpreter::DoStaGlobalStrict(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::StoreICInOptimizedCode(isolate_, STRICT, UNINITIALIZED);
-  DoStoreGlobal(ic, assembler);
+  Callable ic = CodeFactory::StoreICInOptimizedCode(isolate_, STRICT);
+  DoStaGlobal(ic, assembler);
+}
+
+compiler::Node* Interpreter::BuildLoadContextSlot(
+    InterpreterAssembler* assembler) {
+  Node* reg_index = __ BytecodeOperandReg(0);
+  Node* context = __ LoadRegister(reg_index);
+  Node* slot_index = __ BytecodeOperandIdx(1);
+  return __ LoadContextSlot(context, slot_index);
 }
 
 // LdaContextSlot <context> <slot_index>
 //
 // Load the object in |slot_index| of |context| into the accumulator.
 void Interpreter::DoLdaContextSlot(InterpreterAssembler* assembler) {
-  Node* reg_index = __ BytecodeOperandReg(0);
-  Node* context = __ LoadRegister(reg_index);
-  Node* slot_index = __ BytecodeOperandIdx(1);
-  Node* result = __ LoadContextSlot(context, slot_index);
+  Node* result = BuildLoadContextSlot(assembler);
   __ SetAccumulator(result);
   __ Dispatch();
 }
 
+// LdrContextSlot <context> <slot_index> <reg>
+//
+// Load the object in <slot_index> of <context> into register <reg>.
+void Interpreter::DoLdrContextSlot(InterpreterAssembler* assembler) {
+  Node* result = BuildLoadContextSlot(assembler);
+  Node* destination = __ BytecodeOperandReg(2);
+  __ StoreRegister(result, destination);
+  __ Dispatch();
+}
+
 // StaContextSlot <context> <slot_index>
 //
 // Stores the object in the accumulator into |slot_index| of |context|.
@@ -492,8 +515,8 @@
   __ Dispatch();
 }
 
-void Interpreter::DoLoadLookupSlot(Runtime::FunctionId function_id,
-                                   InterpreterAssembler* assembler) {
+void Interpreter::DoLdaLookupSlot(Runtime::FunctionId function_id,
+                                  InterpreterAssembler* assembler) {
   Node* index = __ BytecodeOperandIdx(0);
   Node* name = __ LoadConstantPoolEntry(index);
   Node* context = __ GetContext();
@@ -507,7 +530,7 @@
 // Lookup the object with the name in constant pool entry |name_index|
 // dynamically.
 void Interpreter::DoLdaLookupSlot(InterpreterAssembler* assembler) {
-  DoLoadLookupSlot(Runtime::kLoadLookupSlot, assembler);
+  DoLdaLookupSlot(Runtime::kLoadLookupSlot, assembler);
 }
 
 // LdaLookupSlotInsideTypeof <name_index>
@@ -515,11 +538,11 @@
 // Lookup the object with the name in constant pool entry |name_index|
 // dynamically without causing a NoReferenceError.
 void Interpreter::DoLdaLookupSlotInsideTypeof(InterpreterAssembler* assembler) {
-  DoLoadLookupSlot(Runtime::kLoadLookupSlotInsideTypeof, assembler);
+  DoLdaLookupSlot(Runtime::kLoadLookupSlotInsideTypeof, assembler);
 }
 
-void Interpreter::DoStoreLookupSlot(LanguageMode language_mode,
-                                    InterpreterAssembler* assembler) {
+void Interpreter::DoStaLookupSlot(LanguageMode language_mode,
+                                  InterpreterAssembler* assembler) {
   Node* value = __ GetAccumulator();
   Node* index = __ BytecodeOperandIdx(0);
   Node* name = __ LoadConstantPoolEntry(index);
@@ -537,19 +560,19 @@
 // Store the object in accumulator to the object with the name in constant
 // pool entry |name_index| in sloppy mode.
 void Interpreter::DoStaLookupSlotSloppy(InterpreterAssembler* assembler) {
-  DoStoreLookupSlot(LanguageMode::SLOPPY, assembler);
+  DoStaLookupSlot(LanguageMode::SLOPPY, assembler);
 }
 
-
 // StaLookupSlotStrict <name_index>
 //
 // Store the object in accumulator to the object with the name in constant
 // pool entry |name_index| in strict mode.
 void Interpreter::DoStaLookupSlotStrict(InterpreterAssembler* assembler) {
-  DoStoreLookupSlot(LanguageMode::STRICT, assembler);
+  DoStaLookupSlot(LanguageMode::STRICT, assembler);
 }
 
-void Interpreter::DoLoadIC(Callable ic, InterpreterAssembler* assembler) {
+Node* Interpreter::BuildLoadNamedProperty(Callable ic,
+                                          InterpreterAssembler* assembler) {
   Node* code_target = __ HeapConstant(ic.code());
   Node* register_index = __ BytecodeOperandReg(0);
   Node* object = __ LoadRegister(register_index);
@@ -559,23 +582,35 @@
   Node* smi_slot = __ SmiTag(raw_slot);
   Node* type_feedback_vector = __ LoadTypeFeedbackVector();
   Node* context = __ GetContext();
-  Node* result = __ CallStub(ic.descriptor(), code_target, context, object,
-                             name, smi_slot, type_feedback_vector);
+  return __ CallStub(ic.descriptor(), code_target, context, object, name,
+                     smi_slot, type_feedback_vector);
+}
+
+// LdaNamedProperty <object> <name_index> <slot>
+//
+// Calls the LoadIC at FeedBackVector slot <slot> for <object> and the name at
+// constant pool entry <name_index>.
+void Interpreter::DoLdaNamedProperty(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_);
+  Node* result = BuildLoadNamedProperty(ic, assembler);
   __ SetAccumulator(result);
   __ Dispatch();
 }
 
-// LoadIC <object> <name_index> <slot>
+// LdrNamedProperty <object> <name_index> <slot> <reg>
 //
 // Calls the LoadIC at FeedBackVector slot <slot> for <object> and the name at
-// constant pool entry <name_index>.
-void Interpreter::DoLoadIC(InterpreterAssembler* assembler) {
-  Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_, NOT_INSIDE_TYPEOF,
-                                                   UNINITIALIZED);
-  DoLoadIC(ic, assembler);
+// constant pool entry <name_index> and puts the result into register <reg>.
+void Interpreter::DoLdrNamedProperty(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::LoadICInOptimizedCode(isolate_);
+  Node* result = BuildLoadNamedProperty(ic, assembler);
+  Node* destination = __ BytecodeOperandReg(3);
+  __ StoreRegister(result, destination);
+  __ Dispatch();
 }
 
-void Interpreter::DoKeyedLoadIC(Callable ic, InterpreterAssembler* assembler) {
+Node* Interpreter::BuildLoadKeyedProperty(Callable ic,
+                                          InterpreterAssembler* assembler) {
   Node* code_target = __ HeapConstant(ic.code());
   Node* reg_index = __ BytecodeOperandReg(0);
   Node* object = __ LoadRegister(reg_index);
@@ -584,20 +619,31 @@
   Node* smi_slot = __ SmiTag(raw_slot);
   Node* type_feedback_vector = __ LoadTypeFeedbackVector();
   Node* context = __ GetContext();
-  Node* result = __ CallStub(ic.descriptor(), code_target, context, object,
-                             name, smi_slot, type_feedback_vector);
-  __ SetAccumulator(result);
-  __ Dispatch();
+  return __ CallStub(ic.descriptor(), code_target, context, object, name,
+                     smi_slot, type_feedback_vector);
 }
 
 // KeyedLoadIC <object> <slot>
 //
 // Calls the KeyedLoadIC at FeedBackVector slot <slot> for <object> and the key
 // in the accumulator.
-void Interpreter::DoKeyedLoadIC(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::KeyedLoadICInOptimizedCode(isolate_, UNINITIALIZED);
-  DoKeyedLoadIC(ic, assembler);
+void Interpreter::DoLdaKeyedProperty(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate_);
+  Node* result = BuildLoadKeyedProperty(ic, assembler);
+  __ SetAccumulator(result);
+  __ Dispatch();
+}
+
+// LdrKeyedProperty <object> <slot> <reg>
+//
+// Calls the KeyedLoadIC at FeedBackVector slot <slot> for <object> and the key
+// in the accumulator and puts the result in register <reg>.
+void Interpreter::DoLdrKeyedProperty(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::KeyedLoadICInOptimizedCode(isolate_);
+  Node* result = BuildLoadKeyedProperty(ic, assembler);
+  Node* destination = __ BytecodeOperandReg(2);
+  __ StoreRegister(result, destination);
+  __ Dispatch();
 }
 
 void Interpreter::DoStoreIC(Callable ic, InterpreterAssembler* assembler) {
@@ -616,27 +662,23 @@
   __ Dispatch();
 }
 
-
-// StoreICSloppy <object> <name_index> <slot>
+// StaNamedPropertySloppy <object> <name_index> <slot>
 //
 // Calls the sloppy mode StoreIC at FeedBackVector slot <slot> for <object> and
 // the name in constant pool entry <name_index> with the value in the
 // accumulator.
-void Interpreter::DoStoreICSloppy(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::StoreICInOptimizedCode(isolate_, SLOPPY, UNINITIALIZED);
+void Interpreter::DoStaNamedPropertySloppy(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::StoreICInOptimizedCode(isolate_, SLOPPY);
   DoStoreIC(ic, assembler);
 }
 
-
-// StoreICStrict <object> <name_index> <slot>
+// StaNamedPropertyStrict <object> <name_index> <slot>
 //
 // Calls the strict mode StoreIC at FeedBackVector slot <slot> for <object> and
 // the name in constant pool entry <name_index> with the value in the
 // accumulator.
-void Interpreter::DoStoreICStrict(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::StoreICInOptimizedCode(isolate_, STRICT, UNINITIALIZED);
+void Interpreter::DoStaNamedPropertyStrict(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::StoreICInOptimizedCode(isolate_, STRICT);
   DoStoreIC(ic, assembler);
 }
 
@@ -656,25 +698,21 @@
   __ Dispatch();
 }
 
-
-// KeyedStoreICSloppy <object> <key> <slot>
+// StaKeyedPropertySloppy <object> <key> <slot>
 //
 // Calls the sloppy mode KeyStoreIC at FeedBackVector slot <slot> for <object>
 // and the key <key> with the value in the accumulator.
-void Interpreter::DoKeyedStoreICSloppy(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::KeyedStoreICInOptimizedCode(isolate_, SLOPPY, UNINITIALIZED);
+void Interpreter::DoStaKeyedPropertySloppy(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::KeyedStoreICInOptimizedCode(isolate_, SLOPPY);
   DoKeyedStoreIC(ic, assembler);
 }
 
-
-// KeyedStoreICStore <object> <key> <slot>
+// StaKeyedPropertyStrict <object> <key> <slot>
 //
 // Calls the strict mode KeyStoreIC at FeedBackVector slot <slot> for <object>
 // and the key <key> with the value in the accumulator.
-void Interpreter::DoKeyedStoreICStrict(InterpreterAssembler* assembler) {
-  Callable ic =
-      CodeFactory::KeyedStoreICInOptimizedCode(isolate_, STRICT, UNINITIALIZED);
+void Interpreter::DoStaKeyedPropertyStrict(InterpreterAssembler* assembler) {
+  Callable ic = CodeFactory::KeyedStoreICInOptimizedCode(isolate_, STRICT);
   DoKeyedStoreIC(ic, assembler);
 }
 
@@ -691,7 +729,6 @@
   __ Dispatch();
 }
 
-
 // PopContext <context>
 //
 // Pops the current context and sets <context> as the new context.
@@ -702,33 +739,6 @@
   __ Dispatch();
 }
 
-void Interpreter::DoBinaryOp(Callable callable,
-                             InterpreterAssembler* assembler) {
-  // TODO(bmeurer): Collect definition side type feedback for various
-  // binary operations.
-  Node* target = __ HeapConstant(callable.code());
-  Node* reg_index = __ BytecodeOperandReg(0);
-  Node* lhs = __ LoadRegister(reg_index);
-  Node* rhs = __ GetAccumulator();
-  Node* context = __ GetContext();
-  Node* result = __ CallStub(callable.descriptor(), target, context, lhs, rhs);
-  __ SetAccumulator(result);
-  __ Dispatch();
-}
-
-void Interpreter::DoBinaryOp(Runtime::FunctionId function_id,
-                             InterpreterAssembler* assembler) {
-  // TODO(rmcilroy): Call ICs which back-patch bytecode with type specialized
-  // operations, instead of calling builtins directly.
-  Node* reg_index = __ BytecodeOperandReg(0);
-  Node* lhs = __ LoadRegister(reg_index);
-  Node* rhs = __ GetAccumulator();
-  Node* context = __ GetContext();
-  Node* result = __ CallRuntime(function_id, context, lhs, rhs);
-  __ SetAccumulator(result);
-  __ Dispatch();
-}
-
 template <class Generator>
 void Interpreter::DoBinaryOp(InterpreterAssembler* assembler) {
   Node* reg_index = __ BytecodeOperandReg(0);
@@ -747,7 +757,6 @@
   DoBinaryOp<AddStub>(assembler);
 }
 
-
 // Sub <src>
 //
 // Subtract register <src> from accumulator.
@@ -755,7 +764,6 @@
   DoBinaryOp<SubtractStub>(assembler);
 }
 
-
 // Mul <src>
 //
 // Multiply accumulator by register <src>.
@@ -763,7 +771,6 @@
   DoBinaryOp<MultiplyStub>(assembler);
 }
 
-
 // Div <src>
 //
 // Divide register <src> by accumulator.
@@ -771,7 +778,6 @@
   DoBinaryOp<DivideStub>(assembler);
 }
 
-
 // Mod <src>
 //
 // Modulo register <src> by accumulator.
@@ -779,7 +785,6 @@
   DoBinaryOp<ModulusStub>(assembler);
 }
 
-
 // BitwiseOr <src>
 //
 // BitwiseOr register <src> to accumulator.
@@ -787,7 +792,6 @@
   DoBinaryOp<BitwiseOrStub>(assembler);
 }
 
-
 // BitwiseXor <src>
 //
 // BitwiseXor register <src> to accumulator.
@@ -795,7 +799,6 @@
   DoBinaryOp<BitwiseXorStub>(assembler);
 }
 
-
 // BitwiseAnd <src>
 //
 // BitwiseAnd register <src> to accumulator.
@@ -803,7 +806,6 @@
   DoBinaryOp<BitwiseAndStub>(assembler);
 }
 
-
 // ShiftLeft <src>
 //
 // Left shifts register <src> by the count specified in the accumulator.
@@ -814,7 +816,6 @@
   DoBinaryOp<ShiftLeftStub>(assembler);
 }
 
-
 // ShiftRight <src>
 //
 // Right shifts register <src> by the count specified in the accumulator.
@@ -825,7 +826,6 @@
   DoBinaryOp<ShiftRightStub>(assembler);
 }
 
-
 // ShiftRightLogical <src>
 //
 // Right Shifts register <src> by the count specified in the accumulator.
@@ -836,6 +836,17 @@
   DoBinaryOp<ShiftRightLogicalStub>(assembler);
 }
 
+void Interpreter::DoUnaryOp(Callable callable,
+                            InterpreterAssembler* assembler) {
+  Node* target = __ HeapConstant(callable.code());
+  Node* accumulator = __ GetAccumulator();
+  Node* context = __ GetContext();
+  Node* result =
+      __ CallStub(callable.descriptor(), target, context, accumulator);
+  __ SetAccumulator(result);
+  __ Dispatch();
+}
+
 template <class Generator>
 void Interpreter::DoUnaryOp(InterpreterAssembler* assembler) {
   Node* value = __ GetAccumulator();
@@ -845,6 +856,27 @@
   __ Dispatch();
 }
 
+// ToName
+//
+// Cast the object referenced by the accumulator to a name.
+void Interpreter::DoToName(InterpreterAssembler* assembler) {
+  DoUnaryOp(CodeFactory::ToName(isolate_), assembler);
+}
+
+// ToNumber
+//
+// Cast the object referenced by the accumulator to a number.
+void Interpreter::DoToNumber(InterpreterAssembler* assembler) {
+  DoUnaryOp(CodeFactory::ToNumber(isolate_), assembler);
+}
+
+// ToObject
+//
+// Cast the object referenced by the accumulator to a JSObject.
+void Interpreter::DoToObject(InterpreterAssembler* assembler) {
+  DoUnaryOp(CodeFactory::ToObject(isolate_), assembler);
+}
+
 // Inc
 //
 // Increments value in the accumulator by one.
@@ -859,14 +891,22 @@
   DoUnaryOp<DecStub>(assembler);
 }
 
-void Interpreter::DoLogicalNotOp(Node* value, InterpreterAssembler* assembler) {
+Node* Interpreter::BuildToBoolean(Node* value,
+                                  InterpreterAssembler* assembler) {
+  Node* context = __ GetContext();
+  return ToBooleanStub::Generate(assembler, value, context);
+}
+
+Node* Interpreter::BuildLogicalNot(Node* value,
+                                   InterpreterAssembler* assembler) {
+  Variable result(assembler, MachineRepresentation::kTagged);
   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);
+    result.Bind(false_value);
     __ Goto(&end);
   }
   __ Bind(&if_false);
@@ -875,24 +915,23 @@
       __ AbortIfWordNotEqual(value, false_value,
                              BailoutReason::kExpectedBooleanValue);
     }
-    __ SetAccumulator(true_value);
+    result.Bind(true_value);
     __ Goto(&end);
   }
   __ Bind(&end);
+  return result.value();
 }
 
-// ToBooleanLogicalNot
+// LogicalNot
 //
 // Perform logical-not on the accumulator, first casting the
 // accumulator to a boolean value if required.
+// ToBooleanLogicalNot
 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);
-  DoLogicalNotOp(to_boolean_value, assembler);
+  Node* value = __ GetAccumulator();
+  Node* to_boolean_value = BuildToBoolean(value, assembler);
+  Node* result = BuildLogicalNot(to_boolean_value, assembler);
+  __ SetAccumulator(result);
   __ Dispatch();
 }
 
@@ -902,7 +941,8 @@
 // value.
 void Interpreter::DoLogicalNot(InterpreterAssembler* assembler) {
   Node* value = __ GetAccumulator();
-  DoLogicalNotOp(value, assembler);
+  Node* result = BuildLogicalNot(value, assembler);
+  __ SetAccumulator(result);
   __ Dispatch();
 }
 
@@ -911,14 +951,7 @@
 // Load the accumulator with the string representating type of the
 // object in the accumulator.
 void Interpreter::DoTypeOf(InterpreterAssembler* assembler) {
-  Callable callable = CodeFactory::Typeof(isolate_);
-  Node* target = __ HeapConstant(callable.code());
-  Node* accumulator = __ GetAccumulator();
-  Node* context = __ GetContext();
-  Node* result =
-      __ CallStub(callable.descriptor(), target, context, accumulator);
-  __ SetAccumulator(result);
-  __ Dispatch();
+  DoUnaryOp(CodeFactory::Typeof(isolate_), assembler);
 }
 
 void Interpreter::DoDelete(Runtime::FunctionId function_id,
@@ -932,7 +965,6 @@
   __ Dispatch();
 }
 
-
 // DeletePropertyStrict
 //
 // Delete the property specified in the accumulator from the object
@@ -941,7 +973,6 @@
   DoDelete(Runtime::kDeleteProperty_Strict, assembler);
 }
 
-
 // DeletePropertySloppy
 //
 // Delete the property specified in the accumulator from the object
@@ -967,7 +998,6 @@
   __ Dispatch();
 }
 
-
 // Call <callable> <receiver> <arg_count>
 //
 // Call a JSfunction or Callable in |callable| with the |receiver| and
@@ -995,7 +1025,6 @@
   __ Dispatch();
 }
 
-
 // CallRuntime <function_id> <first_arg> <arg_count>
 //
 // Call the runtime function |function_id| with the first argument in
@@ -1011,7 +1040,7 @@
 // |function_id| with the first argument in |first_arg| and |arg_count|
 // arguments in subsequent registers.
 void Interpreter::DoInvokeIntrinsic(InterpreterAssembler* assembler) {
-  Node* function_id = __ BytecodeOperandRuntimeId(0);
+  Node* function_id = __ BytecodeOperandIntrinsicId(0);
   Node* first_arg_reg = __ BytecodeOperandReg(1);
   Node* arg_count = __ BytecodeOperandCount(2);
   Node* context = __ GetContext();
@@ -1042,7 +1071,6 @@
   __ Dispatch();
 }
 
-
 // CallRuntimeForPair <function_id> <first_arg> <arg_count> <first_return>
 //
 // Call the runtime function |function_id| which returns a pair, with the
@@ -1074,7 +1102,6 @@
   __ Dispatch();
 }
 
-
 // CallJSRuntime <context_index> <receiver> <arg_count>
 //
 // Call the JS runtime function that has the |context_index| with the receiver
@@ -1098,7 +1125,6 @@
   __ Dispatch();
 }
 
-
 // New <constructor> <first_arg> <arg_count>
 //
 // Call operator new with |constructor| and the first argument in
@@ -1113,109 +1139,67 @@
 //
 // Test if the value in the <src> register equals the accumulator.
 void Interpreter::DoTestEqual(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::Equal(isolate_), assembler);
+  DoBinaryOp<EqualStub>(assembler);
 }
 
-
 // TestNotEqual <src>
 //
 // Test if the value in the <src> register is not equal to the accumulator.
 void Interpreter::DoTestNotEqual(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::NotEqual(isolate_), assembler);
+  DoBinaryOp<NotEqualStub>(assembler);
 }
 
-
 // TestEqualStrict <src>
 //
 // Test if the value in the <src> register is strictly equal to the accumulator.
 void Interpreter::DoTestEqualStrict(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::StrictEqual(isolate_), assembler);
+  DoBinaryOp<StrictEqualStub>(assembler);
 }
 
-
 // TestLessThan <src>
 //
 // Test if the value in the <src> register is less than the accumulator.
 void Interpreter::DoTestLessThan(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::LessThan(isolate_), assembler);
+  DoBinaryOp<LessThanStub>(assembler);
 }
 
-
 // TestGreaterThan <src>
 //
 // Test if the value in the <src> register is greater than the accumulator.
 void Interpreter::DoTestGreaterThan(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::GreaterThan(isolate_), assembler);
+  DoBinaryOp<GreaterThanStub>(assembler);
 }
 
-
 // TestLessThanOrEqual <src>
 //
 // Test if the value in the <src> register is less than or equal to the
 // accumulator.
 void Interpreter::DoTestLessThanOrEqual(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::LessThanOrEqual(isolate_), assembler);
+  DoBinaryOp<LessThanOrEqualStub>(assembler);
 }
 
-
 // TestGreaterThanOrEqual <src>
 //
 // Test if the value in the <src> register is greater than or equal to the
 // accumulator.
 void Interpreter::DoTestGreaterThanOrEqual(InterpreterAssembler* assembler) {
-  DoBinaryOp(CodeFactory::GreaterThanOrEqual(isolate_), assembler);
+  DoBinaryOp<GreaterThanOrEqualStub>(assembler);
 }
 
-
 // TestIn <src>
 //
 // 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(CodeFactory::HasProperty(isolate_), assembler);
+  DoBinaryOp<HasPropertyStub>(assembler);
 }
 
-
 // TestInstanceOf <src>
 //
 // 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(CodeFactory::InstanceOf(isolate_), assembler);
-}
-
-void Interpreter::DoTypeConversionOp(Callable callable,
-                                     InterpreterAssembler* assembler) {
-  Node* target = __ HeapConstant(callable.code());
-  Node* accumulator = __ GetAccumulator();
-  Node* context = __ GetContext();
-  Node* result =
-      __ CallStub(callable.descriptor(), target, context, accumulator);
-  __ SetAccumulator(result);
-  __ Dispatch();
-}
-
-// ToName
-//
-// Cast the object referenced by the accumulator to a name.
-void Interpreter::DoToName(InterpreterAssembler* assembler) {
-  DoTypeConversionOp(CodeFactory::ToName(isolate_), assembler);
-}
-
-
-// ToNumber
-//
-// Cast the object referenced by the accumulator to a number.
-void Interpreter::DoToNumber(InterpreterAssembler* assembler) {
-  DoTypeConversionOp(CodeFactory::ToNumber(isolate_), assembler);
-}
-
-
-// ToObject
-//
-// Cast the object referenced by the accumulator to a JSObject.
-void Interpreter::DoToObject(InterpreterAssembler* assembler) {
-  DoTypeConversionOp(CodeFactory::ToObject(isolate_), assembler);
+  DoBinaryOp<InstanceOfStub>(assembler);
 }
 
 // Jump <imm>
@@ -1289,12 +1273,8 @@
 // Jump by number of bytes represented by an immediate operand if the object
 // referenced by the accumulator is true when the object is cast to boolean.
 void Interpreter::DoJumpIfToBooleanTrue(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);
+  Node* to_boolean_value = BuildToBoolean(accumulator, assembler);
   Node* relative_jump = __ BytecodeOperandImm(0);
   Node* true_value = __ BooleanConstant(true);
   __ JumpIfWordEqual(to_boolean_value, true_value, relative_jump);
@@ -1307,12 +1287,8 @@
 // to boolean.
 void Interpreter::DoJumpIfToBooleanTrueConstant(
     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);
+  Node* to_boolean_value = BuildToBoolean(accumulator, assembler);
   Node* index = __ BytecodeOperandIdx(0);
   Node* constant = __ LoadConstantPoolEntry(index);
   Node* relative_jump = __ SmiUntag(constant);
@@ -1325,12 +1301,8 @@
 // Jump by number of bytes represented by an immediate operand if the object
 // referenced by the accumulator is false when the object is cast to boolean.
 void Interpreter::DoJumpIfToBooleanFalse(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);
+  Node* to_boolean_value = BuildToBoolean(accumulator, assembler);
   Node* relative_jump = __ BytecodeOperandImm(0);
   Node* false_value = __ BooleanConstant(false);
   __ JumpIfWordEqual(to_boolean_value, false_value, relative_jump);
@@ -1343,12 +1315,8 @@
 // to boolean.
 void Interpreter::DoJumpIfToBooleanFalseConstant(
     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);
+  Node* to_boolean_value = BuildToBoolean(accumulator, assembler);
   Node* index = __ BytecodeOperandIdx(0);
   Node* constant = __ LoadConstantPoolEntry(index);
   Node* relative_jump = __ SmiUntag(constant);
@@ -1579,7 +1547,6 @@
   }
 }
 
-
 // CreateUnmappedArguments
 //
 // Creates a new unmapped arguments object.
@@ -1639,7 +1606,6 @@
   __ Abort(kUnexpectedReturnFromThrow);
 }
 
-
 // ReThrow
 //
 // Re-throws the exception in the accumulator.
@@ -1651,7 +1617,6 @@
   __ Abort(kUnexpectedReturnFromThrow);
 }
 
-
 // Return
 //
 // Return the value in the accumulator.
@@ -1821,11 +1786,23 @@
 // 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.
+// current context, the state given in the accumulator, and the current bytecode
+// offset (for debugging purposes) into the generator.
 void Interpreter::DoSuspendGenerator(InterpreterAssembler* assembler) {
   Node* generator_reg = __ BytecodeOperandReg(0);
   Node* generator = __ LoadRegister(generator_reg);
 
+  Label if_stepping(assembler, Label::kDeferred), ok(assembler);
+  Node* step_action_address = __ ExternalConstant(
+      ExternalReference::debug_last_step_action_address(isolate_));
+  Node* step_action = __ Load(MachineType::Int8(), step_action_address);
+  STATIC_ASSERT(StepIn > StepNext);
+  STATIC_ASSERT(StepFrame > StepNext);
+  STATIC_ASSERT(LastStepAction == StepFrame);
+  Node* step_next = __ Int32Constant(StepNext);
+  __ BranchIfInt32LessThanOrEqual(step_next, step_action, &if_stepping, &ok);
+  __ Bind(&ok);
+
   Node* array =
       __ LoadObjectField(generator, JSGeneratorObject::kOperandStackOffset);
   Node* context = __ GetContext();
@@ -1835,7 +1812,18 @@
   __ StoreObjectField(generator, JSGeneratorObject::kContextOffset, context);
   __ StoreObjectField(generator, JSGeneratorObject::kContinuationOffset, state);
 
+  Node* offset = __ SmiTag(__ BytecodeOffset());
+  __ StoreObjectField(generator, JSGeneratorObject::kInputOrDebugPosOffset,
+                      offset);
+
   __ Dispatch();
+
+  __ Bind(&if_stepping);
+  {
+    Node* context = __ GetContext();
+    __ CallRuntime(Runtime::kDebugRecordAsyncFunction, context, generator);
+    __ Goto(&ok);
+  }
 }
 
 // ResumeGenerator <generator>
diff --git a/src/interpreter/interpreter.h b/src/interpreter/interpreter.h
index d774d8b..468486c 100644
--- a/src/interpreter/interpreter.h
+++ b/src/interpreter/interpreter.h
@@ -70,17 +70,13 @@
   BYTECODE_LIST(DECLARE_BYTECODE_HANDLER_GENERATOR)
 #undef DECLARE_BYTECODE_HANDLER_GENERATOR
 
-  // Generates code to perform the binary operation via |callable|.
-  void DoBinaryOp(Callable callable, InterpreterAssembler* assembler);
-
-  // Generates code to perform the binary operation via |function_id|.
-  void DoBinaryOp(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 |callable|.
+  void DoUnaryOp(Callable callable, InterpreterAssembler* assembler);
+
   // Generates code to perform the unary operation via |Generator|.
   template <class Generator>
   void DoUnaryOp(InterpreterAssembler* assembler);
@@ -89,22 +85,10 @@
   // |compare_op|.
   void DoCompareOp(Token::Value compare_op, InterpreterAssembler* assembler);
 
-  // Generates code to load a constant from the constant pool.
-  void DoLoadConstant(InterpreterAssembler* assembler);
-
-  // Generates code to perform a global load via |ic|.
-  void DoLoadGlobal(Callable ic, InterpreterAssembler* assembler);
-
   // Generates code to perform a global store via |ic|.
-  void DoStoreGlobal(Callable ic, InterpreterAssembler* assembler);
+  void DoStaGlobal(Callable ic, InterpreterAssembler* assembler);
 
-  // Generates code to perform a named property load via |ic|.
-  void DoLoadIC(Callable ic, InterpreterAssembler* assembler);
-
-  // Generates code to perform a keyed property load via |ic|.
-  void DoKeyedLoadIC(Callable ic, InterpreterAssembler* assembler);
-
-  // Generates code to perform a namedproperty store via |ic|.
+  // Generates code to perform a named property store via |ic|.
   void DoStoreIC(Callable ic, InterpreterAssembler* assembler);
 
   // Generates code to perform a keyed property store via |ic|.
@@ -125,23 +109,44 @@
   // Generates code to perform a constructor call.
   void DoCallConstruct(InterpreterAssembler* assembler);
 
-  // Generates code to perform a type conversion.
-  void DoTypeConversionOp(Callable callable, 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,
                 InterpreterAssembler* assembler);
 
   // Generates code to perform a lookup slot load via |function_id|.
-  void DoLoadLookupSlot(Runtime::FunctionId function_id,
-                        InterpreterAssembler* assembler);
+  void DoLdaLookupSlot(Runtime::FunctionId function_id,
+                       InterpreterAssembler* assembler);
 
   // Generates code to perform a lookup slot store depending on |language_mode|.
-  void DoStoreLookupSlot(LanguageMode language_mode,
-                         InterpreterAssembler* assembler);
+  void DoStaLookupSlot(LanguageMode language_mode,
+                       InterpreterAssembler* assembler);
+
+  // Generates a node with the undefined constant.
+  compiler::Node* BuildLoadUndefined(InterpreterAssembler* assembler);
+
+  // Generates code to load a context slot.
+  compiler::Node* BuildLoadContextSlot(InterpreterAssembler* assembler);
+
+  // Generates code to load a global.
+  compiler::Node* BuildLoadGlobal(Callable ic, InterpreterAssembler* assembler);
+
+  // Generates code to load a named property.
+  compiler::Node* BuildLoadNamedProperty(Callable ic,
+                                         InterpreterAssembler* assembler);
+
+  // Generates code to load a keyed property.
+  compiler::Node* BuildLoadKeyedProperty(Callable ic,
+                                         InterpreterAssembler* assembler);
+
+  // Generates code to perform logical-not on boolean |value| and returns the
+  // result.
+  compiler::Node* BuildLogicalNot(compiler::Node* value,
+                                  InterpreterAssembler* assembler);
+
+  // Generates code to convert |value| to a boolean and returns the
+  // result.
+  compiler::Node* BuildToBoolean(compiler::Node* value,
+                                 InterpreterAssembler* assembler);
 
   uintptr_t GetDispatchCounter(Bytecode from, Bytecode to) const;
 
diff --git a/src/interpreter/source-position-table.cc b/src/interpreter/source-position-table.cc
index 65bfa20..579c6c4 100644
--- a/src/interpreter/source-position-table.cc
+++ b/src/interpreter/source-position-table.cc
@@ -23,19 +23,13 @@
 // - we record the difference from the previous position,
 // - we just stuff one bit for the type into the bytecode offset,
 // - we write least-significant bits first,
-// - negative numbers occur only rarely, so we use a denormalized
-//   most-significant byte (a byte with all zeros, which normally wouldn't
-//   make any sense) to encode a negative sign, so that we 'pay' nothing for
-//   positive numbers, but have to pay a full byte for negative integers.
+// - we use zig-zag encoding to encode both positive and negative numbers.
 
 namespace {
 
-// A zero-value in the most-significant byte is used to mark negative numbers.
-const int kNegativeSignMarker = 0;
-
 // Each byte is encoded as MoreBit | ValueBits.
 class MoreBit : public BitField8<bool, 7, 1> {};
-class ValueBits : public BitField8<int, 0, 7> {};
+class ValueBits : public BitField8<unsigned, 0, 7> {};
 
 // Helper: Add the offsets from 'other' to 'value'. Also set is_statement.
 void AddAndSetEntry(PositionTableEntry& value,
@@ -54,62 +48,57 @@
 
 // Helper: Encode an integer.
 void EncodeInt(ZoneVector<byte>& bytes, int value) {
-  bool sign = false;
-  if (value < 0) {
-    sign = true;
-    value = -value;
-  }
-
+  // Zig-zag encoding.
+  static const int kShift = kIntSize * kBitsPerByte - 1;
+  value = ((value << 1) ^ (value >> kShift));
+  DCHECK_GE(value, 0);
+  unsigned int encoded = static_cast<unsigned int>(value);
   bool more;
   do {
-    more = value > ValueBits::kMax;
-    bytes.push_back(MoreBit::encode(more || sign) |
-                    ValueBits::encode(value & ValueBits::kMax));
-    value >>= ValueBits::kSize;
+    more = encoded > ValueBits::kMax;
+    bytes.push_back(MoreBit::encode(more) |
+                    ValueBits::encode(encoded & ValueBits::kMask));
+    encoded >>= ValueBits::kSize;
   } while (more);
-
-  if (sign) {
-    bytes.push_back(MoreBit::encode(false) |
-                    ValueBits::encode(kNegativeSignMarker));
-  }
 }
 
 // Encode a PositionTableEntry.
 void EncodeEntry(ZoneVector<byte>& bytes, const PositionTableEntry& entry) {
-  // 1 bit for sign + is_statement each, which leaves 30b for the value.
-  DCHECK(abs(entry.bytecode_offset) < (1 << 30));
-  EncodeInt(bytes, (entry.is_statement ? 1 : 0) | (entry.bytecode_offset << 1));
+  // We only accept ascending bytecode offsets.
+  DCHECK(entry.bytecode_offset >= 0);
+  // Since bytecode_offset is not negative, we use sign to encode is_statement.
+  EncodeInt(bytes, entry.is_statement ? entry.bytecode_offset
+                                      : -entry.bytecode_offset - 1);
   EncodeInt(bytes, entry.source_position);
 }
 
 // Helper: Decode an integer.
 void DecodeInt(ByteArray* bytes, int* index, int* v) {
   byte current;
-  int n = 0;
-  int value = 0;
+  int shift = 0;
+  int decoded = 0;
   bool more;
   do {
     current = bytes->get((*index)++);
-    value |= ValueBits::decode(current) << (n * ValueBits::kSize);
-    n++;
+    decoded |= ValueBits::decode(current) << shift;
     more = MoreBit::decode(current);
+    shift += ValueBits::kSize;
   } while (more);
-
-  if (ValueBits::decode(current) == kNegativeSignMarker) {
-    value = -value;
-  }
-  *v = value;
+  DCHECK_GE(decoded, 0);
+  decoded = (decoded >> 1) ^ (-(decoded & 1));
+  *v = decoded;
 }
 
 void DecodeEntry(ByteArray* bytes, int* index, PositionTableEntry* entry) {
   int tmp;
   DecodeInt(bytes, index, &tmp);
-  entry->is_statement = (tmp & 1);
-
-  // Note that '>>' needs to be arithmetic shift in order to handle negative
-  // numbers properly.
-  entry->bytecode_offset = (tmp >> 1);
-
+  if (tmp >= 0) {
+    entry->is_statement = true;
+    entry->bytecode_offset = tmp;
+  } else {
+    entry->is_statement = false;
+    entry->bytecode_offset = -(tmp + 1);
+  }
   DecodeInt(bytes, index, &entry->source_position);
 }
 
diff --git a/src/isolate-inl.h b/src/isolate-inl.h
index 48ea0aa..46f29b6 100644
--- a/src/isolate-inl.h
+++ b/src/isolate-inl.h
@@ -20,26 +20,26 @@
 
 Object* Isolate::pending_exception() {
   DCHECK(has_pending_exception());
-  DCHECK(!thread_local_top_.pending_exception_->IsException());
+  DCHECK(!thread_local_top_.pending_exception_->IsException(this));
   return thread_local_top_.pending_exception_;
 }
 
 
 void Isolate::set_pending_exception(Object* exception_obj) {
-  DCHECK(!exception_obj->IsException());
+  DCHECK(!exception_obj->IsException(this));
   thread_local_top_.pending_exception_ = exception_obj;
 }
 
 
 void Isolate::clear_pending_exception() {
-  DCHECK(!thread_local_top_.pending_exception_->IsException());
+  DCHECK(!thread_local_top_.pending_exception_->IsException(this));
   thread_local_top_.pending_exception_ = heap_.the_hole_value();
 }
 
 
 bool Isolate::has_pending_exception() {
-  DCHECK(!thread_local_top_.pending_exception_->IsException());
-  return !thread_local_top_.pending_exception_->IsTheHole();
+  DCHECK(!thread_local_top_.pending_exception_->IsException(this));
+  return !thread_local_top_.pending_exception_->IsTheHole(this);
 }
 
 
@@ -50,19 +50,19 @@
 
 Object* Isolate::scheduled_exception() {
   DCHECK(has_scheduled_exception());
-  DCHECK(!thread_local_top_.scheduled_exception_->IsException());
+  DCHECK(!thread_local_top_.scheduled_exception_->IsException(this));
   return thread_local_top_.scheduled_exception_;
 }
 
 
 bool Isolate::has_scheduled_exception() {
-  DCHECK(!thread_local_top_.scheduled_exception_->IsException());
+  DCHECK(!thread_local_top_.scheduled_exception_->IsException(this));
   return thread_local_top_.scheduled_exception_ != heap_.the_hole_value();
 }
 
 
 void Isolate::clear_scheduled_exception() {
-  DCHECK(!thread_local_top_.scheduled_exception_->IsException());
+  DCHECK(!thread_local_top_.scheduled_exception_->IsException(this));
   thread_local_top_.scheduled_exception_ = heap_.the_hole_value();
 }
 
@@ -102,7 +102,6 @@
 #undef NATIVE_CONTEXT_FIELD_ACCESSOR
 
 bool Isolate::IsArraySpeciesLookupChainIntact() {
-  if (!FLAG_harmony_species) return true;
   // Note: It would be nice to have debug checks to make sure that the
   // species protector is accurate, but this would be hard to do for most of
   // what the protector stands for:
@@ -121,7 +120,6 @@
 }
 
 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);
 }
diff --git a/src/isolate.cc b/src/isolate.cc
index 9d35113..0075a41 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -27,10 +27,10 @@
 #include "src/ic/stub-cache.h"
 #include "src/interpreter/interpreter.h"
 #include "src/isolate-inl.h"
+#include "src/libsampler/v8-sampler.h"
 #include "src/log.h"
 #include "src/messages.h"
 #include "src/profiler/cpu-profiler.h"
-#include "src/profiler/sampler.h"
 #include "src/prototype.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/runtime-profiler.h"
@@ -39,7 +39,7 @@
 #include "src/v8.h"
 #include "src/version.h"
 #include "src/vm-state-inl.h"
-
+#include "src/wasm/wasm-module.h"
 
 namespace v8 {
 namespace internal {
@@ -386,7 +386,8 @@
     switch (frame->type()) {
       case StackFrame::JAVA_SCRIPT:
       case StackFrame::OPTIMIZED:
-      case StackFrame::INTERPRETED: {
+      case StackFrame::INTERPRETED:
+      case StackFrame::BUILTIN: {
         JavaScriptFrame* js_frame = JavaScriptFrame::cast(frame);
         // Set initial size to the maximum inlining level + 1 for the outermost
         // function.
@@ -551,28 +552,17 @@
     Handle<Script> script(Script::cast(fun->shared()->script()));
 
     if (!line_key_.is_null()) {
-      int script_line_offset = script->line_offset();
-      int line_number = Script::GetLineNumber(script, position);
-      // line_number is already shifted by the script_line_offset.
-      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 column_offset = position - start;
-        if (relative_line_number == 0) {
-          // For the case where the code is on the same line as the script tag.
-          column_offset += script->column_offset();
-        }
+      Script::PositionInfo info;
+      bool valid_pos =
+          script->GetPositionInfo(position, &info, Script::WITH_OFFSET);
+
+      if (!column_key_.is_null() && valid_pos) {
         JSObject::AddProperty(stack_frame, column_key_,
-                              handle(Smi::FromInt(column_offset + 1), isolate_),
+                              handle(Smi::FromInt(info.column + 1), isolate_),
                               NONE);
       }
       JSObject::AddProperty(stack_frame, line_key_,
-                            handle(Smi::FromInt(line_number + 1), isolate_),
+                            handle(Smi::FromInt(info.line + 1), isolate_),
                             NONE);
     }
 
@@ -616,11 +606,10 @@
         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);
+      Handle<String> name = wasm::GetWasmFunctionName(
+          isolate_, handle(frame->wasm_obj(), isolate_),
+          frame->function_index());
+      JSObject::AddProperty(stack_frame, function_key_, name, NONE);
     }
     // Encode the function index as line number.
     if (!line_key_.is_null()) {
@@ -633,6 +622,8 @@
       Code* code = frame->LookupCode();
       int offset = static_cast<int>(frame->pc() - code->instruction_start());
       int position = code->SourcePosition(offset);
+      // Make position 1-based.
+      if (position >= 0) ++position;
       JSObject::AddProperty(stack_frame, column_key_,
                             isolate_->factory()->NewNumberFromInt(position),
                             NONE);
@@ -811,21 +802,6 @@
 }
 
 
-static inline AccessCheckInfo* GetAccessCheckInfo(Isolate* isolate,
-                                                  Handle<JSObject> receiver) {
-  Object* maybe_constructor = receiver->map()->GetConstructor();
-  if (!maybe_constructor->IsJSFunction()) return NULL;
-  JSFunction* constructor = JSFunction::cast(maybe_constructor);
-  if (!constructor->shared()->IsApiFunction()) return NULL;
-
-  Object* data_obj =
-     constructor->shared()->get_api_func_data()->access_check_info();
-  if (data_obj == isolate->heap()->undefined_value()) return NULL;
-
-  return AccessCheckInfo::cast(data_obj);
-}
-
-
 void Isolate::ReportFailedAccessCheck(Handle<JSObject> receiver) {
   if (!thread_local_top()->failed_access_check_callback_) {
     return ScheduleThrow(*factory()->NewTypeError(MessageTemplate::kNoAccess));
@@ -838,7 +814,7 @@
   HandleScope scope(this);
   Handle<Object> data;
   { DisallowHeapAllocation no_gc;
-    AccessCheckInfo* access_check_info = GetAccessCheckInfo(this, receiver);
+    AccessCheckInfo* access_check_info = AccessCheckInfo::Get(this, receiver);
     if (!access_check_info) {
       AllowHeapAllocation doesnt_matter_anymore;
       return ScheduleThrow(
@@ -886,18 +862,12 @@
   HandleScope scope(this);
   Handle<Object> data;
   v8::AccessCheckCallback callback = nullptr;
-  v8::NamedSecurityCallback named_callback = nullptr;
   { DisallowHeapAllocation no_gc;
-    AccessCheckInfo* access_check_info = GetAccessCheckInfo(this, receiver);
+    AccessCheckInfo* access_check_info = AccessCheckInfo::Get(this, receiver);
     if (!access_check_info) return false;
     Object* fun_obj = access_check_info->callback();
     callback = v8::ToCData<v8::AccessCheckCallback>(fun_obj);
     data = handle(access_check_info->data(), this);
-    if (!callback) {
-      fun_obj = access_check_info->named_callback();
-      named_callback = v8::ToCData<v8::NamedSecurityCallback>(fun_obj);
-      if (!named_callback) return false;
-    }
   }
 
   LOG(this, ApiSecurityCheck());
@@ -905,21 +875,12 @@
   {
     // Leaving JavaScript.
     VMState<EXTERNAL> state(this);
-    if (callback) {
-      return callback(v8::Utils::ToLocal(accessing_context),
-                      v8::Utils::ToLocal(receiver), v8::Utils::ToLocal(data));
-    }
-    Handle<Object> key = factory()->undefined_value();
-    return named_callback(v8::Utils::ToLocal(receiver), v8::Utils::ToLocal(key),
-                          v8::ACCESS_HAS, v8::Utils::ToLocal(data));
+    return callback(v8::Utils::ToLocal(accessing_context),
+                    v8::Utils::ToLocal(receiver), v8::Utils::ToLocal(data));
   }
 }
 
 
-const char* const Isolate::kStackOverflowMessage =
-  "Uncaught RangeError: Maximum call stack size exceeded";
-
-
 Object* Isolate::StackOverflow() {
   HandleScope scope(this);
   // At this point we cannot create an Error object using its javascript
@@ -1328,7 +1289,7 @@
   DCHECK(handler->rethrow_);
   DCHECK(handler->capture_message_);
   Object* message = reinterpret_cast<Object*>(handler->message_obj_);
-  DCHECK(message->IsJSMessageObject() || message->IsTheHole());
+  DCHECK(message->IsJSMessageObject() || message->IsTheHole(this));
   thread_local_top()->pending_message_obj_ = message;
 }
 
@@ -1397,7 +1358,8 @@
   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())) {
+  if (!script->IsScript() ||
+      (Script::cast(script)->source()->IsUndefined(this))) {
     return false;
   }
   Handle<Script> casted_script(Script::cast(script));
@@ -1462,7 +1424,7 @@
 
     Object* script = fun->shared()->script();
     if (script->IsScript() &&
-        !(Script::cast(script)->source()->IsUndefined())) {
+        !(Script::cast(script)->source()->IsUndefined(this))) {
       int pos = PositionFromStackTrace(elements, i);
       Handle<Script> casted_script(Script::cast(script));
       *target = MessageLocation(casted_script, pos, pos + 1);
@@ -1477,7 +1439,7 @@
                                                MessageLocation* location) {
   Handle<JSArray> stack_trace_object;
   if (capture_stack_trace_for_uncaught_exceptions_) {
-    if (Object::IsErrorObject(this, exception)) {
+    if (exception->IsJSError()) {
       // We fetch the stack trace that corresponds to this error object.
       // If the lookup fails, the exception is probably not a valid Error
       // object. In that case, we fall through and capture the stack trace
@@ -1586,7 +1548,7 @@
   }
 
   // Actually report the pending message to all message handlers.
-  if (!message_obj->IsTheHole() && should_report_exception) {
+  if (!message_obj->IsTheHole(this) && should_report_exception) {
     HandleScope scope(this);
     Handle<JSMessageObject> message(JSMessageObject::cast(message_obj));
     Handle<JSValue> script_wrapper(JSValue::cast(message->script()));
@@ -1603,7 +1565,7 @@
   DCHECK(has_pending_exception());
 
   if (thread_local_top_.pending_exception_ != heap()->termination_exception() &&
-      !thread_local_top_.pending_message_obj_->IsTheHole()) {
+      !thread_local_top_.pending_message_obj_->IsTheHole(this)) {
     Handle<JSMessageObject> message_obj(
         JSMessageObject::cast(thread_local_top_.pending_message_obj_));
     Handle<JSValue> script_wrapper(JSValue::cast(message_obj->script()));
@@ -1877,12 +1839,14 @@
       // TODO(bmeurer) Initialized lazily because it depends on flags; can
       // be fixed once the default isolate cleanup is done.
       random_number_generator_(NULL),
+      rail_mode_(PERFORMANCE_DEFAULT),
       serializer_enabled_(enable_serializer),
       has_fatal_error_(false),
       initialized_from_snapshot_(false),
       is_tail_call_elimination_enabled_(true),
       cpu_profiler_(NULL),
       heap_profiler_(NULL),
+      code_event_dispatcher_(new CodeEventDispatcher()),
       function_entry_hook_(NULL),
       deferred_handles_head_(NULL),
       optimizing_compile_dispatcher_(NULL),
@@ -2010,7 +1974,7 @@
   }
 
   // We must stop the logger before we tear down other components.
-  Sampler* sampler = logger_->sampler();
+  sampler::Sampler* sampler = logger_->sampler();
   if (sampler && sampler->IsActive()) sampler->Stop();
 
   delete deoptimizer_data_;
@@ -2040,6 +2004,8 @@
   delete cpu_profiler_;
   cpu_profiler_ = NULL;
 
+  code_event_dispatcher_.reset();
+
   delete root_index_map_;
   root_index_map_ = NULL;
 
@@ -2169,12 +2135,12 @@
   } else {
     v8::TryCatch* handler = try_catch_handler();
     DCHECK(thread_local_top_.pending_message_obj_->IsJSMessageObject() ||
-           thread_local_top_.pending_message_obj_->IsTheHole());
+           thread_local_top_.pending_message_obj_->IsTheHole(this));
     handler->can_continue_ = true;
     handler->has_terminated_ = false;
     handler->exception_ = pending_exception();
     // Propagate to the external try-catch only if we got an actual message.
-    if (thread_local_top_.pending_message_obj_->IsTheHole()) return true;
+    if (thread_local_top_.pending_message_obj_->IsTheHole(this)) return true;
 
     handler->message_obj_ = thread_local_top_.pending_message_obj_;
   }
@@ -2331,13 +2297,10 @@
            Internals::kIsolateEmbedderDataOffset);
   CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.roots_)),
            Internals::kIsolateRootsOffset);
-  CHECK_EQ(static_cast<int>(
-               OFFSET_OF(Isolate, heap_.amount_of_external_allocated_memory_)),
-           Internals::kAmountOfExternalAllocatedMemoryOffset);
-  CHECK_EQ(static_cast<int>(OFFSET_OF(
-               Isolate,
-               heap_.amount_of_external_allocated_memory_at_last_global_gc_)),
-           Internals::kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset);
+  CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_)),
+           Internals::kExternalMemoryOffset);
+  CHECK_EQ(static_cast<int>(OFFSET_OF(Isolate, heap_.external_memory_limit_)),
+           Internals::kExternalMemoryLimitOffset);
 
   time_millis_at_init_ = heap_.MonotonicallyIncreasingTimeInMs();
 
@@ -2471,8 +2434,17 @@
 
 void Isolate::DumpAndResetCompilationStats() {
   if (turbo_statistics() != nullptr) {
+    DCHECK(FLAG_turbo_stats || FLAG_turbo_stats_nvp);
+
     OFStream os(stdout);
-    os << *turbo_statistics() << std::endl;
+    if (FLAG_turbo_stats) {
+      AsPrintableStatistics ps = {*turbo_statistics(), false};
+      os << ps << std::endl;
+    }
+    if (FLAG_turbo_stats_nvp) {
+      AsPrintableStatistics ps = {*turbo_statistics(), true};
+      os << ps << std::endl;
+    }
   }
   if (hstatistics() != nullptr) hstatistics()->Print();
   delete turbo_statistics_;
@@ -2516,7 +2488,7 @@
     DisallowHeapAllocation no_gc;
     Object* const initial_js_array_map =
         context()->native_context()->get(Context::ArrayMapIndex(kind));
-    if (!initial_js_array_map->IsUndefined()) {
+    if (!initial_js_array_map->IsUndefined(this)) {
       return Map::cast(initial_js_array_map);
     }
   }
@@ -2532,7 +2504,7 @@
 
 bool Isolate::IsArrayOrObjectPrototype(Object* object) {
   Object* context = heap()->native_contexts_list();
-  while (context != heap()->undefined_value()) {
+  while (!context->IsUndefined(this)) {
     Context* current_context = Context::cast(context);
     if (current_context->initial_object_prototype() == object ||
         current_context->initial_array_prototype() == object) {
@@ -2546,7 +2518,7 @@
 bool Isolate::IsInAnyContext(Object* object, uint32_t index) {
   DisallowHeapAllocation no_gc;
   Object* context = heap()->native_contexts_list();
-  while (context != heap()->undefined_value()) {
+  while (!context->IsUndefined(this)) {
     Context* current_context = Context::cast(context);
     if (current_context->get(index) == object) {
       return true;
@@ -2630,7 +2602,7 @@
   Handle<Symbol> key = factory()->is_concat_spreadable_symbol();
   Handle<Object> value;
   LookupIterator it(array_prototype, key);
-  if (it.IsFound() && !JSReceiver::GetDataProperty(&it)->IsUndefined()) {
+  if (it.IsFound() && !JSReceiver::GetDataProperty(&it)->IsUndefined(this)) {
     // 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.
@@ -2670,7 +2642,6 @@
 }
 
 void Isolate::InvalidateArraySpeciesProtector() {
-  if (!FLAG_harmony_species) return;
   DCHECK(factory()->species_protector()->value()->IsSmi());
   DCHECK(IsArraySpeciesLookupChainIntact());
   factory()->species_protector()->set_value(
@@ -2786,16 +2757,19 @@
 
 
 void Isolate::FireCallCompletedCallback() {
-  bool has_call_completed_callbacks = !call_completed_callbacks_.is_empty();
+  if (!handle_scope_implementer()->CallDepthIsZero()) return;
+
   bool run_microtasks =
       pending_microtask_count() &&
       !handle_scope_implementer()->HasMicrotasksSuppressions() &&
       handle_scope_implementer()->microtasks_policy() ==
           v8::MicrotasksPolicy::kAuto;
-  if (!has_call_completed_callbacks && !run_microtasks) return;
 
-  if (!handle_scope_implementer()->CallDepthIsZero()) return;
   if (run_microtasks) RunMicrotasks();
+  // Prevent stepping from spilling into the next call made by the embedder.
+  if (debug()->is_active()) debug()->ClearStepping();
+
+  if (call_completed_callbacks_.is_empty()) return;
   // Fire callbacks.  Increase call depth to prevent recursive callbacks.
   v8::Isolate* isolate = reinterpret_cast<v8::Isolate*>(this);
   v8::Isolate::SuppressMicrotaskExecutionScope suppress(isolate);
@@ -2836,7 +2810,7 @@
     queue = factory()->CopyFixedArrayAndGrow(queue, num_tasks);
     heap()->set_microtask_queue(*queue);
   }
-  DCHECK(queue->get(num_tasks)->IsUndefined());
+  DCHECK(queue->get(num_tasks)->IsUndefined(this));
   queue->set(num_tasks, *microtask);
   set_pending_microtask_count(num_tasks + 1);
 }
@@ -3020,6 +2994,12 @@
   }
 }
 
+void Isolate::SetRAILMode(RAILMode rail_mode) {
+  rail_mode_ = rail_mode;
+  if (FLAG_trace_rail) {
+    PrintIsolate(this, "RAIL mode: %s\n", RAILModeName(rail_mode_));
+  }
+}
 
 bool StackLimitCheck::JsHasOverflowed(uintptr_t gap) const {
   StackGuard* stack_guard = isolate_->stack_guard();
diff --git a/src/isolate.h b/src/isolate.h
index 5895ebb..4ca842e 100644
--- a/src/isolate.h
+++ b/src/isolate.h
@@ -5,6 +5,7 @@
 #ifndef V8_ISOLATE_H_
 #define V8_ISOLATE_H_
 
+#include <memory>
 #include <queue>
 #include <set>
 
@@ -13,6 +14,7 @@
 #include "src/assert-scope.h"
 #include "src/base/accounting-allocator.h"
 #include "src/base/atomicops.h"
+#include "src/base/hashmap.h"
 #include "src/builtins.h"
 #include "src/cancelable-task.h"
 #include "src/contexts.h"
@@ -22,7 +24,6 @@
 #include "src/futex-emulation.h"
 #include "src/global-handles.h"
 #include "src/handles.h"
-#include "src/hashmap.h"
 #include "src/heap/heap.h"
 #include "src/messages.h"
 #include "src/optimizing-compile-dispatcher.h"
@@ -42,6 +43,8 @@
 class BasicBlockProfiler;
 class Bootstrapper;
 class CallInterfaceDescriptorData;
+class CodeAgingHelper;
+class CodeEventDispatcher;
 class CodeGenerator;
 class CodeRange;
 class CodeStubDescriptor;
@@ -66,7 +69,7 @@
 class InnerPointerToCodeCache;
 class Logger;
 class MaterializedObjectStore;
-class CodeAgingHelper;
+class PositionsRecorder;
 class RegExpStack;
 class SaveContext;
 class StatsTable;
@@ -124,6 +127,17 @@
 #define RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, T) \
   RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, MaybeHandle<T>())
 
+#define RETURN_RESULT_OR_FAILURE(isolate, call)     \
+  do {                                              \
+    Handle<Object> __result__;                      \
+    Isolate* __isolate__ = (isolate);               \
+    if (!(call).ToHandle(&__result__)) {            \
+      DCHECK(__isolate__->has_pending_exception()); \
+      return __isolate__->heap()->exception();      \
+    }                                               \
+    return *__result__;                             \
+  } while (false)
+
 #define ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, value)  \
   do {                                                               \
     if (!(call).ToHandle(&dst)) {                                    \
@@ -132,21 +146,26 @@
     }                                                                \
   } while (false)
 
-#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)  \
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(                             \
-      isolate, dst, call, isolate->heap()->exception())
+#define ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, dst, call)          \
+  do {                                                                  \
+    Isolate* __isolate__ = (isolate);                                   \
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(__isolate__, dst, call,            \
+                                     __isolate__->heap()->exception()); \
+  } while (false)
 
 #define ASSIGN_RETURN_ON_EXCEPTION(isolate, dst, call, T)  \
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, dst, call, MaybeHandle<T>())
 
-#define THROW_NEW_ERROR(isolate, call, T)               \
-  do {                                                  \
-    return isolate->Throw<T>(isolate->factory()->call); \
+#define THROW_NEW_ERROR(isolate, call, T)                       \
+  do {                                                          \
+    Isolate* __isolate__ = (isolate);                           \
+    return __isolate__->Throw<T>(__isolate__->factory()->call); \
   } while (false)
 
-#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call) \
-  do {                                                \
-    return isolate->Throw(*isolate->factory()->call); \
+#define THROW_NEW_ERROR_RETURN_FAILURE(isolate, call)         \
+  do {                                                        \
+    Isolate* __isolate__ = (isolate);                         \
+    return __isolate__->Throw(*__isolate__->factory()->call); \
   } while (false)
 
 #define RETURN_ON_EXCEPTION_VALUE(isolate, call, value)            \
@@ -157,8 +176,12 @@
     }                                                              \
   } while (false)
 
-#define RETURN_FAILURE_ON_EXCEPTION(isolate, call)  \
-  RETURN_ON_EXCEPTION_VALUE(isolate, call, isolate->heap()->exception())
+#define RETURN_FAILURE_ON_EXCEPTION(isolate, call)               \
+  do {                                                           \
+    Isolate* __isolate__ = (isolate);                            \
+    RETURN_ON_EXCEPTION_VALUE(__isolate__, call,                 \
+                              __isolate__->heap()->exception()); \
+  } while (false);
 
 #define RETURN_ON_EXCEPTION(isolate, call, T)  \
   RETURN_ON_EXCEPTION_VALUE(isolate, call, MaybeHandle<T>())
@@ -339,9 +362,9 @@
 
 #if USE_SIMULATOR
 
-#define ISOLATE_INIT_SIMULATOR_LIST(V)                                         \
-  V(bool, simulator_initialized, false)                                        \
-  V(HashMap*, simulator_i_cache, NULL)                                         \
+#define ISOLATE_INIT_SIMULATOR_LIST(V)       \
+  V(bool, simulator_initialized, false)      \
+  V(base::HashMap*, simulator_i_cache, NULL) \
   V(Redirection*, simulator_redirection, NULL)
 #else
 
@@ -352,10 +375,10 @@
 
 #ifdef DEBUG
 
-#define ISOLATE_INIT_DEBUG_ARRAY_LIST(V)                                       \
-  V(CommentStatistic, paged_space_comments_statistics,                         \
-      CommentStatistic::kMaxComments + 1)                                      \
-  V(int, code_kind_statistics, Code::NUMBER_OF_KINDS)
+#define ISOLATE_INIT_DEBUG_ARRAY_LIST(V)               \
+  V(CommentStatistic, paged_space_comments_statistics, \
+    CommentStatistic::kMaxComments + 1)                \
+  V(int, code_kind_statistics, AbstractCode::NUMBER_OF_KINDS)
 #else
 
 #define ISOLATE_INIT_DEBUG_ARRAY_LIST(V)
@@ -373,31 +396,34 @@
 
 typedef List<HeapObject*> DebugObjectCache;
 
-#define ISOLATE_INIT_LIST(V)                                                   \
-  /* Assembler state. */                                                       \
-  V(FatalErrorCallback, exception_behavior, NULL)                              \
-  V(LogEventCallback, event_logger, NULL)                                      \
-  V(AllowCodeGenerationFromStringsCallback, allow_code_gen_callback, NULL)     \
-  /* To distinguish the function templates, so that we can find them in the */ \
-  /* function cache of the native context. */                                  \
-  V(int, next_serial_number, 0)                                                \
-  V(ExternalReferenceRedirectorPointer*, external_reference_redirector, NULL)  \
-  /* State for Relocatable. */                                                 \
-  V(Relocatable*, relocatable_top, NULL)                                       \
-  V(DebugObjectCache*, string_stream_debug_object_cache, NULL)                 \
-  V(Object*, string_stream_current_security_token, NULL)                       \
-  V(ExternalReferenceTable*, external_reference_table, NULL)                   \
-  V(HashMap*, external_reference_map, NULL)                                    \
-  V(HashMap*, root_index_map, NULL)                                            \
-  V(int, pending_microtask_count, 0)                                           \
-  V(HStatistics*, hstatistics, NULL)                                           \
-  V(CompilationStatistics*, turbo_statistics, NULL)                            \
-  V(HTracer*, htracer, NULL)                                                   \
-  V(CodeTracer*, code_tracer, NULL)                                            \
-  V(bool, fp_stubs_generated, false)                                           \
-  V(uint32_t, per_isolate_assert_data, 0xFFFFFFFFu)                            \
-  V(PromiseRejectCallback, promise_reject_callback, NULL)                      \
-  V(const v8::StartupData*, snapshot_blob, NULL)                               \
+#define ISOLATE_INIT_LIST(V)                                                  \
+  /* Assembler state. */                                                      \
+  V(FatalErrorCallback, exception_behavior, nullptr)                          \
+  V(LogEventCallback, event_logger, nullptr)                                  \
+  V(AllowCodeGenerationFromStringsCallback, allow_code_gen_callback, nullptr) \
+  V(ExternalReferenceRedirectorPointer*, external_reference_redirector,       \
+    nullptr)                                                                  \
+  /* State for Relocatable. */                                                \
+  V(Relocatable*, relocatable_top, nullptr)                                   \
+  V(DebugObjectCache*, string_stream_debug_object_cache, nullptr)             \
+  V(Object*, string_stream_current_security_token, nullptr)                   \
+  V(ExternalReferenceTable*, external_reference_table, nullptr)               \
+  V(intptr_t*, api_external_references, nullptr)                              \
+  V(base::HashMap*, external_reference_map, nullptr)                          \
+  V(base::HashMap*, root_index_map, nullptr)                                  \
+  V(int, pending_microtask_count, 0)                                          \
+  V(HStatistics*, hstatistics, nullptr)                                       \
+  V(CompilationStatistics*, turbo_statistics, nullptr)                        \
+  V(HTracer*, htracer, nullptr)                                               \
+  V(CodeTracer*, code_tracer, nullptr)                                        \
+  V(bool, fp_stubs_generated, false)                                          \
+  V(uint32_t, per_isolate_assert_data, 0xFFFFFFFFu)                           \
+  V(PromiseRejectCallback, promise_reject_callback, nullptr)                  \
+  V(const v8::StartupData*, snapshot_blob, nullptr)                           \
+  V(int, code_and_metadata_size, 0)                                           \
+  V(int, bytecode_and_metadata_size, 0)                                       \
+  /* true if being profiled. Causes collection of extra compile info. */      \
+  V(bool, is_profiling, false)                                                \
   ISOLATE_INIT_SIMULATOR_LIST(V)
 
 #define THREAD_LOCAL_TOP_ACCESSOR(type, name)                        \
@@ -765,8 +791,6 @@
   char* ArchiveThread(char* to);
   char* RestoreThread(char* from);
 
-  static const char* const kStackOverflowMessage;
-
   static const int kUC16AlphabetSize = 256;  // See StringSearchBase.
   static const int kBMMaxShift = 250;        // See StringSearchBase.
 
@@ -894,6 +918,10 @@
 
   Debug* debug() { return debug_; }
 
+  bool* is_profiling_address() { return &is_profiling_; }
+  CodeEventDispatcher* code_event_dispatcher() const {
+    return code_event_dispatcher_.get();
+  }
   CpuProfiler* cpu_profiler() const { return cpu_profiler_; }
   HeapProfiler* heap_profiler() const { return heap_profiler_; }
 
@@ -1110,6 +1138,8 @@
 
   bool IsInAnyContext(Object* object, uint32_t index);
 
+  void SetRAILMode(RAILMode rail_mode);
+
  protected:
   explicit Isolate(bool enable_serializer);
   bool IsArrayOrObjectPrototype(Object* object);
@@ -1221,6 +1251,24 @@
 
   void RunMicrotasksInternal();
 
+  const char* RAILModeName(RAILMode rail_mode) const {
+    switch (rail_mode) {
+      case PERFORMANCE_DEFAULT:
+        return "DEFAULT";
+      case PERFORMANCE_RESPONSE:
+        return "RESPONSE";
+      case PERFORMANCE_ANIMATION:
+        return "ANIMATION";
+      case PERFORMANCE_IDLE:
+        return "IDLE";
+      case PERFORMANCE_LOAD:
+        return "LOAD";
+      default:
+        UNREACHABLE();
+    }
+    return "";
+  }
+
   base::Atomic32 id_;
   EntryStackItem* entry_stack_;
   int stack_trace_nesting_level_;
@@ -1267,6 +1315,7 @@
   DateCache* date_cache_;
   CallInterfaceDescriptorData* call_descriptor_data_;
   base::RandomNumberGenerator* random_number_generator_;
+  RAILMode rail_mode_;
 
   // Whether the isolate has been created for snapshotting.
   bool serializer_enabled_;
@@ -1292,6 +1341,7 @@
   Debug* debug_;
   CpuProfiler* cpu_profiler_;
   HeapProfiler* heap_profiler_;
+  std::unique_ptr<CodeEventDispatcher> code_event_dispatcher_;
   FunctionEntryHook function_entry_hook_;
 
   interpreter::Interpreter* interpreter_;
@@ -1373,6 +1423,7 @@
   friend class v8::Isolate;
   friend class v8::Locker;
   friend class v8::Unlocker;
+  friend class v8::SnapshotCreator;
   friend v8::StartupData v8::V8::CreateSnapshotDataBlob(const char*);
   friend v8::StartupData v8::V8::WarmUpSnapshotDataBlob(v8::StartupData,
                                                         const char*);
diff --git a/src/js/array-iterator.js b/src/js/array-iterator.js
index b3e25e9..8203f1f 100644
--- a/src/js/array-iterator.js
+++ b/src/js/array-iterator.js
@@ -22,7 +22,7 @@
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
 var MakeTypeError;
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
-var GlobalTypedArray = global.Uint8Array.__proto__;
+var GlobalTypedArray = %object_get_prototype_of(global.Uint8Array);
 
 utils.Import(function(from) {
   MakeTypeError = from.MakeTypeError;
diff --git a/src/js/array.js b/src/js/array.js
index 0a77b23..c29b8f7 100644
--- a/src/js/array.js
+++ b/src/js/array.js
@@ -11,7 +11,6 @@
 // -------------------------------------------------------------------
 // Imports
 
-var FLAG_harmony_species;
 var GetIterator;
 var GetMethod;
 var GlobalArray = global.Array;
@@ -23,6 +22,7 @@
 var ObjectHasOwnProperty;
 var ObjectToString = utils.ImportNow("object_to_string");
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
+var speciesSymbol = utils.ImportNow("species_symbol");
 var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
 
 utils.Import(function(from) {
@@ -34,23 +34,12 @@
   ObjectHasOwnProperty = from.ObjectHasOwnProperty;
 });
 
-utils.ImportFromExperimental(function(from) {
-  FLAG_harmony_species = from.FLAG_harmony_species;
-});
-
 // -------------------------------------------------------------------
 
 
 function ArraySpeciesCreate(array, length) {
-  var constructor;
-
   length = INVERT_NEG_ZERO(length);
-
-  if (FLAG_harmony_species) {
-    constructor = %ArraySpeciesConstructor(array);
-  } else {
-    constructor = GlobalArray;
-  }
+  var constructor = %ArraySpeciesConstructor(array);
   return new constructor(length);
 }
 
@@ -328,10 +317,9 @@
 // because the receiver is not an array (so we have no choice) or because we
 // know we are not deleting or moving a lot of elements.
 function SimpleSlice(array, start_i, del_count, len, deleted_elements) {
-  var is_array = IS_ARRAY(array);
   for (var i = 0; i < del_count; i++) {
     var index = start_i + i;
-    if (HAS_INDEX(array, index, is_array)) {
+    if (index in array) {
       var current = array[index];
       %CreateDataProperty(deleted_elements, i, current);
     }
@@ -340,7 +328,6 @@
 
 
 function SimpleMove(array, start_i, del_count, len, num_additional_args) {
-  var is_array = IS_ARRAY(array);
   if (num_additional_args !== del_count) {
     // Move the existing elements after the elements to be deleted
     // to the right position in the resulting array.
@@ -348,7 +335,7 @@
       for (var i = len - del_count; i > start_i; i--) {
         var from_index = i + del_count - 1;
         var to_index = i + num_additional_args - 1;
-        if (HAS_INDEX(array, from_index, is_array)) {
+        if (from_index in array) {
           array[to_index] = array[from_index];
         } else {
           delete array[to_index];
@@ -358,7 +345,7 @@
       for (var i = start_i; i < len - del_count; i++) {
         var from_index = i + del_count;
         var to_index = i + num_additional_args;
-        if (HAS_INDEX(array, from_index, is_array)) {
+        if (from_index in array) {
           array[to_index] = array[from_index];
         } else {
           delete array[to_index];
@@ -661,7 +648,7 @@
 
   if (UseSparseVariant(array, len, IS_ARRAY(array), end_i - start_i)) {
     %NormalizeElements(array);
-    %NormalizeElements(result);
+    if (IS_ARRAY(result)) %NormalizeElements(result);
     SparseSlice(array, start_i, end_i - start_i, len, result);
   } else {
     SimpleSlice(array, start_i, end_i - start_i, len, result);
@@ -731,7 +718,7 @@
   }
   if (UseSparseVariant(array, len, IS_ARRAY(array), changed_elements)) {
     %NormalizeElements(array);
-    %NormalizeElements(deleted_elements);
+    if (IS_ARRAY(deleted_elements)) %NormalizeElements(deleted_elements);
     SparseSlice(array, start_i, del_count, len, deleted_elements);
     SparseMove(array, start_i, del_count, len, num_elements_to_add);
   } else {
@@ -1055,9 +1042,8 @@
 // or delete elements from the array.
 function InnerArrayFilter(f, receiver, array, length, result) {
   var result_length = 0;
-  var is_array = IS_ARRAY(array);
   for (var i = 0; i < length; i++) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       if (%_Call(f, receiver, element, i, array)) {
         %CreateDataProperty(result, result_length, element);
@@ -1086,17 +1072,16 @@
 function InnerArrayForEach(f, receiver, array, length) {
   if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f);
 
-  var is_array = IS_ARRAY(array);
   if (IS_UNDEFINED(receiver)) {
     for (var i = 0; i < length; i++) {
-      if (HAS_INDEX(array, i, is_array)) {
+      if (i in array) {
         var element = array[i];
         f(element, i, array);
       }
     }
   } else {
     for (var i = 0; i < length; i++) {
-      if (HAS_INDEX(array, i, is_array)) {
+      if (i in array) {
         var element = array[i];
         %_Call(f, receiver, element, i, array);
       }
@@ -1119,9 +1104,8 @@
 function InnerArraySome(f, receiver, array, length) {
   if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f);
 
-  var is_array = IS_ARRAY(array);
   for (var i = 0; i < length; i++) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       if (%_Call(f, receiver, element, i, array)) return true;
     }
@@ -1146,9 +1130,8 @@
 function InnerArrayEvery(f, receiver, array, length) {
   if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f);
 
-  var is_array = IS_ARRAY(array);
   for (var i = 0; i < length; i++) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       if (!%_Call(f, receiver, element, i, array)) return false;
     }
@@ -1176,9 +1159,8 @@
   var length = TO_LENGTH(array.length);
   if (!IS_CALLABLE(f)) throw MakeTypeError(kCalledNonCallable, f);
   var result = ArraySpeciesCreate(array, length);
-  var is_array = IS_ARRAY(array);
   for (var i = 0; i < length; i++) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       %CreateDataProperty(result, i, %_Call(f, receiver, element, i, array));
     }
@@ -1317,11 +1299,10 @@
     throw MakeTypeError(kCalledNonCallable, callback);
   }
 
-  var is_array = IS_ARRAY(array);
   var i = 0;
   find_initial: if (argumentsLength < 2) {
     for (; i < length; i++) {
-      if (HAS_INDEX(array, i, is_array)) {
+      if (i in array) {
         current = array[i++];
         break find_initial;
       }
@@ -1330,7 +1311,7 @@
   }
 
   for (; i < length; i++) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       current = callback(current, element, i, array);
     }
@@ -1357,11 +1338,10 @@
     throw MakeTypeError(kCalledNonCallable, callback);
   }
 
-  var is_array = IS_ARRAY(array);
   var i = length - 1;
   find_initial: if (argumentsLength < 2) {
     for (; i >= 0; i--) {
-      if (HAS_INDEX(array, i, is_array)) {
+      if (i in array) {
         current = array[i--];
         break find_initial;
       }
@@ -1370,7 +1350,7 @@
   }
 
   for (; i >= 0; i--) {
-    if (HAS_INDEX(array, i, is_array)) {
+    if (i in array) {
       var element = array[i];
       current = callback(current, element, i, array);
     }
@@ -1651,6 +1631,12 @@
   return array;
 }
 
+
+function ArraySpecies() {
+  return this;
+}
+
+
 // -------------------------------------------------------------------
 
 // Set up non-enumerable constructor property on the Array.prototype
@@ -1666,6 +1652,7 @@
   fill: true,
   find: true,
   findIndex: true,
+  includes: true,
   keys: true,
 };
 
@@ -1725,6 +1712,8 @@
   "includes", getFunction("includes", ArrayIncludes, 1),
 ]);
 
+utils.InstallGetter(GlobalArray, speciesSymbol, ArraySpecies);
+
 %FinishArrayPrototypeSetup(GlobalArray.prototype);
 
 // The internal Array prototype doesn't need to be fancy, since it's never
@@ -1784,10 +1773,6 @@
   to.InnerArraySort = InnerArraySort;
   to.InnerArrayToLocaleString = InnerArrayToLocaleString;
   to.PackedArrayReverse = PackedArrayReverse;
-  to.Stack = Stack;
-  to.StackHas = StackHas;
-  to.StackPush = StackPush;
-  to.StackPop = StackPop;
 });
 
 %InstallToContext([
diff --git a/src/js/arraybuffer.js b/src/js/arraybuffer.js
index e739960..b602dcb 100644
--- a/src/js/arraybuffer.js
+++ b/src/js/arraybuffer.js
@@ -16,6 +16,7 @@
 var MaxSimple;
 var MinSimple;
 var SpeciesConstructor;
+var speciesSymbol = utils.ImportNow("species_symbol");
 
 utils.Import(function(from) {
   MakeTypeError = from.MakeTypeError;
@@ -84,6 +85,13 @@
   return result;
 }
 
+
+function ArrayBufferSpecies() {
+  return this;
+}
+
+utils.InstallGetter(GlobalArrayBuffer, speciesSymbol, ArrayBufferSpecies);
+
 utils.InstallGetter(GlobalArrayBuffer.prototype, "byteLength",
                     ArrayBufferGetByteLen);
 
diff --git a/src/js/collection.js b/src/js/collection.js
index 0d7195d..bbb7ed2 100644
--- a/src/js/collection.js
+++ b/src/js/collection.js
@@ -19,6 +19,7 @@
 var MapIterator;
 var NumberIsNaN;
 var SetIterator;
+var speciesSymbol = utils.ImportNow("species_symbol");
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 
 utils.Import(function(from) {
@@ -255,6 +256,12 @@
   }
 }
 
+
+function SetSpecies() {
+  return this;
+}
+
+
 // -------------------------------------------------------------------
 
 %SetCode(GlobalSet, SetConstructor);
@@ -266,6 +273,8 @@
 
 %FunctionSetLength(SetForEach, 1);
 
+utils.InstallGetter(GlobalSet, speciesSymbol, SetSpecies);
+
 // Set up the non-enumerable functions on the Set prototype object.
 utils.InstallGetter(GlobalSet.prototype, "size", SetGetSize);
 utils.InstallFunctions(GlobalSet.prototype, DONT_ENUM, [
@@ -435,6 +444,11 @@
   }
 }
 
+
+function MapSpecies() {
+  return this;
+}
+
 // -------------------------------------------------------------------
 
 %SetCode(GlobalMap, MapConstructor);
@@ -446,6 +460,8 @@
 
 %FunctionSetLength(MapForEach, 1);
 
+utils.InstallGetter(GlobalMap, speciesSymbol, MapSpecies);
+
 // Set up the non-enumerable functions on the Map prototype object.
 utils.InstallGetter(GlobalMap.prototype, "size", MapGetSize);
 utils.InstallFunctions(GlobalMap.prototype, DONT_ENUM, [
diff --git a/src/js/harmony-regexp-exec.js b/src/js/harmony-regexp-exec.js
deleted file mode 100644
index e2eece9..0000000
--- a/src/js/harmony-regexp-exec.js
+++ /dev/null
@@ -1,37 +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) {
-
-%CheckIsBootstrapping();
-
-// -------------------------------------------------------------------
-// Imports
-
-var GlobalRegExp = global.RegExp;
-var RegExpSubclassExecJS = utils.ImportNow("RegExpSubclassExecJS");
-var RegExpSubclassMatch = utils.ImportNow("RegExpSubclassMatch");
-var RegExpSubclassReplace = utils.ImportNow("RegExpSubclassReplace");
-var RegExpSubclassSearch = utils.ImportNow("RegExpSubclassSearch");
-var RegExpSubclassSplit = utils.ImportNow("RegExpSubclassSplit");
-var RegExpSubclassTest = utils.ImportNow("RegExpSubclassTest");
-var matchSymbol = utils.ImportNow("match_symbol");
-var replaceSymbol = utils.ImportNow("replace_symbol");
-var searchSymbol = utils.ImportNow("search_symbol");
-var splitSymbol = utils.ImportNow("split_symbol");
-
-utils.OverrideFunction(GlobalRegExp.prototype, "exec",
-                       RegExpSubclassExecJS, true);
-utils.OverrideFunction(GlobalRegExp.prototype, matchSymbol,
-                       RegExpSubclassMatch, true);
-utils.OverrideFunction(GlobalRegExp.prototype, replaceSymbol,
-                       RegExpSubclassReplace, true);
-utils.OverrideFunction(GlobalRegExp.prototype, searchSymbol,
-                       RegExpSubclassSearch, true);
-utils.OverrideFunction(GlobalRegExp.prototype, splitSymbol,
-                       RegExpSubclassSplit, true);
-utils.OverrideFunction(GlobalRegExp.prototype, "test",
-                       RegExpSubclassTest, true);
-
-})
diff --git a/src/js/harmony-species.js b/src/js/harmony-species.js
deleted file mode 100644
index 426ac46..0000000
--- a/src/js/harmony-species.js
+++ /dev/null
@@ -1,60 +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, extrasUtils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-var GlobalArray = global.Array;
-// It is important that this file is run after src/js/typedarray.js,
-// otherwise GlobalTypedArray would be Object, and we would break
-// old versions of Zepto.
-var GlobalTypedArray = global.Uint8Array.__proto__;
-var GlobalMap = global.Map;
-var GlobalSet = global.Set;
-var GlobalArrayBuffer = global.ArrayBuffer;
-var GlobalPromise = global.Promise;
-var GlobalRegExp = global.RegExp;
-var speciesSymbol = utils.ImportNow("species_symbol");
-
-function ArraySpecies() {
-  return this;
-}
-
-function TypedArraySpecies() {
-  return this;
-}
-
-function MapSpecies() {
-  return this;
-}
-
-function SetSpecies() {
-  return this;
-}
-
-function ArrayBufferSpecies() {
-  return this;
-}
-
-function PromiseSpecies() {
-  return this;
-}
-
-function RegExpSpecies() {
-  return this;
-}
-
-utils.InstallGetter(GlobalArray, speciesSymbol, ArraySpecies, DONT_ENUM);
-utils.InstallGetter(GlobalTypedArray, speciesSymbol, TypedArraySpecies, DONT_ENUM);
-utils.InstallGetter(GlobalMap, speciesSymbol, MapSpecies, DONT_ENUM);
-utils.InstallGetter(GlobalSet, speciesSymbol, SetSpecies, DONT_ENUM);
-utils.InstallGetter(GlobalArrayBuffer, speciesSymbol, ArrayBufferSpecies,
-                    DONT_ENUM);
-utils.InstallGetter(GlobalPromise, speciesSymbol, PromiseSpecies, DONT_ENUM);
-utils.InstallGetter(GlobalRegExp, speciesSymbol, RegExpSpecies, DONT_ENUM);
-
-});
diff --git a/src/js/harmony-unicode-regexps.js b/src/js/harmony-unicode-regexps.js
deleted file mode 100644
index 16d06ba..0000000
--- a/src/js/harmony-unicode-regexps.js
+++ /dev/null
@@ -1,40 +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.
-
-(function(global, utils) {
-
-'use strict';
-
-%CheckIsBootstrapping();
-
-// -------------------------------------------------------------------
-// Imports
-
-var GlobalRegExp = global.RegExp;
-var GlobalRegExpPrototype = GlobalRegExp.prototype;
-var MakeTypeError;
-
-utils.Import(function(from) {
-  MakeTypeError = from.MakeTypeError;
-});
-
-// -------------------------------------------------------------------
-
-// ES6 21.2.5.15.
-function RegExpGetUnicode() {
-  if (!IS_REGEXP(this)) {
-    // TODO(littledan): Remove this RegExp compat workaround
-    if (this === GlobalRegExpPrototype) {
-      %IncrementUseCounter(kRegExpPrototypeUnicodeGetter);
-      return UNDEFINED;
-    }
-    throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.unicode");
-  }
-  return TO_BOOLEAN(REGEXP_UNICODE(this));
-}
-%SetForceInlineFlag(RegExpGetUnicode);
-
-utils.InstallGetter(GlobalRegExp.prototype, 'unicode', RegExpGetUnicode);
-
-})
diff --git a/src/js/i18n.js b/src/js/i18n.js
index 7c9535b..6c769a7 100644
--- a/src/js/i18n.js
+++ b/src/js/i18n.js
@@ -21,7 +21,6 @@
 var ArrayJoin;
 var ArrayPush;
 var FLAG_intl_extra;
-var GlobalBoolean = global.Boolean;
 var GlobalDate = global.Date;
 var GlobalNumber = global.Number;
 var GlobalRegExp = global.RegExp;
@@ -31,7 +30,6 @@
 var InternalArray = utils.InternalArray;
 var InternalRegExpMatch;
 var InternalRegExpReplace
-var IsFinite;
 var IsNaN;
 var MakeError;
 var MakeRangeError;
@@ -51,7 +49,6 @@
   ArrayIndexOf = from.ArrayIndexOf;
   ArrayJoin = from.ArrayJoin;
   ArrayPush = from.ArrayPush;
-  IsFinite = from.IsFinite;
   IsNaN = from.IsNaN;
   MakeError = from.MakeError;
   MakeRangeError = from.MakeRangeError;
@@ -285,7 +282,7 @@
 
   var matcher = options.localeMatcher;
   if (!IS_UNDEFINED(matcher)) {
-    matcher = GlobalString(matcher);
+    matcher = TO_STRING(matcher);
     if (matcher !== 'lookup' && matcher !== 'best fit') {
       throw MakeRangeError(kLocaleMatcher, matcher);
     }
@@ -366,13 +363,13 @@
       var value = options[property];
       switch (type) {
         case 'boolean':
-          value = GlobalBoolean(value);
+          value = TO_BOOLEAN(value);
           break;
         case 'string':
-          value = GlobalString(value);
+          value = TO_STRING(value);
           break;
         case 'number':
-          value = GlobalNumber(value);
+          value = TO_NUMBER(value);
           break;
         default:
           throw MakeError(kWrongValueType);
@@ -523,7 +520,7 @@
   var extension = '';
 
   var updateExtension = function updateExtension(key, value) {
-    return '-' + key + '-' + GlobalString(value);
+    return '-' + key + '-' + TO_STRING(value);
   }
 
   var updateProperty = function updateProperty(property, type, value) {
@@ -742,7 +739,7 @@
     return localeID;
   }
 
-  var localeString = GlobalString(localeID);
+  var localeString = TO_STRING(localeID);
 
   if (isValidLanguageTag(localeString) === false) {
     throw MakeRangeError(kInvalidLanguageTag, localeString);
@@ -1078,7 +1075,7 @@
  */
 function compare(collator, x, y) {
   return %InternalCompare(%GetImplFromInitializedIntlObject(collator),
-                          GlobalString(x), GlobalString(y));
+                          TO_STRING(x), TO_STRING(y));
 };
 
 
@@ -1102,8 +1099,8 @@
 function getNumberOption(options, property, min, max, fallback) {
   var value = options[property];
   if (!IS_UNDEFINED(value)) {
-    value = GlobalNumber(value);
-    if (IsNaN(value) || value < min || value > max) {
+    value = TO_NUMBER(value);
+    if (NUMBER_IS_NAN(value) || value < min || value > max) {
       throw MakeRangeError(kPropertyValueOutOfRange, property);
     }
     return %math_floor(value);
@@ -1348,7 +1345,7 @@
  */
 function IntlParseNumber(formatter, value) {
   return %InternalNumberParse(%GetImplFromInitializedIntlObject(formatter),
-                              GlobalString(value));
+                              TO_STRING(value));
 }
 
 AddBoundMethod(Intl.NumberFormat, 'format', formatNumber, 1, 'numberformat');
@@ -1755,7 +1752,7 @@
     dateMs = TO_NUMBER(dateValue);
   }
 
-  if (!IsFinite(dateMs)) throw MakeRangeError(kDateRange);
+  if (!NUMBER_IS_FINITE(dateMs)) throw MakeRangeError(kDateRange);
 
   return %InternalDateFormat(%GetImplFromInitializedIntlObject(formatter),
                              new GlobalDate(dateMs));
@@ -1770,7 +1767,7 @@
  */
 function IntlParseDate(formatter, value) {
   return %InternalDateParse(%GetImplFromInitializedIntlObject(formatter),
-                            GlobalString(value));
+                            TO_STRING(value));
 }
 
 
@@ -1927,7 +1924,7 @@
  */
 function adoptText(iterator, text) {
   %BreakIteratorAdoptText(%GetImplFromInitializedIntlObject(iterator),
-                          GlobalString(text));
+                          TO_STRING(text));
 }
 
 
@@ -1991,6 +1988,23 @@
   'dateformattime': UNDEFINED,
 };
 
+function clearDefaultObjects() {
+  defaultObjects['dateformatall'] = UNDEFINED;
+  defaultObjects['dateformatdate'] = UNDEFINED;
+  defaultObjects['dateformattime'] = UNDEFINED;
+}
+
+var date_cache_version = 0;
+
+function checkDateCacheCurrent() {
+  var new_date_cache_version = %DateCacheVersion();
+  if (new_date_cache_version == date_cache_version) {
+    return;
+  }
+  date_cache_version = new_date_cache_version;
+
+  clearDefaultObjects();
+}
 
 /**
  * Returns cached or newly created instance of a given service.
@@ -1999,6 +2013,7 @@
 function cachedOrNewService(service, locales, options, defaults) {
   var useOptions = (IS_UNDEFINED(defaults)) ? options : defaults;
   if (IS_UNDEFINED(locales) && IS_UNDEFINED(options)) {
+    checkDateCacheCurrent();
     if (IS_UNDEFINED(defaultObjects[service])) {
       defaultObjects[service] = new savedObjects[service](locales, useOptions);
     }
diff --git a/src/js/json.js b/src/js/json.js
deleted file mode 100644
index c6dbed9..0000000
--- a/src/js/json.js
+++ /dev/null
@@ -1,297 +0,0 @@
-// Copyright 2009 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 GlobalDate = global.Date;
-var GlobalJSON = global.JSON;
-var GlobalSet = global.Set;
-var InternalArray = utils.InternalArray;
-var MakeTypeError;
-var MaxSimple;
-var MinSimple;
-var ObjectHasOwnProperty;
-var Stack;
-var StackHas;
-var StackPop;
-var StackPush;
-var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
-
-utils.Import(function(from) {
-  MakeTypeError = from.MakeTypeError;
-  MaxSimple = from.MaxSimple;
-  MinSimple = from.MinSimple;
-  ObjectHasOwnProperty = from.ObjectHasOwnProperty;
-  Stack = from.Stack;
-  StackHas = from.StackHas;
-  StackPop = from.StackPop;
-  StackPush = from.StackPush;
-});
-
-// -------------------------------------------------------------------
-
-function CreateDataProperty(o, p, v) {
-  var desc = {value: v, enumerable: true, writable: true, configurable: true};
-  return %reflect_define_property(o, p, desc);
-}
-
-
-function InternalizeJSONProperty(holder, name, reviver) {
-  var val = holder[name];
-  if (IS_RECEIVER(val)) {
-    if (%is_arraylike(val)) {
-      var length = TO_LENGTH(val.length);
-      for (var i = 0; i < length; i++) {
-        var newElement =
-            InternalizeJSONProperty(val, %_NumberToString(i), reviver);
-        if (IS_UNDEFINED(newElement)) {
-          %reflect_delete_property(val, i);
-        } else {
-          CreateDataProperty(val, i, newElement);
-        }
-      }
-    } else {
-      var keys = %object_keys(val);
-      for (var i = 0; i < keys.length; i++) {
-        var p = keys[i];
-        var newElement = InternalizeJSONProperty(val, p, reviver);
-        if (IS_UNDEFINED(newElement)) {
-          %reflect_delete_property(val, p);
-        } else {
-          CreateDataProperty(val, p, newElement);
-        }
-      }
-    }
-  }
-  return %_Call(reviver, holder, name, val);
-}
-
-
-function JSONParse(text, reviver) {
-  var unfiltered = %ParseJson(text);
-  if (IS_CALLABLE(reviver)) {
-    return InternalizeJSONProperty({'': unfiltered}, '', reviver);
-  } else {
-    return unfiltered;
-  }
-}
-
-
-function SerializeArray(value, replacer, stack, indent, gap) {
-  if (StackHas(stack, value)) throw MakeTypeError(kCircularStructure);
-  StackPush(stack, value);
-  var stepback = indent;
-  indent += gap;
-  var partial = new InternalArray();
-  var len = TO_LENGTH(value.length);
-  for (var i = 0; i < len; i++) {
-    var strP = JSONSerialize(%_NumberToString(i), value, replacer, stack,
-                             indent, gap);
-    if (IS_UNDEFINED(strP)) {
-      strP = "null";
-    }
-    partial.push(strP);
-  }
-  var final;
-  if (gap == "") {
-    final = "[" + partial.join(",") + "]";
-  } else if (partial.length > 0) {
-    var separator = ",\n" + indent;
-    final = "[\n" + indent + partial.join(separator) + "\n" +
-        stepback + "]";
-  } else {
-    final = "[]";
-  }
-  StackPop(stack);
-  return final;
-}
-
-
-function SerializeObject(value, replacer, stack, indent, gap) {
-  if (StackHas(stack, value)) throw MakeTypeError(kCircularStructure);
-  StackPush(stack, value);
-  var stepback = indent;
-  indent += gap;
-  var partial = new InternalArray();
-  if (IS_ARRAY(replacer)) {
-    var length = replacer.length;
-    for (var i = 0; i < length; i++) {
-      var p = replacer[i];
-      var strP = JSONSerialize(p, value, replacer, stack, indent, gap);
-      if (!IS_UNDEFINED(strP)) {
-        var member = %QuoteJSONString(p) + ":";
-        if (gap != "") member += " ";
-        member += strP;
-        partial.push(member);
-      }
-    }
-  } else {
-    var keys = %object_keys(value);
-    for (var i = 0; i < keys.length; i++) {
-      var p = keys[i];
-      var strP = JSONSerialize(p, value, replacer, stack, indent, gap);
-      if (!IS_UNDEFINED(strP)) {
-        var member = %QuoteJSONString(p) + ":";
-        if (gap != "") member += " ";
-        member += strP;
-        partial.push(member);
-      }
-    }
-  }
-  var final;
-  if (gap == "") {
-    final = "{" + partial.join(",") + "}";
-  } else if (partial.length > 0) {
-    var separator = ",\n" + indent;
-    final = "{\n" + indent + partial.join(separator) + "\n" +
-        stepback + "}";
-  } else {
-    final = "{}";
-  }
-  StackPop(stack);
-  return final;
-}
-
-
-function JSONSerialize(key, holder, replacer, stack, indent, gap) {
-  var value = holder[key];
-  if (IS_RECEIVER(value)) {
-    var toJSON = value.toJSON;
-    if (IS_CALLABLE(toJSON)) {
-      value = %_Call(toJSON, value, key);
-    }
-  }
-  if (IS_CALLABLE(replacer)) {
-    value = %_Call(replacer, holder, key, value);
-  }
-  if (IS_STRING(value)) {
-    return %QuoteJSONString(value);
-  } else if (IS_NUMBER(value)) {
-    return JSON_NUMBER_TO_STRING(value);
-  } else if (IS_BOOLEAN(value)) {
-    return value ? "true" : "false";
-  } else if (IS_NULL(value)) {
-    return "null";
-  } else if (IS_RECEIVER(value) && !IS_CALLABLE(value)) {
-    // Non-callable object. If it's a primitive wrapper, it must be unwrapped.
-    if (%is_arraylike(value)) {
-      return SerializeArray(value, replacer, stack, indent, gap);
-    } else if (IS_NUMBER_WRAPPER(value)) {
-      value = TO_NUMBER(value);
-      return JSON_NUMBER_TO_STRING(value);
-    } else if (IS_STRING_WRAPPER(value)) {
-      return %QuoteJSONString(TO_STRING(value));
-    } else if (IS_BOOLEAN_WRAPPER(value)) {
-      return %_ValueOf(value) ? "true" : "false";
-    } else {
-      return SerializeObject(value, replacer, stack, indent, gap);
-    }
-  }
-  // Undefined or a callable object.
-  return UNDEFINED;
-}
-
-
-function JSONStringify(value, replacer, space) {
-  if (arguments.length === 1 && !IS_PROXY(value)) {
-    return %BasicJSONStringify(value);
-  }
-  if (!IS_CALLABLE(replacer) && %is_arraylike(replacer)) {
-    var property_list = new InternalArray();
-    var seen_properties = new GlobalSet();
-    var length = TO_LENGTH(replacer.length);
-    for (var i = 0; i < length; i++) {
-      var v = replacer[i];
-      var item;
-      if (IS_STRING(v)) {
-        item = v;
-      } else if (IS_NUMBER(v)) {
-        item = %_NumberToString(v);
-      } else if (IS_STRING_WRAPPER(v) || IS_NUMBER_WRAPPER(v)) {
-        item = TO_STRING(v);
-      } else {
-        continue;
-      }
-      if (!seen_properties.has(item)) {
-        property_list.push(item);
-        seen_properties.add(item);
-      }
-    }
-    replacer = property_list;
-  }
-  if (IS_OBJECT(space)) {
-    // Unwrap 'space' if it is wrapped
-    if (IS_NUMBER_WRAPPER(space)) {
-      space = TO_NUMBER(space);
-    } else if (IS_STRING_WRAPPER(space)) {
-      space = TO_STRING(space);
-    }
-  }
-  var gap;
-  if (IS_NUMBER(space)) {
-    space = MaxSimple(0, MinSimple(TO_INTEGER(space), 10));
-    gap = %_SubString("          ", 0, space);
-  } else if (IS_STRING(space)) {
-    if (space.length > 10) {
-      gap = %_SubString(space, 0, 10);
-    } else {
-      gap = space;
-    }
-  } else {
-    gap = "";
-  }
-  if (!IS_CALLABLE(replacer) && !property_list && !gap && !IS_PROXY(value)) {
-    return %BasicJSONStringify(value);
-  }
-  return JSONSerialize('', {'': value}, replacer, new Stack(), "", gap);
-}
-
-// -------------------------------------------------------------------
-
-%AddNamedProperty(GlobalJSON, toStringTagSymbol, "JSON", READ_ONLY | DONT_ENUM);
-
-// Set up non-enumerable properties of the JSON object.
-utils.InstallFunctions(GlobalJSON, DONT_ENUM, [
-  "parse", JSONParse,
-  "stringify", JSONStringify
-]);
-
-// -------------------------------------------------------------------
-// Date.toJSON
-
-// 20.3.4.37 Date.prototype.toJSON ( key )
-function DateToJSON(key) {
-  var o = TO_OBJECT(this);
-  var tv = TO_PRIMITIVE_NUMBER(o);
-  if (IS_NUMBER(tv) && !NUMBER_IS_FINITE(tv)) {
-    return null;
-  }
-  return o.toISOString();
-}
-
-// Set up non-enumerable functions of the Date prototype object.
-utils.InstallFunctions(GlobalDate.prototype, DONT_ENUM, [
-  "toJSON", DateToJSON
-]);
-
-// -------------------------------------------------------------------
-// JSON Builtins
-
-function JsonSerializeAdapter(key, object) {
-  var holder = {};
-  holder[key] = object;
-  // No need to pass the actual holder since there is no replacer function.
-  return JSONSerialize(key, holder, UNDEFINED, new Stack(), "", "");
-}
-
-%InstallToContext(["json_serialize_adapter", JsonSerializeAdapter]);
-
-})
diff --git a/src/js/macros.py b/src/js/macros.py
index 3cc2d6c..c6ed019 100644
--- a/src/js/macros.py
+++ b/src/js/macros.py
@@ -110,7 +110,6 @@
 macro NUMBER_IS_FINITE(arg) = (%_IsSmi(%IS_VAR(arg)) || ((arg == arg) && (arg != 1/0) && (arg != -1/0)));
 macro TO_BOOLEAN(arg) = (!!(arg));
 macro TO_INTEGER(arg) = (%_ToInteger(arg));
-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);
@@ -124,7 +123,6 @@
 macro TO_NAME(arg) = (%_ToName(arg));
 macro JSON_NUMBER_TO_STRING(arg) = ((%_IsSmi(%IS_VAR(arg)) || arg - arg == 0) ? %_NumberToString(arg) : "null");
 macro HAS_OWN_PROPERTY(obj, key) = (%_Call(ObjectHasOwnProperty, obj, key));
-macro HAS_INDEX(array, index, is_array) = ((is_array && %_HasFastPackedElements(%IS_VAR(array)) && (index < array.length)) ||  (index in array));
 
 # Private names.
 macro IS_PRIVATE(sym) = (%SymbolIsPrivate(sym));
diff --git a/src/js/math.js b/src/js/math.js
index f8ad6b1..74d3aa6 100644
--- a/src/js/math.js
+++ b/src/js/math.js
@@ -16,7 +16,6 @@
 var GlobalFloat64Array = global.Float64Array;
 var GlobalMath = global.Math;
 var GlobalObject = global.Object;
-var InternalArray = utils.InternalArray;
 var NaN = %GetRootNaN();
 var nextRandomIndex = 0;
 var randomNumbers = UNDEFINED;
@@ -30,25 +29,6 @@
   return (x > 0) ? x : 0 - x;
 }
 
-// ECMA 262 - 15.8.2.5
-// The naming of y and x matches the spec, as does the order in which
-// ToNumber (valueOf) is called.
-function MathAtan2JS(y, x) {
-  y = +y;
-  x = +x;
-  return %MathAtan2(y, x);
-}
-
-// ECMA 262 - 15.8.2.8
-function MathExp(x) {
-  return %MathExpRT(TO_NUMBER(x));
-}
-
-// ECMA 262 - 15.8.2.10
-function MathLog(x) {
-  return %_MathLogRT(TO_NUMBER(x));
-}
-
 // ECMA 262 - 15.8.2.13
 function MathPowJS(x, y) {
   return %_MathPow(TO_NUMBER(x), TO_NUMBER(y));
@@ -63,7 +43,11 @@
   // first two elements are reserved for the PRNG state.
   if (nextRandomIndex <= kRandomNumberStart) {
     randomNumbers = %GenerateRandomNumbers(randomNumbers);
-    nextRandomIndex = randomNumbers.length;
+    if (%_IsTypedArray(randomNumbers)) {
+      nextRandomIndex = %_TypedArrayGetLength(randomNumbers);
+    } else {
+      nextRandomIndex = randomNumbers.length;
+    }
   }
   return randomNumbers[--nextRandomIndex];
 }
@@ -71,7 +55,7 @@
 function MathRandomRaw() {
   if (nextRandomIndex <= kRandomNumberStart) {
     randomNumbers = %GenerateRandomNumbers(randomNumbers);
-    nextRandomIndex = randomNumbers.length;
+    nextRandomIndex = %_TypedArrayGetLength(randomNumbers);
   }
   return %_DoubleLo(randomNumbers[--nextRandomIndex]) & 0x3FFFFFFF;
 }
@@ -90,9 +74,9 @@
   x = TO_NUMBER(x);
   // Idempotent for NaN, +/-0 and +/-Infinity.
   if (x === 0 || !NUMBER_IS_FINITE(x)) return x;
-  if (x > 0) return MathLog(x + %math_sqrt(x * x + 1));
+  if (x > 0) return %math_log(x + %math_sqrt(x * x + 1));
   // This is to prevent numerical errors caused by large negative x.
-  return -MathLog(-x + %math_sqrt(x * x + 1));
+  return -%math_log(-x + %math_sqrt(x * x + 1));
 }
 
 // ES6 draft 09-27-13, section 20.2.2.3.
@@ -101,17 +85,7 @@
   if (x < 1) return NaN;
   // Idempotent for NaN and +Infinity.
   if (!NUMBER_IS_FINITE(x)) return x;
-  return MathLog(x + %math_sqrt(x + 1) * %math_sqrt(x - 1));
-}
-
-// ES6 draft 09-27-13, section 20.2.2.7.
-function MathAtanh(x) {
-  x = TO_NUMBER(x);
-  // Idempotent for +/-0.
-  if (x === 0) return x;
-  // Returns NaN for NaN and +/- Infinity.
-  if (!NUMBER_IS_FINITE(x)) return NaN;
-  return 0.5 * MathLog((1 + x) / (1 - x));
+  return %math_log(x + %math_sqrt(x + 1) * %math_sqrt(x - 1));
 }
 
 // ES6 draft 09-27-13, section 20.2.2.17.
@@ -143,29 +117,6 @@
   return %math_sqrt(sum) * max;
 }
 
-// ES6 draft 09-27-13, section 20.2.2.9.
-// Cube root approximation, refer to: http://metamerist.com/cbrt/cbrt.htm
-// Using initial approximation adapted from Kahan's cbrt and 4 iterations
-// of Newton's method.
-function MathCbrt(x) {
-  x = TO_NUMBER(x);
-  if (x == 0 || !NUMBER_IS_FINITE(x)) return x;
-  return x >= 0 ? CubeRoot(x) : -CubeRoot(-x);
-}
-
-macro NEWTON_ITERATION_CBRT(x, approx)
-  (1.0 / 3.0) * (x / (approx * approx) + 2 * approx);
-endmacro
-
-function CubeRoot(x) {
-  var approx_hi = %math_floor(%_DoubleHi(x) / 3) + 0x2A9F7893;
-  var approx = %_ConstructDouble(approx_hi | 0, 0);
-  approx = NEWTON_ITERATION_CBRT(x, approx);
-  approx = NEWTON_ITERATION_CBRT(x, approx);
-  approx = NEWTON_ITERATION_CBRT(x, approx);
-  return NEWTON_ITERATION_CBRT(x, approx);
-}
-
 // -------------------------------------------------------------------
 
 %InstallToContext([
@@ -176,15 +127,6 @@
 
 // Set up math constants.
 utils.InstallConstants(GlobalMath, [
-  // ECMA-262, section 15.8.1.1.
-  "E", 2.7182818284590452354,
-  // ECMA-262, section 15.8.1.2.
-  "LN10", 2.302585092994046,
-  // ECMA-262, section 15.8.1.3.
-  "LN2", 0.6931471805599453,
-  // ECMA-262, section 15.8.1.4.
-  "LOG2E", 1.4426950408889634,
-  "LOG10E", 0.4342944819032518,
   "PI", 3.1415926535897932,
   "SQRT1_2", 0.7071067811865476,
   "SQRT2", 1.4142135623730951
@@ -195,20 +137,13 @@
 utils.InstallFunctions(GlobalMath, DONT_ENUM, [
   "random", MathRandom,
   "abs", MathAbs,
-  "exp", MathExp,
-  "log", MathLog,
-  "atan2", MathAtan2JS,
   "pow", MathPowJS,
   "sign", MathSign,
   "asinh", MathAsinh,
   "acosh", MathAcosh,
-  "atanh", MathAtanh,
   "hypot", MathHypot,
-  "cbrt", MathCbrt
 ]);
 
-%SetForceInlineFlag(MathAbs);
-%SetForceInlineFlag(MathAtan2JS);
 %SetForceInlineFlag(MathRandom);
 %SetForceInlineFlag(MathSign);
 
@@ -217,7 +152,6 @@
 
 utils.Export(function(to) {
   to.MathAbs = MathAbs;
-  to.MathExp = MathExp;
   to.IntRandom = MathRandomRaw;
 });
 
diff --git a/src/js/messages.js b/src/js/messages.js
index b5c4b56..24d8d2b 100644
--- a/src/js/messages.js
+++ b/src/js/messages.js
@@ -41,7 +41,6 @@
 var Script = utils.ImportNow("Script");
 var stackTraceSymbol = utils.ImportNow("stack_trace_symbol");
 var StringIndexOf;
-var StringSubstring;
 var SymbolToString;
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 var Uint16x8ToString;
@@ -59,7 +58,6 @@
   Int8x16ToString = from.Int8x16ToString;
   ObjectHasOwnProperty = from.ObjectHasOwnProperty;
   StringIndexOf = from.StringIndexOf;
-  StringSubstring = from.StringSubstring;
   SymbolToString = from.SymbolToString;
   Uint16x8ToString = from.Uint16x8ToString;
   Uint32x4ToString = from.Uint32x4ToString;
@@ -214,210 +212,26 @@
   var start_position = %MessageGetStartPosition(message);
   var location = script.locationFromPosition(start_position, true);
   if (location == null) return "";
-  return location.sourceText();
-}
-
-
-/**
- * Find a line number given a specific source position.
- * @param {number} position The source position.
- * @return {number} 0 if input too small, -1 if input too large,
-       else the line number.
- */
-function ScriptLineFromPosition(position) {
-  var lower = 0;
-  var upper = this.lineCount() - 1;
-  var line_ends = this.line_ends;
-
-  // We'll never find invalid positions so bail right away.
-  if (position > line_ends[upper]) {
-    return -1;
-  }
-
-  // This means we don't have to safe-guard indexing line_ends[i - 1].
-  if (position <= line_ends[0]) {
-    return 0;
-  }
-
-  // Binary search to find line # from position range.
-  while (upper >= 1) {
-    var i = (lower + upper) >> 1;
-
-    if (position > line_ends[i]) {
-      lower = i + 1;
-    } else if (position <= line_ends[i - 1]) {
-      upper = i - 1;
-    } else {
-      return i;
-    }
-  }
-
-  return -1;
+  return location.sourceText;
 }
 
 
 /**
  * Get information on a specific source position.
+ * Returns an object with the following following properties:
+ *   script     : script object for the source
+ *   line       : source line number
+ *   column     : source column within the line
+ *   position   : position within the source
+ *   sourceText : a string containing the current line
  * @param {number} position The source position
  * @param {boolean} include_resource_offset Set to true to have the resource
  *     offset added to the location
- * @return {SourceLocation}
- *     If line is negative or not in the source null is returned.
+ * @return If line is negative or not in the source null is returned.
  */
 function ScriptLocationFromPosition(position,
                                     include_resource_offset) {
-  var line = this.lineFromPosition(position);
-  if (line == -1) return null;
-
-  // Determine start, end and column.
-  var line_ends = this.line_ends;
-  var start = line == 0 ? 0 : line_ends[line - 1] + 1;
-  var end = line_ends[line];
-  if (end > 0 && %_StringCharAt(this.source, end - 1) === '\r') {
-    end--;
-  }
-  var column = position - start;
-
-  // Adjust according to the offset within the resource.
-  if (include_resource_offset) {
-    line += this.line_offset;
-    if (line == this.line_offset) {
-      column += this.column_offset;
-    }
-  }
-
-  return new SourceLocation(this, position, line, column, start, end);
-}
-
-
-/**
- * Get information on a specific source line and column possibly offset by a
- * fixed source position. This function is used to find a source position from
- * a line and column position. The fixed source position offset is typically
- * used to find a source position in a function based on a line and column in
- * the source for the function alone. The offset passed will then be the
- * start position of the source for the function within the full script source.
- * @param {number} opt_line The line within the source. Default value is 0
- * @param {number} opt_column The column in within the line. Default value is 0
- * @param {number} opt_offset_position The offset from the begining of the
- *     source from where the line and column calculation starts.
- *     Default value is 0
- * @return {SourceLocation}
- *     If line is negative or not in the source null is returned.
- */
-function ScriptLocationFromLine(opt_line, opt_column, opt_offset_position) {
-  // Default is the first line in the script. Lines in the script is relative
-  // to the offset within the resource.
-  var line = 0;
-  if (!IS_UNDEFINED(opt_line)) {
-    line = opt_line - this.line_offset;
-  }
-
-  // Default is first column. If on the first line add the offset within the
-  // resource.
-  var column = opt_column || 0;
-  if (line == 0) {
-    column -= this.column_offset;
-  }
-
-  var offset_position = opt_offset_position || 0;
-  if (line < 0 || column < 0 || offset_position < 0) return null;
-  if (line == 0) {
-    return this.locationFromPosition(offset_position + column, false);
-  } else {
-    // Find the line where the offset position is located.
-    var offset_line = this.lineFromPosition(offset_position);
-
-    if (offset_line == -1 || offset_line + line >= this.lineCount()) {
-      return null;
-    }
-
-    return this.locationFromPosition(
-        this.line_ends[offset_line + line - 1] + 1 + column);  // line > 0 here.
-  }
-}
-
-
-/**
- * Get a slice of source code from the script. The boundaries for the slice is
- * specified in lines.
- * @param {number} opt_from_line The first line (zero bound) in the slice.
- *     Default is 0
- * @param {number} opt_to_column The last line (zero bound) in the slice (non
- *     inclusive). Default is the number of lines in the script
- * @return {SourceSlice} The source slice or null of the parameters where
- *     invalid
- */
-function ScriptSourceSlice(opt_from_line, opt_to_line) {
-  var from_line = IS_UNDEFINED(opt_from_line) ? this.line_offset
-                                              : opt_from_line;
-  var to_line = IS_UNDEFINED(opt_to_line) ? this.line_offset + this.lineCount()
-                                          : opt_to_line;
-
-  // Adjust according to the offset within the resource.
-  from_line -= this.line_offset;
-  to_line -= this.line_offset;
-  if (from_line < 0) from_line = 0;
-  if (to_line > this.lineCount()) to_line = this.lineCount();
-
-  // Check parameters.
-  if (from_line >= this.lineCount() ||
-      to_line < 0 ||
-      from_line > to_line) {
-    return null;
-  }
-
-  var line_ends = this.line_ends;
-  var from_position = from_line == 0 ? 0 : line_ends[from_line - 1] + 1;
-  var to_position = to_line == 0 ? 0 : line_ends[to_line - 1] + 1;
-
-  // Return a source slice with line numbers re-adjusted to the resource.
-  return new SourceSlice(this,
-                         from_line + this.line_offset,
-                         to_line + this.line_offset,
-                          from_position, to_position);
-}
-
-
-function ScriptSourceLine(opt_line) {
-  // Default is the first line in the script. Lines in the script are relative
-  // to the offset within the resource.
-  var line = 0;
-  if (!IS_UNDEFINED(opt_line)) {
-    line = opt_line - this.line_offset;
-  }
-
-  // Check parameter.
-  if (line < 0 || this.lineCount() <= line) {
-    return null;
-  }
-
-  // Return the source line.
-  var line_ends = this.line_ends;
-  var start = line == 0 ? 0 : line_ends[line - 1] + 1;
-  var end = line_ends[line];
-  return %_Call(StringSubstring, this.source, start, end);
-}
-
-
-/**
- * Returns the number of source lines.
- * @return {number}
- *     Number of source lines.
- */
-function ScriptLineCount() {
-  // Return number of source lines.
-  return this.line_ends.length;
-}
-
-
-/**
- * Returns the position of the nth line end.
- * @return {number}
- *     Zero-based position of the nth line end in the script.
- */
-function ScriptLineEnd(n) {
-  return this.line_ends[n];
+  return %ScriptPositionInfo(this, position, !!include_resource_offset);
 }
 
 
@@ -442,113 +256,15 @@
     "name",
     "source_url",
     "source_mapping_url",
-    "line_ends",
     "line_offset",
     "column_offset"
   ], [
-    "lineFromPosition", ScriptLineFromPosition,
     "locationFromPosition", ScriptLocationFromPosition,
-    "locationFromLine", ScriptLocationFromLine,
-    "sourceSlice", ScriptSourceSlice,
-    "sourceLine", ScriptSourceLine,
-    "lineCount", ScriptLineCount,
     "nameOrSourceURL", ScriptNameOrSourceURL,
-    "lineEnd", ScriptLineEnd
   ]
 );
 
 
-/**
- * Class for source location. A source location is a position within some
- * source with the following properties:
- *   script   : script object for the source
- *   line     : source line number
- *   column   : source column within the line
- *   position : position within the source
- *   start    : position of start of source context (inclusive)
- *   end      : position of end of source context (not inclusive)
- * Source text for the source context is the character interval
- * [start, end[. In most cases end will point to a newline character.
- * It might point just past the final position of the source if the last
- * source line does not end with a newline character.
- * @param {Script} script The Script object for which this is a location
- * @param {number} position Source position for the location
- * @param {number} line The line number for the location
- * @param {number} column The column within the line for the location
- * @param {number} start Source position for start of source context
- * @param {number} end Source position for end of source context
- * @constructor
- */
-function SourceLocation(script, position, line, column, start, end) {
-  this.script = script;
-  this.position = position;
-  this.line = line;
-  this.column = column;
-  this.start = start;
-  this.end = end;
-}
-
-
-/**
- * Get the source text for a SourceLocation
- * @return {String}
- *     Source text for this location.
- */
-function SourceLocationSourceText() {
-  return %_Call(StringSubstring, this.script.source, this.start, this.end);
-}
-
-
-utils.SetUpLockedPrototype(SourceLocation,
-  ["script", "position", "line", "column", "start", "end"],
-  ["sourceText", SourceLocationSourceText]
-);
-
-
-/**
- * Class for a source slice. A source slice is a part of a script source with
- * the following properties:
- *   script        : script object for the source
- *   from_line     : line number for the first line in the slice
- *   to_line       : source line number for the last line in the slice
- *   from_position : position of the first character in the slice
- *   to_position   : position of the last character in the slice
- * The to_line and to_position are not included in the slice, that is the lines
- * in the slice are [from_line, to_line[. Likewise the characters in the slice
- * are [from_position, to_position[.
- * @param {Script} script The Script object for the source slice
- * @param {number} from_line
- * @param {number} to_line
- * @param {number} from_position
- * @param {number} to_position
- * @constructor
- */
-function SourceSlice(script, from_line, to_line, from_position, to_position) {
-  this.script = script;
-  this.from_line = from_line;
-  this.to_line = to_line;
-  this.from_position = from_position;
-  this.to_position = to_position;
-}
-
-/**
- * Get the source text for a SourceSlice
- * @return {String} Source text for this slice. The last line will include
- *     the line terminating characters (if any)
- */
-function SourceSliceSourceText() {
-  return %_Call(StringSubstring,
-                this.script.source,
-                this.from_position,
-                this.to_position);
-}
-
-utils.SetUpLockedPrototype(SourceSlice,
-  ["script", "from_line", "to_line", "from_position", "to_position"],
-  ["sourceText", SourceSliceSourceText]
-);
-
-
 function GetStackTraceLine(recv, fun, pos, isGlobal) {
   return new CallSite(recv, fun, pos, false).toString();
 }
@@ -559,8 +275,8 @@
 function CallSite(receiver, fun, pos, strict_mode) {
   // 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);
+  if (!IS_FUNCTION(fun) && !%IsWasmObject(receiver)) {
+    throw MakeTypeError(kCallSiteExpectsFunction, typeof receiver, typeof fun);
   }
 
   if (IS_UNDEFINED(new.target)) {
@@ -630,12 +346,6 @@
 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);
 }
 
@@ -679,7 +389,8 @@
     var funName = this.getFunctionName();
     var funcIndex = GET_PRIVATE(this, callSiteWasmFunctionIndexSymbol);
     var pos = this.getPosition();
-    return funName + " (<WASM>:" + funcIndex + ":" + pos + ")";
+    if (IS_NULL(funName)) funName = "<WASM UNNAMED>";
+    return funName + " (<WASM>[" + funcIndex + "]+" + pos + ")";
   }
 
   var fileName;
diff --git a/src/js/prologue.js b/src/js/prologue.js
index b352eb1..79fe9b7 100644
--- a/src/js/prologue.js
+++ b/src/js/prologue.js
@@ -266,9 +266,6 @@
     imports_from_experimental(exports_container);
   }
 
-  utils.CreateDoubleResultArray();
-  utils.CreateDoubleResultArray = UNDEFINED;
-
   utils.Export = UNDEFINED;
   utils.PostDebug = UNDEFINED;
   utils.PostExperimentals = UNDEFINED;
@@ -281,9 +278,6 @@
     imports(exports_container);
   }
 
-  utils.CreateDoubleResultArray();
-  utils.CreateDoubleResultArray = UNDEFINED;
-
   exports_container = UNDEFINED;
 
   utils.Export = UNDEFINED;
diff --git a/src/js/promise.js b/src/js/promise.js
index 42b772b..5e8c460 100644
--- a/src/js/promise.js
+++ b/src/js/promise.js
@@ -21,10 +21,13 @@
     utils.ImportNow("promise_reject_reactions_symbol");
 var promiseFulfillReactionsSymbol =
     utils.ImportNow("promise_fulfill_reactions_symbol");
+var promiseDeferredReactionsSymbol =
+    utils.ImportNow("promise_deferred_reactions_symbol");
 var promiseRawSymbol = utils.ImportNow("promise_raw_symbol");
 var promiseStateSymbol = utils.ImportNow("promise_state_symbol");
 var promiseResultSymbol = utils.ImportNow("promise_result_symbol");
 var SpeciesConstructor;
+var speciesSymbol = utils.ImportNow("species_symbol");
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 
 utils.Import(function(from) {
@@ -51,7 +54,7 @@
   var resolve = value => {
     if (alreadyResolved === true) return;
     alreadyResolved = true;
-    FulfillPromise(promise, value);
+    ResolvePromise(promise, value);
   };
 
   // ES#sec-promise-reject-functions
@@ -72,25 +75,25 @@
 
 // ES#sec-promise-executor
 // Promise ( executor )
-var GlobalPromise = function Promise(resolver) {
-  if (resolver === promiseRawSymbol) {
+var GlobalPromise = function Promise(executor) {
+  if (executor === promiseRawSymbol) {
     return %_NewObject(GlobalPromise, new.target);
   }
   if (IS_UNDEFINED(new.target)) throw MakeTypeError(kNotAPromise, this);
-  if (!IS_CALLABLE(resolver)) {
-    throw MakeTypeError(kResolverNotAFunction, resolver);
+  if (!IS_CALLABLE(executor)) {
+    throw MakeTypeError(kResolverNotAFunction, executor);
   }
 
   var promise = PromiseInit(%_NewObject(GlobalPromise, new.target));
   var callbacks = CreateResolvingFunctions(promise);
-
+  var debug_is_active = DEBUG_IS_ACTIVE;
   try {
-    %DebugPushPromise(promise, Promise);
-    resolver(callbacks.resolve, callbacks.reject);
+    if (debug_is_active) %DebugPushPromise(promise, Promise);
+    executor(callbacks.resolve, callbacks.reject);
   } catch (e) {
     %_Call(callbacks.reject, UNDEFINED, e);
   } finally {
-    %DebugPopPromise();
+    if (debug_is_active) %DebugPopPromise();
   }
 
   return promise;
@@ -98,11 +101,33 @@
 
 // Core functionality.
 
-function PromiseSet(promise, status, value, onResolve, onReject) {
+function PromiseSet(promise, status, value) {
   SET_PRIVATE(promise, promiseStateSymbol, status);
   SET_PRIVATE(promise, promiseResultSymbol, value);
-  SET_PRIVATE(promise, promiseFulfillReactionsSymbol, onResolve);
-  SET_PRIVATE(promise, promiseRejectReactionsSymbol, onReject);
+
+  // There are 3 possible states for the resolve, reject symbols when we add
+  // a new callback --
+  // 1) UNDEFINED -- This is the zero state where there is no callback
+  // registered. When we see this state, we directly attach the callbacks to
+  // the symbol.
+  // 2) !IS_ARRAY -- There is a single callback directly attached to the
+  // symbols. We need to create a new array to store additional callbacks.
+  // 3) IS_ARRAY -- There are multiple callbacks already registered,
+  // therefore we can just push the new callback to the existing array.
+  SET_PRIVATE(promise, promiseFulfillReactionsSymbol, UNDEFINED);
+  SET_PRIVATE(promise, promiseRejectReactionsSymbol, UNDEFINED);
+
+  // There are 2 possible states for this symbol --
+  // 1) UNDEFINED -- This is the zero state, no deferred object is
+  // attached to this symbol. When we want to add a new deferred we
+  // directly attach it to this symbol.
+  // 2) symbol with attached deferred object -- New deferred objects
+  // are not attached to this symbol, but instead they are directly
+  // attached to the resolve, reject callback arrays. At this point,
+  // the deferred symbol's state is stale, and the deferreds should be
+  // read from the reject, resolve callbacks.
+  SET_PRIVATE(promise, promiseDeferredReactionsSymbol, UNDEFINED);
+
   return promise;
 }
 
@@ -114,38 +139,46 @@
 }
 
 function PromiseInit(promise) {
-  return PromiseSet(
-      promise, kPending, UNDEFINED, new InternalArray, new InternalArray)
+  return PromiseSet(promise, kPending, UNDEFINED);
 }
 
-function PromiseDone(promise, status, value, promiseQueue) {
+function FulfillPromise(promise, status, value, promiseQueue) {
   if (GET_PRIVATE(promise, promiseStateSymbol) === kPending) {
     var tasks = GET_PRIVATE(promise, promiseQueue);
-    if (tasks.length) PromiseEnqueue(value, tasks, status);
+    if (!IS_UNDEFINED(tasks)) {
+      var tasks = GET_PRIVATE(promise, promiseQueue);
+      var deferreds = GET_PRIVATE(promise, promiseDeferredReactionsSymbol);
+      PromiseEnqueue(value, tasks, deferreds, status);
+    }
     PromiseSet(promise, status, value);
   }
 }
 
 function PromiseHandle(value, handler, deferred) {
+  var debug_is_active = DEBUG_IS_ACTIVE;
   try {
-    %DebugPushPromise(deferred.promise, PromiseHandle);
+    if (debug_is_active) %DebugPushPromise(deferred.promise, PromiseHandle);
     var result = handler(value);
     deferred.resolve(result);
   } catch (exception) {
     try { deferred.reject(exception); } catch (e) { }
   } finally {
-    %DebugPopPromise();
+    if (debug_is_active) %DebugPopPromise();
   }
 }
 
-function PromiseEnqueue(value, tasks, status) {
+function PromiseEnqueue(value, tasks, deferreds, status) {
   var id, name, instrumenting = DEBUG_IS_ACTIVE;
   %EnqueueMicrotask(function() {
     if (instrumenting) {
       %DebugAsyncTaskEvent({ type: "willHandle", id: id, name: name });
     }
-    for (var i = 0; i < tasks.length; i += 2) {
-      PromiseHandle(value, tasks[i], tasks[i + 1])
+    if (IS_ARRAY(tasks)) {
+      for (var i = 0; i < tasks.length; i += 2) {
+        PromiseHandle(value, tasks[i], tasks[i + 1]);
+      }
+    } else {
+      PromiseHandle(value, tasks, deferreds);
     }
     if (instrumenting) {
       %DebugAsyncTaskEvent({ type: "didHandle", id: id, name: name });
@@ -158,6 +191,33 @@
   }
 }
 
+function PromiseAttachCallbacks(promise, deferred, onResolve, onReject) {
+  var maybeResolveCallbacks =
+      GET_PRIVATE(promise, promiseFulfillReactionsSymbol);
+  if (IS_UNDEFINED(maybeResolveCallbacks)) {
+    SET_PRIVATE(promise, promiseFulfillReactionsSymbol, onResolve);
+    SET_PRIVATE(promise, promiseRejectReactionsSymbol, onReject);
+    SET_PRIVATE(promise, promiseDeferredReactionsSymbol, deferred);
+  } else if (!IS_ARRAY(maybeResolveCallbacks)) {
+    var resolveCallbacks = new InternalArray();
+    var rejectCallbacks = new InternalArray();
+    var existingDeferred = GET_PRIVATE(promise, promiseDeferredReactionsSymbol);
+
+    resolveCallbacks.push(
+        maybeResolveCallbacks, existingDeferred, onResolve, deferred);
+    rejectCallbacks.push(GET_PRIVATE(promise, promiseRejectReactionsSymbol),
+                         existingDeferred,
+                         onReject,
+                         deferred);
+
+    SET_PRIVATE(promise, promiseFulfillReactionsSymbol, resolveCallbacks);
+    SET_PRIVATE(promise, promiseRejectReactionsSymbol, rejectCallbacks);
+  } else {
+    maybeResolveCallbacks.push(onResolve, deferred);
+    GET_PRIVATE(promise, promiseRejectReactionsSymbol).push(onReject, deferred);
+  }
+}
+
 function PromiseIdResolveHandler(x) { return x }
 function PromiseIdRejectHandler(r) { throw r }
 
@@ -177,29 +237,58 @@
   return new GlobalPromise(PromiseNopResolver)
 }
 
-// ES#sec-fulfillpromise
-// FulfillPromise ( promise, value)
-function FulfillPromise(promise, x) {
-  if (x === promise) {
-    return RejectPromise(promise, MakeTypeError(kPromiseCyclic, x));
+// ES#sec-promise-resolve-functions
+// Promise Resolve Functions, steps 6-13
+function ResolvePromise(promise, resolution) {
+  if (resolution === promise) {
+    return RejectPromise(promise, MakeTypeError(kPromiseCyclic, resolution));
   }
-  if (IS_RECEIVER(x)) {
+  if (IS_RECEIVER(resolution)) {
     // 25.4.1.3.2 steps 8-12
     try {
-      var then = x.then;
+      var then = resolution.then;
     } catch (e) {
       return RejectPromise(promise, e);
     }
+
+    // Resolution is a native promise and if it's already resolved or
+    // rejected, shortcircuit the resolution procedure by directly
+    // reusing the value from the promise.
+    if (IsPromise(resolution) && then === PromiseThen) {
+      var thenableState = GET_PRIVATE(resolution, promiseStateSymbol);
+      if (thenableState === kFulfilled) {
+        // This goes inside the if-else to save one symbol lookup in
+        // the slow path.
+        var thenableValue = GET_PRIVATE(resolution, promiseResultSymbol);
+        FulfillPromise(promise, kFulfilled, thenableValue,
+                       promiseFulfillReactionsSymbol);
+        SET_PRIVATE(promise, promiseHasHandlerSymbol, true);
+        return;
+      } else if (thenableState === kRejected) {
+        var thenableValue = GET_PRIVATE(resolution, promiseResultSymbol);
+        if (!HAS_DEFINED_PRIVATE(resolution, promiseHasHandlerSymbol)) {
+          // Promise has already been rejected, but had no handler.
+          // Revoke previously triggered reject event.
+          %PromiseRevokeReject(resolution);
+        }
+        RejectPromise(promise, thenableValue);
+        SET_PRIVATE(resolution, promiseHasHandlerSymbol, true);
+        return;
+      }
+    }
+
     if (IS_CALLABLE(then)) {
       // PromiseResolveThenableJob
-      var id, name, instrumenting = DEBUG_IS_ACTIVE;
+      var id;
+      var name = "PromiseResolveThenableJob";
+      var instrumenting = DEBUG_IS_ACTIVE;
       %EnqueueMicrotask(function() {
         if (instrumenting) {
           %DebugAsyncTaskEvent({ type: "willHandle", id: id, name: name });
         }
         var callbacks = CreateResolvingFunctions(promise);
         try {
-          %_Call(then, x, callbacks.resolve, callbacks.reject);
+          %_Call(then, resolution, callbacks.resolve, callbacks.reject);
         } catch (e) {
           %_Call(callbacks.reject, UNDEFINED, e);
         }
@@ -209,28 +298,27 @@
       });
       if (instrumenting) {
         id = ++lastMicrotaskId;
-        name = "PromseResolveThenableJob";
         %DebugAsyncTaskEvent({ type: "enqueue", id: id, name: name });
       }
       return;
     }
   }
-  PromiseDone(promise, kFulfilled, x, promiseFulfillReactionsSymbol);
+  FulfillPromise(promise, kFulfilled, resolution, promiseFulfillReactionsSymbol);
 }
 
 // ES#sec-rejectpromise
 // RejectPromise ( promise, reason )
-function RejectPromise(promise, r) {
+function RejectPromise(promise, reason) {
   // 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, promiseStateSymbol) === kPending) {
     var debug_is_active = DEBUG_IS_ACTIVE;
     if (debug_is_active ||
         !HAS_DEFINED_PRIVATE(promise, promiseHasHandlerSymbol)) {
-      %PromiseRejectEvent(promise, r, debug_is_active);
+      %PromiseRejectEvent(promise, reason, debug_is_active);
     }
   }
-  PromiseDone(promise, kRejected, r, promiseRejectReactionsSymbol)
+  FulfillPromise(promise, kRejected, reason, promiseRejectReactionsSymbol)
 }
 
 // ES#sec-newpromisecapability
@@ -318,14 +406,11 @@
   var deferred = NewPromiseCapability(constructor);
   switch (status) {
     case kPending:
-      GET_PRIVATE(this, promiseFulfillReactionsSymbol).push(onResolve,
-                                                            deferred);
-      GET_PRIVATE(this, promiseRejectReactionsSymbol).push(onReject, deferred);
+      PromiseAttachCallbacks(this, deferred, onResolve, onReject);
       break;
     case kFulfilled:
       PromiseEnqueue(GET_PRIVATE(this, promiseResultSymbol),
-                     [onResolve, deferred],
-                     kFulfilled);
+                     onResolve, deferred, kFulfilled);
       break;
     case kRejected:
       if (!HAS_DEFINED_PRIVATE(this, promiseHasHandlerSymbol)) {
@@ -334,8 +419,7 @@
         %PromiseRevokeReject(this);
       }
       PromiseEnqueue(GET_PRIVATE(this, promiseResultSymbol),
-                     [onReject, deferred],
-                     kRejected);
+                     onReject, deferred, kRejected);
       break;
   }
   // Mark this promise as having handler.
@@ -444,20 +528,30 @@
 
 // Utility for debugger
 
+function PromiseHasUserDefinedRejectHandlerCheck(handler, deferred) {
+  if (handler !== PromiseIdRejectHandler) {
+    var combinedDeferred = GET_PRIVATE(handler, promiseCombinedDeferredSymbol);
+    if (IS_UNDEFINED(combinedDeferred)) return true;
+    if (PromiseHasUserDefinedRejectHandlerRecursive(combinedDeferred.promise)) {
+      return true;
+    }
+  } else if (PromiseHasUserDefinedRejectHandlerRecursive(deferred.promise)) {
+    return true;
+  }
+  return false;
+}
+
 function PromiseHasUserDefinedRejectHandlerRecursive(promise) {
   var queue = GET_PRIVATE(promise, promiseRejectReactionsSymbol);
+  var deferreds = GET_PRIVATE(promise, promiseDeferredReactionsSymbol);
   if (IS_UNDEFINED(queue)) return false;
-  for (var i = 0; i < queue.length; i += 2) {
-    var handler = queue[i];
-    if (handler !== PromiseIdRejectHandler) {
-      var deferred = GET_PRIVATE(handler, promiseCombinedDeferredSymbol);
-      if (IS_UNDEFINED(deferred)) return true;
-      if (PromiseHasUserDefinedRejectHandlerRecursive(deferred.promise)) {
+  if (!IS_ARRAY(queue)) {
+    return PromiseHasUserDefinedRejectHandlerCheck(queue, deferreds);
+  } else {
+    for (var i = 0; i < queue.length; i += 2) {
+      if (PromiseHasUserDefinedRejectHandlerCheck(queue[i], queue[i + 1])) {
         return true;
       }
-    } else if (PromiseHasUserDefinedRejectHandlerRecursive(
-                   queue[i + 1].promise)) {
-      return true;
     }
   }
   return false;
@@ -470,6 +564,11 @@
   return PromiseHasUserDefinedRejectHandlerRecursive(this);
 };
 
+
+function PromiseSpecies() {
+  return this;
+}
+
 // -------------------------------------------------------------------
 // Install exported functions.
 
@@ -484,6 +583,8 @@
   "resolve", PromiseResolve
 ]);
 
+utils.InstallGetter(GlobalPromise, speciesSymbol, PromiseSpecies);
+
 utils.InstallFunctions(GlobalPromise.prototype, DONT_ENUM, [
   "then", PromiseThen,
   "catch", PromiseCatch
@@ -495,7 +596,7 @@
   "promise_create", PromiseCreate,
   "promise_has_user_defined_reject_handler", PromiseHasUserDefinedRejectHandler,
   "promise_reject", RejectPromise,
-  "promise_resolve", FulfillPromise,
+  "promise_resolve", ResolvePromise,
   "promise_then", PromiseThen,
   "promise_create_rejected", PromiseCreateRejected,
   "promise_create_resolved", PromiseCreateResolved
@@ -506,7 +607,7 @@
 // promise without having to hold on to those closures forever.
 utils.InstallFunctions(extrasUtils, 0, [
   "createPromise", PromiseCreate,
-  "resolvePromise", FulfillPromise,
+  "resolvePromise", ResolvePromise,
   "rejectPromise", RejectPromise
 ]);
 
diff --git a/src/js/regexp.js b/src/js/regexp.js
index 719a081..6b7cf48 100644
--- a/src/js/regexp.js
+++ b/src/js/regexp.js
@@ -22,6 +22,7 @@
 var matchSymbol = utils.ImportNow("match_symbol");
 var replaceSymbol = utils.ImportNow("replace_symbol");
 var searchSymbol = utils.ImportNow("search_symbol");
+var speciesSymbol = utils.ImportNow("species_symbol");
 var splitSymbol = utils.ImportNow("split_symbol");
 var SpeciesConstructor;
 
@@ -323,10 +324,10 @@
     // not a '?'.  But see https://code.google.com/p/v8/issues/detail?id=3560
     var regexp = this;
     var source = REGEXP_SOURCE(regexp);
-    if (regexp.length >= 3 &&
-        %_StringCharCodeAt(regexp, 0) == 46 &&  // '.'
-        %_StringCharCodeAt(regexp, 1) == 42 &&  // '*'
-        %_StringCharCodeAt(regexp, 2) != 63) {  // '?'
+    if (source.length >= 3 &&
+        %_StringCharCodeAt(source, 0) == 46 &&  // '.'
+        %_StringCharCodeAt(source, 1) == 42 &&  // '*'
+        %_StringCharCodeAt(source, 2) != 63) {  // '?'
       regexp = TrimRegExp(regexp);
     }
     // matchIndices is either null or the RegExpLastMatchInfo array.
@@ -537,22 +538,6 @@
 %FunctionRemovePrototype(RegExpSubclassSplit);
 
 
-// Legacy implementation of RegExp.prototype[Symbol.match] which
-// doesn't properly call the underlying exec method
-function RegExpMatch(string) {
-  if (!IS_REGEXP(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "RegExp.prototype.@@match", this);
-  }
-  var subject = TO_STRING(string);
-
-  if (!REGEXP_GLOBAL(this)) return RegExpExecNoTests(this, subject, 0);
-  this.lastIndex = 0;
-  var result = %StringMatch(subject, this, RegExpLastMatchInfo);
-  return result;
-}
-
-
 // ES#sec-regexp.prototype-@@match
 // RegExp.prototype [ @@match ] ( string )
 function RegExpSubclassMatch(string) {
@@ -952,19 +937,6 @@
 %FunctionRemovePrototype(RegExpSubclassReplace);
 
 
-// Legacy implementation of RegExp.prototype[Symbol.search] which
-// doesn't properly use the overridden exec method
-function RegExpSearch(string) {
-  if (!IS_REGEXP(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "RegExp.prototype.@@search", this);
-  }
-  var match = DoRegExpExec(this, TO_STRING(string), 0);
-  if (match) return match[CAPTURE0];
-  return -1;
-}
-
-
 // ES#sec-regexp.prototype-@@search
 // RegExp.prototype [ @@search ] ( string )
 function RegExpSubclassSearch(string) {
@@ -1132,6 +1104,27 @@
 }
 %SetForceInlineFlag(RegExpGetSticky);
 
+
+// ES6 21.2.5.15.
+function RegExpGetUnicode() {
+  if (!IS_REGEXP(this)) {
+    // TODO(littledan): Remove this RegExp compat workaround
+    if (this === GlobalRegExpPrototype) {
+      %IncrementUseCounter(kRegExpPrototypeUnicodeGetter);
+      return UNDEFINED;
+    }
+    throw MakeTypeError(kRegExpNonRegExp, "RegExp.prototype.unicode");
+  }
+  return TO_BOOLEAN(REGEXP_UNICODE(this));
+}
+%SetForceInlineFlag(RegExpGetUnicode);
+
+
+function RegExpSpecies() {
+  return this;
+}
+
+
 // -------------------------------------------------------------------
 
 %FunctionSetInstanceClassName(GlobalRegExp, 'RegExp');
@@ -1141,15 +1134,17 @@
     GlobalRegExp.prototype, 'constructor', GlobalRegExp, DONT_ENUM);
 %SetCode(GlobalRegExp, RegExpConstructor);
 
+utils.InstallGetter(GlobalRegExp, speciesSymbol, RegExpSpecies);
+
 utils.InstallFunctions(GlobalRegExp.prototype, DONT_ENUM, [
-  "exec", RegExpExecJS,
-  "test", RegExpTest,
+  "exec", RegExpSubclassExecJS,
+  "test", RegExpSubclassTest,
   "toString", RegExpToString,
   "compile", RegExpCompileJS,
-  matchSymbol, RegExpMatch,
-  replaceSymbol, RegExpReplace,
-  searchSymbol, RegExpSearch,
-  splitSymbol, RegExpSplit,
+  matchSymbol, RegExpSubclassMatch,
+  replaceSymbol, RegExpSubclassReplace,
+  searchSymbol, RegExpSubclassSearch,
+  splitSymbol, RegExpSubclassSplit,
 ]);
 
 utils.InstallGetter(GlobalRegExp.prototype, 'flags', RegExpGetFlags);
@@ -1158,6 +1153,7 @@
 utils.InstallGetter(GlobalRegExp.prototype, 'multiline', RegExpGetMultiline);
 utils.InstallGetter(GlobalRegExp.prototype, 'source', RegExpGetSource);
 utils.InstallGetter(GlobalRegExp.prototype, 'sticky', RegExpGetSticky);
+utils.InstallGetter(GlobalRegExp.prototype, 'unicode', RegExpGetUnicode);
 
 // The properties `input` and `$_` are aliases for each other.  When this
 // value is set the value it is set to is coerced to a string.
@@ -1232,12 +1228,6 @@
   to.RegExpExec = DoRegExpExec;
   to.RegExpInitialize = RegExpInitialize;
   to.RegExpLastMatchInfo = RegExpLastMatchInfo;
-  to.RegExpSubclassExecJS = RegExpSubclassExecJS;
-  to.RegExpSubclassMatch = RegExpSubclassMatch;
-  to.RegExpSubclassReplace = RegExpSubclassReplace;
-  to.RegExpSubclassSearch = RegExpSubclassSearch;
-  to.RegExpSubclassSplit = RegExpSubclassSplit;
-  to.RegExpSubclassTest = RegExpSubclassTest;
   to.RegExpTest = RegExpTest;
 });
 
diff --git a/src/js/runtime.js b/src/js/runtime.js
index a6a0b4d..216685f 100644
--- a/src/js/runtime.js
+++ b/src/js/runtime.js
@@ -16,7 +16,6 @@
 
 %CheckIsBootstrapping();
 
-var FLAG_harmony_species;
 var GlobalArray = global.Array;
 var GlobalBoolean = global.Boolean;
 var GlobalString = global.String;
@@ -30,10 +29,6 @@
   speciesSymbol = from.species_symbol;
 });
 
-utils.ImportFromExperimental(function(from) {
-  FLAG_harmony_species = from.FLAG_harmony_species;
-});
-
 // ----------------------------------------------------------------------------
 
 
@@ -44,7 +39,7 @@
 
 
 function ToPositiveInteger(x, rangeErrorIndex) {
-  var i = TO_INTEGER_MAP_MINUS_ZERO(x);
+  var i = TO_INTEGER(x) + 0;
   if (i < 0) throw MakeRangeError(rangeErrorIndex);
   return i;
 }
@@ -65,35 +60,22 @@
 
 
 // ES2015 7.3.20
-// For the fallback with --harmony-species off, there are two possible choices:
-//  - "conservative": return defaultConstructor
-//  - "not conservative": return object.constructor
-// This fallback path is only needed in the transition to ES2015, and the
-// choice is made simply to preserve the previous behavior so that we don't
-// have a three-step upgrade: old behavior, unspecified intermediate behavior,
-// and ES2015.
-// In some cases, we were "conservative" (e.g., ArrayBuffer, RegExp), and in
-// other cases we were "not conservative (e.g., TypedArray, Promise).
-function SpeciesConstructor(object, defaultConstructor, conservative) {
-  if (FLAG_harmony_species) {
-    var constructor = object.constructor;
-    if (IS_UNDEFINED(constructor)) {
-      return defaultConstructor;
-    }
-    if (!IS_RECEIVER(constructor)) {
-      throw MakeTypeError(kConstructorNotReceiver);
-    }
-    var species = constructor[speciesSymbol];
-    if (IS_NULL_OR_UNDEFINED(species)) {
-      return defaultConstructor;
-    }
-    if (%IsConstructor(species)) {
-      return species;
-    }
-    throw MakeTypeError(kSpeciesNotConstructor);
-  } else {
-    return conservative ? defaultConstructor : object.constructor;
+function SpeciesConstructor(object, defaultConstructor) {
+  var constructor = object.constructor;
+  if (IS_UNDEFINED(constructor)) {
+    return defaultConstructor;
   }
+  if (!IS_RECEIVER(constructor)) {
+    throw MakeTypeError(kConstructorNotReceiver);
+  }
+  var species = constructor[speciesSymbol];
+  if (IS_NULL_OR_UNDEFINED(species)) {
+    return defaultConstructor;
+  }
+  if (%IsConstructor(species)) {
+    return species;
+  }
+  throw MakeTypeError(kSpeciesNotConstructor);
 }
 
 //----------------------------------------------------------------------------
diff --git a/src/js/string.js b/src/js/string.js
index badb2b4..d2eaa32 100644
--- a/src/js/string.js
+++ b/src/js/string.js
@@ -13,8 +13,6 @@
 var ArrayJoin;
 var GlobalRegExp = global.RegExp;
 var GlobalString = global.String;
-var InternalArray = utils.InternalArray;
-var InternalPackedArray = utils.InternalPackedArray;
 var IsRegExp;
 var MakeRangeError;
 var MakeTypeError;
@@ -520,25 +518,6 @@
   return %StringToUpperCase(TO_STRING(this));
 }
 
-// ES5, 15.5.4.20
-function StringTrimJS() {
-  CHECK_OBJECT_COERCIBLE(this, "String.prototype.trim");
-
-  return %StringTrim(TO_STRING(this), true, true);
-}
-
-function StringTrimLeft() {
-  CHECK_OBJECT_COERCIBLE(this, "String.prototype.trimLeft");
-
-  return %StringTrim(TO_STRING(this), true, false);
-}
-
-function StringTrimRight() {
-  CHECK_OBJECT_COERCIBLE(this, "String.prototype.trimRight");
-
-  return %StringTrim(TO_STRING(this), false, true);
-}
-
 
 // ES6 draft, revision 26 (2014-07-18), section B.2.3.2.1
 function HtmlEscape(str) {
@@ -768,33 +747,6 @@
 }
 
 
-// ES6 Draft 05-22-2014, section 21.1.2.2
-function StringFromCodePoint(_) {  // length = 1
-  "use strict";
-  var code;
-  var length = arguments.length;
-  var index;
-  var result = "";
-  for (index = 0; index < length; index++) {
-    code = arguments[index];
-    if (!%_IsSmi(code)) {
-      code = TO_NUMBER(code);
-    }
-    if (code < 0 || code > 0x10FFFF || code !== TO_INTEGER(code)) {
-      throw MakeRangeError(kInvalidCodePoint, code);
-    }
-    if (code <= 0xFFFF) {
-      result += %_StringCharFromCode(code);
-    } else {
-      code -= 0x10000;
-      result += %_StringCharFromCode((code >>> 10) & 0x3FF | 0xD800);
-      result += %_StringCharFromCode(code & 0x3FF | 0xDC00);
-    }
-  }
-  return result;
-}
-
-
 // -------------------------------------------------------------------
 // String methods related to templates
 
@@ -823,7 +775,6 @@
 
 // Set up the non-enumerable functions on the String object.
 utils.InstallFunctions(GlobalString, DONT_ENUM, [
-  "fromCodePoint", StringFromCodePoint,
   "raw", StringRaw
 ]);
 
@@ -852,9 +803,6 @@
   "toLocaleLowerCase", StringToLocaleLowerCase,
   "toUpperCase", StringToUpperCaseJS,
   "toLocaleUpperCase", StringToLocaleUpperCase,
-  "trim", StringTrimJS,
-  "trimLeft", StringTrimLeft,
-  "trimRight", StringTrimRight,
 
   "link", StringLink,
   "anchor", StringAnchor,
diff --git a/src/js/symbol.js b/src/js/symbol.js
index 7365655..2e7cc53 100644
--- a/src/js/symbol.js
+++ b/src/js/symbol.js
@@ -17,6 +17,11 @@
     utils.ImportNow("is_concat_spreadable_symbol");
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
 var MakeTypeError;
+var matchSymbol = utils.ImportNow("match_symbol");
+var replaceSymbol = utils.ImportNow("replace_symbol");
+var searchSymbol = utils.ImportNow("search_symbol");
+var speciesSymbol = utils.ImportNow("species_symbol");
+var splitSymbol = utils.ImportNow("split_symbol");
 var toPrimitiveSymbol = utils.ImportNow("to_primitive_symbol");
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 var unscopablesSymbol = utils.ImportNow("unscopables_symbol");
@@ -78,11 +83,11 @@
   "hasInstance", hasInstanceSymbol,
   "isConcatSpreadable", isConcatSpreadableSymbol,
   "iterator", iteratorSymbol,
-  // TODO(yangguo): expose when implemented.
-  // "match", matchSymbol,
-  // "replace", replaceSymbol,
-  // "search", searchSymbol,
-  // "split, splitSymbol,
+  "match", matchSymbol,
+  "replace", replaceSymbol,
+  "search", searchSymbol,
+  "species", speciesSymbol,
+  "split", splitSymbol,
   "toPrimitive", toPrimitiveSymbol,
   "toStringTag", toStringTagSymbol,
   "unscopables", unscopablesSymbol,
diff --git a/src/js/typedarray.js b/src/js/typedarray.js
index 18f6dde..8e7d9ee 100644
--- a/src/js/typedarray.js
+++ b/src/js/typedarray.js
@@ -47,6 +47,7 @@
 var SpeciesConstructor;
 var ToPositiveInteger;
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
+var speciesSymbol = utils.ImportNow("species_symbol");
 var toStringTagSymbol = utils.ImportNow("to_string_tag_symbol");
 
 macro TYPED_ARRAYS(FUNCTION)
@@ -68,6 +69,8 @@
 
 TYPED_ARRAYS(DECLARE_GLOBALS)
 
+var GlobalTypedArray = %object_get_prototype_of(GlobalUint8Array);
+
 utils.Import(function(from) {
   ArrayValues = from.ArrayValues;
   GetIterator = from.GetIterator;
@@ -329,42 +332,6 @@
 }
 %SetForceInlineFlag(TypedArraySubArray);
 
-function TypedArrayGetBuffer() {
-  if (!IS_TYPEDARRAY(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "get TypedArray.prototype.buffer", this);
-  }
-  return %TypedArrayGetBuffer(this);
-}
-%SetForceInlineFlag(TypedArrayGetBuffer);
-
-function TypedArrayGetByteLength() {
-  if (!IS_TYPEDARRAY(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "get TypedArray.prototype.byteLength", this);
-  }
-  return %_ArrayBufferViewGetByteLength(this);
-}
-%SetForceInlineFlag(TypedArrayGetByteLength);
-
-function TypedArrayGetByteOffset() {
-  if (!IS_TYPEDARRAY(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "get TypedArray.prototype.byteOffset", this);
-  }
-  return %_ArrayBufferViewGetByteOffset(this);
-}
-%SetForceInlineFlag(TypedArrayGetByteOffset);
-
-function TypedArrayGetLength() {
-  if (!IS_TYPEDARRAY(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        "get TypedArray.prototype.length", this);
-  }
-  return %_TypedArrayGetLength(this);
-}
-%SetForceInlineFlag(TypedArrayGetLength);
-
 
 
 function TypedArraySetFromArrayLike(target, source, sourceLength, offset) {
@@ -383,7 +350,7 @@
 function TypedArraySetFromOverlappingTypedArray(target, source, offset) {
   var sourceElementSize = source.BYTES_PER_ELEMENT;
   var targetElementSize = target.BYTES_PER_ELEMENT;
-  var sourceLength = source.length;
+  var sourceLength = %_TypedArrayGetLength(source);
 
   // Copy left part.
   function CopyLeftPart() {
@@ -403,7 +370,7 @@
   }
   var leftIndex = CopyLeftPart();
 
-  // Copy rigth part;
+  // Copy right part;
   function CopyRightPart() {
     // First unmutated byte before the next write
     var targetPtr =
@@ -447,7 +414,8 @@
       TypedArraySetFromOverlappingTypedArray(this, obj, intOffset);
       return;
     case 2: // TYPED_ARRAY_SET_TYPED_ARRAY_NONOVERLAPPING
-      TypedArraySetFromArrayLike(this, obj, obj.length, intOffset);
+      TypedArraySetFromArrayLike(this,
+          obj, %_TypedArrayGetLength(obj), intOffset);
       return;
     case 3: // TYPED_ARRAY_SET_NON_TYPED_ARRAY
       var l = obj.length;
@@ -462,7 +430,7 @@
         return;
       }
       l = TO_LENGTH(l);
-      if (intOffset + l > this.length) {
+      if (intOffset + l > %_TypedArrayGetLength(this)) {
         throw MakeRangeError(kTypedArraySetSourceTooLarge);
       }
       TypedArraySetFromArrayLike(this, obj, l, intOffset);
@@ -808,34 +776,31 @@
 }
 %FunctionSetLength(TypedArrayFrom, 1);
 
-function TypedArray() {
+// TODO(bmeurer): Migrate this to a proper builtin.
+function TypedArrayConstructor() {
   if (IS_UNDEFINED(new.target)) {
     throw MakeTypeError(kConstructorNonCallable, "TypedArray");
   }
-  if (new.target === TypedArray) {
+  if (new.target === GlobalTypedArray) {
     throw MakeTypeError(kConstructAbstractClass, "TypedArray");
   }
 }
 
+function TypedArraySpecies() {
+  return this;
+}
+
 // -------------------------------------------------------------------
 
-%FunctionSetPrototype(TypedArray, new GlobalObject());
-%AddNamedProperty(TypedArray.prototype,
-                  "constructor", TypedArray, DONT_ENUM);
-utils.InstallFunctions(TypedArray, DONT_ENUM, [
+%SetCode(GlobalTypedArray, TypedArrayConstructor);
+utils.InstallFunctions(GlobalTypedArray, DONT_ENUM, [
   "from", TypedArrayFrom,
   "of", TypedArrayOf
 ]);
-utils.InstallGetter(TypedArray.prototype, "buffer", TypedArrayGetBuffer);
-utils.InstallGetter(TypedArray.prototype, "byteOffset", TypedArrayGetByteOffset,
-                    DONT_ENUM | DONT_DELETE);
-utils.InstallGetter(TypedArray.prototype, "byteLength",
-                    TypedArrayGetByteLength, DONT_ENUM | DONT_DELETE);
-utils.InstallGetter(TypedArray.prototype, "length", TypedArrayGetLength,
-                    DONT_ENUM | DONT_DELETE);
-utils.InstallGetter(TypedArray.prototype, toStringTagSymbol,
+utils.InstallGetter(GlobalTypedArray, speciesSymbol, TypedArraySpecies);
+utils.InstallGetter(GlobalTypedArray.prototype, toStringTagSymbol,
                     TypedArrayGetToStringTag);
-utils.InstallFunctions(TypedArray.prototype, DONT_ENUM, [
+utils.InstallFunctions(GlobalTypedArray.prototype, DONT_ENUM, [
   "subarray", TypedArraySubArray,
   "set", TypedArraySet,
   "copyWithin", TypedArrayCopyWithin,
@@ -859,15 +824,15 @@
   "toLocaleString", TypedArrayToLocaleString
 ]);
 
-%AddNamedProperty(TypedArray.prototype, "toString", ArrayToString,
+%AddNamedProperty(GlobalTypedArray.prototype, "toString", ArrayToString,
                   DONT_ENUM);
 
 
 macro SETUP_TYPED_ARRAY(ARRAY_ID, NAME, ELEMENT_SIZE)
   %SetCode(GlobalNAME, NAMEConstructor);
   %FunctionSetPrototype(GlobalNAME, new GlobalObject());
-  %InternalSetPrototype(GlobalNAME, TypedArray);
-  %InternalSetPrototype(GlobalNAME.prototype, TypedArray.prototype);
+  %InternalSetPrototype(GlobalNAME, GlobalTypedArray);
+  %InternalSetPrototype(GlobalNAME.prototype, GlobalTypedArray.prototype);
 
   %AddNamedProperty(GlobalNAME, "BYTES_PER_ELEMENT", ELEMENT_SIZE,
                     READ_ONLY | DONT_ENUM | DONT_DELETE);
@@ -883,29 +848,6 @@
 
 // --------------------------- DataView -----------------------------
 
-function DataViewGetBufferJS() {
-  if (!IS_DATAVIEW(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver, 'DataView.buffer', this);
-  }
-  return %DataViewGetBuffer(this);
-}
-
-function DataViewGetByteOffset() {
-  if (!IS_DATAVIEW(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        'DataView.byteOffset', this);
-  }
-  return %_ArrayBufferViewGetByteOffset(this);
-}
-
-function DataViewGetByteLength() {
-  if (!IS_DATAVIEW(this)) {
-    throw MakeTypeError(kIncompatibleMethodReceiver,
-                        'DataView.byteLength', this);
-  }
-  return %_ArrayBufferViewGetByteLength(this);
-}
-
 macro DATA_VIEW_TYPES(FUNCTION)
   FUNCTION(Int8)
   FUNCTION(Uint8)
@@ -944,21 +886,6 @@
 
 DATA_VIEW_TYPES(DATA_VIEW_GETTER_SETTER)
 
-// Setup the DataView constructor.
-%FunctionSetPrototype(GlobalDataView, new GlobalObject);
-
-// Set up constructor property on the DataView prototype.
-%AddNamedProperty(GlobalDataView.prototype, "constructor", GlobalDataView,
-                  DONT_ENUM);
-%AddNamedProperty(GlobalDataView.prototype, toStringTagSymbol, "DataView",
-                  READ_ONLY|DONT_ENUM);
-
-utils.InstallGetter(GlobalDataView.prototype, "buffer", DataViewGetBufferJS);
-utils.InstallGetter(GlobalDataView.prototype, "byteOffset",
-                    DataViewGetByteOffset);
-utils.InstallGetter(GlobalDataView.prototype, "byteLength",
-                    DataViewGetByteLength);
-
 utils.InstallFunctions(GlobalDataView.prototype, DONT_ENUM, [
   "getInt8", DataViewGetInt8JS,
   "setInt8", DataViewSetInt8JS,
diff --git a/src/js/uri.js b/src/js/uri.js
deleted file mode 100644
index 19bfbd3..0000000
--- a/src/js/uri.js
+++ /dev/null
@@ -1,234 +0,0 @@
-// Copyright 2006-2008 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 file contains support for URI manipulations written in
-// JavaScript.
-
-(function(global, utils) {
-
-"use strict";
-
-%CheckIsBootstrapping();
-
-//- ------------------------------------------------------------------
-// Imports
-
-var GlobalObject = global.Object;
-var InternalArray = utils.InternalArray;
-var MakeURIError;
-
-utils.Import(function(from) {
-  MakeURIError = from.MakeURIError;
-});
-
-
-// -------------------------------------------------------------------
-// Define internal helper functions.
-
-function HexValueOf(code) {
-  // 0-9
-  if (code >= 48 && code <= 57) return code - 48;
-  // A-F
-  if (code >= 65 && code <= 70) return code - 55;
-  // a-f
-  if (code >= 97 && code <= 102) return code - 87;
-
-  return -1;
-}
-
-function URIHexCharsToCharCode(highChar, lowChar) {
-  var highCode = HexValueOf(highChar);
-  var lowCode = HexValueOf(lowChar);
-  if (highCode == -1 || lowCode == -1) throw MakeURIError();
-  return (highCode << 4) | lowCode;
-}
-
-// Callers must ensure that |result| is a sufficiently long sequential
-// two-byte string!
-function URIDecodeOctets(octets, result, index) {
-  var value;
-  var o0 = octets[0];
-  if (o0 < 0x80) {
-    value = o0;
-  } else if (o0 < 0xc2) {
-    throw MakeURIError();
-  } else {
-    var o1 = octets[1];
-    if (o0 < 0xe0) {
-      var a = o0 & 0x1f;
-      if ((o1 < 0x80) || (o1 > 0xbf)) throw MakeURIError();
-      var b = o1 & 0x3f;
-      value = (a << 6) + b;
-      if (value < 0x80 || value > 0x7ff) throw MakeURIError();
-    } else {
-      var o2 = octets[2];
-      if (o0 < 0xf0) {
-        var a = o0 & 0x0f;
-        if ((o1 < 0x80) || (o1 > 0xbf)) throw MakeURIError();
-        var b = o1 & 0x3f;
-        if ((o2 < 0x80) || (o2 > 0xbf)) throw MakeURIError();
-        var c = o2 & 0x3f;
-        value = (a << 12) + (b << 6) + c;
-        if ((value < 0x800) || (value > 0xffff)) throw MakeURIError();
-      } else {
-        var o3 = octets[3];
-        if (o0 < 0xf8) {
-          var a = (o0 & 0x07);
-          if ((o1 < 0x80) || (o1 > 0xbf)) throw MakeURIError();
-          var b = (o1 & 0x3f);
-          if ((o2 < 0x80) || (o2 > 0xbf)) {
-            throw MakeURIError();
-          }
-          var c = (o2 & 0x3f);
-          if ((o3 < 0x80) || (o3 > 0xbf)) throw MakeURIError();
-          var d = (o3 & 0x3f);
-          value = (a << 18) + (b << 12) + (c << 6) + d;
-          if ((value < 0x10000) || (value > 0x10ffff)) throw MakeURIError();
-        } else {
-          throw MakeURIError();
-        }
-      }
-    }
-  }
-  if (0xD800 <= value && value <= 0xDFFF) throw MakeURIError();
-  if (value < 0x10000) {
-    %_TwoByteSeqStringSetChar(index++, value, result);
-  } else {
-    %_TwoByteSeqStringSetChar(index++, (value >> 10) + 0xd7c0, result);
-    %_TwoByteSeqStringSetChar(index++, (value & 0x3ff) + 0xdc00, result);
-  }
-  return index;
-}
-
-// ECMA-262, section 15.1.3
-function Decode(uri, reserved) {
-  uri = TO_STRING(uri);
-  var uriLength = uri.length;
-  var one_byte = %NewString(uriLength, NEW_ONE_BYTE_STRING);
-  var index = 0;
-  var k = 0;
-
-  // Optimistically assume one-byte string.
-  for ( ; k < uriLength; k++) {
-    var code = %_StringCharCodeAt(uri, k);
-    if (code == 37) {  // '%'
-      if (k + 2 >= uriLength) throw MakeURIError();
-      var cc = URIHexCharsToCharCode(%_StringCharCodeAt(uri, k+1),
-                                     %_StringCharCodeAt(uri, k+2));
-      if (cc >> 7) break;  // Assumption wrong, two-byte string.
-      if (reserved(cc)) {
-        %_OneByteSeqStringSetChar(index++, 37, one_byte);  // '%'.
-        %_OneByteSeqStringSetChar(index++, %_StringCharCodeAt(uri, k+1),
-                                  one_byte);
-        %_OneByteSeqStringSetChar(index++, %_StringCharCodeAt(uri, k+2),
-                                  one_byte);
-      } else {
-        %_OneByteSeqStringSetChar(index++, cc, one_byte);
-      }
-      k += 2;
-    } else {
-      if (code > 0x7f) break;  // Assumption wrong, two-byte string.
-      %_OneByteSeqStringSetChar(index++, code, one_byte);
-    }
-  }
-
-  one_byte = %TruncateString(one_byte, index);
-  if (k == uriLength) return one_byte;
-
-  // Write into two byte string.
-  var two_byte = %NewString(uriLength - k, NEW_TWO_BYTE_STRING);
-  index = 0;
-
-  for ( ; k < uriLength; k++) {
-    var code = %_StringCharCodeAt(uri, k);
-    if (code == 37) {  // '%'
-      if (k + 2 >= uriLength) throw MakeURIError();
-      var cc = URIHexCharsToCharCode(%_StringCharCodeAt(uri, ++k),
-                                     %_StringCharCodeAt(uri, ++k));
-      if (cc >> 7) {
-        var n = 0;
-        while (((cc << ++n) & 0x80) != 0) { }
-        if (n == 1 || n > 4) throw MakeURIError();
-        var octets = new InternalArray(n);
-        octets[0] = cc;
-        if (k + 3 * (n - 1) >= uriLength) throw MakeURIError();
-        for (var i = 1; i < n; i++) {
-          if (uri[++k] != '%') throw MakeURIError();
-          octets[i] = URIHexCharsToCharCode(%_StringCharCodeAt(uri, ++k),
-                                            %_StringCharCodeAt(uri, ++k));
-        }
-        index = URIDecodeOctets(octets, two_byte, index);
-      } else  if (reserved(cc)) {
-        %_TwoByteSeqStringSetChar(index++, 37, two_byte);  // '%'.
-        %_TwoByteSeqStringSetChar(index++, %_StringCharCodeAt(uri, k - 1),
-                                  two_byte);
-        %_TwoByteSeqStringSetChar(index++, %_StringCharCodeAt(uri, k),
-                                  two_byte);
-      } else {
-        %_TwoByteSeqStringSetChar(index++, cc, two_byte);
-      }
-    } else {
-      %_TwoByteSeqStringSetChar(index++, code, two_byte);
-    }
-  }
-
-  two_byte = %TruncateString(two_byte, index);
-  return one_byte + two_byte;
-}
-
-// -------------------------------------------------------------------
-// Define exported functions.
-
-// ECMA-262 - B.2.1.
-function URIEscapeJS(s) {
-  return %URIEscape(s);
-}
-
-// ECMA-262 - B.2.2.
-function URIUnescapeJS(s) {
-  return %URIUnescape(s);
-}
-
-// ECMA-262 - 15.1.3.1.
-function URIDecode(uri) {
-  var reservedPredicate = function(cc) {
-    // #$
-    if (35 <= cc && cc <= 36) return true;
-    // &
-    if (cc == 38) return true;
-    // +,
-    if (43 <= cc && cc <= 44) return true;
-    // /
-    if (cc == 47) return true;
-    // :;
-    if (58 <= cc && cc <= 59) return true;
-    // =
-    if (cc == 61) return true;
-    // ?@
-    if (63 <= cc && cc <= 64) return true;
-
-    return false;
-  };
-  return Decode(uri, reservedPredicate);
-}
-
-// ECMA-262 - 15.1.3.2.
-function URIDecodeComponent(component) {
-  var reservedPredicate = function(cc) { return false; };
-  return Decode(component, reservedPredicate);
-}
-
-// -------------------------------------------------------------------
-// Install exported functions.
-
-// Set up non-enumerable URI functions on the global object and set
-// their names.
-utils.InstallFunctions(global, DONT_ENUM, [
-  "escape", URIEscapeJS,
-  "unescape", URIUnescapeJS,
-  "decodeURI", URIDecode,
-  "decodeURIComponent", URIDecodeComponent
-]);
-
-})
diff --git a/src/js/v8natives.js b/src/js/v8natives.js
index 44be941..9e437a3 100644
--- a/src/js/v8natives.js
+++ b/src/js/v8natives.js
@@ -12,7 +12,6 @@
 var GlobalArray = global.Array;
 var GlobalNumber = global.Number;
 var GlobalObject = global.Object;
-var InternalArray = utils.InternalArray;
 var iteratorSymbol = utils.ImportNow("iterator_symbol");
 var MakeRangeError;
 var MakeSyntaxError;
@@ -450,7 +449,6 @@
 utils.Export(function(to) {
   to.GetIterator = GetIterator;
   to.GetMethod = GetMethod;
-  to.IsFinite = GlobalIsFinite;
   to.IsNaN = GlobalIsNaN;
   to.NumberIsNaN = NumberIsNaN;
   to.NumberIsInteger = NumberIsInteger;
diff --git a/src/json-parser.cc b/src/json-parser.cc
new file mode 100644
index 0000000..bf2fd0d
--- /dev/null
+++ b/src/json-parser.cc
@@ -0,0 +1,812 @@
+// 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/json-parser.h"
+
+#include "src/char-predicates-inl.h"
+#include "src/conversions.h"
+#include "src/debug/debug.h"
+#include "src/factory.h"
+#include "src/field-type.h"
+#include "src/messages.h"
+#include "src/objects-inl.h"
+#include "src/parsing/scanner.h"
+#include "src/parsing/token.h"
+#include "src/property-descriptor.h"
+#include "src/transitions.h"
+
+namespace v8 {
+namespace internal {
+
+MaybeHandle<Object> JsonParseInternalizer::Internalize(Isolate* isolate,
+                                                       Handle<Object> object,
+                                                       Handle<Object> reviver) {
+  DCHECK(reviver->IsCallable());
+  JsonParseInternalizer internalizer(isolate,
+                                     Handle<JSReceiver>::cast(reviver));
+  Handle<JSObject> holder =
+      isolate->factory()->NewJSObject(isolate->object_function());
+  Handle<String> name = isolate->factory()->empty_string();
+  JSObject::AddProperty(holder, name, object, NONE);
+  return internalizer.InternalizeJsonProperty(holder, name);
+}
+
+MaybeHandle<Object> JsonParseInternalizer::InternalizeJsonProperty(
+    Handle<JSReceiver> holder, Handle<String> name) {
+  HandleScope outer_scope(isolate_);
+  Handle<Object> value;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate_, value, Object::GetPropertyOrElement(holder, name), Object);
+  if (value->IsJSReceiver()) {
+    Handle<JSReceiver> object = Handle<JSReceiver>::cast(value);
+    Maybe<bool> is_array = Object::IsArray(object);
+    if (is_array.IsNothing()) return MaybeHandle<Object>();
+    if (is_array.FromJust()) {
+      Handle<Object> length_object;
+      ASSIGN_RETURN_ON_EXCEPTION(
+          isolate_, length_object,
+          Object::GetLengthFromArrayLike(isolate_, object), Object);
+      double length = length_object->Number();
+      for (double i = 0; i < length; i++) {
+        HandleScope inner_scope(isolate_);
+        Handle<Object> index = isolate_->factory()->NewNumber(i);
+        Handle<String> name = isolate_->factory()->NumberToString(index);
+        if (!RecurseAndApply(object, name)) return MaybeHandle<Object>();
+      }
+    } else {
+      Handle<FixedArray> contents;
+      ASSIGN_RETURN_ON_EXCEPTION(
+          isolate_, contents,
+          KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly,
+                                  ENUMERABLE_STRINGS,
+                                  GetKeysConversion::kConvertToString),
+          Object);
+      for (int i = 0; i < contents->length(); i++) {
+        HandleScope inner_scope(isolate_);
+        Handle<String> name(String::cast(contents->get(i)), isolate_);
+        if (!RecurseAndApply(object, name)) return MaybeHandle<Object>();
+      }
+    }
+  }
+  Handle<Object> argv[] = {name, value};
+  Handle<Object> result;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate_, result, Execution::Call(isolate_, reviver_, holder, 2, argv),
+      Object);
+  return outer_scope.CloseAndEscape(result);
+}
+
+bool JsonParseInternalizer::RecurseAndApply(Handle<JSReceiver> holder,
+                                            Handle<String> name) {
+  Handle<Object> result;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate_, result, InternalizeJsonProperty(holder, name), false);
+  Maybe<bool> change_result = Nothing<bool>();
+  if (result->IsUndefined(isolate_)) {
+    change_result = JSReceiver::DeletePropertyOrElement(holder, name, SLOPPY);
+  } else {
+    PropertyDescriptor desc;
+    desc.set_value(result);
+    desc.set_configurable(true);
+    desc.set_enumerable(true);
+    desc.set_writable(true);
+    change_result = JSReceiver::DefineOwnProperty(isolate_, holder, name, &desc,
+                                                  Object::DONT_THROW);
+  }
+  MAYBE_RETURN(change_result, false);
+  return true;
+}
+
+template <bool seq_one_byte>
+JsonParser<seq_one_byte>::JsonParser(Isolate* isolate, Handle<String> source)
+    : source_(source),
+      source_length_(source->length()),
+      isolate_(isolate),
+      factory_(isolate_->factory()),
+      zone_(isolate_->allocator()),
+      object_constructor_(isolate_->native_context()->object_function(),
+                          isolate_),
+      position_(-1) {
+  source_ = String::Flatten(source_);
+  pretenure_ = (source_length_ >= kPretenureTreshold) ? TENURED : NOT_TENURED;
+
+  // Optimized fast case where we only have Latin1 characters.
+  if (seq_one_byte) {
+    seq_source_ = Handle<SeqOneByteString>::cast(source_);
+  }
+}
+
+template <bool seq_one_byte>
+MaybeHandle<Object> JsonParser<seq_one_byte>::ParseJson() {
+  // Advance to the first character (possibly EOS)
+  AdvanceSkipWhitespace();
+  Handle<Object> result = ParseJsonValue();
+  if (result.is_null() || c0_ != kEndOfString) {
+    // Some exception (for example stack overflow) is already pending.
+    if (isolate_->has_pending_exception()) return Handle<Object>::null();
+
+    // Parse failed. Current character is the unexpected token.
+    Factory* factory = this->factory();
+    MessageTemplate::Template message;
+    Handle<Object> arg1 = Handle<Smi>(Smi::FromInt(position_), isolate());
+    Handle<Object> arg2;
+
+    switch (c0_) {
+      case kEndOfString:
+        message = MessageTemplate::kJsonParseUnexpectedEOS;
+        break;
+      case '-':
+      case '0':
+      case '1':
+      case '2':
+      case '3':
+      case '4':
+      case '5':
+      case '6':
+      case '7':
+      case '8':
+      case '9':
+        message = MessageTemplate::kJsonParseUnexpectedTokenNumber;
+        break;
+      case '"':
+        message = MessageTemplate::kJsonParseUnexpectedTokenString;
+        break;
+      default:
+        message = MessageTemplate::kJsonParseUnexpectedToken;
+        arg2 = arg1;
+        arg1 = factory->LookupSingleCharacterStringFromCode(c0_);
+        break;
+    }
+
+    Handle<Script> script(factory->NewScript(source_));
+    // We should sent compile error event because we compile JSON object in
+    // separated source file.
+    isolate()->debug()->OnCompileError(script);
+    MessageLocation location(script, position_, position_ + 1);
+    Handle<Object> error = factory->NewSyntaxError(message, arg1, arg2);
+    return isolate()->template Throw<Object>(error, &location);
+  }
+  return result;
+}
+
+MaybeHandle<Object> InternalizeJsonProperty(Handle<JSObject> holder,
+                                            Handle<String> key);
+
+template <bool seq_one_byte>
+void JsonParser<seq_one_byte>::Advance() {
+  position_++;
+  if (position_ >= source_length_) {
+    c0_ = kEndOfString;
+  } else if (seq_one_byte) {
+    c0_ = seq_source_->SeqOneByteStringGet(position_);
+  } else {
+    c0_ = source_->Get(position_);
+  }
+}
+
+template <bool seq_one_byte>
+void JsonParser<seq_one_byte>::AdvanceSkipWhitespace() {
+  do {
+    Advance();
+  } while (c0_ == ' ' || c0_ == '\t' || c0_ == '\n' || c0_ == '\r');
+}
+
+template <bool seq_one_byte>
+void JsonParser<seq_one_byte>::SkipWhitespace() {
+  while (c0_ == ' ' || c0_ == '\t' || c0_ == '\n' || c0_ == '\r') {
+    Advance();
+  }
+}
+
+template <bool seq_one_byte>
+uc32 JsonParser<seq_one_byte>::AdvanceGetChar() {
+  Advance();
+  return c0_;
+}
+
+template <bool seq_one_byte>
+bool JsonParser<seq_one_byte>::MatchSkipWhiteSpace(uc32 c) {
+  if (c0_ == c) {
+    AdvanceSkipWhitespace();
+    return true;
+  }
+  return false;
+}
+
+template <bool seq_one_byte>
+bool JsonParser<seq_one_byte>::ParseJsonString(Handle<String> expected) {
+  int length = expected->length();
+  if (source_->length() - position_ - 1 > length) {
+    DisallowHeapAllocation no_gc;
+    String::FlatContent content = expected->GetFlatContent();
+    if (content.IsOneByte()) {
+      DCHECK_EQ('"', c0_);
+      const uint8_t* input_chars = seq_source_->GetChars() + position_ + 1;
+      const uint8_t* expected_chars = content.ToOneByteVector().start();
+      for (int i = 0; i < length; i++) {
+        uint8_t c0 = input_chars[i];
+        if (c0 != expected_chars[i] || c0 == '"' || c0 < 0x20 || c0 == '\\') {
+          return false;
+        }
+      }
+      if (input_chars[length] == '"') {
+        position_ = position_ + length + 1;
+        AdvanceSkipWhitespace();
+        return true;
+      }
+    }
+  }
+  return false;
+}
+
+// Parse any JSON value.
+template <bool seq_one_byte>
+Handle<Object> JsonParser<seq_one_byte>::ParseJsonValue() {
+  StackLimitCheck stack_check(isolate_);
+  if (stack_check.HasOverflowed()) {
+    isolate_->StackOverflow();
+    return Handle<Object>::null();
+  }
+
+  if (stack_check.InterruptRequested() &&
+      isolate_->stack_guard()->HandleInterrupts()->IsException(isolate_)) {
+    return Handle<Object>::null();
+  }
+
+  if (c0_ == '"') return ParseJsonString();
+  if ((c0_ >= '0' && c0_ <= '9') || c0_ == '-') return ParseJsonNumber();
+  if (c0_ == '{') return ParseJsonObject();
+  if (c0_ == '[') return ParseJsonArray();
+  if (c0_ == 'f') {
+    if (AdvanceGetChar() == 'a' && AdvanceGetChar() == 'l' &&
+        AdvanceGetChar() == 's' && AdvanceGetChar() == 'e') {
+      AdvanceSkipWhitespace();
+      return factory()->false_value();
+    }
+    return ReportUnexpectedCharacter();
+  }
+  if (c0_ == 't') {
+    if (AdvanceGetChar() == 'r' && AdvanceGetChar() == 'u' &&
+        AdvanceGetChar() == 'e') {
+      AdvanceSkipWhitespace();
+      return factory()->true_value();
+    }
+    return ReportUnexpectedCharacter();
+  }
+  if (c0_ == 'n') {
+    if (AdvanceGetChar() == 'u' && AdvanceGetChar() == 'l' &&
+        AdvanceGetChar() == 'l') {
+      AdvanceSkipWhitespace();
+      return factory()->null_value();
+    }
+    return ReportUnexpectedCharacter();
+  }
+  return ReportUnexpectedCharacter();
+}
+
+template <bool seq_one_byte>
+ParseElementResult JsonParser<seq_one_byte>::ParseElement(
+    Handle<JSObject> json_object) {
+  uint32_t index = 0;
+  // Maybe an array index, try to parse it.
+  if (c0_ == '0') {
+    // With a leading zero, the string has to be "0" only to be an index.
+    Advance();
+  } else {
+    do {
+      int d = c0_ - '0';
+      if (index > 429496729U - ((d + 3) >> 3)) break;
+      index = (index * 10) + d;
+      Advance();
+    } while (IsDecimalDigit(c0_));
+  }
+
+  if (c0_ == '"') {
+    // Successfully parsed index, parse and store element.
+    AdvanceSkipWhitespace();
+
+    if (c0_ == ':') {
+      AdvanceSkipWhitespace();
+      Handle<Object> value = ParseJsonValue();
+      if (!value.is_null()) {
+        JSObject::SetOwnElementIgnoreAttributes(json_object, index, value, NONE)
+            .Assert();
+        return kElementFound;
+      } else {
+        return kNullHandle;
+      }
+    }
+  }
+  return kElementNotFound;
+}
+
+// Parse a JSON object. Position must be right at '{'.
+template <bool seq_one_byte>
+Handle<Object> JsonParser<seq_one_byte>::ParseJsonObject() {
+  HandleScope scope(isolate());
+  Handle<JSObject> json_object =
+      factory()->NewJSObject(object_constructor(), pretenure_);
+  Handle<Map> map(json_object->map());
+  int descriptor = 0;
+  ZoneList<Handle<Object> > properties(8, zone());
+  DCHECK_EQ(c0_, '{');
+
+  bool transitioning = true;
+
+  AdvanceSkipWhitespace();
+  if (c0_ != '}') {
+    do {
+      if (c0_ != '"') return ReportUnexpectedCharacter();
+
+      int start_position = position_;
+      Advance();
+
+      if (IsDecimalDigit(c0_)) {
+        ParseElementResult element_result = ParseElement(json_object);
+        if (element_result == kNullHandle) return Handle<Object>::null();
+        if (element_result == kElementFound) continue;
+      }
+      // Not an index, fallback to the slow path.
+
+      position_ = start_position;
+#ifdef DEBUG
+      c0_ = '"';
+#endif
+
+      Handle<String> key;
+      Handle<Object> value;
+
+      // Try to follow existing transitions as long as possible. Once we stop
+      // transitioning, no transition can be found anymore.
+      DCHECK(transitioning);
+      // First check whether there is a single expected transition. If so, try
+      // to parse it first.
+      bool follow_expected = false;
+      Handle<Map> target;
+      if (seq_one_byte) {
+        key = TransitionArray::ExpectedTransitionKey(map);
+        follow_expected = !key.is_null() && ParseJsonString(key);
+      }
+      // If the expected transition hits, follow it.
+      if (follow_expected) {
+        target = TransitionArray::ExpectedTransitionTarget(map);
+      } else {
+        // If the expected transition failed, parse an internalized string and
+        // try to find a matching transition.
+        key = ParseJsonInternalizedString();
+        if (key.is_null()) return ReportUnexpectedCharacter();
+
+        target = TransitionArray::FindTransitionToField(map, key);
+        // If a transition was found, follow it and continue.
+        transitioning = !target.is_null();
+      }
+      if (c0_ != ':') return ReportUnexpectedCharacter();
+
+      AdvanceSkipWhitespace();
+      value = ParseJsonValue();
+      if (value.is_null()) return ReportUnexpectedCharacter();
+
+      if (transitioning) {
+        PropertyDetails details =
+            target->instance_descriptors()->GetDetails(descriptor);
+        Representation expected_representation = details.representation();
+
+        if (value->FitsRepresentation(expected_representation)) {
+          if (expected_representation.IsHeapObject() &&
+              !target->instance_descriptors()
+                   ->GetFieldType(descriptor)
+                   ->NowContains(value)) {
+            Handle<FieldType> value_type(
+                value->OptimalType(isolate(), expected_representation));
+            Map::GeneralizeFieldType(target, descriptor,
+                                     expected_representation, value_type);
+          }
+          DCHECK(target->instance_descriptors()
+                     ->GetFieldType(descriptor)
+                     ->NowContains(value));
+          properties.Add(value, zone());
+          map = target;
+          descriptor++;
+          continue;
+        } else {
+          transitioning = false;
+        }
+      }
+
+      DCHECK(!transitioning);
+
+      // Commit the intermediate state to the object and stop transitioning.
+      CommitStateToJsonObject(json_object, map, &properties);
+
+      JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key, value)
+          .Check();
+    } while (transitioning && MatchSkipWhiteSpace(','));
+
+    // If we transitioned until the very end, transition the map now.
+    if (transitioning) {
+      CommitStateToJsonObject(json_object, map, &properties);
+    } else {
+      while (MatchSkipWhiteSpace(',')) {
+        HandleScope local_scope(isolate());
+        if (c0_ != '"') return ReportUnexpectedCharacter();
+
+        int start_position = position_;
+        Advance();
+
+        if (IsDecimalDigit(c0_)) {
+          ParseElementResult element_result = ParseElement(json_object);
+          if (element_result == kNullHandle) return Handle<Object>::null();
+          if (element_result == kElementFound) continue;
+        }
+        // Not an index, fallback to the slow path.
+
+        position_ = start_position;
+#ifdef DEBUG
+        c0_ = '"';
+#endif
+
+        Handle<String> key;
+        Handle<Object> value;
+
+        key = ParseJsonInternalizedString();
+        if (key.is_null() || c0_ != ':') return ReportUnexpectedCharacter();
+
+        AdvanceSkipWhitespace();
+        value = ParseJsonValue();
+        if (value.is_null()) return ReportUnexpectedCharacter();
+
+        JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key,
+                                                          value)
+            .Check();
+      }
+    }
+
+    if (c0_ != '}') {
+      return ReportUnexpectedCharacter();
+    }
+  }
+  AdvanceSkipWhitespace();
+  return scope.CloseAndEscape(json_object);
+}
+
+template <bool seq_one_byte>
+void JsonParser<seq_one_byte>::CommitStateToJsonObject(
+    Handle<JSObject> json_object, Handle<Map> map,
+    ZoneList<Handle<Object> >* properties) {
+  JSObject::AllocateStorageForMap(json_object, map);
+  DCHECK(!json_object->map()->is_dictionary_map());
+
+  DisallowHeapAllocation no_gc;
+
+  int length = properties->length();
+  for (int i = 0; i < length; i++) {
+    Handle<Object> value = (*properties)[i];
+    json_object->WriteToField(i, *value);
+  }
+}
+
+// Parse a JSON array. Position must be right at '['.
+template <bool seq_one_byte>
+Handle<Object> JsonParser<seq_one_byte>::ParseJsonArray() {
+  HandleScope scope(isolate());
+  ZoneList<Handle<Object> > elements(4, zone());
+  DCHECK_EQ(c0_, '[');
+
+  AdvanceSkipWhitespace();
+  if (c0_ != ']') {
+    do {
+      Handle<Object> element = ParseJsonValue();
+      if (element.is_null()) return ReportUnexpectedCharacter();
+      elements.Add(element, zone());
+    } while (MatchSkipWhiteSpace(','));
+    if (c0_ != ']') {
+      return ReportUnexpectedCharacter();
+    }
+  }
+  AdvanceSkipWhitespace();
+  // Allocate a fixed array with all the elements.
+  Handle<FixedArray> fast_elements =
+      factory()->NewFixedArray(elements.length(), pretenure_);
+  for (int i = 0, n = elements.length(); i < n; i++) {
+    fast_elements->set(i, *elements[i]);
+  }
+  Handle<Object> json_array = factory()->NewJSArrayWithElements(
+      fast_elements, FAST_ELEMENTS, pretenure_);
+  return scope.CloseAndEscape(json_array);
+}
+
+template <bool seq_one_byte>
+Handle<Object> JsonParser<seq_one_byte>::ParseJsonNumber() {
+  bool negative = false;
+  int beg_pos = position_;
+  if (c0_ == '-') {
+    Advance();
+    negative = true;
+  }
+  if (c0_ == '0') {
+    Advance();
+    // Prefix zero is only allowed if it's the only digit before
+    // a decimal point or exponent.
+    if (IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
+  } else {
+    int i = 0;
+    int digits = 0;
+    if (c0_ < '1' || c0_ > '9') return ReportUnexpectedCharacter();
+    do {
+      i = i * 10 + c0_ - '0';
+      digits++;
+      Advance();
+    } while (IsDecimalDigit(c0_));
+    if (c0_ != '.' && c0_ != 'e' && c0_ != 'E' && digits < 10) {
+      SkipWhitespace();
+      return Handle<Smi>(Smi::FromInt((negative ? -i : i)), isolate());
+    }
+  }
+  if (c0_ == '.') {
+    Advance();
+    if (!IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
+    do {
+      Advance();
+    } while (IsDecimalDigit(c0_));
+  }
+  if (AsciiAlphaToLower(c0_) == 'e') {
+    Advance();
+    if (c0_ == '-' || c0_ == '+') Advance();
+    if (!IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
+    do {
+      Advance();
+    } while (IsDecimalDigit(c0_));
+  }
+  int length = position_ - beg_pos;
+  double number;
+  if (seq_one_byte) {
+    Vector<const uint8_t> chars(seq_source_->GetChars() + beg_pos, length);
+    number = StringToDouble(isolate()->unicode_cache(), chars,
+                            NO_FLAGS,  // Hex, octal or trailing junk.
+                            std::numeric_limits<double>::quiet_NaN());
+  } else {
+    Vector<uint8_t> buffer = Vector<uint8_t>::New(length);
+    String::WriteToFlat(*source_, buffer.start(), beg_pos, position_);
+    Vector<const uint8_t> result =
+        Vector<const uint8_t>(buffer.start(), length);
+    number = StringToDouble(isolate()->unicode_cache(), result,
+                            NO_FLAGS,  // Hex, octal or trailing junk.
+                            0.0);
+    buffer.Dispose();
+  }
+  SkipWhitespace();
+  return factory()->NewNumber(number, pretenure_);
+}
+
+template <typename StringType>
+inline void SeqStringSet(Handle<StringType> seq_str, int i, uc32 c);
+
+template <>
+inline void SeqStringSet(Handle<SeqTwoByteString> seq_str, int i, uc32 c) {
+  seq_str->SeqTwoByteStringSet(i, c);
+}
+
+template <>
+inline void SeqStringSet(Handle<SeqOneByteString> seq_str, int i, uc32 c) {
+  seq_str->SeqOneByteStringSet(i, c);
+}
+
+template <typename StringType>
+inline Handle<StringType> NewRawString(Factory* factory, int length,
+                                       PretenureFlag pretenure);
+
+template <>
+inline Handle<SeqTwoByteString> NewRawString(Factory* factory, int length,
+                                             PretenureFlag pretenure) {
+  return factory->NewRawTwoByteString(length, pretenure).ToHandleChecked();
+}
+
+template <>
+inline Handle<SeqOneByteString> NewRawString(Factory* factory, int length,
+                                             PretenureFlag pretenure) {
+  return factory->NewRawOneByteString(length, pretenure).ToHandleChecked();
+}
+
+// Scans the rest of a JSON string starting from position_ and writes
+// prefix[start..end] along with the scanned characters into a
+// sequential string of type StringType.
+template <bool seq_one_byte>
+template <typename StringType, typename SinkChar>
+Handle<String> JsonParser<seq_one_byte>::SlowScanJsonString(
+    Handle<String> prefix, int start, int end) {
+  int count = end - start;
+  int max_length = count + source_length_ - position_;
+  int length = Min(max_length, Max(kInitialSpecialStringLength, 2 * count));
+  Handle<StringType> seq_string =
+      NewRawString<StringType>(factory(), length, pretenure_);
+  // Copy prefix into seq_str.
+  SinkChar* dest = seq_string->GetChars();
+  String::WriteToFlat(*prefix, dest, start, end);
+
+  while (c0_ != '"') {
+    // Check for control character (0x00-0x1f) or unterminated string (<0).
+    if (c0_ < 0x20) return Handle<String>::null();
+    if (count >= length) {
+      // We need to create a longer sequential string for the result.
+      return SlowScanJsonString<StringType, SinkChar>(seq_string, 0, count);
+    }
+    if (c0_ != '\\') {
+      // If the sink can contain UC16 characters, or source_ contains only
+      // Latin1 characters, there's no need to test whether we can store the
+      // character. Otherwise check whether the UC16 source character can fit
+      // in the Latin1 sink.
+      if (sizeof(SinkChar) == kUC16Size || seq_one_byte ||
+          c0_ <= String::kMaxOneByteCharCode) {
+        SeqStringSet(seq_string, count++, c0_);
+        Advance();
+      } else {
+        // StringType is SeqOneByteString and we just read a non-Latin1 char.
+        return SlowScanJsonString<SeqTwoByteString, uc16>(seq_string, 0, count);
+      }
+    } else {
+      Advance();  // Advance past the \.
+      switch (c0_) {
+        case '"':
+        case '\\':
+        case '/':
+          SeqStringSet(seq_string, count++, c0_);
+          break;
+        case 'b':
+          SeqStringSet(seq_string, count++, '\x08');
+          break;
+        case 'f':
+          SeqStringSet(seq_string, count++, '\x0c');
+          break;
+        case 'n':
+          SeqStringSet(seq_string, count++, '\x0a');
+          break;
+        case 'r':
+          SeqStringSet(seq_string, count++, '\x0d');
+          break;
+        case 't':
+          SeqStringSet(seq_string, count++, '\x09');
+          break;
+        case 'u': {
+          uc32 value = 0;
+          for (int i = 0; i < 4; i++) {
+            Advance();
+            int digit = HexValue(c0_);
+            if (digit < 0) {
+              return Handle<String>::null();
+            }
+            value = value * 16 + digit;
+          }
+          if (sizeof(SinkChar) == kUC16Size ||
+              value <= String::kMaxOneByteCharCode) {
+            SeqStringSet(seq_string, count++, value);
+            break;
+          } else {
+            // StringType is SeqOneByteString and we just read a non-Latin1
+            // char.
+            position_ -= 6;  // Rewind position_ to \ in \uxxxx.
+            Advance();
+            return SlowScanJsonString<SeqTwoByteString, uc16>(seq_string, 0,
+                                                              count);
+          }
+        }
+        default:
+          return Handle<String>::null();
+      }
+      Advance();
+    }
+  }
+
+  DCHECK_EQ('"', c0_);
+  // Advance past the last '"'.
+  AdvanceSkipWhitespace();
+
+  // Shrink seq_string length to count and return.
+  return SeqString::Truncate(seq_string, count);
+}
+
+template <bool seq_one_byte>
+template <bool is_internalized>
+Handle<String> JsonParser<seq_one_byte>::ScanJsonString() {
+  DCHECK_EQ('"', c0_);
+  Advance();
+  if (c0_ == '"') {
+    AdvanceSkipWhitespace();
+    return factory()->empty_string();
+  }
+
+  if (seq_one_byte && is_internalized) {
+    // Fast path for existing internalized strings.  If the the string being
+    // parsed is not a known internalized string, contains backslashes or
+    // unexpectedly reaches the end of string, return with an empty handle.
+    uint32_t running_hash = isolate()->heap()->HashSeed();
+    int position = position_;
+    uc32 c0 = c0_;
+    do {
+      if (c0 == '\\') {
+        c0_ = c0;
+        int beg_pos = position_;
+        position_ = position;
+        return SlowScanJsonString<SeqOneByteString, uint8_t>(source_, beg_pos,
+                                                             position_);
+      }
+      if (c0 < 0x20) return Handle<String>::null();
+      running_hash = StringHasher::AddCharacterCore(running_hash,
+                                                    static_cast<uint16_t>(c0));
+      position++;
+      if (position >= source_length_) return Handle<String>::null();
+      c0 = seq_source_->SeqOneByteStringGet(position);
+    } while (c0 != '"');
+    int length = position - position_;
+    uint32_t hash = (length <= String::kMaxHashCalcLength)
+                        ? StringHasher::GetHashCore(running_hash)
+                        : static_cast<uint32_t>(length);
+    Vector<const uint8_t> string_vector(seq_source_->GetChars() + position_,
+                                        length);
+    StringTable* string_table = isolate()->heap()->string_table();
+    uint32_t capacity = string_table->Capacity();
+    uint32_t entry = StringTable::FirstProbe(hash, capacity);
+    uint32_t count = 1;
+    Handle<String> result;
+    while (true) {
+      Object* element = string_table->KeyAt(entry);
+      if (element->IsUndefined(isolate())) {
+        // Lookup failure.
+        result =
+            factory()->InternalizeOneByteString(seq_source_, position_, length);
+        break;
+      }
+      if (!element->IsTheHole(isolate()) &&
+          String::cast(element)->IsOneByteEqualTo(string_vector)) {
+        result = Handle<String>(String::cast(element), isolate());
+#ifdef DEBUG
+        uint32_t hash_field =
+            (hash << String::kHashShift) | String::kIsNotArrayIndexMask;
+        DCHECK_EQ(static_cast<int>(result->Hash()),
+                  static_cast<int>(hash_field >> String::kHashShift));
+#endif
+        break;
+      }
+      entry = StringTable::NextProbe(entry, count++, capacity);
+    }
+    position_ = position;
+    // Advance past the last '"'.
+    AdvanceSkipWhitespace();
+    return result;
+  }
+
+  int beg_pos = position_;
+  // Fast case for Latin1 only without escape characters.
+  do {
+    // Check for control character (0x00-0x1f) or unterminated string (<0).
+    if (c0_ < 0x20) return Handle<String>::null();
+    if (c0_ != '\\') {
+      if (seq_one_byte || c0_ <= String::kMaxOneByteCharCode) {
+        Advance();
+      } else {
+        return SlowScanJsonString<SeqTwoByteString, uc16>(source_, beg_pos,
+                                                          position_);
+      }
+    } else {
+      return SlowScanJsonString<SeqOneByteString, uint8_t>(source_, beg_pos,
+                                                           position_);
+    }
+  } while (c0_ != '"');
+  int length = position_ - beg_pos;
+  Handle<String> result =
+      factory()->NewRawOneByteString(length, pretenure_).ToHandleChecked();
+  uint8_t* dest = SeqOneByteString::cast(*result)->GetChars();
+  String::WriteToFlat(*source_, dest, beg_pos, position_);
+
+  DCHECK_EQ('"', c0_);
+  // Advance past the last '"'.
+  AdvanceSkipWhitespace();
+  return result;
+}
+
+// Explicit instantiation.
+template class JsonParser<true>;
+template class JsonParser<false>;
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/json-parser.h b/src/json-parser.h
index 1b9829f..2d08fef 100644
--- a/src/json-parser.h
+++ b/src/json-parser.h
@@ -5,95 +5,70 @@
 #ifndef V8_JSON_PARSER_H_
 #define V8_JSON_PARSER_H_
 
-#include "src/char-predicates.h"
-#include "src/conversions.h"
-#include "src/debug/debug.h"
 #include "src/factory.h"
-#include "src/field-type.h"
-#include "src/messages.h"
-#include "src/parsing/scanner.h"
-#include "src/parsing/token.h"
-#include "src/transitions.h"
+#include "src/objects.h"
 
 namespace v8 {
 namespace internal {
 
 enum ParseElementResult { kElementFound, kElementNotFound, kNullHandle };
 
+class JsonParseInternalizer BASE_EMBEDDED {
+ public:
+  static MaybeHandle<Object> Internalize(Isolate* isolate,
+                                         Handle<Object> object,
+                                         Handle<Object> reviver);
+
+ private:
+  JsonParseInternalizer(Isolate* isolate, Handle<JSReceiver> reviver)
+      : isolate_(isolate), reviver_(reviver) {}
+
+  MaybeHandle<Object> InternalizeJsonProperty(Handle<JSReceiver> holder,
+                                              Handle<String> key);
+
+  bool RecurseAndApply(Handle<JSReceiver> holder, Handle<String> name);
+
+  Isolate* isolate_;
+  Handle<JSReceiver> reviver_;
+};
 
 // A simple json parser.
 template <bool seq_one_byte>
 class JsonParser BASE_EMBEDDED {
  public:
-  MUST_USE_RESULT static MaybeHandle<Object> Parse(Handle<String> source) {
-    return JsonParser(source).ParseJson();
+  MUST_USE_RESULT static MaybeHandle<Object> Parse(Isolate* isolate,
+                                                   Handle<String> source,
+                                                   Handle<Object> reviver) {
+    Handle<Object> result;
+    ASSIGN_RETURN_ON_EXCEPTION(isolate, result,
+                               JsonParser(isolate, source).ParseJson(), Object);
+    if (reviver->IsCallable()) {
+      return JsonParseInternalizer::Internalize(isolate, result, reviver);
+    }
+    return result;
   }
 
   static const int kEndOfString = -1;
 
  private:
-  explicit JsonParser(Handle<String> source)
-      : source_(source),
-        source_length_(source->length()),
-        isolate_(source->map()->GetHeap()->isolate()),
-        factory_(isolate_->factory()),
-        zone_(isolate_->allocator()),
-        object_constructor_(isolate_->native_context()->object_function(),
-                            isolate_),
-        position_(-1) {
-    source_ = String::Flatten(source_);
-    pretenure_ = (source_length_ >= kPretenureTreshold) ? TENURED : NOT_TENURED;
-
-    // Optimized fast case where we only have Latin1 characters.
-    if (seq_one_byte) {
-      seq_source_ = Handle<SeqOneByteString>::cast(source_);
-    }
-  }
+  JsonParser(Isolate* isolate, Handle<String> source);
 
   // Parse a string containing a single JSON value.
   MaybeHandle<Object> ParseJson();
 
-  inline void Advance() {
-    position_++;
-    if (position_ >= source_length_) {
-      c0_ = kEndOfString;
-    } else if (seq_one_byte) {
-      c0_ = seq_source_->SeqOneByteStringGet(position_);
-    } else {
-      c0_ = source_->Get(position_);
-    }
-  }
+  INLINE(void Advance());
 
   // The JSON lexical grammar is specified in the ECMAScript 5 standard,
   // section 15.12.1.1. The only allowed whitespace characters between tokens
   // are tab, carriage-return, newline and space.
 
-  inline void AdvanceSkipWhitespace() {
-    do {
-      Advance();
-    } while (c0_ == ' ' || c0_ == '\t' || c0_ == '\n' || c0_ == '\r');
-  }
-
-  inline void SkipWhitespace() {
-    while (c0_ == ' ' || c0_ == '\t' || c0_ == '\n' || c0_ == '\r') {
-      Advance();
-    }
-  }
-
-  inline uc32 AdvanceGetChar() {
-    Advance();
-    return c0_;
-  }
+  INLINE(void AdvanceSkipWhitespace());
+  INLINE(void SkipWhitespace());
+  INLINE(uc32 AdvanceGetChar());
 
   // Checks that current charater is c.
   // If so, then consume c and skip whitespace.
-  inline bool MatchSkipWhiteSpace(uc32 c) {
-    if (c0_ == c) {
-      AdvanceSkipWhitespace();
-      return true;
-    }
-    return false;
-  }
+  INLINE(bool MatchSkipWhiteSpace(uc32 c));
 
   // A JSON string (production JSONString) is subset of valid JavaScript string
   // literals. The string must only be double-quoted (not single-quoted), and
@@ -103,30 +78,7 @@
     return ScanJsonString<false>();
   }
 
-  bool ParseJsonString(Handle<String> expected) {
-    int length = expected->length();
-    if (source_->length() - position_ - 1 > length) {
-      DisallowHeapAllocation no_gc;
-      String::FlatContent content = expected->GetFlatContent();
-      if (content.IsOneByte()) {
-        DCHECK_EQ('"', c0_);
-        const uint8_t* input_chars = seq_source_->GetChars() + position_ + 1;
-        const uint8_t* expected_chars = content.ToOneByteVector().start();
-        for (int i = 0; i < length; i++) {
-          uint8_t c0 = input_chars[i];
-          if (c0 != expected_chars[i] || c0 == '"' || c0 < 0x20 || c0 == '\\') {
-            return false;
-          }
-        }
-        if (input_chars[length] == '"') {
-          position_ = position_ + length + 1;
-          AdvanceSkipWhitespace();
-          return true;
-        }
-      }
-    }
-    return false;
-  }
+  bool ParseJsonString(Handle<String> expected);
 
   Handle<String> ParseJsonInternalizedString() {
     Handle<String> result = ScanJsonString<true>();
@@ -188,7 +140,6 @@
   static const int kInitialSpecialStringLength = 32;
   static const int kPretenureTreshold = 100 * 1024;
 
-
  private:
   Zone* zone() { return &zone_; }
 
@@ -208,639 +159,6 @@
   int position_;
 };
 
-template <bool seq_one_byte>
-MaybeHandle<Object> JsonParser<seq_one_byte>::ParseJson() {
-  // Advance to the first character (possibly EOS)
-  AdvanceSkipWhitespace();
-  Handle<Object> result = ParseJsonValue();
-  if (result.is_null() || c0_ != kEndOfString) {
-    // Some exception (for example stack overflow) is already pending.
-    if (isolate_->has_pending_exception()) return Handle<Object>::null();
-
-    // Parse failed. Current character is the unexpected token.
-    Factory* factory = this->factory();
-    MessageTemplate::Template message;
-    Handle<Object> arg1 = Handle<Smi>(Smi::FromInt(position_), isolate());
-    Handle<Object> arg2;
-
-    switch (c0_) {
-      case kEndOfString:
-        message = MessageTemplate::kJsonParseUnexpectedEOS;
-        break;
-      case '-':
-      case '0':
-      case '1':
-      case '2':
-      case '3':
-      case '4':
-      case '5':
-      case '6':
-      case '7':
-      case '8':
-      case '9':
-        message = MessageTemplate::kJsonParseUnexpectedTokenNumber;
-        break;
-      case '"':
-        message = MessageTemplate::kJsonParseUnexpectedTokenString;
-        break;
-      default:
-        message = MessageTemplate::kJsonParseUnexpectedToken;
-        arg2 = arg1;
-        arg1 = factory->LookupSingleCharacterStringFromCode(c0_);
-        break;
-    }
-
-    Handle<Script> script(factory->NewScript(source_));
-    // We should sent compile error event because we compile JSON object in
-    // separated source file.
-    isolate()->debug()->OnCompileError(script);
-    MessageLocation location(script, position_, position_ + 1);
-    Handle<Object> error = factory->NewSyntaxError(message, arg1, arg2);
-    return isolate()->template Throw<Object>(error, &location);
-  }
-  return result;
-}
-
-
-// Parse any JSON value.
-template <bool seq_one_byte>
-Handle<Object> JsonParser<seq_one_byte>::ParseJsonValue() {
-  StackLimitCheck stack_check(isolate_);
-  if (stack_check.HasOverflowed()) {
-    isolate_->StackOverflow();
-    return Handle<Object>::null();
-  }
-
-  if (stack_check.InterruptRequested()) {
-    ExecutionAccess access(isolate_);
-    // Avoid blocking GC in long running parser (v8:3974).
-    isolate_->stack_guard()->HandleGCInterrupt();
-  }
-
-  if (c0_ == '"') return ParseJsonString();
-  if ((c0_ >= '0' && c0_ <= '9') || c0_ == '-') return ParseJsonNumber();
-  if (c0_ == '{') return ParseJsonObject();
-  if (c0_ == '[') return ParseJsonArray();
-  if (c0_ == 'f') {
-    if (AdvanceGetChar() == 'a' && AdvanceGetChar() == 'l' &&
-        AdvanceGetChar() == 's' && AdvanceGetChar() == 'e') {
-      AdvanceSkipWhitespace();
-      return factory()->false_value();
-    }
-    return ReportUnexpectedCharacter();
-  }
-  if (c0_ == 't') {
-    if (AdvanceGetChar() == 'r' && AdvanceGetChar() == 'u' &&
-        AdvanceGetChar() == 'e') {
-      AdvanceSkipWhitespace();
-      return factory()->true_value();
-    }
-    return ReportUnexpectedCharacter();
-  }
-  if (c0_ == 'n') {
-    if (AdvanceGetChar() == 'u' && AdvanceGetChar() == 'l' &&
-        AdvanceGetChar() == 'l') {
-      AdvanceSkipWhitespace();
-      return factory()->null_value();
-    }
-    return ReportUnexpectedCharacter();
-  }
-  return ReportUnexpectedCharacter();
-}
-
-
-template <bool seq_one_byte>
-ParseElementResult JsonParser<seq_one_byte>::ParseElement(
-    Handle<JSObject> json_object) {
-  uint32_t index = 0;
-  // Maybe an array index, try to parse it.
-  if (c0_ == '0') {
-    // With a leading zero, the string has to be "0" only to be an index.
-    Advance();
-  } else {
-    do {
-      int d = c0_ - '0';
-      if (index > 429496729U - ((d + 3) >> 3)) break;
-      index = (index * 10) + d;
-      Advance();
-    } while (IsDecimalDigit(c0_));
-  }
-
-  if (c0_ == '"') {
-    // Successfully parsed index, parse and store element.
-    AdvanceSkipWhitespace();
-
-    if (c0_ == ':') {
-      AdvanceSkipWhitespace();
-      Handle<Object> value = ParseJsonValue();
-      if (!value.is_null()) {
-        JSObject::SetOwnElementIgnoreAttributes(json_object, index, value, NONE)
-            .Assert();
-        return kElementFound;
-      } else {
-        return kNullHandle;
-      }
-    }
-  }
-  return kElementNotFound;
-}
-
-// Parse a JSON object. Position must be right at '{'.
-template <bool seq_one_byte>
-Handle<Object> JsonParser<seq_one_byte>::ParseJsonObject() {
-  HandleScope scope(isolate());
-  Handle<JSObject> json_object =
-      factory()->NewJSObject(object_constructor(), pretenure_);
-  Handle<Map> map(json_object->map());
-  int descriptor = 0;
-  ZoneList<Handle<Object> > properties(8, zone());
-  DCHECK_EQ(c0_, '{');
-
-  bool transitioning = true;
-
-  AdvanceSkipWhitespace();
-  if (c0_ != '}') {
-    do {
-      if (c0_ != '"') return ReportUnexpectedCharacter();
-
-      int start_position = position_;
-      Advance();
-
-      if (IsDecimalDigit(c0_)) {
-        ParseElementResult element_result = ParseElement(json_object);
-        if (element_result == kNullHandle) return Handle<Object>::null();
-        if (element_result == kElementFound) continue;
-      }
-      // Not an index, fallback to the slow path.
-
-      position_ = start_position;
-#ifdef DEBUG
-      c0_ = '"';
-#endif
-
-      Handle<String> key;
-      Handle<Object> value;
-
-      // Try to follow existing transitions as long as possible. Once we stop
-      // transitioning, no transition can be found anymore.
-      DCHECK(transitioning);
-      // First check whether there is a single expected transition. If so, try
-      // to parse it first.
-      bool follow_expected = false;
-      Handle<Map> target;
-      if (seq_one_byte) {
-        key = TransitionArray::ExpectedTransitionKey(map);
-        follow_expected = !key.is_null() && ParseJsonString(key);
-      }
-      // If the expected transition hits, follow it.
-      if (follow_expected) {
-        target = TransitionArray::ExpectedTransitionTarget(map);
-      } else {
-        // If the expected transition failed, parse an internalized string and
-        // try to find a matching transition.
-        key = ParseJsonInternalizedString();
-        if (key.is_null()) return ReportUnexpectedCharacter();
-
-        target = TransitionArray::FindTransitionToField(map, key);
-        // If a transition was found, follow it and continue.
-        transitioning = !target.is_null();
-      }
-      if (c0_ != ':') return ReportUnexpectedCharacter();
-
-      AdvanceSkipWhitespace();
-      value = ParseJsonValue();
-      if (value.is_null()) return ReportUnexpectedCharacter();
-
-      if (transitioning) {
-        PropertyDetails details =
-            target->instance_descriptors()->GetDetails(descriptor);
-        Representation expected_representation = details.representation();
-
-        if (value->FitsRepresentation(expected_representation)) {
-          if (expected_representation.IsHeapObject() &&
-              !target->instance_descriptors()
-                   ->GetFieldType(descriptor)
-                   ->NowContains(value)) {
-            Handle<FieldType> value_type(
-                value->OptimalType(isolate(), expected_representation));
-            Map::GeneralizeFieldType(target, descriptor,
-                                     expected_representation, value_type);
-          }
-          DCHECK(target->instance_descriptors()
-                     ->GetFieldType(descriptor)
-                     ->NowContains(value));
-          properties.Add(value, zone());
-          map = target;
-          descriptor++;
-          continue;
-        } else {
-          transitioning = false;
-        }
-      }
-
-      DCHECK(!transitioning);
-
-      // Commit the intermediate state to the object and stop transitioning.
-      CommitStateToJsonObject(json_object, map, &properties);
-
-      JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key, value)
-          .Check();
-    } while (transitioning && MatchSkipWhiteSpace(','));
-
-    // If we transitioned until the very end, transition the map now.
-    if (transitioning) {
-      CommitStateToJsonObject(json_object, map, &properties);
-    } else {
-      while (MatchSkipWhiteSpace(',')) {
-        HandleScope local_scope(isolate());
-        if (c0_ != '"') return ReportUnexpectedCharacter();
-
-        int start_position = position_;
-        Advance();
-
-        if (IsDecimalDigit(c0_)) {
-          ParseElementResult element_result = ParseElement(json_object);
-          if (element_result == kNullHandle) return Handle<Object>::null();
-          if (element_result == kElementFound) continue;
-        }
-        // Not an index, fallback to the slow path.
-
-        position_ = start_position;
-#ifdef DEBUG
-        c0_ = '"';
-#endif
-
-        Handle<String> key;
-        Handle<Object> value;
-
-        key = ParseJsonInternalizedString();
-        if (key.is_null() || c0_ != ':') return ReportUnexpectedCharacter();
-
-        AdvanceSkipWhitespace();
-        value = ParseJsonValue();
-        if (value.is_null()) return ReportUnexpectedCharacter();
-
-        JSObject::DefinePropertyOrElementIgnoreAttributes(json_object, key,
-                                                          value).Check();
-      }
-    }
-
-    if (c0_ != '}') {
-      return ReportUnexpectedCharacter();
-    }
-  }
-  AdvanceSkipWhitespace();
-  return scope.CloseAndEscape(json_object);
-}
-
-
-template <bool seq_one_byte>
-void JsonParser<seq_one_byte>::CommitStateToJsonObject(
-    Handle<JSObject> json_object, Handle<Map> map,
-    ZoneList<Handle<Object> >* properties) {
-  JSObject::AllocateStorageForMap(json_object, map);
-  DCHECK(!json_object->map()->is_dictionary_map());
-
-  DisallowHeapAllocation no_gc;
-
-  int length = properties->length();
-  for (int i = 0; i < length; i++) {
-    Handle<Object> value = (*properties)[i];
-    json_object->WriteToField(i, *value);
-  }
-}
-
-
-// Parse a JSON array. Position must be right at '['.
-template <bool seq_one_byte>
-Handle<Object> JsonParser<seq_one_byte>::ParseJsonArray() {
-  HandleScope scope(isolate());
-  ZoneList<Handle<Object> > elements(4, zone());
-  DCHECK_EQ(c0_, '[');
-
-  AdvanceSkipWhitespace();
-  if (c0_ != ']') {
-    do {
-      Handle<Object> element = ParseJsonValue();
-      if (element.is_null()) return ReportUnexpectedCharacter();
-      elements.Add(element, zone());
-    } while (MatchSkipWhiteSpace(','));
-    if (c0_ != ']') {
-      return ReportUnexpectedCharacter();
-    }
-  }
-  AdvanceSkipWhitespace();
-  // Allocate a fixed array with all the elements.
-  Handle<FixedArray> fast_elements =
-      factory()->NewFixedArray(elements.length(), pretenure_);
-  for (int i = 0, n = elements.length(); i < n; i++) {
-    fast_elements->set(i, *elements[i]);
-  }
-  Handle<Object> json_array = factory()->NewJSArrayWithElements(
-      fast_elements, FAST_ELEMENTS, pretenure_);
-  return scope.CloseAndEscape(json_array);
-}
-
-
-template <bool seq_one_byte>
-Handle<Object> JsonParser<seq_one_byte>::ParseJsonNumber() {
-  bool negative = false;
-  int beg_pos = position_;
-  if (c0_ == '-') {
-    Advance();
-    negative = true;
-  }
-  if (c0_ == '0') {
-    Advance();
-    // Prefix zero is only allowed if it's the only digit before
-    // a decimal point or exponent.
-    if (IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
-  } else {
-    int i = 0;
-    int digits = 0;
-    if (c0_ < '1' || c0_ > '9') return ReportUnexpectedCharacter();
-    do {
-      i = i * 10 + c0_ - '0';
-      digits++;
-      Advance();
-    } while (IsDecimalDigit(c0_));
-    if (c0_ != '.' && c0_ != 'e' && c0_ != 'E' && digits < 10) {
-      SkipWhitespace();
-      return Handle<Smi>(Smi::FromInt((negative ? -i : i)), isolate());
-    }
-  }
-  if (c0_ == '.') {
-    Advance();
-    if (!IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
-    do {
-      Advance();
-    } while (IsDecimalDigit(c0_));
-  }
-  if (AsciiAlphaToLower(c0_) == 'e') {
-    Advance();
-    if (c0_ == '-' || c0_ == '+') Advance();
-    if (!IsDecimalDigit(c0_)) return ReportUnexpectedCharacter();
-    do {
-      Advance();
-    } while (IsDecimalDigit(c0_));
-  }
-  int length = position_ - beg_pos;
-  double number;
-  if (seq_one_byte) {
-    Vector<const uint8_t> chars(seq_source_->GetChars() +  beg_pos, length);
-    number = StringToDouble(isolate()->unicode_cache(), chars,
-                            NO_FLAGS,  // Hex, octal or trailing junk.
-                            std::numeric_limits<double>::quiet_NaN());
-  } else {
-    Vector<uint8_t> buffer = Vector<uint8_t>::New(length);
-    String::WriteToFlat(*source_, buffer.start(), beg_pos, position_);
-    Vector<const uint8_t> result =
-        Vector<const uint8_t>(buffer.start(), length);
-    number = StringToDouble(isolate()->unicode_cache(),
-                            result,
-                            NO_FLAGS,  // Hex, octal or trailing junk.
-                            0.0);
-    buffer.Dispose();
-  }
-  SkipWhitespace();
-  return factory()->NewNumber(number, pretenure_);
-}
-
-
-template <typename StringType>
-inline void SeqStringSet(Handle<StringType> seq_str, int i, uc32 c);
-
-template <>
-inline void SeqStringSet(Handle<SeqTwoByteString> seq_str, int i, uc32 c) {
-  seq_str->SeqTwoByteStringSet(i, c);
-}
-
-template <>
-inline void SeqStringSet(Handle<SeqOneByteString> seq_str, int i, uc32 c) {
-  seq_str->SeqOneByteStringSet(i, c);
-}
-
-template <typename StringType>
-inline Handle<StringType> NewRawString(Factory* factory,
-                                       int length,
-                                       PretenureFlag pretenure);
-
-template <>
-inline Handle<SeqTwoByteString> NewRawString(Factory* factory,
-                                             int length,
-                                             PretenureFlag pretenure) {
-  return factory->NewRawTwoByteString(length, pretenure).ToHandleChecked();
-}
-
-template <>
-inline Handle<SeqOneByteString> NewRawString(Factory* factory,
-                                           int length,
-                                           PretenureFlag pretenure) {
-  return factory->NewRawOneByteString(length, pretenure).ToHandleChecked();
-}
-
-
-// Scans the rest of a JSON string starting from position_ and writes
-// prefix[start..end] along with the scanned characters into a
-// sequential string of type StringType.
-template <bool seq_one_byte>
-template <typename StringType, typename SinkChar>
-Handle<String> JsonParser<seq_one_byte>::SlowScanJsonString(
-    Handle<String> prefix, int start, int end) {
-  int count = end - start;
-  int max_length = count + source_length_ - position_;
-  int length = Min(max_length, Max(kInitialSpecialStringLength, 2 * count));
-  Handle<StringType> seq_string =
-      NewRawString<StringType>(factory(), length, pretenure_);
-  // Copy prefix into seq_str.
-  SinkChar* dest = seq_string->GetChars();
-  String::WriteToFlat(*prefix, dest, start, end);
-
-  while (c0_ != '"') {
-    // Check for control character (0x00-0x1f) or unterminated string (<0).
-    if (c0_ < 0x20) return Handle<String>::null();
-    if (count >= length) {
-      // We need to create a longer sequential string for the result.
-      return SlowScanJsonString<StringType, SinkChar>(seq_string, 0, count);
-    }
-    if (c0_ != '\\') {
-      // If the sink can contain UC16 characters, or source_ contains only
-      // Latin1 characters, there's no need to test whether we can store the
-      // character. Otherwise check whether the UC16 source character can fit
-      // in the Latin1 sink.
-      if (sizeof(SinkChar) == kUC16Size || seq_one_byte ||
-          c0_ <= String::kMaxOneByteCharCode) {
-        SeqStringSet(seq_string, count++, c0_);
-        Advance();
-      } else {
-        // StringType is SeqOneByteString and we just read a non-Latin1 char.
-        return SlowScanJsonString<SeqTwoByteString, uc16>(seq_string, 0, count);
-      }
-    } else {
-      Advance();  // Advance past the \.
-      switch (c0_) {
-        case '"':
-        case '\\':
-        case '/':
-          SeqStringSet(seq_string, count++, c0_);
-          break;
-        case 'b':
-          SeqStringSet(seq_string, count++, '\x08');
-          break;
-        case 'f':
-          SeqStringSet(seq_string, count++, '\x0c');
-          break;
-        case 'n':
-          SeqStringSet(seq_string, count++, '\x0a');
-          break;
-        case 'r':
-          SeqStringSet(seq_string, count++, '\x0d');
-          break;
-        case 't':
-          SeqStringSet(seq_string, count++, '\x09');
-          break;
-        case 'u': {
-          uc32 value = 0;
-          for (int i = 0; i < 4; i++) {
-            Advance();
-            int digit = HexValue(c0_);
-            if (digit < 0) {
-              return Handle<String>::null();
-            }
-            value = value * 16 + digit;
-          }
-          if (sizeof(SinkChar) == kUC16Size ||
-              value <= String::kMaxOneByteCharCode) {
-            SeqStringSet(seq_string, count++, value);
-            break;
-          } else {
-            // StringType is SeqOneByteString and we just read a non-Latin1
-            // char.
-            position_ -= 6;  // Rewind position_ to \ in \uxxxx.
-            Advance();
-            return SlowScanJsonString<SeqTwoByteString, uc16>(seq_string,
-                                                              0,
-                                                              count);
-          }
-        }
-        default:
-          return Handle<String>::null();
-      }
-      Advance();
-    }
-  }
-
-  DCHECK_EQ('"', c0_);
-  // Advance past the last '"'.
-  AdvanceSkipWhitespace();
-
-  // Shrink seq_string length to count and return.
-  return SeqString::Truncate(seq_string, count);
-}
-
-
-template <bool seq_one_byte>
-template <bool is_internalized>
-Handle<String> JsonParser<seq_one_byte>::ScanJsonString() {
-  DCHECK_EQ('"', c0_);
-  Advance();
-  if (c0_ == '"') {
-    AdvanceSkipWhitespace();
-    return factory()->empty_string();
-  }
-
-  if (seq_one_byte && is_internalized) {
-    // Fast path for existing internalized strings.  If the the string being
-    // parsed is not a known internalized string, contains backslashes or
-    // unexpectedly reaches the end of string, return with an empty handle.
-    uint32_t running_hash = isolate()->heap()->HashSeed();
-    int position = position_;
-    uc32 c0 = c0_;
-    do {
-      if (c0 == '\\') {
-        c0_ = c0;
-        int beg_pos = position_;
-        position_ = position;
-        return SlowScanJsonString<SeqOneByteString, uint8_t>(source_,
-                                                             beg_pos,
-                                                             position_);
-      }
-      if (c0 < 0x20) return Handle<String>::null();
-      running_hash = StringHasher::AddCharacterCore(running_hash,
-                                                    static_cast<uint16_t>(c0));
-      position++;
-      if (position >= source_length_) return Handle<String>::null();
-      c0 = seq_source_->SeqOneByteStringGet(position);
-    } while (c0 != '"');
-    int length = position - position_;
-    uint32_t hash = (length <= String::kMaxHashCalcLength)
-                        ? StringHasher::GetHashCore(running_hash)
-                        : static_cast<uint32_t>(length);
-    Vector<const uint8_t> string_vector(
-        seq_source_->GetChars() + position_, length);
-    StringTable* string_table = isolate()->heap()->string_table();
-    uint32_t capacity = string_table->Capacity();
-    uint32_t entry = StringTable::FirstProbe(hash, capacity);
-    uint32_t count = 1;
-    Handle<String> result;
-    while (true) {
-      Object* element = string_table->KeyAt(entry);
-      if (element == isolate()->heap()->undefined_value()) {
-        // Lookup failure.
-        result = factory()->InternalizeOneByteString(
-            seq_source_, position_, length);
-        break;
-      }
-      if (element != isolate()->heap()->the_hole_value() &&
-          String::cast(element)->IsOneByteEqualTo(string_vector)) {
-        result = Handle<String>(String::cast(element), isolate());
-#ifdef DEBUG
-        uint32_t hash_field =
-            (hash << String::kHashShift) | String::kIsNotArrayIndexMask;
-        DCHECK_EQ(static_cast<int>(result->Hash()),
-                  static_cast<int>(hash_field >> String::kHashShift));
-#endif
-        break;
-      }
-      entry = StringTable::NextProbe(entry, count++, capacity);
-    }
-    position_ = position;
-    // Advance past the last '"'.
-    AdvanceSkipWhitespace();
-    return result;
-  }
-
-  int beg_pos = position_;
-  // Fast case for Latin1 only without escape characters.
-  do {
-    // Check for control character (0x00-0x1f) or unterminated string (<0).
-    if (c0_ < 0x20) return Handle<String>::null();
-    if (c0_ != '\\') {
-      if (seq_one_byte || c0_ <= String::kMaxOneByteCharCode) {
-        Advance();
-      } else {
-        return SlowScanJsonString<SeqTwoByteString, uc16>(source_,
-                                                          beg_pos,
-                                                          position_);
-      }
-    } else {
-      return SlowScanJsonString<SeqOneByteString, uint8_t>(source_,
-                                                           beg_pos,
-                                                           position_);
-    }
-  } while (c0_ != '"');
-  int length = position_ - beg_pos;
-  Handle<String> result =
-      factory()->NewRawOneByteString(length, pretenure_).ToHandleChecked();
-  uint8_t* dest = SeqOneByteString::cast(*result)->GetChars();
-  String::WriteToFlat(*source_, dest, beg_pos, position_);
-
-  DCHECK_EQ('"', c0_);
-  // Advance past the last '"'.
-  AdvanceSkipWhitespace();
-  return result;
-}
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/json-stringifier.cc b/src/json-stringifier.cc
new file mode 100644
index 0000000..29685c2
--- /dev/null
+++ b/src/json-stringifier.cc
@@ -0,0 +1,722 @@
+// 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/json-stringifier.h"
+
+#include "src/conversions.h"
+#include "src/lookup.h"
+#include "src/messages.h"
+#include "src/objects-inl.h"
+#include "src/utils.h"
+
+namespace v8 {
+namespace internal {
+
+// Translation table to escape Latin1 characters.
+// Table entries start at a multiple of 8 and are null-terminated.
+const char* const JsonStringifier::JsonEscapeTable =
+    "\\u0000\0 \\u0001\0 \\u0002\0 \\u0003\0 "
+    "\\u0004\0 \\u0005\0 \\u0006\0 \\u0007\0 "
+    "\\b\0     \\t\0     \\n\0     \\u000b\0 "
+    "\\f\0     \\r\0     \\u000e\0 \\u000f\0 "
+    "\\u0010\0 \\u0011\0 \\u0012\0 \\u0013\0 "
+    "\\u0014\0 \\u0015\0 \\u0016\0 \\u0017\0 "
+    "\\u0018\0 \\u0019\0 \\u001a\0 \\u001b\0 "
+    "\\u001c\0 \\u001d\0 \\u001e\0 \\u001f\0 "
+    " \0      !\0      \\\"\0     #\0      "
+    "$\0      %\0      &\0      '\0      "
+    "(\0      )\0      *\0      +\0      "
+    ",\0      -\0      .\0      /\0      "
+    "0\0      1\0      2\0      3\0      "
+    "4\0      5\0      6\0      7\0      "
+    "8\0      9\0      :\0      ;\0      "
+    "<\0      =\0      >\0      ?\0      "
+    "@\0      A\0      B\0      C\0      "
+    "D\0      E\0      F\0      G\0      "
+    "H\0      I\0      J\0      K\0      "
+    "L\0      M\0      N\0      O\0      "
+    "P\0      Q\0      R\0      S\0      "
+    "T\0      U\0      V\0      W\0      "
+    "X\0      Y\0      Z\0      [\0      "
+    "\\\\\0     ]\0      ^\0      _\0      "
+    "`\0      a\0      b\0      c\0      "
+    "d\0      e\0      f\0      g\0      "
+    "h\0      i\0      j\0      k\0      "
+    "l\0      m\0      n\0      o\0      "
+    "p\0      q\0      r\0      s\0      "
+    "t\0      u\0      v\0      w\0      "
+    "x\0      y\0      z\0      {\0      "
+    "|\0      }\0      ~\0      \177\0      "
+    "\200\0      \201\0      \202\0      \203\0      "
+    "\204\0      \205\0      \206\0      \207\0      "
+    "\210\0      \211\0      \212\0      \213\0      "
+    "\214\0      \215\0      \216\0      \217\0      "
+    "\220\0      \221\0      \222\0      \223\0      "
+    "\224\0      \225\0      \226\0      \227\0      "
+    "\230\0      \231\0      \232\0      \233\0      "
+    "\234\0      \235\0      \236\0      \237\0      "
+    "\240\0      \241\0      \242\0      \243\0      "
+    "\244\0      \245\0      \246\0      \247\0      "
+    "\250\0      \251\0      \252\0      \253\0      "
+    "\254\0      \255\0      \256\0      \257\0      "
+    "\260\0      \261\0      \262\0      \263\0      "
+    "\264\0      \265\0      \266\0      \267\0      "
+    "\270\0      \271\0      \272\0      \273\0      "
+    "\274\0      \275\0      \276\0      \277\0      "
+    "\300\0      \301\0      \302\0      \303\0      "
+    "\304\0      \305\0      \306\0      \307\0      "
+    "\310\0      \311\0      \312\0      \313\0      "
+    "\314\0      \315\0      \316\0      \317\0      "
+    "\320\0      \321\0      \322\0      \323\0      "
+    "\324\0      \325\0      \326\0      \327\0      "
+    "\330\0      \331\0      \332\0      \333\0      "
+    "\334\0      \335\0      \336\0      \337\0      "
+    "\340\0      \341\0      \342\0      \343\0      "
+    "\344\0      \345\0      \346\0      \347\0      "
+    "\350\0      \351\0      \352\0      \353\0      "
+    "\354\0      \355\0      \356\0      \357\0      "
+    "\360\0      \361\0      \362\0      \363\0      "
+    "\364\0      \365\0      \366\0      \367\0      "
+    "\370\0      \371\0      \372\0      \373\0      "
+    "\374\0      \375\0      \376\0      \377\0      ";
+
+JsonStringifier::JsonStringifier(Isolate* isolate)
+    : isolate_(isolate), builder_(isolate), gap_(nullptr), indent_(0) {
+  tojson_string_ = factory()->toJSON_string();
+  stack_ = factory()->NewJSArray(8);
+}
+
+MaybeHandle<Object> JsonStringifier::Stringify(Handle<Object> object,
+                                               Handle<Object> replacer,
+                                               Handle<Object> gap) {
+  if (!InitializeReplacer(replacer)) return MaybeHandle<Object>();
+  if (!gap->IsUndefined(isolate_) && !InitializeGap(gap)) {
+    return MaybeHandle<Object>();
+  }
+  Result result = SerializeObject(object);
+  if (result == UNCHANGED) return factory()->undefined_value();
+  if (result == SUCCESS) return builder_.Finish();
+  DCHECK(result == EXCEPTION);
+  return MaybeHandle<Object>();
+}
+
+bool IsInList(Handle<String> key, List<Handle<String> >* list) {
+  // TODO(yangguo): This is O(n^2) for n properties in the list. Deal with this
+  // if this becomes an issue.
+  for (const Handle<String>& existing : *list) {
+    if (String::Equals(existing, key)) return true;
+  }
+  return false;
+}
+
+bool JsonStringifier::InitializeReplacer(Handle<Object> replacer) {
+  DCHECK(property_list_.is_null());
+  DCHECK(replacer_function_.is_null());
+  Maybe<bool> is_array = Object::IsArray(replacer);
+  if (is_array.IsNothing()) return false;
+  if (is_array.FromJust()) {
+    HandleScope handle_scope(isolate_);
+    List<Handle<String> > list;
+    Handle<Object> length_obj;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, length_obj,
+        Object::GetLengthFromArrayLike(isolate_, replacer), false);
+    uint32_t length;
+    if (!length_obj->ToUint32(&length)) length = kMaxUInt32;
+    for (uint32_t i = 0; i < length; i++) {
+      Handle<Object> element;
+      Handle<String> key;
+      ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+          isolate_, element, Object::GetElement(isolate_, replacer, i), false);
+      if (element->IsNumber() || element->IsString()) {
+        ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+            isolate_, key, Object::ToString(isolate_, element), false);
+      } else if (element->IsJSValue()) {
+        Handle<Object> value(Handle<JSValue>::cast(element)->value(), isolate_);
+        if (value->IsNumber() || value->IsString()) {
+          ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+              isolate_, key, Object::ToString(isolate_, element), false);
+        }
+      }
+      if (key.is_null()) continue;
+      if (!IsInList(key, &list)) list.Add(key);
+    }
+    property_list_ = factory()->NewUninitializedFixedArray(list.length());
+    for (int i = 0; i < list.length(); i++) {
+      property_list_->set(i, *list[i]);
+    }
+    property_list_ = handle_scope.CloseAndEscape(property_list_);
+  } else if (replacer->IsCallable()) {
+    replacer_function_ = Handle<JSReceiver>::cast(replacer);
+  }
+  return true;
+}
+
+bool JsonStringifier::InitializeGap(Handle<Object> gap) {
+  DCHECK_NULL(gap_);
+  HandleScope scope(isolate_);
+  if (gap->IsJSValue()) {
+    Handle<Object> value(Handle<JSValue>::cast(gap)->value(), isolate_);
+    if (value->IsString()) {
+      ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, gap,
+                                       Object::ToString(isolate_, gap), false);
+    } else if (value->IsNumber()) {
+      ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, gap, Object::ToNumber(gap),
+                                       false);
+    }
+  }
+
+  if (gap->IsString()) {
+    Handle<String> gap_string = Handle<String>::cast(gap);
+    if (gap_string->length() > 0) {
+      int gap_length = std::min(gap_string->length(), 10);
+      gap_ = NewArray<uc16>(gap_length + 1);
+      String::WriteToFlat(*gap_string, gap_, 0, gap_length);
+      for (int i = 0; i < gap_length; i++) {
+        if (gap_[i] > String::kMaxOneByteCharCode) {
+          builder_.ChangeEncoding();
+          break;
+        }
+      }
+      gap_[gap_length] = '\0';
+    }
+  } else if (gap->IsNumber()) {
+    int num_value = DoubleToInt32(gap->Number());
+    if (num_value > 0) {
+      int gap_length = std::min(num_value, 10);
+      gap_ = NewArray<uc16>(gap_length + 1);
+      for (int i = 0; i < gap_length; i++) gap_[i] = ' ';
+      gap_[gap_length] = '\0';
+    }
+  }
+  return true;
+}
+
+MaybeHandle<Object> JsonStringifier::ApplyToJsonFunction(Handle<Object> object,
+                                                         Handle<Object> key) {
+  HandleScope scope(isolate_);
+  LookupIterator it(object, tojson_string_,
+                    LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
+  Handle<Object> fun;
+  ASSIGN_RETURN_ON_EXCEPTION(isolate_, fun, Object::GetProperty(&it), Object);
+  if (!fun->IsCallable()) return object;
+
+  // Call toJSON function.
+  if (key->IsSmi()) key = factory()->NumberToString(key);
+  Handle<Object> argv[] = {key};
+  ASSIGN_RETURN_ON_EXCEPTION(isolate_, object,
+                             Execution::Call(isolate_, fun, object, 1, argv),
+                             Object);
+  return scope.CloseAndEscape(object);
+}
+
+MaybeHandle<Object> JsonStringifier::ApplyReplacerFunction(
+    Handle<Object> value, Handle<Object> key, Handle<Object> initial_holder) {
+  HandleScope scope(isolate_);
+  if (key->IsSmi()) key = factory()->NumberToString(key);
+  Handle<Object> argv[] = {key, value};
+  Handle<JSReceiver> holder = CurrentHolder(value, initial_holder);
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate_, value,
+      Execution::Call(isolate_, replacer_function_, holder, 2, argv), Object);
+  return scope.CloseAndEscape(value);
+}
+
+Handle<JSReceiver> JsonStringifier::CurrentHolder(
+    Handle<Object> value, Handle<Object> initial_holder) {
+  int length = Smi::cast(stack_->length())->value();
+  if (length == 0) {
+    Handle<JSObject> holder =
+        factory()->NewJSObject(isolate_->object_function());
+    JSObject::AddProperty(holder, factory()->empty_string(), initial_holder,
+                          NONE);
+    return holder;
+  } else {
+    FixedArray* elements = FixedArray::cast(stack_->elements());
+    return Handle<JSReceiver>(JSReceiver::cast(elements->get(length - 1)),
+                              isolate_);
+  }
+}
+
+JsonStringifier::Result JsonStringifier::StackPush(Handle<Object> object) {
+  StackLimitCheck check(isolate_);
+  if (check.HasOverflowed()) {
+    isolate_->StackOverflow();
+    return EXCEPTION;
+  }
+
+  int length = Smi::cast(stack_->length())->value();
+  {
+    DisallowHeapAllocation no_allocation;
+    FixedArray* elements = FixedArray::cast(stack_->elements());
+    for (int i = 0; i < length; i++) {
+      if (elements->get(i) == *object) {
+        AllowHeapAllocation allow_to_return_error;
+        Handle<Object> error =
+            factory()->NewTypeError(MessageTemplate::kCircularStructure);
+        isolate_->Throw(*error);
+        return EXCEPTION;
+      }
+    }
+  }
+  JSArray::SetLength(stack_, length + 1);
+  FixedArray::cast(stack_->elements())->set(length, *object);
+  return SUCCESS;
+}
+
+void JsonStringifier::StackPop() {
+  int length = Smi::cast(stack_->length())->value();
+  stack_->set_length(Smi::FromInt(length - 1));
+}
+
+template <bool deferred_string_key>
+JsonStringifier::Result JsonStringifier::Serialize_(Handle<Object> object,
+                                                    bool comma,
+                                                    Handle<Object> key) {
+  StackLimitCheck interrupt_check(isolate_);
+  Handle<Object> initial_value = object;
+  if (interrupt_check.InterruptRequested() &&
+      isolate_->stack_guard()->HandleInterrupts()->IsException(isolate_)) {
+    return EXCEPTION;
+  }
+  if (object->IsJSReceiver()) {
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, object, ApplyToJsonFunction(object, key), EXCEPTION);
+  }
+  if (!replacer_function_.is_null()) {
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, object, ApplyReplacerFunction(object, key, initial_value),
+        EXCEPTION);
+  }
+
+  if (object->IsSmi()) {
+    if (deferred_string_key) SerializeDeferredKey(comma, key);
+    return SerializeSmi(Smi::cast(*object));
+  }
+
+  switch (HeapObject::cast(*object)->map()->instance_type()) {
+    case HEAP_NUMBER_TYPE:
+    case MUTABLE_HEAP_NUMBER_TYPE:
+      if (deferred_string_key) SerializeDeferredKey(comma, key);
+      return SerializeHeapNumber(Handle<HeapNumber>::cast(object));
+    case ODDBALL_TYPE:
+      switch (Oddball::cast(*object)->kind()) {
+        case Oddball::kFalse:
+          if (deferred_string_key) SerializeDeferredKey(comma, key);
+          builder_.AppendCString("false");
+          return SUCCESS;
+        case Oddball::kTrue:
+          if (deferred_string_key) SerializeDeferredKey(comma, key);
+          builder_.AppendCString("true");
+          return SUCCESS;
+        case Oddball::kNull:
+          if (deferred_string_key) SerializeDeferredKey(comma, key);
+          builder_.AppendCString("null");
+          return SUCCESS;
+        default:
+          return UNCHANGED;
+      }
+    case JS_ARRAY_TYPE:
+      if (deferred_string_key) SerializeDeferredKey(comma, key);
+      return SerializeJSArray(Handle<JSArray>::cast(object));
+    case JS_VALUE_TYPE:
+      if (deferred_string_key) SerializeDeferredKey(comma, key);
+      return SerializeJSValue(Handle<JSValue>::cast(object));
+    case SIMD128_VALUE_TYPE:
+    case SYMBOL_TYPE:
+      return UNCHANGED;
+    default:
+      if (object->IsString()) {
+        if (deferred_string_key) SerializeDeferredKey(comma, key);
+        SerializeString(Handle<String>::cast(object));
+        return SUCCESS;
+      } else {
+        DCHECK(object->IsJSReceiver());
+        if (object->IsCallable()) return UNCHANGED;
+        // Go to slow path for global proxy and objects requiring access checks.
+        if (deferred_string_key) SerializeDeferredKey(comma, key);
+        if (object->IsJSProxy()) {
+          return SerializeJSProxy(Handle<JSProxy>::cast(object));
+        }
+        return SerializeJSObject(Handle<JSObject>::cast(object));
+      }
+  }
+
+  UNREACHABLE();
+  return UNCHANGED;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeJSValue(
+    Handle<JSValue> object) {
+  String* class_name = object->class_name();
+  if (class_name == isolate_->heap()->String_string()) {
+    Handle<Object> value;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, value, Object::ToString(isolate_, object), EXCEPTION);
+    SerializeString(Handle<String>::cast(value));
+  } else if (class_name == isolate_->heap()->Number_string()) {
+    Handle<Object> value;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, value, Object::ToNumber(object),
+                                     EXCEPTION);
+    if (value->IsSmi()) return SerializeSmi(Smi::cast(*value));
+    SerializeHeapNumber(Handle<HeapNumber>::cast(value));
+  } else if (class_name == isolate_->heap()->Boolean_string()) {
+    Object* value = JSValue::cast(*object)->value();
+    DCHECK(value->IsBoolean());
+    builder_.AppendCString(value->IsTrue(isolate_) ? "true" : "false");
+  } else {
+    // ES6 24.3.2.1 step 10.c, serialize as an ordinary JSObject.
+    return SerializeJSObject(object);
+  }
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeSmi(Smi* object) {
+  static const int kBufferSize = 100;
+  char chars[kBufferSize];
+  Vector<char> buffer(chars, kBufferSize);
+  builder_.AppendCString(IntToCString(object->value(), buffer));
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeDouble(double number) {
+  if (std::isinf(number) || std::isnan(number)) {
+    builder_.AppendCString("null");
+    return SUCCESS;
+  }
+  static const int kBufferSize = 100;
+  char chars[kBufferSize];
+  Vector<char> buffer(chars, kBufferSize);
+  builder_.AppendCString(DoubleToCString(number, buffer));
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeJSArray(
+    Handle<JSArray> object) {
+  HandleScope handle_scope(isolate_);
+  Result stack_push = StackPush(object);
+  if (stack_push != SUCCESS) return stack_push;
+  uint32_t length = 0;
+  CHECK(object->length()->ToArrayLength(&length));
+  DCHECK(!object->IsAccessCheckNeeded());
+  builder_.AppendCharacter('[');
+  Indent();
+  uint32_t i = 0;
+  if (replacer_function_.is_null()) {
+    switch (object->GetElementsKind()) {
+      case FAST_SMI_ELEMENTS: {
+        Handle<FixedArray> elements(FixedArray::cast(object->elements()),
+                                    isolate_);
+        StackLimitCheck interrupt_check(isolate_);
+        while (i < length) {
+          if (interrupt_check.InterruptRequested() &&
+              isolate_->stack_guard()->HandleInterrupts()->IsException(
+                  isolate_)) {
+            return EXCEPTION;
+          }
+          Separator(i == 0);
+          SerializeSmi(Smi::cast(elements->get(i)));
+          i++;
+        }
+        break;
+      }
+      case FAST_DOUBLE_ELEMENTS: {
+        // Empty array is FixedArray but not FixedDoubleArray.
+        if (length == 0) break;
+        Handle<FixedDoubleArray> elements(
+            FixedDoubleArray::cast(object->elements()), isolate_);
+        StackLimitCheck interrupt_check(isolate_);
+        while (i < length) {
+          if (interrupt_check.InterruptRequested() &&
+              isolate_->stack_guard()->HandleInterrupts()->IsException(
+                  isolate_)) {
+            return EXCEPTION;
+          }
+          Separator(i == 0);
+          SerializeDouble(elements->get_scalar(i));
+          i++;
+        }
+        break;
+      }
+      case FAST_ELEMENTS: {
+        Handle<Object> old_length(object->length(), isolate_);
+        while (i < length) {
+          if (object->length() != *old_length ||
+              object->GetElementsKind() != FAST_ELEMENTS) {
+            // Fall back to slow path.
+            break;
+          }
+          Separator(i == 0);
+          Result result = SerializeElement(
+              isolate_,
+              Handle<Object>(FixedArray::cast(object->elements())->get(i),
+                             isolate_),
+              i);
+          if (result == UNCHANGED) {
+            builder_.AppendCString("null");
+          } else if (result != SUCCESS) {
+            return result;
+          }
+          i++;
+        }
+        break;
+      }
+      // The FAST_HOLEY_* cases could be handled in a faster way. They resemble
+      // the non-holey cases except that a lookup is necessary for holes.
+      default:
+        break;
+    }
+  }
+  if (i < length) {
+    // Slow path for non-fast elements and fall-back in edge case.
+    Result result = SerializeArrayLikeSlow(object, i, length);
+    if (result != SUCCESS) return result;
+  }
+  Unindent();
+  if (length > 0) NewLine();
+  builder_.AppendCharacter(']');
+  StackPop();
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeArrayLikeSlow(
+    Handle<JSReceiver> object, uint32_t start, uint32_t length) {
+  // We need to write out at least two characters per array element.
+  static const int kMaxSerializableArrayLength = String::kMaxLength / 2;
+  if (length > kMaxSerializableArrayLength) {
+    isolate_->Throw(*isolate_->factory()->NewInvalidStringLengthError());
+    return EXCEPTION;
+  }
+  for (uint32_t i = start; i < length; i++) {
+    Separator(i == 0);
+    Handle<Object> element;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, element, JSReceiver::GetElement(isolate_, object, i),
+        EXCEPTION);
+    Result result = SerializeElement(isolate_, element, i);
+    if (result == SUCCESS) continue;
+    if (result == UNCHANGED) {
+      // Detect overflow sooner for large sparse arrays.
+      if (builder_.HasOverflowed()) return EXCEPTION;
+      builder_.AppendCString("null");
+    } else {
+      return result;
+    }
+  }
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeJSObject(
+    Handle<JSObject> object) {
+  HandleScope handle_scope(isolate_);
+  Result stack_push = StackPush(object);
+  if (stack_push != SUCCESS) return stack_push;
+
+  if (property_list_.is_null() &&
+      object->map()->instance_type() > LAST_CUSTOM_ELEMENTS_RECEIVER &&
+      object->HasFastProperties() &&
+      Handle<JSObject>::cast(object)->elements()->length() == 0) {
+    DCHECK(object->IsJSObject());
+    DCHECK(!object->IsJSGlobalProxy());
+    Handle<JSObject> js_obj = Handle<JSObject>::cast(object);
+    DCHECK(!js_obj->HasIndexedInterceptor());
+    DCHECK(!js_obj->HasNamedInterceptor());
+    Handle<Map> map(js_obj->map());
+    builder_.AppendCharacter('{');
+    Indent();
+    bool comma = false;
+    for (int i = 0; i < map->NumberOfOwnDescriptors(); i++) {
+      Handle<Name> name(map->instance_descriptors()->GetKey(i), isolate_);
+      // TODO(rossberg): Should this throw?
+      if (!name->IsString()) continue;
+      Handle<String> key = Handle<String>::cast(name);
+      PropertyDetails details = map->instance_descriptors()->GetDetails(i);
+      if (details.IsDontEnum()) continue;
+      Handle<Object> property;
+      if (details.type() == DATA && *map == js_obj->map()) {
+        FieldIndex field_index = FieldIndex::ForDescriptor(*map, i);
+        property = JSObject::FastPropertyAt(js_obj, details.representation(),
+                                            field_index);
+      } else {
+        ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+            isolate_, property, Object::GetPropertyOrElement(js_obj, key),
+            EXCEPTION);
+      }
+      Result result = SerializeProperty(property, comma, key);
+      if (!comma && result == SUCCESS) comma = true;
+      if (result == EXCEPTION) return result;
+    }
+    Unindent();
+    if (comma) NewLine();
+    builder_.AppendCharacter('}');
+  } else {
+    Result result = SerializeJSReceiverSlow(object);
+    if (result != SUCCESS) return result;
+  }
+  StackPop();
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeJSReceiverSlow(
+    Handle<JSReceiver> object) {
+  Handle<FixedArray> contents = property_list_;
+  if (contents.is_null()) {
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, contents,
+        KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly,
+                                ENUMERABLE_STRINGS,
+                                GetKeysConversion::kConvertToString),
+        EXCEPTION);
+  }
+  builder_.AppendCharacter('{');
+  Indent();
+  bool comma = false;
+  for (int i = 0; i < contents->length(); i++) {
+    Handle<String> key(String::cast(contents->get(i)), isolate_);
+    Handle<Object> property;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, property,
+                                     Object::GetPropertyOrElement(object, key),
+                                     EXCEPTION);
+    Result result = SerializeProperty(property, comma, key);
+    if (!comma && result == SUCCESS) comma = true;
+    if (result == EXCEPTION) return result;
+  }
+  Unindent();
+  if (comma) NewLine();
+  builder_.AppendCharacter('}');
+  return SUCCESS;
+}
+
+JsonStringifier::Result JsonStringifier::SerializeJSProxy(
+    Handle<JSProxy> object) {
+  HandleScope scope(isolate_);
+  Result stack_push = StackPush(object);
+  if (stack_push != SUCCESS) return stack_push;
+  Maybe<bool> is_array = Object::IsArray(object);
+  if (is_array.IsNothing()) return EXCEPTION;
+  if (is_array.FromJust()) {
+    Handle<Object> length_object;
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+        isolate_, length_object,
+        Object::GetLengthFromArrayLike(isolate_, object), EXCEPTION);
+    uint32_t length;
+    if (!length_object->ToUint32(&length)) {
+      // Technically, we need to be able to handle lengths outside the
+      // uint32_t range. However, we would run into string size overflow
+      // if we tried to stringify such an array.
+      isolate_->Throw(*isolate_->factory()->NewInvalidStringLengthError());
+      return EXCEPTION;
+    }
+    builder_.AppendCharacter('[');
+    Indent();
+    Result result = SerializeArrayLikeSlow(object, 0, length);
+    if (result != SUCCESS) return result;
+    Unindent();
+    if (length > 0) NewLine();
+    builder_.AppendCharacter(']');
+  } else {
+    Result result = SerializeJSReceiverSlow(object);
+    if (result != SUCCESS) return result;
+  }
+  StackPop();
+  return SUCCESS;
+}
+
+template <typename SrcChar, typename DestChar>
+void JsonStringifier::SerializeStringUnchecked_(
+    Vector<const SrcChar> src,
+    IncrementalStringBuilder::NoExtend<DestChar>* dest) {
+  // Assert that uc16 character is not truncated down to 8 bit.
+  // The <uc16, char> version of this method must not be called.
+  DCHECK(sizeof(DestChar) >= sizeof(SrcChar));
+
+  for (int i = 0; i < src.length(); i++) {
+    SrcChar c = src[i];
+    if (DoNotEscape(c)) {
+      dest->Append(c);
+    } else {
+      dest->AppendCString(&JsonEscapeTable[c * kJsonEscapeTableEntrySize]);
+    }
+  }
+}
+
+template <typename SrcChar, typename DestChar>
+void JsonStringifier::SerializeString_(Handle<String> string) {
+  int length = string->length();
+  builder_.Append<uint8_t, DestChar>('"');
+  // We make a rough estimate to find out if the current string can be
+  // serialized without allocating a new string part. The worst case length of
+  // an escaped character is 6.  Shifting the remainin string length right by 3
+  // is a more pessimistic estimate, but faster to calculate.
+  int worst_case_length = length << 3;
+  if (builder_.CurrentPartCanFit(worst_case_length)) {
+    DisallowHeapAllocation no_gc;
+    Vector<const SrcChar> vector = string->GetCharVector<SrcChar>();
+    IncrementalStringBuilder::NoExtendBuilder<DestChar> no_extend(
+        &builder_, worst_case_length);
+    SerializeStringUnchecked_(vector, &no_extend);
+  } else {
+    FlatStringReader reader(isolate_, string);
+    for (int i = 0; i < reader.length(); i++) {
+      SrcChar c = reader.Get<SrcChar>(i);
+      if (DoNotEscape(c)) {
+        builder_.Append<SrcChar, DestChar>(c);
+      } else {
+        builder_.AppendCString(&JsonEscapeTable[c * kJsonEscapeTableEntrySize]);
+      }
+    }
+  }
+
+  builder_.Append<uint8_t, DestChar>('"');
+}
+
+template <>
+bool JsonStringifier::DoNotEscape(uint8_t c) {
+  return c >= '#' && c <= '~' && c != '\\';
+}
+
+template <>
+bool JsonStringifier::DoNotEscape(uint16_t c) {
+  return c >= '#' && c != '\\' && c != 0x7f;
+}
+
+void JsonStringifier::NewLine() {
+  if (gap_ == nullptr) return;
+  builder_.AppendCharacter('\n');
+  for (int i = 0; i < indent_; i++) builder_.AppendCString(gap_);
+}
+
+void JsonStringifier::Separator(bool first) {
+  if (!first) builder_.AppendCharacter(',');
+  NewLine();
+}
+
+void JsonStringifier::SerializeDeferredKey(bool deferred_comma,
+                                           Handle<Object> deferred_key) {
+  Separator(!deferred_comma);
+  SerializeString(Handle<String>::cast(deferred_key));
+  builder_.AppendCharacter(':');
+  if (gap_ != nullptr) builder_.AppendCharacter(' ');
+}
+
+void JsonStringifier::SerializeString(Handle<String> object) {
+  object = String::Flatten(object);
+  if (builder_.CurrentEncoding() == String::ONE_BYTE_ENCODING) {
+    if (object->IsOneByteRepresentationUnderneath()) {
+      SerializeString_<uint8_t, uint8_t>(object);
+    } else {
+      builder_.ChangeEncoding();
+      SerializeString(object);
+    }
+  } else {
+    if (object->IsOneByteRepresentationUnderneath()) {
+      SerializeString_<uint8_t, uc16>(object);
+    } else {
+      SerializeString_<uc16, uc16>(object);
+    }
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/json-stringifier.h b/src/json-stringifier.h
index b40a782..e72bd9d 100644
--- a/src/json-stringifier.h
+++ b/src/json-stringifier.h
@@ -5,36 +5,33 @@
 #ifndef V8_JSON_STRINGIFIER_H_
 #define V8_JSON_STRINGIFIER_H_
 
-#include "src/conversions.h"
-#include "src/lookup.h"
-#include "src/messages.h"
+#include "src/objects.h"
 #include "src/string-builder.h"
-#include "src/utils.h"
 
 namespace v8 {
 namespace internal {
 
-class BasicJsonStringifier BASE_EMBEDDED {
+class JsonStringifier BASE_EMBEDDED {
  public:
-  explicit BasicJsonStringifier(Isolate* isolate);
+  explicit JsonStringifier(Isolate* isolate);
 
-  MUST_USE_RESULT MaybeHandle<Object> Stringify(Handle<Object> object);
+  ~JsonStringifier() { DeleteArray(gap_); }
 
-  MUST_USE_RESULT INLINE(static MaybeHandle<Object> StringifyString(
-      Isolate* isolate,
-      Handle<String> object));
+  MUST_USE_RESULT MaybeHandle<Object> Stringify(Handle<Object> object,
+                                                Handle<Object> replacer,
+                                                Handle<Object> gap);
 
  private:
   enum Result { UNCHANGED, SUCCESS, EXCEPTION };
 
+  bool InitializeReplacer(Handle<Object> replacer);
+  bool InitializeGap(Handle<Object> gap);
+
   MUST_USE_RESULT MaybeHandle<Object> ApplyToJsonFunction(
       Handle<Object> object,
       Handle<Object> key);
-
-  Result SerializeGeneric(Handle<Object> object,
-                          Handle<Object> key,
-                          bool deferred_comma,
-                          bool deferred_key);
+  MUST_USE_RESULT MaybeHandle<Object> ApplyReplacerFunction(
+      Handle<Object> value, Handle<Object> key, Handle<Object> initial_holder);
 
   // Entry point to serialize the object.
   INLINE(Result SerializeObject(Handle<Object> obj)) {
@@ -64,11 +61,8 @@
   template <bool deferred_string_key>
   Result Serialize_(Handle<Object> object, bool comma, Handle<Object> key);
 
-  void SerializeDeferredKey(bool deferred_comma, Handle<Object> deferred_key) {
-    if (deferred_comma) builder_.AppendCharacter(',');
-    SerializeString(Handle<String>::cast(deferred_key));
-    builder_.AppendCharacter(':');
-  }
+  INLINE(void SerializeDeferredKey(bool deferred_comma,
+                                   Handle<Object> deferred_key));
 
   Result SerializeSmi(Smi* object);
 
@@ -82,8 +76,10 @@
   INLINE(Result SerializeJSArray(Handle<JSArray> object));
   INLINE(Result SerializeJSObject(Handle<JSObject> object));
 
-  Result SerializeJSArraySlow(Handle<JSArray> object, uint32_t start,
-                              uint32_t length);
+  Result SerializeJSProxy(Handle<JSProxy> object);
+  Result SerializeJSReceiverSlow(Handle<JSReceiver> object);
+  Result SerializeArrayLikeSlow(Handle<JSReceiver> object, uint32_t start,
+                                uint32_t length);
 
   void SerializeString(Handle<String> object);
 
@@ -98,6 +94,14 @@
   template <typename Char>
   INLINE(static bool DoNotEscape(Char c));
 
+  INLINE(void NewLine());
+  INLINE(void Indent() { indent_++; });
+  INLINE(void Unindent() { indent_--; });
+  INLINE(void Separator(bool first));
+
+  Handle<JSReceiver> CurrentHolder(Handle<Object> value,
+                                   Handle<Object> inital_holder);
+
   Result StackPush(Handle<Object> object);
   void StackPop();
 
@@ -107,579 +111,15 @@
   IncrementalStringBuilder builder_;
   Handle<String> tojson_string_;
   Handle<JSArray> stack_;
+  Handle<FixedArray> property_list_;
+  Handle<JSReceiver> replacer_function_;
+  uc16* gap_;
+  int indent_;
 
   static const int kJsonEscapeTableEntrySize = 8;
   static const char* const JsonEscapeTable;
 };
 
-
-// Translation table to escape Latin1 characters.
-// Table entries start at a multiple of 8 and are null-terminated.
-const char* const BasicJsonStringifier::JsonEscapeTable =
-    "\\u0000\0 \\u0001\0 \\u0002\0 \\u0003\0 "
-    "\\u0004\0 \\u0005\0 \\u0006\0 \\u0007\0 "
-    "\\b\0     \\t\0     \\n\0     \\u000b\0 "
-    "\\f\0     \\r\0     \\u000e\0 \\u000f\0 "
-    "\\u0010\0 \\u0011\0 \\u0012\0 \\u0013\0 "
-    "\\u0014\0 \\u0015\0 \\u0016\0 \\u0017\0 "
-    "\\u0018\0 \\u0019\0 \\u001a\0 \\u001b\0 "
-    "\\u001c\0 \\u001d\0 \\u001e\0 \\u001f\0 "
-    " \0      !\0      \\\"\0     #\0      "
-    "$\0      %\0      &\0      '\0      "
-    "(\0      )\0      *\0      +\0      "
-    ",\0      -\0      .\0      /\0      "
-    "0\0      1\0      2\0      3\0      "
-    "4\0      5\0      6\0      7\0      "
-    "8\0      9\0      :\0      ;\0      "
-    "<\0      =\0      >\0      ?\0      "
-    "@\0      A\0      B\0      C\0      "
-    "D\0      E\0      F\0      G\0      "
-    "H\0      I\0      J\0      K\0      "
-    "L\0      M\0      N\0      O\0      "
-    "P\0      Q\0      R\0      S\0      "
-    "T\0      U\0      V\0      W\0      "
-    "X\0      Y\0      Z\0      [\0      "
-    "\\\\\0     ]\0      ^\0      _\0      "
-    "`\0      a\0      b\0      c\0      "
-    "d\0      e\0      f\0      g\0      "
-    "h\0      i\0      j\0      k\0      "
-    "l\0      m\0      n\0      o\0      "
-    "p\0      q\0      r\0      s\0      "
-    "t\0      u\0      v\0      w\0      "
-    "x\0      y\0      z\0      {\0      "
-    "|\0      }\0      ~\0      \177\0      "
-    "\200\0      \201\0      \202\0      \203\0      "
-    "\204\0      \205\0      \206\0      \207\0      "
-    "\210\0      \211\0      \212\0      \213\0      "
-    "\214\0      \215\0      \216\0      \217\0      "
-    "\220\0      \221\0      \222\0      \223\0      "
-    "\224\0      \225\0      \226\0      \227\0      "
-    "\230\0      \231\0      \232\0      \233\0      "
-    "\234\0      \235\0      \236\0      \237\0      "
-    "\240\0      \241\0      \242\0      \243\0      "
-    "\244\0      \245\0      \246\0      \247\0      "
-    "\250\0      \251\0      \252\0      \253\0      "
-    "\254\0      \255\0      \256\0      \257\0      "
-    "\260\0      \261\0      \262\0      \263\0      "
-    "\264\0      \265\0      \266\0      \267\0      "
-    "\270\0      \271\0      \272\0      \273\0      "
-    "\274\0      \275\0      \276\0      \277\0      "
-    "\300\0      \301\0      \302\0      \303\0      "
-    "\304\0      \305\0      \306\0      \307\0      "
-    "\310\0      \311\0      \312\0      \313\0      "
-    "\314\0      \315\0      \316\0      \317\0      "
-    "\320\0      \321\0      \322\0      \323\0      "
-    "\324\0      \325\0      \326\0      \327\0      "
-    "\330\0      \331\0      \332\0      \333\0      "
-    "\334\0      \335\0      \336\0      \337\0      "
-    "\340\0      \341\0      \342\0      \343\0      "
-    "\344\0      \345\0      \346\0      \347\0      "
-    "\350\0      \351\0      \352\0      \353\0      "
-    "\354\0      \355\0      \356\0      \357\0      "
-    "\360\0      \361\0      \362\0      \363\0      "
-    "\364\0      \365\0      \366\0      \367\0      "
-    "\370\0      \371\0      \372\0      \373\0      "
-    "\374\0      \375\0      \376\0      \377\0      ";
-
-
-BasicJsonStringifier::BasicJsonStringifier(Isolate* isolate)
-    : isolate_(isolate), builder_(isolate) {
-  tojson_string_ = factory()->toJSON_string();
-  stack_ = factory()->NewJSArray(8);
-}
-
-
-MaybeHandle<Object> BasicJsonStringifier::Stringify(Handle<Object> object) {
-  Result result = SerializeObject(object);
-  if (result == UNCHANGED) return factory()->undefined_value();
-  if (result == SUCCESS) return builder_.Finish();
-  DCHECK(result == EXCEPTION);
-  return MaybeHandle<Object>();
-}
-
-
-MaybeHandle<Object> BasicJsonStringifier::StringifyString(
-    Isolate* isolate,  Handle<String> object) {
-  static const int kJsonQuoteWorstCaseBlowup = 6;
-  static const int kSpaceForQuotes = 2;
-  int worst_case_length =
-      object->length() * kJsonQuoteWorstCaseBlowup + kSpaceForQuotes;
-
-  if (worst_case_length > 32 * KB) {  // Slow path if too large.
-    BasicJsonStringifier stringifier(isolate);
-    return stringifier.Stringify(object);
-  }
-
-  object = String::Flatten(object);
-  DCHECK(object->IsFlat());
-  Handle<SeqString> result;
-  if (object->IsOneByteRepresentationUnderneath()) {
-    result = isolate->factory()
-                 ->NewRawOneByteString(worst_case_length)
-                 .ToHandleChecked();
-    IncrementalStringBuilder::NoExtendString<uint8_t> no_extend(
-        result, worst_case_length);
-    no_extend.Append('\"');
-    SerializeStringUnchecked_(object->GetFlatContent().ToOneByteVector(),
-                              &no_extend);
-    no_extend.Append('\"');
-    return no_extend.Finalize();
-  } else {
-    result = isolate->factory()
-                 ->NewRawTwoByteString(worst_case_length)
-                 .ToHandleChecked();
-    IncrementalStringBuilder::NoExtendString<uc16> no_extend(result,
-                                                             worst_case_length);
-    no_extend.Append('\"');
-    SerializeStringUnchecked_(object->GetFlatContent().ToUC16Vector(),
-                              &no_extend);
-    no_extend.Append('\"');
-    return no_extend.Finalize();
-  }
-}
-
-
-MaybeHandle<Object> BasicJsonStringifier::ApplyToJsonFunction(
-    Handle<Object> object, Handle<Object> key) {
-  LookupIterator it(object, tojson_string_,
-                    LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
-  Handle<Object> fun;
-  ASSIGN_RETURN_ON_EXCEPTION(isolate_, fun, Object::GetProperty(&it), Object);
-  if (!fun->IsCallable()) return object;
-
-  // Call toJSON function.
-  if (key->IsSmi()) key = factory()->NumberToString(key);
-  Handle<Object> argv[] = { key };
-  HandleScope scope(isolate_);
-  ASSIGN_RETURN_ON_EXCEPTION(
-      isolate_, object,
-      Execution::Call(isolate_, fun, object, 1, argv),
-      Object);
-  return scope.CloseAndEscape(object);
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::StackPush(
-    Handle<Object> object) {
-  StackLimitCheck check(isolate_);
-  if (check.HasOverflowed()) {
-    isolate_->StackOverflow();
-    return EXCEPTION;
-  }
-
-  int length = Smi::cast(stack_->length())->value();
-  {
-    DisallowHeapAllocation no_allocation;
-    FixedArray* elements = FixedArray::cast(stack_->elements());
-    for (int i = 0; i < length; i++) {
-      if (elements->get(i) == *object) {
-        AllowHeapAllocation allow_to_return_error;
-        Handle<Object> error =
-            factory()->NewTypeError(MessageTemplate::kCircularStructure);
-        isolate_->Throw(*error);
-        return EXCEPTION;
-      }
-    }
-  }
-  JSArray::SetLength(stack_, length + 1);
-  FixedArray::cast(stack_->elements())->set(length, *object);
-  return SUCCESS;
-}
-
-
-void BasicJsonStringifier::StackPop() {
-  int length = Smi::cast(stack_->length())->value();
-  stack_->set_length(Smi::FromInt(length - 1));
-}
-
-
-template <bool deferred_string_key>
-BasicJsonStringifier::Result BasicJsonStringifier::Serialize_(
-    Handle<Object> object, bool comma, Handle<Object> key) {
-  if (object->IsJSObject()) {
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate_, object,
-        ApplyToJsonFunction(object, key),
-        EXCEPTION);
-  }
-
-  if (object->IsSmi()) {
-    if (deferred_string_key) SerializeDeferredKey(comma, key);
-    return SerializeSmi(Smi::cast(*object));
-  }
-
-  switch (HeapObject::cast(*object)->map()->instance_type()) {
-    case HEAP_NUMBER_TYPE:
-    case MUTABLE_HEAP_NUMBER_TYPE:
-      if (deferred_string_key) SerializeDeferredKey(comma, key);
-      return SerializeHeapNumber(Handle<HeapNumber>::cast(object));
-    case ODDBALL_TYPE:
-      switch (Oddball::cast(*object)->kind()) {
-        case Oddball::kFalse:
-          if (deferred_string_key) SerializeDeferredKey(comma, key);
-          builder_.AppendCString("false");
-          return SUCCESS;
-        case Oddball::kTrue:
-          if (deferred_string_key) SerializeDeferredKey(comma, key);
-          builder_.AppendCString("true");
-          return SUCCESS;
-        case Oddball::kNull:
-          if (deferred_string_key) SerializeDeferredKey(comma, key);
-          builder_.AppendCString("null");
-          return SUCCESS;
-        default:
-          return UNCHANGED;
-      }
-    case JS_ARRAY_TYPE:
-      if (object->IsAccessCheckNeeded()) break;
-      if (deferred_string_key) SerializeDeferredKey(comma, key);
-      return SerializeJSArray(Handle<JSArray>::cast(object));
-    case JS_VALUE_TYPE:
-      if (deferred_string_key) SerializeDeferredKey(comma, key);
-      return SerializeJSValue(Handle<JSValue>::cast(object));
-    default:
-      if (object->IsString()) {
-        if (deferred_string_key) SerializeDeferredKey(comma, key);
-        SerializeString(Handle<String>::cast(object));
-        return SUCCESS;
-      } else if (object->IsJSObject()) {
-        if (object->IsCallable()) return UNCHANGED;
-        // Go to slow path for global proxy and objects requiring access checks.
-        if (object->IsAccessCheckNeeded() || object->IsJSGlobalProxy()) break;
-        if (deferred_string_key) SerializeDeferredKey(comma, key);
-        return SerializeJSObject(Handle<JSObject>::cast(object));
-      }
-  }
-
-  return SerializeGeneric(object, key, comma, deferred_string_key);
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeGeneric(
-    Handle<Object> object,
-    Handle<Object> key,
-    bool deferred_comma,
-    bool deferred_key) {
-  Handle<JSFunction> fun = isolate_->json_serialize_adapter();
-  Handle<Object> argv[] = { key, object };
-  Handle<Object> result;
-  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-      isolate_, result, Execution::Call(isolate_, fun, object, 2, argv),
-      EXCEPTION);
-  if (result->IsUndefined()) return UNCHANGED;
-  if (deferred_key) {
-    if (key->IsSmi()) key = factory()->NumberToString(key);
-    SerializeDeferredKey(deferred_comma, key);
-  }
-
-  builder_.AppendString(Handle<String>::cast(result));
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSValue(
-    Handle<JSValue> object) {
-  String* class_name = object->class_name();
-  if (class_name == isolate_->heap()->String_string()) {
-    Handle<Object> value;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate_, value, Object::ToString(isolate_, object), EXCEPTION);
-    SerializeString(Handle<String>::cast(value));
-  } else if (class_name == isolate_->heap()->Number_string()) {
-    Handle<Object> value;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate_, value, Object::ToNumber(object),
-                                     EXCEPTION);
-    if (value->IsSmi()) return SerializeSmi(Smi::cast(*value));
-    SerializeHeapNumber(Handle<HeapNumber>::cast(value));
-  } else if (class_name == isolate_->heap()->Boolean_string()) {
-    Object* value = JSValue::cast(*object)->value();
-    DCHECK(value->IsBoolean());
-    builder_.AppendCString(value->IsTrue() ? "true" : "false");
-  } else {
-    // ES6 24.3.2.1 step 10.c, serialize as an ordinary JSObject.
-    CHECK(!object->IsAccessCheckNeeded());
-    CHECK(!object->IsJSGlobalProxy());
-    return SerializeJSObject(object);
-  }
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeSmi(Smi* object) {
-  static const int kBufferSize = 100;
-  char chars[kBufferSize];
-  Vector<char> buffer(chars, kBufferSize);
-  builder_.AppendCString(IntToCString(object->value(), buffer));
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeDouble(
-    double number) {
-  if (std::isinf(number) || std::isnan(number)) {
-    builder_.AppendCString("null");
-    return SUCCESS;
-  }
-  static const int kBufferSize = 100;
-  char chars[kBufferSize];
-  Vector<char> buffer(chars, kBufferSize);
-  builder_.AppendCString(DoubleToCString(number, buffer));
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSArray(
-    Handle<JSArray> object) {
-  HandleScope handle_scope(isolate_);
-  Result stack_push = StackPush(object);
-  if (stack_push != SUCCESS) return stack_push;
-  uint32_t length = 0;
-  CHECK(object->length()->ToArrayLength(&length));
-  builder_.AppendCharacter('[');
-  switch (object->GetElementsKind()) {
-    case FAST_SMI_ELEMENTS: {
-      Handle<FixedArray> elements(FixedArray::cast(object->elements()),
-                                  isolate_);
-      for (uint32_t i = 0; i < length; i++) {
-        if (i > 0) builder_.AppendCharacter(',');
-        SerializeSmi(Smi::cast(elements->get(i)));
-      }
-      break;
-    }
-    case FAST_DOUBLE_ELEMENTS: {
-      // Empty array is FixedArray but not FixedDoubleArray.
-      if (length == 0) break;
-      Handle<FixedDoubleArray> elements(
-          FixedDoubleArray::cast(object->elements()), isolate_);
-      for (uint32_t i = 0; i < length; i++) {
-        if (i > 0) builder_.AppendCharacter(',');
-        SerializeDouble(elements->get_scalar(i));
-      }
-      break;
-    }
-    case FAST_ELEMENTS: {
-      Handle<Object> old_length(object->length(), isolate_);
-      for (uint32_t i = 0; i < length; i++) {
-        if (object->length() != *old_length ||
-            object->GetElementsKind() != FAST_ELEMENTS) {
-          Result result = SerializeJSArraySlow(object, i, length);
-          if (result != SUCCESS) return result;
-          break;
-        }
-        if (i > 0) builder_.AppendCharacter(',');
-        Result result = SerializeElement(
-            isolate_,
-            Handle<Object>(FixedArray::cast(object->elements())->get(i),
-                           isolate_),
-            i);
-        if (result == SUCCESS) continue;
-        if (result == UNCHANGED) {
-          builder_.AppendCString("null");
-        } else {
-          return result;
-        }
-      }
-      break;
-    }
-    // The FAST_HOLEY_* cases could be handled in a faster way. They resemble
-    // the non-holey cases except that a lookup is necessary for holes.
-    default: {
-      Result result = SerializeJSArraySlow(object, 0, length);
-      if (result != SUCCESS) return result;
-      break;
-    }
-  }
-  builder_.AppendCharacter(']');
-  StackPop();
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSArraySlow(
-    Handle<JSArray> object, uint32_t start, uint32_t length) {
-  for (uint32_t i = start; i < length; i++) {
-    if (i > 0) builder_.AppendCharacter(',');
-    Handle<Object> element;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate_, element, JSReceiver::GetElement(isolate_, object, i),
-        EXCEPTION);
-    if (element->IsUndefined()) {
-      builder_.AppendCString("null");
-    } else {
-      Result result = SerializeElement(isolate_, element, i);
-      if (result == SUCCESS) continue;
-      if (result == UNCHANGED) {
-        builder_.AppendCString("null");
-      } else {
-        return result;
-      }
-    }
-  }
-  return SUCCESS;
-}
-
-
-BasicJsonStringifier::Result BasicJsonStringifier::SerializeJSObject(
-    Handle<JSObject> object) {
-  HandleScope handle_scope(isolate_);
-  Result stack_push = StackPush(object);
-  if (stack_push != SUCCESS) return stack_push;
-  DCHECK(!object->IsJSGlobalProxy() && !object->IsJSGlobalObject());
-
-  builder_.AppendCharacter('{');
-  bool comma = false;
-
-  if (object->HasFastProperties() &&
-      !object->HasIndexedInterceptor() &&
-      !object->HasNamedInterceptor() &&
-      object->elements()->length() == 0) {
-    Handle<Map> map(object->map());
-    for (int i = 0; i < map->NumberOfOwnDescriptors(); i++) {
-      Handle<Name> name(map->instance_descriptors()->GetKey(i), isolate_);
-      // TODO(rossberg): Should this throw?
-      if (!name->IsString()) continue;
-      Handle<String> key = Handle<String>::cast(name);
-      PropertyDetails details = map->instance_descriptors()->GetDetails(i);
-      if (details.IsDontEnum()) continue;
-      Handle<Object> property;
-      if (details.type() == DATA && *map == object->map()) {
-        FieldIndex field_index = FieldIndex::ForDescriptor(*map, i);
-        Isolate* isolate = object->GetIsolate();
-        if (object->IsUnboxedDoubleField(field_index)) {
-          double value = object->RawFastDoublePropertyAt(field_index);
-          property = isolate->factory()->NewHeapNumber(value);
-
-        } else {
-          property = handle(object->RawFastPropertyAt(field_index), isolate);
-        }
-      } else {
-        ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-            isolate_, property,
-            Object::GetPropertyOrElement(object, key),
-            EXCEPTION);
-      }
-      Result result = SerializeProperty(property, comma, key);
-      if (!comma && result == SUCCESS) comma = true;
-      if (result == EXCEPTION) return result;
-    }
-  } else {
-    Handle<FixedArray> contents;
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-        isolate_, contents,
-        JSReceiver::GetKeys(object, OWN_ONLY, ENUMERABLE_STRINGS), EXCEPTION);
-
-    for (int i = 0; i < contents->length(); i++) {
-      Object* key = contents->get(i);
-      Handle<String> key_handle;
-      MaybeHandle<Object> maybe_property;
-      if (key->IsString()) {
-        key_handle = Handle<String>(String::cast(key), isolate_);
-        maybe_property = Object::GetPropertyOrElement(object, key_handle);
-      } else {
-        DCHECK(key->IsNumber());
-        key_handle = factory()->NumberToString(Handle<Object>(key, isolate_));
-        if (key->IsSmi()) {
-          maybe_property =
-              JSReceiver::GetElement(isolate_, object, Smi::cast(key)->value());
-        } else {
-          maybe_property = Object::GetPropertyOrElement(object, key_handle);
-        }
-      }
-      Handle<Object> property;
-      ASSIGN_RETURN_ON_EXCEPTION_VALUE(
-          isolate_, property, maybe_property, EXCEPTION);
-      Result result = SerializeProperty(property, comma, key_handle);
-      if (!comma && result == SUCCESS) comma = true;
-      if (result == EXCEPTION) return result;
-    }
-  }
-
-  builder_.AppendCharacter('}');
-  StackPop();
-  return SUCCESS;
-}
-
-
-template <typename SrcChar, typename DestChar>
-void BasicJsonStringifier::SerializeStringUnchecked_(
-    Vector<const SrcChar> src,
-    IncrementalStringBuilder::NoExtend<DestChar>* dest) {
-  // Assert that uc16 character is not truncated down to 8 bit.
-  // The <uc16, char> version of this method must not be called.
-  DCHECK(sizeof(DestChar) >= sizeof(SrcChar));
-
-  for (int i = 0; i < src.length(); i++) {
-    SrcChar c = src[i];
-    if (DoNotEscape(c)) {
-      dest->Append(c);
-    } else {
-      dest->AppendCString(&JsonEscapeTable[c * kJsonEscapeTableEntrySize]);
-    }
-  }
-}
-
-
-template <typename SrcChar, typename DestChar>
-void BasicJsonStringifier::SerializeString_(Handle<String> string) {
-  int length = string->length();
-  builder_.Append<uint8_t, DestChar>('"');
-  // We make a rough estimate to find out if the current string can be
-  // serialized without allocating a new string part. The worst case length of
-  // an escaped character is 6.  Shifting the remainin string length right by 3
-  // is a more pessimistic estimate, but faster to calculate.
-  int worst_case_length = length << 3;
-  if (builder_.CurrentPartCanFit(worst_case_length)) {
-    DisallowHeapAllocation no_gc;
-    Vector<const SrcChar> vector = string->GetCharVector<SrcChar>();
-    IncrementalStringBuilder::NoExtendBuilder<DestChar> no_extend(
-        &builder_, worst_case_length);
-    SerializeStringUnchecked_(vector, &no_extend);
-  } else {
-    FlatStringReader reader(isolate_, string);
-    for (int i = 0; i < reader.length(); i++) {
-      SrcChar c = reader.Get<SrcChar>(i);
-      if (DoNotEscape(c)) {
-        builder_.Append<SrcChar, DestChar>(c);
-      } else {
-        builder_.AppendCString(&JsonEscapeTable[c * kJsonEscapeTableEntrySize]);
-      }
-    }
-  }
-
-  builder_.Append<uint8_t, DestChar>('"');
-}
-
-
-template <>
-bool BasicJsonStringifier::DoNotEscape(uint8_t c) {
-  return c >= '#' && c <= '~' && c != '\\';
-}
-
-
-template <>
-bool BasicJsonStringifier::DoNotEscape(uint16_t c) {
-  return c >= '#' && c != '\\' && c != 0x7f;
-}
-
-
-void BasicJsonStringifier::SerializeString(Handle<String> object) {
-  object = String::Flatten(object);
-  if (builder_.CurrentEncoding() == String::ONE_BYTE_ENCODING) {
-    if (object->IsOneByteRepresentationUnderneath()) {
-      SerializeString_<uint8_t, uint8_t>(object);
-    } else {
-      builder_.ChangeEncoding();
-      SerializeString(object);
-    }
-  } else {
-    if (object->IsOneByteRepresentationUnderneath()) {
-      SerializeString_<uint8_t, uc16>(object);
-    } else {
-      SerializeString_<uc16, uc16>(object);
-    }
-  }
-}
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/keys.cc b/src/keys.cc
index 17270eb..75eb162 100644
--- a/src/keys.cc
+++ b/src/keys.cc
@@ -17,9 +17,6 @@
 namespace internal {
 
 KeyAccumulator::~KeyAccumulator() {
-  for (size_t i = 0; i < elements_.size(); i++) {
-    delete elements_[i];
-  }
 }
 
 namespace {
@@ -34,197 +31,58 @@
 }
 
 }  // namespace
-
 MaybeHandle<FixedArray> KeyAccumulator::GetKeys(
-    Handle<JSReceiver> object, KeyCollectionType type, PropertyFilter filter,
-    GetKeysConversion keys_conversion, bool filter_proxy_keys) {
-  USE(ContainsOnlyValidKeys);
+    Handle<JSReceiver> object, KeyCollectionMode mode, PropertyFilter filter,
+    GetKeysConversion keys_conversion, bool filter_proxy_keys, bool is_for_in) {
   Isolate* isolate = object->GetIsolate();
-  KeyAccumulator accumulator(isolate, type, filter);
+  KeyAccumulator accumulator(isolate, mode, filter);
   accumulator.set_filter_proxy_keys(filter_proxy_keys);
+  accumulator.set_is_for_in(is_for_in);
   MAYBE_RETURN(accumulator.CollectKeys(object, object),
                MaybeHandle<FixedArray>());
-  Handle<FixedArray> keys = accumulator.GetKeys(keys_conversion);
-  DCHECK(ContainsOnlyValidKeys(keys));
-  return keys;
+  return accumulator.GetKeys(keys_conversion);
 }
 
 Handle<FixedArray> KeyAccumulator::GetKeys(GetKeysConversion convert) {
-  if (length_ == 0) {
+  if (keys_.is_null()) {
     return isolate_->factory()->empty_fixed_array();
   }
-  // Make sure we have all the lengths collected.
-  NextPrototype();
-
-  if (type_ == OWN_ONLY && !ownProxyKeys_.is_null()) {
-    return ownProxyKeys_;
+  if (mode_ == KeyCollectionMode::kOwnOnly &&
+      keys_->map() == isolate_->heap()->fixed_array_map()) {
+    return Handle<FixedArray>::cast(keys_);
   }
-  // Assemble the result array by first adding the element keys and then the
-  // property keys. We use the total number of String + Symbol keys per level in
-  // |level_lengths_| and the available element keys in the corresponding bucket
-  // in |elements_| to deduce the number of keys to take from the
-  // |string_properties_| and |symbol_properties_| set.
-  Handle<FixedArray> result = isolate_->factory()->NewFixedArray(length_);
-  int insertion_index = 0;
-  int string_properties_index = 0;
-  int symbol_properties_index = 0;
-  // String and Symbol lengths always come in pairs:
-  size_t max_level = level_lengths_.size() / 2;
-  for (size_t level = 0; level < max_level; level++) {
-    int num_string_properties = level_lengths_[level * 2];
-    int num_symbol_properties = level_lengths_[level * 2 + 1];
-    int num_elements = 0;
-    if (num_string_properties < 0) {
-      // If the |num_string_properties| is negative, the current level contains
-      // properties from a proxy, hence we skip the integer keys in |elements_|
-      // since proxies define the complete ordering.
-      num_string_properties = -num_string_properties;
-    } else if (level < elements_.size()) {
-      // Add the element indices for this prototype level.
-      std::vector<uint32_t>* elements = elements_[level];
-      num_elements = static_cast<int>(elements->size());
-      for (int i = 0; i < num_elements; i++) {
-        Handle<Object> key;
-        if (convert == KEEP_NUMBERS) {
-          key = isolate_->factory()->NewNumberFromUint(elements->at(i));
-        } else {
-          key = isolate_->factory()->Uint32ToString(elements->at(i));
-        }
-        result->set(insertion_index, *key);
-        insertion_index++;
-      }
-    }
-    // Add the string property keys for this prototype level.
-    for (int i = 0; i < num_string_properties; i++) {
-      Object* key = string_properties_->KeyAt(string_properties_index);
-      result->set(insertion_index, key);
-      insertion_index++;
-      string_properties_index++;
-    }
-    // Add the symbol property keys for this prototype level.
-    for (int i = 0; i < num_symbol_properties; i++) {
-      Object* key = symbol_properties_->KeyAt(symbol_properties_index);
-      result->set(insertion_index, key);
-      insertion_index++;
-      symbol_properties_index++;
-    }
-    if (FLAG_trace_for_in_enumerate) {
-      PrintF("| strings=%d symbols=%d elements=%i ", num_string_properties,
-             num_symbol_properties, num_elements);
-    }
-  }
-  if (FLAG_trace_for_in_enumerate) {
-    PrintF("|| prototypes=%zu ||\n", max_level);
-  }
-
-  DCHECK_EQ(insertion_index, length_);
+  USE(ContainsOnlyValidKeys);
+  Handle<FixedArray> result =
+      OrderedHashSet::ConvertToKeysArray(keys(), convert);
+  DCHECK(ContainsOnlyValidKeys(result));
   return result;
 }
 
-namespace {
-
-bool AccumulatorHasKey(std::vector<uint32_t>* sub_elements, uint32_t key) {
-  return std::binary_search(sub_elements->begin(), sub_elements->end(), key);
+void KeyAccumulator::AddKey(Object* key, AddKeyConversion convert) {
+  AddKey(handle(key, isolate_), convert);
 }
 
-}  // namespace
-
-bool KeyAccumulator::AddKey(Object* key, AddKeyConversion convert) {
-  return AddKey(handle(key, isolate_), convert);
-}
-
-bool KeyAccumulator::AddKey(Handle<Object> key, AddKeyConversion convert) {
+void KeyAccumulator::AddKey(Handle<Object> key, AddKeyConversion convert) {
   if (key->IsSymbol()) {
-    if (filter_ & SKIP_SYMBOLS) return false;
-    if (Handle<Symbol>::cast(key)->is_private()) return false;
-    return AddSymbolKey(key);
+    if (filter_ & SKIP_SYMBOLS) return;
+    if (Handle<Symbol>::cast(key)->is_private()) return;
+  } else if (filter_ & SKIP_STRINGS) {
+    return;
   }
-  if (filter_ & SKIP_STRINGS) return false;
-  // 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
-  // proxies we have to convert as well but also respect the original order.
-  // Therefore we add a converted key to both sides
-  if (convert == CONVERT_TO_ARRAY_INDEX || convert == PROXY_MAGIC) {
-    uint32_t index = 0;
-    int prev_length = length_;
-    int prev_proto = level_string_length_;
-    if ((key->IsString() && Handle<String>::cast(key)->AsArrayIndex(&index)) ||
-        key->ToArrayIndex(&index)) {
-      bool key_was_added = AddIntegerKey(index);
-      if (convert == CONVERT_TO_ARRAY_INDEX) return key_was_added;
-      if (convert == PROXY_MAGIC) {
-        // If we had an array index (number) and it wasn't added, the key
-        // already existed before, hence we cannot add it to the properties
-        // keys as it would lead to duplicate entries.
-        if (!key_was_added) {
-          return false;
-        }
-        length_ = prev_length;
-        level_string_length_ = prev_proto;
-      }
-    }
+  if (keys_.is_null()) {
+    keys_ = OrderedHashSet::Allocate(isolate_, 16);
   }
-  return AddStringKey(key, convert);
-}
-
-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 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
-  // sorted yet.
-  for (size_t i = 1; i < elements_.size(); i++) {
-    if (AccumulatorHasKey(elements_[i - 1], key)) return false;
+  uint32_t index;
+  if (convert == CONVERT_TO_ARRAY_INDEX && key->IsString() &&
+      Handle<String>::cast(key)->AsArrayIndex(&index)) {
+    key = isolate_->factory()->NewNumberFromUint(index);
   }
-  elements_.back()->push_back(key);
-  length_++;
-  return true;
-}
-
-bool KeyAccumulator::AddStringKey(Handle<Object> key,
-                                  AddKeyConversion convert) {
-  if (string_properties_.is_null()) {
-    string_properties_ = OrderedHashSet::Allocate(isolate_, 16);
-  }
-  // TODO(cbruni): remove this conversion once we throw the correct TypeError
-  // for non-string/symbol elements returned by proxies
-  if (convert == PROXY_MAGIC && key->IsNumber()) {
-    key = isolate_->factory()->NumberToString(key);
-  }
-  int prev_size = string_properties_->NumberOfElements();
-  string_properties_ = OrderedHashSet::Add(string_properties_, key);
-  if (prev_size < string_properties_->NumberOfElements()) {
-    length_++;
-    level_string_length_++;
-    return true;
-  } else {
-    return false;
-  }
-}
-
-bool KeyAccumulator::AddSymbolKey(Handle<Object> key) {
-  if (symbol_properties_.is_null()) {
-    symbol_properties_ = OrderedHashSet::Allocate(isolate_, 16);
-  }
-  int prev_size = symbol_properties_->NumberOfElements();
-  symbol_properties_ = OrderedHashSet::Add(symbol_properties_, key);
-  if (prev_size < symbol_properties_->NumberOfElements()) {
-    length_++;
-    level_symbol_length_++;
-    return true;
-  } else {
-    return false;
-  }
+  keys_ = OrderedHashSet::Add(keys(), key);
 }
 
 void KeyAccumulator::AddKeys(Handle<FixedArray> array,
                              AddKeyConversion convert) {
   int add_length = array->length();
-  if (add_length == 0) return;
   for (int i = 0; i < add_length; i++) {
     Handle<Object> current(array->get(i), isolate_);
     AddKey(current, convert);
@@ -271,81 +129,35 @@
 Maybe<bool> KeyAccumulator::AddKeysFromJSProxy(Handle<JSProxy> proxy,
                                                Handle<FixedArray> keys) {
   if (filter_proxy_keys_) {
+    DCHECK(!is_for_in_);
     ASSIGN_RETURN_ON_EXCEPTION_VALUE(
         isolate_, keys, FilterProxyKeys(isolate_, proxy, keys, filter_),
         Nothing<bool>());
   }
-  // Proxies define a complete list of keys with no distinction of
-  // elements and properties, which breaks the normal assumption for the
-  // KeyAccumulator.
-  if (type_ == OWN_ONLY) {
-    ownProxyKeys_ = keys;
-    level_string_length_ = keys->length();
-    length_ = level_string_length_;
-  } else {
-    AddKeys(keys, PROXY_MAGIC);
+  if (mode_ == KeyCollectionMode::kOwnOnly && !is_for_in_) {
+    // If we collect only the keys from a JSProxy do not sort or deduplicate it.
+    keys_ = keys;
+    return Just(true);
   }
-  // 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_;
+  AddKeys(keys, is_for_in_ ? CONVERT_TO_ARRAY_INDEX : DO_NOT_CONVERT);
   return Just(true);
 }
 
-void KeyAccumulator::AddElementKeysFromInterceptor(
-    Handle<JSObject> array_like) {
-  AddKeys(array_like, CONVERT_TO_ARRAY_INDEX);
-  // The interceptor might introduce duplicates for the current level, since
-  // these keys get added after the objects's normal element keys.
-  SortCurrentElementsListRemoveDuplicates();
-}
-
-void KeyAccumulator::SortCurrentElementsListRemoveDuplicates() {
-  // Sort and remove duplicates from the current elements level and adjust.
-  // the lengths accordingly.
-  auto last_level = elements_.back();
-  size_t nof_removed_keys = last_level->size();
-  std::sort(last_level->begin(), last_level->end());
-  last_level->erase(std::unique(last_level->begin(), last_level->end()),
-                    last_level->end());
-  // Adjust total length by the number of removed duplicates.
-  nof_removed_keys -= last_level->size();
-  length_ -= static_cast<int>(nof_removed_keys);
-}
-
-void KeyAccumulator::SortCurrentElementsList() {
-  if (elements_.empty()) return;
-  auto element_keys = elements_.back();
-  std::sort(element_keys->begin(), element_keys->end());
-}
-
-void KeyAccumulator::NextPrototype() {
-  // Store the protoLength on the first call of this method.
-  if (!elements_.empty()) {
-    level_lengths_.push_back(level_string_length_);
-    level_lengths_.push_back(level_symbol_length_);
-  }
-  elements_.push_back(new std::vector<uint32_t>());
-  level_string_length_ = 0;
-  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()) {
+  if (mode_ == KeyCollectionMode::kOwnOnly && object->IsJSProxy()) {
     MAYBE_RETURN(CollectOwnJSProxyKeys(receiver, Handle<JSProxy>::cast(object)),
                  Nothing<bool>());
     return Just(true);
   }
 
-  PrototypeIterator::WhereToEnd end = type_ == OWN_ONLY
+  PrototypeIterator::WhereToEnd end = mode_ == KeyCollectionMode::kOwnOnly
                                           ? PrototypeIterator::END_AT_NON_HIDDEN
                                           : PrototypeIterator::END_AT_NULL;
-  for (PrototypeIterator iter(isolate_, object,
-                              PrototypeIterator::START_AT_RECEIVER, end);
+  for (PrototypeIterator iter(isolate_, object, kStartAtReceiver, end);
        !iter.IsAtEnd();) {
     Handle<JSReceiver> current =
         PrototypeIterator::GetCurrent<JSReceiver>(iter);
@@ -363,6 +175,10 @@
     if (!iter.AdvanceFollowingProxiesIgnoringAccessChecks()) {
       return Nothing<bool>();
     }
+    if (!last_non_empty_prototype_.is_null() &&
+        *last_non_empty_prototype_ == *current) {
+      break;
+    }
   }
   return Just(true);
 }
@@ -396,25 +212,26 @@
 void FastKeyAccumulator::Prepare() {
   DisallowHeapAllocation no_gc;
   // Directly go for the fast path for OWN_ONLY keys.
-  if (type_ == OWN_ONLY) return;
+  if (mode_ == KeyCollectionMode::kOwnOnly) return;
   // Fully walk the prototype chain and find the last prototype with keys.
   is_receiver_simple_enum_ = false;
   has_empty_prototype_ = true;
-  JSReceiver* first_non_empty_prototype;
+  JSReceiver* last_prototype = nullptr;
   for (PrototypeIterator iter(isolate_, *receiver_); !iter.IsAtEnd();
        iter.Advance()) {
     JSReceiver* current = iter.GetCurrent<JSReceiver>();
-    if (CheckAndInitalizeSimpleEnumCache(current)) continue;
+    bool has_no_properties = CheckAndInitalizeSimpleEnumCache(current);
+    if (has_no_properties) continue;
+    last_prototype = current;
     has_empty_prototype_ = false;
-    first_non_empty_prototype = current;
-    // TODO(cbruni): use the first non-empty prototype.
-    USE(first_non_empty_prototype);
-    return;
   }
-  DCHECK(has_empty_prototype_);
-  is_receiver_simple_enum_ =
-      receiver_->map()->EnumLength() != kInvalidEnumCacheSentinel &&
-      !JSObject::cast(*receiver_)->HasEnumerableElements();
+  if (has_empty_prototype_) {
+    is_receiver_simple_enum_ =
+        receiver_->map()->EnumLength() != kInvalidEnumCacheSentinel &&
+        !JSObject::cast(*receiver_)->HasEnumerableElements();
+  } else if (last_prototype != nullptr) {
+    last_non_empty_prototype_ = handle(last_prototype, isolate_);
+  }
 }
 
 namespace {
@@ -549,17 +366,19 @@
 
 }  // namespace
 
-MaybeHandle<FixedArray> FastKeyAccumulator::GetKeys(GetKeysConversion convert) {
+MaybeHandle<FixedArray> FastKeyAccumulator::GetKeys(
+    GetKeysConversion keys_conversion) {
   Handle<FixedArray> keys;
-  if (GetKeysFast(convert).ToHandle(&keys)) {
+  if (filter_ == ENUMERABLE_STRINGS &&
+      GetKeysFast(keys_conversion).ToHandle(&keys)) {
     return keys;
   }
-  return GetKeysSlow(convert);
+  return GetKeysSlow(keys_conversion);
 }
 
 MaybeHandle<FixedArray> FastKeyAccumulator::GetKeysFast(
-    GetKeysConversion convert) {
-  bool own_only = has_empty_prototype_ || type_ == OWN_ONLY;
+    GetKeysConversion keys_conversion) {
+  bool own_only = has_empty_prototype_ || mode_ == KeyCollectionMode::kOwnOnly;
   Map* map = receiver_->map();
   if (!own_only || !OnlyHasSimpleProperties(map)) {
     return MaybeHandle<FixedArray>();
@@ -571,7 +390,7 @@
 
   // Do not try to use the enum-cache for dict-mode objects.
   if (map->is_dictionary_map()) {
-    return GetOwnKeysWithElements<false>(isolate_, object, convert);
+    return GetOwnKeysWithElements<false>(isolate_, object, keys_conversion);
   }
   int enum_length = receiver_->map()->EnumLength();
   if (enum_length == kInvalidEnumCacheSentinel) {
@@ -590,22 +409,53 @@
   }
   // The properties-only case failed because there were probably elements on the
   // receiver.
-  return GetOwnKeysWithElements<true>(isolate_, object, convert);
+  return GetOwnKeysWithElements<true>(isolate_, object, keys_conversion);
 }
 
 MaybeHandle<FixedArray> FastKeyAccumulator::GetKeysSlow(
-    GetKeysConversion convert) {
-  return JSReceiver::GetKeys(receiver_, type_, filter_, KEEP_NUMBERS,
-                             filter_proxy_keys_);
+    GetKeysConversion keys_conversion) {
+  KeyAccumulator accumulator(isolate_, mode_, filter_);
+  accumulator.set_filter_proxy_keys(filter_proxy_keys_);
+  accumulator.set_is_for_in(is_for_in_);
+  accumulator.set_last_non_empty_prototype(last_non_empty_prototype_);
+
+  MAYBE_RETURN(accumulator.CollectKeys(receiver_, receiver_),
+               MaybeHandle<FixedArray>());
+  return accumulator.GetKeys(keys_conversion);
 }
 
+namespace {
+
 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) {
+Maybe<bool> CollectInterceptorKeysInternal(Handle<JSReceiver> receiver,
+                                           Handle<JSObject> object,
+                                           Handle<InterceptorInfo> interceptor,
+                                           KeyAccumulator* accumulator) {
+  Isolate* isolate = accumulator->isolate();
+  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
+                                 *object, Object::DONT_THROW);
+  Handle<JSObject> result;
+  if (!interceptor->enumerator()->IsUndefined(isolate)) {
+    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);
+  accumulator->AddKeys(
+      result, type == kIndexed ? CONVERT_TO_ARRAY_INDEX : DO_NOT_CONVERT);
+  return Just(true);
+}
+
+template <class Callback, IndexedOrNamed type>
+Maybe<bool> CollectInterceptorKeys(Handle<JSReceiver> receiver,
+                                   Handle<JSObject> object,
+                                   KeyAccumulator* accumulator) {
   Isolate* isolate = accumulator->isolate();
   if (type == kIndexed) {
     if (!object->HasIndexedInterceptor()) return Just(true);
@@ -620,99 +470,140 @@
       !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);
+  return CollectInterceptorKeysInternal<Callback, type>(
+      receiver, object, interceptor, accumulator);
 }
 
-void KeyAccumulator::CollectOwnElementIndices(Handle<JSObject> object) {
-  if (filter_ & SKIP_STRINGS) return;
+}  // namespace
+
+Maybe<bool> KeyAccumulator::CollectOwnElementIndices(
+    Handle<JSReceiver> receiver, Handle<JSObject> object) {
+  if (filter_ & SKIP_STRINGS || skip_indices_) return Just(true);
+
   ElementsAccessor* accessor = object->GetElementsAccessor();
   accessor->CollectElementIndices(object, this);
+
+  return CollectInterceptorKeys<v8::IndexedPropertyEnumeratorCallback,
+                                kIndexed>(receiver, 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);
+namespace {
+
+template <bool skip_symbols>
+int CollectOwnPropertyNamesInternal(Handle<JSObject> object,
+                                    KeyAccumulator* keys,
+                                    Handle<DescriptorArray> descs,
+                                    int start_index, int limit) {
+  int first_skipped = -1;
+  for (int i = start_index; i < limit; i++) {
+    PropertyDetails details = descs->GetDetails(i);
+    if ((details.attributes() & keys->filter()) != 0) continue;
+    if (keys->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;
     }
-  } else if (object->IsJSGlobalObject()) {
-    GlobalDictionary::CollectKeysTo(
-        handle(object->global_dictionary(), isolate_), this, filter_);
-  } else {
-    NameDictionary::CollectKeysTo(
-        handle(object->property_dictionary(), isolate_), this, filter_);
+    Name* key = descs->GetKey(i);
+    if (skip_symbols == key->IsSymbol()) {
+      if (first_skipped == -1) first_skipped = i;
+      continue;
+    }
+    if (key->FilterKey(keys->filter())) continue;
+    keys->AddKey(key, DO_NOT_CONVERT);
   }
+  return first_skipped;
+}
+
+}  // namespace
+
+Maybe<bool> KeyAccumulator::CollectOwnPropertyNames(Handle<JSReceiver> receiver,
+                                                    Handle<JSObject> object) {
+  if (filter_ == ENUMERABLE_STRINGS) {
+    Handle<FixedArray> enum_keys =
+        KeyAccumulator::GetEnumPropertyKeys(isolate_, object);
+    AddKeys(enum_keys, DO_NOT_CONVERT);
+  } else {
+    if (object->HasFastProperties()) {
+      int limit = object->map()->NumberOfOwnDescriptors();
+      Handle<DescriptorArray> descs(object->map()->instance_descriptors(),
+                                    isolate_);
+      // First collect the strings,
+      int first_symbol =
+          CollectOwnPropertyNamesInternal<true>(object, this, descs, 0, limit);
+      // then the symbols.
+      if (first_symbol != -1) {
+        CollectOwnPropertyNamesInternal<false>(object, this, descs,
+                                               first_symbol, limit);
+      }
+    } else if (object->IsJSGlobalObject()) {
+      GlobalDictionary::CollectKeysTo(
+          handle(object->global_dictionary(), isolate_), this, filter_);
+    } else {
+      NameDictionary::CollectKeysTo(
+          handle(object->property_dictionary(), isolate_), this, filter_);
+    }
+  }
+  // Add the property keys from the interceptor.
+  return CollectInterceptorKeys<v8::GenericNamedPropertyEnumeratorCallback,
+                                kNamed>(receiver, object, this);
+}
+
+Maybe<bool> KeyAccumulator::CollectAccessCheckInterceptorKeys(
+    Handle<AccessCheckInfo> access_check_info, Handle<JSReceiver> receiver,
+    Handle<JSObject> object) {
+  MAYBE_RETURN(
+      (CollectInterceptorKeysInternal<v8::IndexedPropertyEnumeratorCallback,
+                                      kIndexed>(
+          receiver, object,
+          handle(
+              InterceptorInfo::cast(access_check_info->indexed_interceptor()),
+              isolate_),
+          this)),
+      Nothing<bool>());
+  MAYBE_RETURN(
+      (CollectInterceptorKeysInternal<
+          v8::GenericNamedPropertyEnumeratorCallback, kNamed>(
+          receiver, object,
+          handle(InterceptorInfo::cast(access_check_info->named_interceptor()),
+                 isolate_),
+          this)),
+      Nothing<bool>());
+  return Just(true);
 }
 
 // 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) {
+    if (mode_ == KeyCollectionMode::kIncludePrototypes) {
       return Just(false);
     }
     // ...whereas [[OwnPropertyKeys]] shall return whitelisted properties.
-    DCHECK_EQ(OWN_ONLY, type_);
+    DCHECK(KeyCollectionMode::kOwnOnly == mode_);
+    Handle<AccessCheckInfo> access_check_info;
+    {
+      DisallowHeapAllocation no_gc;
+      AccessCheckInfo* maybe_info = AccessCheckInfo::Get(isolate_, object);
+      if (maybe_info) access_check_info = handle(maybe_info, isolate_);
+    }
+    // We always have both kinds of interceptors or none.
+    if (!access_check_info.is_null() &&
+        access_check_info->named_interceptor()) {
+      MAYBE_RETURN(CollectAccessCheckInterceptorKeys(access_check_info,
+                                                     receiver, object),
+                   Nothing<bool>());
+      return Just(false);
+    }
     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>());
+  MAYBE_RETURN(CollectOwnElementIndices(receiver, object), Nothing<bool>());
+  MAYBE_RETURN(CollectOwnPropertyNames(receiver, object), Nothing<bool>());
   return Just(true);
 }
 
@@ -765,7 +656,7 @@
                                         isolate_->factory()->ownKeys_string()),
       Nothing<bool>());
   // 6. If trap is undefined, then
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate_)) {
     // 6a. Return target.[[OwnPropertyKeys]]().
     return CollectOwnJSProxyTargetKeys(proxy, target);
   }
@@ -822,7 +713,6 @@
       // (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) {
@@ -895,8 +785,11 @@
   // 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.
+      isolate_, keys,
+      KeyAccumulator::GetKeys(target, KeyCollectionMode::kOwnOnly, filter_,
+                              GetKeysConversion::kConvertToString,
+                              filter_proxy_keys_, is_for_in_),
+      Nothing<bool>());
   bool prev_filter_proxy_keys_ = filter_proxy_keys_;
   filter_proxy_keys_ = false;
   Maybe<bool> result = AddKeysFromJSProxy(proxy, keys);
diff --git a/src/keys.h b/src/keys.h
index c73f109..502c834 100644
--- a/src/keys.h
+++ b/src/keys.h
@@ -11,7 +11,7 @@
 namespace v8 {
 namespace internal {
 
-enum AddKeyConversion { DO_NOT_CONVERT, CONVERT_TO_ARRAY_INDEX, PROXY_MAGIC };
+enum AddKeyConversion { DO_NOT_CONVERT, CONVERT_TO_ARRAY_INDEX };
 
 // This is a helper class for JSReceiver::GetKeys which collects and sorts keys.
 // GetKeys needs to sort keys per prototype level, first showing the integer
@@ -31,41 +31,46 @@
 // are more compact and allow for reasonably fast includes check.
 class KeyAccumulator final BASE_EMBEDDED {
  public:
-  KeyAccumulator(Isolate* isolate, KeyCollectionType type,
+  KeyAccumulator(Isolate* isolate, KeyCollectionMode mode,
                  PropertyFilter filter)
-      : isolate_(isolate), type_(type), filter_(filter) {}
+      : isolate_(isolate), mode_(mode), 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);
+  static MaybeHandle<FixedArray> GetKeys(
+      Handle<JSReceiver> object, KeyCollectionMode mode, PropertyFilter filter,
+      GetKeysConversion keys_conversion = GetKeysConversion::kKeepNumbers,
+      bool filter_proxy_keys = true, bool is_for_in = false);
+
+  Handle<FixedArray> GetKeys(
+      GetKeysConversion convert = GetKeysConversion::kKeepNumbers);
   Maybe<bool> CollectKeys(Handle<JSReceiver> receiver,
                           Handle<JSReceiver> object);
-  void CollectOwnElementIndices(Handle<JSObject> object);
-  void CollectOwnPropertyNames(Handle<JSObject> object);
+  Maybe<bool> CollectOwnElementIndices(Handle<JSReceiver> receiver,
+                                       Handle<JSObject> object);
+  Maybe<bool> CollectOwnPropertyNames(Handle<JSReceiver> receiver,
+                                      Handle<JSObject> object);
+  Maybe<bool> CollectAccessCheckInterceptorKeys(
+      Handle<AccessCheckInfo> access_check_info, Handle<JSReceiver> receiver,
+      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 AddKey(Object* key, AddKeyConversion convert = DO_NOT_CONVERT);
+  void AddKey(Handle<Object> key, AddKeyConversion convert = DO_NOT_CONVERT);
   void AddKeys(Handle<FixedArray> array, AddKeyConversion convert);
-  void AddKeys(Handle<JSObject> array, AddKeyConversion convert);
-  void AddElementKeysFromInterceptor(Handle<JSObject> array);
+  void AddKeys(Handle<JSObject> array_like, AddKeyConversion convert);
 
   // 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();
-  int length() { return length_; }
   Isolate* isolate() { return isolate_; }
   PropertyFilter filter() { return filter_; }
   void set_filter_proxy_keys(bool filter) { filter_proxy_keys_ = filter; }
+  void set_is_for_in(bool value) { is_for_in_ = value; }
+  void set_skip_indices(bool value) { skip_indices_ = value; }
+  void set_last_non_empty_prototype(Handle<JSReceiver> object) {
+    last_non_empty_prototype_ = object;
+  }
 
  private:
   Maybe<bool> CollectOwnKeys(Handle<JSReceiver> receiver,
@@ -78,35 +83,18 @@
   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);
-  void SortCurrentElementsListRemoveDuplicates();
+  Handle<OrderedHashSet> keys() { return Handle<OrderedHashSet>::cast(keys_); }
 
   Isolate* isolate_;
-  KeyCollectionType type_;
+  // keys_ is either an Handle<OrderedHashSet> or in the case of own JSProxy
+  // keys a Handle<FixedArray>.
+  Handle<FixedArray> keys_;
+  Handle<JSReceiver> last_non_empty_prototype_;
+  KeyCollectionMode mode_;
   PropertyFilter filter_;
   bool filter_proxy_keys_ = true;
-  // |elements_| contains the sorted element keys (indices) per level.
-  std::vector<std::vector<uint32_t>*> elements_;
-  // |protoLengths_| contains the total number of keys (elements + properties)
-  // per level. Negative values mark counts for a level with keys from a proxy.
-  std::vector<int> level_lengths_;
-  // |string_properties_| contains the unique String property keys for all
-  // levels in insertion order per level.
-  Handle<OrderedHashSet> string_properties_;
-  // |symbol_properties_| contains the unique Symbol property keys for all
-  // levels in insertion order per level.
-  Handle<OrderedHashSet> symbol_properties_;
-  Handle<FixedArray> ownProxyKeys_;
-  // |length_| keeps track of the total number of all element and property keys.
-  int length_ = 0;
-  // |levelLength_| keeps track of the number of String keys in the current
-  // level.
-  int level_string_length_ = 0;
-  // |levelSymbolLength_| keeps track of the number of Symbol keys in the
-  // current level.
-  int level_symbol_length_ = 0;
+  bool is_for_in_ = false;
+  bool skip_indices_ = false;
 
   DISALLOW_COPY_AND_ASSIGN(KeyAccumulator);
 };
@@ -117,16 +105,18 @@
 class FastKeyAccumulator {
  public:
   FastKeyAccumulator(Isolate* isolate, Handle<JSReceiver> receiver,
-                     KeyCollectionType type, PropertyFilter filter)
-      : isolate_(isolate), receiver_(receiver), type_(type), filter_(filter) {
+                     KeyCollectionMode mode, PropertyFilter filter)
+      : isolate_(isolate), receiver_(receiver), mode_(mode), filter_(filter) {
     Prepare();
   }
 
   bool is_receiver_simple_enum() { return is_receiver_simple_enum_; }
   bool has_empty_prototype() { return has_empty_prototype_; }
   void set_filter_proxy_keys(bool filter) { filter_proxy_keys_ = filter; }
+  void set_is_for_in(bool value) { is_for_in_ = value; }
 
-  MaybeHandle<FixedArray> GetKeys(GetKeysConversion convert = KEEP_NUMBERS);
+  MaybeHandle<FixedArray> GetKeys(
+      GetKeysConversion convert = GetKeysConversion::kKeepNumbers);
 
  private:
   void Prepare();
@@ -135,9 +125,11 @@
 
   Isolate* isolate_;
   Handle<JSReceiver> receiver_;
-  KeyCollectionType type_;
+  Handle<JSReceiver> last_non_empty_prototype_;
+  KeyCollectionMode mode_;
   PropertyFilter filter_;
   bool filter_proxy_keys_ = true;
+  bool is_for_in_ = false;
   bool is_receiver_simple_enum_ = false;
   bool has_empty_prototype_ = false;
 
diff --git a/src/libsampler/DEPS b/src/libsampler/DEPS
new file mode 100644
index 0000000..bdf1a82
--- /dev/null
+++ b/src/libsampler/DEPS
@@ -0,0 +1,6 @@
+include_rules = [
+  "+include",
+  "-src",
+  "+src/base",
+  "+src/libsampler",
+]
\ No newline at end of file
diff --git a/src/libsampler/v8-sampler.cc b/src/libsampler/v8-sampler.cc
new file mode 100644
index 0000000..edf6df1
--- /dev/null
+++ b/src/libsampler/v8-sampler.cc
@@ -0,0 +1,673 @@
+// 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/libsampler/v8-sampler.h"
+
+#if V8_OS_POSIX && !V8_OS_CYGWIN
+
+#define USE_SIGNALS
+
+#include <errno.h>
+#include <pthread.h>
+#include <signal.h>
+#include <sys/time.h>
+
+#if !V8_OS_QNX && !V8_OS_NACL && !V8_OS_AIX
+#include <sys/syscall.h>  // NOLINT
+#endif
+
+#if V8_OS_MACOSX
+#include <mach/mach.h>
+// OpenBSD doesn't have <ucontext.h>. ucontext_t lives in <signal.h>
+// and is a typedef for struct sigcontext. There is no uc_mcontext.
+#elif(!V8_OS_ANDROID || defined(__BIONIC_HAVE_UCONTEXT_T)) && \
+    !V8_OS_OPENBSD && !V8_OS_NACL
+#include <ucontext.h>
+#endif
+
+#include <unistd.h>
+
+// GLibc on ARM defines mcontext_t has a typedef for 'struct sigcontext'.
+// Old versions of the C library <signal.h> didn't define the type.
+#if V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T) && \
+    (defined(__arm__) || defined(__aarch64__)) && \
+    !defined(__BIONIC_HAVE_STRUCT_SIGCONTEXT)
+#include <asm/sigcontext.h>  // NOLINT
+#endif
+
+#elif V8_OS_WIN || V8_OS_CYGWIN
+
+#include "src/base/win32-headers.h"
+
+#endif
+
+#include <algorithm>
+#include <vector>
+#include <map>
+
+#include "src/base/atomic-utils.h"
+#include "src/base/hashmap.h"
+#include "src/base/platform/platform.h"
+
+#if V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T)
+
+// Not all versions of Android's C library provide ucontext_t.
+// Detect this and provide custom but compatible definitions. Note that these
+// follow the GLibc naming convention to access register values from
+// mcontext_t.
+//
+// See http://code.google.com/p/android/issues/detail?id=34784
+
+#if defined(__arm__)
+
+typedef struct sigcontext mcontext_t;
+
+typedef struct ucontext {
+  uint32_t uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Other fields are not used by V8, don't define them here.
+} ucontext_t;
+
+#elif defined(__aarch64__)
+
+typedef struct sigcontext mcontext_t;
+
+typedef struct ucontext {
+  uint64_t uc_flags;
+  struct ucontext *uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Other fields are not used by V8, don't define them here.
+} ucontext_t;
+
+#elif defined(__mips__)
+// MIPS version of sigcontext, for Android bionic.
+typedef struct {
+  uint32_t regmask;
+  uint32_t status;
+  uint64_t pc;
+  uint64_t gregs[32];
+  uint64_t fpregs[32];
+  uint32_t acx;
+  uint32_t fpc_csr;
+  uint32_t fpc_eir;
+  uint32_t used_math;
+  uint32_t dsp;
+  uint64_t mdhi;
+  uint64_t mdlo;
+  uint32_t hi1;
+  uint32_t lo1;
+  uint32_t hi2;
+  uint32_t lo2;
+  uint32_t hi3;
+  uint32_t lo3;
+} mcontext_t;
+
+typedef struct ucontext {
+  uint32_t uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Other fields are not used by V8, don't define them here.
+} ucontext_t;
+
+#elif defined(__i386__)
+// x86 version for Android.
+typedef struct {
+  uint32_t gregs[19];
+  void* fpregs;
+  uint32_t oldmask;
+  uint32_t cr2;
+} mcontext_t;
+
+typedef uint32_t kernel_sigset_t[2];  // x86 kernel uses 64-bit signal masks
+typedef struct ucontext {
+  uint32_t uc_flags;
+  struct ucontext* uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Other fields are not used by V8, don't define them here.
+} ucontext_t;
+enum { REG_EBP = 6, REG_ESP = 7, REG_EIP = 14 };
+
+#elif defined(__x86_64__)
+// x64 version for Android.
+typedef struct {
+  uint64_t gregs[23];
+  void* fpregs;
+  uint64_t __reserved1[8];
+} mcontext_t;
+
+typedef struct ucontext {
+  uint64_t uc_flags;
+  struct ucontext *uc_link;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  // Other fields are not used by V8, don't define them here.
+} ucontext_t;
+enum { REG_RBP = 10, REG_RSP = 15, REG_RIP = 16 };
+#endif
+
+#endif  // V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T)
+
+
+namespace v8 {
+namespace sampler {
+
+namespace {
+
+#if defined(USE_SIGNALS)
+typedef std::vector<Sampler*> SamplerList;
+typedef SamplerList::iterator SamplerListIterator;
+typedef base::AtomicValue<bool> AtomicMutex;
+
+class AtomicGuard {
+ public:
+  explicit AtomicGuard(AtomicMutex* atomic, bool is_blocking = true)
+      : atomic_(atomic), is_success_(false) {
+    do {
+      // Use Acquire_Load to gain mutual exclusion.
+      USE(atomic_->Value());
+      is_success_ = atomic_->TrySetValue(false, true);
+    } while (is_blocking && !is_success_);
+  }
+
+  bool is_success() const { return is_success_; }
+
+  ~AtomicGuard() {
+    if (!is_success_) return;
+    atomic_->SetValue(false);
+  }
+
+ private:
+  AtomicMutex* const 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)
+
+class Sampler::PlatformData {
+ public:
+  PlatformData() : vm_tid_(pthread_self()) {}
+  pthread_t vm_tid() const { return vm_tid_; }
+
+ private:
+  pthread_t vm_tid_;
+};
+
+class SamplerManager {
+ public:
+  SamplerManager() : sampler_map_(base::HashMap::PointersMatch) {}
+
+  void AddSampler(Sampler* sampler) {
+    AtomicGuard atomic_guard(&samplers_access_counter_);
+    DCHECK(sampler->IsActive() || !sampler->IsRegistered());
+    // Add sampler into map if needed.
+    pthread_t thread_id = sampler->platform_data()->vm_tid();
+    base::HashMap::Entry* entry =
+            sampler_map_.LookupOrInsert(ThreadKey(thread_id),
+                                        ThreadHash(thread_id));
+    DCHECK(entry != nullptr);
+    if (entry->value == nullptr) {
+      SamplerList* samplers = new SamplerList();
+      samplers->push_back(sampler);
+      entry->value = samplers;
+    } else {
+      SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
+      bool exists = false;
+      for (SamplerListIterator iter = samplers->begin();
+           iter != samplers->end(); ++iter) {
+        if (*iter == sampler) {
+          exists = true;
+          break;
+        }
+      }
+      if (!exists) {
+        samplers->push_back(sampler);
+      }
+    }
+  }
+
+  void RemoveSampler(Sampler* sampler) {
+    AtomicGuard atomic_guard(&samplers_access_counter_);
+    DCHECK(sampler->IsActive() || sampler->IsRegistered());
+    // 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);
+    base::HashMap::Entry* entry = sampler_map_.Lookup(thread_key, thread_hash);
+    DCHECK(entry != nullptr);
+    SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
+    for (SamplerListIterator iter = samplers->begin(); iter != samplers->end();
+         ++iter) {
+      if (*iter == sampler) {
+        samplers->erase(iter);
+        break;
+      }
+    }
+    if (samplers->empty()) {
+      sampler_map_.Remove(thread_key, thread_hash);
+      delete samplers;
+    }
+  }
+
+#if defined(USE_SIGNALS)
+  void DoSample(const v8::RegisterState& state) {
+    AtomicGuard atomic_guard(&SamplerManager::samplers_access_counter_, false);
+    if (!atomic_guard.is_success()) return;
+    pthread_t thread_id = pthread_self();
+    base::HashMap::Entry* entry =
+        sampler_map_.Lookup(ThreadKey(thread_id), ThreadHash(thread_id));
+    if (!entry) return;
+    SamplerList& samplers = *static_cast<SamplerList*>(entry->value);
+
+    for (int i = 0; i < samplers.size(); ++i) {
+      Sampler* sampler = samplers[i];
+      Isolate* isolate = sampler->isolate();
+      // We require a fully initialized and entered isolate.
+      if (isolate == nullptr || !isolate->IsInUse()) continue;
+      if (v8::Locker::IsActive() && !Locker::IsLocked(isolate)) continue;
+      sampler->SampleStack(state);
+    }
+  }
+#endif
+
+  static SamplerManager* instance() { return instance_.Pointer(); }
+
+ private:
+  base::HashMap sampler_map_;
+  static AtomicMutex samplers_access_counter_;
+  static base::LazyInstance<SamplerManager>::type instance_;
+};
+
+AtomicMutex SamplerManager::samplers_access_counter_;
+base::LazyInstance<SamplerManager>::type SamplerManager::instance_ =
+    LAZY_INSTANCE_INITIALIZER;
+
+#elif V8_OS_WIN || V8_OS_CYGWIN
+
+// ----------------------------------------------------------------------------
+// Win32 profiler support. On Cygwin we use the same sampler implementation as
+// on Win32.
+
+class Sampler::PlatformData {
+ public:
+  // Get a handle to the calling thread. This is the thread that we are
+  // going to profile. We need to make a copy of the handle because we are
+  // going to use it in the sampler thread. Using GetThreadHandle() will
+  // not work in this case. We're using OpenThread because DuplicateHandle
+  // for some reason doesn't work in Chrome's sandbox.
+  PlatformData()
+      : profiled_thread_(OpenThread(THREAD_GET_CONTEXT |
+                                    THREAD_SUSPEND_RESUME |
+                                    THREAD_QUERY_INFORMATION,
+                                    false,
+                                    GetCurrentThreadId())) {}
+
+  ~PlatformData() {
+    if (profiled_thread_ != nullptr) {
+      CloseHandle(profiled_thread_);
+      profiled_thread_ = nullptr;
+    }
+  }
+
+  HANDLE profiled_thread() { return profiled_thread_; }
+
+ private:
+  HANDLE profiled_thread_;
+};
+#endif  // USE_SIGNALS
+
+
+#if defined(USE_SIGNALS)
+class SignalHandler {
+ public:
+  static void SetUp() { if (!mutex_) mutex_ = new base::Mutex(); }
+  static void TearDown() {
+    delete mutex_;
+    mutex_ = nullptr;
+  }
+
+  static void IncreaseSamplerCount() {
+    base::LockGuard<base::Mutex> lock_guard(mutex_);
+    if (++client_count_ == 1) Install();
+  }
+
+  static void DecreaseSamplerCount() {
+    base::LockGuard<base::Mutex> lock_guard(mutex_);
+    if (--client_count_ == 0) Restore();
+  }
+
+  static bool Installed() {
+    base::LockGuard<base::Mutex> lock_guard(mutex_);
+    return signal_handler_installed_;
+  }
+
+ private:
+  static void Install() {
+#if !V8_OS_NACL
+    struct sigaction sa;
+    sa.sa_sigaction = &HandleProfilerSignal;
+    sigemptyset(&sa.sa_mask);
+#if V8_OS_QNX
+    sa.sa_flags = SA_SIGINFO;
+#else
+    sa.sa_flags = SA_RESTART | SA_SIGINFO;
+#endif
+    signal_handler_installed_ =
+        (sigaction(SIGPROF, &sa, &old_signal_handler_) == 0);
+#endif  // !V8_OS_NACL
+  }
+
+  static void Restore() {
+#if !V8_OS_NACL
+    if (signal_handler_installed_) {
+      sigaction(SIGPROF, &old_signal_handler_, 0);
+      signal_handler_installed_ = false;
+    }
+#endif
+  }
+
+#if !V8_OS_NACL
+  static void FillRegisterState(void* context, RegisterState* regs);
+  static void HandleProfilerSignal(int signal, siginfo_t* info, void* context);
+#endif
+  // Protects the process wide state below.
+  static base::Mutex* mutex_;
+  static int client_count_;
+  static bool signal_handler_installed_;
+  static struct sigaction old_signal_handler_;
+};
+
+base::Mutex* SignalHandler::mutex_ = nullptr;
+int SignalHandler::client_count_ = 0;
+struct sigaction SignalHandler::old_signal_handler_;
+bool SignalHandler::signal_handler_installed_ = false;
+
+
+// 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;
+  v8::RegisterState state;
+  FillRegisterState(context, &state);
+  SamplerManager::instance()->DoSample(state);
+}
+
+void SignalHandler::FillRegisterState(void* context, RegisterState* state) {
+  // Extracting the sample from the context is extremely machine dependent.
+  ucontext_t* ucontext = reinterpret_cast<ucontext_t*>(context);
+#if !(V8_OS_OPENBSD || (V8_OS_LINUX && (V8_HOST_ARCH_PPC || V8_HOST_ARCH_S390)))
+  mcontext_t& mcontext = ucontext->uc_mcontext;
+#endif
+#if V8_OS_LINUX
+#if V8_HOST_ARCH_IA32
+  state->pc = reinterpret_cast<void*>(mcontext.gregs[REG_EIP]);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[REG_ESP]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[REG_EBP]);
+#elif V8_HOST_ARCH_X64
+  state->pc = reinterpret_cast<void*>(mcontext.gregs[REG_RIP]);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[REG_RSP]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[REG_RBP]);
+#elif V8_HOST_ARCH_ARM
+#if V8_LIBC_GLIBC && !V8_GLIBC_PREREQ(2, 4)
+  // Old GLibc ARM versions used a gregs[] array to access the register
+  // values from mcontext_t.
+  state->pc = reinterpret_cast<void*>(mcontext.gregs[R15]);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[R13]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[R11]);
+#else
+  state->pc = reinterpret_cast<void*>(mcontext.arm_pc);
+  state->sp = reinterpret_cast<void*>(mcontext.arm_sp);
+  state->fp = reinterpret_cast<void*>(mcontext.arm_fp);
+#endif  // V8_LIBC_GLIBC && !V8_GLIBC_PREREQ(2, 4)
+#elif V8_HOST_ARCH_ARM64
+  state->pc = reinterpret_cast<void*>(mcontext.pc);
+  state->sp = reinterpret_cast<void*>(mcontext.sp);
+  // FP is an alias for x29.
+  state->fp = reinterpret_cast<void*>(mcontext.regs[29]);
+#elif V8_HOST_ARCH_MIPS
+  state->pc = reinterpret_cast<void*>(mcontext.pc);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[29]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[30]);
+#elif V8_HOST_ARCH_MIPS64
+  state->pc = reinterpret_cast<void*>(mcontext.pc);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[29]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[30]);
+#elif V8_HOST_ARCH_PPC
+  state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.regs->nip);
+  state->sp =
+      reinterpret_cast<void*>(ucontext->uc_mcontext.regs->gpr[PT_R1]);
+  state->fp =
+      reinterpret_cast<void*>(ucontext->uc_mcontext.regs->gpr[PT_R31]);
+#elif V8_HOST_ARCH_S390
+#if V8_TARGET_ARCH_32_BIT
+  // 31-bit target will have bit 0 (MSB) of the PSW set to denote addressing
+  // mode.  This bit needs to be masked out to resolve actual address.
+  state->pc =
+      reinterpret_cast<void*>(ucontext->uc_mcontext.psw.addr & 0x7FFFFFFF);
+#else
+  state->pc = reinterpret_cast<void*>(ucontext->uc_mcontext.psw.addr);
+#endif  // V8_TARGET_ARCH_32_BIT
+  state->sp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[15]);
+  state->fp = reinterpret_cast<void*>(ucontext->uc_mcontext.gregs[11]);
+#endif  // V8_HOST_ARCH_*
+#elif V8_OS_MACOSX
+#if V8_HOST_ARCH_X64
+#if __DARWIN_UNIX03
+  state->pc = reinterpret_cast<void*>(mcontext->__ss.__rip);
+  state->sp = reinterpret_cast<void*>(mcontext->__ss.__rsp);
+  state->fp = reinterpret_cast<void*>(mcontext->__ss.__rbp);
+#else  // !__DARWIN_UNIX03
+  state->pc = reinterpret_cast<void*>(mcontext->ss.rip);
+  state->sp = reinterpret_cast<void*>(mcontext->ss.rsp);
+  state->fp = reinterpret_cast<void*>(mcontext->ss.rbp);
+#endif  // __DARWIN_UNIX03
+#elif V8_HOST_ARCH_IA32
+#if __DARWIN_UNIX03
+  state->pc = reinterpret_cast<void*>(mcontext->__ss.__eip);
+  state->sp = reinterpret_cast<void*>(mcontext->__ss.__esp);
+  state->fp = reinterpret_cast<void*>(mcontext->__ss.__ebp);
+#else  // !__DARWIN_UNIX03
+  state->pc = reinterpret_cast<void*>(mcontext->ss.eip);
+  state->sp = reinterpret_cast<void*>(mcontext->ss.esp);
+  state->fp = reinterpret_cast<void*>(mcontext->ss.ebp);
+#endif  // __DARWIN_UNIX03
+#endif  // V8_HOST_ARCH_IA32
+#elif V8_OS_FREEBSD
+#if V8_HOST_ARCH_IA32
+  state->pc = reinterpret_cast<void*>(mcontext.mc_eip);
+  state->sp = reinterpret_cast<void*>(mcontext.mc_esp);
+  state->fp = reinterpret_cast<void*>(mcontext.mc_ebp);
+#elif V8_HOST_ARCH_X64
+  state->pc = reinterpret_cast<void*>(mcontext.mc_rip);
+  state->sp = reinterpret_cast<void*>(mcontext.mc_rsp);
+  state->fp = reinterpret_cast<void*>(mcontext.mc_rbp);
+#elif V8_HOST_ARCH_ARM
+  state->pc = reinterpret_cast<void*>(mcontext.mc_r15);
+  state->sp = reinterpret_cast<void*>(mcontext.mc_r13);
+  state->fp = reinterpret_cast<void*>(mcontext.mc_r11);
+#endif  // V8_HOST_ARCH_*
+#elif V8_OS_NETBSD
+#if V8_HOST_ARCH_IA32
+  state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_EIP]);
+  state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_ESP]);
+  state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_EBP]);
+#elif V8_HOST_ARCH_X64
+  state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_RIP]);
+  state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_RSP]);
+  state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_RBP]);
+#endif  // V8_HOST_ARCH_*
+#elif V8_OS_OPENBSD
+#if V8_HOST_ARCH_IA32
+  state->pc = reinterpret_cast<void*>(ucontext->sc_eip);
+  state->sp = reinterpret_cast<void*>(ucontext->sc_esp);
+  state->fp = reinterpret_cast<void*>(ucontext->sc_ebp);
+#elif V8_HOST_ARCH_X64
+  state->pc = reinterpret_cast<void*>(ucontext->sc_rip);
+  state->sp = reinterpret_cast<void*>(ucontext->sc_rsp);
+  state->fp = reinterpret_cast<void*>(ucontext->sc_rbp);
+#endif  // V8_HOST_ARCH_*
+#elif V8_OS_SOLARIS
+  state->pc = reinterpret_cast<void*>(mcontext.gregs[REG_PC]);
+  state->sp = reinterpret_cast<void*>(mcontext.gregs[REG_SP]);
+  state->fp = reinterpret_cast<void*>(mcontext.gregs[REG_FP]);
+#elif V8_OS_QNX
+#if V8_HOST_ARCH_IA32
+  state->pc = reinterpret_cast<void*>(mcontext.cpu.eip);
+  state->sp = reinterpret_cast<void*>(mcontext.cpu.esp);
+  state->fp = reinterpret_cast<void*>(mcontext.cpu.ebp);
+#elif V8_HOST_ARCH_ARM
+  state->pc = reinterpret_cast<void*>(mcontext.cpu.gpr[ARM_REG_PC]);
+  state->sp = reinterpret_cast<void*>(mcontext.cpu.gpr[ARM_REG_SP]);
+  state->fp = reinterpret_cast<void*>(mcontext.cpu.gpr[ARM_REG_FP]);
+#endif  // V8_HOST_ARCH_*
+#elif V8_OS_AIX
+  state->pc = reinterpret_cast<void*>(mcontext.jmp_context.iar);
+  state->sp = reinterpret_cast<void*>(mcontext.jmp_context.gpr[1]);
+  state->fp = reinterpret_cast<void*>(mcontext.jmp_context.gpr[31]);
+#endif  // V8_OS_AIX
+}
+
+#endif  // !V8_OS_NACL
+
+#endif  // USE_SIGNALS
+
+
+void Sampler::SetUp() {
+#if defined(USE_SIGNALS)
+  SignalHandler::SetUp();
+#endif
+}
+
+
+void Sampler::TearDown() {
+#if defined(USE_SIGNALS)
+  SignalHandler::TearDown();
+#endif
+}
+
+Sampler::Sampler(Isolate* isolate)
+    : is_counting_samples_(false),
+      js_sample_count_(0),
+      external_sample_count_(0),
+      isolate_(isolate),
+      profiling_(false),
+      has_processing_thread_(false),
+      active_(false),
+      registered_(false) {
+  data_ = new PlatformData;
+}
+
+Sampler::~Sampler() {
+  DCHECK(!IsActive());
+#if defined(USE_SIGNALS)
+  if (IsRegistered()) {
+    SamplerManager::instance()->RemoveSampler(this);
+  }
+#endif
+  delete data_;
+}
+
+void Sampler::Start() {
+  DCHECK(!IsActive());
+  SetActive(true);
+#if defined(USE_SIGNALS)
+  SamplerManager::instance()->AddSampler(this);
+#endif
+}
+
+
+void Sampler::Stop() {
+#if defined(USE_SIGNALS)
+  SamplerManager::instance()->RemoveSampler(this);
+#endif
+  DCHECK(IsActive());
+  SetActive(false);
+  SetRegistered(false);
+}
+
+
+void Sampler::IncreaseProfilingDepth() {
+  base::NoBarrier_AtomicIncrement(&profiling_, 1);
+#if defined(USE_SIGNALS)
+  SignalHandler::IncreaseSamplerCount();
+#endif
+}
+
+
+void Sampler::DecreaseProfilingDepth() {
+#if defined(USE_SIGNALS)
+  SignalHandler::DecreaseSamplerCount();
+#endif
+  base::NoBarrier_AtomicIncrement(&profiling_, -1);
+}
+
+
+#if defined(USE_SIGNALS)
+
+void Sampler::DoSample() {
+  if (!SignalHandler::Installed()) return;
+  if (!IsActive() && !IsRegistered()) {
+    SamplerManager::instance()->AddSampler(this);
+    SetRegistered(true);
+  }
+  pthread_kill(platform_data()->vm_tid(), SIGPROF);
+}
+
+#elif V8_OS_WIN || V8_OS_CYGWIN
+
+void Sampler::DoSample() {
+  HANDLE profiled_thread = platform_data()->profiled_thread();
+  if (profiled_thread == nullptr) return;
+
+  const DWORD kSuspendFailed = static_cast<DWORD>(-1);
+  if (SuspendThread(profiled_thread) == kSuspendFailed) return;
+
+  // Context used for sampling the register state of the profiled thread.
+  CONTEXT context;
+  memset(&context, 0, sizeof(context));
+  context.ContextFlags = CONTEXT_FULL;
+  if (GetThreadContext(profiled_thread, &context) != 0) {
+    v8::RegisterState state;
+#if V8_HOST_ARCH_X64
+    state.pc = reinterpret_cast<void*>(context.Rip);
+    state.sp = reinterpret_cast<void*>(context.Rsp);
+    state.fp = reinterpret_cast<void*>(context.Rbp);
+#else
+    state.pc = reinterpret_cast<void*>(context.Eip);
+    state.sp = reinterpret_cast<void*>(context.Esp);
+    state.fp = reinterpret_cast<void*>(context.Ebp);
+#endif
+    SampleStack(state);
+  }
+  ResumeThread(profiled_thread);
+}
+
+#endif  // USE_SIGNALS
+
+}  // namespace sampler
+}  // namespace v8
diff --git a/src/profiler/sampler.h b/src/libsampler/v8-sampler.h
similarity index 79%
rename from src/profiler/sampler.h
rename to src/libsampler/v8-sampler.h
index 3d3a6e9..7ae3c8c 100644
--- a/src/profiler/sampler.h
+++ b/src/libsampler/v8-sampler.h
@@ -1,9 +1,9 @@
-// Copyright 2013 the V8 project authors. All rights reserved.
+// 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_PROFILER_SAMPLER_H_
-#define V8_PROFILER_SAMPLER_H_
+#ifndef V8_LIBSAMPLER_SAMPLER_H_
+#define V8_LIBSAMPLER_SAMPLER_H_
 
 #include "include/v8.h"
 
@@ -11,10 +11,7 @@
 #include "src/base/macros.h"
 
 namespace v8 {
-namespace internal {
-
-class Isolate;
-struct TickSample;
+namespace sampler {
 
 // ----------------------------------------------------------------------------
 // Sampler
@@ -25,19 +22,23 @@
 
 class Sampler {
  public:
+  static const int kMaxFramesCountLog2 = 8;
+  static const unsigned kMaxFramesCount = (1u << kMaxFramesCountLog2) - 1;
+
   // Initializes the Sampler support. Called once at VM startup.
   static void SetUp();
   static void TearDown();
 
   // Initialize sampler.
-  Sampler(Isolate* isolate, int interval);
+  explicit Sampler(Isolate* isolate);
   virtual ~Sampler();
 
   Isolate* isolate() const { return isolate_; }
-  int interval() const { return interval_; }
 
   // Performs stack sampling.
-  void SampleStack(const v8::RegisterState& regs);
+  // Clients should override this method in order to do something on samples,
+  // for example buffer samples in a queue.
+  virtual void SampleStack(const v8::RegisterState& regs) = 0;
 
   // Start and stop sampler.
   void Start();
@@ -60,8 +61,7 @@
   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.
+
   void SetHasProcessingThread(bool value) {
     base::NoBarrier_Store(&has_processing_thread_, value);
   }
@@ -79,30 +79,25 @@
   PlatformData* platform_data() const { return data_; }
 
  protected:
-  // This method is called for each sampling period with the current
-  // program counter.
-  virtual void Tick(TickSample* sample) = 0;
+  // Counts stack samples taken in various VM states.
+  bool is_counting_samples_;
+  unsigned js_sample_count_;
+  unsigned external_sample_count_;
 
  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_;
-  unsigned js_sample_count_;
-  unsigned external_sample_count_;
   DISALLOW_IMPLICIT_CONSTRUCTORS(Sampler);
 };
 
-}  // namespace internal
+}  // namespace sampler
 }  // namespace v8
 
-#endif  // V8_PROFILER_SAMPLER_H_
+#endif  // V8_LIBSAMPLER_SAMPLER_H_
diff --git a/src/log-inl.h b/src/log-inl.h
index 765398f..b986597 100644
--- a/src/log-inl.h
+++ b/src/log-inl.h
@@ -13,25 +13,24 @@
 namespace v8 {
 namespace internal {
 
-Logger::LogEventsAndTags Logger::ToNativeByScript(Logger::LogEventsAndTags tag,
-                                                  Script* script) {
-  if ((tag == FUNCTION_TAG || tag == LAZY_COMPILE_TAG || tag == SCRIPT_TAG) &&
-      script->type() == Script::TYPE_NATIVE) {
-    switch (tag) {
-      case FUNCTION_TAG: return NATIVE_FUNCTION_TAG;
-      case LAZY_COMPILE_TAG: return NATIVE_LAZY_COMPILE_TAG;
-      case SCRIPT_TAG: return NATIVE_SCRIPT_TAG;
-      default: return tag;
-    }
-  } else {
-    return tag;
+CodeEventListener::LogEventsAndTags Logger::ToNativeByScript(
+    CodeEventListener::LogEventsAndTags tag, Script* script) {
+  if (script->type() != Script::TYPE_NATIVE) return tag;
+  switch (tag) {
+    case CodeEventListener::FUNCTION_TAG:
+      return CodeEventListener::NATIVE_FUNCTION_TAG;
+    case CodeEventListener::LAZY_COMPILE_TAG:
+      return CodeEventListener::NATIVE_LAZY_COMPILE_TAG;
+    case CodeEventListener::SCRIPT_TAG:
+      return CodeEventListener::NATIVE_SCRIPT_TAG;
+    default:
+      return tag;
   }
 }
 
-
 void Logger::CallEventLogger(Isolate* isolate, const char* name, StartEnd se,
                              bool expose_to_api) {
-  if (isolate->event_logger() != NULL) {
+  if (isolate->event_logger()) {
     if (isolate->event_logger() == DefaultEventLoggerSentinel) {
       LOG(isolate, TimerEvent(se, name));
     } else if (expose_to_api) {
@@ -39,6 +38,7 @@
     }
   }
 }
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/log-utils.cc b/src/log-utils.cc
index a83a0ae..22972ec 100644
--- a/src/log-utils.cc
+++ b/src/log-utils.cc
@@ -164,12 +164,14 @@
   }
 }
 
-void Log::MessageBuilder::AppendAddress(Address addr) { Append("%p", addr); }
+void Log::MessageBuilder::AppendAddress(Address addr) {
+  Append("%p", static_cast<void*>(addr));
+}
 
 void Log::MessageBuilder::AppendSymbolName(Symbol* symbol) {
   DCHECK(symbol);
   Append("symbol(");
-  if (!symbol->name()->IsUndefined()) {
+  if (!symbol->name()->IsUndefined(symbol->GetIsolate())) {
     Append("\"");
     AppendDetailed(String::cast(symbol->name()), false);
     Append("\" ");
diff --git a/src/log.cc b/src/log.cc
index 97acea9..43c3981 100644
--- a/src/log.cc
+++ b/src/log.cc
@@ -11,15 +11,18 @@
 #include "src/base/platform/platform.h"
 #include "src/bootstrapper.h"
 #include "src/code-stubs.h"
+#include "src/counters.h"
 #include "src/deoptimizer.h"
 #include "src/global-handles.h"
 #include "src/interpreter/bytecodes.h"
 #include "src/interpreter/interpreter.h"
+#include "src/libsampler/v8-sampler.h"
 #include "src/log-inl.h"
 #include "src/log-utils.h"
 #include "src/macro-assembler.h"
 #include "src/perf-jit.h"
-#include "src/profiler/cpu-profiler.h"
+#include "src/profiler/cpu-profiler-inl.h"
+#include "src/profiler/profiler-listener.h"
 #include "src/runtime-profiler.h"
 #include "src/string-stream.h"
 #include "src/vm-state-inl.h"
@@ -29,25 +32,10 @@
 
 
 #define DECLARE_EVENT(ignore1, name) name,
-static const char* const kLogEventsNames[Logger::NUMBER_OF_LOG_EVENTS] = {
-  LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)
-};
+static const char* kLogEventsNames[CodeEventListener::NUMBER_OF_LOG_EVENTS] = {
+    LOG_EVENTS_AND_TAGS_LIST(DECLARE_EVENT)};
 #undef DECLARE_EVENT
 
-
-#define CALL_LISTENERS(Call)                    \
-for (int i = 0; i < listeners_.length(); ++i) { \
-  listeners_[i]->Call;                          \
-}
-
-#define PROFILER_LOG(Call)                                \
-  do {                                                    \
-    CpuProfiler* cpu_profiler = isolate_->cpu_profiler(); \
-    if (cpu_profiler->is_profiling()) {                   \
-      cpu_profiler->Call;                                 \
-    }                                                     \
-  } while (false);
-
 static const char* ComputeMarker(SharedFunctionInfo* shared,
                                  AbstractCode* code) {
   switch (code->kind()) {
@@ -70,7 +58,7 @@
     utf8_pos_ = 0;
   }
 
-  void Init(Logger::LogEventsAndTags tag) {
+  void Init(CodeEventListener::LogEventsAndTags tag) {
     Reset();
     AppendBytes(kLogEventsNames[tag]);
     AppendByte(':');
@@ -82,7 +70,7 @@
     } else {
       Symbol* symbol = Symbol::cast(name);
       AppendBytes("symbol(");
-      if (!symbol->name()->IsUndefined()) {
+      if (!symbol->name()->IsUndefined(symbol->GetIsolate())) {
         AppendBytes("\"");
         AppendString(String::cast(symbol->name()));
         AppendBytes("\" ");
@@ -164,21 +152,21 @@
 
 CodeEventLogger::~CodeEventLogger() { delete name_buffer_; }
 
-void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
+void CodeEventLogger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
                                       AbstractCode* code, const char* comment) {
   name_buffer_->Init(tag);
   name_buffer_->AppendBytes(comment);
   LogRecordedBuffer(code, NULL, name_buffer_->get(), name_buffer_->size());
 }
 
-void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
+void CodeEventLogger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
                                       AbstractCode* code, Name* name) {
   name_buffer_->Init(tag);
   name_buffer_->AppendName(name);
   LogRecordedBuffer(code, NULL, name_buffer_->get(), name_buffer_->size());
 }
 
-void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
+void CodeEventLogger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
                                       AbstractCode* code,
                                       SharedFunctionInfo* shared, Name* name) {
   name_buffer_->Init(tag);
@@ -187,7 +175,7 @@
   LogRecordedBuffer(code, shared, name_buffer_->get(), name_buffer_->size());
 }
 
-void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
+void CodeEventLogger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
                                       AbstractCode* code,
                                       SharedFunctionInfo* shared, Name* source,
                                       int line, int column) {
@@ -207,7 +195,7 @@
   LogRecordedBuffer(code, shared, name_buffer_->get(), name_buffer_->size());
 }
 
-void CodeEventLogger::CodeCreateEvent(Logger::LogEventsAndTags tag,
+void CodeEventLogger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
                                       AbstractCode* code, int args_count) {
   name_buffer_->Init(tag);
   name_buffer_->AppendInt(args_count);
@@ -216,7 +204,7 @@
 
 void CodeEventLogger::RegExpCodeCreateEvent(AbstractCode* code,
                                             String* source) {
-  name_buffer_->Init(Logger::REG_EXP_TAG);
+  name_buffer_->Init(CodeEventListener::REG_EXP_TAG);
   name_buffer_->AppendString(source);
   LogRecordedBuffer(code, NULL, name_buffer_->get(), name_buffer_->size());
 }
@@ -240,10 +228,6 @@
   static const char kFilenameFormatString[];
   static const int kFilenameBufferPadding;
 
-  // File buffer size of the low-level log. We don't use the default to
-  // minimize the associated overhead.
-  static const int kLogBufferSize = 2 * MB;
-
   FILE* perf_output_handle_;
 };
 
@@ -264,7 +248,7 @@
   perf_output_handle_ =
       base::OS::FOpen(perf_dump_name.start(), base::OS::LogFileOpenMode);
   CHECK_NOT_NULL(perf_output_handle_);
-  setvbuf(perf_output_handle_, NULL, _IOFBF, kLogBufferSize);
+  setvbuf(perf_output_handle_, NULL, _IOLBF, 0);
 }
 
 
@@ -335,10 +319,6 @@
   // Extension added to V8 log file name to get the low-level log name.
   static const char kLogExt[];
 
-  // File buffer size of the low-level log. We don't use the default to
-  // minimize the associated overhead.
-  static const int kLogBufferSize = 2 * MB;
-
   void LogCodeInfo();
   void LogWriteBytes(const char* bytes, int size);
 
@@ -363,7 +343,7 @@
   MemCopy(ll_name.start() + len, kLogExt, sizeof(kLogExt));
   ll_output_handle_ =
       base::OS::FOpen(ll_name.start(), base::OS::LogFileOpenMode);
-  setvbuf(ll_output_handle_, NULL, _IOFBF, kLogBufferSize);
+  setvbuf(ll_output_handle_, NULL, _IOLBF, 0);
 
   LogCodeInfo();
 }
@@ -539,6 +519,31 @@
 }
 
 
+// TODO(lpy): Keeping sampling thread inside V8 is a workaround currently,
+// the reason is to reduce code duplication during migration to sampler library,
+// sampling thread, as well as the sampler, will be moved to D8 eventually.
+class SamplingThread : public base::Thread {
+ public:
+  static const int kSamplingThreadStackSize = 64 * KB;
+
+  SamplingThread(sampler::Sampler* sampler, int interval)
+      : base::Thread(base::Thread::Options("SamplingThread",
+                                           kSamplingThreadStackSize)),
+        sampler_(sampler),
+        interval_(interval) {}
+  void Run() override {
+    while (sampler_->IsProfiling()) {
+      sampler_->DoSample();
+      base::OS::Sleep(base::TimeDelta::FromMilliseconds(interval_));
+    }
+  }
+
+ private:
+  sampler::Sampler* sampler_;
+  const int interval_;
+};
+
+
 // The Profiler samples pc and sp values for the main thread.
 // Each sample is appended to a circular buffer.
 // An independent thread removes data and writes it to the log.
@@ -611,16 +616,16 @@
 // Ticker used to provide ticks to the profiler and the sliding state
 // window.
 //
-class Ticker: public Sampler {
+class Ticker: public sampler::Sampler {
  public:
   Ticker(Isolate* isolate, int interval):
-      Sampler(isolate, interval),
-      profiler_(NULL) {}
+      sampler::Sampler(reinterpret_cast<v8::Isolate*>(isolate)),
+      profiler_(NULL),
+      sampling_thread_(new SamplingThread(this, interval)) {}
 
-  ~Ticker() { if (IsActive()) Stop(); }
-
-  virtual void Tick(TickSample* sample) {
-    if (profiler_) profiler_->Insert(sample);
+  ~Ticker() {
+    if (IsActive()) Stop();
+    delete sampling_thread_;
   }
 
   void SetProfiler(Profiler* profiler) {
@@ -628,16 +633,40 @@
     profiler_ = profiler;
     IncreaseProfilingDepth();
     if (!IsActive()) Start();
+    sampling_thread_->StartSynchronously();
   }
 
   void ClearProfiler() {
     profiler_ = NULL;
     if (IsActive()) Stop();
     DecreaseProfilingDepth();
+    sampling_thread_->Join();
+  }
+
+  void SampleStack(const v8::RegisterState& state) override {
+    v8::Isolate* v8_isolate = isolate();
+    Isolate* isolate = reinterpret_cast<Isolate*>(v8_isolate);
+#if defined(USE_SIMULATOR)
+    SimulatorHelper::FillRegisters(isolate,
+                                   const_cast<v8::RegisterState*>(&state));
+#endif
+    TickSample* sample = isolate->cpu_profiler()->StartTickSample();
+    TickSample sample_obj;
+    if (sample == NULL) sample = &sample_obj;
+    sample->Init(isolate, state, TickSample::kIncludeCEntryFrame, true);
+    if (is_counting_samples_ && !sample->timestamp.IsNull()) {
+      if (sample->state == JS) ++js_sample_count_;
+      if (sample->state == EXTERNAL) ++external_sample_count_;
+    }
+    if (profiler_) profiler_->Insert(sample);
+    if (sample != &sample_obj) {
+      isolate->cpu_profiler()->FinishTickSample();
+    }
   }
 
  private:
   Profiler* profiler_;
+  SamplingThread* sampling_thread_;
 };
 
 
@@ -733,24 +762,16 @@
   delete log_;
 }
 
-
 void Logger::addCodeEventListener(CodeEventListener* listener) {
-  DCHECK(!hasCodeEventListener(listener));
-  listeners_.Add(listener);
+  bool result = isolate_->code_event_dispatcher()->AddListener(listener);
+  USE(result);
+  DCHECK(result);
 }
 
-
 void Logger::removeCodeEventListener(CodeEventListener* listener) {
-  DCHECK(hasCodeEventListener(listener));
-  listeners_.RemoveElement(listener);
+  isolate_->code_event_dispatcher()->RemoveListener(listener);
 }
 
-
-bool Logger::hasCodeEventListener(CodeEventListener* listener) {
-  return listeners_.Contains(listener);
-}
-
-
 void Logger::ProfilerBeginEvent() {
   if (!log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
@@ -801,7 +822,7 @@
 void Logger::HandleEvent(const char* name, Object** location) {
   if (!log_->IsEnabled() || !FLAG_log_handles) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,%p", name, location);
+  msg.Append("%s,%p", name, static_cast<void*>(location));
   msg.WriteToLogFile();
 }
 
@@ -838,7 +859,6 @@
 
 
 void Logger::CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) {
-  PROFILER_LOG(CodeDeoptEvent(code, pc, fp_to_sp_delta));
   if (!log_->IsEnabled() || !FLAG_log_internal_timer_events) return;
   Log::MessageBuilder msg(log_);
   int since_epoch = static_cast<int>(timer_.Elapsed().InMicroseconds());
@@ -926,19 +946,19 @@
   // global flag
   Handle<Object> global =
       JSReceiver::GetProperty(isolate, regexp, "global").ToHandleChecked();
-  if (global->IsTrue()) {
+  if (global->IsTrue(isolate)) {
     msg->Append('g');
   }
   // ignorecase flag
   Handle<Object> ignorecase =
       JSReceiver::GetProperty(isolate, regexp, "ignoreCase").ToHandleChecked();
-  if (ignorecase->IsTrue()) {
+  if (ignorecase->IsTrue(isolate)) {
     msg->Append('i');
   }
   // multiline flag
   Handle<Object> multiline =
       JSReceiver::GetProperty(isolate, regexp, "multiline").ToHandleChecked();
-  if (multiline->IsTrue()) {
+  if (multiline->IsTrue(isolate)) {
     msg->Append('m');
   }
 }
@@ -971,7 +991,7 @@
   } else {
     Symbol* symbol = Symbol::cast(name);
     uint32_t hash = symbol->Hash();
-    if (symbol->name()->IsUndefined()) {
+    if (symbol->name()->IsUndefined(symbol->GetIsolate())) {
       ApiEvent("api,%s,\"%s\",symbol(hash %x)", tag, class_name.get(), hash);
     } else {
       base::SmartArrayPointer<char> str =
@@ -1030,8 +1050,8 @@
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   msg.Append("%s,%s,-2,",
-             kLogEventsNames[CODE_CREATION_EVENT],
-             kLogEventsNames[CALLBACK_TAG]);
+             kLogEventsNames[CodeEventListener::CODE_CREATION_EVENT],
+             kLogEventsNames[CodeEventListener::CALLBACK_TAG]);
   msg.AppendAddress(entry_point);
   if (name->IsString()) {
     base::SmartArrayPointer<char> str =
@@ -1039,7 +1059,7 @@
     msg.Append(",1,\"%s%s\"", prefix, str.get());
   } else {
     Symbol* symbol = Symbol::cast(name);
-    if (symbol->name()->IsUndefined()) {
+    if (symbol->name()->IsUndefined(symbol->GetIsolate())) {
       msg.Append(",1,symbol(hash %x)", symbol->Hash());
     } else {
       base::SmartArrayPointer<char> str =
@@ -1054,41 +1074,33 @@
 
 
 void Logger::CallbackEvent(Name* name, Address entry_point) {
-  PROFILER_LOG(CallbackEvent(name, entry_point));
   CallbackEventInternal("", name, entry_point);
 }
 
 
 void Logger::GetterCallbackEvent(Name* name, Address entry_point) {
-  PROFILER_LOG(GetterCallbackEvent(name, entry_point));
   CallbackEventInternal("get ", name, entry_point);
 }
 
 
 void Logger::SetterCallbackEvent(Name* name, Address entry_point) {
-  PROFILER_LOG(SetterCallbackEvent(name, entry_point));
   CallbackEventInternal("set ", name, entry_point);
 }
 
 static void AppendCodeCreateHeader(Log::MessageBuilder* msg,
-                                   Logger::LogEventsAndTags tag,
+                                   CodeEventListener::LogEventsAndTags tag,
                                    AbstractCode* code) {
   DCHECK(msg);
   msg->Append("%s,%s,%d,",
-              kLogEventsNames[Logger::CODE_CREATION_EVENT],
-              kLogEventsNames[tag],
-              code->kind());
+              kLogEventsNames[CodeEventListener::CODE_CREATION_EVENT],
+              kLogEventsNames[tag], code->kind());
   msg->AppendAddress(code->address());
   msg->Append(",%d,", code->ExecutableSize());
 }
 
-void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             const char* comment) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, comment));
-
+void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                             AbstractCode* code, const char* comment) {
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, comment));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   AppendCodeCreateHeader(&msg, tag, code);
@@ -1096,13 +1108,9 @@
   msg.WriteToLogFile();
 }
 
-void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             Name* name) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, name));
-
+void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                             AbstractCode* code, Name* name) {
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, name));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   AppendCodeCreateHeader(&msg, tag, code);
@@ -1116,13 +1124,10 @@
   msg.WriteToLogFile();
 }
 
-void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             SharedFunctionInfo* shared, Name* name) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, shared, name));
-
+void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                             AbstractCode* code, SharedFunctionInfo* shared,
+                             Name* name) {
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, name));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   if (code == AbstractCode::cast(
                   isolate_->builtins()->builtin(Builtins::kCompileLazy))) {
@@ -1148,14 +1153,10 @@
 // Although, it is possible to extract source and line from
 // 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, Name* source, int line,
-                             int column) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, shared, source, line, column));
-
+void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                             AbstractCode* code, SharedFunctionInfo* shared,
+                             Name* source, int line, int column) {
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, shared, source, line, column));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   AppendCodeCreateHeader(&msg, tag, code);
@@ -1175,13 +1176,9 @@
   msg.WriteToLogFile();
 }
 
-void Logger::CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                             int args_count) {
-  PROFILER_LOG(CodeCreateEvent(tag, code, args_count));
-
+void Logger::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                             AbstractCode* code, int args_count) {
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeCreateEvent(tag, code, args_count));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   AppendCodeCreateHeader(&msg, tag, code);
@@ -1191,14 +1188,10 @@
 
 void Logger::CodeDisableOptEvent(AbstractCode* code,
                                  SharedFunctionInfo* shared) {
-  PROFILER_LOG(CodeDisableOptEvent(code, shared));
-
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeDisableOptEvent(code, shared));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,", kLogEventsNames[CODE_DISABLE_OPT_EVENT]);
+  msg.Append("%s,", kLogEventsNames[CodeEventListener::CODE_DISABLE_OPT_EVENT]);
   base::SmartArrayPointer<char> name =
       shared->DebugName()->ToCString(DISALLOW_NULLS, ROBUST_STRING_TRAVERSAL);
   msg.Append("\"%s\",", name.get());
@@ -1208,23 +1201,16 @@
 
 
 void Logger::CodeMovingGCEvent() {
-  PROFILER_LOG(CodeMovingGCEvent());
-
   if (!is_logging_code_events()) return;
   if (!log_->IsEnabled() || !FLAG_ll_prof) return;
-  CALL_LISTENERS(CodeMovingGCEvent());
   base::OS::SignalCodeMovingGC();
 }
 
 void Logger::RegExpCodeCreateEvent(AbstractCode* code, String* source) {
-  PROFILER_LOG(RegExpCodeCreateEvent(code, source));
-
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(RegExpCodeCreateEvent(code, source));
-
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
-  AppendCodeCreateHeader(&msg, REG_EXP_TAG, code);
+  AppendCodeCreateHeader(&msg, CodeEventListener::REG_EXP_TAG, code);
   msg.Append('"');
   msg.AppendDetailed(source, false);
   msg.Append('"');
@@ -1232,11 +1218,8 @@
 }
 
 void Logger::CodeMoveEvent(AbstractCode* from, Address to) {
-  PROFILER_LOG(CodeMoveEvent(from, to));
-
   if (!is_logging_code_events()) return;
-  CALL_LISTENERS(CodeMoveEvent(from, to));
-  MoveEventInternal(CODE_MOVE_EVENT, from->address(), to);
+  MoveEventInternal(CodeEventListener::CODE_MOVE_EVENT, from->address(), to);
 }
 
 void Logger::CodeLinePosInfoAddPositionEvent(void* jit_handler_data,
@@ -1273,7 +1256,8 @@
 void Logger::CodeNameEvent(Address addr, int pos, const char* code_name) {
   if (code_name == NULL) return;  // Not a code object.
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,%d,", kLogEventsNames[SNAPSHOT_CODE_NAME_EVENT], pos);
+  msg.Append("%s,%d,",
+             kLogEventsNames[CodeEventListener::SNAPSHOT_CODE_NAME_EVENT], pos);
   msg.AppendDoubleQuotedString(code_name);
   msg.WriteToLogFile();
 }
@@ -1281,13 +1265,11 @@
 
 void Logger::SharedFunctionInfoMoveEvent(Address from, Address to) {
   if (!is_logging_code_events()) return;
-  MoveEventInternal(SHARED_FUNC_MOVE_EVENT, from, to);
+  MoveEventInternal(CodeEventListener::SHARED_FUNC_MOVE_EVENT, from, to);
 }
 
-
-void Logger::MoveEventInternal(LogEventsAndTags event,
-                               Address from,
-                               Address to) {
+void Logger::MoveEventInternal(CodeEventListener::LogEventsAndTags event,
+                               Address from, Address to) {
   if (!FLAG_log_code || !log_->IsEnabled()) return;
   Log::MessageBuilder msg(log_);
   msg.Append("%s,", kLogEventsNames[event]);
@@ -1381,11 +1363,25 @@
   msg.WriteToLogFile();
 }
 
+void Logger::RuntimeCallTimerEvent() {
+  RuntimeCallStats* stats = isolate_->counters()->runtime_call_stats();
+  RuntimeCallTimer* timer = stats->current_timer();
+  if (timer == nullptr) return;
+  RuntimeCallCounter* counter = timer->counter();
+  if (counter == nullptr) return;
+  Log::MessageBuilder msg(log_);
+  msg.Append("active-runtime-timer,");
+  msg.AppendDoubleQuotedString(counter->name);
+  msg.WriteToLogFile();
+}
 
 void Logger::TickEvent(TickSample* sample, bool overflow) {
   if (!log_->IsEnabled() || !FLAG_prof_cpp) return;
+  if (FLAG_runtime_call_stats) {
+    RuntimeCallTimerEvent();
+  }
   Log::MessageBuilder msg(log_);
-  msg.Append("%s,", kLogEventsNames[TICK_EVENT]);
+  msg.Append("%s,", kLogEventsNames[CodeEventListener::TICK_EVENT]);
   msg.AppendAddress(sample->pc);
   msg.Append(",%d", static_cast<int>(timer_.Elapsed().InMicroseconds()));
   if (sample->has_external_callback) {
@@ -1412,6 +1408,7 @@
   if (profiler_ != NULL) {
     profiler_->pause();
     is_logging_ = false;
+    removeCodeEventListener(this);
   }
 }
 
@@ -1493,7 +1490,7 @@
 
 void Logger::LogCodeObject(Object* object) {
   AbstractCode* code_object = AbstractCode::cast(object);
-  LogEventsAndTags tag = Logger::STUB_TAG;
+  CodeEventListener::LogEventsAndTags tag = CodeEventListener::STUB_TAG;
   const char* description = "Unknown code from the snapshot";
   switch (code_object->kind()) {
     case AbstractCode::FUNCTION:
@@ -1511,53 +1508,59 @@
           CodeStub::MajorName(CodeStub::GetMajorKey(code_object->GetCode()));
       if (description == NULL)
         description = "A stub from the snapshot";
-      tag = Logger::STUB_TAG;
+      tag = CodeEventListener::STUB_TAG;
       break;
     case AbstractCode::REGEXP:
       description = "Regular expression code";
-      tag = Logger::REG_EXP_TAG;
+      tag = CodeEventListener::REG_EXP_TAG;
       break;
     case AbstractCode::BUILTIN:
       description =
           isolate_->builtins()->name(code_object->GetCode()->builtin_index());
-      tag = Logger::BUILTIN_TAG;
+      tag = CodeEventListener::BUILTIN_TAG;
       break;
     case AbstractCode::HANDLER:
       description = "An IC handler from the snapshot";
-      tag = Logger::HANDLER_TAG;
+      tag = CodeEventListener::HANDLER_TAG;
       break;
     case AbstractCode::KEYED_LOAD_IC:
       description = "A keyed load IC from the snapshot";
-      tag = Logger::KEYED_LOAD_IC_TAG;
+      tag = CodeEventListener::KEYED_LOAD_IC_TAG;
       break;
     case AbstractCode::LOAD_IC:
       description = "A load IC from the snapshot";
-      tag = Logger::LOAD_IC_TAG;
+      tag = CodeEventListener::LOAD_IC_TAG;
+      break;
+    case AbstractCode::LOAD_GLOBAL_IC:
+      description = "A load global IC from the snapshot";
+      tag = Logger::LOAD_GLOBAL_IC_TAG;
       break;
     case AbstractCode::CALL_IC:
       description = "A call IC from the snapshot";
-      tag = Logger::CALL_IC_TAG;
+      tag = CodeEventListener::CALL_IC_TAG;
       break;
     case AbstractCode::STORE_IC:
       description = "A store IC from the snapshot";
-      tag = Logger::STORE_IC_TAG;
+      tag = CodeEventListener::STORE_IC_TAG;
       break;
     case AbstractCode::KEYED_STORE_IC:
       description = "A keyed store IC from the snapshot";
-      tag = Logger::KEYED_STORE_IC_TAG;
+      tag = CodeEventListener::KEYED_STORE_IC_TAG;
       break;
     case AbstractCode::WASM_FUNCTION:
       description = "A Wasm function";
-      tag = Logger::STUB_TAG;
+      tag = CodeEventListener::STUB_TAG;
       break;
     case AbstractCode::JS_TO_WASM_FUNCTION:
       description = "A JavaScript to Wasm adapter";
-      tag = Logger::STUB_TAG;
+      tag = CodeEventListener::STUB_TAG;
       break;
     case AbstractCode::WASM_TO_JS_FUNCTION:
       description = "A Wasm to JavaScript adapter";
-      tag = Logger::STUB_TAG;
+      tag = CodeEventListener::STUB_TAG;
       break;
+    case AbstractCode::NUMBER_OF_KINDS:
+      UNIMPLEMENTED();
   }
   PROFILE(isolate_, CodeCreateEvent(tag, code_object, description));
 }
@@ -1593,8 +1596,9 @@
         Code* code = interpreter->GetBytecodeHandler(bytecode, operand_scale);
         std::string bytecode_name =
             interpreter::Bytecodes::ToString(bytecode, operand_scale);
-        CodeCreateEvent(Logger::BYTECODE_HANDLER_TAG, AbstractCode::cast(code),
-                        bytecode_name.c_str());
+        PROFILE(isolate_, CodeCreateEvent(
+                              CodeEventListener::BYTECODE_HANDLER_TAG,
+                              AbstractCode::cast(code), bytecode_name.c_str()));
       }
     }
   }
@@ -1613,26 +1617,28 @@
       if (line_num > 0) {
         PROFILE(isolate_,
                 CodeCreateEvent(
-                    Logger::ToNativeByScript(Logger::LAZY_COMPILE_TAG, *script),
+                    Logger::ToNativeByScript(
+                        CodeEventListener::LAZY_COMPILE_TAG, *script),
                     *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, *script_name));
+        PROFILE(isolate_,
+                CodeCreateEvent(Logger::ToNativeByScript(
+                                    CodeEventListener::SCRIPT_TAG, *script),
+                                *code, *shared, *script_name));
       }
     } else {
       PROFILE(isolate_,
-              CodeCreateEvent(
-                  Logger::ToNativeByScript(Logger::LAZY_COMPILE_TAG, *script),
-                  *code, *shared, isolate_->heap()->empty_string(), line_num,
-                  column_num));
+              CodeCreateEvent(Logger::ToNativeByScript(
+                                  CodeEventListener::LAZY_COMPILE_TAG, *script),
+                              *code, *shared, isolate_->heap()->empty_string(),
+                              line_num, column_num));
     }
   } else if (shared->IsApiFunction()) {
     // API function.
     FunctionTemplateInfo* fun_data = shared->get_api_func_data();
     Object* raw_call_data = fun_data->call_code();
-    if (!raw_call_data->IsUndefined()) {
+    if (!raw_call_data->IsUndefined(isolate_)) {
       CallHandlerInfo* call_data = CallHandlerInfo::cast(raw_call_data);
       Object* callback_obj = call_data->callback();
       Address entry_point = v8::ToCData<Address>(callback_obj);
@@ -1642,8 +1648,8 @@
       PROFILE(isolate_, CallbackEvent(*func_name, entry_point));
     }
   } else {
-    PROFILE(isolate_, CodeCreateEvent(Logger::LAZY_COMPILE_TAG, *code, *shared,
-                                      *func_name));
+    PROFILE(isolate_, CodeCreateEvent(CodeEventListener::LAZY_COMPILE_TAG,
+                                      *code, *shared, *func_name));
   }
 }
 
@@ -1756,7 +1762,6 @@
   PrepareLogFileName(log_file_name, isolate, FLAG_logfile);
   log_->Initialize(log_file_name.str().c_str());
 
-
   if (FLAG_perf_basic_prof) {
     perf_basic_logger_ = new PerfBasicLogger();
     addCodeEventListener(perf_basic_logger_);
@@ -1786,6 +1791,12 @@
     profiler_->Engage();
   }
 
+  profiler_listener_.reset();
+
+  if (is_logging_) {
+    addCodeEventListener(this);
+  }
+
   return true;
 }
 
@@ -1809,8 +1820,20 @@
   }
 }
 
+void Logger::SetUpProfilerListener() {
+  if (!is_initialized_) return;
+  if (profiler_listener_.get() == nullptr) {
+    profiler_listener_.reset(new ProfilerListener(isolate_));
+  }
+  addCodeEventListener(profiler_listener_.get());
+}
 
-Sampler* Logger::sampler() {
+void Logger::TearDownProfilerListener() {
+  if (profiler_listener_->HasObservers()) return;
+  removeCodeEventListener(profiler_listener_.get());
+}
+
+sampler::Sampler* Logger::sampler() {
   return ticker_;
 }
 
@@ -1853,6 +1876,10 @@
     jit_logger_ = NULL;
   }
 
+  if (profiler_listener_.get() != nullptr) {
+    removeCodeEventListener(profiler_listener_.get());
+  }
+
   return log_->Close();
 }
 
diff --git a/src/log.h b/src/log.h
index 9953b4c..303e352 100644
--- a/src/log.h
+++ b/src/log.h
@@ -11,6 +11,8 @@
 #include "src/base/compiler-specific.h"
 #include "src/base/platform/elapsed-timer.h"
 #include "src/base/platform/platform.h"
+#include "src/code-events.h"
+#include "src/isolate.h"
 #include "src/objects.h"
 
 namespace v8 {
@@ -19,6 +21,10 @@
 class Semaphore;
 }
 
+namespace sampler {
+class Sampler;
+}
+
 namespace internal {
 
 // Logger is used for collecting logging information from V8 during
@@ -64,96 +70,31 @@
 class Profiler;
 class Ticker;
 struct TickSample;
+class RuntimeCallTimer;
 
 #undef LOG
-#define LOG(isolate, Call)                          \
-  do {                                              \
-    v8::internal::Logger* logger =                  \
-        (isolate)->logger();                        \
-    if (logger->is_logging())                       \
-      logger->Call;                                 \
+#define LOG(isolate, Call)                              \
+  do {                                                  \
+    v8::internal::Logger* logger = (isolate)->logger(); \
+    if (logger->is_logging()) logger->Call;             \
   } while (false)
 
-#define LOG_CODE_EVENT(isolate, Call)               \
-  do {                                              \
-    v8::internal::Logger* logger =                  \
-        (isolate)->logger();                        \
-    if (logger->is_logging_code_events())           \
-      logger->Call;                                 \
+#define LOG_CODE_EVENT(isolate, Call)                   \
+  do {                                                  \
+    v8::internal::Logger* logger = (isolate)->logger(); \
+    if (logger->is_logging_code_events()) logger->Call; \
   } while (false)
 
-#define LOG_EVENTS_AND_TAGS_LIST(V)                                      \
-  V(CODE_CREATION_EVENT, "code-creation")                                \
-  V(CODE_DISABLE_OPT_EVENT, "code-disable-optimization")                 \
-  V(CODE_MOVE_EVENT, "code-move")                                        \
-  V(CODE_DELETE_EVENT, "code-delete")                                    \
-  V(CODE_MOVING_GC, "code-moving-gc")                                    \
-  V(SHARED_FUNC_MOVE_EVENT, "sfi-move")                                  \
-  V(SNAPSHOT_CODE_NAME_EVENT, "snapshot-code-name")                      \
-  V(TICK_EVENT, "tick")                                                  \
-  V(REPEAT_META_EVENT, "repeat")                                         \
-  V(BUILTIN_TAG, "Builtin")                                              \
-  V(CALL_DEBUG_BREAK_TAG, "CallDebugBreak")                              \
-  V(CALL_DEBUG_PREPARE_STEP_IN_TAG, "CallDebugPrepareStepIn")            \
-  V(CALL_INITIALIZE_TAG, "CallInitialize")                               \
-  V(CALL_MEGAMORPHIC_TAG, "CallMegamorphic")                             \
-  V(CALL_MISS_TAG, "CallMiss")                                           \
-  V(CALL_NORMAL_TAG, "CallNormal")                                       \
-  V(LOAD_INITIALIZE_TAG, "LoadInitialize")                               \
-  V(LOAD_MEGAMORPHIC_TAG, "LoadMegamorphic")                             \
-  V(STORE_INITIALIZE_TAG, "StoreInitialize")                             \
-  V(STORE_GENERIC_TAG, "StoreGeneric")                                   \
-  V(STORE_MEGAMORPHIC_TAG, "StoreMegamorphic")                           \
-  V(KEYED_CALL_DEBUG_BREAK_TAG, "KeyedCallDebugBreak")                   \
-  V(KEYED_CALL_DEBUG_PREPARE_STEP_IN_TAG, "KeyedCallDebugPrepareStepIn") \
-  V(KEYED_CALL_INITIALIZE_TAG, "KeyedCallInitialize")                    \
-  V(KEYED_CALL_MEGAMORPHIC_TAG, "KeyedCallMegamorphic")                  \
-  V(KEYED_CALL_MISS_TAG, "KeyedCallMiss")                                \
-  V(KEYED_CALL_NORMAL_TAG, "KeyedCallNormal")                            \
-  V(CALLBACK_TAG, "Callback")                                            \
-  V(EVAL_TAG, "Eval")                                                    \
-  V(FUNCTION_TAG, "Function")                                            \
-  V(HANDLER_TAG, "Handler")                                              \
-  V(BYTECODE_HANDLER_TAG, "BytecodeHandler")                             \
-  V(KEYED_LOAD_IC_TAG, "KeyedLoadIC")                                    \
-  V(KEYED_LOAD_POLYMORPHIC_IC_TAG, "KeyedLoadPolymorphicIC")             \
-  V(KEYED_EXTERNAL_ARRAY_LOAD_IC_TAG, "KeyedExternalArrayLoadIC")        \
-  V(KEYED_STORE_IC_TAG, "KeyedStoreIC")                                  \
-  V(KEYED_STORE_POLYMORPHIC_IC_TAG, "KeyedStorePolymorphicIC")           \
-  V(KEYED_EXTERNAL_ARRAY_STORE_IC_TAG, "KeyedExternalArrayStoreIC")      \
-  V(LAZY_COMPILE_TAG, "LazyCompile")                                     \
-  V(CALL_IC_TAG, "CallIC")                                               \
-  V(LOAD_IC_TAG, "LoadIC")                                               \
-  V(LOAD_POLYMORPHIC_IC_TAG, "LoadPolymorphicIC")                        \
-  V(REG_EXP_TAG, "RegExp")                                               \
-  V(SCRIPT_TAG, "Script")                                                \
-  V(STORE_IC_TAG, "StoreIC")                                             \
-  V(STORE_POLYMORPHIC_IC_TAG, "StorePolymorphicIC")                      \
-  V(STUB_TAG, "Stub")                                                    \
-  V(NATIVE_FUNCTION_TAG, "Function")                                     \
-  V(NATIVE_LAZY_COMPILE_TAG, "LazyCompile")                              \
-  V(NATIVE_SCRIPT_TAG, "Script")
-// Note that 'NATIVE_' cases for functions and scripts are mapped onto
-// original tags when writing to the log.
-
-
 class JitLogger;
 class PerfBasicLogger;
 class LowLevelLogger;
 class PerfJitLogger;
-class Sampler;
+class ProfilerListener;
 
-class Logger {
+class Logger : public CodeEventListener {
  public:
   enum StartEnd { START = 0, END = 1 };
 
-#define DECLARE_ENUM(enum_item, ignore) enum_item,
-  enum LogEventsAndTags {
-    LOG_EVENTS_AND_TAGS_LIST(DECLARE_ENUM)
-    NUMBER_OF_LOG_EVENTS
-  };
-#undef DECLARE_ENUM
-
   // Acquires resources for logging if the right flags are set.
   bool SetUp(Isolate* isolate);
 
@@ -161,7 +102,15 @@
   void SetCodeEventHandler(uint32_t options,
                            JitCodeEventHandler event_handler);
 
-  Sampler* sampler();
+  // Sets up ProfilerListener.
+  void SetUpProfilerListener();
+
+  // Tear down ProfilerListener if it has no observers.
+  void TearDownProfilerListener();
+
+  sampler::Sampler* sampler();
+
+  ProfilerListener* profiler_listener() { return profiler_listener_.get(); }
 
   // Frees resources acquired in SetUp.
   // When a temporary file is used for the log, returns its stream descriptor,
@@ -207,28 +156,27 @@
   void ApiObjectAccess(const char* tag, JSObject* obj);
   void ApiEntryCall(const char* name);
 
-
   // ==== Events logged by --log-code. ====
   void addCodeEventListener(CodeEventListener* listener);
   void removeCodeEventListener(CodeEventListener* listener);
-  bool hasCodeEventListener(CodeEventListener* listener);
-
 
   // Emits a code event for a callback function.
   void CallbackEvent(Name* name, Address entry_point);
   void GetterCallbackEvent(Name* name, Address entry_point);
   void SetterCallbackEvent(Name* name, Address entry_point);
   // Emits a code create event.
-  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       const char* source);
-  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code, Name* name);
-  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, Name* name);
-  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, Name* source, int line,
-                       int column);
-  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
-                       int args_count);
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, const char* source);
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, Name* name);
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, SharedFunctionInfo* shared,
+                       Name* name);
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, SharedFunctionInfo* shared,
+                       Name* source, int line, int column);
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, int args_count);
   // Emits a code deoptimization event.
   void CodeDisableOptEvent(AbstractCode* code, SharedFunctionInfo* shared);
   void CodeMovingGCEvent();
@@ -255,6 +203,8 @@
 
   void CodeNameEvent(Address addr, int pos, const char* code_name);
 
+  void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta);
+
   // ==== Events logged by --log-gc. ====
   // Heap sampling events: start, end, and individual types.
   void HeapSampleBeginEvent(const char* space, const char* kind);
@@ -272,7 +222,6 @@
   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();
 
   void TimerEvent(StartEnd se, const char* name);
@@ -314,7 +263,8 @@
   void LogBytecodeHandlers();
 
   // Converts tag to a corresponding NATIVE_... if the script is native.
-  INLINE(static LogEventsAndTags ToNativeByScript(LogEventsAndTags, Script*));
+  INLINE(static CodeEventListener::LogEventsAndTags ToNativeByScript(
+      CodeEventListener::LogEventsAndTags, Script*));
 
   // Profiler's sampling interval (in milliseconds).
 #if defined(ANDROID)
@@ -341,16 +291,18 @@
                              Address entry_point);
 
   // Internal configurable move event.
-  void MoveEventInternal(LogEventsAndTags event, Address from, Address to);
+  void MoveEventInternal(CodeEventListener::LogEventsAndTags event,
+                         Address from, Address to);
 
   // Used for logging stubs found in the snapshot.
   void LogCodeObject(Object* code_object);
 
   // Helper method. It resets name_buffer_ and add tag name into it.
-  void InitNameBuffer(LogEventsAndTags tag);
+  void InitNameBuffer(CodeEventListener::LogEventsAndTags tag);
 
   // Emits a profiler tick event. Used by the profiler thread.
   void TickEvent(TickSample* sample, bool overflow);
+  void RuntimeCallTimerEvent();
 
   PRINTF_FORMAT(2, 3) void ApiEvent(const char* format, ...);
 
@@ -389,6 +341,7 @@
   PerfJitLogger* perf_jit_logger_;
   LowLevelLogger* ll_logger_;
   JitLogger* jit_logger_;
+  std::unique_ptr<ProfilerListener> profiler_listener_;
   List<CodeEventListener*> listeners_;
 
   // Guards against multiple calls to TearDown() that can happen in some tests.
@@ -458,47 +411,20 @@
   DISALLOW_COPY_AND_ASSIGN(PositionsRecorder);
 };
 
-class CodeEventListener {
- public:
-  virtual ~CodeEventListener() {}
-
-  virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               const char* comment) = 0;
-  virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               Name* name) = 0;
-  virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               SharedFunctionInfo* shared, Name* name) = 0;
-  virtual void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                               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;
-  virtual void GetterCallbackEvent(Name* name, Address entry_point) = 0;
-  virtual void SetterCallbackEvent(Name* name, Address entry_point) = 0;
-  virtual void RegExpCodeCreateEvent(AbstractCode* code, String* source) = 0;
-  virtual void CodeMoveEvent(AbstractCode* from, Address to) = 0;
-  virtual void SharedFunctionInfoMoveEvent(Address from, Address to) = 0;
-  virtual void CodeMovingGCEvent() = 0;
-  virtual void CodeDisableOptEvent(AbstractCode* code,
-                                   SharedFunctionInfo* shared) = 0;
-};
-
-
 class CodeEventLogger : public CodeEventListener {
  public:
   CodeEventLogger();
   ~CodeEventLogger() override;
 
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        const char* comment) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        Name* name) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        int args_count) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        SharedFunctionInfo* shared, Name* name) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
+  void CodeCreateEvent(LogEventsAndTags tag, AbstractCode* code,
                        SharedFunctionInfo* shared, Name* source, int line,
                        int column) override;
   void RegExpCodeCreateEvent(AbstractCode* code, String* source) override;
@@ -508,6 +434,7 @@
   void SetterCallbackEvent(Name* name, Address entry_point) override {}
   void SharedFunctionInfoMoveEvent(Address from, Address to) override {}
   void CodeMovingGCEvent() override {}
+  void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) override {}
 
  private:
   class NameBuffer;
diff --git a/src/lookup.cc b/src/lookup.cc
index bdb9f0a..8e545f7 100644
--- a/src/lookup.cc
+++ b/src/lookup.cc
@@ -131,7 +131,7 @@
     return result;
   }
   auto root = handle(receiver->GetRootMap(isolate)->prototype(), isolate);
-  if (root->IsNull()) {
+  if (root->IsNull(isolate)) {
     unsigned int magic = 0xbbbbbbbb;
     isolate->PushStackTraceAndDie(magic, *receiver, NULL, magic);
   }
@@ -299,7 +299,7 @@
       // Install a property cell.
       auto cell = JSGlobalObject::EnsurePropertyCell(
           Handle<JSGlobalObject>::cast(receiver), name());
-      DCHECK(cell->value()->IsTheHole());
+      DCHECK(cell->value()->IsTheHole(isolate_));
       transition_ = cell;
     } else {
       transition_ = map;
@@ -373,7 +373,7 @@
 void LookupIterator::TransitionToAccessorProperty(
     Handle<Object> getter, Handle<Object> setter,
     PropertyAttributes attributes) {
-  DCHECK(!getter->IsNull() || !setter->IsNull());
+  DCHECK(!getter->IsNull(isolate_) || !setter->IsNull(isolate_));
   // 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.
@@ -496,8 +496,7 @@
   if (!current->map()->has_hidden_prototype()) return false;
   // JSProxy do not occur as hidden prototypes.
   if (object->IsJSProxy()) return false;
-  PrototypeIterator iter(isolate(), current,
-                         PrototypeIterator::START_AT_PROTOTYPE,
+  PrototypeIterator iter(isolate(), current, kStartAtPrototype,
                          PrototypeIterator::END_AT_NON_HIDDEN);
   while (!iter.IsAtEnd()) {
     if (iter.GetCurrent<JSReceiver>() == object) return true;
@@ -693,7 +692,7 @@
         number_ = static_cast<uint32_t>(number);
         DCHECK(dict->ValueAt(number_)->IsPropertyCell());
         PropertyCell* cell = PropertyCell::cast(dict->ValueAt(number_));
-        if (cell->value()->IsTheHole()) return NOT_FOUND;
+        if (cell->value()->IsTheHole(isolate_)) return NOT_FOUND;
         property_details_ = cell->property_details();
         has_property_ = true;
         switch (property_details_.kind()) {
@@ -758,5 +757,21 @@
   return state_;
 }
 
+Handle<InterceptorInfo> LookupIterator::GetInterceptorForFailedAccessCheck()
+    const {
+  DCHECK_EQ(ACCESS_CHECK, state_);
+  DisallowHeapAllocation no_gc;
+  AccessCheckInfo* access_check_info =
+      AccessCheckInfo::Get(isolate_, Handle<JSObject>::cast(holder_));
+  if (access_check_info) {
+    Object* interceptor = IsElement() ? access_check_info->indexed_interceptor()
+                                      : access_check_info->named_interceptor();
+    if (interceptor) {
+      return handle(InterceptorInfo::cast(interceptor), isolate_);
+    }
+  }
+  return Handle<InterceptorInfo>();
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/lookup.h b/src/lookup.h
index bb65639..f1a1b7c 100644
--- a/src/lookup.h
+++ b/src/lookup.h
@@ -176,6 +176,7 @@
   Handle<Object> GetReceiver() const { return receiver_; }
 
   Handle<JSObject> GetStoreTarget() const {
+    DCHECK(receiver_->IsJSObject());
     if (receiver_->IsJSGlobalProxy()) {
       Map* map = JSGlobalProxy::cast(*receiver_)->map();
       if (map->has_hidden_prototype()) {
@@ -257,15 +258,15 @@
                     : GetInterceptor<false>(JSObject::cast(*holder_));
     return handle(result, isolate_);
   }
+  Handle<InterceptorInfo> GetInterceptorForFailedAccessCheck() const;
   Handle<Object> GetDataValue() const;
   void WriteDataValue(Handle<Object> value);
   inline void UpdateProtector() {
     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()))) {
+        *name_ == heap()->constructor_string() ||
+        *name_ == heap()->species_symbol() ||
+        *name_ == heap()->has_instance_symbol()) {
       InternalUpdateProtector();
     }
   }
diff --git a/src/messages.cc b/src/messages.cc
index 6e7c495..0dffbb4 100644
--- a/src/messages.cc
+++ b/src/messages.cc
@@ -98,7 +98,7 @@
     MaybeHandle<Object> maybe_stringified;
     Handle<Object> stringified;
     // Make sure we don't leak uncaught internally generated Error objects.
-    if (Object::IsErrorObject(isolate, argument)) {
+    if (argument->IsJSError()) {
       Handle<Object> args[] = {argument};
       maybe_stringified = Execution::TryCall(
           isolate, isolate->no_side_effects_to_string_fun(),
@@ -130,7 +130,7 @@
   } else {
     for (int i = 0; i < global_length; i++) {
       HandleScope scope(isolate);
-      if (global_listeners.get(i)->IsUndefined()) continue;
+      if (global_listeners.get(i)->IsUndefined(isolate)) continue;
       v8::NeanderObject listener(JSObject::cast(global_listeners.get(i)));
       Handle<Foreign> callback_obj(Foreign::cast(listener.get(0)));
       v8::MessageCallback callback =
@@ -139,7 +139,7 @@
       {
         // Do not allow exceptions to propagate.
         v8::TryCatch try_catch(reinterpret_cast<v8::Isolate*>(isolate));
-        callback(api_message_obj, callback_data->IsUndefined()
+        callback(api_message_obj, callback_data->IsUndefined(isolate)
                                       ? api_exception_obj
                                       : v8::Utils::ToLocal(callback_data));
       }
@@ -205,12 +205,8 @@
 
 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_);
+    return wasm::GetWasmFunctionNameOrNull(isolate_, wasm_obj_,
+                                           wasm_func_index_);
   }
   Handle<String> result = JSFunction::GetName(fun_);
   if (result->length() != 0) return result;
@@ -253,7 +249,8 @@
 
 
 Handle<Object> CallSite::GetMethodName() {
-  if (!IsJavaScript() || receiver_->IsNull() || receiver_->IsUndefined()) {
+  if (!IsJavaScript() || receiver_->IsNull(isolate_) ||
+      receiver_->IsUndefined(isolate_)) {
     return isolate_->factory()->null_value();
   }
   Handle<JSReceiver> receiver =
@@ -268,13 +265,11 @@
     Handle<Name> name = Handle<Name>::cast(function_name);
     // ES2015 gives getters and setters name prefixes which must
     // be stripped to find the property name.
-    if (name->IsString() && FLAG_harmony_function_name) {
-      Handle<String> name_string = Handle<String>::cast(name);
-      if (name_string->IsUtf8EqualTo(CStrVector("get "), true) ||
-          name_string->IsUtf8EqualTo(CStrVector("set "), true)) {
-        name = isolate_->factory()->NewProperSubString(name_string, 4,
-                                                       name_string->length());
-      }
+    Handle<String> name_string = Handle<String>::cast(name);
+    if (name_string->IsUtf8EqualTo(CStrVector("get "), true) ||
+        name_string->IsUtf8EqualTo(CStrVector("set "), true)) {
+      name = isolate_->factory()->NewProperSubString(name_string, 4,
+                                                     name_string->length());
     }
     if (CheckMethodName(isolate_, obj, name, fun_,
                         LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR)) {
@@ -284,9 +279,8 @@
 
   HandleScope outer_scope(isolate_);
   Handle<Object> result;
-  for (PrototypeIterator iter(isolate_, obj,
-                              PrototypeIterator::START_AT_RECEIVER);
-       !iter.IsAtEnd(); iter.Advance()) {
+  for (PrototypeIterator iter(isolate_, obj, kStartAtReceiver); !iter.IsAtEnd();
+       iter.Advance()) {
     Handle<Object> current = PrototypeIterator::GetCurrent(iter);
     if (!current->IsJSObject()) break;
     Handle<JSObject> current_obj = Handle<JSObject>::cast(current);
@@ -345,8 +339,8 @@
 
 bool CallSite::IsToplevel() {
   if (IsWasm()) return false;
-  return receiver_->IsJSGlobalProxy() || receiver_->IsNull() ||
-         receiver_->IsUndefined();
+  return receiver_->IsJSGlobalProxy() || receiver_->IsNull(isolate_) ||
+         receiver_->IsUndefined(isolate_);
 }
 
 
diff --git a/src/messages.h b/src/messages.h
index a9f321e..682105d 100644
--- a/src/messages.h
+++ b/src/messages.h
@@ -97,7 +97,8 @@
   T(CalledOnNonObject, "% called on non-object")                               \
   T(CalledOnNullOrUndefined, "% called on null or undefined")                  \
   T(CallSiteExpectsFunction,                                                   \
-    "CallSite expects function or number as second argument, got %")           \
+    "CallSite expects wasm object as first or function 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,10 +121,8 @@
   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")                   \
-  T(ExtendsValueNotFunction,                                                   \
-    "Class extends value % is not a function or null")                         \
+  T(ExtendsValueNotConstructor,                                                \
+    "Class extends value % is not a constructor or null")                      \
   T(FirstArgumentNotRegExp,                                                    \
     "First argument to % must not be a regular expression")                    \
   T(FunctionBind, "Bind must be called on a function")                         \
@@ -339,6 +338,8 @@
   T(InvalidTypedArrayAlignment, "% of % should be a multiple of %")            \
   T(InvalidTypedArrayLength, "Invalid typed array length")                     \
   T(InvalidTypedArrayOffset, "Start offset is too large:")                     \
+  T(InvalidSimdIndex, "Index out of bounds for SIMD operation")                \
+  T(InvalidSimdLaneValue, "Lane value out of bounds for SIMD operation")       \
   T(LetInLexicalBinding, "let is disallowed as a lexically bound name")        \
   T(LocaleMatcher, "Illegal value for localeMatcher:%")                        \
   T(NormalizationForm, "The normalization form should be one of %.")           \
@@ -439,6 +440,8 @@
     "Too many arguments in function call (only 65535 allowed)")                \
   T(TooManyParameters,                                                         \
     "Too many parameters in function definition (only 65535 allowed)")         \
+  T(TooManySpreads,                                                            \
+    "Literal containing too many nested spreads (up to 65534 allowed)")        \
   T(TooManyVariables, "Too many variables declared (only 4194303 allowed)")    \
   T(TypedArrayTooShort,                                                        \
     "Derived TypedArray constructor created an array which was too small")     \
diff --git a/src/mips/assembler-mips-inl.h b/src/mips/assembler-mips-inl.h
index b463c0b..57aea38 100644
--- a/src/mips/assembler-mips-inl.h
+++ b/src/mips/assembler-mips-inl.h
@@ -463,6 +463,8 @@
   CheckTrampolinePoolQuick();
 }
 
+template <>
+inline void Assembler::EmitHelper(uint8_t x);
 
 template <typename T>
 void Assembler::EmitHelper(T x) {
@@ -471,6 +473,14 @@
   CheckTrampolinePoolQuick();
 }
 
+template <>
+void Assembler::EmitHelper(uint8_t x) {
+  *reinterpret_cast<uint8_t*>(pc_) = x;
+  pc_ += sizeof(x);
+  if (reinterpret_cast<intptr_t>(pc_) % kInstrSize == 0) {
+    CheckTrampolinePoolQuick();
+  }
+}
 
 void Assembler::emit(Instr x, CompactBranchType is_compact_branch) {
   if (!is_buffer_growth_blocked()) {
diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc
index f95323b..8bda17c 100644
--- a/src/mips/assembler-mips.cc
+++ b/src/mips/assembler-mips.cc
@@ -194,36 +194,25 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(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();
-  }
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_,
+                                   reinterpret_cast<Address>(size), flush_mode);
 }
 
 // -----------------------------------------------------------------------------
@@ -330,6 +319,8 @@
   desc->reloc_size = (buffer_ + buffer_size_) - reloc_info_writer.pos();
   desc->origin = this;
   desc->constant_pool_size = 0;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -1277,7 +1268,6 @@
 
 
 void Assembler::bal(int16_t offset) {
-  positions_recorder()->WriteRecordedPositions();
   bgezal(zero_reg, offset);
 }
 
@@ -1290,7 +1280,6 @@
 
 void Assembler::balc(int32_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BALC, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1337,7 +1326,6 @@
 void Assembler::bgezal(Register rs, int16_t offset) {
   DCHECK(!IsMipsArchVariant(kMips32r6) || rs.is(zero_reg));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BGEZAL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1408,7 +1396,6 @@
 void Assembler::bltzal(Register rs, int16_t offset) {
   DCHECK(!IsMipsArchVariant(kMips32r6) || rs.is(zero_reg));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BLTZAL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1444,7 +1431,6 @@
 void Assembler::blezalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BLEZ, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1453,7 +1439,6 @@
 void Assembler::bgezalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BLEZ, rt, rt, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1462,7 +1447,6 @@
   DCHECK(!IsMipsArchVariant(kMips32r6));
   DCHECK(!(rs.is(zero_reg)));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BGEZALL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1471,7 +1455,6 @@
 void Assembler::bltzalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BGTZ, rt, rt, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1479,7 +1462,6 @@
 void Assembler::bgtzalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BGTZ, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1488,7 +1470,6 @@
 void Assembler::beqzalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(ADDI, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1497,7 +1478,6 @@
 void Assembler::bnezalc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(DADDI, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1556,9 +1536,6 @@
 void Assembler::jr(Register rs) {
   if (!IsMipsArchVariant(kMips32r6)) {
     BlockTrampolinePoolScope block_trampoline_pool(this);
-    if (rs.is(ra)) {
-      positions_recorder()->WriteRecordedPositions();
-    }
     GenInstrRegister(SPECIAL, rs, zero_reg, zero_reg, 0, JR);
     BlockTrampolinePoolFor(1);  // For associated delay slot.
   } else {
@@ -1576,7 +1553,6 @@
   DCHECK(in_range && ((target & 3) == 0));
 #endif
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrJump(JAL, (target >> 2) & kImm26Mask);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1585,7 +1561,6 @@
 void Assembler::jalr(Register rs, Register rd) {
   DCHECK(rs.code() != rd.code());
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1599,7 +1574,6 @@
 
 void Assembler::jialc(Register rt, int16_t offset) {
   DCHECK(IsMipsArchVariant(kMips32r6));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(POP76, zero_reg, rt, offset);
 }
 
@@ -1940,7 +1914,6 @@
   GenInstrImmediate(LUI, rs, rt, j);
 }
 
-
 // ---------PC-Relative instructions-----------
 
 void Assembler::addiupc(Register rs, int32_t imm19) {
@@ -2175,6 +2148,21 @@
   GenInstrRegister(SPECIAL3, rs, rt, rd, sa, BSHFL);
 }
 
+// Byte swap.
+void Assembler::wsbh(Register rd, Register rt) {
+  DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6));
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, WSBH, BSHFL);
+}
+
+void Assembler::seh(Register rd, Register rt) {
+  DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6));
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, SEH, BSHFL);
+}
+
+void Assembler::seb(Register rd, Register rt) {
+  DCHECK(IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6));
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, SEB, BSHFL);
+}
 
 // --------Coprocessor-instructions----------------
 
diff --git a/src/mips/assembler-mips.h b/src/mips/assembler-mips.h
index c595cc9..8f4f9d9 100644
--- a/src/mips/assembler-mips.h
+++ b/src/mips/assembler-mips.h
@@ -125,8 +125,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -155,6 +153,8 @@
 
 Register ToRegister(int num);
 
+static const bool kSimpleFPAliasing = true;
+
 // Coprocessor register.
 struct FPURegister {
   enum Code {
@@ -173,8 +173,6 @@
   // to number of 32-bit FPU regs, but kNumAllocatableRegisters refers to
   // number of Double regs (64-bit regs, or FPU-reg-pairs).
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
   bool is(FPURegister reg) const { return reg_code == reg.reg_code; }
   FPURegister low() const {
@@ -850,6 +848,10 @@
   void bitswap(Register rd, Register rt);
   void align(Register rd, Register rs, Register rt, uint8_t bp);
 
+  void wsbh(Register rd, Register rt);
+  void seh(Register rd, Register rt);
+  void seb(Register rd, Register rt);
+
   // --------Coprocessor-instructions----------------
 
   // Load, store, and move.
diff --git a/src/mips/builtins-mips.cc b/src/mips/builtins-mips.cc
index 76d0640..7d9d080 100644
--- a/src/mips/builtins-mips.cc
+++ b/src/mips/builtins-mips.cc
@@ -17,10 +17,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- a0                 : number of arguments excluding receiver
   //  -- a1                 : target
@@ -39,23 +36,8 @@
   __ lw(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(a1);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(a3);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(a1, a3);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
+  const int num_extra_args = 2;
+  __ Push(a1, a3);
 
   // JumpToExternalReference expects a0 to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -145,6 +127,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- a0                 : number of arguments
+  //  -- a1                 : function
+  //  -- cp                 : context
   //  -- ra                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -154,9 +138,9 @@
                                      : Heap::kMinusInfinityValueRootIndex;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in a1 and the double value in f0.
-  __ LoadRoot(a1, root_index);
-  __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in t2 and the double value in f0.
+  __ LoadRoot(t2, root_index);
+  __ ldc1(f0, FieldMemOperand(t2, HeapNumber::kValueOffset));
   __ Addu(a3, a0, Operand(1));
 
   Label done_loop, loop;
@@ -171,35 +155,39 @@
     __ lw(a2, MemOperand(at));
 
     // Load the double value of the parameter into f2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(a2, &convert_smi);
     __ lw(t0, FieldMemOperand(a2, HeapObject::kMapOffset));
     __ JumpIfRoot(t0, Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(ra, fp);
+      __ Move(fp, sp);
+      __ Push(cp, a1);
       __ SmiTag(a0);
       __ SmiTag(a3);
-      __ Push(a0, a1, a3);
+      __ Push(a0, t2, a3);
       __ mov(a0, a2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mov(a2, v0);
-      __ Pop(a0, a1, a3);
+      __ Pop(a0, t2, a3);
       {
         // Restore the double accumulator value (f0).
         Label restore_smi, done_restore;
-        __ JumpIfSmi(a1, &restore_smi);
-        __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+        __ JumpIfSmi(t2, &restore_smi);
+        __ ldc1(f0, FieldMemOperand(t2, HeapNumber::kValueOffset));
         __ jmp(&done_restore);
         __ bind(&restore_smi);
-        __ SmiToDoubleFPURegister(a1, f0, t0);
+        __ SmiToDoubleFPURegister(t2, f0, t0);
         __ bind(&done_restore);
       }
       __ SmiUntag(a3);
       __ SmiUntag(a0);
+      __ Pop(cp, a1);
+      __ Pop(ra, fp);
     }
     __ jmp(&convert);
     __ bind(&convert_number);
@@ -227,20 +215,20 @@
     __ Branch(&set_value, ne, t1, Operand(t8));
     __ jmp(&loop);
     __ bind(&set_value);
-    __ mov(a1, a2);
+    __ mov(t2, a2);
     __ jmp(&loop);
 
     // At least one side is NaN, which means that the result will be NaN too.
     __ bind(&compare_nan);
-    __ LoadRoot(a1, Heap::kNanValueRootIndex);
-    __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+    __ LoadRoot(t2, Heap::kNanValueRootIndex);
+    __ ldc1(f0, FieldMemOperand(t2, HeapNumber::kValueOffset));
     __ jmp(&loop);
   }
 
   __ bind(&done_loop);
   __ Lsa(sp, sp, a3, kPointerSizeLog2);
   __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a1);  // In delay slot.
+  __ mov(v0, t2);  // In delay slot.
 }
 
 // static
@@ -265,8 +253,7 @@
   }
 
   // 2a. Convert first argument to number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0.
   __ bind(&no_arguments);
@@ -314,8 +301,7 @@
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ Push(a1, a3);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(a0, v0);
       __ Pop(a1, a3);
     }
@@ -829,8 +815,8 @@
   __ AssertGeneratorObject(a1);
 
   // Store input value into generator object.
-  __ sw(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
-  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, v0, a3,
+  __ sw(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOrDebugPosOffset));
+  __ RecordWriteField(a1, JSGeneratorObject::kInputOrDebugPosOffset, v0, a3,
                       kRAHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -841,20 +827,22 @@
   __ 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));
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ li(t1, Operand(last_step_action));
   __ 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);
+  __ Branch(&prepare_step_in_if_stepping, ge, t1, Operand(StepIn));
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ li(t1, Operand(debug_suspended_generator));
+  __ lw(t1, MemOperand(t1));
+  __ Branch(&prepare_step_in_suspended_generator, eq, a1, Operand(t1));
+  __ bind(&stepping_prepared);
 
   // Push receiver.
   __ lw(t1, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
@@ -950,6 +938,42 @@
     __ Move(v0, a1);  // Continuation expects generator object in v0.
     __ Jump(a3);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2, t0);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(a1, a2);
+  }
+  __ Branch(USE_DELAY_SLOT, &stepping_prepared);
+  __ lw(t0, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(a1, a2);
+  }
+  __ Branch(USE_DELAY_SLOT, &stepping_prepared);
+  __ lw(t0, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+}
+
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ lw(args_count,
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lw(args_count,
+        FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments.
+  __ Addu(sp, sp, args_count);
 }
 
 // Generate code for entering a JS function with the interpreter.
@@ -1054,16 +1078,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, t0);
   __ Jump(ra);
 
   // Load debug copy of the bytecode array.
@@ -1085,6 +1100,31 @@
   __ Jump(t0);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ lw(a1, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ lw(kContextRegister,
+        MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, t0);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(v0);
+
+    // Push function as argument and compile for baseline.
+    __ push(a1);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(v0);
+  }
+  __ Jump(ra);
+}
+
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -1241,13 +1281,28 @@
                               SharedFunctionInfo::kOffsetToPreviousOsrAstId));
   const int bailout_id = BailoutId::None().ToInt();
   __ Branch(&loop_bottom, ne, temp, Operand(Smi::FromInt(bailout_id)));
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ lw(temp, FieldMemOperand(array_pointer,
                               SharedFunctionInfo::kOffsetToPreviousLiterals));
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ lw(t0, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(t0, &maybe_cleared_weakcell);
+  // t0 is a pointer, therefore temp is a WeakCell pointing to a literals array.
   __ lw(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // t0 is a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ Branch(&gotta_call_runtime, eq, t0, Operand(Smi::FromInt(0)));
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ lw(t0, MemOperand(sp, 0));
   __ sw(temp, FieldMemOperand(t0, JSFunction::kLiteralsOffset));
   __ push(index);
@@ -1660,6 +1715,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- a0    : number of arguments
+  //  -- a1    : function
+  //  -- cp    : context
   //  -- sp[0] : receiver
   // -----------------------------------
 
@@ -1699,7 +1757,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(a0, ra, fp);
+    __ Move(fp, sp);
+    __ Push(cp, a1);
+    __ Push(Smi::FromInt(0));
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2697,6 +2762,83 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes on argument in a0.
+  __ AssertString(a0);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ lw(a2, FieldMemOperand(a0, String::kHashFieldOffset));
+  __ And(at, a2, Operand(String::kContainsCachedArrayIndexMask));
+  __ Branch(&runtime, ne, at, Operand(zero_reg));
+  __ IndexFromHash(a2, v0);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(a0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in a0.
+  Label not_smi;
+  __ JumpIfNotSmi(a0, &not_smi);
+  __ Ret(USE_DELAY_SLOT);
+  __ mov(v0, a0);
+  __ bind(&not_smi);
+
+  Label not_heap_number;
+  __ GetObjectType(a0, a1, a1);
+  // a0: receiver
+  // a1: receiver instance type
+  __ Branch(&not_heap_number, ne, a1, Operand(HEAP_NUMBER_TYPE));
+  __ Ret(USE_DELAY_SLOT);
+  __ mov(v0, a0);
+  __ bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes on argument in a0.
+  __ AssertNotNumber(a0);
+
+  Label not_string;
+  __ GetObjectType(a0, a1, a1);
+  // a0: receiver
+  // a1: receiver instance type
+  __ Branch(&not_string, hs, a1, Operand(FIRST_NONSTRING_TYPE));
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ bind(&not_string);
+
+  Label not_oddball;
+  __ Branch(&not_oddball, ne, a1, Operand(ODDBALL_TYPE));
+  __ Ret(USE_DELAY_SLOT);
+  __ lw(v0, FieldMemOperand(a0, Oddball::kToNumberOffset));  // In delay slot.
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(a0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // State setup as expected by MacroAssembler::InvokePrologue.
   // ----------- S t a t e -------------
diff --git a/src/mips/code-stubs-mips.cc b/src/mips/code-stubs-mips.cc
index 4084964..3213677 100644
--- a/src/mips/code-stubs-mips.cc
+++ b/src/mips/code-stubs-mips.cc
@@ -21,70 +21,29 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(a0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ sll(t9, a0, kPointerSizeLog2);
+  __ Addu(t9, sp, t9);
+  __ sw(a1, MemOperand(t9, 0));
+  __ Push(a1);
+  __ Push(a2);
+  __ Addu(a0, a0, Operand(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(a0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
                                           Condition cc);
 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
@@ -1021,7 +980,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1440,7 +1399,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -1920,6 +1878,7 @@
   // a2 : feedback vector
   // a3 : slot in feedback vector (Smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
@@ -1938,7 +1897,7 @@
   Register feedback_map = t1;
   Register weak_value = t4;
   __ lw(weak_value, FieldMemOperand(t2, WeakCell::kValueOffset));
-  __ Branch(&done, eq, a1, Operand(weak_value));
+  __ Branch(&done_increment_count, eq, a1, Operand(weak_value));
   __ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex);
   __ Branch(&done, eq, t2, Operand(at));
   __ lw(feedback_map, FieldMemOperand(t2, HeapObject::kMapOffset));
@@ -1960,7 +1919,7 @@
   // Make sure the function is the Array() function
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, t2);
   __ Branch(&megamorphic, ne, a1, Operand(t2));
-  __ jmp(&done);
+  __ jmp(&done_increment_count);
 
   __ bind(&miss);
 
@@ -1987,11 +1946,27 @@
   // slot.
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ Branch(&done);
+  __ Branch(&done_initialize_count);
 
   __ bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ Lsa(at, a2, a3, kPointerSizeLog2 - kSmiTagSize);
+  __ li(t0, Operand(Smi::FromInt(1)));
+  __ Branch(USE_DELAY_SLOT, &done);
+  __ sw(t0, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ Lsa(at, a2, a3, kPointerSizeLog2 - kSmiTagSize);
+  __ lw(t0, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
+  __ Addu(t0, t0, Operand(Smi::FromInt(1)));
+  __ sw(t0, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
+
   __ bind(&done);
 }
 
@@ -2052,7 +2027,7 @@
   // Increment the call count for monomorphic function calls.
   __ Lsa(at, a2, a3, kPointerSizeLog2 - kSmiTagSize);
   __ lw(a3, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
-  __ Addu(a3, a3, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Addu(a3, a3, Operand(Smi::FromInt(1)));
   __ sw(a3, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
 
   __ mov(a2, t0);
@@ -2098,7 +2073,7 @@
   // Increment the call count for monomorphic function calls.
   __ Lsa(at, a2, a3, kPointerSizeLog2 - kSmiTagSize);
   __ lw(a3, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
-  __ Addu(a3, a3, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Addu(a3, a3, Operand(Smi::FromInt(1)));
   __ sw(a3, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
 
   __ bind(&call_function);
@@ -2169,7 +2144,7 @@
 
   // Initialize the call counter.
   __ Lsa(at, a2, a3, kPointerSizeLog2 - kSmiTagSize);
-  __ li(t0, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ li(t0, Operand(Smi::FromInt(1)));
   __ sw(t0, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
 
   // Store the function. Use a stub since we need a frame for allocation.
@@ -2269,13 +2244,7 @@
   } else {
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
 
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
@@ -2617,74 +2586,13 @@
   // a3: from index (untagged)
   __ SmiTag(a3, a3);
   StringCharAtGenerator generator(v0, a3, a2, v0, &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ DropAndRet(3);
   generator.SkipSlow(masm, &runtime);
 }
 
 
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in a0.
-  Label not_smi;
-  __ JumpIfNotSmi(a0, &not_smi);
-  __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a0);
-  __ bind(&not_smi);
-
-  Label not_heap_number;
-  __ GetObjectType(a0, a1, a1);
-  // a0: receiver
-  // a1: receiver instance type
-  __ Branch(&not_heap_number, ne, a1, Operand(HEAP_NUMBER_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a0);
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes on argument in a0.
-  __ AssertNotNumber(a0);
-
-  Label not_string;
-  __ GetObjectType(a0, a1, a1);
-  // a0: receiver
-  // a1: receiver instance type
-  __ Branch(&not_string, hs, a1, Operand(FIRST_NONSTRING_TYPE));
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ bind(&not_string);
-
-  Label not_oddball;
-  __ Branch(&not_oddball, ne, a1, Operand(ODDBALL_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ lw(v0, FieldMemOperand(a0, Oddball::kToNumberOffset));  // In delay slot.
-  __ bind(&not_oddball);
-
-  __ Push(a0);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes on argument in a0.
-  __ AssertString(a0);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ lw(a2, FieldMemOperand(a0, String::kHashFieldOffset));
-  __ And(at, a2, Operand(String::kContainsCachedArrayIndexMask));
-  __ Branch(&runtime, ne, at, Operand(zero_reg));
-  __ IndexFromHash(a2, v0);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ Push(a0);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes on argument in a0.
   Label is_number;
@@ -2865,7 +2773,7 @@
   // Load a2 with the allocation site. We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ li(a2, handle(isolate()->heap()->undefined_value()));
+  __ li(a2, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3760,14 +3668,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4384,19 +4292,13 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things.
@@ -4404,8 +4306,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4424,13 +4324,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4514,7 +4416,7 @@
   InternalArrayNoArgumentConstructorStub stub0(isolate(), kind);
   __ TailCallStub(&stub0, lo, a0, Operand(1));
 
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN, hi, a0, Operand(1));
 
   if (IsFastPackedElementsKind(kind)) {
@@ -4738,10 +4640,10 @@
   // specified by the function's internal formal parameter count.
   Label rest_parameters;
   __ lw(a0, MemOperand(a2, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ lw(a1, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
-  __ lw(a1,
-        FieldMemOperand(a1, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Subu(a0, a0, Operand(a1));
+  __ lw(a3, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(a3,
+        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ Subu(a0, a0, Operand(a3));
   __ Branch(&rest_parameters, gt, a0, Operand(zero_reg));
 
   // Return an empty rest parameter array.
@@ -4788,15 +4690,16 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- a0 : number of rest parameters (tagged)
+    //  -- a1 : function
     //  -- a2 : pointer to first rest parameters
     //  -- ra : return address
     // -----------------------------------
 
     // Allocate space for the rest parameter array plus the backing store.
     Label allocate, done_allocate;
-    __ li(a1, Operand(JSArray::kSize + FixedArray::kHeaderSize));
-    __ Lsa(a1, a1, a0, kPointerSizeLog2 - 1);
-    __ Allocate(a1, v0, a3, t0, &allocate, NO_ALLOCATION_FLAGS);
+    __ li(t0, Operand(JSArray::kSize + FixedArray::kHeaderSize));
+    __ Lsa(t0, t0, a0, kPointerSizeLog2 - 1);
+    __ Allocate(t0, v0, a3, t1, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in v0.
@@ -4829,16 +4732,24 @@
     __ Ret(USE_DELAY_SLOT);
     __ mov(v0, a3);  // In delay slot
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ Branch(&too_big_for_new_space, gt, t0,
+              Operand(Page::kMaxRegularHeapObjectSize));
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(a1);
-      __ Push(a0, a2, a1);
+      __ SmiTag(t0);
+      __ Push(a0, a2, t0);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ Pop(a0, a2);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewStrictArguments.
+    __ bind(&too_big_for_new_space);
+    __ Push(a1);
+    __ TailCallRuntime(Runtime::kNewStrictArguments);
   }
 }
 
@@ -5104,9 +5015,9 @@
   __ Branch(&arguments_adaptor, eq, a0,
             Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   {
-    __ lw(a1, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+    __ lw(t0, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
     __ lw(a0,
-          FieldMemOperand(a1, SharedFunctionInfo::kFormalParameterCountOffset));
+          FieldMemOperand(t0, SharedFunctionInfo::kFormalParameterCountOffset));
     __ Lsa(a2, a2, a0, kPointerSizeLog2 - 1);
     __ Addu(a2, a2, Operand(StandardFrameConstants::kCallerSPOffset -
                             1 * kPointerSize));
@@ -5124,15 +5035,16 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- a0 : number of rest parameters (tagged)
+  //  -- a1 : function
   //  -- a2 : pointer to first rest parameters
   //  -- ra : return address
   // -----------------------------------
 
   // Allocate space for the strict arguments object plus the backing store.
   Label allocate, done_allocate;
-  __ li(a1, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ Lsa(a1, a1, a0, kPointerSizeLog2 - 1);
-  __ Allocate(a1, v0, a3, t0, &allocate, NO_ALLOCATION_FLAGS);
+  __ li(t0, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
+  __ Lsa(t0, t0, a0, kPointerSizeLog2 - 1);
+  __ Allocate(t0, v0, a3, t1, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in v0.
@@ -5165,46 +5077,24 @@
   __ Ret(USE_DELAY_SLOT);
   __ mov(v0, a3);  // In delay slot
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ Branch(&too_big_for_new_space, gt, t0,
+            Operand(Page::kMaxRegularHeapObjectSize));
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
-    __ SmiTag(a1);
-    __ Push(a0, a2, a1);
+    __ SmiTag(t0);
+    __ Push(a0, a2, t0);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(a0, a2);
   }
   __ jmp(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context_reg = cp;
-  Register slot_reg = a2;
-  Register result_reg = v0;
-  Label slow_case;
-
-  // Go up context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ lw(result_reg, ContextMemOperand(context_reg, Context::PREVIOUS_INDEX));
-    context_reg = result_reg;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ Lsa(at, context_reg, slot_reg, kPointerSizeLog2);
-  __ lw(result_reg, ContextMemOperand(at, 0));
-  __ lw(result_reg, FieldMemOperand(result_reg, PropertyCell::kValueOffset));
-
-  // Check that value is not the_hole.
-  __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
-  __ Branch(&slow_case, eq, result_reg, Operand(at));
-  __ Ret();
-
-  // Fallback to the runtime.
-  __ bind(&slow_case);
-  __ SmiTag(slot_reg);
-  __ Push(slot_reg);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ Push(a1);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/mips/codegen-mips.cc b/src/mips/codegen-mips.cc
index 63bbda3..07cab80 100644
--- a/src/mips/codegen-mips.cc
+++ b/src/mips/codegen-mips.cc
@@ -16,60 +16,6 @@
 
 #define __ masm.
 
-
-#if defined(USE_SIMULATOR)
-byte* fast_exp_mips_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  return Simulator::current(isolate)->CallFP(fast_exp_mips_machine_code, x, 0);
-}
-#endif
-
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-
-  {
-    DoubleRegister input = f12;
-    DoubleRegister result = f0;
-    DoubleRegister double_scratch1 = f4;
-    DoubleRegister double_scratch2 = f6;
-    Register temp1 = t0;
-    Register temp2 = t1;
-    Register temp3 = t2;
-
-    __ MovFromFloatParameter(input);
-    __ Push(temp3, temp2, temp1);
-    MathExpGenerator::EmitMathExp(
-        &masm, input, result, double_scratch1, double_scratch2,
-        temp1, temp2, temp3);
-    __ Pop(temp3, temp2, temp1);
-    __ MovToFloatResult(result);
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_mips_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
-
 #if defined(V8_HOST_ARCH_MIPS)
 MemCopyUint8Function CreateMemCopyUint8Function(Isolate* isolate,
                                                 MemCopyUint8Function stub) {
@@ -1092,95 +1038,6 @@
   __ bind(&done);
 }
 
-
-static MemOperand ExpConstant(int index, Register base) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   DoubleRegister input,
-                                   DoubleRegister result,
-                                   DoubleRegister double_scratch1,
-                                   DoubleRegister double_scratch2,
-                                   Register temp1,
-                                   Register temp2,
-                                   Register temp3) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch1));
-  DCHECK(!input.is(double_scratch2));
-  DCHECK(!result.is(double_scratch1));
-  DCHECK(!result.is(double_scratch2));
-  DCHECK(!double_scratch1.is(double_scratch2));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(!temp1.is(temp3));
-  DCHECK(!temp2.is(temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label zero, infinity, done;
-
-  __ li(temp3, Operand(ExternalReference::math_exp_constants(0)));
-
-  __ ldc1(double_scratch1, ExpConstant(0, temp3));
-  __ BranchF(&zero, NULL, ge, double_scratch1, input);
-
-  __ ldc1(double_scratch2, ExpConstant(1, temp3));
-  __ BranchF(&infinity, NULL, ge, input, double_scratch2);
-
-  __ ldc1(double_scratch1, ExpConstant(3, temp3));
-  __ ldc1(result, ExpConstant(4, temp3));
-  __ mul_d(double_scratch1, double_scratch1, input);
-  __ add_d(double_scratch1, double_scratch1, result);
-  __ FmoveLow(temp2, double_scratch1);
-  __ sub_d(double_scratch1, double_scratch1, result);
-  __ ldc1(result, ExpConstant(6, temp3));
-  __ ldc1(double_scratch2, ExpConstant(5, temp3));
-  __ mul_d(double_scratch1, double_scratch1, double_scratch2);
-  __ sub_d(double_scratch1, double_scratch1, input);
-  __ sub_d(result, result, double_scratch1);
-  __ mul_d(double_scratch2, double_scratch1, double_scratch1);
-  __ mul_d(result, result, double_scratch2);
-  __ ldc1(double_scratch2, ExpConstant(7, temp3));
-  __ mul_d(result, result, double_scratch2);
-  __ sub_d(result, result, double_scratch1);
-  // Mov 1 in double_scratch2 as math_exp_constants_array[8] == 1.
-  DCHECK(*reinterpret_cast<double*>
-         (ExternalReference::math_exp_constants(8).address()) == 1);
-  __ Move(double_scratch2, 1.);
-  __ add_d(result, result, double_scratch2);
-  __ srl(temp1, temp2, 11);
-  __ Ext(temp2, temp2, 0, 11);
-  __ Addu(temp1, temp1, Operand(0x3ff));
-
-  // Must not call ExpConstant() after overwriting temp3!
-  __ li(temp3, Operand(ExternalReference::math_exp_log_table()));
-  __ Lsa(temp3, temp3, temp2, 3);
-  __ lw(temp2, MemOperand(temp3, Register::kMantissaOffset));
-  __ lw(temp3, MemOperand(temp3, Register::kExponentOffset));
-  // The first word is loaded is the lower number register.
-  if (temp2.code() < temp3.code()) {
-    __ sll(at, temp1, 20);
-    __ Or(temp1, temp3, at);
-    __ Move(double_scratch1, temp2, temp1);
-  } else {
-    __ sll(at, temp1, 20);
-    __ Or(temp1, temp2, at);
-    __ Move(double_scratch1, temp3, temp1);
-  }
-  __ mul_d(result, result, double_scratch1);
-  __ BranchShort(&done);
-
-  __ bind(&zero);
-  __ Move(result, kDoubleRegZero);
-  __ BranchShort(&done);
-
-  __ bind(&infinity);
-  __ ldc1(result, ExpConstant(2, temp3));
-
-  __ bind(&done);
-}
-
 #ifdef DEBUG
 // nop(CODE_AGE_MARKER_NOP)
 static const uint32_t kCodeAgePatchFirstInstruction = 0x00010180;
diff --git a/src/mips/codegen-mips.h b/src/mips/codegen-mips.h
index ad7abb3..a4f8184 100644
--- a/src/mips/codegen-mips.h
+++ b/src/mips/codegen-mips.h
@@ -29,23 +29,6 @@
   DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
 };
 
-
-class MathExpGenerator : public AllStatic {
- public:
-  // Register input isn't modified. All other registers are clobbered.
-  static void EmitMathExp(MacroAssembler* masm,
-                          DoubleRegister input,
-                          DoubleRegister result,
-                          DoubleRegister double_scratch1,
-                          DoubleRegister double_scratch2,
-                          Register temp1,
-                          Register temp2,
-                          Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/mips/constants-mips.h b/src/mips/constants-mips.h
index f50a849..8301c5e 100644
--- a/src/mips/constants-mips.h
+++ b/src/mips/constants-mips.h
@@ -1186,11 +1186,10 @@
           int sa = SaFieldRaw() >> kSaShift;
           switch (sa) {
             case BITSWAP:
-              return kRegisterType;
             case WSBH:
             case SEB:
             case SEH:
-              return kUnsupported;
+              return kRegisterType;
           }
           sa >>= kBp2Bits;
           switch (sa) {
diff --git a/src/mips/deoptimizer-mips.cc b/src/mips/deoptimizer-mips.cc
index e9caaad..478b9df 100644
--- a/src/mips/deoptimizer-mips.cc
+++ b/src/mips/deoptimizer-mips.cc
@@ -117,8 +117,7 @@
 
   // Save all FPU registers before messing with them.
   __ Subu(sp, sp, Operand(kDoubleRegsSize));
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     const DoubleRegister fpu_reg = DoubleRegister::from_code(code);
diff --git a/src/mips/disasm-mips.cc b/src/mips/disasm-mips.cc
index e1890ee..bd07874 100644
--- a/src/mips/disasm-mips.cc
+++ b/src/mips/disasm-mips.cc
@@ -1264,11 +1264,30 @@
           }
           break;
         }
-        case SEB:
-        case SEH:
-        case WSBH:
-          UNREACHABLE();
+        case SEB: {
+          if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+            Format(instr, "seb     'rd, 'rt");
+          } else {
+            Unknown(instr);
+          }
           break;
+        }
+        case SEH: {
+          if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+            Format(instr, "seh     'rd, 'rt");
+          } else {
+            Unknown(instr);
+          }
+          break;
+        }
+        case WSBH: {
+          if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+            Format(instr, "wsbh    'rd, 'rt");
+          } else {
+            Unknown(instr);
+          }
+          break;
+        }
         default: {
           sa >>= kBp2Bits;
           switch (sa) {
@@ -1699,7 +1718,7 @@
 namespace disasm {
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -1762,8 +1781,8 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    v8::internal::PrintF(f, "%p    %08x      %s\n",
-        prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
+    v8::internal::PrintF(f, "%p    %08x      %s\n", static_cast<void*>(prev_pc),
+                         *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
   }
 }
 
diff --git a/src/mips/interface-descriptors-mips.cc b/src/mips/interface-descriptors-mips.cc
index 30a7a74..a8e6e57 100644
--- a/src/mips/interface-descriptors-mips.cc
+++ b/src/mips/interface-descriptors-mips.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {a0, a1, a2, a3, t0};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return a1; }
 const Register LoadDescriptor::NameRegister() { return a2; }
@@ -39,9 +47,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return a3; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return a2; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return a2; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return a0; }
 
@@ -63,8 +68,6 @@
 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) {
@@ -254,43 +257,24 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // a0 -- number of arguments
   // a1 -- function
   // a2 -- allocation site with elements kind
-  Register registers[] = {a1, a2};
+  Register registers[] = {a1, a2, a0};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {a1, a2, a0};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // register state
-  // a0 -- number of arguments
-  // a1 -- constructor function
-  Register registers[] = {a1};
-  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
-}
-
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {a1, a0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {a0};
diff --git a/src/mips/macro-assembler-mips.cc b/src/mips/macro-assembler-mips.cc
index 3dbfd6b..86aef38 100644
--- a/src/mips/macro-assembler-mips.cc
+++ b/src/mips/macro-assembler-mips.cc
@@ -18,6 +18,19 @@
 namespace v8 {
 namespace internal {
 
+// Floating point constants.
+const uint32_t kDoubleSignMask = HeapNumber::kSignMask;
+const uint32_t kDoubleExponentShift = HeapNumber::kExponentShift;
+const uint32_t kDoubleNaNShift = kDoubleExponentShift - 1;
+const uint32_t kDoubleNaNMask =
+    HeapNumber::kExponentMask | (1 << kDoubleNaNShift);
+
+const uint32_t kSingleSignMask = kBinary32SignMask;
+const uint32_t kSingleExponentMask = kBinary32ExponentMask;
+const uint32_t kSingleExponentShift = kBinary32ExponentShift;
+const uint32_t kSingleNaNShift = kSingleExponentShift - 1;
+const uint32_t kSingleNaNMask = kSingleExponentMask | (1 << kSingleNaNShift);
+
 MacroAssembler::MacroAssembler(Isolate* arg_isolate, void* buffer, int size,
                                CodeObjectRequired create_code_object)
     : Assembler(arg_isolate, buffer, size),
@@ -30,7 +43,6 @@
   }
 }
 
-
 void MacroAssembler::Load(Register dst,
                           const MemOperand& src,
                           Representation r) {
@@ -67,7 +79,6 @@
   }
 }
 
-
 void MacroAssembler::LoadRoot(Register destination,
                               Heap::RootListIndex index) {
   lw(destination, MemOperand(s6, index << kPointerSizeLog2));
@@ -1191,6 +1202,79 @@
 
 // ------------Pseudo-instructions-------------
 
+// Word Swap Byte
+void MacroAssembler::ByteSwapSigned(Register reg, int operand_size) {
+  DCHECK(operand_size == 1 || operand_size == 2 || operand_size == 4);
+  if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+    if (operand_size == 2) {
+      seh(reg, reg);
+    } else if (operand_size == 1) {
+      seb(reg, reg);
+    }
+    // No need to do any preparation if operand_size is 4
+
+    wsbh(reg, reg);
+    rotr(reg, reg, 16);
+  } else if (IsMipsArchVariant(kMips32r1) || IsMipsArchVariant(kLoongson)) {
+    if (operand_size == 1) {
+      sll(reg, reg, 24);
+      sra(reg, reg, 24);
+    } else if (operand_size == 2) {
+      sll(reg, reg, 16);
+      sra(reg, reg, 16);
+    }
+    // No need to do any preparation if operand_size is 4
+
+    Register tmp = t0;
+    Register tmp2 = t1;
+
+    andi(tmp2, reg, 0xFF);
+    sll(tmp2, tmp2, 24);
+    or_(tmp, zero_reg, tmp2);
+
+    andi(tmp2, reg, 0xFF00);
+    sll(tmp2, tmp2, 8);
+    or_(tmp, tmp, tmp2);
+
+    srl(reg, reg, 8);
+    andi(tmp2, reg, 0xFF00);
+    or_(tmp, tmp, tmp2);
+
+    srl(reg, reg, 16);
+    andi(tmp2, reg, 0xFF);
+    or_(tmp, tmp, tmp2);
+
+    or_(reg, tmp, zero_reg);
+  }
+}
+
+void MacroAssembler::ByteSwapUnsigned(Register reg, int operand_size) {
+  DCHECK(operand_size == 1 || operand_size == 2);
+
+  if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+    if (operand_size == 1) {
+      andi(reg, reg, 0xFF);
+    } else {
+      andi(reg, reg, 0xFFFF);
+    }
+    // No need to do any preparation if operand_size is 4
+
+    wsbh(reg, reg);
+    rotr(reg, reg, 16);
+  } else if (IsMipsArchVariant(kMips32r1) || IsMipsArchVariant(kLoongson)) {
+    if (operand_size == 1) {
+      sll(reg, reg, 24);
+    } else {
+      Register tmp = t0;
+
+      andi(tmp, reg, 0xFF00);
+      sll(reg, reg, 24);
+      sll(tmp, tmp, 8);
+      or_(reg, tmp, reg);
+    }
+  }
+}
+
 void MacroAssembler::Ulw(Register rd, const MemOperand& rs) {
   DCHECK(!rd.is(at));
   DCHECK(!rs.rm().is(at));
@@ -3832,9 +3916,6 @@
   Label start;
   bind(&start);
   int32_t target_int = reinterpret_cast<int32_t>(target);
-  // Must record previous source positions before the
-  // li() generates a new code target.
-  positions_recorder()->WriteRecordedPositions();
   li(t9, Operand(target_int, rmode), CONSTANT_SIZE);
   Call(t9, cond, rs, rt, bd);
   DCHECK_EQ(CallSize(target, rmode, cond, rs, rt, bd),
@@ -4655,9 +4736,7 @@
                                                  int elements_offset) {
   DCHECK(!AreAliased(value_reg, key_reg, elements_reg, scratch1, scratch2,
                      scratch3));
-  Label smi_value, maybe_nan, have_double_value, is_nan, done;
-  Register mantissa_reg = scratch2;
-  Register exponent_reg = scratch3;
+  Label smi_value, done;
 
   // Handle smi values specially.
   JumpIfSmi(value_reg, &smi_value);
@@ -4669,52 +4748,97 @@
            fail,
            DONT_DO_SMI_CHECK);
 
-  // Check for nan: all NaN values have a value greater (signed) than 0x7ff00000
-  // in the exponent.
-  li(scratch1, Operand(kHoleNanUpper32 & HeapNumber::kExponentMask));
-  lw(exponent_reg, FieldMemOperand(value_reg, HeapNumber::kExponentOffset));
-  Branch(&maybe_nan, ge, exponent_reg, Operand(scratch1));
+  // Double value, turn potential sNaN into qNan.
+  DoubleRegister double_result = f0;
+  DoubleRegister double_scratch = f2;
 
-  lw(mantissa_reg, FieldMemOperand(value_reg, HeapNumber::kMantissaOffset));
-
-  bind(&have_double_value);
-  Lsa(scratch1, elements_reg, key_reg, kDoubleSizeLog2 - kSmiTagSize);
-  sw(mantissa_reg,
-      FieldMemOperand(scratch1, FixedDoubleArray::kHeaderSize - elements_offset
-          + kHoleNanLower32Offset));
-  sw(exponent_reg,
-      FieldMemOperand(scratch1, FixedDoubleArray::kHeaderSize - elements_offset
-          + kHoleNanUpper32Offset));
-  jmp(&done);
-
-  bind(&maybe_nan);
-  // Could be NaN or Infinity. If fraction is not zero, it's NaN, otherwise
-  // it's an Infinity, and the non-NaN code path applies.
-  Branch(&is_nan, gt, exponent_reg, Operand(scratch1));
-  lw(mantissa_reg, FieldMemOperand(value_reg, HeapNumber::kMantissaOffset));
-  Branch(&have_double_value, eq, mantissa_reg, Operand(zero_reg));
-  bind(&is_nan);
-  // Load canonical NaN for storing into the double array.
-  LoadRoot(at, Heap::kNanValueRootIndex);
-  lw(mantissa_reg, FieldMemOperand(at, HeapNumber::kMantissaOffset));
-  lw(exponent_reg, FieldMemOperand(at, HeapNumber::kExponentOffset));
-  jmp(&have_double_value);
+  ldc1(double_result, FieldMemOperand(value_reg, HeapNumber::kValueOffset));
+  Branch(USE_DELAY_SLOT, &done);  // Canonicalization is one instruction.
+  FPUCanonicalizeNaN(double_result, double_result);
 
   bind(&smi_value);
+  Register untagged_value = scratch2;
+  SmiUntag(untagged_value, value_reg);
+  mtc1(untagged_value, double_scratch);
+  cvt_d_w(double_result, double_scratch);
+
+  bind(&done);
   Addu(scratch1, elements_reg,
       Operand(FixedDoubleArray::kHeaderSize - kHeapObjectTag -
               elements_offset));
   Lsa(scratch1, scratch1, key_reg, kDoubleSizeLog2 - kSmiTagSize);
   // scratch1 is now effective address of the double element
+  sdc1(double_result, MemOperand(scratch1, 0));
+}
 
-  Register untagged_value = scratch2;
-  SmiUntag(untagged_value, value_reg);
-  mtc1(untagged_value, f2);
-  cvt_d_w(f0, f2);
-  sdc1(f0, MemOperand(scratch1, 0));
+void MacroAssembler::SubNanPreservePayloadAndSign_s(FloatRegister fd,
+                                                    FloatRegister fs,
+                                                    FloatRegister ft) {
+  FloatRegister dest = fd.is(fs) || fd.is(ft) ? kLithiumScratchDouble : fd;
+  Label check_nan, save_payload, done;
+  Register scratch1 = t8;
+  Register scratch2 = t9;
+
+  sub_s(dest, fs, ft);
+  // Check if the result of subtraction is NaN.
+  BranchF32(nullptr, &check_nan, eq, fs, ft);
+  Branch(USE_DELAY_SLOT, &done);
+  dest.is(fd) ? nop() : mov_s(fd, dest);
+
+  bind(&check_nan);
+  // Check if first operand is a NaN.
+  mfc1(scratch1, fs);
+  BranchF32(nullptr, &save_payload, eq, fs, fs);
+  // Second operand must be a NaN.
+  mfc1(scratch1, ft);
+
+  bind(&save_payload);
+  // Reserve payload.
+  And(scratch1, scratch1,
+      Operand(kSingleSignMask | ((1 << kSingleNaNShift) - 1)));
+  mfc1(scratch2, dest);
+  And(scratch2, scratch2, Operand(kSingleNaNMask));
+  Or(scratch2, scratch2, scratch1);
+  mtc1(scratch2, fd);
+
   bind(&done);
 }
 
+void MacroAssembler::SubNanPreservePayloadAndSign_d(DoubleRegister fd,
+                                                    DoubleRegister fs,
+                                                    DoubleRegister ft) {
+  FloatRegister dest = fd.is(fs) || fd.is(ft) ? kLithiumScratchDouble : fd;
+  Label check_nan, save_payload, done;
+  Register scratch1 = t8;
+  Register scratch2 = t9;
+
+  sub_d(dest, fs, ft);
+  // Check if the result of subtraction is NaN.
+  BranchF64(nullptr, &check_nan, eq, fs, ft);
+  Branch(USE_DELAY_SLOT, &done);
+  dest.is(fd) ? nop() : mov_d(fd, dest);
+
+  bind(&check_nan);
+  // Check if first operand is a NaN.
+  Mfhc1(scratch1, fs);
+  mov_s(dest, fs);
+  BranchF64(nullptr, &save_payload, eq, fs, fs);
+  // Second operand must be a NaN.
+  Mfhc1(scratch1, ft);
+  mov_s(dest, ft);
+
+  bind(&save_payload);
+  // Reserve payload.
+  And(scratch1, scratch1,
+      Operand(kDoubleSignMask | ((1 << kDoubleNaNShift) - 1)));
+  Mfhc1(scratch2, dest);
+  And(scratch2, scratch2, Operand(kDoubleNaNMask));
+  Or(scratch2, scratch2, scratch1);
+  Move_s(fd, dest);
+  Mthc1(scratch2, fd);
+
+  bind(&done);
+}
 
 void MacroAssembler::CompareMapAndBranch(Register obj,
                                          Register scratch,
@@ -4778,6 +4902,10 @@
   Branch(fail, ne, scratch, Operand(at));
 }
 
+void MacroAssembler::FPUCanonicalizeNaN(const DoubleRegister dst,
+                                        const DoubleRegister src) {
+  sub_d(dst, src, kDoubleRegZero);
+}
 
 void MacroAssembler::GetWeakValue(Register value, Handle<WeakCell> cell) {
   li(value, Operand(cell));
@@ -4998,11 +5126,12 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  li(t0, Operand(step_in_enabled));
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  li(t0, Operand(last_step_action));
   lb(t0, MemOperand(t0));
-  Branch(&skip_flooding, eq, t0, Operand(zero_reg));
+  Branch(&skip_flooding, lt, t0, Operand(StepIn));
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -5746,9 +5875,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   lw(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  lw(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  lw(vector,
-     FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  lw(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  lw(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -6662,8 +6790,7 @@
   if (reg5.is_valid()) regs |= reg5.bit();
   if (reg6.is_valid()) regs |= reg6.bit();
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     Register candidate = Register::from_code(code);
diff --git a/src/mips/macro-assembler-mips.h b/src/mips/macro-assembler-mips.h
index 2417025..8c6e5bd 100644
--- a/src/mips/macro-assembler-mips.h
+++ b/src/mips/macro-assembler-mips.h
@@ -687,6 +687,10 @@
   // ---------------------------------------------------------------------------
   // Pseudo-instructions.
 
+  // Change endianness
+  void ByteSwapSigned(Register reg, int operand_size);
+  void ByteSwapUnsigned(Register reg, int operand_size);
+
   void mov(Register rd, Register rt) { or_(rd, rt, zero_reg); }
 
   void Ulh(Register rd, const MemOperand& rs);
@@ -871,6 +875,12 @@
   void Floor_w_d(FPURegister fd, FPURegister fs);
   void Ceil_w_d(FPURegister fd, FPURegister fs);
 
+  // Preserve value of a NaN operand
+  void SubNanPreservePayloadAndSign_s(FPURegister fd, FPURegister fs,
+                                      FPURegister ft);
+  void SubNanPreservePayloadAndSign_d(FPURegister fd, FPURegister fs,
+                                      FPURegister ft);
+
   // FP32 mode: Move the general purpose register into
   // the high part of the double-register pair.
   // FP64 mode: Move the general-purpose register into
@@ -1231,6 +1241,9 @@
                        Handle<WeakCell> cell, Handle<Code> success,
                        SmiCheckType smi_check_type);
 
+  // If the value is a NaN, canonicalize the value else, do nothing.
+  void FPUCanonicalizeNaN(const DoubleRegister dst, const DoubleRegister src);
+
   // Get value of the weak cell.
   void GetWeakValue(Register value, Handle<WeakCell> cell);
 
diff --git a/src/mips/simulator-mips.cc b/src/mips/simulator-mips.cc
index f8dc515..71dcda2 100644
--- a/src/mips/simulator-mips.cc
+++ b/src/mips/simulator-mips.cc
@@ -864,9 +864,7 @@
   last_debugger_input_ = input;
 }
 
-
-void Simulator::FlushICache(v8::internal::HashMap* i_cache,
-                            void* start_addr,
+void Simulator::FlushICache(base::HashMap* i_cache, void* start_addr,
                             size_t size) {
   intptr_t start = reinterpret_cast<intptr_t>(start_addr);
   int intra_line = (start & CachePage::kLineMask);
@@ -887,10 +885,8 @@
   }
 }
 
-
-CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
-  v8::internal::HashMap::Entry* entry =
-      i_cache->LookupOrInsert(page, ICacheHash(page));
+CachePage* Simulator::GetCachePage(base::HashMap* i_cache, void* page) {
+  base::HashMap::Entry* entry = i_cache->LookupOrInsert(page, ICacheHash(page));
   if (entry->value == NULL) {
     CachePage* new_page = new CachePage();
     entry->value = new_page;
@@ -900,9 +896,7 @@
 
 
 // Flush from start up to and not including start + size.
-void Simulator::FlushOnePage(v8::internal::HashMap* i_cache,
-                             intptr_t start,
-                             int size) {
+void Simulator::FlushOnePage(base::HashMap* i_cache, intptr_t start, int size) {
   DCHECK(size <= CachePage::kPageSize);
   DCHECK(AllOnOnePage(start, size - 1));
   DCHECK((start & CachePage::kLineMask) == 0);
@@ -914,9 +908,7 @@
   memset(valid_bytemap, CachePage::LINE_INVALID, size >> CachePage::kLineShift);
 }
 
-
-void Simulator::CheckICache(v8::internal::HashMap* i_cache,
-                            Instruction* instr) {
+void Simulator::CheckICache(base::HashMap* i_cache, Instruction* instr) {
   intptr_t address = reinterpret_cast<intptr_t>(instr);
   void* page = reinterpret_cast<void*>(address & (~CachePage::kPageMask));
   void* line = reinterpret_cast<void*>(address & (~CachePage::kLineMask));
@@ -949,7 +941,7 @@
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
-    i_cache_ = new v8::internal::HashMap(&ICacheMatch);
+    i_cache_ = new base::HashMap(&ICacheMatch);
     isolate_->set_simulator_i_cache(i_cache_);
   }
   Initialize(isolate);
@@ -1062,10 +1054,10 @@
 
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
   if (i_cache != nullptr) {
-    for (HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
+    for (base::HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
          entry = i_cache->Next(entry)) {
       delete static_cast<CachePage*>(entry->value);
     }
@@ -2088,15 +2080,17 @@
           case ExternalReference::BUILTIN_FP_FP_CALL:
           case ExternalReference::BUILTIN_COMPARE_CALL:
             PrintF("Call to host function at %p with args %f, %f",
-                   FUNCTION_ADDR(generic_target), dval0, dval1);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   dval1);
             break;
           case ExternalReference::BUILTIN_FP_CALL:
             PrintF("Call to host function at %p with arg %f",
-                FUNCTION_ADDR(generic_target), dval0);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0);
             break;
           case ExternalReference::BUILTIN_FP_INT_CALL:
             PrintF("Call to host function at %p with args %f, %d",
-                   FUNCTION_ADDR(generic_target), dval0, ival);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   ival);
             break;
           default:
             UNREACHABLE();
@@ -2195,13 +2189,15 @@
         PrintF(
             "Call to host triple returning runtime function %p "
             "args %08x, %08x, %08x, %08x, %08x\n",
-            FUNCTION_ADDR(target), arg1, arg2, arg3, arg4, arg5);
+            static_cast<void*>(FUNCTION_ADDR(target)), arg1, arg2, arg3, arg4,
+            arg5);
       }
       // arg0 is a hidden argument pointing to the return location, so don't
       // pass it to the target function.
       ObjectTriple result = target(arg1, arg2, arg3, arg4, arg5);
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Returned { %p, %p, %p }\n", result.x, result.y, result.z);
+        PrintF("Returned { %p, %p, %p }\n", static_cast<void*>(result.x),
+               static_cast<void*>(result.y), static_cast<void*>(result.z));
       }
       // Return is passed back in address pointed to by hidden first argument.
       ObjectTriple* sim_result = reinterpret_cast<ObjectTriple*>(arg0);
@@ -2216,13 +2212,8 @@
         PrintF(
             "Call to host function at %p "
             "args %08x, %08x, %08x, %08x, %08x, %08x\n",
-            FUNCTION_ADDR(target),
-            arg0,
-            arg1,
-            arg2,
-            arg3,
-            arg4,
-            arg5);
+            static_cast<void*>(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));
@@ -3842,12 +3833,51 @@
           alu_out = static_cast<int32_t>(output);
           break;
         }
-        case SEB:
-        case SEH:
-        case WSBH:
-          alu_out = 0x12345678;
-          UNREACHABLE();
+        case SEB: {
+          uint8_t input = static_cast<uint8_t>(rt());
+          uint32_t output = input;
+          uint32_t mask = 0x00000080;
+
+          // Extending sign
+          if (mask & input) {
+            output |= 0xFFFFFF00;
+          }
+
+          alu_out = static_cast<int32_t>(output);
           break;
+        }
+        case SEH: {
+          uint16_t input = static_cast<uint16_t>(rt());
+          uint32_t output = input;
+          uint32_t mask = 0x00008000;
+
+          // Extending sign
+          if (mask & input) {
+            output |= 0xFFFF0000;
+          }
+
+          alu_out = static_cast<int32_t>(output);
+          break;
+        }
+        case WSBH: {
+          uint32_t input = static_cast<uint32_t>(rt());
+          uint32_t output = 0;
+
+          uint32_t mask = 0xFF000000;
+          for (int i = 0; i < 4; i++) {
+            uint32_t tmp = mask & input;
+            if (i % 2 == 0) {
+              tmp = tmp >> 8;
+            } else {
+              tmp = tmp << 8;
+            }
+            output = output | tmp;
+            mask = mask >> 8;
+          }
+
+          alu_out = static_cast<int32_t>(output);
+          break;
+        }
         default: {
           const uint8_t bp = get_instr()->Bp2Value();
           sa >>= kBp2Bits;
diff --git a/src/mips/simulator-mips.h b/src/mips/simulator-mips.h
index e1c42fd..5c77756 100644
--- a/src/mips/simulator-mips.h
+++ b/src/mips/simulator-mips.h
@@ -75,7 +75,7 @@
 // Running with a simulator.
 
 #include "src/assembler.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 
 namespace v8 {
 namespace internal {
@@ -216,7 +216,7 @@
   // Call on program start.
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   // V8 generally calls into generated JS code with 5 parameters and into
   // generated RegExp code with 7 parameters. This is a convenience function,
@@ -236,8 +236,7 @@
   char* last_debugger_input() { return last_debugger_input_; }
 
   // ICache checking.
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size);
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size);
 
   // Returns true if pc register contains one of the 'special_values' defined
   // below (bad_ra, end_sim_pc).
@@ -401,10 +400,9 @@
   }
 
   // ICache.
-  static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr);
-  static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                           int size);
-  static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page);
+  static void CheckICache(base::HashMap* i_cache, Instruction* instr);
+  static void FlushOnePage(base::HashMap* i_cache, intptr_t start, int size);
+  static CachePage* GetCachePage(base::HashMap* i_cache, void* page);
 
   enum Exception {
     none,
@@ -450,7 +448,7 @@
   char* last_debugger_input_;
 
   // Icache simulation.
-  v8::internal::HashMap* i_cache_;
+  base::HashMap* i_cache_;
 
   v8::internal::Isolate* isolate_;
 
diff --git a/src/mips64/assembler-mips64-inl.h b/src/mips64/assembler-mips64-inl.h
index 7903094..82267ed 100644
--- a/src/mips64/assembler-mips64-inl.h
+++ b/src/mips64/assembler-mips64-inl.h
@@ -445,6 +445,8 @@
   CheckTrampolinePoolQuick();
 }
 
+template <>
+inline void Assembler::EmitHelper(uint8_t x);
 
 template <typename T>
 void Assembler::EmitHelper(T x) {
@@ -453,6 +455,14 @@
   CheckTrampolinePoolQuick();
 }
 
+template <>
+void Assembler::EmitHelper(uint8_t x) {
+  *reinterpret_cast<uint8_t*>(pc_) = x;
+  pc_ += sizeof(x);
+  if (reinterpret_cast<intptr_t>(pc_) % kInstrSize == 0) {
+    CheckTrampolinePoolQuick();
+  }
+}
 
 void Assembler::emit(Instr x, CompactBranchType is_compact_branch) {
   if (!is_buffer_growth_blocked()) {
diff --git a/src/mips64/assembler-mips64.cc b/src/mips64/assembler-mips64.cc
index 2b8bc72..1dece1c 100644
--- a/src/mips64/assembler-mips64.cc
+++ b/src/mips64/assembler-mips64.cc
@@ -172,37 +172,26 @@
   return Assembler::target_address_at(pc_, host_);
 }
 
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(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();
-  }
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_,
+                                   reinterpret_cast<Address>(size), flush_mode);
 }
 
 // -----------------------------------------------------------------------------
@@ -311,6 +300,8 @@
       static_cast<int>((buffer_ + buffer_size_) - reloc_info_writer.pos());
   desc->origin = this;
   desc->constant_pool_size = 0;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -1263,7 +1254,6 @@
 
 
 void Assembler::bal(int16_t offset) {
-  positions_recorder()->WriteRecordedPositions();
   bgezal(zero_reg, offset);
 }
 
@@ -1276,7 +1266,6 @@
 
 void Assembler::balc(int32_t offset) {
   DCHECK(kArchVariant == kMips64r6);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BALC, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1323,7 +1312,6 @@
 void Assembler::bgezal(Register rs, int16_t offset) {
   DCHECK(kArchVariant != kMips64r6 || rs.is(zero_reg));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BGEZAL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1394,7 +1382,6 @@
 void Assembler::bltzal(Register rs, int16_t offset) {
   DCHECK(kArchVariant != kMips64r6 || rs.is(zero_reg));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BLTZAL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1430,7 +1417,6 @@
 void Assembler::blezalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BLEZ, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1439,7 +1425,6 @@
 void Assembler::bgezalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BLEZ, rt, rt, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1448,7 +1433,6 @@
   DCHECK(kArchVariant != kMips64r6);
   DCHECK(!(rs.is(zero_reg)));
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(REGIMM, rs, BGEZALL, offset);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1457,7 +1441,6 @@
 void Assembler::bltzalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BGTZ, rt, rt, offset, CompactBranchType::COMPACT_BRANCH);
 }
 
@@ -1465,7 +1448,6 @@
 void Assembler::bgtzalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(BGTZ, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1474,7 +1456,6 @@
 void Assembler::beqzalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(ADDI, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1483,7 +1464,6 @@
 void Assembler::bnezalc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
   DCHECK(!(rt.is(zero_reg)));
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(DADDI, zero_reg, rt, offset,
                     CompactBranchType::COMPACT_BRANCH);
 }
@@ -1549,7 +1529,6 @@
   uint64_t imm = jump_offset(target);
   if (target->is_bound()) {
     BlockTrampolinePoolScope block_trampoline_pool(this);
-    positions_recorder()->WriteRecordedPositions();
     GenInstrJump(static_cast<Opcode>(kJalRawMark),
                  static_cast<uint32_t>(imm >> 2) & kImm26Mask);
     BlockTrampolinePoolFor(1);  // For associated delay slot.
@@ -1562,9 +1541,6 @@
 void Assembler::jr(Register rs) {
   if (kArchVariant != kMips64r6) {
     BlockTrampolinePoolScope block_trampoline_pool(this);
-    if (rs.is(ra)) {
-      positions_recorder()->WriteRecordedPositions();
-    }
     GenInstrRegister(SPECIAL, rs, zero_reg, zero_reg, 0, JR);
     BlockTrampolinePoolFor(1);  // For associated delay slot.
   } else {
@@ -1575,7 +1551,6 @@
 
 void Assembler::jal(int64_t target) {
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrJump(JAL, static_cast<uint32_t>(target >> 2) & kImm26Mask);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1584,7 +1559,6 @@
 void Assembler::jalr(Register rs, Register rd) {
   DCHECK(rs.code() != rd.code());
   BlockTrampolinePoolScope block_trampoline_pool(this);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR);
   BlockTrampolinePoolFor(1);  // For associated delay slot.
 }
@@ -1598,7 +1572,6 @@
 
 void Assembler::jialc(Register rt, int16_t offset) {
   DCHECK(kArchVariant == kMips64r6);
-  positions_recorder()->WriteRecordedPositions();
   GenInstrImmediate(POP76, zero_reg, rt, offset);
 }
 
@@ -2545,6 +2518,30 @@
   GenInstrRegister(SPECIAL3, rs, rt, rd, sa, DBSHFL);
 }
 
+void Assembler::wsbh(Register rd, Register rt) {
+  DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6);
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, WSBH, BSHFL);
+}
+
+void Assembler::dsbh(Register rd, Register rt) {
+  DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6);
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, DSBH, DBSHFL);
+}
+
+void Assembler::dshd(Register rd, Register rt) {
+  DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6);
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, DSHD, DBSHFL);
+}
+
+void Assembler::seh(Register rd, Register rt) {
+  DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6);
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, SEH, BSHFL);
+}
+
+void Assembler::seb(Register rd, Register rt) {
+  DCHECK(kArchVariant == kMips64r2 || kArchVariant == kMips64r6);
+  GenInstrRegister(SPECIAL3, zero_reg, rt, rd, SEB, BSHFL);
+}
 
 // --------Coprocessor-instructions----------------
 
@@ -3452,7 +3449,6 @@
   }
 }
 
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/mips64/assembler-mips64.h b/src/mips64/assembler-mips64.h
index f93bc48..ff3611d 100644
--- a/src/mips64/assembler-mips64.h
+++ b/src/mips64/assembler-mips64.h
@@ -125,8 +125,6 @@
     return r;
   }
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -155,6 +153,8 @@
 
 Register ToRegister(int num);
 
+static const bool kSimpleFPAliasing = true;
+
 // Coprocessor register.
 struct FPURegister {
   enum Code {
@@ -173,8 +173,6 @@
   // to number of 32-bit FPU regs, but kNumAllocatableRegisters refers to
   // number of Double regs (64-bit regs, or FPU-reg-pairs).
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
   bool is(FPURegister reg) const { return reg_code == reg.reg_code; }
   FPURegister low() const {
@@ -907,6 +905,12 @@
   void align(Register rd, Register rs, Register rt, uint8_t bp);
   void dalign(Register rd, Register rs, Register rt, uint8_t bp);
 
+  void wsbh(Register rd, Register rt);
+  void dsbh(Register rd, Register rt);
+  void dshd(Register rd, Register rt);
+  void seh(Register rd, Register rt);
+  void seb(Register rd, Register rt);
+
   // --------Coprocessor-instructions----------------
 
   // Load, store, and move.
diff --git a/src/mips64/builtins-mips64.cc b/src/mips64/builtins-mips64.cc
index 7a0d81a..025093e 100644
--- a/src/mips64/builtins-mips64.cc
+++ b/src/mips64/builtins-mips64.cc
@@ -16,10 +16,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- a0                 : number of arguments excluding receiver
   //  -- a1                 : target
@@ -38,23 +35,8 @@
   __ ld(cp, FieldMemOperand(a1, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(a1);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(a3);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(a1, a3);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
+  const int num_extra_args = 2;
+  __ Push(a1, a3);
 
   // JumpToExternalReference expects a0 to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -144,6 +126,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- a0                 : number of arguments
+  //  -- a1                 : function
+  //  -- cp                 : context
   //  -- ra                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -153,9 +137,9 @@
                                      : Heap::kMinusInfinityValueRootIndex;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in a1 and the double value in f0.
-  __ LoadRoot(a1, root_index);
-  __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in t1 and the double value in f0.
+  __ LoadRoot(t1, root_index);
+  __ ldc1(f0, FieldMemOperand(t1, HeapNumber::kValueOffset));
   __ Addu(a3, a0, 1);
 
   Label done_loop, loop;
@@ -170,35 +154,39 @@
     __ ld(a2, MemOperand(at));
 
     // Load the double value of the parameter into f2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(a2, &convert_smi);
     __ ld(a4, FieldMemOperand(a2, HeapObject::kMapOffset));
     __ JumpIfRoot(a4, Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(ra, fp);
+      __ Move(fp, sp);
+      __ Push(cp, a1);
       __ SmiTag(a0);
       __ SmiTag(a3);
-      __ Push(a0, a1, a3);
+      __ Push(a0, t1, a3);
       __ mov(a0, a2);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mov(a2, v0);
-      __ Pop(a0, a1, a3);
+      __ Pop(a0, t1, a3);
       {
         // Restore the double accumulator value (f0).
         Label restore_smi, done_restore;
-        __ JumpIfSmi(a1, &restore_smi);
-        __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+        __ JumpIfSmi(t1, &restore_smi);
+        __ ldc1(f0, FieldMemOperand(t1, HeapNumber::kValueOffset));
         __ jmp(&done_restore);
         __ bind(&restore_smi);
-        __ SmiToDoubleFPURegister(a1, f0, a4);
+        __ SmiToDoubleFPURegister(t1, f0, a4);
         __ bind(&done_restore);
       }
       __ SmiUntag(a3);
       __ SmiUntag(a0);
+      __ Pop(cp, a1);
+      __ Pop(ra, fp);
     }
     __ jmp(&convert);
     __ bind(&convert_number);
@@ -223,20 +211,20 @@
     }
     __ Move(at, f0);
     __ Branch(&loop, eq, a4, Operand(at));
-    __ mov(a1, a2);
+    __ mov(t1, a2);
     __ jmp(&loop);
 
     // At least one side is NaN, which means that the result will be NaN too.
     __ bind(&compare_nan);
-    __ LoadRoot(a1, Heap::kNanValueRootIndex);
-    __ ldc1(f0, FieldMemOperand(a1, HeapNumber::kValueOffset));
+    __ LoadRoot(t1, Heap::kNanValueRootIndex);
+    __ ldc1(f0, FieldMemOperand(t1, HeapNumber::kValueOffset));
     __ jmp(&loop);
   }
 
   __ bind(&done_loop);
   __ Dlsa(sp, sp, a3, kPointerSizeLog2);
   __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a1);  // In delay slot.
+  __ mov(v0, t1);  // In delay slot.
 }
 
 // static
@@ -261,8 +249,7 @@
   }
 
   // 2a. Convert first argument to number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0.
   __ bind(&no_arguments);
@@ -309,8 +296,7 @@
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ Push(a1, a3);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(a0, v0);
       __ Pop(a1, a3);
     }
@@ -694,8 +680,8 @@
   __ AssertGeneratorObject(a1);
 
   // Store input value into generator object.
-  __ sd(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOffset));
-  __ RecordWriteField(a1, JSGeneratorObject::kInputOffset, v0, a3,
+  __ sd(v0, FieldMemOperand(a1, JSGeneratorObject::kInputOrDebugPosOffset));
+  __ RecordWriteField(a1, JSGeneratorObject::kInputOrDebugPosOffset, v0, a3,
                       kRAHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -706,20 +692,22 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ li(a5, Operand(last_step_action));
+  __ lb(a5, MemOperand(a5));
+  __ Branch(&prepare_step_in_if_stepping, ge, a5, Operand(StepIn));
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ li(a5, Operand(debug_suspended_generator));
+  __ ld(a5, MemOperand(a5));
+  __ Branch(&prepare_step_in_suspended_generator, eq, a1, Operand(a5));
+  __ bind(&stepping_prepared);
 
   // Push receiver.
   __ ld(a5, FieldMemOperand(a1, JSGeneratorObject::kReceiverOffset));
@@ -763,7 +751,6 @@
     __ 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.
@@ -816,6 +803,26 @@
     __ Move(v0, a1);  // Continuation expects generator object in v0.
     __ Jump(a3);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2, a4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(a1, a2);
+  }
+  __ Branch(USE_DELAY_SLOT, &stepping_prepared);
+  __ ld(a4, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(a1, a2);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(a1, a2);
+  }
+  __ Branch(USE_DELAY_SLOT, &stepping_prepared);
+  __ ld(a4, FieldMemOperand(a1, JSGeneratorObject::kFunctionOffset));
 }
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
@@ -940,6 +947,21 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ ld(args_count,
+        MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lw(t0, FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  // Drop receiver + arguments.
+  __ Daddu(sp, sp, args_count);
+}
+
 // 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
@@ -1042,16 +1064,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, t0);
   __ Jump(ra);
 
   // Load debug copy of the bytecode array.
@@ -1073,6 +1086,31 @@
   __ Jump(a4);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ ld(a1, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ ld(kContextRegister,
+        MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, t0);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(v0);
+
+    // Push function as argument and compile for baseline.
+    __ push(a1);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(v0);
+  }
+  __ Jump(ra);
+}
+
 // static
 void Builtins::Generate_InterpreterPushArgsAndCallImpl(
     MacroAssembler* masm, TailCallMode tail_call_mode) {
@@ -1229,13 +1267,27 @@
                               SharedFunctionInfo::kOffsetToPreviousOsrAstId));
   const int bailout_id = BailoutId::None().ToInt();
   __ Branch(&loop_bottom, ne, temp, Operand(Smi::FromInt(bailout_id)));
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ ld(temp, FieldMemOperand(array_pointer,
                               SharedFunctionInfo::kOffsetToPreviousLiterals));
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  __ ld(a4, FieldMemOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(a4, &maybe_cleared_weakcell);
+  // a4 is a pointer, therefore temp is a WeakCell pointing to a literals array.
   __ ld(temp, FieldMemOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // a4 is a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ Branch(&gotta_call_runtime, eq, a4, Operand(Smi::FromInt(0)));
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ ld(a4, MemOperand(sp, 0));
   __ sd(temp, FieldMemOperand(a4, JSFunction::kLiteralsOffset));
   __ push(index);
@@ -1650,6 +1702,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- a0                 : number of arguments
+  //  -- a1                 : function
+  //  -- cp                 : context
   //  -- sp[0] : receiver
   // -----------------------------------
 
@@ -1689,7 +1744,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ Push(a0, ra, fp);
+    __ Move(fp, sp);
+    __ Push(cp, a1);
+    __ Push(Smi::FromInt(0));
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2686,6 +2748,83 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes on argument in a0.
+  __ AssertString(a0);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ lwu(a2, FieldMemOperand(a0, String::kHashFieldOffset));
+  __ And(at, a2, Operand(String::kContainsCachedArrayIndexMask));
+  __ Branch(&runtime, ne, at, Operand(zero_reg));
+  __ IndexFromHash(a2, v0);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(a0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in a0.
+  Label not_smi;
+  __ JumpIfNotSmi(a0, &not_smi);
+  __ Ret(USE_DELAY_SLOT);
+  __ mov(v0, a0);
+  __ bind(&not_smi);
+
+  Label not_heap_number;
+  __ GetObjectType(a0, a1, a1);
+  // a0: receiver
+  // a1: receiver instance type
+  __ Branch(&not_heap_number, ne, a1, Operand(HEAP_NUMBER_TYPE));
+  __ Ret(USE_DELAY_SLOT);
+  __ mov(v0, a0);
+  __ bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes on argument in a0.
+  __ AssertNotNumber(a0);
+
+  Label not_string;
+  __ GetObjectType(a0, a1, a1);
+  // a0: receiver
+  // a1: receiver instance type
+  __ Branch(&not_string, hs, a1, Operand(FIRST_NONSTRING_TYPE));
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ bind(&not_string);
+
+  Label not_oddball;
+  __ Branch(&not_oddball, ne, a1, Operand(ODDBALL_TYPE));
+  __ Ret(USE_DELAY_SLOT);
+  __ ld(v0, FieldMemOperand(a0, Oddball::kToNumberOffset));  // In delay slot.
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(a0);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // State setup as expected by MacroAssembler::InvokePrologue.
   // ----------- S t a t e -------------
diff --git a/src/mips64/code-stubs-mips64.cc b/src/mips64/code-stubs-mips64.cc
index 5702c78..89eff90 100644
--- a/src/mips64/code-stubs-mips64.cc
+++ b/src/mips64/code-stubs-mips64.cc
@@ -20,70 +20,29 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(a0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ dsll(t9, a0, kPointerSizeLog2);
+  __ Daddu(t9, sp, t9);
+  __ sd(a1, MemOperand(t9, 0));
+  __ Push(a1);
+  __ Push(a2);
+  __ Daddu(a0, a0, 3);
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(a0, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(a0, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
                                           Condition cc);
 static void EmitSmiNonsmiComparison(MacroAssembler* masm,
@@ -1019,7 +978,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1436,7 +1395,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -1923,6 +1881,7 @@
   // a2 : feedback vector
   // a3 : slot in feedback vector (Smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
@@ -1942,7 +1901,7 @@
   Register feedback_map = a6;
   Register weak_value = t0;
   __ ld(weak_value, FieldMemOperand(a5, WeakCell::kValueOffset));
-  __ Branch(&done, eq, a1, Operand(weak_value));
+  __ Branch(&done_increment_count, eq, a1, Operand(weak_value));
   __ LoadRoot(at, Heap::kmegamorphic_symbolRootIndex);
   __ Branch(&done, eq, a5, Operand(at));
   __ ld(feedback_map, FieldMemOperand(a5, HeapObject::kMapOffset));
@@ -1964,7 +1923,7 @@
   // Make sure the function is the Array() function
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, a5);
   __ Branch(&megamorphic, ne, a1, Operand(a5));
-  __ jmp(&done);
+  __ jmp(&done_increment_count);
 
   __ bind(&miss);
 
@@ -1992,12 +1951,31 @@
   // slot.
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ Branch(&done);
+  __ Branch(&done_initialize_count);
 
   __ bind(&not_array_function);
 
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+
+  __ SmiScale(a4, a3, kPointerSizeLog2);
+  __ Daddu(a4, a2, Operand(a4));
+  __ li(a5, Operand(Smi::FromInt(1)));
+  __ Branch(USE_DELAY_SLOT, &done);
+  __ sd(a5, FieldMemOperand(a4, FixedArray::kHeaderSize + kPointerSize));
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ SmiScale(a4, a3, kPointerSizeLog2);
+  __ Daddu(a5, a2, Operand(a4));
+  __ ld(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize));
+  __ Daddu(a4, a4, Operand(Smi::FromInt(1)));
+  __ sd(a4, FieldMemOperand(a5, FixedArray::kHeaderSize + kPointerSize));
+
   __ bind(&done);
 }
 
@@ -2100,7 +2078,7 @@
   __ dsrl(t0, a3, 32 - kPointerSizeLog2);
   __ Daddu(a3, a2, Operand(t0));
   __ ld(t0, FieldMemOperand(a3, FixedArray::kHeaderSize + kPointerSize));
-  __ Daddu(t0, t0, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Daddu(t0, t0, Operand(Smi::FromInt(1)));
   __ sd(t0, FieldMemOperand(a3, FixedArray::kHeaderSize + kPointerSize));
 
   __ mov(a2, a4);
@@ -2148,7 +2126,7 @@
   __ dsrl(t0, a3, 32 - kPointerSizeLog2);
   __ Daddu(a3, a2, Operand(t0));
   __ ld(t0, FieldMemOperand(a3, FixedArray::kHeaderSize + kPointerSize));
-  __ Daddu(t0, t0, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ Daddu(t0, t0, Operand(Smi::FromInt(1)));
   __ sd(t0, FieldMemOperand(a3, FixedArray::kHeaderSize + kPointerSize));
 
   __ bind(&call_function);
@@ -2221,7 +2199,7 @@
   // Initialize the call counter.
   __ dsrl(at, a3, 32 - kPointerSizeLog2);
   __ Daddu(at, a2, Operand(at));
-  __ li(t0, Operand(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+  __ li(t0, Operand(Smi::FromInt(1)));
   __ sd(t0, FieldMemOperand(at, FixedArray::kHeaderSize + kPointerSize));
 
   // Store the function. Use a stub since we need a frame for allocation.
@@ -2282,13 +2260,7 @@
   } else {
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
 
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
@@ -2625,74 +2597,12 @@
   // a3: from index (untagged)
   __ SmiTag(a3);
   StringCharAtGenerator generator(v0, a3, a2, v0, &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ DropAndRet(3);
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in a0.
-  Label not_smi;
-  __ JumpIfNotSmi(a0, &not_smi);
-  __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a0);
-  __ bind(&not_smi);
-
-  Label not_heap_number;
-  __ GetObjectType(a0, a1, a1);
-  // a0: receiver
-  // a1: receiver instance type
-  __ Branch(&not_heap_number, ne, a1, Operand(HEAP_NUMBER_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ mov(v0, a0);
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes on argument in a0.
-  __ AssertNotNumber(a0);
-
-  Label not_string;
-  __ GetObjectType(a0, a1, a1);
-  // a0: receiver
-  // a1: receiver instance type
-  __ Branch(&not_string, hs, a1, Operand(FIRST_NONSTRING_TYPE));
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ bind(&not_string);
-
-  Label not_oddball;
-  __ Branch(&not_oddball, ne, a1, Operand(ODDBALL_TYPE));
-  __ Ret(USE_DELAY_SLOT);
-  __ ld(v0, FieldMemOperand(a0, Oddball::kToNumberOffset));  // In delay slot.
-  __ bind(&not_oddball);
-
-  __ Push(a0);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes on argument in a0.
-  __ AssertString(a0);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ lwu(a2, FieldMemOperand(a0, String::kHashFieldOffset));
-  __ And(at, a2, Operand(String::kContainsCachedArrayIndexMask));
-  __ Branch(&runtime, ne, at, Operand(zero_reg));
-  __ IndexFromHash(a2, v0);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ Push(a0);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes on argument in a0.
   Label is_number;
@@ -2873,7 +2783,7 @@
   // Load a2 with the allocation site. We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ li(a2, handle(isolate()->heap()->undefined_value()));
+  __ li(a2, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3768,14 +3678,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4394,19 +4304,13 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things.
@@ -4414,8 +4318,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4434,13 +4336,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4524,7 +4428,7 @@
   InternalArrayNoArgumentConstructorStub stub0(isolate(), kind);
   __ TailCallStub(&stub0, lo, a0, Operand(1));
 
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN, hi, a0, Operand(1));
 
   if (IsFastPackedElementsKind(kind)) {
@@ -4750,10 +4654,10 @@
   Label rest_parameters;
   __ SmiLoadUntag(
       a0, MemOperand(a2, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ ld(a1, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
-  __ lw(a1,
-        FieldMemOperand(a1, SharedFunctionInfo::kFormalParameterCountOffset));
-  __ Dsubu(a0, a0, Operand(a1));
+  __ ld(a3, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+  __ lw(a3,
+        FieldMemOperand(a3, SharedFunctionInfo::kFormalParameterCountOffset));
+  __ Dsubu(a0, a0, Operand(a3));
   __ Branch(&rest_parameters, gt, a0, Operand(zero_reg));
 
   // Return an empty rest parameter array.
@@ -4800,15 +4704,16 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- a0 : number of rest parameters
+    //  -- a1 : function
     //  -- a2 : pointer to first rest parameters
     //  -- ra : return address
     // -----------------------------------
 
     // Allocate space for the rest parameter array plus the backing store.
     Label allocate, done_allocate;
-    __ li(a1, Operand(JSArray::kSize + FixedArray::kHeaderSize));
-    __ Dlsa(a1, a1, a0, kPointerSizeLog2);
-    __ Allocate(a1, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
+    __ li(a5, Operand(JSArray::kSize + FixedArray::kHeaderSize));
+    __ Dlsa(a5, a5, a0, kPointerSizeLog2);
+    __ Allocate(a5, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Compute arguments.length in a4.
@@ -4843,18 +4748,26 @@
     __ Ret(USE_DELAY_SLOT);
     __ mov(v0, a3);  // In delay slot
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ Branch(&too_big_for_new_space, gt, a5,
+              Operand(Page::kMaxRegularHeapObjectSize));
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ SmiTag(a0);
-      __ SmiTag(a1);
-      __ Push(a0, a2, a1);
+      __ SmiTag(a5);
+      __ Push(a0, a2, a5);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ Pop(a0, a2);
       __ SmiUntag(a0);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewStrictArguments.
+    __ bind(&too_big_for_new_space);
+    __ Push(a1);
+    __ TailCallRuntime(Runtime::kNewStrictArguments);
   }
 }
 
@@ -5126,9 +5039,9 @@
   __ Branch(&arguments_adaptor, eq, a0,
             Operand(Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR)));
   {
-    __ ld(a1, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
+    __ ld(a4, FieldMemOperand(a1, JSFunction::kSharedFunctionInfoOffset));
     __ lw(a0,
-          FieldMemOperand(a1, SharedFunctionInfo::kFormalParameterCountOffset));
+          FieldMemOperand(a4, SharedFunctionInfo::kFormalParameterCountOffset));
     __ Dlsa(a2, a2, a0, kPointerSizeLog2);
     __ Daddu(a2, a2, Operand(StandardFrameConstants::kCallerSPOffset -
                              1 * kPointerSize));
@@ -5147,15 +5060,16 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- a0 : number of rest parameters
+  //  -- a1 : function
   //  -- a2 : pointer to first rest parameters
   //  -- ra : return address
   // -----------------------------------
 
   // Allocate space for the rest parameter array plus the backing store.
   Label allocate, done_allocate;
-  __ li(a1, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ Dlsa(a1, a1, a0, kPointerSizeLog2);
-  __ Allocate(a1, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
+  __ li(a5, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
+  __ Dlsa(a5, a5, a0, kPointerSizeLog2);
+  __ Allocate(a5, v0, a3, a4, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Compute arguments.length in a4.
@@ -5190,48 +5104,26 @@
   __ Ret(USE_DELAY_SLOT);
   __ mov(v0, a3);  // In delay slot
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ Branch(&too_big_for_new_space, gt, a5,
+            Operand(Page::kMaxRegularHeapObjectSize));
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
     __ SmiTag(a0);
-    __ SmiTag(a1);
-    __ Push(a0, a2, a1);
+    __ SmiTag(a5);
+    __ Push(a0, a2, a5);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ Pop(a0, a2);
     __ SmiUntag(a0);
   }
   __ jmp(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context_reg = cp;
-  Register slot_reg = a2;
-  Register result_reg = v0;
-  Label slow_case;
-
-  // Go up context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ ld(result_reg, ContextMemOperand(context_reg, Context::PREVIOUS_INDEX));
-    context_reg = result_reg;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ Dlsa(at, context_reg, slot_reg, kPointerSizeLog2);
-  __ ld(result_reg, ContextMemOperand(at, 0));
-  __ ld(result_reg, FieldMemOperand(result_reg, PropertyCell::kValueOffset));
-
-  // Check that value is not the_hole.
-  __ LoadRoot(at, Heap::kTheHoleValueRootIndex);
-  __ Branch(&slow_case, eq, result_reg, Operand(at));
-  __ Ret();
-
-  // Fallback to the runtime.
-  __ bind(&slow_case);
-  __ SmiTag(slot_reg);
-  __ Push(slot_reg);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ Push(a1);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/mips64/codegen-mips64.cc b/src/mips64/codegen-mips64.cc
index 678f606..a8f5890 100644
--- a/src/mips64/codegen-mips64.cc
+++ b/src/mips64/codegen-mips64.cc
@@ -17,59 +17,6 @@
 #define __ masm.
 
 
-#if defined(USE_SIMULATOR)
-byte* fast_exp_mips_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  return Simulator::current(isolate)->CallFP(fast_exp_mips_machine_code, x, 0);
-}
-#endif
-
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-
-  {
-    DoubleRegister input = f12;
-    DoubleRegister result = f0;
-    DoubleRegister double_scratch1 = f4;
-    DoubleRegister double_scratch2 = f6;
-    Register temp1 = a4;
-    Register temp2 = a5;
-    Register temp3 = a6;
-
-    __ MovFromFloatParameter(input);
-    __ Push(temp3, temp2, temp1);
-    MathExpGenerator::EmitMathExp(
-        &masm, input, result, double_scratch1, double_scratch2,
-        temp1, temp2, temp3);
-    __ Pop(temp3, temp2, temp1);
-    __ MovToFloatResult(result);
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_mips_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
-
 #if defined(V8_HOST_ARCH_MIPS)
 MemCopyUint8Function CreateMemCopyUint8Function(Isolate* isolate,
                                                 MemCopyUint8Function stub) {
@@ -1090,94 +1037,6 @@
   __ bind(&done);
 }
 
-
-static MemOperand ExpConstant(int index, Register base) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   DoubleRegister input,
-                                   DoubleRegister result,
-                                   DoubleRegister double_scratch1,
-                                   DoubleRegister double_scratch2,
-                                   Register temp1,
-                                   Register temp2,
-                                   Register temp3) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch1));
-  DCHECK(!input.is(double_scratch2));
-  DCHECK(!result.is(double_scratch1));
-  DCHECK(!result.is(double_scratch2));
-  DCHECK(!double_scratch1.is(double_scratch2));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(!temp1.is(temp3));
-  DCHECK(!temp2.is(temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label zero, infinity, done;
-  __ li(temp3, Operand(ExternalReference::math_exp_constants(0)));
-
-  __ ldc1(double_scratch1, ExpConstant(0, temp3));
-  __ BranchF(&zero, NULL, ge, double_scratch1, input);
-
-  __ ldc1(double_scratch2, ExpConstant(1, temp3));
-  __ BranchF(&infinity, NULL, ge, input, double_scratch2);
-
-  __ ldc1(double_scratch1, ExpConstant(3, temp3));
-  __ ldc1(result, ExpConstant(4, temp3));
-  __ mul_d(double_scratch1, double_scratch1, input);
-  __ add_d(double_scratch1, double_scratch1, result);
-  __ FmoveLow(temp2, double_scratch1);
-  __ sub_d(double_scratch1, double_scratch1, result);
-  __ ldc1(result, ExpConstant(6, temp3));
-  __ ldc1(double_scratch2, ExpConstant(5, temp3));
-  __ mul_d(double_scratch1, double_scratch1, double_scratch2);
-  __ sub_d(double_scratch1, double_scratch1, input);
-  __ sub_d(result, result, double_scratch1);
-  __ mul_d(double_scratch2, double_scratch1, double_scratch1);
-  __ mul_d(result, result, double_scratch2);
-  __ ldc1(double_scratch2, ExpConstant(7, temp3));
-  __ mul_d(result, result, double_scratch2);
-  __ sub_d(result, result, double_scratch1);
-  // Mov 1 in double_scratch2 as math_exp_constants_array[8] == 1.
-  DCHECK(*reinterpret_cast<double*>
-         (ExternalReference::math_exp_constants(8).address()) == 1);
-  __ Move(double_scratch2, 1.);
-  __ add_d(result, result, double_scratch2);
-  __ dsrl(temp1, temp2, 11);
-  __ Ext(temp2, temp2, 0, 11);
-  __ Daddu(temp1, temp1, Operand(0x3ff));
-
-  // Must not call ExpConstant() after overwriting temp3!
-  __ li(temp3, Operand(ExternalReference::math_exp_log_table()));
-  __ Dlsa(temp3, temp3, temp2, 3);
-  __ lwu(temp2, MemOperand(temp3, Register::kMantissaOffset));
-  __ lwu(temp3, MemOperand(temp3, Register::kExponentOffset));
-  // The first word is loaded is the lower number register.
-  if (temp2.code() < temp3.code()) {
-    __ dsll(at, temp1, 20);
-    __ Or(temp1, temp3, at);
-    __ Move(double_scratch1, temp2, temp1);
-  } else {
-    __ dsll(at, temp1, 20);
-    __ Or(temp1, temp2, at);
-    __ Move(double_scratch1, temp3, temp1);
-  }
-  __ mul_d(result, result, double_scratch1);
-  __ BranchShort(&done);
-
-  __ bind(&zero);
-  __ Move(result, kDoubleRegZero);
-  __ BranchShort(&done);
-
-  __ bind(&infinity);
-  __ ldc1(result, ExpConstant(2, temp3));
-
-  __ bind(&done);
-}
-
 #ifdef DEBUG
 // nop(CODE_AGE_MARKER_NOP)
 static const uint32_t kCodeAgePatchFirstInstruction = 0x00010180;
diff --git a/src/mips64/codegen-mips64.h b/src/mips64/codegen-mips64.h
index ad7abb3..a4f8184 100644
--- a/src/mips64/codegen-mips64.h
+++ b/src/mips64/codegen-mips64.h
@@ -29,23 +29,6 @@
   DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
 };
 
-
-class MathExpGenerator : public AllStatic {
- public:
-  // Register input isn't modified. All other registers are clobbered.
-  static void EmitMathExp(MacroAssembler* masm,
-                          DoubleRegister input,
-                          DoubleRegister result,
-                          DoubleRegister double_scratch1,
-                          DoubleRegister double_scratch2,
-                          Register temp1,
-                          Register temp2,
-                          Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/mips64/constants-mips64.h b/src/mips64/constants-mips64.h
index 8272420..d2b1e92 100644
--- a/src/mips64/constants-mips64.h
+++ b/src/mips64/constants-mips64.h
@@ -1237,11 +1237,10 @@
           int sa = SaFieldRaw() >> kSaShift;
           switch (sa) {
             case BITSWAP:
-              return kRegisterType;
             case WSBH:
             case SEB:
             case SEH:
-              return kUnsupported;
+              return kRegisterType;
           }
           sa >>= kBp2Bits;
           switch (sa) {
@@ -1255,10 +1254,9 @@
           int sa = SaFieldRaw() >> kSaShift;
           switch (sa) {
             case DBITSWAP:
-              return kRegisterType;
             case DSBH:
             case DSHD:
-              return kUnsupported;
+              return kRegisterType;
           }
           sa = SaFieldRaw() >> kSaShift;
           sa >>= kBp3Bits;
diff --git a/src/mips64/deoptimizer-mips64.cc b/src/mips64/deoptimizer-mips64.cc
index 90bd11e..ea17124 100644
--- a/src/mips64/deoptimizer-mips64.cc
+++ b/src/mips64/deoptimizer-mips64.cc
@@ -117,8 +117,7 @@
 
   // Save all FPU registers before messing with them.
   __ Dsubu(sp, sp, Operand(kDoubleRegsSize));
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     const DoubleRegister fpu_reg = DoubleRegister::from_code(code);
diff --git a/src/mips64/disasm-mips64.cc b/src/mips64/disasm-mips64.cc
index 7b05493..1917526 100644
--- a/src/mips64/disasm-mips64.cc
+++ b/src/mips64/disasm-mips64.cc
@@ -1457,11 +1457,18 @@
           Format(instr, "bitswap 'rd, 'rt");
           break;
         }
-        case SEB:
-        case SEH:
-        case WSBH:
-          UNREACHABLE();
+        case SEB: {
+          Format(instr, "seb     'rd, 'rt");
           break;
+        }
+        case SEH: {
+          Format(instr, "seh     'rd, 'rt");
+          break;
+        }
+        case WSBH: {
+          Format(instr, "wsbh    'rd, 'rt");
+          break;
+        }
         default: {
           sa >>= kBp2Bits;
           switch (sa) {
@@ -1492,10 +1499,14 @@
           }
           break;
         }
-        case DSBH:
-        case DSHD:
-          UNREACHABLE();
+        case DSBH: {
+          Format(instr, "dsbh    'rd, 'rt");
           break;
+        }
+        case DSHD: {
+          Format(instr, "dshd    'rd, 'rt");
+          break;
+        }
         default: {
           sa >>= kBp3Bits;
           switch (sa) {
@@ -1938,7 +1949,7 @@
 namespace disasm {
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -2001,8 +2012,8 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    v8::internal::PrintF(f, "%p    %08x      %s\n",
-        prev_pc, *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
+    v8::internal::PrintF(f, "%p    %08x      %s\n", static_cast<void*>(prev_pc),
+                         *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
   }
 }
 
diff --git a/src/mips64/interface-descriptors-mips64.cc b/src/mips64/interface-descriptors-mips64.cc
index 67bae36..684dca5 100644
--- a/src/mips64/interface-descriptors-mips64.cc
+++ b/src/mips64/interface-descriptors-mips64.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {a0, a1, a2, a3, a4};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return a1; }
 const Register LoadDescriptor::NameRegister() { return a2; }
@@ -39,9 +47,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return a3; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return a2; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return a2; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return a0; }
 
@@ -63,8 +68,6 @@
 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) {
@@ -254,43 +257,24 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // a0 -- number of arguments
   // a1 -- function
   // a2 -- allocation site with elements kind
-  Register registers[] = {a1, a2};
+  Register registers[] = {a1, a2, a0};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {a1, a2, a0};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // register state
-  // a0 -- number of arguments
-  // a1 -- constructor function
-  Register registers[] = {a1};
-  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
-}
-
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {a1, a0};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {a0};
diff --git a/src/mips64/macro-assembler-mips64.cc b/src/mips64/macro-assembler-mips64.cc
index b7b4f28..f8e7e1f 100644
--- a/src/mips64/macro-assembler-mips64.cc
+++ b/src/mips64/macro-assembler-mips64.cc
@@ -17,6 +17,18 @@
 namespace v8 {
 namespace internal {
 
+// Floating point constants.
+const uint64_t kDoubleSignMask = Double::kSignMask;
+const uint32_t kDoubleExponentShift = HeapNumber::kMantissaBits;
+const uint32_t kDoubleNaNShift = kDoubleExponentShift - 1;
+const uint64_t kDoubleNaNMask = Double::kExponentMask | (1L << kDoubleNaNShift);
+
+const uint32_t kSingleSignMask = kBinary32SignMask;
+const uint32_t kSingleExponentMask = kBinary32ExponentMask;
+const uint32_t kSingleExponentShift = kBinary32ExponentShift;
+const uint32_t kSingleNaNShift = kSingleExponentShift - 1;
+const uint32_t kSingleNaNMask = kSingleExponentMask | (1 << kSingleNaNShift);
+
 MacroAssembler::MacroAssembler(Isolate* arg_isolate, void* buffer, int size,
                                CodeObjectRequired create_code_object)
     : Assembler(arg_isolate, buffer, size),
@@ -29,7 +41,6 @@
   }
 }
 
-
 void MacroAssembler::Load(Register dst,
                           const MemOperand& src,
                           Representation r) {
@@ -1324,6 +1335,49 @@
 
 // ------------Pseudo-instructions-------------
 
+// Change endianness
+void MacroAssembler::ByteSwapSigned(Register reg, int operand_size) {
+  DCHECK(operand_size == 1 || operand_size == 2 || operand_size == 4 ||
+         operand_size == 8);
+  DCHECK(kArchVariant == kMips64r6 || kArchVariant == kMips64r2);
+  if (operand_size == 1) {
+    seb(reg, reg);
+    sll(reg, reg, 0);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  } else if (operand_size == 2) {
+    seh(reg, reg);
+    sll(reg, reg, 0);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  } else if (operand_size == 4) {
+    sll(reg, reg, 0);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  } else {
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  }
+}
+
+void MacroAssembler::ByteSwapUnsigned(Register reg, int operand_size) {
+  DCHECK(operand_size == 1 || operand_size == 2 || operand_size == 4);
+  if (operand_size == 1) {
+    andi(reg, reg, 0xFF);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  } else if (operand_size == 2) {
+    andi(reg, reg, 0xFFFF);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  } else {
+    dsll32(reg, reg, 0);
+    dsrl32(reg, reg, 0);
+    dsbh(reg, reg);
+    dshd(reg, reg);
+  }
+}
+
 void MacroAssembler::Ulw(Register rd, const MemOperand& rs) {
   DCHECK(!rd.is(at));
   DCHECK(!rs.rm().is(at));
@@ -4031,9 +4085,6 @@
   Label start;
   bind(&start);
   int64_t target_int = reinterpret_cast<int64_t>(target);
-  // Must record previous source positions before the
-  // li() generates a new code target.
-  positions_recorder()->WriteRecordedPositions();
   li(t9, Operand(target_int, rmode), ADDRESS_LOAD);
   Call(t9, cond, rs, rt, bd);
   DCHECK_EQ(CallSize(target, rmode, cond, rs, rt, bd),
@@ -4854,6 +4905,72 @@
   sdc1(double_result, MemOperand(scratch1, 0));
 }
 
+void MacroAssembler::SubNanPreservePayloadAndSign_s(FPURegister fd,
+                                                    FPURegister fs,
+                                                    FPURegister ft) {
+  FloatRegister dest = fd.is(fs) || fd.is(ft) ? kLithiumScratchDouble : fd;
+  Label check_nan, save_payload, done;
+  Register scratch1 = t8;
+  Register scratch2 = t9;
+
+  sub_s(dest, fs, ft);
+  // Check if the result of subtraction is NaN.
+  BranchF32(nullptr, &check_nan, eq, fs, ft);
+  Branch(USE_DELAY_SLOT, &done);
+  dest.is(fd) ? nop() : mov_s(fd, dest);
+
+  bind(&check_nan);
+  // Check if first operand is a NaN.
+  mfc1(scratch1, fs);
+  BranchF32(nullptr, &save_payload, eq, fs, fs);
+  // Second operand must be a NaN.
+  mfc1(scratch1, ft);
+
+  bind(&save_payload);
+  // Reserve payload.
+  And(scratch1, scratch1,
+      Operand(kSingleSignMask | ((1 << kSingleNaNShift) - 1)));
+  mfc1(scratch2, dest);
+  And(scratch2, scratch2, Operand(kSingleNaNMask));
+  Or(scratch2, scratch2, scratch1);
+  mtc1(scratch2, fd);
+
+  bind(&done);
+}
+
+void MacroAssembler::SubNanPreservePayloadAndSign_d(FPURegister fd,
+                                                    FPURegister fs,
+                                                    FPURegister ft) {
+  FloatRegister dest = fd.is(fs) || fd.is(ft) ? kLithiumScratchDouble : fd;
+  Label check_nan, save_payload, done;
+  Register scratch1 = t8;
+  Register scratch2 = t9;
+
+  sub_d(dest, fs, ft);
+  // Check if the result of subtraction is NaN.
+  BranchF64(nullptr, &check_nan, eq, fs, ft);
+  Branch(USE_DELAY_SLOT, &done);
+  dest.is(fd) ? nop() : mov_d(fd, dest);
+
+  bind(&check_nan);
+  // Check if first operand is a NaN.
+  dmfc1(scratch1, fs);
+  BranchF64(nullptr, &save_payload, eq, fs, fs);
+  // Second operand must be a NaN.
+  dmfc1(scratch1, ft);
+
+  bind(&save_payload);
+  // Reserve payload.
+  li(at, Operand(kDoubleSignMask | (1L << kDoubleNaNShift)));
+  Dsubu(at, at, Operand(1));
+  And(scratch1, scratch1, at);
+  dmfc1(scratch2, dest);
+  And(scratch2, scratch2, Operand(kDoubleNaNMask));
+  Or(scratch2, scratch2, scratch1);
+  dmtc1(scratch2, fd);
+
+  bind(&done);
+}
 
 void MacroAssembler::CompareMapAndBranch(Register obj,
                                          Register scratch,
@@ -5142,11 +5259,12 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  li(t0, Operand(step_in_enabled));
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  li(t0, Operand(last_step_action));
   lb(t0, MemOperand(t0));
-  Branch(&skip_flooding, eq, t0, Operand(zero_reg));
+  Branch(&skip_flooding, lt, t0, Operand(StepIn));
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -6031,9 +6149,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   ld(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  ld(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  ld(vector,
-     FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  ld(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  ld(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -7011,8 +7128,7 @@
   if (reg5.is_valid()) regs |= reg5.bit();
   if (reg6.is_valid()) regs |= reg6.bit();
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     Register candidate = Register::from_code(code);
diff --git a/src/mips64/macro-assembler-mips64.h b/src/mips64/macro-assembler-mips64.h
index 27a34b3..576d30a 100644
--- a/src/mips64/macro-assembler-mips64.h
+++ b/src/mips64/macro-assembler-mips64.h
@@ -722,6 +722,10 @@
   // ---------------------------------------------------------------------------
   // Pseudo-instructions.
 
+  // Change endianness
+  void ByteSwapSigned(Register reg, int operand_size);
+  void ByteSwapUnsigned(Register reg, int operand_size);
+
   void mov(Register rd, Register rt) { or_(rd, rt, zero_reg); }
 
   void Ulh(Register rd, const MemOperand& rs);
@@ -929,6 +933,12 @@
   void Floor_w_d(FPURegister fd, FPURegister fs);
   void Ceil_w_d(FPURegister fd, FPURegister fs);
 
+  // Preserve value of a NaN operand
+  void SubNanPreservePayloadAndSign_s(FPURegister fd, FPURegister fs,
+                                      FPURegister ft);
+  void SubNanPreservePayloadAndSign_d(FPURegister fd, FPURegister fs,
+                                      FPURegister ft);
+
   void Madd_d(FPURegister fd,
               FPURegister fr,
               FPURegister fs,
diff --git a/src/mips64/simulator-mips64.cc b/src/mips64/simulator-mips64.cc
index 3157030..ed484ef 100644
--- a/src/mips64/simulator-mips64.cc
+++ b/src/mips64/simulator-mips64.cc
@@ -801,9 +801,7 @@
   last_debugger_input_ = input;
 }
 
-
-void Simulator::FlushICache(v8::internal::HashMap* i_cache,
-                            void* start_addr,
+void Simulator::FlushICache(base::HashMap* i_cache, void* start_addr,
                             size_t size) {
   int64_t start = reinterpret_cast<int64_t>(start_addr);
   int64_t intra_line = (start & CachePage::kLineMask);
@@ -824,10 +822,8 @@
   }
 }
 
-
-CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
-  v8::internal::HashMap::Entry* entry =
-      i_cache->LookupOrInsert(page, ICacheHash(page));
+CachePage* Simulator::GetCachePage(base::HashMap* i_cache, void* page) {
+  base::HashMap::Entry* entry = i_cache->LookupOrInsert(page, ICacheHash(page));
   if (entry->value == NULL) {
     CachePage* new_page = new CachePage();
     entry->value = new_page;
@@ -837,7 +833,7 @@
 
 
 // Flush from start up to and not including start + size.
-void Simulator::FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
+void Simulator::FlushOnePage(base::HashMap* i_cache, intptr_t start,
                              size_t size) {
   DCHECK(size <= CachePage::kPageSize);
   DCHECK(AllOnOnePage(start, size - 1));
@@ -850,9 +846,7 @@
   memset(valid_bytemap, CachePage::LINE_INVALID, size >> CachePage::kLineShift);
 }
 
-
-void Simulator::CheckICache(v8::internal::HashMap* i_cache,
-                            Instruction* instr) {
+void Simulator::CheckICache(base::HashMap* i_cache, Instruction* instr) {
   int64_t address = reinterpret_cast<int64_t>(instr);
   void* page = reinterpret_cast<void*>(address & (~CachePage::kPageMask));
   void* line = reinterpret_cast<void*>(address & (~CachePage::kLineMask));
@@ -885,7 +879,7 @@
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
-    i_cache_ = new v8::internal::HashMap(&ICacheMatch);
+    i_cache_ = new base::HashMap(&ICacheMatch);
     isolate_->set_simulator_i_cache(i_cache_);
   }
   Initialize(isolate);
@@ -1000,10 +994,10 @@
 
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
   if (i_cache != nullptr) {
-    for (HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
+    for (base::HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
          entry = i_cache->Next(entry)) {
       delete static_cast<CachePage*>(entry->value);
     }
@@ -2077,15 +2071,17 @@
           case ExternalReference::BUILTIN_FP_FP_CALL:
           case ExternalReference::BUILTIN_COMPARE_CALL:
             PrintF("Call to host function at %p with args %f, %f",
-                   FUNCTION_ADDR(generic_target), dval0, dval1);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   dval1);
             break;
           case ExternalReference::BUILTIN_FP_CALL:
             PrintF("Call to host function at %p with arg %f",
-                FUNCTION_ADDR(generic_target), dval0);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0);
             break;
           case ExternalReference::BUILTIN_FP_INT_CALL:
             PrintF("Call to host function at %p with args %f, %d",
-                   FUNCTION_ADDR(generic_target), dval0, ival);
+                   static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                   ival);
             break;
           default:
             UNREACHABLE();
@@ -2188,13 +2184,15 @@
             "Call to host triple returning runtime function %p "
             "args %016" PRIx64 ", %016" PRIx64 ", %016" PRIx64 ", %016" PRIx64
             ", %016" PRIx64 "\n",
-            FUNCTION_ADDR(target), arg1, arg2, arg3, arg4, arg5);
+            static_cast<void*>(FUNCTION_ADDR(target)), arg1, arg2, arg3, arg4,
+            arg5);
       }
       // arg0 is a hidden argument pointing to the return location, so don't
       // pass it to the target function.
       ObjectTriple result = target(arg1, arg2, arg3, arg4, arg5);
       if (::v8::internal::FLAG_trace_sim) {
-        PrintF("Returned { %p, %p, %p }\n", result.x, result.y, result.z);
+        PrintF("Returned { %p, %p, %p }\n", static_cast<void*>(result.x),
+               static_cast<void*>(result.y), static_cast<void*>(result.z));
       }
       // Return is passed back in address pointed to by hidden first argument.
       ObjectTriple* sim_result = reinterpret_cast<ObjectTriple*>(arg0);
@@ -2210,7 +2208,8 @@
             "Call to host function at %p "
             "args %08" PRIx64 " , %08" PRIx64 " , %08" PRIx64 " , %08" PRIx64
             " , %08" PRIx64 " , %08" PRIx64 " \n",
-            FUNCTION_ADDR(target), arg0, arg1, arg2, arg3, arg4, arg5);
+            static_cast<void*>(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));
@@ -3978,12 +3977,57 @@
           alu_out = static_cast<int64_t>(static_cast<int32_t>(output));
           break;
         }
-        case SEB:
-        case SEH:
-        case WSBH:
-          alu_out = 0x12345678;
-          UNREACHABLE();
+        case SEB: {
+          uint8_t input = static_cast<uint8_t>(rt());
+          uint32_t output = input;
+          uint32_t mask = 0x00000080;
+
+          // Extending sign
+          if (mask & input) {
+            output |= 0xFFFFFF00;
+          }
+
+          alu_out = static_cast<int32_t>(output);
           break;
+        }
+        case SEH: {
+          uint16_t input = static_cast<uint16_t>(rt());
+          uint32_t output = input;
+          uint32_t mask = 0x00008000;
+
+          // Extending sign
+          if (mask & input) {
+            output |= 0xFFFF0000;
+          }
+
+          alu_out = static_cast<int32_t>(output);
+          break;
+        }
+        case WSBH: {
+          uint32_t input = static_cast<uint32_t>(rt());
+          uint64_t output = 0;
+
+          uint32_t mask = 0xFF000000;
+          for (int i = 0; i < 4; i++) {
+            uint32_t tmp = mask & input;
+            if (i % 2 == 0) {
+              tmp = tmp >> 8;
+            } else {
+              tmp = tmp << 8;
+            }
+            output = output | tmp;
+            mask = mask >> 8;
+          }
+          mask = 0x80000000;
+
+          // Extending sign
+          if (mask & output) {
+            output |= 0xFFFFFFFF00000000;
+          }
+
+          alu_out = static_cast<int64_t>(output);
+          break;
+        }
         default: {
           const uint8_t bp2 = get_instr()->Bp2Value();
           sa >>= kBp2Bits;
@@ -4042,11 +4086,47 @@
           }
           break;
         }
-        case DSBH:
-        case DSHD:
-          alu_out = 0x12345678;
-          UNREACHABLE();
+        case DSBH: {
+          uint64_t input = static_cast<uint64_t>(rt());
+          uint64_t output = 0;
+
+          uint64_t mask = 0xFF00000000000000;
+          for (int i = 0; i < 8; i++) {
+            uint64_t tmp = mask & input;
+            if (i % 2 == 0)
+              tmp = tmp >> 8;
+            else
+              tmp = tmp << 8;
+
+            output = output | tmp;
+            mask = mask >> 8;
+          }
+
+          alu_out = static_cast<int64_t>(output);
           break;
+        }
+        case DSHD: {
+          uint64_t input = static_cast<uint64_t>(rt());
+          uint64_t output = 0;
+
+          uint64_t mask = 0xFFFF000000000000;
+          for (int i = 0; i < 4; i++) {
+            uint64_t tmp = mask & input;
+            if (i == 0)
+              tmp = tmp >> 48;
+            else if (i == 1)
+              tmp = tmp >> 16;
+            else if (i == 2)
+              tmp = tmp << 16;
+            else
+              tmp = tmp << 48;
+            output = output | tmp;
+            mask = mask >> 16;
+          }
+
+          alu_out = static_cast<int64_t>(output);
+          break;
+        }
         default: {
           const uint8_t bp3 = get_instr()->Bp3Value();
           sa >>= kBp3Bits;
@@ -4096,31 +4176,7 @@
       DecodeTypeRegisterSPECIAL2();
       break;
     case SPECIAL3:
-      switch (instr->FunctionFieldRaw()) {
-        case BSHFL: {
-          int32_t saVal = sa();
-          saVal >>= kBp2Bits;
-          switch (saVal) {
-            case ALIGN: {
-              DecodeTypeRegisterSPECIAL3();
-              break;
-            }
-          }
-        }
-        case DBSHFL: {
-          int32_t saVal = sa();
-          saVal >>= kBp2Bits;
-          switch (saVal) {
-            case DALIGN: {
-              DecodeTypeRegisterSPECIAL3();
-              break;
-            }
-          }
-        }
-        default:
-          DecodeTypeRegisterSPECIAL3();
-          break;
-      }
+      DecodeTypeRegisterSPECIAL3();
       break;
     // Unimplemented opcodes raised an error in the configuration step before,
     // so we can use the default here to set the destination register in common
diff --git a/src/mips64/simulator-mips64.h b/src/mips64/simulator-mips64.h
index 7f60a74..cd606e2 100644
--- a/src/mips64/simulator-mips64.h
+++ b/src/mips64/simulator-mips64.h
@@ -84,7 +84,7 @@
 // Running with a simulator.
 
 #include "src/assembler.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 
 namespace v8 {
 namespace internal {
@@ -226,7 +226,7 @@
   // Call on program start.
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   // V8 generally calls into generated JS code with 5 parameters and into
   // generated RegExp code with 7 parameters. This is a convenience function,
@@ -246,8 +246,7 @@
   char* last_debugger_input() { return last_debugger_input_; }
 
   // ICache checking.
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size);
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size);
 
   // Returns true if pc register contains one of the 'special_values' defined
   // below (bad_ra, end_sim_pc).
@@ -415,10 +414,9 @@
   }
 
   // ICache.
-  static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr);
-  static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                           size_t size);
-  static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page);
+  static void CheckICache(base::HashMap* i_cache, Instruction* instr);
+  static void FlushOnePage(base::HashMap* i_cache, intptr_t start, size_t size);
+  static CachePage* GetCachePage(base::HashMap* i_cache, void* page);
 
   enum Exception {
     none,
@@ -463,7 +461,7 @@
   char* last_debugger_input_;
 
   // Icache simulation.
-  v8::internal::HashMap* i_cache_;
+  base::HashMap* i_cache_;
 
   v8::internal::Isolate* isolate_;
 
diff --git a/src/objects-body-descriptors-inl.h b/src/objects-body-descriptors-inl.h
index ee2e01e..cfa945d 100644
--- a/src/objects-body-descriptors-inl.h
+++ b/src/objects-body-descriptors-inl.h
@@ -456,6 +456,8 @@
     case TRANSITION_ARRAY_TYPE:
       return Op::template apply<TransitionArray::BodyDescriptor>(p1, p2, p3);
     case JS_OBJECT_TYPE:
+    case JS_ERROR_TYPE:
+    case JS_ARGUMENTS_TYPE:
     case JS_PROMISE_TYPE:
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
     case JS_GENERATOR_OBJECT_TYPE:
diff --git a/src/objects-debug.cc b/src/objects-debug.cc
index a8728fc..d3d13d4 100644
--- a/src/objects-debug.cc
+++ b/src/objects-debug.cc
@@ -99,6 +99,8 @@
       Oddball::cast(this)->OddballVerify();
       break;
     case JS_OBJECT_TYPE:
+    case JS_ERROR_TYPE:
+    case JS_ARGUMENTS_TYPE:
     case JS_API_OBJECT_TYPE:
     case JS_SPECIAL_API_OBJECT_TYPE:
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
@@ -211,7 +213,7 @@
   CHECK(IsSymbol());
   CHECK(HasHashCode());
   CHECK(Hash() > 0u);
-  CHECK(name()->IsUndefined() || name()->IsString());
+  CHECK(name()->IsUndefined(GetIsolate()) || name()->IsString());
 }
 
 
@@ -289,6 +291,7 @@
                actual_unused_property_fields - JSObject::kFieldsAdded);
     }
     DescriptorArray* descriptors = map()->instance_descriptors();
+    Isolate* isolate = GetIsolate();
     for (int i = 0; i < map()->NumberOfOwnDescriptors(); i++) {
       if (descriptors->GetDetails(i).type() == DATA) {
         Representation r = descriptors->GetDetails(i).representation();
@@ -299,7 +302,7 @@
         }
         Object* value = RawFastPropertyAt(index);
         if (r.IsDouble()) DCHECK(value->IsMutableHeapNumber());
-        if (value->IsUninitialized()) continue;
+        if (value->IsUninitialized(isolate)) continue;
         if (r.IsSmi()) DCHECK(value->IsSmi());
         if (r.IsHeapObject()) DCHECK(value->IsHeapObject());
         FieldType* field_type = descriptors->GetFieldType(i);
@@ -312,7 +315,7 @@
           // object literal creation and we will end up having and undefined
           // value that does not match the field type.
           CHECK(!field_type->NowStable() || field_type->NowContains(value) ||
-                (!FLAG_use_allocation_folding && value->IsUndefined()));
+                (!FLAG_use_allocation_folding && value->IsUndefined(isolate)));
         }
       }
     }
@@ -338,7 +341,7 @@
   CHECK(instance_size() == kVariableSizeSentinel ||
          (kPointerSize <= instance_size() &&
           instance_size() < heap->Capacity()));
-  CHECK(GetBackPointer()->IsUndefined() ||
+  CHECK(GetBackPointer()->IsUndefined(heap->isolate()) ||
         !Map::cast(GetBackPointer())->is_stable());
   VerifyHeapPointer(prototype());
   VerifyHeapPointer(instance_descriptors());
@@ -412,7 +415,7 @@
     VerifyPointer(e);
   }
   CHECK_LE(LengthFor(number_of_transitions()), length());
-  CHECK(next_link()->IsUndefined() || next_link()->IsSmi() ||
+  CHECK(next_link()->IsUndefined(GetIsolate()) || next_link()->IsSmi() ||
         next_link()->IsTransitionArray());
 }
 
@@ -432,7 +435,7 @@
 void JSModule::JSModuleVerify() {
   VerifyObjectField(kContextOffset);
   VerifyObjectField(kScopeInfoOffset);
-  CHECK(context()->IsUndefined() ||
+  CHECK(context()->IsUndefined(GetIsolate()) ||
         Context::cast(context())->IsModuleContext());
 }
 
@@ -449,16 +452,18 @@
   if (value()->IsHeapObject()) {
     VerifyHeapPointer(value());
   }
-  CHECK(value()->IsUndefined() || value()->IsSmi() || value()->IsHeapNumber());
-  CHECK(year()->IsUndefined() || year()->IsSmi() || year()->IsNaN());
-  CHECK(month()->IsUndefined() || month()->IsSmi() || month()->IsNaN());
-  CHECK(day()->IsUndefined() || day()->IsSmi() || day()->IsNaN());
-  CHECK(weekday()->IsUndefined() || weekday()->IsSmi() || weekday()->IsNaN());
-  CHECK(hour()->IsUndefined() || hour()->IsSmi() || hour()->IsNaN());
-  CHECK(min()->IsUndefined() || min()->IsSmi() || min()->IsNaN());
-  CHECK(sec()->IsUndefined() || sec()->IsSmi() || sec()->IsNaN());
-  CHECK(cache_stamp()->IsUndefined() ||
-        cache_stamp()->IsSmi() ||
+  Isolate* isolate = GetIsolate();
+  CHECK(value()->IsUndefined(isolate) || value()->IsSmi() ||
+        value()->IsHeapNumber());
+  CHECK(year()->IsUndefined(isolate) || year()->IsSmi() || year()->IsNaN());
+  CHECK(month()->IsUndefined(isolate) || month()->IsSmi() || month()->IsNaN());
+  CHECK(day()->IsUndefined(isolate) || day()->IsSmi() || day()->IsNaN());
+  CHECK(weekday()->IsUndefined(isolate) || weekday()->IsSmi() ||
+        weekday()->IsNaN());
+  CHECK(hour()->IsUndefined(isolate) || hour()->IsSmi() || hour()->IsNaN());
+  CHECK(min()->IsUndefined(isolate) || min()->IsSmi() || min()->IsNaN());
+  CHECK(sec()->IsUndefined(isolate) || sec()->IsSmi() || sec()->IsNaN());
+  CHECK(cache_stamp()->IsUndefined(isolate) || cache_stamp()->IsSmi() ||
         cache_stamp()->IsNaN());
 
   if (month()->IsSmi()) {
@@ -487,7 +492,7 @@
   }
   if (cache_stamp()->IsSmi()) {
     CHECK(Smi::cast(cache_stamp())->value() <=
-          Smi::cast(GetIsolate()->date_cache()->stamp())->value());
+          Smi::cast(isolate->date_cache()->stamp())->value());
   }
 }
 
@@ -555,7 +560,7 @@
   VerifyObjectField(kNextFunctionLinkOffset);
   CHECK(code()->IsCode());
   CHECK(next_function_link() == NULL ||
-        next_function_link()->IsUndefined() ||
+        next_function_link()->IsUndefined(GetIsolate()) ||
         next_function_link()->IsJSFunction());
   CHECK(map()->is_callable());
 }
@@ -566,14 +571,17 @@
   VerifyObjectField(kNameOffset);
   VerifyObjectField(kCodeOffset);
   VerifyObjectField(kOptimizedCodeMapOffset);
-  VerifyObjectField(kFeedbackVectorOffset);
+  VerifyObjectField(kFeedbackMetadataOffset);
   VerifyObjectField(kScopeInfoOffset);
   VerifyObjectField(kInstanceClassNameOffset);
-  CHECK(function_data()->IsUndefined() || IsApiFunction() ||
-        HasBuiltinFunctionId() || HasBytecodeArray());
+  CHECK(function_data()->IsUndefined(GetIsolate()) || IsApiFunction() ||
+        HasBytecodeArray());
   VerifyObjectField(kFunctionDataOffset);
   VerifyObjectField(kScriptOffset);
   VerifyObjectField(kDebugInfoOffset);
+  CHECK(function_identifier()->IsUndefined(GetIsolate()) ||
+        HasBuiltinFunctionId() || HasInferredName());
+  VerifyObjectField(kFunctionIdentifierOffset);
 }
 
 
@@ -708,12 +716,12 @@
 
 void JSArray::JSArrayVerify() {
   JSObjectVerify();
-  CHECK(length()->IsNumber() || length()->IsUndefined());
+  Isolate* isolate = GetIsolate();
+  CHECK(length()->IsNumber() || length()->IsUndefined(isolate));
   // If a GC was caused while constructing this array, the elements
   // pointer may point to a one pointer filler map.
   if (ElementsAreSafeToExamine()) {
-    CHECK(elements()->IsUndefined() ||
-          elements()->IsFixedArray() ||
+    CHECK(elements()->IsUndefined(isolate) || elements()->IsFixedArray() ||
           elements()->IsFixedDoubleArray());
   }
 }
@@ -723,7 +731,7 @@
   CHECK(IsJSSet());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined());
+  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate()));
   // TODO(arv): Verify OrderedHashTable too.
 }
 
@@ -732,7 +740,7 @@
   CHECK(IsJSMap());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined());
+  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(GetIsolate()));
   // TODO(arv): Verify OrderedHashTable too.
 }
 
@@ -741,9 +749,10 @@
   CHECK(IsJSSetIterator());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined());
-  CHECK(index()->IsSmi() || index()->IsUndefined());
-  CHECK(kind()->IsSmi() || kind()->IsUndefined());
+  Isolate* isolate = GetIsolate();
+  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(isolate));
+  CHECK(index()->IsSmi() || index()->IsUndefined(isolate));
+  CHECK(kind()->IsSmi() || kind()->IsUndefined(isolate));
 }
 
 
@@ -751,9 +760,10 @@
   CHECK(IsJSMapIterator());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined());
-  CHECK(index()->IsSmi() || index()->IsUndefined());
-  CHECK(kind()->IsSmi() || kind()->IsUndefined());
+  Isolate* isolate = GetIsolate();
+  CHECK(table()->IsOrderedHashTable() || table()->IsUndefined(isolate));
+  CHECK(index()->IsSmi() || index()->IsUndefined(isolate));
+  CHECK(kind()->IsSmi() || kind()->IsUndefined(isolate));
 }
 
 
@@ -761,7 +771,7 @@
   CHECK(IsJSWeakMap());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsHashTable() || table()->IsUndefined());
+  CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
 }
 
 
@@ -769,13 +779,14 @@
   CHECK(IsJSWeakSet());
   JSObjectVerify();
   VerifyHeapPointer(table());
-  CHECK(table()->IsHashTable() || table()->IsUndefined());
+  CHECK(table()->IsHashTable() || table()->IsUndefined(GetIsolate()));
 }
 
 
 void JSRegExp::JSRegExpVerify() {
   JSObjectVerify();
-  CHECK(data()->IsUndefined() || data()->IsFixedArray());
+  Isolate* isolate = GetIsolate();
+  CHECK(data()->IsUndefined(isolate) || data()->IsFixedArray());
   switch (TypeTag()) {
     case JSRegExp::ATOM: {
       FixedArray* arr = FixedArray::cast(data());
@@ -811,7 +822,7 @@
     }
     default:
       CHECK_EQ(JSRegExp::NOT_COMPILED, TypeTag());
-      CHECK(data()->IsUndefined());
+      CHECK(data()->IsUndefined(isolate));
       break;
   }
 }
@@ -821,10 +832,11 @@
   CHECK(IsJSProxy());
   VerifyPointer(target());
   VerifyPointer(handler());
+  Isolate* isolate = GetIsolate();
   CHECK_EQ(target()->IsCallable(), map()->is_callable());
   CHECK_EQ(target()->IsConstructor(), map()->is_constructor());
-  CHECK(hash()->IsSmi() || hash()->IsUndefined());
-  CHECK(map()->prototype()->IsNull());
+  CHECK(hash()->IsSmi() || hash()->IsUndefined(isolate));
+  CHECK(map()->prototype()->IsNull(isolate));
   // There should be no properties on a Proxy.
   CHECK_EQ(0, map()->NumberOfOwnDescriptors());
 }
@@ -834,8 +846,8 @@
   CHECK(IsJSArrayBuffer());
   JSObjectVerify();
   VerifyPointer(byte_length());
-  CHECK(byte_length()->IsSmi() || byte_length()->IsHeapNumber()
-        || byte_length()->IsUndefined());
+  CHECK(byte_length()->IsSmi() || byte_length()->IsHeapNumber() ||
+        byte_length()->IsUndefined(GetIsolate()));
 }
 
 
@@ -843,16 +855,17 @@
   CHECK(IsJSArrayBufferView());
   JSObjectVerify();
   VerifyPointer(buffer());
-  CHECK(buffer()->IsJSArrayBuffer() || buffer()->IsUndefined()
-        || buffer() == Smi::FromInt(0));
+  Isolate* isolate = GetIsolate();
+  CHECK(buffer()->IsJSArrayBuffer() || buffer()->IsUndefined(isolate) ||
+        buffer() == Smi::FromInt(0));
 
   VerifyPointer(raw_byte_offset());
   CHECK(raw_byte_offset()->IsSmi() || raw_byte_offset()->IsHeapNumber() ||
-        raw_byte_offset()->IsUndefined());
+        raw_byte_offset()->IsUndefined(isolate));
 
   VerifyPointer(raw_byte_length());
   CHECK(raw_byte_length()->IsSmi() || raw_byte_length()->IsHeapNumber() ||
-        raw_byte_length()->IsUndefined());
+        raw_byte_length()->IsUndefined(isolate));
 }
 
 
@@ -861,7 +874,7 @@
   JSArrayBufferViewVerify();
   VerifyPointer(raw_length());
   CHECK(raw_length()->IsSmi() || raw_length()->IsHeapNumber() ||
-        raw_length()->IsUndefined());
+        raw_length()->IsUndefined(GetIsolate()));
 
   VerifyPointer(elements());
 }
@@ -923,9 +936,9 @@
 
 void AccessCheckInfo::AccessCheckInfoVerify() {
   CHECK(IsAccessCheckInfo());
-  VerifyPointer(named_callback());
-  VerifyPointer(indexed_callback());
   VerifyPointer(callback());
+  VerifyPointer(named_interceptor());
+  VerifyPointer(indexed_interceptor());
   VerifyPointer(data());
 }
 
@@ -1003,12 +1016,13 @@
 void NormalizedMapCache::NormalizedMapCacheVerify() {
   FixedArray::cast(this)->FixedArrayVerify();
   if (FLAG_enable_slow_asserts) {
+    Isolate* isolate = GetIsolate();
     for (int i = 0; i < length(); i++) {
       Object* e = FixedArray::get(i);
       if (e->IsMap()) {
         Map::cast(e)->DictionaryMapVerify();
       } else {
-        CHECK(e->IsUndefined());
+        CHECK(e->IsUndefined(isolate));
       }
     }
   }
@@ -1062,9 +1076,9 @@
       int holes = 0;
       FixedArray* e = FixedArray::cast(elements());
       int len = e->length();
-      Heap* heap = GetHeap();
+      Isolate* isolate = GetIsolate();
       for (int i = 0; i < len; i++) {
-        if (e->get(i) == heap->the_hole_value()) holes++;
+        if (e->get(i)->IsTheHole(isolate)) holes++;
       }
       info->number_of_fast_used_elements_   += len - holes;
       info->number_of_fast_unused_elements_ += holes;
diff --git a/src/objects-inl.h b/src/objects-inl.h
index a64d9ff..e1df2b6 100644
--- a/src/objects-inl.h
+++ b/src/objects-inl.h
@@ -14,6 +14,7 @@
 
 #include "src/base/atomicops.h"
 #include "src/base/bits.h"
+#include "src/builtins.h"
 #include "src/contexts-inl.h"
 #include "src/conversions-inl.h"
 #include "src/factory.h"
@@ -22,8 +23,9 @@
 #include "src/handles-inl.h"
 #include "src/heap/heap-inl.h"
 #include "src/heap/heap.h"
-#include "src/isolate.h"
 #include "src/isolate-inl.h"
+#include "src/isolate.h"
+#include "src/keys.h"
 #include "src/layout-descriptor-inl.h"
 #include "src/lookup.h"
 #include "src/objects.h"
@@ -159,6 +161,15 @@
     return IsHeapObject() && HeapObject::cast(this)->Is##type_(); \
   }
 HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DEF)
+#undef IS_TYPE_FUNCTION_DEF
+
+#define IS_TYPE_FUNCTION_DEF(Type, Value)             \
+  bool Object::Is##Type(Isolate* isolate) const {     \
+    return this == isolate->heap()->Value();          \
+  }                                                   \
+  bool HeapObject::Is##Type(Isolate* isolate) const { \
+    return this == isolate->heap()->Value();          \
+  }
 ODDBALL_LIST(IS_TYPE_FUNCTION_DEF)
 #undef IS_TYPE_FUNCTION_DEF
 
@@ -244,7 +255,6 @@
          String::cast(this)->IsTwoByteRepresentation();
 }
 
-
 bool Object::HasValidElements() {
   // Dictionary is covered under FixedArray.
   return IsFixedArray() || IsFixedDoubleArray() || IsFixedTypedArrayBase();
@@ -283,12 +293,12 @@
 Handle<Object> Object::NewStorageFor(Isolate* isolate,
                                      Handle<Object> object,
                                      Representation representation) {
-  if (representation.IsSmi() && object->IsUninitialized()) {
+  if (representation.IsSmi() && object->IsUninitialized(isolate)) {
     return handle(Smi::FromInt(0), isolate);
   }
   if (!representation.IsDouble()) return object;
   double value;
-  if (object->IsUninitialized()) {
+  if (object->IsUninitialized(isolate)) {
     value = 0;
   } else if (object->IsMutableHeapNumber()) {
     value = HeapNumber::cast(*object)->value();
@@ -302,7 +312,7 @@
 Handle<Object> Object::WrapForRead(Isolate* isolate,
                                    Handle<Object> object,
                                    Representation representation) {
-  DCHECK(!object->IsUninitialized());
+  DCHECK(!object->IsUninitialized(isolate));
   if (!representation.IsDouble()) {
     DCHECK(object->FitsRepresentation(representation));
     return object;
@@ -776,11 +786,13 @@
 TYPE_CHECKER(PropertyCell, PROPERTY_CELL_TYPE)
 TYPE_CHECKER(WeakCell, WEAK_CELL_TYPE)
 TYPE_CHECKER(SharedFunctionInfo, SHARED_FUNCTION_INFO_TYPE)
-TYPE_CHECKER(JSGeneratorObject, JS_GENERATOR_OBJECT_TYPE)
-TYPE_CHECKER(JSModule, JS_MODULE_TYPE)
-TYPE_CHECKER(JSValue, JS_VALUE_TYPE)
 TYPE_CHECKER(JSDate, JS_DATE_TYPE)
+TYPE_CHECKER(JSError, JS_ERROR_TYPE)
+TYPE_CHECKER(JSGeneratorObject, JS_GENERATOR_OBJECT_TYPE)
 TYPE_CHECKER(JSMessageObject, JS_MESSAGE_OBJECT_TYPE)
+TYPE_CHECKER(JSModule, JS_MODULE_TYPE)
+TYPE_CHECKER(JSPromise, JS_PROMISE_TYPE)
+TYPE_CHECKER(JSValue, JS_VALUE_TYPE)
 
 bool HeapObject::IsAbstractCode() const {
   return IsBytecodeArray() || IsCode();
@@ -937,13 +949,6 @@
 STRUCT_LIST(MAKE_STRUCT_PREDICATE)
 #undef MAKE_STRUCT_PREDICATE
 
-#define MAKE_ODDBALL_PREDICATE(Name)                                       \
-  bool HeapObject::Is##Name() const {                                      \
-    return IsOddball() && Oddball::cast(this)->kind() == Oddball::k##Name; \
-  }
-ODDBALL_LIST(MAKE_ODDBALL_PREDICATE)
-
-#undef MAKE_ODDBALL_PREDICATE
 double Object::Number() const {
   DCHECK(IsNumber());
   return IsSmi()
@@ -969,7 +974,8 @@
     return Representation::Smi();
   } else if (FLAG_track_double_fields && IsHeapNumber()) {
     return Representation::Double();
-  } else if (FLAG_track_computed_fields && IsUninitialized()) {
+  } else if (FLAG_track_computed_fields &&
+             IsUninitialized(HeapObject::cast(this)->GetIsolate())) {
     return Representation::None();
   } else if (FLAG_track_heap_object_fields) {
     DCHECK(IsHeapObject());
@@ -1095,8 +1101,7 @@
                                              Handle<JSReceiver> receiver) {
   // We don't expect access checks to be needed on JSProxy objects.
   DCHECK(!receiver->IsAccessCheckNeeded() || receiver->IsJSObject());
-  PrototypeIterator iter(isolate, receiver,
-                         PrototypeIterator::START_AT_RECEIVER,
+  PrototypeIterator iter(isolate, receiver, kStartAtReceiver,
                          PrototypeIterator::END_AT_NON_HIDDEN);
   do {
     if (!iter.AdvanceFollowingProxies()) return MaybeHandle<Object>();
@@ -1111,6 +1116,13 @@
   return GetProperty(receiver, str);
 }
 
+// static
+MUST_USE_RESULT MaybeHandle<FixedArray> JSReceiver::OwnPropertyKeys(
+    Handle<JSReceiver> object) {
+  return KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly,
+                                 ALL_PROPERTIES,
+                                 GetKeysConversion::kConvertToString);
+}
 
 #define FIELD_ADDR(p, offset) \
   (reinterpret_cast<byte*>(p) + offset - kHeapObjectTag)
@@ -1742,7 +1754,7 @@
     PrintIsolate(GetIsolate(),
                  "pretenuring: AllocationSite(%p): (created, found, ratio) "
                  "(%d, %d, %f) %s => %s\n",
-                 this, create_count, found_count, ratio,
+                 static_cast<void*>(this), create_count, found_count, ratio,
                  PretenureDecisionName(current_decision),
                  PretenureDecisionName(pretenure_decision()));
   }
@@ -1793,8 +1805,7 @@
     DCHECK(mode != ALLOW_COPIED_DOUBLE_ELEMENTS);
     bool is_holey = IsFastHoleyElementsKind(current_kind);
     if (current_kind == FAST_HOLEY_ELEMENTS) return;
-    Heap* heap = object->GetHeap();
-    Object* the_hole = heap->the_hole_value();
+    Object* the_hole = object->GetHeap()->the_hole_value();
     for (uint32_t i = 0; i < count; ++i) {
       Object* current = *objects++;
       if (current == the_hole) {
@@ -2000,9 +2011,7 @@
   set_next(the_hole_value, SKIP_WRITE_BARRIER);
 }
 
-
-bool WeakCell::next_cleared() { return next()->IsTheHole(); }
-
+bool WeakCell::next_cleared() { return next()->IsTheHole(GetIsolate()); }
 
 int JSObject::GetHeaderSize() { return GetHeaderSize(map()->instance_type()); }
 
@@ -2060,6 +2069,10 @@
       return JSObject::kHeaderSize;
     case JS_MESSAGE_OBJECT_TYPE:
       return JSMessageObject::kSize;
+    case JS_ARGUMENTS_TYPE:
+      return JSArgumentsObject::kHeaderSize;
+    case JS_ERROR_TYPE:
+      return JSObject::kHeaderSize;
     default:
       UNREACHABLE();
       return 0;
@@ -2179,7 +2192,9 @@
   FieldIndex index = FieldIndex::ForDescriptor(map(), descriptor);
   if (details.representation().IsDouble()) {
     // Nothing more to be done.
-    if (value->IsUninitialized()) return;
+    if (value->IsUninitialized(this->GetIsolate())) {
+      return;
+    }
     if (IsUnboxedDoubleField(index)) {
       RawFastDoublePropertyAtPut(index, value->Number());
     } else {
@@ -2272,9 +2287,12 @@
 
 void Object::VerifyApiCallResultType() {
 #if DEBUG
-  if (!(IsSmi() || IsString() || IsSymbol() || IsJSReceiver() ||
-        IsHeapNumber() || IsSimd128Value() || IsUndefined() || IsTrue() ||
-        IsFalse() || IsNull())) {
+  if (IsSmi()) return;
+  DCHECK(IsHeapObject());
+  Isolate* isolate = HeapObject::cast(this)->GetIsolate();
+  if (!(IsString() || IsSymbol() || IsJSReceiver() || IsHeapNumber() ||
+        IsSimd128Value() || IsUndefined(isolate) || IsTrue(isolate) ||
+        IsFalse(isolate) || IsNull(isolate))) {
     FATAL("API call returned invalid object");
   }
 #endif  // DEBUG
@@ -2457,7 +2475,7 @@
 
 
 void ArrayList::Clear(int index, Object* undefined) {
-  DCHECK(undefined->IsUndefined());
+  DCHECK(undefined->IsUndefined(GetIsolate()));
   FixedArray::cast(this)
       ->set(kFirstIndex + index, undefined, SKIP_WRITE_BARRIER);
 }
@@ -2789,18 +2807,18 @@
 
 
 FixedArrayBase* Map::GetInitialElements() {
+  FixedArrayBase* result = nullptr;
   if (has_fast_elements() || has_fast_string_wrapper_elements()) {
-    DCHECK(!GetHeap()->InNewSpace(GetHeap()->empty_fixed_array()));
-    return GetHeap()->empty_fixed_array();
+    result = GetHeap()->empty_fixed_array();
+  } else if (has_fast_sloppy_arguments_elements()) {
+    result = GetHeap()->empty_sloppy_arguments_elements();
   } else if (has_fixed_typed_array_elements()) {
-    FixedTypedArrayBase* empty_array =
-        GetHeap()->EmptyFixedTypedArrayForMap(this);
-    DCHECK(!GetHeap()->InNewSpace(empty_array));
-    return empty_array;
+    result = GetHeap()->EmptyFixedTypedArrayForMap(this);
   } else {
     UNREACHABLE();
   }
-  return NULL;
+  DCHECK(!GetHeap()->InNewSpace(result));
+  return result;
 }
 
 // static
@@ -3027,12 +3045,14 @@
   return Max(capacity, kMinCapacity);
 }
 
-bool HashTableBase::IsKey(Heap* heap, Object* k) {
+bool HashTableBase::IsKey(Isolate* isolate, Object* k) {
+  Heap* heap = isolate->heap();
   return k != heap->the_hole_value() && k != heap->undefined_value();
 }
 
 bool HashTableBase::IsKey(Object* k) {
-  return !k->IsTheHole() && !k->IsUndefined();
+  Isolate* isolate = this->GetIsolate();
+  return !k->IsTheHole(isolate) && !k->IsUndefined(isolate);
 }
 
 
@@ -3327,11 +3347,19 @@
 
 
 TypeFeedbackVector* LiteralsArray::feedback_vector() const {
+  if (length() == 0) {
+    return TypeFeedbackVector::cast(
+        const_cast<FixedArray*>(FixedArray::cast(this)));
+  }
   return TypeFeedbackVector::cast(get(kVectorIndex));
 }
 
 
 void LiteralsArray::set_feedback_vector(TypeFeedbackVector* vector) {
+  if (length() <= kVectorIndex) {
+    DCHECK(vector->length() == 0);
+    return;
+  }
   set(kVectorIndex, vector);
 }
 
@@ -3345,6 +3373,9 @@
   set(kFirstLiteralIndex + literal_index, literal);
 }
 
+void LiteralsArray::set_literal_undefined(int literal_index) {
+  set_undefined(kFirstLiteralIndex + literal_index);
+}
 
 int LiteralsArray::literals_count() const {
   return length() - kFirstLiteralIndex;
@@ -4039,6 +4070,13 @@
 
 int BytecodeArray::BytecodeArraySize() { return SizeFor(this->length()); }
 
+int BytecodeArray::SizeIncludingMetadata() {
+  int size = BytecodeArraySize();
+  size += constant_pool()->Size();
+  size += handler_table()->Size();
+  size += source_position_table()->Size();
+  return size;
+}
 
 ACCESSORS(FixedTypedArrayBase, base_pointer, Object, kBasePointerOffset)
 
@@ -4214,7 +4252,7 @@
   } else {
     // Clamp undefined to the default value. All other types have been
     // converted to a number type further up in the call chain.
-    DCHECK(value->IsUndefined());
+    DCHECK(value->IsUndefined(GetIsolate()));
   }
   set(index, cast_value);
 }
@@ -4531,6 +4569,10 @@
   return IsPrototypeMapBits::decode(bit_field2());
 }
 
+bool Map::should_be_fast_prototype_map() const {
+  if (!prototype_info()->IsPrototypeInfo()) return false;
+  return PrototypeInfo::cast(prototype_info())->should_be_fast_map();
+}
 
 void Map::set_elements_kind(ElementsKind elements_kind) {
   DCHECK(static_cast<int>(elements_kind) < kElementsKindCount);
@@ -4567,6 +4609,10 @@
   return IsSloppyArgumentsElements(elements_kind());
 }
 
+bool Map::has_fast_sloppy_arguments_elements() {
+  return elements_kind() == FAST_SLOPPY_ARGUMENTS_ELEMENTS;
+}
+
 bool Map::has_fast_string_wrapper_elements() {
   return elements_kind() == FAST_STRING_WRAPPER_ELEMENTS;
 }
@@ -4666,7 +4712,7 @@
 bool Map::has_code_cache() {
   // 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;
+  return code_cache()->length() != 0;
 }
 
 
@@ -4798,35 +4844,21 @@
   return ExtractKindFromFlags(flags());
 }
 
-
 bool Code::IsCodeStubOrIC() {
-  return kind() == STUB || kind() == HANDLER || kind() == LOAD_IC ||
-         kind() == KEYED_LOAD_IC || kind() == CALL_IC || kind() == STORE_IC ||
-         kind() == KEYED_STORE_IC || kind() == BINARY_OP_IC ||
-         kind() == COMPARE_IC || kind() == TO_BOOLEAN_IC;
+  switch (kind()) {
+    case STUB:
+    case HANDLER:
+#define CASE_KIND(kind) case kind:
+      IC_KIND_LIST(CASE_KIND)
+#undef CASE_KIND
+      return true;
+    default:
+      return false;
+  }
 }
 
-
-bool Code::IsJavaScriptCode() {
-  return kind() == FUNCTION || kind() == OPTIMIZED_FUNCTION ||
-         is_interpreter_entry_trampoline();
-}
-
-
-InlineCacheState Code::ic_state() {
-  InlineCacheState result = ExtractICStateFromFlags(flags());
-  // Only allow uninitialized or debugger states for non-IC code
-  // objects. This is used in the debugger to determine whether or not
-  // a call to code object has been replaced with a debug break call.
-  DCHECK(is_inline_cache_stub() ||
-         result == UNINITIALIZED ||
-         result == DEBUG_STUB);
-  return result;
-}
-
-
 ExtraICState Code::extra_ic_state() {
-  DCHECK(is_inline_cache_stub() || ic_state() == DEBUG_STUB);
+  DCHECK(is_inline_cache_stub() || is_debug_stub());
   return ExtractExtraICStateFromFlags(flags());
 }
 
@@ -4852,18 +4884,21 @@
   return is_crankshafted() && kind() != OPTIMIZED_FUNCTION;
 }
 
-
-inline bool Code::is_interpreter_entry_trampoline() {
-  Handle<Code> interpreter_entry =
-      GetIsolate()->builtins()->InterpreterEntryTrampoline();
-  return interpreter_entry.location() != nullptr && *interpreter_entry == this;
+inline bool Code::is_interpreter_trampoline_builtin() {
+  Builtins* builtins = GetIsolate()->builtins();
+  return this == *builtins->InterpreterEntryTrampoline() ||
+         this == *builtins->InterpreterEnterBytecodeDispatch() ||
+         this == *builtins->InterpreterMarkBaselineOnReturn();
 }
 
-inline bool Code::is_interpreter_enter_bytecode_dispatch() {
-  Handle<Code> interpreter_handler =
-      GetIsolate()->builtins()->InterpreterEnterBytecodeDispatch();
-  return interpreter_handler.location() != nullptr &&
-         *interpreter_handler == this;
+inline bool Code::has_unwinding_info() const {
+  return HasUnwindingInfoField::decode(READ_UINT32_FIELD(this, kFlagsOffset));
+}
+
+inline void Code::set_has_unwinding_info(bool state) {
+  uint32_t previous = READ_UINT32_FIELD(this, kFlagsOffset);
+  uint32_t updated_value = HasUnwindingInfoField::update(previous, state);
+  WRITE_UINT32_FIELD(this, kFlagsOffset, updated_value);
 }
 
 inline void Code::set_is_crankshafted(bool value) {
@@ -5069,7 +5104,18 @@
   }
 }
 
-bool Code::is_debug_stub() { return ic_state() == DEBUG_STUB; }
+bool Code::is_debug_stub() {
+  if (kind() != BUILTIN) return false;
+  switch (builtin_index()) {
+#define CASE_DEBUG_BUILTIN(name, kind, extra) case Builtins::k##name:
+    BUILTIN_LIST_DEBUG_A(CASE_DEBUG_BUILTIN)
+#undef CASE_DEBUG_BUILTIN
+      return true;
+    default:
+      return false;
+  }
+  return false;
+}
 bool Code::is_handler() { return kind() == HANDLER; }
 bool Code::is_call_stub() { return kind() == CALL_IC; }
 bool Code::is_binary_op_stub() { return kind() == BINARY_OP_IC; }
@@ -5078,14 +5124,6 @@
 bool Code::is_optimized_code() { return kind() == OPTIMIZED_FUNCTION; }
 bool Code::is_wasm_code() { return kind() == WASM_FUNCTION; }
 
-bool Code::embeds_maps_weakly() {
-  Kind k = kind();
-  return (k == LOAD_IC || k == STORE_IC || k == KEYED_LOAD_IC ||
-          k == KEYED_STORE_IC) &&
-         ic_state() == MONOMORPHIC;
-}
-
-
 Address Code::constant_pool() {
   Address constant_pool = NULL;
   if (FLAG_enable_embedded_constant_pool) {
@@ -5097,25 +5135,20 @@
   return constant_pool;
 }
 
-Code::Flags Code::ComputeFlags(Kind kind, InlineCacheState ic_state,
-                               ExtraICState extra_ic_state,
+Code::Flags Code::ComputeFlags(Kind kind, ExtraICState extra_ic_state,
                                CacheHolderFlag holder) {
+  // TODO(ishell): remove ICStateField.
   // Compute the bit mask.
-  unsigned int bits = KindField::encode(kind) | ICStateField::encode(ic_state) |
+  unsigned int bits = KindField::encode(kind) |
+                      ICStateField::encode(MONOMORPHIC) |
                       ExtraICStateField::encode(extra_ic_state) |
                       CacheHolderField::encode(holder);
   return static_cast<Flags>(bits);
 }
 
-Code::Flags Code::ComputeMonomorphicFlags(Kind kind,
-                                          ExtraICState extra_ic_state,
-                                          CacheHolderFlag holder) {
-  return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, holder);
-}
-
 Code::Flags Code::ComputeHandlerFlags(Kind handler_kind,
                                       CacheHolderFlag holder) {
-  return ComputeFlags(Code::HANDLER, MONOMORPHIC, handler_kind, holder);
+  return ComputeFlags(Code::HANDLER, handler_kind, holder);
 }
 
 
@@ -5124,11 +5157,6 @@
 }
 
 
-InlineCacheState Code::ExtractICStateFromFlags(Flags flags) {
-  return ICStateField::decode(flags);
-}
-
-
 ExtraICState Code::ExtractExtraICStateFromFlags(Flags flags) {
   return ExtraICStateField::decode(flags);
 }
@@ -5217,6 +5245,13 @@
   }
 }
 
+int AbstractCode::SizeIncludingMetadata() {
+  if (IsCode()) {
+    return GetCode()->SizeIncludingMetadata();
+  } else {
+    return GetBytecodeArray()->SizeIncludingMetadata();
+  }
+}
 int AbstractCode::ExecutableSize() {
   if (IsCode()) {
     return GetCode()->ExecutableSize();
@@ -5268,7 +5303,7 @@
 
 
 void Map::set_prototype(Object* value, WriteBarrierMode mode) {
-  DCHECK(value->IsNull() || value->IsJSReceiver());
+  DCHECK(value->IsNull(GetIsolate()) || value->IsJSReceiver());
   WRITE_FIELD(this, kPrototypeOffset, value);
   CONDITIONAL_WRITE_BARRIER(GetHeap(), this, kPrototypeOffset, value, mode);
 }
@@ -5401,14 +5436,14 @@
 
 void Map::SetBackPointer(Object* value, WriteBarrierMode mode) {
   DCHECK(instance_type() >= FIRST_JS_RECEIVER_TYPE);
-  DCHECK((value->IsMap() && GetBackPointer()->IsUndefined()));
+  DCHECK(value->IsMap());
+  DCHECK(GetBackPointer()->IsUndefined(GetIsolate()));
   DCHECK(!value->IsMap() ||
          Map::cast(value)->GetConstructor() == constructor_or_backpointer());
   set_constructor_or_backpointer(value, mode);
 }
 
-
-ACCESSORS(Map, code_cache, Object, kCodeCacheOffset)
+ACCESSORS(Map, code_cache, FixedArray, kCodeCacheOffset)
 ACCESSORS(Map, dependent_code, DependentCode, kDependentCodeOffset)
 ACCESSORS(Map, weak_cell_cache, Object, kWeakCellCacheOffset)
 ACCESSORS(Map, constructor_or_backpointer, Object,
@@ -5466,9 +5501,32 @@
 
 ACCESSORS(Box, value, Object, kValueOffset)
 
+Map* PrototypeInfo::ObjectCreateMap() {
+  return Map::cast(WeakCell::cast(object_create_map())->value());
+}
+
+// static
+void PrototypeInfo::SetObjectCreateMap(Handle<PrototypeInfo> info,
+                                       Handle<Map> map) {
+  Handle<WeakCell> cell = Map::WeakCellForMap(map);
+  info->set_object_create_map(*cell);
+}
+
+bool PrototypeInfo::HasObjectCreateMap() {
+  Object* cache = object_create_map();
+  return cache->IsWeakCell() && !WeakCell::cast(cache)->cleared();
+}
+
+bool FunctionTemplateInfo::instantiated() {
+  return shared_function_info()->IsSharedFunctionInfo();
+}
+
 ACCESSORS(PrototypeInfo, prototype_users, Object, kPrototypeUsersOffset)
+ACCESSORS(PrototypeInfo, object_create_map, Object, kObjectCreateMap)
 SMI_ACCESSORS(PrototypeInfo, registry_slot, kRegistrySlotOffset)
 ACCESSORS(PrototypeInfo, validity_cell, Object, kValidityCellOffset)
+SMI_ACCESSORS(PrototypeInfo, bit_field, kBitFieldOffset)
+BOOL_ACCESSORS(PrototypeInfo, bit_field, should_be_fast_map, kShouldBeFastBit)
 
 ACCESSORS(SloppyBlockWithEvalContextExtension, scope_info, ScopeInfo,
           kScopeInfoOffset)
@@ -5478,9 +5536,10 @@
 ACCESSORS(AccessorPair, getter, Object, kGetterOffset)
 ACCESSORS(AccessorPair, setter, Object, kSetterOffset)
 
-ACCESSORS(AccessCheckInfo, named_callback, Object, kNamedCallbackOffset)
-ACCESSORS(AccessCheckInfo, indexed_callback, Object, kIndexedCallbackOffset)
 ACCESSORS(AccessCheckInfo, callback, Object, kCallbackOffset)
+ACCESSORS(AccessCheckInfo, named_interceptor, Object, kNamedInterceptorOffset)
+ACCESSORS(AccessCheckInfo, indexed_interceptor, Object,
+          kIndexedInterceptorOffset)
 ACCESSORS(AccessCheckInfo, data, Object, kDataOffset)
 
 ACCESSORS(InterceptorInfo, getter, Object, kGetterOffset)
@@ -5521,6 +5580,9 @@
           kInstanceCallHandlerOffset)
 ACCESSORS(FunctionTemplateInfo, access_check_info, Object,
           kAccessCheckInfoOffset)
+ACCESSORS(FunctionTemplateInfo, shared_function_info, Object,
+          kSharedFunctionInfoOffset)
+
 SMI_ACCESSORS(FunctionTemplateInfo, flag, kFlagOffset)
 
 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset)
@@ -5601,8 +5663,8 @@
 ACCESSORS(SharedFunctionInfo, optimized_code_map, FixedArray,
           kOptimizedCodeMapOffset)
 ACCESSORS(SharedFunctionInfo, construct_stub, Code, kConstructStubOffset)
-ACCESSORS(SharedFunctionInfo, feedback_vector, TypeFeedbackVector,
-          kFeedbackVectorOffset)
+ACCESSORS(SharedFunctionInfo, feedback_metadata, TypeFeedbackMetadata,
+          kFeedbackMetadataOffset)
 #if TRACE_MAPS
 SMI_ACCESSORS(SharedFunctionInfo, unique_id, kUniqueIdOffset)
 #endif
@@ -5626,7 +5688,6 @@
                kRemovePrototypeBit)
 BOOL_ACCESSORS(FunctionTemplateInfo, flag, do_not_cache,
                kDoNotCacheBit)
-BOOL_ACCESSORS(FunctionTemplateInfo, flag, instantiated, kInstantiatedBit)
 BOOL_ACCESSORS(FunctionTemplateInfo, flag, accept_any_receiver,
                kAcceptAnyReceiver)
 BOOL_ACCESSORS(SharedFunctionInfo, start_position_and_type, is_named_expression,
@@ -5941,7 +6002,7 @@
 }
 
 void SharedFunctionInfo::set_api_func_data(FunctionTemplateInfo* data) {
-  DCHECK(function_data()->IsUndefined());
+  DCHECK(function_data()->IsUndefined(GetIsolate()));
   set_function_data(data);
 }
 
@@ -5955,12 +6016,12 @@
 }
 
 void SharedFunctionInfo::set_bytecode_array(BytecodeArray* bytecode) {
-  DCHECK(function_data()->IsUndefined());
+  DCHECK(function_data()->IsUndefined(GetIsolate()));
   set_function_data(bytecode);
 }
 
 void SharedFunctionInfo::ClearBytecodeArray() {
-  DCHECK(function_data()->IsUndefined() || HasBytecodeArray());
+  DCHECK(function_data()->IsUndefined(GetIsolate()) || HasBytecodeArray());
   set_function_data(GetHeap()->undefined_value());
 }
 
@@ -5986,12 +6047,13 @@
   if (HasInferredName()) {
     return String::cast(function_identifier());
   }
-  DCHECK(function_identifier()->IsUndefined() || HasBuiltinFunctionId());
-  return GetIsolate()->heap()->empty_string();
+  Isolate* isolate = GetIsolate();
+  DCHECK(function_identifier()->IsUndefined(isolate) || HasBuiltinFunctionId());
+  return isolate->heap()->empty_string();
 }
 
 void SharedFunctionInfo::set_inferred_name(String* inferred_name) {
-  DCHECK(function_identifier()->IsUndefined() || HasInferredName());
+  DCHECK(function_identifier()->IsUndefined(GetIsolate()) || HasInferredName());
   set_function_identifier(inferred_name);
 }
 
@@ -6077,7 +6139,7 @@
 
 bool SharedFunctionInfo::IsBuiltin() {
   Object* script_obj = script();
-  if (script_obj->IsUndefined()) return true;
+  if (script_obj->IsUndefined(GetIsolate())) return true;
   Script* script = Script::cast(script_obj);
   Script::Type type = static_cast<Script::Type>(script->type());
   return type != Script::TYPE_NORMAL;
@@ -6142,7 +6204,7 @@
 
 AbstractCode* JSFunction::abstract_code() {
   Code* code = this->code();
-  if (code->is_interpreter_entry_trampoline()) {
+  if (code->is_interpreter_trampoline_builtin()) {
     return AbstractCode::cast(shared()->bytecode_array());
   } else {
     return AbstractCode::cast(code);
@@ -6210,7 +6272,7 @@
 
 
 void JSFunction::set_context(Object* value) {
-  DCHECK(value->IsUndefined() || value->IsContext());
+  DCHECK(value->IsUndefined(GetIsolate()) || value->IsContext());
   WRITE_FIELD(this, kContextOffset, value);
   WRITE_BARRIER(GetHeap(), this, kContextOffset, value);
 }
@@ -6230,7 +6292,8 @@
 
 
 bool JSFunction::has_instance_prototype() {
-  return has_initial_map() || !prototype_or_initial_map()->IsTheHole();
+  return has_initial_map() ||
+         !prototype_or_initial_map()->IsTheHole(GetIsolate());
 }
 
 
@@ -6270,12 +6333,11 @@
          code() != builtins->builtin(Builtins::kCompileOptimizedConcurrent);
 }
 
-
-int JSFunction::NumberOfLiterals() {
-  return literals()->length();
+TypeFeedbackVector* JSFunction::feedback_vector() {
+  LiteralsArray* array = literals();
+  return array->feedback_vector();
 }
 
-
 ACCESSORS(JSProxy, target, JSReceiver, kTargetOffset)
 ACCESSORS(JSProxy, handler, Object, kHandlerOffset)
 ACCESSORS(JSProxy, hash, Object, kHashOffset)
@@ -6321,22 +6383,22 @@
 ACCESSORS(JSGeneratorObject, function, JSFunction, kFunctionOffset)
 ACCESSORS(JSGeneratorObject, context, Context, kContextOffset)
 ACCESSORS(JSGeneratorObject, receiver, Object, kReceiverOffset)
-ACCESSORS(JSGeneratorObject, input, Object, kInputOffset)
+ACCESSORS(JSGeneratorObject, input_or_debug_pos, Object, kInputOrDebugPosOffset)
 SMI_ACCESSORS(JSGeneratorObject, resume_mode, kResumeModeOffset)
 SMI_ACCESSORS(JSGeneratorObject, continuation, kContinuationOffset)
 ACCESSORS(JSGeneratorObject, operand_stack, FixedArray, kOperandStackOffset)
 
-bool JSGeneratorObject::is_suspended() {
+bool JSGeneratorObject::is_suspended() const {
   DCHECK_LT(kGeneratorExecuting, 0);
   DCHECK_LT(kGeneratorClosed, 0);
   return continuation() >= 0;
 }
 
-bool JSGeneratorObject::is_closed() {
+bool JSGeneratorObject::is_closed() const {
   return continuation() == kGeneratorClosed;
 }
 
-bool JSGeneratorObject::is_executing() {
+bool JSGeneratorObject::is_executing() const {
   return continuation() == kGeneratorExecuting;
 }
 
@@ -6387,7 +6449,6 @@
 ACCESSORS(Code, raw_type_feedback_info, Object, kTypeFeedbackInfoOffset)
 ACCESSORS(Code, next_code_link, Object, kNextCodeLinkOffset)
 
-
 void Code::WipeOutHeader() {
   WRITE_FIELD(this, kRelocationInfoOffset, NULL);
   WRITE_FIELD(this, kHandlerTableOffset, NULL);
@@ -6441,11 +6502,47 @@
   return instruction_start() + instruction_size();
 }
 
-
-int Code::body_size() {
-  return RoundUp(instruction_size(), kObjectAlignment);
+int Code::GetUnwindingInfoSizeOffset() const {
+  DCHECK(has_unwinding_info());
+  return RoundUp(kHeaderSize + instruction_size(), kInt64Size);
 }
 
+int Code::unwinding_info_size() const {
+  DCHECK(has_unwinding_info());
+  return static_cast<int>(
+      READ_UINT64_FIELD(this, GetUnwindingInfoSizeOffset()));
+}
+
+void Code::set_unwinding_info_size(int value) {
+  DCHECK(has_unwinding_info());
+  WRITE_UINT64_FIELD(this, GetUnwindingInfoSizeOffset(), value);
+}
+
+byte* Code::unwinding_info_start() {
+  DCHECK(has_unwinding_info());
+  return FIELD_ADDR(this, GetUnwindingInfoSizeOffset()) + kInt64Size;
+}
+
+byte* Code::unwinding_info_end() {
+  DCHECK(has_unwinding_info());
+  return unwinding_info_start() + unwinding_info_size();
+}
+
+int Code::body_size() {
+  int unpadded_body_size =
+      has_unwinding_info()
+          ? static_cast<int>(unwinding_info_end() - instruction_start())
+          : instruction_size();
+  return RoundUp(unpadded_body_size, kObjectAlignment);
+}
+
+int Code::SizeIncludingMetadata() {
+  int size = CodeSize();
+  size += relocation_info()->Size();
+  size += deoptimization_data()->Size();
+  size += handler_table()->Size();
+  return size;
+}
 
 ByteArray* Code::unchecked_relocation_info() {
   return reinterpret_cast<ByteArray*>(READ_FIELD(this, kRelocationInfoOffset));
@@ -6620,7 +6717,7 @@
 
 JSRegExp::Type JSRegExp::TypeTag() {
   Object* data = this->data();
-  if (data->IsUndefined()) return JSRegExp::NOT_COMPILED;
+  if (data->IsUndefined(GetIsolate())) return JSRegExp::NOT_COMPILED;
   Smi* smi = Smi::cast(FixedArray::cast(data)->get(kTagIndex));
   return static_cast<JSRegExp::Type>(smi->value());
 }
@@ -6678,16 +6775,18 @@
   // pointer may point to a one pointer filler map.
   if (ElementsAreSafeToExamine()) {
     Map* map = fixed_array->map();
-    DCHECK((IsFastSmiOrObjectElementsKind(kind) &&
-            (map == GetHeap()->fixed_array_map() ||
-             map == GetHeap()->fixed_cow_array_map())) ||
-           (IsFastDoubleElementsKind(kind) &&
-            (fixed_array->IsFixedDoubleArray() ||
-             fixed_array == GetHeap()->empty_fixed_array())) ||
-           (kind == DICTIONARY_ELEMENTS &&
-            fixed_array->IsFixedArray() &&
-            fixed_array->IsDictionary()) ||
-           (kind > DICTIONARY_ELEMENTS));
+    if (IsFastSmiOrObjectElementsKind(kind)) {
+      DCHECK(map == GetHeap()->fixed_array_map() ||
+             map == GetHeap()->fixed_cow_array_map());
+    } else if (IsFastDoubleElementsKind(kind)) {
+      DCHECK(fixed_array->IsFixedDoubleArray() ||
+             fixed_array == GetHeap()->empty_fixed_array());
+    } else if (kind == DICTIONARY_ELEMENTS) {
+      DCHECK(fixed_array->IsFixedArray());
+      DCHECK(fixed_array->IsDictionary());
+    } else {
+      DCHECK(kind > DICTIONARY_ELEMENTS);
+    }
     DCHECK(!IsSloppyArgumentsElements(kind) ||
            (elements()->IsFixedArray() && elements()->length() >= 2));
   }
@@ -7216,19 +7315,20 @@
   return iter.GetCurrent() != global;
 }
 
-
-Handle<Smi> JSReceiver::GetOrCreateIdentityHash(Handle<JSReceiver> object) {
-  return object->IsJSProxy()
-      ? JSProxy::GetOrCreateIdentityHash(Handle<JSProxy>::cast(object))
-      : JSObject::GetOrCreateIdentityHash(Handle<JSObject>::cast(object));
+Smi* JSReceiver::GetOrCreateIdentityHash(Isolate* isolate,
+                                         Handle<JSReceiver> object) {
+  return object->IsJSProxy() ? JSProxy::GetOrCreateIdentityHash(
+                                   isolate, Handle<JSProxy>::cast(object))
+                             : JSObject::GetOrCreateIdentityHash(
+                                   isolate, Handle<JSObject>::cast(object));
 }
 
-Handle<Object> JSReceiver::GetIdentityHash(Isolate* isolate,
-                                           Handle<JSReceiver> receiver) {
-  return receiver->IsJSProxy() ? JSProxy::GetIdentityHash(
-                                     isolate, Handle<JSProxy>::cast(receiver))
-                               : JSObject::GetIdentityHash(
-                                     isolate, Handle<JSObject>::cast(receiver));
+Object* JSReceiver::GetIdentityHash(Isolate* isolate,
+                                    Handle<JSReceiver> receiver) {
+  return receiver->IsJSProxy()
+             ? JSProxy::GetIdentityHash(Handle<JSProxy>::cast(receiver))
+             : JSObject::GetIdentityHash(isolate,
+                                         Handle<JSObject>::cast(receiver));
 }
 
 
@@ -7276,6 +7376,9 @@
   set_flag(AttributesField::update(flag(), attributes));
 }
 
+bool FunctionTemplateInfo::IsTemplateFor(JSObject* object) {
+  return IsTemplateFor(object->map());
+}
 
 bool AccessorInfo::IsCompatibleReceiver(Object* receiver) {
   if (!HasExpectedReceiverType()) return true;
@@ -7305,8 +7408,9 @@
 
 
 void AccessorPair::SetComponents(Object* getter, Object* setter) {
-  if (!getter->IsNull()) set_getter(getter);
-  if (!setter->IsNull()) set_setter(setter);
+  Isolate* isolate = GetIsolate();
+  if (!getter->IsNull(isolate)) set_getter(getter);
+  if (!setter->IsNull(isolate)) set_setter(setter);
 }
 
 
@@ -7326,7 +7430,7 @@
 
 
 bool AccessorPair::IsJSAccessor(Object* obj) {
-  return obj->IsCallable() || obj->IsUndefined();
+  return obj->IsCallable() || obj->IsUndefined(GetIsolate());
 }
 
 
@@ -7358,9 +7462,9 @@
   int index = dict->EntryToIndex(entry);
   DisallowHeapAllocation no_gc;
   WriteBarrierMode mode = dict->GetWriteBarrierMode(no_gc);
-  dict->set(index, *key, mode);
-  dict->set(index + 1, *value, mode);
-  dict->set(index + 2, details.AsSmi());
+  dict->set(index + Dictionary::kEntryKeyIndex, *key, mode);
+  dict->set(index + Dictionary::kEntryValueIndex, *value, mode);
+  dict->set(index + Dictionary::kEntryDetailsIndex, details.AsSmi());
 }
 
 
@@ -7374,8 +7478,8 @@
   int index = dict->EntryToIndex(entry);
   DisallowHeapAllocation no_gc;
   WriteBarrierMode mode = dict->GetWriteBarrierMode(no_gc);
-  dict->set(index, *key, mode);
-  dict->set(index + 1, *value, mode);
+  dict->set(index + Dictionary::kEntryKeyIndex, *key, mode);
+  dict->set(index + Dictionary::kEntryValueIndex, *value, mode);
   PropertyCell::cast(*value)->set_property_details(details);
 }
 
@@ -7471,7 +7575,8 @@
 template <typename Dictionary>
 bool GlobalDictionaryShape::IsDeleted(Dictionary* dict, int entry) {
   DCHECK(dict->ValueAt(entry)->IsPropertyCell());
-  return PropertyCell::cast(dict->ValueAt(entry))->value()->IsTheHole();
+  Isolate* isolate = dict->GetIsolate();
+  return PropertyCell::cast(dict->ValueAt(entry))->value()->IsTheHole(isolate);
 }
 
 
@@ -7745,7 +7850,7 @@
   TableType* table(TableType::cast(this->table()));
   int index = Smi::cast(this->index())->value();
   Object* key = table->KeyAt(index);
-  DCHECK(!key->IsTheHole());
+  DCHECK(!key->IsTheHole(table->GetIsolate()));
   return key;
 }
 
@@ -7765,7 +7870,7 @@
   OrderedHashMap* table(OrderedHashMap::cast(this->table()));
   int index = Smi::cast(this->index())->value();
   Object* value = table->ValueAt(index);
-  DCHECK(!value->IsTheHole());
+  DCHECK(!value->IsTheHole(table->GetIsolate()));
   return value;
 }
 
diff --git a/src/objects-printer.cc b/src/objects-printer.cc
index 551beb2..464177b 100644
--- a/src/objects-printer.cc
+++ b/src/objects-printer.cc
@@ -106,6 +106,8 @@
     case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
     case JS_GENERATOR_OBJECT_TYPE:
     case JS_PROMISE_TYPE:
+    case JS_ARGUMENTS_TYPE:
+    case JS_ERROR_TYPE:
       JSObject::cast(this)->JSObjectPrint(os);
       break;
     case JS_ARRAY_TYPE:
@@ -380,8 +382,7 @@
 
     case DICTIONARY_ELEMENTS:
     case SLOW_STRING_WRAPPER_ELEMENTS:
-      os << "\n - elements: ";
-      elements()->Print(os);
+      SeededNumberDictionary::cast(elements())->Print(os);
       break;
     case FAST_SLOPPY_ARGUMENTS_ELEMENTS:
     case SLOW_SLOPPY_ARGUMENTS_ELEMENTS: {
@@ -424,10 +425,14 @@
 
 static void JSObjectPrintBody(std::ostream& os, JSObject* obj,  // NOLINT
                               bool print_elements = true) {
-  os << "\n {";
+  os << "\n - properties = {";
   obj->PrintProperties(os);
-  if (print_elements) obj->PrintElements(os);
   os << "\n }\n";
+  if (print_elements && obj->elements()->length() > 0) {
+    os << " - elements = {";
+    obj->PrintElements(os);
+    os << "\n }\n";
+  }
 }
 
 
@@ -462,7 +467,7 @@
   HeapObject::PrintHeader(os, "Symbol");
   os << "\n - hash: " << Hash();
   os << "\n - name: " << Brief(name());
-  if (name()->IsUndefined()) {
+  if (name()->IsUndefined(GetIsolate())) {
     os << " (" << PrivateSymbolToName() << ")";
   }
   os << "\n - private: " << is_private();
@@ -575,6 +580,40 @@
   os << "\n";
 }
 
+template void FeedbackVectorSpecBase<StaticFeedbackVectorSpec>::Print();
+template void FeedbackVectorSpecBase<FeedbackVectorSpec>::Print();
+
+template <typename Derived>
+void FeedbackVectorSpecBase<Derived>::Print() {
+  OFStream os(stdout);
+  FeedbackVectorSpecPrint(os);
+  os << std::flush;
+}
+
+template <typename Derived>
+void FeedbackVectorSpecBase<Derived>::FeedbackVectorSpecPrint(
+    std::ostream& os) {  // NOLINT
+  int slot_count = This()->slots();
+  os << " - slot_count: " << slot_count;
+  if (slot_count == 0) {
+    os << " (empty)\n";
+    return;
+  }
+
+  for (int slot = 0, name_index = 0; slot < slot_count;) {
+    FeedbackVectorSlotKind kind = This()->GetKind(slot);
+    int entry_size = TypeFeedbackMetadata::GetSlotSize(kind);
+    DCHECK_LT(0, entry_size);
+
+    os << "\n Slot #" << slot << " " << kind;
+    if (TypeFeedbackMetadata::SlotRequiresName(kind)) {
+      os << ", " << Brief(*This()->GetName(name_index++));
+    }
+
+    slot += entry_size;
+  }
+  os << "\n";
+}
 
 void TypeFeedbackMetadata::Print() {
   OFStream os(stdout);
@@ -591,12 +630,16 @@
     os << " (empty)\n";
     return;
   }
+  os << "\n - slot_count: " << slot_count();
 
   TypeFeedbackMetadataIterator iter(this);
   while (iter.HasNext()) {
     FeedbackVectorSlot slot = iter.Next();
     FeedbackVectorSlotKind kind = iter.kind();
     os << "\n Slot " << slot << " " << kind;
+    if (TypeFeedbackMetadata::SlotRequiresName(kind)) {
+      os << ", " << Brief(iter.name());
+    }
   }
   os << "\n";
 }
@@ -622,13 +665,22 @@
     FeedbackVectorSlot slot = iter.Next();
     FeedbackVectorSlotKind kind = iter.kind();
 
-    os << "\n Slot " << slot << " " << kind << " ";
+    os << "\n Slot " << slot << " " << kind;
+    if (TypeFeedbackMetadata::SlotRequiresName(kind)) {
+      os << ", " << Brief(iter.name());
+    }
+    os << " ";
     switch (kind) {
       case FeedbackVectorSlotKind::LOAD_IC: {
         LoadICNexus nexus(this, slot);
         os << Code::ICState2String(nexus.StateFromFeedback());
         break;
       }
+      case FeedbackVectorSlotKind::LOAD_GLOBAL_IC: {
+        LoadGlobalICNexus nexus(this, slot);
+        os << Code::ICState2String(nexus.StateFromFeedback());
+        break;
+      }
       case FeedbackVectorSlotKind::KEYED_LOAD_IC: {
         KeyedLoadICNexus nexus(this, slot);
         os << Code::ICState2String(nexus.StateFromFeedback());
@@ -716,8 +768,6 @@
 void Name::NamePrint(std::ostream& os) {  // NOLINT
   if (IsString()) {
     String::cast(this)->StringPrint(os);
-  } else if (IsSymbol()) {
-    Symbol::cast(this)->name()->Print(os);
   } else {
     os << Brief(this);
   }
@@ -875,6 +925,8 @@
      << shared()->internal_formal_parameter_count();
   if (shared()->is_generator()) {
     os << "\n   - generator";
+  } else if (shared()->is_async()) {
+    os << "\n   - async";
   }
   os << "\n - context = " << Brief(context());
   os << "\n - literals = " << Brief(literals());
@@ -916,9 +968,10 @@
   os << "\n - end position = " << end_position();
   os << "\n - debug info = " << Brief(debug_info());
   os << "\n - length = " << length();
+  os << "\n - num_literals = " << num_literals();
   os << "\n - optimized_code_map = " << Brief(optimized_code_map());
-  os << "\n - feedback_vector = ";
-  feedback_vector()->TypeFeedbackVectorPrint(os);
+  os << "\n - feedback_metadata = ";
+  feedback_metadata()->TypeFeedbackMetadataPrint(os);
   if (HasBytecodeArray()) {
     os << "\n - bytecode_array = " << bytecode_array();
   }
@@ -1032,9 +1085,9 @@
 
 void AccessCheckInfo::AccessCheckInfoPrint(std::ostream& os) {  // NOLINT
   HeapObject::PrintHeader(os, "AccessCheckInfo");
-  os << "\n - named_callback: " << Brief(named_callback());
-  os << "\n - indexed_callback: " << Brief(indexed_callback());
   os << "\n - callback: " << Brief(callback());
+  os << "\n - named_interceptor: " << Brief(named_interceptor());
+  os << "\n - indexed_interceptor: " << Brief(indexed_interceptor());
   os << "\n - data: " << Brief(data());
   os << "\n";
 }
@@ -1187,7 +1240,7 @@
 
 void LayoutDescriptor::Print(std::ostream& os) {  // NOLINT
   os << "Layout descriptor: ";
-  if (IsUninitialized()) {
+  if (IsOddball() && IsUninitialized(HeapObject::cast(this)->GetIsolate())) {
     os << "<uninitialized>";
   } else if (IsFastPointerLayout()) {
     os << "<all tagged>";
@@ -1218,7 +1271,7 @@
   } else {
     DCHECK(this->IsSymbol());
     Symbol* s = Symbol::cast(this);
-    if (s->name()->IsUndefined()) {
+    if (s->name()->IsUndefined(GetIsolate())) {
       PrintF("#<%s>", s->PrivateSymbolToName());
     } else {
       PrintF("<%s>", String::cast(s->name())->ToCString().get());
@@ -1233,7 +1286,7 @@
   } else {
     DCHECK(this->IsSymbol());
     Symbol* s = Symbol::cast(this);
-    if (s->name()->IsUndefined()) {
+    if (s->name()->IsUndefined(GetIsolate())) {
       return SNPrintF(str, "#<%s>", s->PrivateSymbolToName());
     } else {
       return SNPrintF(str, "<%s>", String::cast(s->name())->ToCString().get());
diff --git a/src/objects.cc b/src/objects.cc
index addf97a..fb5bb5e 100644
--- a/src/objects.cc
+++ b/src/objects.cc
@@ -12,7 +12,7 @@
 
 #include "src/accessors.h"
 #include "src/allocation-site-scopes.h"
-#include "src/api-arguments.h"
+#include "src/api-arguments-inl.h"
 #include "src/api-natives.h"
 #include "src/api.h"
 #include "src/base/bits.h"
@@ -47,7 +47,6 @@
 #include "src/macro-assembler.h"
 #include "src/messages.h"
 #include "src/objects-body-descriptors-inl.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/property-descriptor.h"
 #include "src/prototype.h"
 #include "src/regexp/jsregexp.h"
@@ -124,7 +123,7 @@
                                                 Handle<Object> object) {
   if (object->IsJSReceiver()) return Handle<JSReceiver>::cast(object);
   if (*object == isolate->heap()->null_value() ||
-      *object == isolate->heap()->undefined_value()) {
+      object->IsUndefined(isolate)) {
     return isolate->global_proxy();
   }
   return Object::ToObject(isolate, object);
@@ -231,9 +230,11 @@
 
 
 bool Object::BooleanValue() {
-  if (IsBoolean()) return IsTrue();
   if (IsSmi()) return Smi::cast(this)->value() != 0;
-  if (IsUndefined() || IsNull()) return false;
+  DCHECK(IsHeapObject());
+  Isolate* isolate = HeapObject::cast(this)->GetIsolate();
+  if (IsBoolean()) return IsTrue(isolate);
+  if (IsUndefined(isolate) || IsNull(isolate)) return false;
   if (IsUndetectable()) return false;  // Undetectable object is false.
   if (IsString()) return String::cast(this)->length() != 0;
   if (IsHeapNumber()) return HeapNumber::cast(this)->HeapNumberBooleanValue();
@@ -613,30 +614,28 @@
 // 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);
-    }
+  // 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;
+  // 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(isolate)) {
+    // Call the {inst_of_handler} on the {callable}.
+    Handle<Object> result;
     ASSIGN_RETURN_ON_EXCEPTION(
-        isolate, inst_of_handler,
-        JSReceiver::GetMethod(Handle<JSReceiver>::cast(callable),
-                              isolate->factory()->has_instance_symbol()),
+        isolate, result,
+        Execution::Call(isolate, inst_of_handler, callable, 1, &object),
         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());
-    }
+    return isolate->factory()->ToBoolean(result->BooleanValue());
   }
 
   // The {callable} must have a [[Call]] internal method.
@@ -671,20 +670,6 @@
 }
 
 
-bool Object::IsPromise(Handle<Object> object) {
-  if (!object->IsJSObject()) return false;
-  auto js_object = Handle<JSObject>::cast(object);
-  // Promises can't have access checks.
-  if (js_object->map()->is_access_check_needed()) return false;
-  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_state_symbol();
-  // Shouldn't be possible to throw here.
-  return JSObject::HasRealNamedProperty(js_object, key).FromJust();
-}
-
-
 // static
 MaybeHandle<Object> Object::GetMethod(Handle<JSReceiver> receiver,
                                       Handle<Name> name) {
@@ -692,7 +677,7 @@
   Isolate* isolate = receiver->GetIsolate();
   ASSIGN_RETURN_ON_EXCEPTION(isolate, func,
                              JSReceiver::GetProperty(receiver, name), Object);
-  if (func->IsNull() || func->IsUndefined()) {
+  if (func->IsNull(isolate) || func->IsUndefined(isolate)) {
     return isolate->factory()->undefined_value();
   }
   if (!func->IsCallable()) {
@@ -719,14 +704,9 @@
   }
   // 4. Let len be ? ToLength(? Get(obj, "length")).
   Handle<JSReceiver> receiver = Handle<JSReceiver>::cast(object);
-  Handle<Object> raw_length_obj;
-  ASSIGN_RETURN_ON_EXCEPTION(
-      isolate, raw_length_obj,
-      JSReceiver::GetProperty(receiver, isolate->factory()->length_string()),
-      FixedArray);
   Handle<Object> raw_length_number;
   ASSIGN_RETURN_ON_EXCEPTION(isolate, raw_length_number,
-                             Object::ToLength(isolate, raw_length_obj),
+                             Object::GetLengthFromArrayLike(isolate, receiver),
                              FixedArray);
   uint32_t len;
   if (!raw_length_number->ToUint32(&len) ||
@@ -773,6 +753,16 @@
 
 
 // static
+MaybeHandle<Object> Object::GetLengthFromArrayLike(Isolate* isolate,
+                                                   Handle<Object> object) {
+  Handle<Object> val;
+  Handle<Object> key = isolate->factory()->length_string();
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, val, Runtime::GetObjectProperty(isolate, object, key), Object);
+  return Object::ToLength(isolate, val);
+}
+
+// static
 Maybe<bool> JSReceiver::HasProperty(LookupIterator* it) {
   for (; it->IsFound(); it->Next()) {
     switch (it->state()) {
@@ -882,7 +872,7 @@
       isolate, trap,
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name), Object);
   // 7. If trap is undefined, then
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 7.a Return target.[[Get]](P, Receiver).
     LookupIterator it =
         LookupIterator::PropertyOrElement(isolate, receiver, name, target);
@@ -922,8 +912,8 @@
     // 10.b.i. If trapResult is not undefined, throw a TypeError exception.
     inconsistent = PropertyDescriptor::IsAccessorDescriptor(&target_desc) &&
                    !target_desc.configurable() &&
-                   target_desc.get()->IsUndefined() &&
-                   !trap_result->IsUndefined();
+                   target_desc.get()->IsUndefined(isolate) &&
+                   !trap_result->IsUndefined(isolate);
     if (inconsistent) {
       THROW_NEW_ERROR(
           isolate,
@@ -982,13 +972,41 @@
   return false;
 }
 
+Handle<SharedFunctionInfo> FunctionTemplateInfo::GetOrCreateSharedFunctionInfo(
+    Isolate* isolate, Handle<FunctionTemplateInfo> info) {
+  Object* current_info = info->shared_function_info();
+  if (current_info->IsSharedFunctionInfo()) {
+    return handle(SharedFunctionInfo::cast(current_info), isolate);
+  }
 
-bool FunctionTemplateInfo::IsTemplateFor(Object* object) {
-  if (!object->IsHeapObject()) return false;
-  return IsTemplateFor(HeapObject::cast(object)->map());
+  Handle<Object> class_name(info->class_name(), isolate);
+  Handle<String> name = class_name->IsString()
+                            ? Handle<String>::cast(class_name)
+                            : isolate->factory()->empty_string();
+  Handle<Code> code;
+  if (info->call_code()->IsCallHandlerInfo() &&
+      CallHandlerInfo::cast(info->call_code())->fast_handler()->IsCode()) {
+    code = isolate->builtins()->HandleFastApiCall();
+  } else {
+    code = isolate->builtins()->HandleApiCall();
+  }
+  bool is_constructor = !info->remove_prototype();
+  Handle<SharedFunctionInfo> result =
+      isolate->factory()->NewSharedFunctionInfo(name, code, is_constructor);
+  if (is_constructor) {
+    result->set_construct_stub(*isolate->builtins()->JSConstructStubApi());
+  }
+
+  result->set_length(info->length());
+  if (class_name->IsString()) result->set_instance_class_name(*class_name);
+  result->set_api_func_data(*info);
+  result->DontAdaptArguments();
+  DCHECK(result->IsApiFunction());
+
+  info->set_shared_function_info(*result);
+  return result;
 }
 
-
 bool FunctionTemplateInfo::IsTemplateFor(Map* map) {
   // There is a constraint on the object; check.
   if (!map->IsJSObjectMap()) return false;
@@ -1008,26 +1026,6 @@
 }
 
 
-// TODO(dcarney): CallOptimization duplicates this logic, merge.
-Object* FunctionTemplateInfo::GetCompatibleReceiver(Isolate* isolate,
-                                                    Object* receiver) {
-  // API calls are only supported with JSObject receivers.
-  if (!receiver->IsJSObject()) return isolate->heap()->null_value();
-  Object* recv_type = this->signature();
-  // No signature, return holder.
-  if (recv_type->IsUndefined()) return receiver;
-  FunctionTemplateInfo* signature = FunctionTemplateInfo::cast(recv_type);
-  // Check the receiver.
-  for (PrototypeIterator iter(isolate, JSObject::cast(receiver),
-                              PrototypeIterator::START_AT_RECEIVER,
-                              PrototypeIterator::END_AT_NON_HIDDEN);
-       !iter.IsAtEnd(); iter.Advance()) {
-    if (signature->IsTemplateFor(iter.GetCurrent())) return iter.GetCurrent();
-  }
-  return isolate->heap()->null_value();
-}
-
-
 // static
 MaybeHandle<JSObject> JSObject::New(Handle<JSFunction> constructor,
                                     Handle<JSReceiver> new_target,
@@ -1094,7 +1092,7 @@
   ASSIGN_RETURN_ON_EXCEPTION(isolate, trap, GetMethod(handler, trap_name),
                              Object);
   // 6. If trap is undefined, then return target.[[GetPrototypeOf]]().
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     return JSReceiver::GetPrototype(isolate, target);
   }
   // 7. Let handlerProto be ? Call(trap, handler, «target»).
@@ -1104,7 +1102,7 @@
       isolate, handler_proto,
       Execution::Call(isolate, trap, handler, arraysize(argv), argv), Object);
   // 8. If Type(handlerProto) is neither Object nor Null, throw a TypeError.
-  if (!(handler_proto->IsJSReceiver() || handler_proto->IsNull())) {
+  if (!(handler_proto->IsJSReceiver() || handler_proto->IsNull(isolate))) {
     THROW_NEW_ERROR(isolate,
                     NewTypeError(MessageTemplate::kProxyGetPrototypeOfInvalid),
                     Object);
@@ -1172,16 +1170,9 @@
   // Regular accessor.
   Handle<Object> getter(AccessorPair::cast(*structure)->getter(), isolate);
   if (getter->IsFunctionTemplateInfo()) {
-    auto result = Builtins::InvokeApiFunction(
-        Handle<FunctionTemplateInfo>::cast(getter), receiver, 0, nullptr);
-    if (isolate->has_pending_exception()) {
-      return MaybeHandle<Object>();
-    }
-    Handle<Object> return_value;
-    if (result.ToHandle(&return_value)) {
-      return_value->VerifyApiCallResultType();
-      return handle(*return_value, isolate);
-    }
+    return Builtins::InvokeApiFunction(
+        isolate, Handle<FunctionTemplateInfo>::cast(getter), receiver, 0,
+        nullptr);
   } else if (getter->IsCallable()) {
     // TODO(rossberg): nicer would be to cast to some JSCallable here...
     return Object::GetPropertyWithDefinedGetter(
@@ -1261,12 +1252,11 @@
   Handle<Object> setter(AccessorPair::cast(*structure)->setter(), isolate);
   if (setter->IsFunctionTemplateInfo()) {
     Handle<Object> argv[] = {value};
-    auto result =
-        Builtins::InvokeApiFunction(Handle<FunctionTemplateInfo>::cast(setter),
-                                    receiver, arraysize(argv), argv);
-    if (isolate->has_pending_exception()) {
-      return Nothing<bool>();
-    }
+    RETURN_ON_EXCEPTION_VALUE(
+        isolate, Builtins::InvokeApiFunction(
+                     isolate, Handle<FunctionTemplateInfo>::cast(setter),
+                     receiver, arraysize(argv), argv),
+        Nothing<bool>());
     return Just(true);
   } else if (setter->IsCallable()) {
     // TODO(rossberg): nicer would be to cast to some JSCallable here...
@@ -1318,18 +1308,6 @@
 
 
 // static
-bool Object::IsErrorObject(Isolate* isolate, Handle<Object> object) {
-  if (!object->IsJSObject()) return false;
-  // Use stack_trace_symbol as proxy for [[ErrorData]].
-  Handle<Name> symbol = isolate->factory()->stack_trace_symbol();
-  Maybe<bool> has_stack_trace =
-      JSReceiver::HasOwnProperty(Handle<JSReceiver>::cast(object), symbol);
-  DCHECK(!has_stack_trace.IsNothing());
-  return has_stack_trace.FromJust();
-}
-
-
-// static
 bool JSObject::AllCanRead(LookupIterator* it) {
   // Skip current iteration, it's in state ACCESS_CHECK or INTERCEPTOR, both of
   // which have already been checked.
@@ -1351,19 +1329,191 @@
   return false;
 }
 
+namespace {
+
+MaybeHandle<Object> GetPropertyWithInterceptorInternal(
+    LookupIterator* it, Handle<InterceptorInfo> interceptor, bool* done) {
+  *done = false;
+  Isolate* isolate = it->isolate();
+  // Make sure that the top context does not change when doing callbacks or
+  // interceptor calls.
+  AssertNoContextChange ncc(isolate);
+
+  if (interceptor->getter()->IsUndefined(isolate)) {
+    return isolate->factory()->undefined_value();
+  }
+
+  Handle<JSObject> holder = it->GetHolder<JSObject>();
+  Handle<Object> result;
+  Handle<Object> receiver = it->GetReceiver();
+  if (!receiver->IsJSReceiver()) {
+    ASSIGN_RETURN_ON_EXCEPTION(
+        isolate, receiver, Object::ConvertReceiver(isolate, receiver), Object);
+  }
+  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
+                                 *holder, Object::DONT_THROW);
+
+  if (it->IsElement()) {
+    uint32_t index = it->index();
+    v8::IndexedPropertyGetterCallback getter =
+        v8::ToCData<v8::IndexedPropertyGetterCallback>(interceptor->getter());
+    result = args.Call(getter, index);
+  } else {
+    Handle<Name> name = it->name();
+    DCHECK(!name->IsPrivate());
+
+    if (name->IsSymbol() && !interceptor->can_intercept_symbols()) {
+      return isolate->factory()->undefined_value();
+    }
+
+    v8::GenericNamedPropertyGetterCallback getter =
+        v8::ToCData<v8::GenericNamedPropertyGetterCallback>(
+            interceptor->getter());
+    result = args.Call(getter, name);
+  }
+
+  RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
+  if (result.is_null()) return isolate->factory()->undefined_value();
+  *done = true;
+  // Rebox handle before return
+  return handle(*result, isolate);
+}
+
+Maybe<PropertyAttributes> GetPropertyAttributesWithInterceptorInternal(
+    LookupIterator* it, Handle<InterceptorInfo> interceptor) {
+  Isolate* isolate = it->isolate();
+  // Make sure that the top context does not change when doing
+  // callbacks or interceptor calls.
+  AssertNoContextChange ncc(isolate);
+  HandleScope scope(isolate);
+
+  Handle<JSObject> holder = it->GetHolder<JSObject>();
+  if (!it->IsElement() && it->name()->IsSymbol() &&
+      !interceptor->can_intercept_symbols()) {
+    return Just(ABSENT);
+  }
+  Handle<Object> receiver = it->GetReceiver();
+  if (!receiver->IsJSReceiver()) {
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, receiver,
+                                     Object::ConvertReceiver(isolate, receiver),
+                                     Nothing<PropertyAttributes>());
+  }
+  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
+                                 *holder, Object::DONT_THROW);
+  if (!interceptor->query()->IsUndefined(isolate)) {
+    Handle<Object> result;
+    if (it->IsElement()) {
+      uint32_t index = it->index();
+      v8::IndexedPropertyQueryCallback query =
+          v8::ToCData<v8::IndexedPropertyQueryCallback>(interceptor->query());
+      result = args.Call(query, index);
+    } else {
+      Handle<Name> name = it->name();
+      DCHECK(!name->IsPrivate());
+      v8::GenericNamedPropertyQueryCallback query =
+          v8::ToCData<v8::GenericNamedPropertyQueryCallback>(
+              interceptor->query());
+      result = args.Call(query, name);
+    }
+    if (!result.is_null()) {
+      int32_t value;
+      CHECK(result->ToInt32(&value));
+      return Just(static_cast<PropertyAttributes>(value));
+    }
+  } else if (!interceptor->getter()->IsUndefined(isolate)) {
+    // TODO(verwaest): Use GetPropertyWithInterceptor?
+    Handle<Object> result;
+    if (it->IsElement()) {
+      uint32_t index = it->index();
+      v8::IndexedPropertyGetterCallback getter =
+          v8::ToCData<v8::IndexedPropertyGetterCallback>(interceptor->getter());
+      result = args.Call(getter, index);
+    } else {
+      Handle<Name> name = it->name();
+      DCHECK(!name->IsPrivate());
+      v8::GenericNamedPropertyGetterCallback getter =
+          v8::ToCData<v8::GenericNamedPropertyGetterCallback>(
+              interceptor->getter());
+      result = args.Call(getter, name);
+    }
+    if (!result.is_null()) return Just(DONT_ENUM);
+  }
+
+  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<PropertyAttributes>());
+  return Just(ABSENT);
+}
+
+Maybe<bool> SetPropertyWithInterceptorInternal(
+    LookupIterator* it, Handle<InterceptorInfo> interceptor,
+    Object::ShouldThrow should_throw, Handle<Object> value) {
+  Isolate* isolate = it->isolate();
+  // Make sure that the top context does not change when doing callbacks or
+  // interceptor calls.
+  AssertNoContextChange ncc(isolate);
+
+  if (interceptor->setter()->IsUndefined(isolate)) return Just(false);
+
+  Handle<JSObject> holder = it->GetHolder<JSObject>();
+  bool result;
+  Handle<Object> receiver = it->GetReceiver();
+  if (!receiver->IsJSReceiver()) {
+    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, receiver,
+                                     Object::ConvertReceiver(isolate, receiver),
+                                     Nothing<bool>());
+  }
+  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
+                                 *holder, should_throw);
+
+  if (it->IsElement()) {
+    uint32_t index = it->index();
+    v8::IndexedPropertySetterCallback setter =
+        v8::ToCData<v8::IndexedPropertySetterCallback>(interceptor->setter());
+    // TODO(neis): In the future, we may want to actually return the
+    // interceptor's result, which then should be a boolean.
+    result = !args.Call(setter, index, value).is_null();
+  } else {
+    Handle<Name> name = it->name();
+    DCHECK(!name->IsPrivate());
+
+    if (name->IsSymbol() && !interceptor->can_intercept_symbols()) {
+      return Just(false);
+    }
+
+    v8::GenericNamedPropertySetterCallback setter =
+        v8::ToCData<v8::GenericNamedPropertySetterCallback>(
+            interceptor->setter());
+    result = !args.Call(setter, name, value).is_null();
+  }
+
+  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), Nothing<bool>());
+  return Just(result);
+}
+
+}  // namespace
 
 MaybeHandle<Object> JSObject::GetPropertyWithFailedAccessCheck(
     LookupIterator* it) {
+  Isolate* isolate = it->isolate();
   Handle<JSObject> checked = it->GetHolder<JSObject>();
-  while (AllCanRead(it)) {
-    if (it->state() == LookupIterator::ACCESSOR) {
-      return GetPropertyWithAccessor(it);
+  Handle<InterceptorInfo> interceptor =
+      it->GetInterceptorForFailedAccessCheck();
+  if (interceptor.is_null()) {
+    while (AllCanRead(it)) {
+      if (it->state() == LookupIterator::ACCESSOR) {
+        return GetPropertyWithAccessor(it);
+      }
+      DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
+      bool done;
+      Handle<Object> result;
+      ASSIGN_RETURN_ON_EXCEPTION(isolate, result,
+                                 GetPropertyWithInterceptor(it, &done), Object);
+      if (done) return result;
     }
-    DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
+  } else {
+    MaybeHandle<Object> result;
     bool done;
-    Handle<Object> result;
-    ASSIGN_RETURN_ON_EXCEPTION(it->isolate(), result,
-                               GetPropertyWithInterceptor(it, &done), Object);
+    result = GetPropertyWithInterceptorInternal(it, interceptor, &done);
+    RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
     if (done) return result;
   }
 
@@ -1374,27 +1524,36 @@
     return it->factory()->undefined_value();
   }
 
-  it->isolate()->ReportFailedAccessCheck(checked);
-  RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(it->isolate(), Object);
+  isolate->ReportFailedAccessCheck(checked);
+  RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
   return it->factory()->undefined_value();
 }
 
 
 Maybe<PropertyAttributes> JSObject::GetPropertyAttributesWithFailedAccessCheck(
     LookupIterator* it) {
+  Isolate* isolate = it->isolate();
   Handle<JSObject> checked = it->GetHolder<JSObject>();
-  while (AllCanRead(it)) {
-    if (it->state() == LookupIterator::ACCESSOR) {
-      return Just(it->property_attributes());
+  Handle<InterceptorInfo> interceptor =
+      it->GetInterceptorForFailedAccessCheck();
+  if (interceptor.is_null()) {
+    while (AllCanRead(it)) {
+      if (it->state() == LookupIterator::ACCESSOR) {
+        return Just(it->property_attributes());
+      }
+      DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
+      auto result = GetPropertyAttributesWithInterceptor(it);
+      if (isolate->has_scheduled_exception()) break;
+      if (result.IsJust() && result.FromJust() != ABSENT) return result;
     }
-    DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
-    auto result = GetPropertyAttributesWithInterceptor(it);
-    if (it->isolate()->has_scheduled_exception()) break;
-    if (result.IsJust() && result.FromJust() != ABSENT) return result;
+  } else {
+    Maybe<PropertyAttributes> result =
+        GetPropertyAttributesWithInterceptorInternal(it, interceptor);
+    RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<PropertyAttributes>());
+    if (result.FromMaybe(ABSENT) != ABSENT) return result;
   }
-  it->isolate()->ReportFailedAccessCheck(checked);
-  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(),
-                                      Nothing<PropertyAttributes>());
+  isolate->ReportFailedAccessCheck(checked);
+  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<PropertyAttributes>());
   return Just(ABSENT);
 }
 
@@ -1415,13 +1574,23 @@
 
 Maybe<bool> JSObject::SetPropertyWithFailedAccessCheck(
     LookupIterator* it, Handle<Object> value, ShouldThrow should_throw) {
+  Isolate* isolate = it->isolate();
   Handle<JSObject> checked = it->GetHolder<JSObject>();
-  if (AllCanWrite(it)) {
-    return SetPropertyWithAccessor(it, value, should_throw);
+  Handle<InterceptorInfo> interceptor =
+      it->GetInterceptorForFailedAccessCheck();
+  if (interceptor.is_null()) {
+    if (AllCanWrite(it)) {
+      return SetPropertyWithAccessor(it, value, should_throw);
+    }
+  } else {
+    Maybe<bool> result = SetPropertyWithInterceptorInternal(
+        it, interceptor, should_throw, value);
+    RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<bool>());
+    if (result.IsJust()) return result;
   }
 
-  it->isolate()->ReportFailedAccessCheck(checked);
-  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), Nothing<bool>());
+  isolate->ReportFailedAccessCheck(checked);
+  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<bool>());
   return Just(true);
 }
 
@@ -1441,10 +1610,12 @@
 
     int entry = property_dictionary->FindEntry(name);
     if (entry == GlobalDictionary::kNotFound) {
-      auto cell = object->GetIsolate()->factory()->NewPropertyCell();
+      Isolate* isolate = object->GetIsolate();
+      auto cell = isolate->factory()->NewPropertyCell();
       cell->set_value(*value);
-      auto cell_type = value->IsUndefined() ? PropertyCellType::kUndefined
-                                            : PropertyCellType::kConstant;
+      auto cell_type = value->IsUndefined(isolate)
+                           ? PropertyCellType::kUndefined
+                           : PropertyCellType::kConstant;
       details = details.set_cell_type(cell_type);
       value = cell;
       property_dictionary =
@@ -1475,7 +1646,7 @@
 Maybe<bool> JSReceiver::HasInPrototypeChain(Isolate* isolate,
                                             Handle<JSReceiver> object,
                                             Handle<Object> proto) {
-  PrototypeIterator iter(isolate, object, PrototypeIterator::START_AT_RECEIVER);
+  PrototypeIterator iter(isolate, object, kStartAtReceiver);
   while (true) {
     if (!iter.AdvanceFollowingProxies()) return Nothing<bool>();
     if (iter.IsAtEnd()) return Just(false);
@@ -1509,28 +1680,21 @@
   return isolate->heap()->null_value()->map();
 }
 
+namespace {
 
-Object* Object::GetHash() {
-  Object* hash = GetSimpleHash();
-  if (hash->IsSmi()) return hash;
-
-  DisallowHeapAllocation no_gc;
-  DCHECK(IsJSReceiver());
-  JSReceiver* receiver = JSReceiver::cast(this);
-  Isolate* isolate = receiver->GetIsolate();
-  return *JSReceiver::GetIdentityHash(isolate, handle(receiver, isolate));
-}
-
-
-Object* Object::GetSimpleHash() {
+// Returns a non-SMI for JSObjects, but returns the hash code for simple
+// objects.  This avoids a double lookup in the cases where we know we will
+// add the hash to the JSObject if it does not already exist.
+Object* GetSimpleHash(Object* object) {
   // The object is either a Smi, a HeapNumber, a name, an odd-ball,
   // a SIMD value type, a real JS object, or a Harmony proxy.
-  if (IsSmi()) {
-    uint32_t hash = ComputeIntegerHash(Smi::cast(this)->value(), kZeroHashSeed);
+  if (object->IsSmi()) {
+    uint32_t hash =
+        ComputeIntegerHash(Smi::cast(object)->value(), kZeroHashSeed);
     return Smi::FromInt(hash & Smi::kMaxValue);
   }
-  if (IsHeapNumber()) {
-    double num = HeapNumber::cast(this)->value();
+  if (object->IsHeapNumber()) {
+    double num = HeapNumber::cast(object)->value();
     if (std::isnan(num)) return Smi::FromInt(Smi::kMaxValue);
     if (i::IsMinusZero(num)) num = 0;
     if (IsSmiDouble(num)) {
@@ -1539,30 +1703,43 @@
     uint32_t hash = ComputeLongHash(double_to_uint64(num));
     return Smi::FromInt(hash & Smi::kMaxValue);
   }
-  if (IsName()) {
-    uint32_t hash = Name::cast(this)->Hash();
+  if (object->IsName()) {
+    uint32_t hash = Name::cast(object)->Hash();
     return Smi::FromInt(hash);
   }
-  if (IsOddball()) {
-    uint32_t hash = Oddball::cast(this)->to_string()->Hash();
+  if (object->IsOddball()) {
+    uint32_t hash = Oddball::cast(object)->to_string()->Hash();
     return Smi::FromInt(hash);
   }
-  if (IsSimd128Value()) {
-    uint32_t hash = Simd128Value::cast(this)->Hash();
+  if (object->IsSimd128Value()) {
+    uint32_t hash = Simd128Value::cast(object)->Hash();
     return Smi::FromInt(hash & Smi::kMaxValue);
   }
-  DCHECK(IsJSReceiver());
-  JSReceiver* receiver = JSReceiver::cast(this);
-  return receiver->GetHeap()->undefined_value();
+  DCHECK(object->IsJSReceiver());
+  // Simply return the receiver as it is guaranteed to not be a SMI.
+  return object;
 }
 
+}  // namespace
 
-Handle<Smi> Object::GetOrCreateHash(Isolate* isolate, Handle<Object> object) {
-  Handle<Object> hash(object->GetSimpleHash(), isolate);
-  if (hash->IsSmi()) return Handle<Smi>::cast(hash);
+Object* Object::GetHash() {
+  Object* hash = GetSimpleHash(this);
+  if (hash->IsSmi()) return hash;
+
+  DisallowHeapAllocation no_gc;
+  DCHECK(IsJSReceiver());
+  JSReceiver* receiver = JSReceiver::cast(this);
+  Isolate* isolate = receiver->GetIsolate();
+  return JSReceiver::GetIdentityHash(isolate, handle(receiver, isolate));
+}
+
+Smi* Object::GetOrCreateHash(Isolate* isolate, Handle<Object> object) {
+  Object* hash = GetSimpleHash(*object);
+  if (hash->IsSmi()) return Smi::cast(hash);
 
   DCHECK(object->IsJSReceiver());
-  return JSReceiver::GetOrCreateIdentityHash(Handle<JSReceiver>::cast(object));
+  return JSReceiver::GetOrCreateIdentityHash(isolate,
+                                             Handle<JSReceiver>::cast(object));
 }
 
 
@@ -1644,9 +1821,6 @@
 MaybeHandle<Object> Object::ArraySpeciesConstructor(
     Isolate* isolate, Handle<Object> original_array) {
   Handle<Object> default_species = isolate->array_function();
-  if (!FLAG_harmony_species) {
-    return default_species;
-  }
   if (original_array->IsJSArray() &&
       Handle<JSArray>::cast(original_array)->HasArrayPrototype(isolate) &&
       isolate->IsArraySpeciesLookupChainIntact()) {
@@ -1678,12 +1852,12 @@
           JSReceiver::GetProperty(Handle<JSReceiver>::cast(constructor),
                                   isolate->factory()->species_symbol()),
           Object);
-      if (constructor->IsNull()) {
+      if (constructor->IsNull(isolate)) {
         constructor = isolate->factory()->undefined_value();
       }
     }
   }
-  if (constructor->IsUndefined()) {
+  if (constructor->IsUndefined(isolate)) {
     return default_species;
   } else {
     if (!constructor->IsConstructor()) {
@@ -1908,8 +2082,7 @@
   return true;
 }
 
-
-void String::StringShortPrint(StringStream* accumulator) {
+void String::StringShortPrint(StringStream* accumulator, bool show_details) {
   int len = length();
   if (len > kMaxShortPrintLength) {
     accumulator->Add("<Very long string[%u]>", len);
@@ -1938,15 +2111,15 @@
   }
   stream.Reset(this);
   if (one_byte) {
-    accumulator->Add("<String[%u]: ", length());
+    if (show_details) accumulator->Add("<String[%u]: ", length());
     for (int i = 0; i < len; i++) {
       accumulator->Put(static_cast<char>(stream.GetNext()));
     }
-    accumulator->Put('>');
+    if (show_details) accumulator->Put('>');
   } else {
     // Backslash indicates that the string contains control
     // characters and that backslashes are therefore escaped.
-    accumulator->Add("<String[%u]\\: ", length());
+    if (show_details) accumulator->Add("<String[%u]\\: ", length());
     for (int i = 0; i < len; i++) {
       uint16_t c = stream.GetNext();
       if (c == '\n') {
@@ -1966,7 +2139,7 @@
       accumulator->Put('.');
       accumulator->Put('.');
     }
-    accumulator->Put('>');
+    if (show_details) accumulator->Put('>');
   }
   return;
 }
@@ -1984,9 +2157,9 @@
 void JSObject::JSObjectShortPrint(StringStream* accumulator) {
   switch (map()->instance_type()) {
     case JS_ARRAY_TYPE: {
-      double length = JSArray::cast(this)->length()->IsUndefined()
-          ? 0
-          : JSArray::cast(this)->length()->Number();
+      double length = JSArray::cast(this)->length()->IsUndefined(GetIsolate())
+                          ? 0
+                          : JSArray::cast(this)->length()->Number();
       accumulator->Add("<JS Array[%u]>", static_cast<uint32_t>(length));
       break;
     }
@@ -2222,6 +2395,7 @@
 
 void HeapObject::HeapObjectShortPrint(std::ostream& os) {  // NOLINT
   Heap* heap = GetHeap();
+  Isolate* isolate = heap->isolate();
   if (!heap->Contains(this)) {
     os << "!!!INVALID POINTER!!!";
     return;
@@ -2307,15 +2481,15 @@
       break;
     }
     case ODDBALL_TYPE: {
-      if (IsUndefined()) {
+      if (IsUndefined(isolate)) {
         os << "<undefined>";
-      } else if (IsTheHole()) {
+      } else if (IsTheHole(isolate)) {
         os << "<the hole>";
-      } else if (IsNull()) {
+      } else if (IsNull(isolate)) {
         os << "<null>";
-      } else if (IsTrue()) {
+      } else if (IsTrue(isolate)) {
         os << "<true>";
-      } else if (IsFalse()) {
+      } else if (IsFalse(isolate)) {
         os << "<false>";
       } else {
         os << "<Odd Oddball: ";
@@ -2551,25 +2725,6 @@
 }
 
 
-MaybeHandle<String> JSReceiver::BuiltinStringTag(Handle<JSReceiver> object) {
-  Maybe<bool> is_array = Object::IsArray(object);
-  MAYBE_RETURN(is_array, MaybeHandle<String>());
-  Isolate* const isolate = object->GetIsolate();
-  if (is_array.FromJust()) {
-    return isolate->factory()->Array_string();
-  }
-  // TODO(adamk): According to ES2015, we should return "Function" when
-  // object has a [[Call]] internal method (corresponds to IsCallable).
-  // But this is well cemented in layout tests and might cause webbreakage.
-  // if (object->IsCallable()) {
-  //   return isolate->factory()->Function_string();
-  // }
-  // TODO(adamk): class_name() is expensive, replace with instance type
-  // checks where possible.
-  return handle(object->class_name(), isolate);
-}
-
-
 // static
 Handle<String> JSReceiver::GetConstructorName(Handle<JSReceiver> receiver) {
   Isolate* isolate = receiver->GetIsolate();
@@ -2718,8 +2873,9 @@
     } else {
       auto cell = isolate->factory()->NewPropertyCell();
       cell->set_value(*value);
-      auto cell_type = value->IsUndefined() ? PropertyCellType::kUndefined
-                                            : PropertyCellType::kConstant;
+      auto cell_type = value->IsUndefined(isolate)
+                           ? PropertyCellType::kUndefined
+                           : PropertyCellType::kConstant;
       details = details.set_cell_type(cell_type);
       value = cell;
 
@@ -2802,7 +2958,6 @@
 void JSObject::UpdatePrototypeUserRegistration(Handle<Map> old_map,
                                                Handle<Map> new_map,
                                                Isolate* isolate) {
-  if (!FLAG_track_prototype_users) return;
   if (!old_map->is_prototype_map()) return;
   DCHECK(new_map->is_prototype_map());
   bool was_registered = JSObject::UnregisterPrototypeUser(old_map, isolate);
@@ -3199,7 +3354,7 @@
       // Ensure that no transition was inserted for prototype migrations.
       DCHECK_EQ(
           0, TransitionArray::NumberOfTransitions(old_map->raw_transitions()));
-      DCHECK(new_map->GetBackPointer()->IsUndefined());
+      DCHECK(new_map->GetBackPointer()->IsUndefined(new_map->GetIsolate()));
     }
   } else {
     MigrateFastToSlow(object, new_map, expected_additional_properties);
@@ -3311,17 +3466,18 @@
 // proper sharing of descriptor arrays.
 void Map::ReplaceDescriptors(DescriptorArray* new_descriptors,
                              LayoutDescriptor* new_layout_descriptor) {
+  Isolate* isolate = GetIsolate();
   // Don't overwrite the empty descriptor array or initial map's descriptors.
-  if (NumberOfOwnDescriptors() == 0 || GetBackPointer()->IsUndefined()) {
+  if (NumberOfOwnDescriptors() == 0 || GetBackPointer()->IsUndefined(isolate)) {
     return;
   }
 
   DescriptorArray* to_replace = instance_descriptors();
-  GetHeap()->incremental_marking()->IterateBlackObject(to_replace);
+  isolate->heap()->incremental_marking()->IterateBlackObject(to_replace);
   Map* current = this;
   while (current->instance_descriptors() == to_replace) {
     Object* next = current->GetBackPointer();
-    if (next->IsUndefined()) break;  // Stop overwriting at initial map.
+    if (next->IsUndefined(isolate)) break;  // Stop overwriting at initial map.
     current->SetEnumLength(kInvalidEnumCacheSentinel);
     current->UpdateDescriptors(new_descriptors, new_layout_descriptor);
     current = Map::cast(next);
@@ -3332,9 +3488,10 @@
 
 Map* Map::FindRootMap() {
   Map* result = this;
+  Isolate* isolate = GetIsolate();
   while (true) {
     Object* back = result->GetBackPointer();
-    if (back->IsUndefined()) {
+    if (back->IsUndefined(isolate)) {
       // Initial map always owns descriptors and doesn't have unused entries
       // in the descriptor array.
       DCHECK(result->owns_descriptors());
@@ -3392,9 +3549,10 @@
   DisallowHeapAllocation no_allocation;
   DCHECK_EQ(DATA, instance_descriptors()->GetDetails(descriptor).type());
   Map* result = this;
+  Isolate* isolate = GetIsolate();
   while (true) {
     Object* back = result->GetBackPointer();
-    if (back->IsUndefined()) break;
+    if (back->IsUndefined(isolate)) break;
     Map* parent = Map::cast(back);
     if (parent->NumberOfOwnDescriptors() <= descriptor) break;
     result = parent;
@@ -4200,56 +4358,14 @@
                              ALLOW_IN_DESCRIPTOR);
 }
 
-
 Maybe<bool> JSObject::SetPropertyWithInterceptor(LookupIterator* it,
                                                  ShouldThrow should_throw,
                                                  Handle<Object> value) {
-  Isolate* isolate = it->isolate();
-  // Make sure that the top context does not change when doing callbacks or
-  // interceptor calls.
-  AssertNoContextChange ncc(isolate);
-
   DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
-  Handle<InterceptorInfo> interceptor(it->GetInterceptor());
-  if (interceptor->setter()->IsUndefined()) return Just(false);
-
-  Handle<JSObject> holder = it->GetHolder<JSObject>();
-  bool result;
-  Handle<Object> receiver = it->GetReceiver();
-  if (!receiver->IsJSReceiver()) {
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, receiver,
-                                     Object::ConvertReceiver(isolate, receiver),
-                                     Nothing<bool>());
-  }
-  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
-                                 *holder, should_throw);
-
-  if (it->IsElement()) {
-    uint32_t index = it->index();
-    v8::IndexedPropertySetterCallback setter =
-        v8::ToCData<v8::IndexedPropertySetterCallback>(interceptor->setter());
-    // TODO(neis): In the future, we may want to actually return the
-    // interceptor's result, which then should be a boolean.
-    result = !args.Call(setter, index, value).is_null();
-  } else {
-    Handle<Name> name = it->name();
-    DCHECK(!name->IsPrivate());
-
-    if (name->IsSymbol() && !interceptor->can_intercept_symbols()) {
-      return Just(false);
-    }
-
-    v8::GenericNamedPropertySetterCallback setter =
-        v8::ToCData<v8::GenericNamedPropertySetterCallback>(
-            interceptor->setter());
-    result = !args.Call(setter, name, value).is_null();
-  }
-
-  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(it->isolate(), Nothing<bool>());
-  return Just(result);
+  return SetPropertyWithInterceptorInternal(it, it->GetInterceptor(),
+                                            should_throw, value);
 }
 
-
 MaybeHandle<Object> Object::SetProperty(Handle<Object> object,
                                         Handle<Name> name, Handle<Object> value,
                                         LanguageMode language_mode,
@@ -4291,15 +4407,18 @@
                                     value, it->GetReceiver(), language_mode);
 
       case LookupIterator::INTERCEPTOR: {
-        Handle<Map> store_target_map =
-            handle(it->GetStoreTarget()->map(), it->isolate());
+        Handle<Map> store_target_map;
+        if (it->GetReceiver()->IsJSObject()) {
+          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(),
+          Utils::ApiCheck(store_target_map.is_null() ||
+                              *store_target_map == it->GetStoreTarget()->map(),
                           it->IsElement() ? "v8::IndexedPropertySetterCallback"
                                           : "v8::NamedPropertySetterCallback",
                           "Interceptor silently changed store target.");
@@ -4312,7 +4431,8 @@
           }
           // Interceptor modified the store target but failed to set the
           // property.
-          Utils::ApiCheck(*store_target_map == it->GetStoreTarget()->map(),
+          Utils::ApiCheck(store_target_map.is_null() ||
+                              *store_target_map == it->GetStoreTarget()->map(),
                           it->IsElement() ? "v8::IndexedPropertySetterCallback"
                                           : "v8::NamedPropertySetterCallback",
                           "Interceptor silently changed store target.");
@@ -4537,7 +4657,7 @@
   Handle<Object> to_assign = value;
   // Convert the incoming value to a number for storing into typed arrays.
   if (it->IsElement() && receiver->HasFixedTypedArrayElements()) {
-    if (!value->IsNumber() && !value->IsUndefined()) {
+    if (!value->IsNumber() && !value->IsUndefined(it->isolate())) {
       ASSIGN_RETURN_ON_EXCEPTION_VALUE(
           it->isolate(), to_assign, Object::ToNumber(value), Nothing<bool>());
       // We have to recheck the length. However, it can only change if the
@@ -4676,13 +4796,14 @@
     new_descriptors->CopyEnumCacheFrom(*descriptors);
   }
 
+  Isolate* isolate = map->GetIsolate();
   // Replace descriptors by new_descriptors in all maps that share it.
-  map->GetHeap()->incremental_marking()->IterateBlackObject(*descriptors);
+  isolate->heap()->incremental_marking()->IterateBlackObject(*descriptors);
 
   Map* current = *map;
   while (current->instance_descriptors() == *descriptors) {
     Object* next = current->GetBackPointer();
-    if (next->IsUndefined()) break;  // Stop overwriting at initial map.
+    if (next->IsUndefined(isolate)) break;  // Stop overwriting at initial map.
     current->UpdateDescriptors(*new_descriptors, layout_descriptor);
     current = Map::cast(next);
   }
@@ -4942,7 +5063,7 @@
     }
   }
 
-  DCHECK(!map->IsUndefined());
+  DCHECK(!map->IsUndefined(isolate));
   // Check if we can go back in the elements kind transition chain.
   if (IsHoleyElementsKind(from_kind) &&
       to_kind == GetPackedElementsKind(from_kind) &&
@@ -5016,7 +5137,7 @@
                                        isolate->factory()->has_string()),
       Nothing<bool>());
   // 7. If trap is undefined, then
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 7a. Return target.[[HasProperty]](P).
     return JSReceiver::HasProperty(target, name);
   }
@@ -5082,7 +5203,7 @@
   Handle<Object> trap;
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(
       isolate, trap, Object::GetMethod(handler, trap_name), Nothing<bool>());
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     LookupIterator it =
         LookupIterator::PropertyOrElement(isolate, receiver, name, target);
     return Object::SetSuperProperty(&it, value, language_mode,
@@ -5118,7 +5239,7 @@
     }
     inconsistent = PropertyDescriptor::IsAccessorDescriptor(&target_desc) &&
                    !target_desc.configurable() &&
-                   target_desc.set()->IsUndefined();
+                   target_desc.set()->IsUndefined(isolate);
     if (inconsistent) {
       isolate->Throw(*isolate->factory()->NewTypeError(
           MessageTemplate::kProxySetFrozenAccessor, name));
@@ -5151,7 +5272,7 @@
   Handle<Object> trap;
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(
       isolate, trap, Object::GetMethod(handler, trap_name), Nothing<bool>());
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     return JSReceiver::DeletePropertyOrElement(target, name, language_mode);
   }
 
@@ -5500,7 +5621,7 @@
 MaybeHandle<Object> JSObject::SetOwnPropertyIgnoreAttributes(
     Handle<JSObject> object, Handle<Name> name, Handle<Object> value,
     PropertyAttributes attributes) {
-  DCHECK(!value->IsTheHole());
+  DCHECK(!value->IsTheHole(object->GetIsolate()));
   LookupIterator it(object, name, object, LookupIterator::OWN);
   return DefineOwnPropertyIgnoreAttributes(&it, value, attributes);
 }
@@ -5522,73 +5643,11 @@
   return DefineOwnPropertyIgnoreAttributes(&it, value, attributes);
 }
 
-
 Maybe<PropertyAttributes> JSObject::GetPropertyAttributesWithInterceptor(
     LookupIterator* it) {
-  Isolate* isolate = it->isolate();
-  // Make sure that the top context does not change when doing
-  // callbacks or interceptor calls.
-  AssertNoContextChange ncc(isolate);
-  HandleScope scope(isolate);
-
-  Handle<JSObject> holder = it->GetHolder<JSObject>();
-  Handle<InterceptorInfo> interceptor(it->GetInterceptor());
-  if (!it->IsElement() && it->name()->IsSymbol() &&
-      !interceptor->can_intercept_symbols()) {
-    return Just(ABSENT);
-  }
-  Handle<Object> receiver = it->GetReceiver();
-  if (!receiver->IsJSReceiver()) {
-    ASSIGN_RETURN_ON_EXCEPTION_VALUE(isolate, receiver,
-                                     Object::ConvertReceiver(isolate, receiver),
-                                     Nothing<PropertyAttributes>());
-  }
-  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
-                                 *holder, Object::DONT_THROW);
-  if (!interceptor->query()->IsUndefined()) {
-    Handle<Object> result;
-    if (it->IsElement()) {
-      uint32_t index = it->index();
-      v8::IndexedPropertyQueryCallback query =
-          v8::ToCData<v8::IndexedPropertyQueryCallback>(interceptor->query());
-      result = args.Call(query, index);
-    } else {
-      Handle<Name> name = it->name();
-      DCHECK(!name->IsPrivate());
-      v8::GenericNamedPropertyQueryCallback query =
-          v8::ToCData<v8::GenericNamedPropertyQueryCallback>(
-              interceptor->query());
-      result = args.Call(query, name);
-    }
-    if (!result.is_null()) {
-      int32_t value;
-      CHECK(result->ToInt32(&value));
-      return Just(static_cast<PropertyAttributes>(value));
-    }
-  } else if (!interceptor->getter()->IsUndefined()) {
-    // TODO(verwaest): Use GetPropertyWithInterceptor?
-    Handle<Object> result;
-    if (it->IsElement()) {
-      uint32_t index = it->index();
-      v8::IndexedPropertyGetterCallback getter =
-          v8::ToCData<v8::IndexedPropertyGetterCallback>(interceptor->getter());
-      result = args.Call(getter, index);
-    } else {
-      Handle<Name> name = it->name();
-      DCHECK(!name->IsPrivate());
-      v8::GenericNamedPropertyGetterCallback getter =
-          v8::ToCData<v8::GenericNamedPropertyGetterCallback>(
-              interceptor->getter());
-      result = args.Call(getter, name);
-    }
-    if (!result.is_null()) return Just(DONT_ENUM);
-  }
-
-  RETURN_VALUE_IF_SCHEDULED_EXCEPTION(isolate, Nothing<PropertyAttributes>());
-  return Just(ABSENT);
+  return GetPropertyAttributesWithInterceptorInternal(it, it->GetInterceptor());
 }
 
-
 Maybe<PropertyAttributes> JSReceiver::GetPropertyAttributes(
     LookupIterator* it) {
   for (; it->IsFound(); it->Next()) {
@@ -5703,7 +5762,7 @@
   // Compute the length of the instance descriptor.
   for (int i = 0; i < instance_descriptor_length; i++) {
     int index = Smi::cast(iteration_order->get(i))->value();
-    DCHECK(dictionary->IsKey(dictionary->KeyAt(index)));
+    DCHECK(dictionary->IsKey(isolate, dictionary->KeyAt(index)));
 
     Object* value = dictionary->ValueAt(index);
     PropertyType type = dictionary->DetailsAt(index).type();
@@ -5919,60 +5978,56 @@
   return Smi::FromInt(hash_value);
 }
 
+template <typename ProxyType>
+static Smi* GetOrCreateIdentityHashHelper(Isolate* isolate,
+                                          Handle<ProxyType> proxy) {
+  Object* maybe_hash = proxy->hash();
+  if (maybe_hash->IsSmi()) return Smi::cast(maybe_hash);
 
-template<typename ProxyType>
-static Handle<Smi> GetOrCreateIdentityHashHelper(Handle<ProxyType> proxy) {
-  Isolate* isolate = proxy->GetIsolate();
-
-  Handle<Object> maybe_hash(proxy->hash(), isolate);
-  if (maybe_hash->IsSmi()) return Handle<Smi>::cast(maybe_hash);
-
-  Handle<Smi> hash(GenerateIdentityHash(isolate), isolate);
-  proxy->set_hash(*hash);
+  Smi* hash = GenerateIdentityHash(isolate);
+  proxy->set_hash(hash);
   return hash;
 }
 
 // static
-Handle<Object> JSObject::GetIdentityHash(Isolate* isolate,
-                                         Handle<JSObject> object) {
+Object* JSObject::GetIdentityHash(Isolate* isolate, Handle<JSObject> object) {
   if (object->IsJSGlobalProxy()) {
-    return handle(JSGlobalProxy::cast(*object)->hash(), isolate);
+    return JSGlobalProxy::cast(*object)->hash();
   }
   Handle<Name> hash_code_symbol = isolate->factory()->hash_code_symbol();
-  return JSReceiver::GetDataProperty(object, hash_code_symbol);
+  return *JSReceiver::GetDataProperty(object, hash_code_symbol);
 }
 
 // static
-Handle<Smi> JSObject::GetOrCreateIdentityHash(Handle<JSObject> object) {
+Smi* JSObject::GetOrCreateIdentityHash(Isolate* isolate,
+                                       Handle<JSObject> object) {
   if (object->IsJSGlobalProxy()) {
-    return GetOrCreateIdentityHashHelper(Handle<JSGlobalProxy>::cast(object));
+    return GetOrCreateIdentityHashHelper(isolate,
+                                         Handle<JSGlobalProxy>::cast(object));
   }
-  Isolate* isolate = object->GetIsolate();
 
   Handle<Name> hash_code_symbol = isolate->factory()->hash_code_symbol();
   LookupIterator it(object, hash_code_symbol, object, LookupIterator::OWN);
   if (it.IsFound()) {
     DCHECK_EQ(LookupIterator::DATA, it.state());
-    Handle<Object> maybe_hash = it.GetDataValue();
-    if (maybe_hash->IsSmi()) return Handle<Smi>::cast(maybe_hash);
+    Object* maybe_hash = *it.GetDataValue();
+    if (maybe_hash->IsSmi()) return Smi::cast(maybe_hash);
   }
 
-  Handle<Smi> hash(GenerateIdentityHash(isolate), isolate);
-  CHECK(AddDataProperty(&it, hash, NONE, THROW_ON_ERROR,
+  Smi* hash = GenerateIdentityHash(isolate);
+  CHECK(AddDataProperty(&it, handle(hash, isolate), NONE, THROW_ON_ERROR,
                         CERTAINLY_NOT_STORE_FROM_KEYED)
             .IsJust());
   return hash;
 }
 
 // static
-Handle<Object> JSProxy::GetIdentityHash(Isolate* isolate,
-                                        Handle<JSProxy> proxy) {
-  return handle(proxy->hash(), isolate);
+Object* JSProxy::GetIdentityHash(Handle<JSProxy> proxy) {
+  return proxy->hash();
 }
 
-
-Handle<Smi> JSProxy::GetOrCreateIdentityHash(Handle<JSProxy> proxy) {
-  return GetOrCreateIdentityHashHelper(proxy);
+Smi* JSProxy::GetOrCreateIdentityHash(Isolate* isolate, Handle<JSProxy> proxy) {
+  return GetOrCreateIdentityHashHelper(isolate, proxy);
 }
 
 
@@ -5985,7 +6040,7 @@
 
   DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
   Handle<InterceptorInfo> interceptor(it->GetInterceptor());
-  if (interceptor->deleter()->IsUndefined()) return Nothing<bool>();
+  if (interceptor->deleter()->IsUndefined(isolate)) return Nothing<bool>();
 
   Handle<JSObject> holder = it->GetHolder<JSObject>();
   Handle<Object> receiver = it->GetReceiver();
@@ -6019,7 +6074,7 @@
 
   DCHECK(result->IsBoolean());
   // Rebox CustomArguments::kReturnValueOffset before returning.
-  return Just(result->IsTrue());
+  return Just(result->IsTrue(isolate));
 }
 
 
@@ -6230,7 +6285,8 @@
   // 5. ReturnIfAbrupt(keys).
   Handle<FixedArray> keys;
   ASSIGN_RETURN_ON_EXCEPTION(
-      isolate, keys, JSReceiver::GetKeys(props, OWN_ONLY, ALL_PROPERTIES),
+      isolate, keys, KeyAccumulator::GetKeys(props, KeyCollectionMode::kOwnOnly,
+                                             ALL_PROPERTIES),
       Object);
   // 6. Let descriptors be an empty List.
   int capacity = keys->length();
@@ -6921,7 +6977,7 @@
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name),
       Nothing<bool>());
   // 7. If trap is undefined, then:
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 7a. Return target.[[DefineOwnProperty]](P, Desc).
     return JSReceiver::DefineOwnProperty(isolate, target, key, desc,
                                          should_throw);
@@ -7139,7 +7195,7 @@
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name),
       Nothing<bool>());
   // 7. If trap is undefined, then
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 7a. Return target.[[GetOwnProperty]](P).
     return JSReceiver::GetOwnPropertyDescriptor(isolate, target, name, desc);
   }
@@ -7152,7 +7208,8 @@
       Nothing<bool>());
   // 9. If Type(trapResultObj) is neither Object nor Undefined, throw a
   //    TypeError exception.
-  if (!trap_result_obj->IsJSReceiver() && !trap_result_obj->IsUndefined()) {
+  if (!trap_result_obj->IsJSReceiver() &&
+      !trap_result_obj->IsUndefined(isolate)) {
     isolate->Throw(*isolate->factory()->NewTypeError(
         MessageTemplate::kProxyGetOwnPropertyDescriptorInvalid, name));
     return Nothing<bool>();
@@ -7163,7 +7220,7 @@
       JSReceiver::GetOwnPropertyDescriptor(isolate, target, name, &target_desc);
   MAYBE_RETURN(found, Nothing<bool>());
   // 11. If trapResultObj is undefined, then
-  if (trap_result_obj->IsUndefined()) {
+  if (trap_result_obj->IsUndefined(isolate)) {
     // 11a. If targetDesc is undefined, return undefined.
     if (!found.FromJust()) return Just(false);
     // 11b. If targetDesc.[[Configurable]] is false, throw a TypeError
@@ -7228,19 +7285,20 @@
 bool JSObject::ReferencesObjectFromElements(FixedArray* elements,
                                             ElementsKind kind,
                                             Object* object) {
+  Isolate* isolate = elements->GetIsolate();
   if (IsFastObjectElementsKind(kind) || kind == FAST_STRING_WRAPPER_ELEMENTS) {
     int length = IsJSArray()
         ? Smi::cast(JSArray::cast(this)->length())->value()
         : elements->length();
     for (int i = 0; i < length; ++i) {
       Object* element = elements->get(i);
-      if (!element->IsTheHole() && element == object) return true;
+      if (!element->IsTheHole(isolate) && element == object) return true;
     }
   } else {
     DCHECK(kind == DICTIONARY_ELEMENTS || kind == SLOW_STRING_WRAPPER_ELEMENTS);
     Object* key =
         SeededNumberDictionary::cast(elements)->SlowReverseLookup(object);
-    if (!key->IsUndefined()) return true;
+    if (!key->IsUndefined(isolate)) return true;
   }
   return false;
 }
@@ -7264,7 +7322,7 @@
 
   // Check if the object is among the named properties.
   Object* key = SlowReverseLookup(obj);
-  if (!key->IsUndefined()) {
+  if (!key->IsUndefined(heap->isolate())) {
     return true;
   }
 
@@ -7302,7 +7360,7 @@
       int length = parameter_map->length();
       for (int i = 2; i < length; ++i) {
         Object* value = parameter_map->get(i);
-        if (!value->IsTheHole() && value == obj) return true;
+        if (!value->IsTheHole(heap->isolate()) && value == obj) return true;
       }
       // Check the arguments.
       FixedArray* arguments = FixedArray::cast(parameter_map->get(1));
@@ -7489,7 +7547,7 @@
   Handle<Object> trap;
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(
       isolate, trap, Object::GetMethod(handler, trap_name), Nothing<bool>());
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     return JSReceiver::PreventExtensions(target, should_throw);
   }
 
@@ -7591,7 +7649,7 @@
   Handle<Object> trap;
   ASSIGN_RETURN_ON_EXCEPTION_VALUE(
       isolate, trap, Object::GetMethod(handler, trap_name), Nothing<bool>());
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     return JSReceiver::IsExtensible(target);
   }
 
@@ -7635,9 +7693,10 @@
 static void ApplyAttributesToDictionary(Dictionary* dictionary,
                                         const PropertyAttributes attributes) {
   int capacity = dictionary->Capacity();
+  Isolate* isolate = dictionary->GetIsolate();
   for (int i = 0; i < capacity; i++) {
     Object* k = dictionary->KeyAt(i);
-    if (dictionary->IsKey(k) &&
+    if (dictionary->IsKey(isolate, k) &&
         !(k->IsSymbol() && Symbol::cast(k)->is_private())) {
       PropertyDetails details = dictionary->DetailsAt(i);
       int attrs = attributes;
@@ -7908,9 +7967,8 @@
       // an array.
       PropertyFilter filter = static_cast<PropertyFilter>(
           ONLY_WRITABLE | ONLY_ENUMERABLE | ONLY_CONFIGURABLE);
-      KeyAccumulator accumulator(isolate, OWN_ONLY, filter);
-      accumulator.NextPrototype();
-      accumulator.CollectOwnPropertyNames(copy);
+      KeyAccumulator accumulator(isolate, KeyCollectionMode::kOwnOnly, filter);
+      accumulator.CollectOwnPropertyNames(copy, copy);
       Handle<FixedArray> names = accumulator.GetKeys();
       for (int i = 0; i < names->length(); i++) {
         DCHECK(names->get(i)->IsName());
@@ -7965,7 +8023,7 @@
         int capacity = element_dictionary->Capacity();
         for (int i = 0; i < capacity; i++) {
           Object* k = element_dictionary->KeyAt(i);
-          if (element_dictionary->IsKey(k)) {
+          if (element_dictionary->IsKey(isolate, k)) {
             Handle<Object> value(element_dictionary->ValueAt(i), isolate);
             if (value->IsJSObject()) {
               Handle<JSObject> result;
@@ -8044,7 +8102,7 @@
   ASSIGN_RETURN_ON_EXCEPTION(
       isolate, exotic_to_prim,
       GetMethod(receiver, isolate->factory()->to_primitive_symbol()), Object);
-  if (!exotic_to_prim->IsUndefined()) {
+  if (!exotic_to_prim->IsUndefined(isolate)) {
     Handle<Object> hint_string;
     switch (hint) {
       case ToPrimitiveHint::kDefault:
@@ -8215,15 +8273,6 @@
          !has_hidden_prototype() && !is_dictionary_map();
 }
 
-MaybeHandle<FixedArray> JSReceiver::GetKeys(Handle<JSReceiver> object,
-                                            KeyCollectionType type,
-                                            PropertyFilter filter,
-                                            GetKeysConversion keys_conversion,
-                                            bool filter_proxy_keys) {
-  return KeyAccumulator::GetKeys(object, type, filter, keys_conversion,
-                                 filter_proxy_keys);
-}
-
 MUST_USE_RESULT Maybe<bool> FastGetOwnValuesOrEntries(
     Isolate* isolate, Handle<JSReceiver> receiver, bool get_entries,
     Handle<FixedArray>* result) {
@@ -8314,10 +8363,13 @@
 
   PropertyFilter key_filter =
       static_cast<PropertyFilter>(filter & ~ONLY_ENUMERABLE);
-  KeyAccumulator accumulator(isolate, OWN_ONLY, key_filter);
-  MAYBE_RETURN(accumulator.CollectKeys(object, object),
-               MaybeHandle<FixedArray>());
-  Handle<FixedArray> keys = accumulator.GetKeys(CONVERT_TO_STRING);
+
+  Handle<FixedArray> keys;
+  ASSIGN_RETURN_ON_EXCEPTION_VALUE(
+      isolate, keys,
+      KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly, key_filter,
+                              GetKeysConversion::kConvertToString),
+      MaybeHandle<FixedArray>());
 
   values_or_entries = isolate->factory()->NewFixedArray(keys->length());
   int length = 0;
@@ -8430,10 +8482,10 @@
     return it->factory()->undefined_value();
   }
 
-  DCHECK(getter->IsCallable() || getter->IsUndefined() || getter->IsNull() ||
-         getter->IsFunctionTemplateInfo());
-  DCHECK(setter->IsCallable() || setter->IsUndefined() || setter->IsNull() ||
-         getter->IsFunctionTemplateInfo());
+  DCHECK(getter->IsCallable() || getter->IsUndefined(isolate) ||
+         getter->IsNull(isolate) || getter->IsFunctionTemplateInfo());
+  DCHECK(setter->IsCallable() || setter->IsUndefined(isolate) ||
+         setter->IsNull(isolate) || getter->IsFunctionTemplateInfo());
   it->TransitionToAccessorProperty(getter, setter, attributes);
 
   return isolate->factory()->undefined_value();
@@ -8551,7 +8603,8 @@
   Isolate* isolate = fast_map->GetIsolate();
   Handle<Object> maybe_cache(isolate->native_context()->normalized_map_cache(),
                              isolate);
-  bool use_cache = !fast_map->is_prototype_map() && !maybe_cache->IsUndefined();
+  bool use_cache =
+      !fast_map->is_prototype_map() && !maybe_cache->IsUndefined(isolate);
   Handle<NormalizedMapCache> cache;
   if (use_cache) cache = Handle<NormalizedMapCache>::cast(maybe_cache);
 
@@ -8762,7 +8815,7 @@
 
 void Map::ConnectTransition(Handle<Map> parent, Handle<Map> child,
                             Handle<Name> name, SimpleTransitionFlag flag) {
-  if (!parent->GetBackPointer()->IsUndefined()) {
+  if (!parent->GetBackPointer()->IsUndefined(parent->GetIsolate())) {
     parent->set_owns_descriptors(false);
   } else {
     // |parent| is initial map and it must keep the ownership, there must be no
@@ -9253,7 +9306,7 @@
           : &RuntimeCallStats::Map_TransitionToAccessorProperty);
 
   // At least one of the accessors needs to be a new value.
-  DCHECK(!getter->IsNull() || !setter->IsNull());
+  DCHECK(!getter->IsNull(isolate) || !setter->IsNull(isolate));
   DCHECK(name->IsUniqueName());
 
   // Dictionary maps can always have additional data properties.
@@ -9314,11 +9367,13 @@
     if (current_pair->Equals(*getter, *setter)) return map;
 
     bool overwriting_accessor = false;
-    if (!getter->IsNull() && !current_pair->get(ACCESSOR_GETTER)->IsNull() &&
+    if (!getter->IsNull(isolate) &&
+        !current_pair->get(ACCESSOR_GETTER)->IsNull(isolate) &&
         current_pair->get(ACCESSOR_GETTER) != *getter) {
       overwriting_accessor = true;
     }
-    if (!setter->IsNull() && !current_pair->get(ACCESSOR_SETTER)->IsNull() &&
+    if (!setter->IsNull(isolate) &&
+        !current_pair->get(ACCESSOR_SETTER)->IsNull(isolate) &&
         current_pair->get(ACCESSOR_SETTER) != *setter) {
       overwriting_accessor = true;
     }
@@ -9349,7 +9404,7 @@
 
   // Share descriptors only if map owns descriptors and it not an initial map.
   if (flag == INSERT_TRANSITION && map->owns_descriptors() &&
-      !map->GetBackPointer()->IsUndefined() &&
+      !map->GetBackPointer()->IsUndefined(map->GetIsolate()) &&
       TransitionArray::CanHaveMoreTransitions(map)) {
     return ShareDescriptor(map, descriptors, descriptor);
   }
@@ -9479,29 +9534,186 @@
                                 simple_flag);
 }
 
+// Helper class to manage a Map's code cache. The layout depends on the number
+// of entries; this is worthwhile because most code caches are very small,
+// but some are huge (thousands of entries).
+// For zero entries, the EmptyFixedArray is used.
+// For one entry, we use a 2-element FixedArray containing [name, code].
+// For 2..100 entries, we use a FixedArray with linear lookups, the layout is:
+//   [0] - number of slots that are currently in use
+//   [1] - first name
+//   [2] - first code
+//   [3] - second name
+//   [4] - second code
+//   etc.
+// For more than 128 entries, we use a CodeCacheHashTable.
+class CodeCache : public AllStatic {
+ public:
+  // Returns the new cache, to be stored on the map.
+  static Handle<FixedArray> Put(Isolate* isolate, Handle<FixedArray> cache,
+                                Handle<Name> name, Handle<Code> code) {
+    int length = cache->length();
+    if (length == 0) return PutFirstElement(isolate, name, code);
+    if (length == kEntrySize) {
+      return PutSecondElement(isolate, cache, name, code);
+    }
+    if (length <= kLinearMaxSize) {
+      Handle<FixedArray> result = PutLinearElement(isolate, cache, name, code);
+      if (!result.is_null()) return result;
+      // Fall through if linear storage is getting too large.
+    }
+    return PutHashTableElement(isolate, cache, name, code);
+  }
+
+  static Code* Lookup(FixedArray* cache, Name* name, Code::Flags flags) {
+    int length = cache->length();
+    if (length == 0) return nullptr;
+    if (length == kEntrySize) return OneElementLookup(cache, name, flags);
+    if (!cache->IsCodeCacheHashTable()) {
+      return LinearLookup(cache, name, flags);
+    } else {
+      return CodeCacheHashTable::cast(cache)->Lookup(name, flags);
+    }
+  }
+
+ private:
+  static const int kNameIndex = 0;
+  static const int kCodeIndex = 1;
+  static const int kEntrySize = 2;
+
+  static const int kLinearUsageIndex = 0;
+  static const int kLinearReservedSlots = 1;
+  static const int kLinearInitialCapacity = 2;
+  static const int kLinearMaxSize = 257;  // == LinearSizeFor(128);
+
+  static const int kHashTableInitialCapacity = 200;  // Number of entries.
+
+  static int LinearSizeFor(int entries) {
+    return kLinearReservedSlots + kEntrySize * entries;
+  }
+
+  static int LinearNewSize(int old_size) {
+    int old_entries = (old_size - kLinearReservedSlots) / kEntrySize;
+    return LinearSizeFor(old_entries * 2);
+  }
+
+  static Code* OneElementLookup(FixedArray* cache, Name* name,
+                                Code::Flags flags) {
+    DCHECK_EQ(cache->length(), kEntrySize);
+    if (cache->get(kNameIndex) != name) return nullptr;
+    Code* maybe_code = Code::cast(cache->get(kCodeIndex));
+    if (maybe_code->flags() != flags) return nullptr;
+    return maybe_code;
+  }
+
+  static Code* LinearLookup(FixedArray* cache, Name* name, Code::Flags flags) {
+    DCHECK_GE(cache->length(), kEntrySize);
+    DCHECK(!cache->IsCodeCacheHashTable());
+    int usage = GetLinearUsage(cache);
+    for (int i = kLinearReservedSlots; i < usage; i += kEntrySize) {
+      if (cache->get(i + kNameIndex) != name) continue;
+      Code* code = Code::cast(cache->get(i + kCodeIndex));
+      if (code->flags() == flags) return code;
+    }
+    return nullptr;
+  }
+
+  static Handle<FixedArray> PutFirstElement(Isolate* isolate, Handle<Name> name,
+                                            Handle<Code> code) {
+    Handle<FixedArray> cache = isolate->factory()->NewFixedArray(kEntrySize);
+    cache->set(kNameIndex, *name);
+    cache->set(kCodeIndex, *code);
+    return cache;
+  }
+
+  static Handle<FixedArray> PutSecondElement(Isolate* isolate,
+                                             Handle<FixedArray> cache,
+                                             Handle<Name> name,
+                                             Handle<Code> code) {
+    DCHECK_EQ(cache->length(), kEntrySize);
+    Handle<FixedArray> new_cache = isolate->factory()->NewFixedArray(
+        LinearSizeFor(kLinearInitialCapacity));
+    new_cache->set(kLinearReservedSlots + kNameIndex, cache->get(kNameIndex));
+    new_cache->set(kLinearReservedSlots + kCodeIndex, cache->get(kCodeIndex));
+    new_cache->set(LinearSizeFor(1) + kNameIndex, *name);
+    new_cache->set(LinearSizeFor(1) + kCodeIndex, *code);
+    new_cache->set(kLinearUsageIndex, Smi::FromInt(LinearSizeFor(2)));
+    return new_cache;
+  }
+
+  static Handle<FixedArray> PutLinearElement(Isolate* isolate,
+                                             Handle<FixedArray> cache,
+                                             Handle<Name> name,
+                                             Handle<Code> code) {
+    int length = cache->length();
+    int usage = GetLinearUsage(*cache);
+    DCHECK_LE(usage, length);
+    // Check if we need to grow.
+    if (usage == length) {
+      int new_length = LinearNewSize(length);
+      if (new_length > kLinearMaxSize) return Handle<FixedArray>::null();
+      Handle<FixedArray> new_cache =
+          isolate->factory()->NewFixedArray(new_length);
+      for (int i = kLinearReservedSlots; i < length; i++) {
+        new_cache->set(i, cache->get(i));
+      }
+      cache = new_cache;
+    }
+    // Store new entry.
+    DCHECK_GE(cache->length(), usage + kEntrySize);
+    cache->set(usage + kNameIndex, *name);
+    cache->set(usage + kCodeIndex, *code);
+    cache->set(kLinearUsageIndex, Smi::FromInt(usage + kEntrySize));
+    return cache;
+  }
+
+  static Handle<FixedArray> PutHashTableElement(Isolate* isolate,
+                                                Handle<FixedArray> cache,
+                                                Handle<Name> name,
+                                                Handle<Code> code) {
+    // Check if we need to transition from linear to hash table storage.
+    if (!cache->IsCodeCacheHashTable()) {
+      // Check that the initial hash table capacity is large enough.
+      DCHECK_EQ(kLinearMaxSize, LinearSizeFor(128));
+      STATIC_ASSERT(kHashTableInitialCapacity > 128);
+
+      int length = cache->length();
+      // Only migrate from linear storage when it's full.
+      DCHECK_EQ(length, GetLinearUsage(*cache));
+      DCHECK_EQ(length, kLinearMaxSize);
+      Handle<CodeCacheHashTable> table =
+          CodeCacheHashTable::New(isolate, kHashTableInitialCapacity);
+      HandleScope scope(isolate);
+      for (int i = kLinearReservedSlots; i < length; i += kEntrySize) {
+        Handle<Name> old_name(Name::cast(cache->get(i + kNameIndex)), isolate);
+        Handle<Code> old_code(Code::cast(cache->get(i + kCodeIndex)), isolate);
+        CodeCacheHashTable::Put(table, old_name, old_code);
+      }
+      cache = table;
+    }
+    // Store new entry.
+    DCHECK(cache->IsCodeCacheHashTable());
+    return CodeCacheHashTable::Put(Handle<CodeCacheHashTable>::cast(cache),
+                                   name, code);
+  }
+
+  static inline int GetLinearUsage(FixedArray* linear_cache) {
+    DCHECK_GT(linear_cache->length(), kEntrySize);
+    return Smi::cast(linear_cache->get(kLinearUsageIndex))->value();
+  }
+};
 
 void Map::UpdateCodeCache(Handle<Map> map,
                           Handle<Name> name,
                           Handle<Code> code) {
   Isolate* isolate = map->GetIsolate();
-  HandleScope scope(isolate);
-  // Allocate the code cache if not present.
-  if (!map->has_code_cache()) {
-    Handle<Object> result =
-        CodeCacheHashTable::New(isolate, CodeCacheHashTable::kInitialSize);
-    map->set_code_cache(*result);
-  }
-
-  // Update the code cache.
-  Handle<CodeCacheHashTable> cache(CodeCacheHashTable::cast(map->code_cache()),
-                                   isolate);
-  Handle<Object> new_cache = CodeCacheHashTable::Put(cache, name, code);
+  Handle<FixedArray> cache(map->code_cache(), isolate);
+  Handle<FixedArray> new_cache = CodeCache::Put(isolate, cache, name, code);
   map->set_code_cache(*new_cache);
 }
 
 Code* Map::LookupInCodeCache(Name* name, Code::Flags flags) {
-  if (!has_code_cache()) return nullptr;
-  return CodeCacheHashTable::cast(code_cache())->Lookup(name, flags);
+  return CodeCache::Lookup(code_cache(), name, flags);
 }
 
 
@@ -9937,7 +10149,7 @@
         .ToHandleChecked();
   }
   Isolate* isolate = accessor_pair->GetIsolate();
-  if (accessor->IsNull()) {
+  if (accessor->IsNull(isolate)) {
     return isolate->factory()->undefined_value();
   }
   return handle(accessor, isolate);
@@ -9965,12 +10177,21 @@
   return Handle<DeoptimizationOutputData>::cast(result);
 }
 
+const int LiteralsArray::kFeedbackVectorOffset =
+    LiteralsArray::OffsetOfElementAt(LiteralsArray::kVectorIndex);
+
+const int LiteralsArray::kOffsetToFirstLiteral =
+    LiteralsArray::OffsetOfElementAt(LiteralsArray::kFirstLiteralIndex);
 
 // static
 Handle<LiteralsArray> LiteralsArray::New(Isolate* isolate,
                                          Handle<TypeFeedbackVector> vector,
                                          int number_of_literals,
                                          PretenureFlag pretenure) {
+  if (vector->is_empty() && number_of_literals == 0) {
+    return Handle<LiteralsArray>::cast(
+        isolate->factory()->empty_literals_array());
+  }
   Handle<FixedArray> literals = isolate->factory()->NewFixedArray(
       number_of_literals + kFirstLiteralIndex, pretenure);
   Handle<LiteralsArray> casted_literals = Handle<LiteralsArray>::cast(literals);
@@ -10038,6 +10259,34 @@
 }
 #endif
 
+// static
+Handle<String> String::Trim(Handle<String> string, TrimMode mode) {
+  Isolate* const isolate = string->GetIsolate();
+  string = String::Flatten(string);
+  int const length = string->length();
+
+  // Perform left trimming if requested.
+  int left = 0;
+  UnicodeCache* unicode_cache = isolate->unicode_cache();
+  if (mode == kTrim || mode == kTrimLeft) {
+    while (left < length &&
+           unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(left))) {
+      left++;
+    }
+  }
+
+  // Perform right trimming if requested.
+  int right = length;
+  if (mode == kTrim || mode == kTrimRight) {
+    while (
+        right > left &&
+        unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(right - 1))) {
+      right--;
+    }
+  }
+
+  return isolate->factory()->NewSubString(string, left, right);
+}
 
 bool String::LooksValid() {
   if (!GetIsolate()->heap()->Contains(this)) return false;
@@ -10051,7 +10300,9 @@
   // ES6 section 9.2.11 SetFunctionName, step 4.
   Isolate* const isolate = name->GetIsolate();
   Handle<Object> description(Handle<Symbol>::cast(name)->name(), isolate);
-  if (description->IsUndefined()) return isolate->factory()->empty_string();
+  if (description->IsUndefined(isolate)) {
+    return isolate->factory()->empty_string();
+  }
   IncrementalStringBuilder builder(isolate);
   builder.AppendCharacter('[');
   builder.AppendString(Handle<String>::cast(description));
@@ -10059,6 +10310,19 @@
   return builder.Finish();
 }
 
+// static
+MaybeHandle<String> Name::ToFunctionName(Handle<Name> name,
+                                         Handle<String> prefix) {
+  Handle<String> name_string;
+  Isolate* const isolate = name->GetIsolate();
+  ASSIGN_RETURN_ON_EXCEPTION(isolate, name_string, ToFunctionName(name),
+                             String);
+  IncrementalStringBuilder builder(isolate);
+  builder.AppendString(prefix);
+  builder.AppendCharacter(' ');
+  builder.AppendString(name_string);
+  return builder.Finish();
+}
 
 namespace {
 
@@ -11134,8 +11398,8 @@
   value |= length << String::ArrayIndexLengthBits::kShift;
 
   DCHECK((value & String::kIsNotArrayIndexMask) == 0);
-  DCHECK((length > String::kMaxCachedArrayIndexLength) ||
-         (value & String::kContainsCachedArrayIndexMask) == 0);
+  DCHECK_EQ(length <= String::kMaxCachedArrayIndexLength,
+            (value & String::kContainsCachedArrayIndexMask) == 0);
   return value;
 }
 
@@ -11351,6 +11615,30 @@
   // No write barrier required, since the builtin is part of the root set.
 }
 
+// static
+Handle<LiteralsArray> SharedFunctionInfo::FindOrCreateLiterals(
+    Handle<SharedFunctionInfo> shared, Handle<Context> native_context) {
+  Isolate* isolate = shared->GetIsolate();
+  CodeAndLiterals result =
+      shared->SearchOptimizedCodeMap(*native_context, BailoutId::None());
+  if (result.literals != nullptr) {
+    DCHECK(shared->feedback_metadata()->is_empty() ||
+           !result.literals->feedback_vector()->is_empty());
+    return handle(result.literals, isolate);
+  }
+
+  Handle<TypeFeedbackVector> feedback_vector =
+      TypeFeedbackVector::New(isolate, handle(shared->feedback_metadata()));
+  Handle<LiteralsArray> literals = LiteralsArray::New(
+      isolate, feedback_vector, shared->num_literals(), TENURED);
+  Handle<Code> code;
+  if (result.code != nullptr) {
+    code = Handle<Code>(result.code, isolate);
+  }
+  AddToOptimizedCodeMap(shared, native_context, code, literals,
+                        BailoutId::None());
+  return literals;
+}
 
 void SharedFunctionInfo::AddSharedCodeToOptimizedCodeMap(
     Handle<SharedFunctionInfo> shared, Handle<Code> code) {
@@ -11397,9 +11685,13 @@
             isolate->factory()->NewWeakCell(code.ToHandleChecked());
         old_code_map->set(entry + kCachedCodeOffset, *code_cell);
       }
-      Handle<WeakCell> literals_cell =
-          isolate->factory()->NewWeakCell(literals);
-      old_code_map->set(entry + kLiteralsOffset, *literals_cell);
+      if (literals->literals_count() == 0) {
+        old_code_map->set(entry + kLiteralsOffset, *literals);
+      } else {
+        Handle<WeakCell> literals_cell =
+            isolate->factory()->NewWeakCell(literals);
+        old_code_map->set(entry + kLiteralsOffset, *literals_cell);
+      }
       return;
     }
 
@@ -11430,12 +11722,18 @@
   Handle<WeakCell> code_cell =
       code.is_null() ? isolate->factory()->empty_weak_cell()
                      : isolate->factory()->NewWeakCell(code.ToHandleChecked());
-  Handle<WeakCell> literals_cell = isolate->factory()->NewWeakCell(literals);
   WeakCell* context_cell = native_context->self_weak_cell();
 
   new_code_map->set(entry + kContextOffset, context_cell);
   new_code_map->set(entry + kCachedCodeOffset, *code_cell);
-  new_code_map->set(entry + kLiteralsOffset, *literals_cell);
+
+  if (literals->literals_count() == 0) {
+    new_code_map->set(entry + kLiteralsOffset, *literals);
+  } else {
+    Handle<WeakCell> literals_cell = isolate->factory()->NewWeakCell(literals);
+    new_code_map->set(entry + kLiteralsOffset, *literals_cell);
+  }
+
   new_code_map->set(entry + kOsrAstIdOffset, Smi::FromInt(osr_ast_id.ToInt()));
 
 #ifdef DEBUG
@@ -11446,8 +11744,16 @@
     DCHECK(cell->cleared() ||
            (cell->value()->IsCode() &&
             Code::cast(cell->value())->kind() == Code::OPTIMIZED_FUNCTION));
-    cell = WeakCell::cast(new_code_map->get(i + kLiteralsOffset));
-    DCHECK(cell->cleared() || cell->value()->IsFixedArray());
+    Object* lits = new_code_map->get(i + kLiteralsOffset);
+    if (lits->IsWeakCell()) {
+      cell = WeakCell::cast(lits);
+      DCHECK(cell->cleared() ||
+             (cell->value()->IsLiteralsArray() &&
+              LiteralsArray::cast(cell->value())->literals_count() > 0));
+    } else {
+      DCHECK(lits->IsLiteralsArray() &&
+             LiteralsArray::cast(lits)->literals_count() == 0);
+    }
     DCHECK(new_code_map->get(i + kOsrAstIdOffset)->IsSmi());
   }
 #endif
@@ -11547,6 +11853,17 @@
   }
 }
 
+// static
+void JSFunction::EnsureLiterals(Handle<JSFunction> function) {
+  Handle<SharedFunctionInfo> shared(function->shared());
+  Handle<Context> native_context(function->context()->native_context());
+  if (function->literals() ==
+      function->GetIsolate()->heap()->empty_literals_array()) {
+    Handle<LiteralsArray> literals =
+        SharedFunctionInfo::FindOrCreateLiterals(shared, native_context);
+    function->set_literals(*literals);
+  }
+}
 
 static void GetMinInobjectSlack(Map* map, void* data) {
   int slack = map->unused_property_fields();
@@ -11573,7 +11890,7 @@
 
 void Map::CompleteInobjectSlackTracking() {
   // Has to be an initial map.
-  DCHECK(GetBackPointer()->IsUndefined());
+  DCHECK(GetBackPointer()->IsUndefined(GetIsolate()));
 
   int slack = unused_property_fields();
   TransitionArray::TraverseTransitionTree(this, &GetMinInobjectSlack, &slack);
@@ -11604,6 +11921,26 @@
   return false;
 }
 
+// static
+void JSObject::MakePrototypesFast(Handle<Object> receiver,
+                                  WhereToStart where_to_start,
+                                  Isolate* isolate) {
+  if (!receiver->IsJSReceiver()) return;
+  for (PrototypeIterator iter(isolate, Handle<JSReceiver>::cast(receiver),
+                              where_to_start);
+       !iter.IsAtEnd(); iter.Advance()) {
+    Handle<Object> current = PrototypeIterator::GetCurrent(iter);
+    if (!current->IsJSObject()) return;
+    Handle<JSObject> current_obj = Handle<JSObject>::cast(current);
+    Map* current_map = current_obj->map();
+    if (current_map->is_prototype_map() &&
+        !current_map->should_be_fast_prototype_map()) {
+      Handle<Map> map(current_map);
+      Map::SetShouldBeFastPrototypeMap(map, true, isolate);
+      JSObject::OptimizeAsPrototype(current_obj, FAST_PROTOTYPE);
+    }
+  }
+}
 
 // static
 void JSObject::OptimizeAsPrototype(Handle<JSObject> object,
@@ -11615,10 +11952,12 @@
                                   "NormalizeAsPrototype");
   }
   Handle<Map> previous_map(object->map());
-  if (!object->HasFastProperties()) {
-    JSObject::MigrateSlowToFast(object, 0, "OptimizeAsPrototype");
-  }
-  if (!object->map()->is_prototype_map()) {
+  if (object->map()->is_prototype_map()) {
+    if (object->map()->should_be_fast_prototype_map() &&
+        !object->HasFastProperties()) {
+      JSObject::MigrateSlowToFast(object, 0, "OptimizeAsPrototype");
+    }
+  } else {
     if (object->map() == *previous_map) {
       Handle<Map> new_map = Map::Copy(handle(object->map()), "CopyAsPrototype");
       JSObject::MigrateToMap(object, new_map);
@@ -11646,13 +11985,13 @@
 // static
 void JSObject::ReoptimizeIfPrototype(Handle<JSObject> object) {
   if (!object->map()->is_prototype_map()) return;
+  if (!object->map()->should_be_fast_prototype_map()) return;
   OptimizeAsPrototype(object, FAST_PROTOTYPE);
 }
 
 
 // static
 void JSObject::LazyRegisterPrototypeUser(Handle<Map> user, Isolate* isolate) {
-  DCHECK(FLAG_track_prototype_users);
   // Contract: In line with InvalidatePrototypeChains()'s requirements,
   // leaf maps don't need to register as users, only prototypes do.
   DCHECK(user->is_prototype_map());
@@ -11758,7 +12097,6 @@
 
 // static
 void JSObject::InvalidatePrototypeChains(Map* map) {
-  if (!FLAG_eliminate_prototype_chain_checks) return;
   DisallowHeapAllocation no_gc;
   InvalidatePrototypeChainsInternal(map);
 }
@@ -11789,6 +12127,15 @@
   return proto_info;
 }
 
+// static
+void Map::SetShouldBeFastPrototypeMap(Handle<Map> map, bool value,
+                                      Isolate* isolate) {
+  if (value == false && !map->prototype_info()->IsPrototypeInfo()) {
+    // "False" is the implicit default value, so there's nothing to do.
+    return;
+  }
+  GetOrCreatePrototypeInfo(map, isolate)->set_should_be_fast_map(value);
+}
 
 // static
 Handle<Cell> Map::GetOrCreatePrototypeChainValidityCell(Handle<Map> map,
@@ -11839,8 +12186,9 @@
   }
   map->set_has_hidden_prototype(is_hidden);
 
-  WriteBarrierMode wb_mode =
-      prototype->IsNull() ? SKIP_WRITE_BARRIER : UPDATE_WRITE_BARRIER;
+  WriteBarrierMode wb_mode = prototype->IsNull(map->GetIsolate())
+                                 ? SKIP_WRITE_BARRIER
+                                 : UPDATE_WRITE_BARRIER;
   map->set_prototype(*prototype, wb_mode);
 }
 
@@ -12022,6 +12370,8 @@
     case JS_MESSAGE_OBJECT_TYPE:
     case JS_MODULE_TYPE:
     case JS_OBJECT_TYPE:
+    case JS_ERROR_TYPE:
+    case JS_ARGUMENTS_TYPE:
     case JS_PROMISE_TYPE:
     case JS_REGEXP_TYPE:
     case JS_SET_ITERATOR_TYPE:
@@ -12387,7 +12737,7 @@
     // 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()) {
+    if (eval_from_shared()->IsUndefined(GetIsolate())) {
       position = 0;
     } else {
       SharedFunctionInfo* shared = SharedFunctionInfo::cast(eval_from_shared());
@@ -12400,12 +12750,11 @@
 }
 
 void Script::InitLineEnds(Handle<Script> script) {
-  if (!script->line_ends()->IsUndefined()) return;
-
   Isolate* isolate = script->GetIsolate();
+  if (!script->line_ends()->IsUndefined(isolate)) return;
 
   if (!script->source()->IsString()) {
-    DCHECK(script->source()->IsUndefined());
+    DCHECK(script->source()->IsUndefined(isolate));
     Handle<FixedArray> empty = isolate->factory()->NewFixedArray(0);
     script->set_line_ends(*empty);
     DCHECK(script->line_ends()->IsFixedArray());
@@ -12424,42 +12773,93 @@
   DCHECK(script->line_ends()->IsFixedArray());
 }
 
-
-int Script::GetColumnNumber(Handle<Script> script, int code_pos) {
-  int line_number = GetLineNumber(script, code_pos);
-  if (line_number == -1) return -1;
+#define SMI_VALUE(x) (Smi::cast(x)->value())
+bool Script::GetPositionInfo(int position, PositionInfo* info,
+                             OffsetFlag offset_flag) {
+  Handle<Script> script(this);
+  InitLineEnds(script);
 
   DisallowHeapAllocation no_allocation;
-  FixedArray* line_ends_array = FixedArray::cast(script->line_ends());
-  line_number = line_number - script->line_offset();
-  if (line_number == 0) return code_pos + script->column_offset();
-  int prev_line_end_pos =
-      Smi::cast(line_ends_array->get(line_number - 1))->value();
-  return code_pos - (prev_line_end_pos + 1);
-}
 
+  DCHECK(script->line_ends()->IsFixedArray());
+  FixedArray* ends = FixedArray::cast(script->line_ends());
 
-int Script::GetLineNumberWithArray(int code_pos) {
-  DisallowHeapAllocation no_allocation;
-  DCHECK(line_ends()->IsFixedArray());
-  FixedArray* line_ends_array = FixedArray::cast(line_ends());
-  int line_ends_len = line_ends_array->length();
-  if (line_ends_len == 0) return -1;
+  const int ends_len = ends->length();
+  if (ends_len == 0) return false;
 
-  if ((Smi::cast(line_ends_array->get(0)))->value() >= code_pos) {
-    return line_offset();
+  // Return early on invalid positions. Negative positions behave as if 0 was
+  // passed, and positions beyond the end of the script return as failure.
+  if (position < 0) {
+    position = 0;
+  } else if (position > SMI_VALUE(ends->get(ends_len - 1))) {
+    return false;
   }
 
-  int left = 0;
-  int right = line_ends_len;
-  while (int half = (right - left) / 2) {
-    if ((Smi::cast(line_ends_array->get(left + half)))->value() > code_pos) {
-      right -= half;
-    } else {
-      left += half;
+  // Determine line number by doing a binary search on the line ends array.
+  if (SMI_VALUE(ends->get(0)) >= position) {
+    info->line = 0;
+    info->line_start = 0;
+    info->column = position;
+  } else {
+    int left = 0;
+    int right = ends_len - 1;
+
+    while (right > 0) {
+      DCHECK_LE(left, right);
+      const int mid = (left + right) / 2;
+      if (position > SMI_VALUE(ends->get(mid))) {
+        left = mid + 1;
+      } else if (position <= SMI_VALUE(ends->get(mid - 1))) {
+        right = mid - 1;
+      } else {
+        info->line = mid;
+        break;
+      }
+    }
+    DCHECK(SMI_VALUE(ends->get(info->line)) >= position &&
+           SMI_VALUE(ends->get(info->line - 1)) < position);
+    info->line_start = SMI_VALUE(ends->get(info->line - 1)) + 1;
+    info->column = position - info->line_start;
+  }
+
+  // Line end is position of the linebreak character.
+  info->line_end = SMI_VALUE(ends->get(info->line));
+  if (info->line_end > 0) {
+    DCHECK(script->source()->IsString());
+    Handle<String> src(String::cast(script->source()));
+    if (src->Get(info->line_end - 1) == '\r') {
+      info->line_end--;
     }
   }
-  return right + line_offset();
+
+  // Add offsets if requested.
+  if (offset_flag == WITH_OFFSET) {
+    if (info->line == 0) {
+      info->column += script->column_offset();
+    }
+    info->line += script->line_offset();
+  }
+
+  return true;
+}
+#undef SMI_VALUE
+
+int Script::GetColumnNumber(Handle<Script> script, int code_pos) {
+  PositionInfo info;
+  if (!script->GetPositionInfo(code_pos, &info, WITH_OFFSET)) {
+    return -1;
+  }
+
+  return info.column;
+}
+
+int Script::GetLineNumberWithArray(int code_pos) {
+  PositionInfo info;
+  if (!GetPositionInfo(code_pos, &info, WITH_OFFSET)) {
+    return -1;
+  }
+
+  return info.line;
 }
 
 
@@ -12471,7 +12871,9 @@
 
 int Script::GetLineNumber(int code_pos) {
   DisallowHeapAllocation no_allocation;
-  if (!line_ends()->IsUndefined()) return GetLineNumberWithArray(code_pos);
+  if (!line_ends()->IsUndefined(GetIsolate())) {
+    return GetLineNumberWithArray(code_pos);
+  }
 
   // Slow mode: we do not have line_ends. We have to iterate through source.
   if (!source()->IsString()) return -1;
@@ -12510,7 +12912,7 @@
 
 Handle<JSObject> Script::GetWrapper(Handle<Script> script) {
   Isolate* isolate = script->GetIsolate();
-  if (!script->wrapper()->IsUndefined()) {
+  if (!script->wrapper()->IsUndefined(isolate)) {
     DCHECK(script->wrapper()->IsWeakCell());
     Handle<WeakCell> cell(WeakCell::cast(script->wrapper()));
     if (!cell->cleared()) {
@@ -12675,8 +13077,9 @@
 }
 
 bool SharedFunctionInfo::HasSourceCode() const {
-  return !script()->IsUndefined() &&
-         !reinterpret_cast<Script*>(script())->source()->IsUndefined();
+  Isolate* isolate = GetIsolate();
+  return !script()->IsUndefined(isolate) &&
+         !reinterpret_cast<Script*>(script())->source()->IsUndefined(isolate);
 }
 
 
@@ -12732,9 +13135,8 @@
     int* instance_size, int* in_object_properties) {
   Isolate* isolate = GetIsolate();
   int expected_nof_properties = 0;
-  for (PrototypeIterator iter(isolate, this,
-                              PrototypeIterator::START_AT_RECEIVER);
-       !iter.IsAtEnd(); iter.Advance()) {
+  for (PrototypeIterator iter(isolate, this, kStartAtReceiver); !iter.IsAtEnd();
+       iter.Advance()) {
     JSReceiver* current = iter.GetCurrent<JSReceiver>();
     if (!current->IsJSFunction()) break;
     JSFunction* func = JSFunction::cast(current);
@@ -12883,13 +13285,7 @@
   shared_info->set_language_mode(lit->language_mode());
   shared_info->set_uses_arguments(lit->scope()->arguments() != NULL);
   shared_info->set_has_duplicate_parameters(lit->has_duplicate_parameters());
-  shared_info->set_ast_node_count(lit->ast_node_count());
   shared_info->set_is_function(lit->is_function());
-  if (lit->dont_optimize_reason() != kNoReason) {
-    shared_info->DisableOptimization(lit->dont_optimize_reason());
-  }
-  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())) {
@@ -12928,9 +13324,6 @@
 
 void SharedFunctionInfo::ResetForNewContext(int new_ic_age) {
   code()->ClearInlineCaches();
-  // If we clear ICs, we need to clear the type feedback vector too, since
-  // CallICs are synced with a feedback vector slot.
-  ClearTypeFeedbackInfo();
   set_ic_age(new_ic_age);
   if (code()->kind() == Code::FUNCTION) {
     code()->set_profiler_ticks(0);
@@ -12940,7 +13333,7 @@
     }
     set_opt_count(0);
     set_deopt_count(0);
-  } else if (code()->is_interpreter_entry_trampoline()) {
+  } else if (code()->is_interpreter_trampoline_builtin()) {
     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.
@@ -12976,6 +13369,19 @@
   return -1;
 }
 
+void SharedFunctionInfo::ClearCodeFromOptimizedCodeMap() {
+  if (!OptimizedCodeMapIsCleared()) {
+    FixedArray* optimized_code_map = this->optimized_code_map();
+    int length = optimized_code_map->length();
+    WeakCell* empty_weak_cell = GetHeap()->empty_weak_cell();
+    for (int i = kEntriesStart; i < length; i += kEntryLength) {
+      optimized_code_map->set(i + kCachedCodeOffset, empty_weak_cell,
+                              SKIP_WRITE_BARRIER);
+    }
+    optimized_code_map->set(kSharedCodeIndex, empty_weak_cell,
+                            SKIP_WRITE_BARRIER);
+  }
+}
 
 CodeAndLiterals SharedFunctionInfo::SearchOptimizedCodeMap(
     Context* native_context, BailoutId osr_ast_id) {
@@ -12993,13 +13399,18 @@
     } else {
       DCHECK_LE(entry + kEntryLength, code_map->length());
       WeakCell* cell = WeakCell::cast(code_map->get(entry + kCachedCodeOffset));
-      WeakCell* literals_cell =
-          WeakCell::cast(code_map->get(entry + kLiteralsOffset));
-
+      Object* lits = code_map->get(entry + kLiteralsOffset);
+      LiteralsArray* literals = nullptr;
+      if (lits->IsWeakCell()) {
+        WeakCell* literal_cell = WeakCell::cast(lits);
+        if (!literal_cell->cleared()) {
+          literals = LiteralsArray::cast(literal_cell->value());
+        }
+      } else {
+        literals = LiteralsArray::cast(lits);
+      }
       result = {cell->cleared() ? nullptr : Code::cast(cell->value()),
-                literals_cell->cleared()
-                    ? nullptr
-                    : LiteralsArray::cast(literals_cell->value())};
+                literals};
     }
   }
   return result;
@@ -13024,63 +13435,66 @@
 
 void ObjectVisitor::VisitCodeTarget(RelocInfo* rinfo) {
   DCHECK(RelocInfo::IsCodeTarget(rinfo->rmode()));
-  Object* target = Code::GetCodeFromTargetAddress(rinfo->target_address());
-  Object* old_target = target;
-  VisitPointer(&target);
-  CHECK_EQ(target, old_target);  // VisitPointer doesn't change Code* *target.
+  Object* old_pointer = Code::GetCodeFromTargetAddress(rinfo->target_address());
+  Object* new_pointer = old_pointer;
+  VisitPointer(&new_pointer);
+  DCHECK_EQ(old_pointer, new_pointer);
 }
 
 
 void ObjectVisitor::VisitCodeAgeSequence(RelocInfo* rinfo) {
   DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode()));
-  Object* stub = rinfo->code_age_stub();
-  if (stub) {
-    VisitPointer(&stub);
+  Object* old_pointer = rinfo->code_age_stub();
+  Object* new_pointer = old_pointer;
+  if (old_pointer != nullptr) {
+    VisitPointer(&new_pointer);
+    DCHECK_EQ(old_pointer, new_pointer);
   }
 }
 
 
 void ObjectVisitor::VisitCodeEntry(Address entry_address) {
-  Object* code = Code::GetObjectFromEntryAddress(entry_address);
-  Object* old_code = code;
-  VisitPointer(&code);
-  if (code != old_code) {
-    Memory::Address_at(entry_address) = reinterpret_cast<Code*>(code)->entry();
-  }
+  Object* old_pointer = Code::GetObjectFromEntryAddress(entry_address);
+  Object* new_pointer = old_pointer;
+  VisitPointer(&new_pointer);
+  DCHECK_EQ(old_pointer, new_pointer);
 }
 
 
 void ObjectVisitor::VisitCell(RelocInfo* rinfo) {
   DCHECK(rinfo->rmode() == RelocInfo::CELL);
-  Object* cell = rinfo->target_cell();
-  Object* old_cell = cell;
-  VisitPointer(&cell);
-  if (cell != old_cell) {
-    rinfo->set_target_cell(reinterpret_cast<Cell*>(cell));
-  }
+  Object* old_pointer = rinfo->target_cell();
+  Object* new_pointer = old_pointer;
+  VisitPointer(&new_pointer);
+  DCHECK_EQ(old_pointer, new_pointer);
 }
 
 
 void ObjectVisitor::VisitDebugTarget(RelocInfo* rinfo) {
   DCHECK(RelocInfo::IsDebugBreakSlot(rinfo->rmode()) &&
          rinfo->IsPatchedDebugBreakSlotSequence());
-  Object* target = Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
-  Object* old_target = target;
-  VisitPointer(&target);
-  CHECK_EQ(target, old_target);  // VisitPointer doesn't change Code* *target.
+  Object* old_pointer =
+      Code::GetCodeFromTargetAddress(rinfo->debug_call_address());
+  Object* new_pointer = old_pointer;
+  VisitPointer(&new_pointer);
+  DCHECK_EQ(old_pointer, new_pointer);
 }
 
 
 void ObjectVisitor::VisitEmbeddedPointer(RelocInfo* rinfo) {
   DCHECK(rinfo->rmode() == RelocInfo::EMBEDDED_OBJECT);
-  Object* p = rinfo->target_object();
-  VisitPointer(&p);
+  Object* old_pointer = rinfo->target_object();
+  Object* new_pointer = old_pointer;
+  VisitPointer(&new_pointer);
+  DCHECK_EQ(old_pointer, new_pointer);
 }
 
 
 void ObjectVisitor::VisitExternalReference(RelocInfo* rinfo) {
-  Address p = rinfo->target_external_reference();
-  VisitExternalReference(&p);
+  Address old_reference = rinfo->target_external_reference();
+  Address new_reference = old_reference;
+  VisitExternalReference(&new_reference);
+  DCHECK_EQ(old_reference, new_reference);
 }
 
 
@@ -13119,6 +13533,14 @@
   CopyBytes(instruction_start(), desc.buffer,
             static_cast<size_t>(desc.instr_size));
 
+  // copy unwinding info, if any
+  if (desc.unwinding_info) {
+    DCHECK_GT(desc.unwinding_info_size, 0);
+    set_unwinding_info_size(desc.unwinding_info_size);
+    CopyBytes(unwinding_info_start(), desc.unwinding_info,
+              static_cast<size_t>(desc.unwinding_info_size));
+  }
+
   // copy reloc info
   CopyBytes(relocation_start(),
             desc.buffer + desc.buffer_size - desc.reloc_size,
@@ -13171,31 +13593,14 @@
 // The position returned is relative to the beginning of the script where the
 // source for this function is found.
 int Code::SourcePosition(int code_offset) {
-  Address pc = instruction_start() + code_offset;
-  int distance = kMaxInt;
+  // Subtract one because the current PC is one instruction after the call site.
+  Address pc = instruction_start() + code_offset - 1;
   int position = RelocInfo::kNoPosition;  // Initially no position found.
-  // Run through all the relocation info to find the best matching source
-  // position. All the code needs to be considered as the sequence of the
-  // instructions in the code does not necessarily follow the same order as the
-  // source.
-  RelocIterator it(this, RelocInfo::kPositionMask);
-  while (!it.done()) {
-    // Only look at positions after the current pc.
-    if (it.rinfo()->pc() < pc) {
-      // Get position and distance.
-
-      int dist = static_cast<int>(pc - it.rinfo()->pc());
-      int pos = static_cast<int>(it.rinfo()->data());
-      // If this position is closer than the current candidate or if it has the
-      // same distance as the current candidate and the position is higher then
-      // this position is the new candidate.
-      if ((dist < distance) ||
-          (dist == distance && pos > position)) {
-        position = pos;
-        distance = dist;
-      }
-    }
-    it.next();
+  // Find the closest position attached to a pc lower or equal to the current.
+  // Note that the pc of reloc infos grow monotonically.
+  for (RelocIterator it(this, RelocInfo::kPositionMask);
+       !it.done() && it.rinfo()->pc() <= pc; it.next()) {
+    position = static_cast<int>(it.rinfo()->data());
   }
   DCHECK(kind() == FUNCTION || (is_optimized_code() && is_turbofanned()) ||
          is_wasm_code() || position == RelocInfo::kNoPosition);
@@ -13206,20 +13611,18 @@
 // Same as Code::SourcePosition above except it only looks for statement
 // positions.
 int Code::SourceStatementPosition(int code_offset) {
-  // First find the position as close as possible using all position
-  // information.
+  // First find the closest position.
   int position = SourcePosition(code_offset);
   // Now find the closest statement position before the position.
   int statement_position = 0;
-  RelocIterator it(this, RelocInfo::kPositionMask);
-  while (!it.done()) {
+  for (RelocIterator it(this, RelocInfo::kPositionMask); !it.done();
+       it.next()) {
     if (RelocInfo::IsStatementPosition(it.rinfo()->rmode())) {
       int p = static_cast<int>(it.rinfo()->data());
       if (statement_position < p && p <= position) {
         statement_position = p;
       }
     }
-    it.next();
   }
   return statement_position;
 }
@@ -13307,16 +13710,14 @@
                            : GetCode()->SourceStatementPosition(offset);
 }
 
-void SharedFunctionInfo::ClearTypeFeedbackInfo() {
-  feedback_vector()->ClearSlots(this);
+void JSFunction::ClearTypeFeedbackInfo() {
+  feedback_vector()->ClearSlots(shared());
 }
 
-
-void SharedFunctionInfo::ClearTypeFeedbackInfoAtGCTime() {
-  feedback_vector()->ClearSlotsAtGCTime(this);
+void JSFunction::ClearTypeFeedbackInfoAtGCTime() {
+  feedback_vector()->ClearSlotsAtGCTime(shared());
 }
 
-
 BailoutId Code::TranslatePcOffsetToAstId(uint32_t pc_offset) {
   DisallowHeapAllocation no_gc;
   DCHECK(kind() == FUNCTION);
@@ -13552,6 +13953,14 @@
   return NULL;
 }
 
+// Identify kind of code.
+const char* AbstractCode::Kind2String(Kind kind) {
+  if (kind < AbstractCode::INTERPRETED_FUNCTION)
+    return Code::Kind2String((Code::Kind)kind);
+  if (kind == AbstractCode::INTERPRETED_FUNCTION) return "INTERPRETED_FUNCTION";
+  UNREACHABLE();
+  return NULL;
+}
 
 Handle<WeakCell> Code::WeakCellFor(Handle<Code> code) {
   DCHECK(code->kind() == OPTIMIZED_FUNCTION);
@@ -13575,7 +13984,6 @@
   return NULL;
 }
 
-
 #ifdef ENABLE_DISASSEMBLER
 
 void DeoptimizationInputData::DeoptimizationInputDataPrint(
@@ -13709,9 +14117,20 @@
           break;
         }
 
+        case Translation::FLOAT_REGISTER: {
+          int reg_code = iterator.Next();
+          os << "{input="
+             << RegisterConfiguration::Crankshaft()->GetFloatRegisterName(
+                    reg_code)
+             << "}";
+          break;
+        }
+
         case Translation::DOUBLE_REGISTER: {
           int reg_code = iterator.Next();
-          os << "{input=" << DoubleRegister::from_code(reg_code).ToString()
+          os << "{input="
+             << RegisterConfiguration::Crankshaft()->GetDoubleRegisterName(
+                    reg_code)
              << "}";
           break;
         }
@@ -13740,6 +14159,7 @@
           break;
         }
 
+        case Translation::FLOAT_STACK_SLOT:
         case Translation::DOUBLE_STACK_SLOT: {
           int input_slot_index = iterator.Next();
           os << "{input=" << input_slot_index << "}";
@@ -13830,7 +14250,6 @@
     case POLYMORPHIC: return "POLYMORPHIC";
     case MEGAMORPHIC: return "MEGAMORPHIC";
     case GENERIC: return "GENERIC";
-    case DEBUG_STUB: return "DEBUG_STUB";
   }
   UNREACHABLE();
   return NULL;
@@ -13856,7 +14275,10 @@
     os << "major_key = " << (n == NULL ? "null" : n) << "\n";
   }
   if (is_inline_cache_stub()) {
-    os << "ic_state = " << ICState2String(ic_state()) << "\n";
+    if (!IC::ICUseVector(kind())) {
+      InlineCacheState ic_state = IC::StateFromCode(this);
+      os << "ic_state = " << ICState2String(ic_state) << "\n";
+    }
     PrintExtraICState(os, kind(), extra_ic_state());
     if (is_compare_ic_stub()) {
       DCHECK(CodeStub::GetMajorKey(this) == CodeStub::CompareIC);
@@ -13976,7 +14398,7 @@
       os << "\n";
     }
 #ifdef OBJECT_PRINT
-    if (!type_feedback_info()->IsUndefined()) {
+    if (!type_feedback_info()->IsUndefined(GetIsolate())) {
       TypeFeedbackInfo::cast(type_feedback_info())->TypeFeedbackInfoPrint(os);
       os << "\n";
     }
@@ -14013,20 +14435,18 @@
 }
 
 int BytecodeArray::SourceStatementPosition(int offset) {
-  // First find the position as close as possible using all position
-  // information.
+  // First find the closest position.
   int position = SourcePosition(offset);
   // Now find the closest statement position before the position.
   int statement_position = 0;
-  interpreter::SourcePositionTableIterator iterator(source_position_table());
-  while (!iterator.done()) {
-    if (iterator.is_statement()) {
-      int p = iterator.source_position();
+  for (interpreter::SourcePositionTableIterator it(source_position_table());
+       !it.done(); it.Advance()) {
+    if (it.is_statement()) {
+      int p = it.source_position();
       if (statement_position < p && p <= position) {
         statement_position = p;
       }
     }
-    iterator.Advance();
   }
   return statement_position;
 }
@@ -14429,7 +14849,7 @@
   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());
+  DCHECK(value->IsJSReceiver() || value->IsNull(isolate));
   // 2. Let handler be the value of the [[ProxyHandler]] internal slot of O.
   Handle<Object> handler(proxy->handler(), isolate);
   // 3. If handler is null, throw a TypeError exception.
@@ -14448,7 +14868,7 @@
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name),
       Nothing<bool>());
   // 7. If trap is undefined, then return target.[[SetPrototypeOf]]().
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     return JSReceiver::SetPrototype(target, value, from_javascript,
                                     should_throw);
   }
@@ -14516,7 +14936,7 @@
   Heap* heap = isolate->heap();
   // Silently ignore the change if value is not a JSObject or null.
   // SpiderMonkey behaves this way.
-  if (!value->IsJSReceiver() && !value->IsNull()) return Just(true);
+  if (!value->IsJSReceiver() && !value->IsNull(isolate)) return Just(true);
 
   bool dictionary_elements_in_chain =
       object->map()->DictionaryElementsInPrototypeChainOnly();
@@ -14526,8 +14946,7 @@
   if (from_javascript) {
     // Find the first object in the chain whose prototype object is not
     // hidden.
-    PrototypeIterator iter(isolate, real_receiver,
-                           PrototypeIterator::START_AT_PROTOTYPE,
+    PrototypeIterator iter(isolate, real_receiver, kStartAtPrototype,
                            PrototypeIterator::END_AT_NON_HIDDEN);
     while (!iter.IsAtEnd()) {
       // Casting to JSObject is fine because hidden prototypes are never
@@ -14560,7 +14979,7 @@
   // new prototype chain.
   if (value->IsJSReceiver()) {
     for (PrototypeIterator iter(isolate, JSReceiver::cast(*value),
-                                PrototypeIterator::START_AT_RECEIVER);
+                                kStartAtReceiver);
          !iter.IsAtEnd(); iter.Advance()) {
       if (iter.GetCurrent<JSReceiver>() == *object) {
         // Cycle detected.
@@ -15048,10 +15467,11 @@
 #ifdef OBJECT_PRINT
 template <typename Derived, typename Shape, typename Key>
 void Dictionary<Derived, Shape, Key>::Print(std::ostream& os) {  // NOLINT
+  Isolate* isolate = this->GetIsolate();
   int capacity = this->Capacity();
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k)) {
+    if (this->IsKey(isolate, k)) {
       os << "\n   ";
       if (k->IsString()) {
         String::cast(k)->StringPrint(os);
@@ -15062,18 +15482,24 @@
     }
   }
 }
+template <typename Derived, typename Shape, typename Key>
+void Dictionary<Derived, Shape, Key>::Print() {
+  OFStream os(stdout);
+  Print(os);
+}
 #endif
 
 
 template<typename Derived, typename Shape, typename Key>
 void Dictionary<Derived, Shape, Key>::CopyValuesTo(FixedArray* elements) {
+  Isolate* isolate = this->GetIsolate();
   int pos = 0;
   int capacity = this->Capacity();
   DisallowHeapAllocation no_gc;
   WriteBarrierMode mode = elements->GetWriteBarrierMode(no_gc);
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k)) {
+    if (this->IsKey(isolate, k)) {
       elements->set(pos++, this->ValueAt(i), mode);
     }
   }
@@ -15083,55 +15509,10 @@
 
 MaybeHandle<Object> JSObject::GetPropertyWithInterceptor(LookupIterator* it,
                                                          bool* done) {
-  *done = false;
-  Isolate* isolate = it->isolate();
-  // Make sure that the top context does not change when doing callbacks or
-  // interceptor calls.
-  AssertNoContextChange ncc(isolate);
-
   DCHECK_EQ(LookupIterator::INTERCEPTOR, it->state());
-  Handle<InterceptorInfo> interceptor = it->GetInterceptor();
-  if (interceptor->getter()->IsUndefined()) {
-    return isolate->factory()->undefined_value();
-  }
-
-  Handle<JSObject> holder = it->GetHolder<JSObject>();
-  Handle<Object> result;
-  Handle<Object> receiver = it->GetReceiver();
-  if (!receiver->IsJSReceiver()) {
-    ASSIGN_RETURN_ON_EXCEPTION(
-        isolate, receiver, Object::ConvertReceiver(isolate, receiver), Object);
-  }
-  PropertyCallbackArguments args(isolate, interceptor->data(), *receiver,
-                                 *holder, Object::DONT_THROW);
-
-  if (it->IsElement()) {
-    uint32_t index = it->index();
-    v8::IndexedPropertyGetterCallback getter =
-        v8::ToCData<v8::IndexedPropertyGetterCallback>(interceptor->getter());
-    result = args.Call(getter, index);
-  } else {
-    Handle<Name> name = it->name();
-    DCHECK(!name->IsPrivate());
-
-    if (name->IsSymbol() && !interceptor->can_intercept_symbols()) {
-      return isolate->factory()->undefined_value();
-    }
-
-    v8::GenericNamedPropertyGetterCallback getter =
-        v8::ToCData<v8::GenericNamedPropertyGetterCallback>(
-            interceptor->getter());
-    result = args.Call(getter, name);
-  }
-
-  RETURN_EXCEPTION_IF_SCHEDULED_EXCEPTION(isolate, Object);
-  if (result.is_null()) return isolate->factory()->undefined_value();
-  *done = true;
-  // Rebox handle before return
-  return handle(*result, isolate);
+  return GetPropertyWithInterceptorInternal(it, it->GetInterceptor(), done);
 }
 
-
 Maybe<bool> JSObject::HasRealNamedProperty(Handle<JSObject> object,
                                            Handle<Name> name) {
   LookupIterator it = LookupIterator::PropertyOrElement(
@@ -15292,12 +15673,25 @@
 
 MaybeHandle<String> Object::ObjectProtoToString(Isolate* isolate,
                                                 Handle<Object> object) {
-  if (object->IsUndefined()) return isolate->factory()->undefined_to_string();
-  if (object->IsNull()) return isolate->factory()->null_to_string();
+  if (*object == isolate->heap()->undefined_value()) {
+    return isolate->factory()->undefined_to_string();
+  }
+  if (*object == isolate->heap()->null_value()) {
+    return isolate->factory()->null_to_string();
+  }
 
   Handle<JSReceiver> receiver =
       Object::ToObject(isolate, object).ToHandleChecked();
 
+  // For proxies, we must check IsArray() before get(toStringTag) to comply
+  // with the specification
+  Maybe<bool> is_array = Nothing<bool>();
+  InstanceType instance_type = receiver->map()->instance_type();
+  if (instance_type == JS_PROXY_TYPE) {
+    is_array = Object::IsArray(receiver);
+    MAYBE_RETURN(is_array, MaybeHandle<String>());
+  }
+
   Handle<String> tag;
   Handle<Object> to_string_tag;
   ASSIGN_RETURN_ON_EXCEPTION(
@@ -15307,11 +15701,55 @@
       String);
   if (to_string_tag->IsString()) {
     tag = Handle<String>::cast(to_string_tag);
-  }
-
-  if (tag.is_null()) {
-    ASSIGN_RETURN_ON_EXCEPTION(isolate, tag,
-                               JSReceiver::BuiltinStringTag(receiver), String);
+  } else {
+    switch (instance_type) {
+      case JS_API_OBJECT_TYPE:
+      case JS_SPECIAL_API_OBJECT_TYPE:
+        tag = handle(receiver->class_name(), isolate);
+        break;
+      case JS_ARGUMENTS_TYPE:
+        return isolate->factory()->arguments_to_string();
+      case JS_ARRAY_TYPE:
+        return isolate->factory()->array_to_string();
+      case JS_BOUND_FUNCTION_TYPE:
+      case JS_FUNCTION_TYPE:
+        return isolate->factory()->function_to_string();
+      case JS_ERROR_TYPE:
+        return isolate->factory()->error_to_string();
+      case JS_DATE_TYPE:
+        return isolate->factory()->date_to_string();
+      case JS_REGEXP_TYPE:
+        return isolate->factory()->regexp_to_string();
+      case JS_PROXY_TYPE: {
+        if (is_array.FromJust()) {
+          return isolate->factory()->array_to_string();
+        }
+        if (receiver->IsCallable()) {
+          return isolate->factory()->function_to_string();
+        }
+        return isolate->factory()->object_to_string();
+      }
+      case JS_VALUE_TYPE: {
+        Object* value = JSValue::cast(*receiver)->value();
+        if (value->IsString()) {
+          return isolate->factory()->string_to_string();
+        }
+        if (value->IsNumber()) {
+          return isolate->factory()->number_to_string();
+        }
+        if (value->IsBoolean()) {
+          return isolate->factory()->boolean_to_string();
+        }
+        if (value->IsSymbol()) {
+          return isolate->factory()->object_to_string();
+        }
+        UNREACHABLE();
+        tag = handle(receiver->class_name(), isolate);
+        break;
+      }
+      default:
+        return isolate->factory()->object_to_string();
+    }
   }
 
   IncrementalStringBuilder builder(isolate);
@@ -15321,7 +15759,6 @@
   return builder.Finish();
 }
 
-
 const char* Symbol::PrivateSymbolToName() const {
   Heap* heap = GetIsolate()->heap();
 #define SYMBOL_CHECK_AND_PRINT(name) \
@@ -15333,12 +15770,12 @@
 
 
 void Symbol::SymbolShortPrint(std::ostream& os) {
-  os << "<Symbol: " << Hash();
-  if (!name()->IsUndefined()) {
+  os << "<Symbol:";
+  if (!name()->IsUndefined(GetIsolate())) {
     os << " ";
     HeapStringAllocator allocator;
     StringStream accumulator(&allocator);
-    String::cast(name())->StringShortPrint(&accumulator);
+    String::cast(name())->StringShortPrint(&accumulator, false);
     os << accumulator.ToCString().get();
   } else {
     os << " (" << PrivateSymbolToName() << ")";
@@ -15456,7 +15893,6 @@
         flag = JSRegExp::kMultiline;
         break;
       case 'u':
-        if (!FLAG_harmony_unicode_regexps) return JSRegExp::Flags(0);
         flag = JSRegExp::kUnicode;
         break;
       case 'y':
@@ -15771,21 +16207,12 @@
   uint32_t capacity = this->Capacity();
   uint32_t entry = Derived::FirstProbe(key->Hash(), capacity);
   uint32_t count = 1;
-
+  Isolate* isolate = this->GetIsolate();
   while (true) {
-    int index = Derived::EntryToIndex(entry);
-    Object* element = this->get(index);
-    if (element->IsUndefined()) break;  // Empty entry.
+    Object* element = this->KeyAt(entry);
+    if (element->IsUndefined(isolate)) break;  // Empty entry.
     if (*key == element) return entry;
-    if (!element->IsUniqueName() &&
-        !element->IsTheHole() &&
-        Name::cast(element)->Equals(*key)) {
-      // Replace a key that is a non-internalized string by the equivalent
-      // internalized string for faster further lookups.
-      this->set(index, *key);
-      return entry;
-    }
-    DCHECK(element->IsTheHole() || !Name::cast(element)->Equals(*key));
+    DCHECK(element->IsTheHole(isolate) || element->IsUniqueName());
     entry = Derived::NextProbe(entry, count++, capacity);
   }
   return Derived::kNotFound;
@@ -15870,6 +16297,7 @@
 void HashTable<Derived, Shape, Key>::Rehash(Key key) {
   DisallowHeapAllocation no_gc;
   WriteBarrierMode mode = GetWriteBarrierMode(no_gc);
+  Isolate* isolate = GetIsolate();
   uint32_t capacity = Capacity();
   bool done = false;
   for (int probe = 1; !done; probe++) {
@@ -15877,11 +16305,11 @@
     // are placed correctly. Other elements might need to be moved.
     done = true;
     for (uint32_t current = 0; current < capacity; current++) {
-      Object* current_key = get(EntryToIndex(current));
-      if (IsKey(current_key)) {
+      Object* current_key = KeyAt(current);
+      if (IsKey(isolate, current_key)) {
         uint32_t target = EntryForProbe(key, current_key, probe, current);
         if (current == target) continue;
-        Object* target_key = get(EntryToIndex(target));
+        Object* target_key = KeyAt(target);
         if (!IsKey(target_key) ||
             EntryForProbe(key, target_key, probe, target) != target) {
           // Put the current element into the correct position.
@@ -15897,12 +16325,11 @@
     }
   }
   // Wipe deleted entries.
-  Heap* heap = GetHeap();
-  Object* the_hole = heap->the_hole_value();
-  Object* undefined = heap->undefined_value();
+  Object* the_hole = isolate->heap()->the_hole_value();
+  Object* undefined = isolate->heap()->undefined_value();
   for (uint32_t current = 0; current < capacity; current++) {
-    if (get(EntryToIndex(current)) == the_hole) {
-      set(EntryToIndex(current), undefined);
+    if (KeyAt(current) == the_hole) {
+      set(EntryToIndex(current) + Derived::kEntryKeyIndex, undefined);
     }
   }
   SetNumberOfDeletedElements(0);
@@ -15919,7 +16346,7 @@
   int capacity = table->Capacity();
   int nof = table->NumberOfElements() + n;
 
-  if (table->HasSufficientCapacity(n)) return table;
+  if (table->HasSufficientCapacityToAdd(n)) return table;
 
   const int kMinCapacityForPretenure = 256;
   bool should_pretenure = pretenure == TENURED ||
@@ -15935,16 +16362,16 @@
   return new_table;
 }
 
-
 template <typename Derived, typename Shape, typename Key>
-bool HashTable<Derived, Shape, Key>::HasSufficientCapacity(int n) {
+bool HashTable<Derived, Shape, Key>::HasSufficientCapacityToAdd(
+    int number_of_additional_elements) {
   int capacity = Capacity();
-  int nof = NumberOfElements() + n;
+  int nof = NumberOfElements() + number_of_additional_elements;
   int nod = NumberOfDeletedElements();
   // Return true if:
-  //   50% is still free after adding n elements and
+  //   50% is still free after adding number_of_additional_elements elements and
   //   at most 50% of the free elements are deleted elements.
-  if (nod <= (capacity - nof) >> 1) {
+  if ((nof < capacity) && ((nod <= (capacity - nof) >> 1))) {
     int needed_free = nof >> 1;
     if (nof + needed_free <= capacity) return true;
   }
@@ -15990,12 +16417,10 @@
   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();
+  Isolate* isolate = GetIsolate();
   while (true) {
     Object* element = KeyAt(entry);
-    if (element == the_hole || element == undefined) break;
+    if (!IsKey(isolate, element)) break;
     entry = NextProbe(entry, count++, capacity);
   }
   return entry;
@@ -16187,7 +16612,7 @@
   DisallowHeapAllocation no_gc;
   for (int i = 0; i < capacity; i++) {
     Object* k = dict->KeyAt(i);
-    if (!dict->IsKey(k)) continue;
+    if (!dict->IsKey(isolate, k)) continue;
 
     DCHECK(k->IsNumber());
     DCHECK(!k->IsSmi() || Smi::cast(k)->value() >= 0);
@@ -16205,7 +16630,7 @@
 
     uint32_t key = NumberToUint32(k);
     if (key < limit) {
-      if (value->IsUndefined()) {
+      if (value->IsUndefined(isolate)) {
         undefs++;
       } else if (pos > static_cast<uint32_t>(Smi::kMaxValue)) {
         // Adding an entry with the key beyond smi-range requires
@@ -16355,10 +16780,10 @@
     // number of stores of non-undefined, non-the-hole values.
     for (unsigned int i = 0; i < undefs; i++) {
       Object* current = elements->get(i);
-      if (current->IsTheHole()) {
+      if (current->IsTheHole(isolate)) {
         holes--;
         undefs--;
-      } else if (current->IsUndefined()) {
+      } else if (current->IsUndefined(isolate)) {
         undefs--;
       } else {
         continue;
@@ -16366,10 +16791,10 @@
       // Position i needs to be filled.
       while (undefs > i) {
         current = elements->get(undefs);
-        if (current->IsTheHole()) {
+        if (current->IsTheHole(isolate)) {
           holes--;
           undefs--;
-        } else if (current->IsUndefined()) {
+        } else if (current->IsUndefined(isolate)) {
           undefs--;
         } else {
           elements->set(i, current, write_barrier);
@@ -16437,8 +16862,9 @@
 // TODO(ishell): rename to EnsureEmptyPropertyCell or something.
 Handle<PropertyCell> JSGlobalObject::EnsurePropertyCell(
     Handle<JSGlobalObject> global, Handle<Name> name) {
+  Isolate* isolate = global->GetIsolate();
   DCHECK(!global->HasFastProperties());
-  auto dictionary = handle(global->global_dictionary());
+  auto dictionary = handle(global->global_dictionary(), isolate);
   int entry = dictionary->FindEntry(name);
   Handle<PropertyCell> cell;
   if (entry != GlobalDictionary::kNotFound) {
@@ -16449,10 +16875,9 @@
                PropertyCellType::kUninitialized ||
            cell->property_details().cell_type() ==
                PropertyCellType::kInvalidated);
-    DCHECK(cell->value()->IsTheHole());
+    DCHECK(cell->value()->IsTheHole(isolate));
     return cell;
   }
-  Isolate* isolate = global->GetIsolate();
   cell = isolate->factory()->NewPropertyCell();
   PropertyDetails details(NONE, DATA, 0, PropertyCellType::kUninitialized);
   dictionary = GlobalDictionary::Add(dictionary, name, cell, details);
@@ -16764,7 +17189,8 @@
 void CompilationCacheTable::Age() {
   DisallowHeapAllocation no_allocation;
   Object* the_hole_value = GetHeap()->the_hole_value();
-  for (int entry = 0, size = Capacity(); entry < size; entry++) {
+  uint32_t capacity = Capacity();
+  for (int entry = 0, size = capacity; entry < size; entry++) {
     int entry_index = EntryToIndex(entry);
     int value_index = entry_index + 1;
 
@@ -16787,6 +17213,16 @@
       }
     }
   }
+  // Wipe deleted entries.
+  Heap* heap = GetHeap();
+  Object* the_hole = heap->the_hole_value();
+  Object* undefined = heap->undefined_value();
+  for (uint32_t current = 0; current < capacity; current++) {
+    if (get(EntryToIndex(current)) == the_hole) {
+      set(EntryToIndex(current), undefined);
+    }
+  }
+  SetNumberOfDeletedElements(0);
 }
 
 
@@ -16826,7 +17262,8 @@
 template <typename Derived, typename Shape, typename Key>
 Handle<FixedArray> Dictionary<Derived, Shape, Key>::BuildIterationIndicesArray(
     Handle<Derived> dictionary) {
-  Factory* factory = dictionary->GetIsolate()->factory();
+  Isolate* isolate = dictionary->GetIsolate();
+  Factory* factory = isolate->factory();
   int length = dictionary->NumberOfElements();
 
   Handle<FixedArray> iteration_order = factory->NewFixedArray(length);
@@ -16837,7 +17274,7 @@
   int capacity = dictionary->Capacity();
   int pos = 0;
   for (int i = 0; i < capacity; i++) {
-    if (dictionary->IsKey(dictionary->KeyAt(i))) {
+    if (dictionary->IsKey(isolate, dictionary->KeyAt(i))) {
       int index = dictionary->DetailsAt(i).dictionary_index();
       iteration_order->set(pos, Smi::FromInt(i));
       enumeration_order->set(pos, Smi::FromInt(index));
@@ -16886,7 +17323,7 @@
   DCHECK_EQ(0, DerivedHashTable::NumberOfDeletedElements());
   // Make sure that HashTable::EnsureCapacity will create a copy.
   DerivedHashTable::SetNumberOfDeletedElements(DerivedHashTable::Capacity());
-  DCHECK(!DerivedHashTable::HasSufficientCapacity(1));
+  DCHECK(!DerivedHashTable::HasSufficientCapacityToAdd(1));
 }
 
 
@@ -16984,16 +17421,16 @@
 
 bool SeededNumberDictionary::HasComplexElements() {
   if (!requires_slow_elements()) return false;
+  Isolate* isolate = this->GetIsolate();
   int capacity = this->Capacity();
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k)) {
-      DCHECK(!IsDeleted(i));
-      PropertyDetails details = this->DetailsAt(i);
-      if (details.type() == ACCESSOR_CONSTANT) return true;
-      PropertyAttributes attr = details.attributes();
-      if (attr & ALL_ATTRIBUTES_MASK) return true;
-    }
+    if (!this->IsKey(isolate, k)) continue;
+    DCHECK(!IsDeleted(i));
+    PropertyDetails details = this->DetailsAt(i);
+    if (details.type() == ACCESSOR_CONSTANT) return true;
+    PropertyAttributes attr = details.attributes();
+    if (attr & ALL_ATTRIBUTES_MASK) return true;
   }
   return false;
 }
@@ -17089,11 +17526,12 @@
 template <typename Derived, typename Shape, typename Key>
 int Dictionary<Derived, Shape, Key>::NumberOfElementsFilterAttributes(
     PropertyFilter filter) {
+  Isolate* isolate = this->GetIsolate();
   int capacity = this->Capacity();
   int result = 0;
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k) && !k->FilterKey(filter)) {
+    if (this->IsKey(isolate, k) && !k->FilterKey(filter)) {
       if (this->IsDeleted(i)) continue;
       PropertyDetails details = this->DetailsAt(i);
       PropertyAttributes attr = details.attributes();
@@ -17118,12 +17556,13 @@
 
 template <typename Derived, typename Shape, typename Key>
 void Dictionary<Derived, Shape, Key>::CopyEnumKeysTo(FixedArray* storage) {
+  Isolate* isolate = this->GetIsolate();
   int length = storage->length();
   int capacity = this->Capacity();
   int properties = 0;
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k) && !k->IsSymbol()) {
+    if (this->IsKey(isolate, k) && !k->IsSymbol()) {
       PropertyDetails details = this->DetailsAt(i);
       if (details.IsDontEnum() || this->IsDeleted(i)) continue;
       storage->set(properties, Smi::FromInt(i));
@@ -17145,9 +17584,10 @@
 void Dictionary<Derived, Shape, Key>::CollectKeysTo(
     Handle<Dictionary<Derived, Shape, Key> > dictionary, KeyAccumulator* keys,
     PropertyFilter filter) {
+  Isolate* isolate = keys->isolate();
   int capacity = dictionary->Capacity();
   Handle<FixedArray> array =
-      keys->isolate()->factory()->NewFixedArray(dictionary->NumberOfElements());
+      isolate->factory()->NewFixedArray(dictionary->NumberOfElements());
   int array_size = 0;
 
   {
@@ -17155,7 +17595,7 @@
     Dictionary<Derived, Shape, Key>* raw_dict = *dictionary;
     for (int i = 0; i < capacity; i++) {
       Object* k = raw_dict->KeyAt(i);
-      if (!raw_dict->IsKey(k) || k->FilterKey(filter)) continue;
+      if (!raw_dict->IsKey(isolate, k) || k->FilterKey(filter)) continue;
       if (raw_dict->IsDeleted(i)) continue;
       PropertyDetails details = raw_dict->DetailsAt(i);
       if ((details.attributes() & filter) != 0) continue;
@@ -17176,9 +17616,23 @@
     std::sort(start, start + array_size, cmp);
   }
 
+  bool has_seen_symbol = false;
   for (int i = 0; i < array_size; i++) {
     int index = Smi::cast(array->get(i))->value();
-    keys->AddKey(dictionary->KeyAt(index), DO_NOT_CONVERT);
+    Object* key = dictionary->KeyAt(index);
+    if (key->IsSymbol()) {
+      has_seen_symbol = true;
+      continue;
+    }
+    keys->AddKey(key, DO_NOT_CONVERT);
+  }
+  if (has_seen_symbol) {
+    for (int i = 0; i < array_size; i++) {
+      int index = Smi::cast(array->get(i))->value();
+      Object* key = dictionary->KeyAt(index);
+      if (!key->IsSymbol()) continue;
+      keys->AddKey(key, DO_NOT_CONVERT);
+    }
   }
 }
 
@@ -17186,27 +17640,26 @@
 // Backwards lookup (slow).
 template<typename Derived, typename Shape, typename Key>
 Object* Dictionary<Derived, Shape, Key>::SlowReverseLookup(Object* value) {
+  Isolate* isolate = this->GetIsolate();
   int capacity = this->Capacity();
   for (int i = 0; i < capacity; i++) {
     Object* k = this->KeyAt(i);
-    if (this->IsKey(k)) {
-      Object* e = this->ValueAt(i);
-      // TODO(dcarney): this should be templatized.
-      if (e->IsPropertyCell()) {
-        e = PropertyCell::cast(e)->value();
-      }
-      if (e == value) return k;
+    if (!this->IsKey(isolate, k)) continue;
+    Object* e = this->ValueAt(i);
+    // TODO(dcarney): this should be templatized.
+    if (e->IsPropertyCell()) {
+      e = PropertyCell::cast(e)->value();
     }
+    if (e == value) return k;
   }
-  Heap* heap = Dictionary::GetHeap();
-  return heap->undefined_value();
+  return isolate->heap()->undefined_value();
 }
 
 
 Object* ObjectHashTable::Lookup(Isolate* isolate, Handle<Object> key,
                                 int32_t hash) {
   DisallowHeapAllocation no_gc;
-  DCHECK(IsKey(*key));
+  DCHECK(IsKey(isolate, *key));
 
   int entry = FindEntry(isolate, key, hash);
   if (entry == kNotFound) return isolate->heap()->the_hole_value();
@@ -17216,13 +17669,13 @@
 
 Object* ObjectHashTable::Lookup(Handle<Object> key) {
   DisallowHeapAllocation no_gc;
-  DCHECK(IsKey(*key));
 
   Isolate* isolate = GetIsolate();
+  DCHECK(IsKey(isolate, *key));
 
   // If the object does not have an identity hash, it was never used as a key.
   Object* hash = key->GetHash();
-  if (hash->IsUndefined()) {
+  if (hash->IsUndefined(isolate)) {
     return isolate->heap()->the_hole_value();
   }
   return Lookup(isolate, key, Smi::cast(hash)->value());
@@ -17237,10 +17690,10 @@
 Handle<ObjectHashTable> ObjectHashTable::Put(Handle<ObjectHashTable> table,
                                              Handle<Object> key,
                                              Handle<Object> value) {
-  DCHECK(table->IsKey(*key));
-  DCHECK(!value->IsTheHole());
-
   Isolate* isolate = table->GetIsolate();
+  DCHECK(table->IsKey(isolate, *key));
+  DCHECK(!value->IsTheHole(isolate));
+
   // Make sure the key object has an identity hash code.
   int32_t hash = Object::GetOrCreateHash(isolate, key)->value();
 
@@ -17252,10 +17705,9 @@
                                              Handle<Object> key,
                                              Handle<Object> value,
                                              int32_t hash) {
-  DCHECK(table->IsKey(*key));
-  DCHECK(!value->IsTheHole());
-
   Isolate* isolate = table->GetIsolate();
+  DCHECK(table->IsKey(isolate, *key));
+  DCHECK(!value->IsTheHole(isolate));
 
   int entry = table->FindEntry(isolate, key, hash);
 
@@ -17265,11 +17717,24 @@
     return table;
   }
 
-  // Rehash if more than 33% of the entries are deleted entries.
+  // Rehash if more than 25% 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());
   }
+  // If we're out of luck, we didn't get a GC recently, and so rehashing
+  // isn't enough to avoid a crash.
+  if (!table->HasSufficientCapacityToAdd(1)) {
+    int nof = table->NumberOfElements() + 1;
+    int capacity = ObjectHashTable::ComputeCapacity(nof * 2);
+    if (capacity > ObjectHashTable::kMaxCapacity) {
+      for (size_t i = 0; i < 2; ++i) {
+        isolate->heap()->CollectAllGarbage(
+            Heap::kFinalizeIncrementalMarkingMask, "full object hash table");
+      }
+      table->Rehash(isolate->factory()->undefined_value());
+    }
+  }
 
   // Check whether the hash table should be extended.
   table = EnsureCapacity(table, 1, key);
@@ -17281,10 +17746,10 @@
 Handle<ObjectHashTable> ObjectHashTable::Remove(Handle<ObjectHashTable> table,
                                                 Handle<Object> key,
                                                 bool* was_present) {
-  DCHECK(table->IsKey(*key));
+  DCHECK(table->IsKey(table->GetIsolate(), *key));
 
   Object* hash = key->GetHash();
-  if (hash->IsUndefined()) {
+  if (hash->IsUndefined(table->GetIsolate())) {
     *was_present = false;
     return table;
   }
@@ -17297,9 +17762,10 @@
                                                 Handle<Object> key,
                                                 bool* was_present,
                                                 int32_t hash) {
-  DCHECK(table->IsKey(*key));
+  Isolate* isolate = table->GetIsolate();
+  DCHECK(table->IsKey(isolate, *key));
 
-  int entry = table->FindEntry(table->GetIsolate(), key, hash);
+  int entry = table->FindEntry(isolate, key, hash);
   if (entry == kNotFound) {
     *was_present = false;
     return table;
@@ -17327,9 +17793,10 @@
 
 Object* WeakHashTable::Lookup(Handle<HeapObject> key) {
   DisallowHeapAllocation no_gc;
-  DCHECK(IsKey(*key));
+  Isolate* isolate = GetIsolate();
+  DCHECK(IsKey(isolate, *key));
   int entry = FindEntry(key);
-  if (entry == kNotFound) return GetHeap()->the_hole_value();
+  if (entry == kNotFound) return isolate->heap()->the_hole_value();
   return get(EntryToValueIndex(entry));
 }
 
@@ -17337,7 +17804,8 @@
 Handle<WeakHashTable> WeakHashTable::Put(Handle<WeakHashTable> table,
                                          Handle<HeapObject> key,
                                          Handle<HeapObject> value) {
-  DCHECK(table->IsKey(*key));
+  Isolate* isolate = key->GetIsolate();
+  DCHECK(table->IsKey(isolate, *key));
   int entry = table->FindEntry(key);
   // Key is already in table, just overwrite value.
   if (entry != kNotFound) {
@@ -17345,7 +17813,7 @@
     return table;
   }
 
-  Handle<WeakCell> key_cell = key->GetIsolate()->factory()->NewWeakCell(key);
+  Handle<WeakCell> key_cell = isolate->factory()->NewWeakCell(key);
 
   // Check whether the hash table should be extended.
   table = EnsureCapacity(table, 1, key, TENURED);
@@ -17439,11 +17907,14 @@
 template <class Derived, class Iterator, int entrysize>
 bool OrderedHashTable<Derived, Iterator, entrysize>::HasKey(
     Handle<Derived> table, Handle<Object> key) {
-  int entry = table->KeyToFirstEntry(*key);
+  DisallowHeapAllocation no_gc;
+  Isolate* isolate = table->GetIsolate();
+  Object* raw_key = *key;
+  int entry = table->KeyToFirstEntry(isolate, raw_key);
   // Walk the chain in the bucket to find the key.
   while (entry != kNotFound) {
     Object* candidate_key = table->KeyAt(entry);
-    if (candidate_key->SameValueZero(*key)) return true;
+    if (candidate_key->SameValueZero(raw_key)) return true;
     entry = table->NextChainEntry(entry);
   }
   return false;
@@ -17478,16 +17949,36 @@
   return table;
 }
 
+Handle<FixedArray> OrderedHashSet::ConvertToKeysArray(
+    Handle<OrderedHashSet> table, GetKeysConversion convert) {
+  Isolate* isolate = table->GetIsolate();
+  int length = table->NumberOfElements();
+  int nof_buckets = table->NumberOfBuckets();
+  // Convert the dictionary to a linear list.
+  Handle<FixedArray> result = Handle<FixedArray>::cast(table);
+  // From this point on table is no longer a valid OrderedHashSet.
+  result->set_map(isolate->heap()->fixed_array_map());
+  for (int i = 0; i < length; i++) {
+    int index = kHashTableStartIndex + nof_buckets + (i * kEntrySize);
+    Object* key = table->get(index);
+    if (convert == GetKeysConversion::kConvertToString && key->IsNumber()) {
+      key = *isolate->factory()->NumberToString(handle(key, isolate));
+    }
+    result->set(i, key);
+  }
+  result->Shrink(length);
+  return result;
+}
 
 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(
-      isolate, new_capacity, heap->InNewSpace(*table) ? NOT_TENURED : TENURED);
+  Handle<Derived> new_table =
+      Allocate(isolate, new_capacity,
+               isolate->heap()->InNewSpace(*table) ? NOT_TENURED : TENURED);
   int nof = table->NumberOfElements();
   int nod = table->NumberOfDeletedElements();
   int new_buckets = new_table->NumberOfBuckets();
@@ -17495,10 +17986,9 @@
   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 == the_hole) {
+    if (key->IsTheHole(isolate)) {
       table->SetRemovedIndexAt(removed_holes_index++, old_entry);
       continue;
     }
@@ -17602,7 +18092,8 @@
 template<class Derived, class TableType>
 bool OrderedHashTableIterator<Derived, TableType>::HasMore() {
   DisallowHeapAllocation no_allocation;
-  if (this->table()->IsUndefined()) return false;
+  Isolate* isolate = this->GetIsolate();
+  if (this->table()->IsUndefined(isolate)) return false;
 
   Transition();
 
@@ -17610,7 +18101,7 @@
   int index = Smi::cast(this->index())->value();
   int used_capacity = table->UsedCapacity();
 
-  while (index < used_capacity && table->KeyAt(index)->IsTheHole()) {
+  while (index < used_capacity && table->KeyAt(index)->IsTheHole(isolate)) {
     index++;
   }
 
@@ -17618,7 +18109,7 @@
 
   if (index < used_capacity) return true;
 
-  set_table(GetHeap()->undefined_value());
+  set_table(isolate->heap()->undefined_value());
   return false;
 }
 
@@ -17744,7 +18235,7 @@
 
   // If there is no break point info object or no break points in the break
   // point info object there is no break point at this code offset.
-  if (break_point_info->IsUndefined()) return false;
+  if (break_point_info->IsUndefined(GetIsolate())) return false;
   return BreakPointInfo::cast(break_point_info)->GetBreakPointCount() > 0;
 }
 
@@ -17761,9 +18252,10 @@
 // Clear a break point at the specified code offset.
 void DebugInfo::ClearBreakPoint(Handle<DebugInfo> debug_info, int code_offset,
                                 Handle<Object> break_point_object) {
+  Isolate* isolate = debug_info->GetIsolate();
   Handle<Object> break_point_info(debug_info->GetBreakPointInfo(code_offset),
-                                  debug_info->GetIsolate());
-  if (break_point_info->IsUndefined()) return;
+                                  isolate);
+  if (break_point_info->IsUndefined(isolate)) return;
   BreakPointInfo::ClearBreakPoint(
       Handle<BreakPointInfo>::cast(break_point_info),
       break_point_object);
@@ -17775,7 +18267,7 @@
   Isolate* isolate = debug_info->GetIsolate();
   Handle<Object> break_point_info(debug_info->GetBreakPointInfo(code_offset),
                                   isolate);
-  if (!break_point_info->IsUndefined()) {
+  if (!break_point_info->IsUndefined(isolate)) {
     BreakPointInfo::SetBreakPoint(
         Handle<BreakPointInfo>::cast(break_point_info),
         break_point_object);
@@ -17786,15 +18278,15 @@
   // break points before. Try to find a free slot.
   int index = kNoBreakPointInfo;
   for (int i = 0; i < debug_info->break_points()->length(); i++) {
-    if (debug_info->break_points()->get(i)->IsUndefined()) {
+    if (debug_info->break_points()->get(i)->IsUndefined(isolate)) {
       index = i;
       break;
     }
   }
   if (index == kNoBreakPointInfo) {
     // No free slot - extend break point info array.
-    Handle<FixedArray> old_break_points =
-        Handle<FixedArray>(FixedArray::cast(debug_info->break_points()));
+    Handle<FixedArray> old_break_points = Handle<FixedArray>(
+        FixedArray::cast(debug_info->break_points()), isolate);
     Handle<FixedArray> new_break_points =
         isolate->factory()->NewFixedArray(
             old_break_points->length() +
@@ -17823,21 +18315,22 @@
 // Get the break point objects for a code offset.
 Handle<Object> DebugInfo::GetBreakPointObjects(int code_offset) {
   Object* break_point_info = GetBreakPointInfo(code_offset);
-  if (break_point_info->IsUndefined()) {
-    return GetIsolate()->factory()->undefined_value();
+  Isolate* isolate = GetIsolate();
+  if (break_point_info->IsUndefined(isolate)) {
+    return isolate->factory()->undefined_value();
   }
   return Handle<Object>(
-      BreakPointInfo::cast(break_point_info)->break_point_objects(),
-      GetIsolate());
+      BreakPointInfo::cast(break_point_info)->break_point_objects(), isolate);
 }
 
 
 // Get the total number of break points.
 int DebugInfo::GetBreakPointCount() {
-  if (break_points()->IsUndefined()) return 0;
+  Isolate* isolate = GetIsolate();
+  if (break_points()->IsUndefined(isolate)) return 0;
   int count = 0;
   for (int i = 0; i < break_points()->length(); i++) {
-    if (!break_points()->get(i)->IsUndefined()) {
+    if (!break_points()->get(i)->IsUndefined(isolate)) {
       BreakPointInfo* break_point_info =
           BreakPointInfo::cast(break_points()->get(i));
       count += break_point_info->GetBreakPointCount();
@@ -17850,9 +18343,9 @@
 Handle<Object> DebugInfo::FindBreakPointInfo(
     Handle<DebugInfo> debug_info, Handle<Object> break_point_object) {
   Isolate* isolate = debug_info->GetIsolate();
-  if (!debug_info->break_points()->IsUndefined()) {
+  if (!debug_info->break_points()->IsUndefined(isolate)) {
     for (int i = 0; i < debug_info->break_points()->length(); i++) {
-      if (!debug_info->break_points()->get(i)->IsUndefined()) {
+      if (!debug_info->break_points()->get(i)->IsUndefined(isolate)) {
         Handle<BreakPointInfo> break_point_info = Handle<BreakPointInfo>(
             BreakPointInfo::cast(debug_info->break_points()->get(i)), isolate);
         if (BreakPointInfo::HasBreakPointObject(break_point_info,
@@ -17869,9 +18362,10 @@
 // Find the index of the break point info object for the specified code
 // position.
 int DebugInfo::GetBreakPointInfoIndex(int code_offset) {
-  if (break_points()->IsUndefined()) return kNoBreakPointInfo;
+  Isolate* isolate = GetIsolate();
+  if (break_points()->IsUndefined(isolate)) return kNoBreakPointInfo;
   for (int i = 0; i < break_points()->length(); i++) {
-    if (!break_points()->get(i)->IsUndefined()) {
+    if (!break_points()->get(i)->IsUndefined(isolate)) {
       BreakPointInfo* break_point_info =
           BreakPointInfo::cast(break_points()->get(i));
       if (break_point_info->code_offset() == code_offset) {
@@ -17888,7 +18382,7 @@
                                      Handle<Object> break_point_object) {
   Isolate* isolate = break_point_info->GetIsolate();
   // If there are no break points just ignore.
-  if (break_point_info->break_point_objects()->IsUndefined()) return;
+  if (break_point_info->break_point_objects()->IsUndefined(isolate)) return;
   // If there is a single break point clear it if it is the same.
   if (!break_point_info->break_point_objects()->IsFixedArray()) {
     if (break_point_info->break_point_objects() == *break_point_object) {
@@ -17924,7 +18418,7 @@
   Isolate* isolate = break_point_info->GetIsolate();
 
   // If there was no break point objects before just set it.
-  if (break_point_info->break_point_objects()->IsUndefined()) {
+  if (break_point_info->break_point_objects()->IsUndefined(isolate)) {
     break_point_info->set_break_point_objects(*break_point_object);
     return;
   }
@@ -17959,7 +18453,10 @@
     Handle<BreakPointInfo> break_point_info,
     Handle<Object> break_point_object) {
   // No break point.
-  if (break_point_info->break_point_objects()->IsUndefined()) return false;
+  Isolate* isolate = break_point_info->GetIsolate();
+  if (break_point_info->break_point_objects()->IsUndefined(isolate)) {
+    return false;
+  }
   // Single break point.
   if (!break_point_info->break_point_objects()->IsFixedArray()) {
     return break_point_info->break_point_objects() == *break_point_object;
@@ -17978,7 +18475,7 @@
 // Get the number of break points.
 int BreakPointInfo::GetBreakPointCount() {
   // No break point.
-  if (break_point_objects()->IsUndefined()) return 0;
+  if (break_point_objects()->IsUndefined(GetIsolate())) return 0;
   // Single break point.
   if (!break_point_objects()->IsFixedArray()) return 1;
   // Multiple break points.
@@ -18305,7 +18802,7 @@
   auto new_cell = isolate->factory()->NewPropertyCell();
   new_cell->set_value(cell->value());
   dictionary->ValueAtPut(entry, *new_cell);
-  bool is_the_hole = cell->value()->IsTheHole();
+  bool is_the_hole = cell->value()->IsTheHole(isolate);
   // Cell is officially mutable henceforth.
   PropertyDetails details = cell->property_details();
   details = details.set_cell_type(is_the_hole ? PropertyCellType::kInvalidated
@@ -18349,12 +18846,13 @@
                                            Handle<Object> value,
                                            PropertyDetails details) {
   PropertyCellType type = details.cell_type();
-  DCHECK(!value->IsTheHole());
-  if (cell->value()->IsTheHole()) {
+  Isolate* isolate = cell->GetIsolate();
+  DCHECK(!value->IsTheHole(isolate));
+  if (cell->value()->IsTheHole(isolate)) {
     switch (type) {
       // Only allow a cell to transition once into constant state.
       case PropertyCellType::kUninitialized:
-        if (value->IsUndefined()) return PropertyCellType::kUndefined;
+        if (value->IsUndefined(isolate)) return PropertyCellType::kUndefined;
         return PropertyCellType::kConstant;
       case PropertyCellType::kInvalidated:
         return PropertyCellType::kMutable;
@@ -18384,7 +18882,8 @@
 
 void PropertyCell::UpdateCell(Handle<GlobalDictionary> dictionary, int entry,
                               Handle<Object> value, PropertyDetails details) {
-  DCHECK(!value->IsTheHole());
+  Isolate* isolate = dictionary->GetIsolate();
+  DCHECK(!value->IsTheHole(isolate));
   DCHECK(dictionary->ValueAt(entry)->IsPropertyCell());
   Handle<PropertyCell> cell(PropertyCell::cast(dictionary->ValueAt(entry)));
   const PropertyDetails original_details = cell->property_details();
@@ -18395,7 +18894,7 @@
   PropertyCellType old_type = original_details.cell_type();
   // Preserve the enumeration index unless the property was deleted or never
   // initialized.
-  if (cell->value()->IsTheHole()) {
+  if (cell->value()->IsTheHole(isolate)) {
     index = dictionary->NextEnumerationIndex();
     dictionary->SetNextEnumerationIndex(index + 1);
     // Negative lookup cells must be invalidated.
@@ -18415,7 +18914,6 @@
   // Deopt when transitioning from a constant type.
   if (!invalidate && (old_type != new_type ||
                       original_details.IsReadOnly() != details.IsReadOnly())) {
-    Isolate* isolate = dictionary->GetIsolate();
     cell->dependent_code()->DeoptimizeDependentCodeGroup(
         isolate, DependentCode::kPropertyCellChangedGroup);
   }
@@ -18433,5 +18931,41 @@
   }
 }
 
+int JSGeneratorObject::source_position() const {
+  CHECK(is_suspended());
+  if (function()->shared()->HasBytecodeArray()) {
+    // New-style generators.
+    int offset = Smi::cast(input_or_debug_pos())->value();
+    // The stored bytecode offset is relative to a different base than what
+    // is used in the source position table, hence the subtraction.
+    offset -= BytecodeArray::kHeaderSize - kHeapObjectTag;
+    return function()->shared()->bytecode_array()->SourcePosition(offset);
+  } else {
+    // Old-style generators.
+    int offset = continuation();
+    CHECK(0 <= offset && offset < function()->code()->instruction_size());
+    return function()->code()->SourcePosition(offset);
+  }
+}
+
+// static
+AccessCheckInfo* AccessCheckInfo::Get(Isolate* isolate,
+                                      Handle<JSObject> receiver) {
+  DisallowHeapAllocation no_gc;
+  DCHECK(receiver->map()->is_access_check_needed());
+  Object* maybe_constructor = receiver->map()->GetConstructor();
+  // Might happen for a detached context.
+  if (!maybe_constructor->IsJSFunction()) return nullptr;
+  JSFunction* constructor = JSFunction::cast(maybe_constructor);
+  // Might happen for the debug context.
+  if (!constructor->shared()->IsApiFunction()) return nullptr;
+
+  Object* data_obj =
+      constructor->shared()->get_api_func_data()->access_check_info();
+  if (data_obj->IsUndefined(isolate)) return nullptr;
+
+  return AccessCheckInfo::cast(data_obj);
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/objects.h b/src/objects.h
index 15d2d72..e37b9bd 100644
--- a/src/objects.h
+++ b/src/objects.h
@@ -415,6 +415,7 @@
   V(JS_VALUE_TYPE)                                              \
   V(JS_DATE_TYPE)                                               \
   V(JS_OBJECT_TYPE)                                             \
+  V(JS_ARGUMENTS_TYPE)                                          \
   V(JS_CONTEXT_EXTENSION_OBJECT_TYPE)                           \
   V(JS_GENERATOR_OBJECT_TYPE)                                   \
   V(JS_MODULE_TYPE)                                             \
@@ -435,6 +436,7 @@
   V(JS_WEAK_SET_TYPE)                                           \
   V(JS_PROMISE_TYPE)                                            \
   V(JS_REGEXP_TYPE)                                             \
+  V(JS_ERROR_TYPE)                                              \
                                                                 \
   V(JS_BOUND_FUNCTION_TYPE)                                     \
   V(JS_FUNCTION_TYPE)                                           \
@@ -712,6 +714,7 @@
   // Like JS_OBJECT_TYPE, but created from API function.
   JS_API_OBJECT_TYPE,
   JS_OBJECT_TYPE,
+  JS_ARGUMENTS_TYPE,
   JS_CONTEXT_EXTENSION_OBJECT_TYPE,
   JS_GENERATOR_OBJECT_TYPE,
   JS_MODULE_TYPE,
@@ -727,6 +730,7 @@
   JS_WEAK_SET_TYPE,
   JS_PROMISE_TYPE,
   JS_REGEXP_TYPE,
+  JS_ERROR_TYPE,
   JS_BOUND_FUNCTION_TYPE,
   JS_FUNCTION_TYPE,  // LAST_JS_OBJECT_TYPE, LAST_JS_RECEIVER_TYPE
 
@@ -856,6 +860,7 @@
 class SharedFunctionInfo;
 class StringStream;
 class TypeFeedbackInfo;
+class TypeFeedbackMetadata;
 class TypeFeedbackVector;
 class WeakCell;
 class TransitionArray;
@@ -883,134 +888,136 @@
   V(Primitive)              \
   V(Number)
 
-#define HEAP_OBJECT_TYPE_LIST(V)   \
-  V(HeapNumber)                    \
-  V(MutableHeapNumber)             \
-  V(Simd128Value)                  \
-  V(Float32x4)                     \
-  V(Int32x4)                       \
-  V(Uint32x4)                      \
-  V(Bool32x4)                      \
-  V(Int16x8)                       \
-  V(Uint16x8)                      \
-  V(Bool16x8)                      \
-  V(Int8x16)                       \
-  V(Uint8x16)                      \
-  V(Bool8x16)                      \
-  V(Name)                          \
-  V(UniqueName)                    \
-  V(String)                        \
-  V(SeqString)                     \
-  V(ExternalString)                \
-  V(ConsString)                    \
-  V(SlicedString)                  \
-  V(ExternalTwoByteString)         \
-  V(ExternalOneByteString)         \
-  V(SeqTwoByteString)              \
-  V(SeqOneByteString)              \
-  V(InternalizedString)            \
-  V(Symbol)                        \
-                                   \
-  V(FixedTypedArrayBase)           \
-  V(FixedUint8Array)               \
-  V(FixedInt8Array)                \
-  V(FixedUint16Array)              \
-  V(FixedInt16Array)               \
-  V(FixedUint32Array)              \
-  V(FixedInt32Array)               \
-  V(FixedFloat32Array)             \
-  V(FixedFloat64Array)             \
-  V(FixedUint8ClampedArray)        \
-  V(ByteArray)                     \
-  V(BytecodeArray)                 \
-  V(FreeSpace)                     \
-  V(JSReceiver)                    \
-  V(JSObject)                      \
-  V(JSContextExtensionObject)      \
-  V(JSGeneratorObject)             \
-  V(JSModule)                      \
-  V(Map)                           \
-  V(DescriptorArray)               \
-  V(TransitionArray)               \
-  V(LiteralsArray)                 \
-  V(TypeFeedbackMetadata)          \
-  V(TypeFeedbackVector)            \
-  V(DeoptimizationInputData)       \
-  V(DeoptimizationOutputData)      \
-  V(DependentCode)                 \
-  V(HandlerTable)                  \
-  V(FixedArray)                    \
-  V(FixedDoubleArray)              \
-  V(WeakFixedArray)                \
-  V(ArrayList)                     \
-  V(Context)                       \
-  V(ScriptContextTable)            \
-  V(NativeContext)                 \
-  V(ScopeInfo)                     \
-  V(JSBoundFunction)               \
-  V(JSFunction)                    \
-  V(Code)                          \
-  V(AbstractCode)                  \
-  V(Oddball)                       \
-  V(SharedFunctionInfo)            \
-  V(JSValue)                       \
-  V(JSDate)                        \
-  V(JSMessageObject)               \
-  V(StringWrapper)                 \
-  V(Foreign)                       \
-  V(Boolean)                       \
-  V(JSArray)                       \
-  V(JSArrayBuffer)                 \
-  V(JSArrayBufferView)             \
-  V(JSTypedArray)                  \
-  V(JSDataView)                    \
-  V(JSProxy)                       \
-  V(JSSet)                         \
-  V(JSMap)                         \
-  V(JSSetIterator)                 \
-  V(JSMapIterator)                 \
-  V(JSWeakCollection)              \
-  V(JSWeakMap)                     \
-  V(JSWeakSet)                     \
-  V(JSRegExp)                      \
-  V(HashTable)                     \
-  V(Dictionary)                    \
-  V(StringTable)                   \
-  V(StringSet)                     \
-  V(NormalizedMapCache)            \
-  V(CompilationCacheTable)         \
-  V(CodeCacheHashTable)            \
-  V(MapCache)                      \
-  V(JSGlobalObject)                \
-  V(JSGlobalProxy)                 \
-  V(Undetectable)                  \
-  V(AccessCheckNeeded)             \
-  V(Callable)                      \
-  V(Function)                      \
-  V(Constructor)                   \
-  V(TemplateInfo)                  \
-  V(Filler)                        \
-  V(FixedArrayBase)                \
-  V(External)                      \
-  V(Struct)                        \
-  V(Cell)                          \
-  V(PropertyCell)                  \
-  V(WeakCell)                      \
-  V(ObjectHashTable)               \
-  V(WeakHashTable)                 \
+#define HEAP_OBJECT_TYPE_LIST(V) \
+  V(HeapNumber)                  \
+  V(MutableHeapNumber)           \
+  V(Simd128Value)                \
+  V(Float32x4)                   \
+  V(Int32x4)                     \
+  V(Uint32x4)                    \
+  V(Bool32x4)                    \
+  V(Int16x8)                     \
+  V(Uint16x8)                    \
+  V(Bool16x8)                    \
+  V(Int8x16)                     \
+  V(Uint8x16)                    \
+  V(Bool8x16)                    \
+  V(Name)                        \
+  V(UniqueName)                  \
+  V(String)                      \
+  V(SeqString)                   \
+  V(ExternalString)              \
+  V(ConsString)                  \
+  V(SlicedString)                \
+  V(ExternalTwoByteString)       \
+  V(ExternalOneByteString)       \
+  V(SeqTwoByteString)            \
+  V(SeqOneByteString)            \
+  V(InternalizedString)          \
+  V(Symbol)                      \
+                                 \
+  V(FixedTypedArrayBase)         \
+  V(FixedUint8Array)             \
+  V(FixedInt8Array)              \
+  V(FixedUint16Array)            \
+  V(FixedInt16Array)             \
+  V(FixedUint32Array)            \
+  V(FixedInt32Array)             \
+  V(FixedFloat32Array)           \
+  V(FixedFloat64Array)           \
+  V(FixedUint8ClampedArray)      \
+  V(ByteArray)                   \
+  V(BytecodeArray)               \
+  V(FreeSpace)                   \
+  V(JSReceiver)                  \
+  V(JSObject)                    \
+  V(JSContextExtensionObject)    \
+  V(JSGeneratorObject)           \
+  V(JSModule)                    \
+  V(Map)                         \
+  V(DescriptorArray)             \
+  V(TransitionArray)             \
+  V(LiteralsArray)               \
+  V(TypeFeedbackMetadata)        \
+  V(TypeFeedbackVector)          \
+  V(DeoptimizationInputData)     \
+  V(DeoptimizationOutputData)    \
+  V(DependentCode)               \
+  V(HandlerTable)                \
+  V(FixedArray)                  \
+  V(FixedDoubleArray)            \
+  V(WeakFixedArray)              \
+  V(ArrayList)                   \
+  V(Context)                     \
+  V(ScriptContextTable)          \
+  V(NativeContext)               \
+  V(ScopeInfo)                   \
+  V(JSBoundFunction)             \
+  V(JSFunction)                  \
+  V(Code)                        \
+  V(AbstractCode)                \
+  V(Oddball)                     \
+  V(SharedFunctionInfo)          \
+  V(JSValue)                     \
+  V(JSDate)                      \
+  V(JSMessageObject)             \
+  V(StringWrapper)               \
+  V(Foreign)                     \
+  V(Boolean)                     \
+  V(JSArray)                     \
+  V(JSArrayBuffer)               \
+  V(JSArrayBufferView)           \
+  V(JSTypedArray)                \
+  V(JSDataView)                  \
+  V(JSProxy)                     \
+  V(JSError)                     \
+  V(JSPromise)                   \
+  V(JSSet)                       \
+  V(JSMap)                       \
+  V(JSSetIterator)               \
+  V(JSMapIterator)               \
+  V(JSWeakCollection)            \
+  V(JSWeakMap)                   \
+  V(JSWeakSet)                   \
+  V(JSRegExp)                    \
+  V(HashTable)                   \
+  V(Dictionary)                  \
+  V(StringTable)                 \
+  V(StringSet)                   \
+  V(NormalizedMapCache)          \
+  V(CompilationCacheTable)       \
+  V(CodeCacheHashTable)          \
+  V(MapCache)                    \
+  V(JSGlobalObject)              \
+  V(JSGlobalProxy)               \
+  V(Undetectable)                \
+  V(AccessCheckNeeded)           \
+  V(Callable)                    \
+  V(Function)                    \
+  V(Constructor)                 \
+  V(TemplateInfo)                \
+  V(Filler)                      \
+  V(FixedArrayBase)              \
+  V(External)                    \
+  V(Struct)                      \
+  V(Cell)                        \
+  V(PropertyCell)                \
+  V(WeakCell)                    \
+  V(ObjectHashTable)             \
+  V(WeakHashTable)               \
   V(OrderedHashTable)
 
-#define ODDBALL_LIST(V) \
-  V(Undefined)          \
-  V(Null)               \
-  V(TheHole)            \
-  V(Exception)          \
-  V(Uninitialized)      \
-  V(True)               \
-  V(False)              \
-  V(ArgumentsMarker)    \
-  V(OptimizedOut)       \
-  V(StaleRegister)
+#define ODDBALL_LIST(V)                 \
+  V(Undefined, undefined_value)         \
+  V(Null, null_value)                   \
+  V(TheHole, the_hole_value)            \
+  V(Exception, exception)               \
+  V(Uninitialized, uninitialized_value) \
+  V(True, true_value)                   \
+  V(False, false_value)                 \
+  V(ArgumentsMarker, arguments_marker)  \
+  V(OptimizedOut, optimized_out)        \
+  V(StaleRegister, stale_register)
 
 // The element types selection for CreateListFromArrayLike.
 enum class ElementTypes { kAll, kStringAndSymbol };
@@ -1026,9 +1033,12 @@
   // Type testing.
   bool IsObject() const { return true; }
 
-#define IS_TYPE_FUNCTION_DECL(type_)  INLINE(bool Is##type_() const);
+#define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const);
   OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL)
   HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL)
+#undef IS_TYPE_FUNCTION_DECL
+#define IS_TYPE_FUNCTION_DECL(Type, Value) \
+  INLINE(bool Is##Type(Isolate* isolate) const);
   ODDBALL_LIST(IS_TYPE_FUNCTION_DECL)
 #undef IS_TYPE_FUNCTION_DECL
 
@@ -1072,7 +1082,6 @@
   INLINE(bool IsUnseededNumberDictionary() const);
   INLINE(bool IsOrderedHashSet() const);
   INLINE(bool IsOrderedHashMap() const);
-  static bool IsPromise(Handle<Object> object);
 
   // Extract the number.
   inline double Number() const;
@@ -1177,8 +1186,9 @@
   MUST_USE_RESULT static MaybeHandle<FixedArray> CreateListFromArrayLike(
       Isolate* isolate, Handle<Object> object, ElementTypes element_types);
 
-  // Check whether |object| is an instance of Error or NativeError.
-  static bool IsErrorObject(Isolate* isolate, Handle<Object> object);
+  // Get length property and apply ToLength.
+  MUST_USE_RESULT static MaybeHandle<Object> GetLengthFromArrayLike(
+      Isolate* isolate, Handle<Object> object);
 
   // ES6 section 12.5.6 The typeof Operator
   static Handle<String> TypeOf(Isolate* isolate, Handle<Object> object);
@@ -1317,15 +1327,10 @@
   // undefined if not yet created.
   Object* GetHash();
 
-  // Returns undefined for JSObjects, but returns the hash code for simple
-  // objects.  This avoids a double lookup in the cases where we know we will
-  // add the hash to the JSObject if it does not already exist.
-  Object* GetSimpleHash();
-
   // Returns the permanent hash code associated with this object depending on
   // the actual object type. May create and store a hash code if needed and none
   // exists.
-  static Handle<Smi> GetOrCreateHash(Isolate* isolate, Handle<Object> object);
+  static Smi* GetOrCreateHash(Isolate* isolate, Handle<Object> object);
 
   // Checks whether this object has the same value as the given one.  This
   // function is implemented according to ES5, section 9.12 and can be used
@@ -1546,10 +1551,15 @@
   // Convenience method to get current isolate.
   inline Isolate* GetIsolate() const;
 
-#define IS_TYPE_FUNCTION_DECL(type_) INLINE(bool Is##type_() const);
+#define IS_TYPE_FUNCTION_DECL(Type) INLINE(bool Is##Type() const);
   HEAP_OBJECT_TYPE_LIST(IS_TYPE_FUNCTION_DECL)
+#undef IS_TYPE_FUNCTION_DECL
+
+#define IS_TYPE_FUNCTION_DECL(Type, Value) \
+  INLINE(bool Is##Type(Isolate* isolate) const);
   ODDBALL_LIST(IS_TYPE_FUNCTION_DECL)
 #undef IS_TYPE_FUNCTION_DECL
+
 #define DECLARE_STRUCT_PREDICATE(NAME, Name, name) \
   INLINE(bool Is##Name() const);
   STRUCT_LIST(DECLARE_STRUCT_PREDICATE)
@@ -1794,10 +1804,13 @@
   ACCESSOR_SETTER
 };
 
+enum class GetKeysConversion { kKeepNumbers, kConvertToString };
 
-enum GetKeysConversion { KEEP_NUMBERS, CONVERT_TO_STRING };
-
-enum KeyCollectionType { OWN_ONLY, INCLUDE_PROTOS };
+enum class KeyCollectionMode {
+  kOwnOnly = static_cast<int>(v8::KeyCollectionMode::kOwnOnly),
+  kIncludePrototypes =
+      static_cast<int>(v8::KeyCollectionMode::kIncludePrototypes)
+};
 
 // JSReceiver includes types on which properties can be defined, i.e.,
 // JSObject and JSProxy.
@@ -1928,10 +1941,6 @@
   // Returns the class name ([[Class]] property in the specification).
   String* class_name();
 
-  // Returns the builtin string tag used in Object.prototype.toString.
-  MUST_USE_RESULT static MaybeHandle<String> BuiltinStringTag(
-      Handle<JSReceiver> object);
-
   // Returns the constructor name (the name (possibly, inferred name) of the
   // function that was used to instantiate the object).
   static Handle<String> GetConstructorName(Handle<JSReceiver> receiver);
@@ -1966,26 +1975,17 @@
 
   // Retrieves a permanent object identity hash code. The undefined value might
   // be returned in case no hash was created yet.
-  static inline Handle<Object> GetIdentityHash(Isolate* isolate,
-                                               Handle<JSReceiver> object);
+  static inline Object* GetIdentityHash(Isolate* isolate,
+                                        Handle<JSReceiver> object);
 
   // Retrieves a permanent object identity hash code. May create and store a
   // hash code if needed and none exists.
-  inline static Handle<Smi> GetOrCreateIdentityHash(
-      Handle<JSReceiver> object);
+  inline static Smi* GetOrCreateIdentityHash(Isolate* isolate,
+                                             Handle<JSReceiver> object);
 
   // ES6 [[OwnPropertyKeys]] (modulo return type)
-  MUST_USE_RESULT static MaybeHandle<FixedArray> OwnPropertyKeys(
-      Handle<JSReceiver> object) {
-    return GetKeys(object, OWN_ONLY, ALL_PROPERTIES, CONVERT_TO_STRING);
-  }
-
-  // Computes the enumerable keys for a JSObject. Used for implementing
-  // "for (n in object) { }".
-  MUST_USE_RESULT static MaybeHandle<FixedArray> GetKeys(
-      Handle<JSReceiver> object, KeyCollectionType type, PropertyFilter filter,
-      GetKeysConversion keys_conversion = KEEP_NUMBERS,
-      bool filter_proxy_keys_ = true);
+  MUST_USE_RESULT static inline MaybeHandle<FixedArray> OwnPropertyKeys(
+      Handle<JSReceiver> object);
 
   MUST_USE_RESULT static MaybeHandle<FixedArray> GetOwnValues(
       Handle<JSReceiver> object, PropertyFilter filter);
@@ -2173,6 +2173,8 @@
   static void OptimizeAsPrototype(Handle<JSObject> object,
                                   PrototypeOptimizationMode mode);
   static void ReoptimizeIfPrototype(Handle<JSObject> object);
+  static void MakePrototypesFast(Handle<Object> receiver,
+                                 WhereToStart where_to_start, Isolate* isolate);
   static void LazyRegisterPrototypeUser(Handle<Map> user, Isolate* isolate);
   static void UpdatePrototypeUserRegistration(Handle<Map> old_map,
                                               Handle<Map> new_map,
@@ -2491,10 +2493,10 @@
                                     ElementsKind kind,
                                     Object* object);
 
-  static Handle<Object> GetIdentityHash(Isolate* isolate,
-                                        Handle<JSObject> object);
+  static Object* GetIdentityHash(Isolate* isolate, Handle<JSObject> object);
 
-  static Handle<Smi> GetOrCreateIdentityHash(Handle<JSObject> object);
+  static Smi* GetOrCreateIdentityHash(Isolate* isolate,
+                                      Handle<JSObject> object);
 
   // Helper for fast versions of preventExtensions, seal, and freeze.
   // attrs is one of NONE, SEALED, or FROZEN (depending on the operation).
@@ -3152,7 +3154,7 @@
   // Tells whether k is a real key.  The hole and undefined are not allowed
   // as keys and can be used to indicate missing or deleted elements.
   inline bool IsKey(Object* k);
-  inline bool IsKey(Heap* heap, Object* k);
+  inline bool IsKey(Isolate* isolate, Object* k);
 
   // Compute the probe offset (quadratic probing).
   INLINE(static uint32_t GetProbeOffset(uint32_t n)) {
@@ -3194,6 +3196,8 @@
 template <typename Derived, typename Shape, typename Key>
 class HashTable : public HashTableBase {
  public:
+  typedef Shape ShapeT;
+
   // Wrapper methods
   inline uint32_t Hash(Key key) {
     if (Shape::UsesSeed) {
@@ -3232,10 +3236,12 @@
   void Rehash(Key key);
 
   // Returns the key at entry.
-  Object* KeyAt(int entry) { return get(EntryToIndex(entry)); }
+  Object* KeyAt(int entry) { return get(EntryToIndex(entry) + kEntryKeyIndex); }
 
   static const int kElementsStartIndex = kPrefixStartIndex + Shape::kPrefixSize;
   static const int kEntrySize = Shape::kEntrySize;
+  STATIC_ASSERT(kEntrySize > 0);
+  static const int kEntryKeyIndex = 0;
   static const int kElementsStartOffset =
       kHeaderSize + kElementsStartIndex * kPointerSize;
   static const int kCapacityOffset =
@@ -3264,7 +3270,7 @@
       PretenureFlag pretenure = NOT_TENURED);
 
   // Returns true if this table has sufficient capacity for adding n elements.
-  bool HasSufficientCapacity(int n);
+  bool HasSufficientCapacityToAdd(int number_of_additional_elements);
 
   // Sets the capacity of the hash table.
   void SetCapacity(int capacity) {
@@ -3480,6 +3486,9 @@
   static Handle<Derived> EnsureCapacity(Handle<Derived> obj, int n, Key key);
 
 #ifdef OBJECT_PRINT
+  // For our gdb macros, we should perhaps change these in the future.
+  void Print();
+
   void Print(std::ostream& os);  // NOLINT
 #endif
   // Returns the key (slow).
@@ -3547,15 +3556,16 @@
   static inline PropertyDetails DetailsAt(Dictionary* dict, int entry) {
     STATIC_ASSERT(Dictionary::kEntrySize == 3);
     DCHECK(entry >= 0);  // Not found is -1, which is not caught by get().
-    return PropertyDetails(
-        Smi::cast(dict->get(Dictionary::EntryToIndex(entry) + 2)));
+    return PropertyDetails(Smi::cast(dict->get(
+        Dictionary::EntryToIndex(entry) + Dictionary::kEntryDetailsIndex)));
   }
 
   template <typename Dictionary>
   static inline void DetailsAtPut(Dictionary* dict, int entry,
                                   PropertyDetails value) {
     STATIC_ASSERT(Dictionary::kEntrySize == 3);
-    dict->set(Dictionary::EntryToIndex(entry) + 2, value.AsSmi());
+    dict->set(Dictionary::EntryToIndex(entry) + Dictionary::kEntryDetailsIndex,
+              value.AsSmi());
   }
 
   template <typename Dictionary>
@@ -3577,6 +3587,8 @@
   static inline Handle<Object> AsHandle(Isolate* isolate, Handle<Name> key);
   static const int kPrefixSize = 2;
   static const int kEntrySize = 3;
+  static const int kEntryValueIndex = 1;
+  static const int kEntryDetailsIndex = 2;
   static const bool kIsEnumerable = true;
 };
 
@@ -3591,6 +3603,9 @@
 
   inline static Handle<FixedArray> DoGenerateNewEnumerationIndices(
       Handle<NameDictionary> dictionary);
+
+  static const int kEntryValueIndex = 1;
+  static const int kEntryDetailsIndex = 2;
 };
 
 
@@ -3618,6 +3633,8 @@
     : public NameDictionaryBase<GlobalDictionary, GlobalDictionaryShape> {
  public:
   DECLARE_CAST(GlobalDictionary)
+
+  static const int kEntryValueIndex = 1;
 };
 
 
@@ -3691,6 +3708,9 @@
   // requires_slow_elements returns false.
   inline uint32_t max_number_key();
 
+  static const int kEntryValueIndex = 1;
+  static const int kEntryDetailsIndex = 2;
+
   // Bit masks.
   static const int kRequiresSlowElementsMask = 1;
   static const int kRequiresSlowElementsTagSize = 1;
@@ -3721,6 +3741,9 @@
       Handle<UnseededNumberDictionary> dictionary,
       uint32_t key,
       Handle<Object> value);
+
+  static const int kEntryValueIndex = 1;
+  static const int kEntryDetailsIndex = 2;
 };
 
 
@@ -3872,10 +3895,10 @@
     return Smi::cast(entry)->value();
   }
 
-  int KeyToFirstEntry(Object* key) {
+  int KeyToFirstEntry(Isolate* isolate, Object* key) {
     Object* hash = key->GetHash();
     // If the object does not have an identity hash, it was never used as a key
-    if (hash->IsUndefined()) return kNotFound;
+    if (hash->IsUndefined(isolate)) return kNotFound;
     return HashToEntry(Smi::cast(hash)->value());
   }
 
@@ -3884,7 +3907,7 @@
     return Smi::cast(next_entry)->value();
   }
 
-  // use KeyAt(i)->IsTheHole() to determine if this is a deleted entry.
+  // use KeyAt(i)->IsTheHole(isolate) to determine if this is a deleted entry.
   Object* KeyAt(int entry) {
     DCHECK_LT(entry, this->UsedCapacity());
     return get(EntryToIndex(entry));
@@ -3980,6 +4003,8 @@
 
   static Handle<OrderedHashSet> Add(Handle<OrderedHashSet> table,
                                     Handle<Object> value);
+  static Handle<FixedArray> ConvertToKeysArray(Handle<OrderedHashSet> table,
+                                               GetKeysConversion convert);
 };
 
 
@@ -4452,6 +4477,10 @@
 
   inline int instruction_size();
 
+  // Returns the size of bytecode and its metadata. This includes the size of
+  // bytecode, constant pool, source position table, and handler table.
+  inline int SizeIncludingMetadata();
+
   int SourcePosition(int offset);
   int SourceStatementPosition(int offset);
 
@@ -4739,17 +4768,18 @@
  public:
   static const int kVectorIndex = 0;
   static const int kFirstLiteralIndex = 1;
-  static const int kOffsetToFirstLiteral =
-      FixedArray::kHeaderSize + kPointerSize;
+  static const int kFeedbackVectorOffset;
+  static const int kOffsetToFirstLiteral;
 
   static int OffsetOfLiteralAt(int index) {
-    return SizeFor(index + kFirstLiteralIndex);
+    return OffsetOfElementAt(index + kFirstLiteralIndex);
   }
 
   inline TypeFeedbackVector* feedback_vector() const;
   inline void set_feedback_vector(TypeFeedbackVector* vector);
   inline Object* literal(int literal_index) const;
   inline void set_literal(int literal_index, Object* literal);
+  inline void set_literal_undefined(int literal_index);
   inline int literals_count() const;
 
   static Handle<LiteralsArray> New(Isolate* isolate,
@@ -4862,6 +4892,7 @@
 
 #define IC_KIND_LIST(V) \
   V(LOAD_IC)            \
+  V(LOAD_GLOBAL_IC)     \
   V(KEYED_LOAD_IC)      \
   V(CALL_IC)            \
   V(STORE_IC)           \
@@ -4881,10 +4912,6 @@
     NUMBER_OF_KINDS
   };
 
-  // No more than 32 kinds. The value is currently encoded in five bits in
-  // Flags.
-  STATIC_ASSERT(NUMBER_OF_KINDS <= 32);
-
   static const char* Kind2String(Kind kind);
 
   static const int kPrologueOffsetNotSet = -1;
@@ -4958,7 +4985,6 @@
 
   // [flags]: Access to specific code flags.
   inline Kind kind();
-  inline InlineCacheState ic_state();  // Only valid for IC stubs.
   inline ExtraICState extra_ic_state();  // Only valid for IC stubs.
 
   // Testers for IC stub kinds.
@@ -4971,17 +4997,14 @@
   inline bool is_to_boolean_ic_stub();
   inline bool is_optimized_code();
   inline bool is_wasm_code();
-  inline bool embeds_maps_weakly();
 
   inline bool IsCodeStubOrIC();
-  inline bool IsJavaScriptCode();
 
   inline void set_raw_kind_specific_flags1(int value);
   inline void set_raw_kind_specific_flags2(int value);
 
   // Testers for interpreter builtins.
-  inline bool is_interpreter_entry_trampoline();
-  inline bool is_interpreter_enter_bytecode_dispatch();
+  inline bool is_interpreter_trampoline_builtin();
 
   // [is_crankshafted]: For kind STUB or ICs, tells whether or not a code
   // object was generated by either the hydrogen or the TurboFan optimizing
@@ -5096,18 +5119,12 @@
 
   // Flags operations.
   static inline Flags ComputeFlags(
-      Kind kind, InlineCacheState ic_state = UNINITIALIZED,
-      ExtraICState extra_ic_state = kNoExtraICState,
-      CacheHolderFlag holder = kCacheOnReceiver);
-
-  static inline Flags ComputeMonomorphicFlags(
       Kind kind, ExtraICState extra_ic_state = kNoExtraICState,
       CacheHolderFlag holder = kCacheOnReceiver);
 
   static inline Flags ComputeHandlerFlags(
       Kind handler_kind, CacheHolderFlag holder = kCacheOnReceiver);
 
-  static inline InlineCacheState ExtractICStateFromFlags(Flags flags);
   static inline CacheHolderFlag ExtractCacheHolderFromFlags(Flags flags);
   static inline Kind ExtractKindFromFlags(Flags flags);
   static inline ExtraICState ExtractExtraICStateFromFlags(Flags flags);
@@ -5126,12 +5143,60 @@
   // Returns the address right after the last instruction.
   inline byte* instruction_end();
 
-  // Returns the size of the instructions, padding, and relocation information.
+  // Returns the size of the instructions, padding, relocation and unwinding
+  // information.
   inline int body_size();
 
+  // Returns the size of code and its metadata. This includes the size of code
+  // relocation information, deoptimization data and handler table.
+  inline int SizeIncludingMetadata();
+
   // Returns the address of the first relocation info (read backwards!).
   inline byte* relocation_start();
 
+  // [has_unwinding_info]: Whether this code object has unwinding information.
+  // If it doesn't, unwinding_information_start() will point to invalid data.
+  //
+  // The body of all code objects has the following layout.
+  //
+  //  +--------------------------+  <-- instruction_start()
+  //  |       instructions       |
+  //  |           ...            |
+  //  +--------------------------+
+  //  |      relocation info     |
+  //  |           ...            |
+  //  +--------------------------+  <-- instruction_end()
+  //
+  // If has_unwinding_info() is false, instruction_end() points to the first
+  // memory location after the end of the code object. Otherwise, the body
+  // continues as follows:
+  //
+  //  +--------------------------+
+  //  |    padding to the next   |
+  //  |  8-byte aligned address  |
+  //  +--------------------------+  <-- instruction_end()
+  //  |   [unwinding_info_size]  |
+  //  |        as uint64_t       |
+  //  +--------------------------+  <-- unwinding_info_start()
+  //  |       unwinding info     |
+  //  |            ...           |
+  //  +--------------------------+  <-- unwinding_info_end()
+  //
+  // and unwinding_info_end() points to the first memory location after the end
+  // of the code object.
+  //
+  DECL_BOOLEAN_ACCESSORS(has_unwinding_info)
+
+  // [unwinding_info_size]: Size of the unwinding information.
+  inline int unwinding_info_size() const;
+  inline void set_unwinding_info_size(int value);
+
+  // Returns the address of the unwinding information, if any.
+  inline byte* unwinding_info_start();
+
+  // Returns the address right after the end of the unwinding information.
+  inline byte* unwinding_info_end();
+
   // Code entry point.
   inline byte* entry();
 
@@ -5262,6 +5327,8 @@
   static const int kHeaderSize =
       (kHeaderPaddingStart + kCodeAlignmentMask) & ~kCodeAlignmentMask;
 
+  inline int GetUnwindingInfoSizeOffset() const;
+
   class BodyDescriptor;
 
   // Byte offsets within kKindSpecificFlags1Offset.
@@ -5275,12 +5342,16 @@
   class ProfilerTicksField : public BitField<int, 4, 28> {};
 
   // Flags layout.  BitField<type, shift, size>.
-  class ICStateField : public BitField<InlineCacheState, 0, 3> {};
-  class CacheHolderField : public BitField<CacheHolderFlag, 3, 2> {};
-  class KindField : public BitField<Kind, 5, 5> {};
-  class ExtraICStateField
-      : public BitField<ExtraICState, 10, PlatformSmiTagging::kSmiValueSize -
-                                              10 + 1> {};  // NOLINT
+  class ICStateField : public BitField<InlineCacheState, 0, 2> {};
+  class HasUnwindingInfoField : public BitField<bool, ICStateField::kNext, 1> {
+  };
+  class CacheHolderField
+      : public BitField<CacheHolderFlag, HasUnwindingInfoField::kNext, 2> {};
+  class KindField : public BitField<Kind, CacheHolderField::kNext, 5> {};
+  STATIC_ASSERT(NUMBER_OF_KINDS <= KindField::kMax);
+  class ExtraICStateField : public BitField<ExtraICState, KindField::kNext,
+                                            PlatformSmiTagging::kSmiValueSize -
+                                                KindField::kNext + 1> {};
 
   // KindSpecificFlags1 layout (STUB, BUILTIN and OPTIMIZED_FUNCTION)
   static const int kStackSlotsFirstBit = 0;
@@ -5360,8 +5431,11 @@
     CODE_KIND_LIST(DEFINE_CODE_KIND_ENUM)
 #undef DEFINE_CODE_KIND_ENUM
         INTERPRETED_FUNCTION,
+    NUMBER_OF_KINDS
   };
 
+  static const char* Kind2String(Kind kind);
+
   int SourcePosition(int offset);
   int SourceStatementPosition(int offset);
 
@@ -5371,9 +5445,12 @@
   // Returns the address right after the last instruction.
   inline Address instruction_end();
 
-  // Returns the of the code instructions.
+  // Returns the size of the code instructions.
   inline int instruction_size();
 
+  // Returns the size of instructions and the metadata.
+  inline int SizeIncludingMetadata();
+
   // Returns true if pc is inside this object's instructions.
   inline bool contains(byte* pc);
 
@@ -5701,6 +5778,7 @@
   inline bool has_fast_double_elements();
   inline bool has_fast_elements();
   inline bool has_sloppy_arguments_elements();
+  inline bool has_fast_sloppy_arguments_elements();
   inline bool has_fast_string_wrapper_elements();
   inline bool has_fixed_typed_array_elements();
   inline bool has_dictionary_elements();
@@ -5729,6 +5807,9 @@
       Handle<JSObject> prototype, Isolate* isolate);
   static Handle<PrototypeInfo> GetOrCreatePrototypeInfo(
       Handle<Map> prototype_map, Isolate* isolate);
+  inline bool should_be_fast_prototype_map() const;
+  static void SetShouldBeFastPrototypeMap(Handle<Map> map, bool value,
+                                          Isolate* isolate);
 
   // [prototype chain validity cell]: Associated with a prototype object,
   // stored in that object's map's PrototypeInfo, indicates that prototype
@@ -5831,7 +5912,7 @@
                                     LayoutDescriptor* layout_descriptor);
 
   // [stub cache]: contains stubs compiled for this map.
-  DECL_ACCESSORS(code_cache, Object)
+  DECL_ACCESSORS(code_cache, FixedArray)
 
   // [dependent code]: list of optimized codes that weakly embed this map.
   DECL_ACCESSORS(dependent_code, DependentCode)
@@ -6285,6 +6366,13 @@
   // [prototype_users]: WeakFixedArray containing maps using this prototype,
   // or Smi(0) if uninitialized.
   DECL_ACCESSORS(prototype_users, Object)
+
+  // [object_create_map]: A field caching the map for Object.create(prototype).
+  static inline void SetObjectCreateMap(Handle<PrototypeInfo> info,
+                                        Handle<Map> map);
+  inline Map* ObjectCreateMap();
+  inline bool HasObjectCreateMap();
+
   // [registry_slot]: Slot in prototype's user registry where this user
   // is stored. Returns UNREGISTERED if this prototype has not been registered.
   inline int registry_slot() const;
@@ -6296,6 +6384,11 @@
   // given receiver embed the currently valid cell for that receiver's prototype
   // during their compilation and check it on execution.
   DECL_ACCESSORS(validity_cell, Object)
+  // [bit_field]
+  inline int bit_field() const;
+  inline void set_bit_field(int bit_field);
+
+  DECL_BOOLEAN_ACCESSORS(should_be_fast_map)
 
   DECLARE_CAST(PrototypeInfo)
 
@@ -6306,10 +6399,16 @@
   static const int kPrototypeUsersOffset = HeapObject::kHeaderSize;
   static const int kRegistrySlotOffset = kPrototypeUsersOffset + kPointerSize;
   static const int kValidityCellOffset = kRegistrySlotOffset + kPointerSize;
-  static const int kConstructorNameOffset = kValidityCellOffset + kPointerSize;
-  static const int kSize = kConstructorNameOffset + kPointerSize;
+  static const int kObjectCreateMap = kValidityCellOffset + kPointerSize;
+  static const int kBitFieldOffset = kObjectCreateMap + kPointerSize;
+  static const int kSize = kBitFieldOffset + kPointerSize;
+
+  // Bit field usage.
+  static const int kShouldBeFastBit = 0;
 
  private:
+  DECL_ACCESSORS(object_create_map, Object)
+
   DISALLOW_IMPLICIT_CONSTRUCTORS(PrototypeInfo);
 };
 
@@ -6439,14 +6538,6 @@
   // resource is accessible. Otherwise, always return true.
   inline bool HasValidSource();
 
-  // Convert code offset into column number.
-  static int GetColumnNumber(Handle<Script> script, int code_offset);
-
-  // Convert code offset into (zero-based) line number.
-  // The non-handlified version does not allocate, but may be much slower.
-  static int GetLineNumber(Handle<Script> script, int code_offset);
-  int GetLineNumber(int code_pos);
-
   static Handle<Object> GetNameOrSourceURL(Handle<Script> script);
 
   // Set eval origin for stack trace formatting.
@@ -6459,6 +6550,33 @@
   // Init line_ends array with source code positions of line ends.
   static void InitLineEnds(Handle<Script> script);
 
+  // Convert code offset into column number.
+  static int GetColumnNumber(Handle<Script> script, int code_offset);
+
+  // Convert code offset into (zero-based) line number.
+  // The non-handlified version does not allocate, but may be much slower.
+  static int GetLineNumber(Handle<Script> script, int code_offset);
+  int GetLineNumber(int code_pos);
+
+  // Carries information about a source position.
+  struct PositionInfo {
+    PositionInfo() : line(-1), column(-1), line_start(-1), line_end(-1) {}
+
+    int line;        // Zero-based line number.
+    int column;      // Zero-based column number.
+    int line_start;  // Position of first character in line.
+    int line_end;    // Position of last (non-linebreak) character in line.
+  };
+
+  // Specifies whether to add offsets to position infos.
+  enum OffsetFlag { NO_OFFSET = 0, WITH_OFFSET = 1 };
+
+  // Retrieves information about the given position, optionally with an offset.
+  // Returns false on failure, and otherwise writes into the given info object
+  // on success.
+  bool GetPositionInfo(int position, PositionInfo* info,
+                       OffsetFlag offset_flag);
+
   // Get the JS object wrapping the given script; create it if none exists.
   static Handle<JSObject> GetWrapper(Handle<Script> script);
 
@@ -6546,7 +6664,12 @@
   V(Math, ceil, MathCeil)                                   \
   V(Math, abs, MathAbs)                                     \
   V(Math, log, MathLog)                                     \
+  V(Math, log1p, MathLog1p)                                 \
+  V(Math, log2, MathLog2)                                   \
+  V(Math, log10, MathLog10)                                 \
+  V(Math, cbrt, MathCbrt)                                   \
   V(Math, exp, MathExp)                                     \
+  V(Math, expm1, MathExpm1)                                 \
   V(Math, sqrt, MathSqrt)                                   \
   V(Math, pow, MathPow)                                     \
   V(Math, max, MathMax)                                     \
@@ -6558,6 +6681,7 @@
   V(Math, asin, MathAsin)                                   \
   V(Math, atan, MathAtan)                                   \
   V(Math, atan2, MathAtan2)                                 \
+  V(Math, atanh, MathAtanh)                                 \
   V(Math, imul, MathImul)                                   \
   V(Math, clz32, MathClz32)                                 \
   V(Math, fround, MathFround)                               \
@@ -6576,7 +6700,14 @@
 #undef DECLARE_FUNCTION_ID
   // Fake id for a special case of Math.pow. Note, it continues the
   // list of math functions.
-  kMathPowHalf
+  kMathPowHalf,
+  // These are manually assigned to special getters during bootstrapping.
+  kDataViewBuffer,
+  kDataViewByteLength,
+  kDataViewByteOffset,
+  kTypedArrayByteLength,
+  kTypedArrayByteOffset,
+  kTypedArrayLength,
 };
 
 
@@ -6618,6 +6749,9 @@
   // Clear optimized code map.
   void ClearOptimizedCodeMap();
 
+  // Like ClearOptimizedCodeMap, but preserves literals.
+  void ClearCodeFromOptimizedCodeMap();
+
   // We have a special root FixedArray with the right shape and values
   // to represent the cleared optimized code map. This predicate checks
   // if that root is installed.
@@ -6631,6 +6765,9 @@
   // Trims the optimized code map after entries have been removed.
   void TrimOptimizedCodeMap(int shrink_by);
 
+  static Handle<LiteralsArray> FindOrCreateLiterals(
+      Handle<SharedFunctionInfo> shared, Handle<Context> native_context);
+
   // Add or update entry in the optimized code map for context-independent code.
   static void AddSharedCodeToOptimizedCodeMap(Handle<SharedFunctionInfo> shared,
                                               Handle<Code> code);
@@ -6700,16 +6837,10 @@
   inline int expected_nof_properties() const;
   inline void set_expected_nof_properties(int value);
 
-  // [feedback_vector] - accumulates ast node feedback from full-codegen and
+  // [feedback_metadata] - describes ast node feedback from full-codegen and
   // (increasingly) from crankshafted code where sufficient feedback isn't
   // available.
-  DECL_ACCESSORS(feedback_vector, TypeFeedbackVector)
-
-  // Unconditionally clear the type feedback vector (including vector ICs).
-  void ClearTypeFeedbackInfo();
-
-  // Clear the type feedback vector with a more subtle policy at GC time.
-  void ClearTypeFeedbackInfoAtGCTime();
+  DECL_ACCESSORS(feedback_metadata, TypeFeedbackMetadata)
 
 #if TRACE_MAPS
   // [unique_id] - For --trace-maps purposes, an identifier that's persistent
@@ -7028,15 +7159,15 @@
   static const int kScriptOffset = kFunctionDataOffset + kPointerSize;
   static const int kDebugInfoOffset = kScriptOffset + kPointerSize;
   static const int kFunctionIdentifierOffset = kDebugInfoOffset + kPointerSize;
-  static const int kFeedbackVectorOffset =
+  static const int kFeedbackMetadataOffset =
       kFunctionIdentifierOffset + kPointerSize;
 #if TRACE_MAPS
-  static const int kUniqueIdOffset = kFeedbackVectorOffset + kPointerSize;
+  static const int kUniqueIdOffset = kFeedbackMetadataOffset + kPointerSize;
   static const int kLastPointerFieldOffset = kUniqueIdOffset;
 #else
   // Just to not break the postmortrem support with conditional offsets
-  static const int kUniqueIdOffset = kFeedbackVectorOffset;
-  static const int kLastPointerFieldOffset = kFeedbackVectorOffset;
+  static const int kUniqueIdOffset = kFeedbackMetadataOffset;
+  static const int kLastPointerFieldOffset = kFeedbackMetadataOffset;
 #endif
 
 #if V8_HOST_ARCH_32_BIT
@@ -7308,23 +7439,32 @@
   // [receiver]: The receiver of the suspended computation.
   DECL_ACCESSORS(receiver, Object)
 
-  // [input]: The most recent input value.
-  DECL_ACCESSORS(input, Object)
+  // [input_or_debug_pos]
+  // For executing generators: the most recent input value.
+  // For suspended new-style generators: debug information (bytecode offset).
+  // For suspended old-style generators: unused.
+  // There is currently no need to remember the most recent input value for a
+  // suspended generator.
+  DECL_ACCESSORS(input_or_debug_pos, Object)
 
   // [resume_mode]: The most recent resume mode.
   enum ResumeMode { kNext, kReturn, kThrow };
   DECL_INT_ACCESSORS(resume_mode)
 
-  // [continuation]: Offset into code of continuation.
+  // [continuation]
   //
-  // A positive offset indicates a suspended generator.  The special
+  // A positive value indicates a suspended generator.  The special
   // kGeneratorExecuting and kGeneratorClosed values indicate that a generator
   // cannot be resumed.
   inline int continuation() const;
   inline void set_continuation(int continuation);
-  inline bool is_closed();
-  inline bool is_executing();
-  inline bool is_suspended();
+  inline bool is_closed() const;
+  inline bool is_executing() const;
+  inline bool is_suspended() const;
+
+  // For suspended generators: the source position at which the generator
+  // is suspended.
+  int source_position() const;
 
   // [operand_stack]: Saved operand stack.
   DECL_ACCESSORS(operand_stack, FixedArray)
@@ -7342,8 +7482,8 @@
   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 kResumeModeOffset = kInputOffset + kPointerSize;
+  static const int kInputOrDebugPosOffset = kReceiverOffset + kPointerSize;
+  static const int kResumeModeOffset = kInputOrDebugPosOffset + kPointerSize;
   static const int kContinuationOffset = kResumeModeOffset + kPointerSize;
   static const int kOperandStackOffset = kContinuationOffset + kPointerSize;
   static const int kSize = kOperandStackOffset + kPointerSize;
@@ -7428,6 +7568,9 @@
   // can be shared by instances.
   DECL_ACCESSORS(shared, SharedFunctionInfo)
 
+  static const int kLengthDescriptorIndex = 0;
+  static const int kNameDescriptorIndex = 1;
+
   // [context]: The context for this function.
   inline Context* context();
   inline void set_context(Object* context);
@@ -7486,6 +7629,15 @@
   // access to.
   DECL_ACCESSORS(literals, LiteralsArray)
 
+  static void EnsureLiterals(Handle<JSFunction> function);
+  inline TypeFeedbackVector* feedback_vector();
+
+  // Unconditionally clear the type feedback vector (including vector ICs).
+  void ClearTypeFeedbackInfo();
+
+  // Clear the type feedback vector with a more subtle policy at GC time.
+  void ClearTypeFeedbackInfoAtGCTime();
+
   // The initial map for an object created by this constructor.
   inline Map* initial_map();
   static void SetInitialMap(Handle<JSFunction> function, Handle<Map> map,
@@ -7569,9 +7721,6 @@
   DECLARE_PRINTER(JSFunction)
   DECLARE_VERIFIER(JSFunction)
 
-  // Returns the number of allocated literals.
-  inline int NumberOfLiterals();
-
   // The function's name if it is configured, otherwise shared function info
   // debug name.
   static Handle<String> GetName(Handle<JSFunction> function);
@@ -7876,7 +8025,6 @@
   // NOT_COMPILED: Initial value. No data has been stored in the JSRegExp yet.
   // ATOM: A simple string to match against using an indexOf operation.
   // IRREGEXP: Compiled with Irregexp.
-  // IRREGEXP_NATIVE: Compiled to native code with Irregexp.
   enum Type { NOT_COMPILED, ATOM, IRREGEXP };
   enum Flag {
     kNone = 0,
@@ -7969,8 +8117,11 @@
   static const int kIrregexpMaxRegisterCountIndex = kDataIndex + 4;
   // Number of captures in the compiled regexp.
   static const int kIrregexpCaptureCountIndex = kDataIndex + 5;
+  // Maps names of named capture groups (at indices 2i) to their corresponding
+  // capture group indices (at indices 2i + 1).
+  static const int kIrregexpCaptureNameMapIndex = kDataIndex + 6;
 
-  static const int kIrregexpDataSize = kIrregexpCaptureCountIndex + 1;
+  static const int kIrregexpDataSize = kIrregexpCaptureNameMapIndex + 1;
 
   // Offsets directly into the data fixed array.
   static const int kDataTagOffset =
@@ -8105,9 +8256,6 @@
 
   DECLARE_CAST(CodeCacheHashTable)
 
-  // Initial size of the fixed array backing the hash table.
-  static const int kInitialSize = 16;
-
  private:
   DISALLOW_IMPLICIT_CONSTRUCTORS(CodeCacheHashTable);
 };
@@ -8498,6 +8646,8 @@
   // Return a string version of this name that is converted according to the
   // rules described in ES6 section 9.2.11.
   MUST_USE_RESULT static MaybeHandle<String> ToFunctionName(Handle<Name> name);
+  MUST_USE_RESULT static MaybeHandle<String> ToFunctionName(
+      Handle<Name> name, Handle<String> prefix);
 
   DECLARE_CAST(Name)
 
@@ -8535,6 +8685,10 @@
   // Array index strings this short can keep their index in the hash field.
   static const int kMaxCachedArrayIndexLength = 7;
 
+  // Maximum number of characters to consider when trying to convert a string
+  // value into an array index.
+  static const int kMaxArrayIndexSize = 10;
+
   // For strings which are array indexes the hash value has the string length
   // mixed into the hash, mainly to avoid a hash value of zero which would be
   // the case for the string '0'. 24 bits are used for the array index value.
@@ -8542,7 +8696,8 @@
   static const int kArrayIndexLengthBits =
       kBitsPerInt - kArrayIndexValueBits - kNofHashBitFields;
 
-  STATIC_ASSERT((kArrayIndexLengthBits > 0));
+  STATIC_ASSERT(kArrayIndexLengthBits > 0);
+  STATIC_ASSERT(kMaxArrayIndexSize < (1 << kArrayIndexLengthBits));
 
   class ArrayIndexValueBits : public BitField<unsigned int, kNofHashBitFields,
       kArrayIndexValueBits> {};  // NOLINT
@@ -8632,34 +8787,6 @@
  public:
   enum Encoding { ONE_BYTE_ENCODING, TWO_BYTE_ENCODING };
 
-  // Array index strings this short can keep their index in the hash field.
-  static const int kMaxCachedArrayIndexLength = 7;
-
-  // For strings which are array indexes the hash value has the string length
-  // mixed into the hash, mainly to avoid a hash value of zero which would be
-  // the case for the string '0'. 24 bits are used for the array index value.
-  static const int kArrayIndexValueBits = 24;
-  static const int kArrayIndexLengthBits =
-      kBitsPerInt - kArrayIndexValueBits - kNofHashBitFields;
-
-  STATIC_ASSERT((kArrayIndexLengthBits > 0));
-
-  class ArrayIndexValueBits : public BitField<unsigned int, kNofHashBitFields,
-      kArrayIndexValueBits> {};  // NOLINT
-  class ArrayIndexLengthBits : public BitField<unsigned int,
-      kNofHashBitFields + kArrayIndexValueBits,
-      kArrayIndexLengthBits> {};  // NOLINT
-
-  // Check that kMaxCachedArrayIndexLength + 1 is a power of two so we
-  // could use a mask to test if the length of string is less than or equal to
-  // kMaxCachedArrayIndexLength.
-  STATIC_ASSERT(IS_POWER_OF_TWO(kMaxCachedArrayIndexLength + 1));
-
-  static const unsigned int kContainsCachedArrayIndexMask =
-      (~static_cast<unsigned>(kMaxCachedArrayIndexLength)
-       << ArrayIndexLengthBits::kShift) |
-      kIsNotArrayIndexMask;
-
   class SubStringRange {
    public:
     explicit inline SubStringRange(String* string, int first = 0,
@@ -8845,6 +8972,10 @@
   // Conversion.
   inline bool AsArrayIndex(uint32_t* index);
 
+  // Trimming.
+  enum TrimMode { kTrim, kTrimLeft, kTrimRight };
+  static Handle<String> Trim(Handle<String> string, TrimMode mode);
+
   DECLARE_CAST(String)
 
   void PrintOn(FILE* out);
@@ -8853,7 +8984,7 @@
   bool LooksValid();
 
   // Dispatched behavior.
-  void StringShortPrint(StringStream* accumulator);
+  void StringShortPrint(StringStream* accumulator, bool show_details = true);
   void PrintUC16(std::ostream& os, int start = 0, int end = -1);  // NOLINT
 #if defined(DEBUG) || defined(OBJECT_PRINT)
   char* ToAsciiArray();
@@ -8867,11 +8998,6 @@
   static const int kLengthOffset = Name::kSize;
   static const int kSize = kLengthOffset + kPointerSize;
 
-  // Maximum number of characters to consider when trying to convert a string
-  // value into an array index.
-  static const int kMaxArrayIndexSize = 10;
-  STATIC_ASSERT(kMaxArrayIndexSize < (1 << kArrayIndexLengthBits));
-
   // Max char codes.
   static const int32_t kMaxOneByteCharCode = unibrow::Latin1::kMaxChar;
   static const uint32_t kMaxOneByteCharCodeU = unibrow::Latin1::kMaxChar;
@@ -9686,10 +9812,9 @@
   typedef FixedBodyDescriptor<JSReceiver::kPropertiesOffset, kSize, kSize>
       BodyDescriptor;
 
-  static Handle<Object> GetIdentityHash(Isolate* isolate,
-                                        Handle<JSProxy> receiver);
+  static Object* GetIdentityHash(Handle<JSProxy> receiver);
 
-  static Handle<Smi> GetOrCreateIdentityHash(Handle<JSProxy> proxy);
+  static Smi* GetOrCreateIdentityHash(Isolate* isolate, Handle<JSProxy> proxy);
 
   static Maybe<bool> SetPrivateProperty(Isolate* isolate, Handle<JSProxy> proxy,
                                         Handle<Symbol> private_name,
@@ -10344,9 +10469,9 @@
 
 class AccessCheckInfo: public Struct {
  public:
-  DECL_ACCESSORS(named_callback, Object)
-  DECL_ACCESSORS(indexed_callback, Object)
   DECL_ACCESSORS(callback, Object)
+  DECL_ACCESSORS(named_interceptor, Object)
+  DECL_ACCESSORS(indexed_interceptor, Object)
   DECL_ACCESSORS(data, Object)
 
   DECLARE_CAST(AccessCheckInfo)
@@ -10355,10 +10480,13 @@
   DECLARE_PRINTER(AccessCheckInfo)
   DECLARE_VERIFIER(AccessCheckInfo)
 
-  static const int kNamedCallbackOffset   = HeapObject::kHeaderSize;
-  static const int kIndexedCallbackOffset = kNamedCallbackOffset + kPointerSize;
-  static const int kCallbackOffset = kIndexedCallbackOffset + kPointerSize;
-  static const int kDataOffset = kCallbackOffset + kPointerSize;
+  static AccessCheckInfo* Get(Isolate* isolate, Handle<JSObject> receiver);
+
+  static const int kCallbackOffset = HeapObject::kHeaderSize;
+  static const int kNamedInterceptorOffset = kCallbackOffset + kPointerSize;
+  static const int kIndexedInterceptorOffset =
+      kNamedInterceptorOffset + kPointerSize;
+  static const int kDataOffset = kIndexedInterceptorOffset + kPointerSize;
   static const int kSize = kDataOffset + kPointerSize;
 
  private:
@@ -10464,6 +10592,7 @@
   DECL_ACCESSORS(signature, Object)
   DECL_ACCESSORS(instance_call_handler, Object)
   DECL_ACCESSORS(access_check_info, Object)
+  DECL_ACCESSORS(shared_function_info, Object)
   DECL_INT_ACCESSORS(flag)
 
   inline int length() const;
@@ -10478,7 +10607,6 @@
   DECL_BOOLEAN_ACCESSORS(read_only_prototype)
   DECL_BOOLEAN_ACCESSORS(remove_prototype)
   DECL_BOOLEAN_ACCESSORS(do_not_cache)
-  DECL_BOOLEAN_ACCESSORS(instantiated)
   DECL_BOOLEAN_ACCESSORS(accept_any_receiver)
 
   DECLARE_CAST(FunctionTemplateInfo)
@@ -10503,17 +10631,18 @@
   static const int kInstanceCallHandlerOffset = kSignatureOffset + kPointerSize;
   static const int kAccessCheckInfoOffset =
       kInstanceCallHandlerOffset + kPointerSize;
-  static const int kFlagOffset = kAccessCheckInfoOffset + kPointerSize;
+  static const int kSharedFunctionInfoOffset =
+      kAccessCheckInfoOffset + kPointerSize;
+  static const int kFlagOffset = kSharedFunctionInfoOffset + kPointerSize;
   static const int kLengthOffset = kFlagOffset + kPointerSize;
   static const int kSize = kLengthOffset + kPointerSize;
 
+  static Handle<SharedFunctionInfo> GetOrCreateSharedFunctionInfo(
+      Isolate* isolate, Handle<FunctionTemplateInfo> info);
   // Returns true if |object| is an instance of this function template.
-  bool IsTemplateFor(Object* object);
+  inline bool IsTemplateFor(JSObject* object);
   bool IsTemplateFor(Map* map);
-
-  // Returns the holder JSObject if the function can legally be called with this
-  // receiver.  Returns Heap::null_value() if the call is illegal.
-  Object* GetCompatibleReceiver(Isolate* isolate, Object* receiver);
+  inline bool instantiated();
 
  private:
   // Bit position in the flag, from least significant bit position.
@@ -10523,8 +10652,7 @@
   static const int kReadOnlyPrototypeBit = 3;
   static const int kRemovePrototypeBit   = 4;
   static const int kDoNotCacheBit        = 5;
-  static const int kInstantiatedBit      = 6;
-  static const int kAcceptAnyReceiver = 7;
+  static const int kAcceptAnyReceiver = 6;
 
   DISALLOW_IMPLICIT_CONSTRUCTORS(FunctionTemplateInfo);
 };
diff --git a/src/optimizing-compile-dispatcher.cc b/src/optimizing-compile-dispatcher.cc
index 7077339..c3ec835 100644
--- a/src/optimizing-compile-dispatcher.cc
+++ b/src/optimizing-compile-dispatcher.cc
@@ -19,6 +19,10 @@
   if (restore_function_code) {
     Handle<JSFunction> function = job->info()->closure();
     function->ReplaceCode(function->shared()->code());
+    // TODO(mvstanton): We can't call ensureliterals here due to allocation,
+    // but we probably shouldn't call ReplaceCode either, as this
+    // sometimes runs on the worker thread!
+    // JSFunction::EnsureLiterals(function);
   }
   delete job;
 }
diff --git a/src/ostreams.cc b/src/ostreams.cc
index 120db25..45f41bb 100644
--- a/src/ostreams.cc
+++ b/src/ostreams.cc
@@ -97,5 +97,11 @@
   return PrintUC32(os, c.value, IsPrint);
 }
 
+std::ostream& operator<<(std::ostream& os, const AsHex& hex) {
+  char buf[20];
+  snprintf(buf, sizeof(buf), "%.*" PRIx64, hex.min_width, hex.value);
+  return os << buf;
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/src/ostreams.h b/src/ostreams.h
index 1c2f38a..977b5c6 100644
--- a/src/ostreams.h
+++ b/src/ostreams.h
@@ -66,6 +66,12 @@
   uint16_t value;
 };
 
+struct AsHex {
+  explicit AsHex(uint64_t v, uint8_t min_width = 0)
+      : value(v), min_width(min_width) {}
+  uint64_t value;
+  uint8_t min_width;
+};
 
 // Writes the given character to the output escaping everything outside of
 // printable/space ASCII range. Additionally escapes '\' making escaping
@@ -83,6 +89,9 @@
 // of printable ASCII range.
 std::ostream& operator<<(std::ostream& os, const AsUC32& c);
 
+// Writes the given number to the output in hexadecimal notation.
+std::ostream& operator<<(std::ostream& os, const AsHex& v);
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/parsing/OWNERS b/src/parsing/OWNERS
index a5daeb3..44cc4ed 100644
--- a/src/parsing/OWNERS
+++ b/src/parsing/OWNERS
@@ -4,4 +4,4 @@
 littledan@chromium.org
 marja@chromium.org
 rossberg@chromium.org
-
+vogelheim@chromium.org
diff --git a/src/parsing/expression-classifier.h b/src/parsing/expression-classifier.h
index 3f70ed8..8e13d0e 100644
--- a/src/parsing/expression-classifier.h
+++ b/src/parsing/expression-classifier.h
@@ -13,35 +13,55 @@
 namespace internal {
 
 
+#define ERROR_CODES(T)                          \
+  T(ExpressionProduction, 0)                    \
+  T(FormalParameterInitializerProduction, 1)    \
+  T(BindingPatternProduction, 2)                \
+  T(AssignmentPatternProduction, 3)             \
+  T(DistinctFormalParametersProduction, 4)      \
+  T(StrictModeFormalParametersProduction, 5)    \
+  T(ArrowFormalParametersProduction, 6)         \
+  T(LetPatternProduction, 7)                    \
+  T(CoverInitializedNameProduction, 8)          \
+  T(TailCallExpressionProduction, 9)            \
+  T(AsyncArrowFormalParametersProduction, 10)   \
+  T(AsyncBindingPatternProduction, 11)
+
+
 template <typename Traits>
 class ExpressionClassifier {
  public:
+  enum ErrorKind : unsigned {
+#define DEFINE_ERROR_KIND(NAME, CODE) k##NAME = CODE,
+    ERROR_CODES(DEFINE_ERROR_KIND)
+#undef DEFINE_ERROR_KIND
+    kUnusedError = 15  // Larger than error codes; should fit in 4 bits
+  };
+
   struct Error {
-    Error()
+    V8_INLINE Error()
         : location(Scanner::Location::invalid()),
           message(MessageTemplate::kNone),
+          kind(kUnusedError),
           type(kSyntaxError),
           arg(nullptr) {}
+    V8_INLINE explicit Error(Scanner::Location loc,
+                             MessageTemplate::Template msg, ErrorKind k,
+                             const char* a = nullptr,
+                             ParseErrorType t = kSyntaxError)
+        : location(loc), message(msg), kind(k), type(t), arg(a) {}
 
     Scanner::Location location;
-    MessageTemplate::Template message : 30;
+    MessageTemplate::Template message : 26;
+    unsigned kind : 4;
     ParseErrorType type : 2;
     const char* arg;
   };
 
-  enum TargetProduction {
-    ExpressionProduction = 1 << 0,
-    FormalParameterInitializerProduction = 1 << 1,
-    BindingPatternProduction = 1 << 2,
-    AssignmentPatternProduction = 1 << 3,
-    DistinctFormalParametersProduction = 1 << 4,
-    StrictModeFormalParametersProduction = 1 << 5,
-    ArrowFormalParametersProduction = 1 << 6,
-    LetPatternProduction = 1 << 7,
-    CoverInitializedNameProduction = 1 << 8,
-    TailCallExpressionProduction = 1 << 9,
-    AsyncArrowFormalParametersProduction = 1 << 10,
-    AsyncBindingPatternProduction = 1 << 11,
+  enum TargetProduction : unsigned {
+#define DEFINE_PRODUCTION(NAME, CODE) NAME = 1 << CODE,
+    ERROR_CODES(DEFINE_PRODUCTION)
+#undef DEFINE_PRODUCTION
 
     ExpressionProductions =
         (ExpressionProduction | FormalParameterInitializerProduction |
@@ -58,63 +78,75 @@
          AsyncArrowFormalParametersProduction | AsyncBindingPatternProduction)
   };
 
-  enum FunctionProperties { NonSimpleParameter = 1 << 0 };
+  enum FunctionProperties : unsigned {
+    NonSimpleParameter = 1 << 0
+  };
 
   explicit ExpressionClassifier(const Traits* t)
       : zone_(t->zone()),
         non_patterns_to_rewrite_(t->GetNonPatternList()),
+        reported_errors_(t->GetReportedErrorList()),
+        duplicate_finder_(nullptr),
         invalid_productions_(0),
-        function_properties_(0),
-        duplicate_finder_(nullptr) {
+        function_properties_(0) {
+    reported_errors_begin_ = reported_errors_end_ = reported_errors_->length();
     non_pattern_begin_ = non_patterns_to_rewrite_->length();
   }
 
   ExpressionClassifier(const Traits* t, DuplicateFinder* duplicate_finder)
       : zone_(t->zone()),
         non_patterns_to_rewrite_(t->GetNonPatternList()),
+        reported_errors_(t->GetReportedErrorList()),
+        duplicate_finder_(duplicate_finder),
         invalid_productions_(0),
-        function_properties_(0),
-        duplicate_finder_(duplicate_finder) {
+        function_properties_(0) {
+    reported_errors_begin_ = reported_errors_end_ = reported_errors_->length();
     non_pattern_begin_ = non_patterns_to_rewrite_->length();
   }
 
   ~ExpressionClassifier() { Discard(); }
 
-  bool is_valid(unsigned productions) const {
+  V8_INLINE bool is_valid(unsigned productions) const {
     return (invalid_productions_ & productions) == 0;
   }
 
-  DuplicateFinder* duplicate_finder() const { return duplicate_finder_; }
+  V8_INLINE DuplicateFinder* duplicate_finder() const {
+    return duplicate_finder_;
+  }
 
-  bool is_valid_expression() const { return is_valid(ExpressionProduction); }
+  V8_INLINE bool is_valid_expression() const {
+    return is_valid(ExpressionProduction);
+  }
 
-  bool is_valid_formal_parameter_initializer() const {
+  V8_INLINE bool is_valid_formal_parameter_initializer() const {
     return is_valid(FormalParameterInitializerProduction);
   }
 
-  bool is_valid_binding_pattern() const {
+  V8_INLINE bool is_valid_binding_pattern() const {
     return is_valid(BindingPatternProduction);
   }
 
-  bool is_valid_assignment_pattern() const {
+  V8_INLINE bool is_valid_assignment_pattern() const {
     return is_valid(AssignmentPatternProduction);
   }
 
-  bool is_valid_arrow_formal_parameters() const {
+  V8_INLINE bool is_valid_arrow_formal_parameters() const {
     return is_valid(ArrowFormalParametersProduction);
   }
 
-  bool is_valid_formal_parameter_list_without_duplicates() const {
+  V8_INLINE bool is_valid_formal_parameter_list_without_duplicates() const {
     return is_valid(DistinctFormalParametersProduction);
   }
 
   // Note: callers should also check
   // is_valid_formal_parameter_list_without_duplicates().
-  bool is_valid_strict_mode_formal_parameters() const {
+  V8_INLINE bool is_valid_strict_mode_formal_parameters() const {
     return is_valid(StrictModeFormalParametersProduction);
   }
 
-  bool is_valid_let_pattern() const { return is_valid(LetPatternProduction); }
+  V8_INLINE bool is_valid_let_pattern() const {
+    return is_valid(LetPatternProduction);
+  }
 
   bool is_valid_async_arrow_formal_parameters() const {
     return is_valid(AsyncArrowFormalParametersProduction);
@@ -124,58 +156,65 @@
     return is_valid(AsyncBindingPatternProduction);
   }
 
-  const Error& expression_error() const { return expression_error_; }
-
-  const Error& formal_parameter_initializer_error() const {
-    return formal_parameter_initializer_error_;
+  V8_INLINE const Error& expression_error() const {
+    return reported_error(kExpressionProduction);
   }
 
-  const Error& binding_pattern_error() const { return binding_pattern_error_; }
-
-  const Error& assignment_pattern_error() const {
-    return assignment_pattern_error_;
+  V8_INLINE const Error& formal_parameter_initializer_error() const {
+    return reported_error(kFormalParameterInitializerProduction);
   }
 
-  const Error& arrow_formal_parameters_error() const {
-    return arrow_formal_parameters_error_;
+  V8_INLINE const Error& binding_pattern_error() const {
+    return reported_error(kBindingPatternProduction);
   }
 
-  const Error& duplicate_formal_parameter_error() const {
-    return duplicate_formal_parameter_error_;
+  V8_INLINE const Error& assignment_pattern_error() const {
+    return reported_error(kAssignmentPatternProduction);
   }
 
-  const Error& strict_mode_formal_parameter_error() const {
-    return strict_mode_formal_parameter_error_;
+  V8_INLINE const Error& arrow_formal_parameters_error() const {
+    return reported_error(kArrowFormalParametersProduction);
   }
 
-  const Error& let_pattern_error() const { return let_pattern_error_; }
+  V8_INLINE const Error& duplicate_formal_parameter_error() const {
+    return reported_error(kDistinctFormalParametersProduction);
+  }
 
-  bool has_cover_initialized_name() const {
+  V8_INLINE const Error& strict_mode_formal_parameter_error() const {
+    return reported_error(kStrictModeFormalParametersProduction);
+  }
+
+  V8_INLINE const Error& let_pattern_error() const {
+    return reported_error(kLetPatternProduction);
+  }
+
+  V8_INLINE bool has_cover_initialized_name() const {
     return !is_valid(CoverInitializedNameProduction);
   }
-  const Error& cover_initialized_name_error() const {
-    return cover_initialized_name_error_;
+
+  V8_INLINE const Error& cover_initialized_name_error() const {
+    return reported_error(kCoverInitializedNameProduction);
   }
 
-  bool has_tail_call_expression() const {
+  V8_INLINE bool has_tail_call_expression() const {
     return !is_valid(TailCallExpressionProduction);
   }
-  const Error& tail_call_expression_error() const {
-    return tail_call_expression_error_;
+  V8_INLINE const Error& tail_call_expression_error() const {
+    return reported_error(kTailCallExpressionProduction);
   }
-  const Error& async_arrow_formal_parameters_error() const {
-    return async_arrow_formal_parameters_error_;
+  V8_INLINE const Error& async_arrow_formal_parameters_error() const {
+    return reported_error(kAsyncArrowFormalParametersProduction);
   }
 
-  const Error& async_binding_pattern_error() const {
-    return async_binding_pattern_error_;
+  V8_INLINE const Error& async_binding_pattern_error() const {
+    return reported_error(kAsyncBindingPatternProduction);
   }
 
-  bool is_simple_parameter_list() const {
+  V8_INLINE bool is_simple_parameter_list() const {
     return !(function_properties_ & NonSimpleParameter);
   }
 
-  void RecordNonSimpleParameter() {
+  V8_INLINE void RecordNonSimpleParameter() {
     function_properties_ |= NonSimpleParameter;
   }
 
@@ -184,9 +223,7 @@
                              const char* arg = nullptr) {
     if (!is_valid_expression()) return;
     invalid_productions_ |= ExpressionProduction;
-    expression_error_.location = loc;
-    expression_error_.message = message;
-    expression_error_.arg = arg;
+    Add(Error(loc, message, kExpressionProduction, arg));
   }
 
   void RecordExpressionError(const Scanner::Location& loc,
@@ -194,10 +231,7 @@
                              ParseErrorType type, const char* arg = nullptr) {
     if (!is_valid_expression()) return;
     invalid_productions_ |= ExpressionProduction;
-    expression_error_.location = loc;
-    expression_error_.message = message;
-    expression_error_.arg = arg;
-    expression_error_.type = type;
+    Add(Error(loc, message, kExpressionProduction, arg, type));
   }
 
   void RecordFormalParameterInitializerError(const Scanner::Location& loc,
@@ -205,9 +239,7 @@
                                              const char* arg = nullptr) {
     if (!is_valid_formal_parameter_initializer()) return;
     invalid_productions_ |= FormalParameterInitializerProduction;
-    formal_parameter_initializer_error_.location = loc;
-    formal_parameter_initializer_error_.message = message;
-    formal_parameter_initializer_error_.arg = arg;
+    Add(Error(loc, message, kFormalParameterInitializerProduction, arg));
   }
 
   void RecordBindingPatternError(const Scanner::Location& loc,
@@ -215,9 +247,7 @@
                                  const char* arg = nullptr) {
     if (!is_valid_binding_pattern()) return;
     invalid_productions_ |= BindingPatternProduction;
-    binding_pattern_error_.location = loc;
-    binding_pattern_error_.message = message;
-    binding_pattern_error_.arg = arg;
+    Add(Error(loc, message, kBindingPatternProduction, arg));
   }
 
   void RecordAssignmentPatternError(const Scanner::Location& loc,
@@ -225,9 +255,7 @@
                                     const char* arg = nullptr) {
     if (!is_valid_assignment_pattern()) return;
     invalid_productions_ |= AssignmentPatternProduction;
-    assignment_pattern_error_.location = loc;
-    assignment_pattern_error_.message = message;
-    assignment_pattern_error_.arg = arg;
+    Add(Error(loc, message, kAssignmentPatternProduction, arg));
   }
 
   void RecordPatternError(const Scanner::Location& loc,
@@ -242,9 +270,7 @@
                                         const char* arg = nullptr) {
     if (!is_valid_arrow_formal_parameters()) return;
     invalid_productions_ |= ArrowFormalParametersProduction;
-    arrow_formal_parameters_error_.location = loc;
-    arrow_formal_parameters_error_.message = message;
-    arrow_formal_parameters_error_.arg = arg;
+    Add(Error(loc, message, kArrowFormalParametersProduction, arg));
   }
 
   void RecordAsyncArrowFormalParametersError(const Scanner::Location& loc,
@@ -252,9 +278,7 @@
                                              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;
+    Add(Error(loc, message, kAsyncArrowFormalParametersProduction, arg));
   }
 
   void RecordAsyncBindingPatternError(const Scanner::Location& loc,
@@ -262,17 +286,14 @@
                                       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;
+    Add(Error(loc, message, kAsyncBindingPatternProduction, arg));
   }
 
   void RecordDuplicateFormalParameterError(const Scanner::Location& loc) {
     if (!is_valid_formal_parameter_list_without_duplicates()) return;
     invalid_productions_ |= DistinctFormalParametersProduction;
-    duplicate_formal_parameter_error_.location = loc;
-    duplicate_formal_parameter_error_.message = MessageTemplate::kParamDupe;
-    duplicate_formal_parameter_error_.arg = nullptr;
+    Add(Error(loc, MessageTemplate::kParamDupe,
+              kDistinctFormalParametersProduction));
   }
 
   // Record a binding that would be invalid in strict mode.  Confusingly this
@@ -283,9 +304,7 @@
                                             const char* arg = nullptr) {
     if (!is_valid_strict_mode_formal_parameters()) return;
     invalid_productions_ |= StrictModeFormalParametersProduction;
-    strict_mode_formal_parameter_error_.location = loc;
-    strict_mode_formal_parameter_error_.message = message;
-    strict_mode_formal_parameter_error_.arg = arg;
+    Add(Error(loc, message, kStrictModeFormalParametersProduction, arg));
   }
 
   void RecordLetPatternError(const Scanner::Location& loc,
@@ -293,9 +312,7 @@
                              const char* arg = nullptr) {
     if (!is_valid_let_pattern()) return;
     invalid_productions_ |= LetPatternProduction;
-    let_pattern_error_.location = loc;
-    let_pattern_error_.message = message;
-    let_pattern_error_.arg = arg;
+    Add(Error(loc, message, kLetPatternProduction, arg));
   }
 
   void RecordCoverInitializedNameError(const Scanner::Location& loc,
@@ -303,9 +320,7 @@
                                        const char* arg = nullptr) {
     if (has_cover_initialized_name()) return;
     invalid_productions_ |= CoverInitializedNameProduction;
-    cover_initialized_name_error_.location = loc;
-    cover_initialized_name_error_.message = message;
-    cover_initialized_name_error_.arg = arg;
+    Add(Error(loc, message, kCoverInitializedNameProduction, arg));
   }
 
   void RecordTailCallExpressionError(const Scanner::Location& loc,
@@ -313,83 +328,102 @@
                                      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;
+    Add(Error(loc, message, kTailCallExpressionProduction, arg));
   }
 
   void ForgiveCoverInitializedNameError() {
+    if (!(invalid_productions_ & CoverInitializedNameProduction)) return;
+    Error& e = reported_error(kCoverInitializedNameProduction);
+    e.kind = kUnusedError;
     invalid_productions_ &= ~CoverInitializedNameProduction;
-    cover_initialized_name_error_ = Error();
   }
 
   void ForgiveAssignmentPatternError() {
+    if (!(invalid_productions_ & AssignmentPatternProduction)) return;
+    Error& e = reported_error(kAssignmentPatternProduction);
+    e.kind = kUnusedError;
     invalid_productions_ &= ~AssignmentPatternProduction;
-    assignment_pattern_error_ = Error();
   }
 
   void Accumulate(ExpressionClassifier* inner,
                   unsigned productions = StandardProductions,
                   bool merge_non_patterns = true) {
+    DCHECK_EQ(inner->reported_errors_, reported_errors_);
+    DCHECK_EQ(inner->reported_errors_begin_, reported_errors_end_);
+    DCHECK_EQ(inner->reported_errors_end_, reported_errors_->length());
     if (merge_non_patterns) MergeNonPatterns(inner);
     // Propagate errors from inner, but don't overwrite already recorded
     // errors.
     unsigned non_arrow_inner_invalid_productions =
         inner->invalid_productions_ & ~ArrowFormalParametersProduction;
-    if (non_arrow_inner_invalid_productions == 0) return;
-    unsigned non_arrow_productions =
-        productions & ~ArrowFormalParametersProduction;
-    unsigned errors =
-        non_arrow_productions & non_arrow_inner_invalid_productions;
-    errors &= ~invalid_productions_;
-    if (errors != 0) {
-      invalid_productions_ |= errors;
-      if (errors & ExpressionProduction)
-        expression_error_ = inner->expression_error_;
-      if (errors & FormalParameterInitializerProduction)
-        formal_parameter_initializer_error_ =
-            inner->formal_parameter_initializer_error_;
-      if (errors & BindingPatternProduction)
-        binding_pattern_error_ = inner->binding_pattern_error_;
-      if (errors & AssignmentPatternProduction)
-        assignment_pattern_error_ = inner->assignment_pattern_error_;
-      if (errors & DistinctFormalParametersProduction)
-        duplicate_formal_parameter_error_ =
-            inner->duplicate_formal_parameter_error_;
-      if (errors & StrictModeFormalParametersProduction)
-        strict_mode_formal_parameter_error_ =
-            inner->strict_mode_formal_parameter_error_;
-      if (errors & LetPatternProduction)
-        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
-    // formal parameters if the inner expression is a valid binding pattern.
-    if (productions & ArrowFormalParametersProduction &&
-        is_valid_arrow_formal_parameters()) {
-      // Also copy function properties if expecting an arrow function
-      // parameter.
-      function_properties_ |= inner->function_properties_;
-
-      if (!inner->is_valid_binding_pattern()) {
-        invalid_productions_ |= ArrowFormalParametersProduction;
-        arrow_formal_parameters_error_ = inner->binding_pattern_error_;
+    if (non_arrow_inner_invalid_productions) {
+      unsigned errors = non_arrow_inner_invalid_productions & productions &
+                        ~invalid_productions_;
+      // The result will continue to be a valid arrow formal parameters if the
+      // inner expression is a valid binding pattern.
+      bool copy_BP_to_AFP = false;
+      if (productions & ArrowFormalParametersProduction &&
+          is_valid_arrow_formal_parameters()) {
+        // Also copy function properties if expecting an arrow function
+        // parameter.
+        function_properties_ |= inner->function_properties_;
+        if (!inner->is_valid_binding_pattern()) {
+          copy_BP_to_AFP = true;
+          invalid_productions_ |= ArrowFormalParametersProduction;
+        }
+      }
+      // Traverse the list of errors reported by the inner classifier
+      // to copy what's necessary.
+      if (errors != 0 || copy_BP_to_AFP) {
+        invalid_productions_ |= errors;
+        int binding_pattern_index = inner->reported_errors_end_;
+        for (int i = inner->reported_errors_begin_;
+             i < inner->reported_errors_end_; i++) {
+          int k = reported_errors_->at(i).kind;
+          if (errors & (1 << k)) Copy(i);
+          // Check if it's a BP error that has to be copied to an AFP error.
+          if (k == kBindingPatternProduction && copy_BP_to_AFP) {
+            if (reported_errors_end_ <= i) {
+              // If the BP error itself has not already been copied,
+              // copy it now and change it to an AFP error.
+              Copy(i);
+              reported_errors_->at(reported_errors_end_-1).kind =
+                  kArrowFormalParametersProduction;
+            } else {
+              // Otherwise, if the BP error was already copied, keep its
+              // position and wait until the end of the traversal.
+              DCHECK_EQ(reported_errors_end_, i+1);
+              binding_pattern_index = i;
+            }
+          }
+        }
+        // Do we still have to copy the BP error to an AFP error?
+        if (binding_pattern_index < inner->reported_errors_end_) {
+          // If there's still unused space in the list of the inner
+          // classifier, copy it there, otherwise add it to the end
+          // of the list.
+          if (reported_errors_end_ < inner->reported_errors_end_)
+            Copy(binding_pattern_index);
+          else
+            Add(reported_errors_->at(binding_pattern_index));
+          reported_errors_->at(reported_errors_end_-1).kind =
+              kArrowFormalParametersProduction;
+        }
       }
     }
+    reported_errors_->Rewind(reported_errors_end_);
+    inner->reported_errors_begin_ = inner->reported_errors_end_ =
+        reported_errors_end_;
   }
 
   V8_INLINE int GetNonPatternBegin() const { return non_pattern_begin_; }
 
   V8_INLINE void Discard() {
+    if (reported_errors_end_ == reported_errors_->length()) {
+      reported_errors_->Rewind(reported_errors_begin_);
+      reported_errors_end_ = reported_errors_begin_;
+    }
+    DCHECK_EQ(reported_errors_begin_, reported_errors_end_);
     DCHECK_LE(non_pattern_begin_, non_patterns_to_rewrite_->length());
     non_patterns_to_rewrite_->Rewind(non_pattern_begin_);
   }
@@ -400,29 +434,69 @@
   }
 
  private:
+  V8_INLINE Error& reported_error(ErrorKind kind) const {
+    if (invalid_productions_ & (1 << kind)) {
+      for (int i = reported_errors_begin_; i < reported_errors_end_; i++) {
+        if (reported_errors_->at(i).kind == kind)
+          return reported_errors_->at(i);
+      }
+      UNREACHABLE();
+    }
+    // We should only be looking for an error when we know that one has
+    // been reported.  But we're not...  So this is to make sure we have
+    // the same behaviour.
+    static Error none;
+    return none;
+  }
+
+  // Adds e to the end of the list of reported errors for this classifier.
+  // It is expected that this classifier is the last one in the stack.
+  V8_INLINE void Add(const Error& e) {
+    DCHECK_EQ(reported_errors_end_, reported_errors_->length());
+    reported_errors_->Add(e, zone_);
+    reported_errors_end_++;
+  }
+
+  // Copies the error at position i of the list of reported errors, so that
+  // it becomes the last error reported for this classifier.  Position i
+  // could be either after the existing errors of this classifier (i.e.,
+  // in an inner classifier) or it could be an existing error (in case a
+  // copy is needed).
+  V8_INLINE void Copy(int i) {
+    DCHECK_LT(i, reported_errors_->length());
+    if (reported_errors_end_ != i)
+      reported_errors_->at(reported_errors_end_) = reported_errors_->at(i);
+    reported_errors_end_++;
+  }
+
   Zone* zone_;
   ZoneList<typename Traits::Type::Expression>* non_patterns_to_rewrite_;
-  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_;
-  Error assignment_pattern_error_;
-  Error arrow_formal_parameters_error_;
-  Error duplicate_formal_parameter_error_;
-  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_;
+  ZoneList<Error>* reported_errors_;
   DuplicateFinder* duplicate_finder_;
+  // The uint16_t for non_pattern_begin_ will not be enough in the case,
+  // e.g., of an array literal containing more than 64K inner array
+  // literals with spreads, as in:
+  // var N=65536; eval("var x=[];" + "[" + "[...x],".repeat(N) + "].length");
+  // An implementation limit error in ParserBase::AddNonPatternForRewriting
+  // will be triggered in this case.
+  uint16_t non_pattern_begin_;
+  unsigned invalid_productions_ : 14;
+  unsigned function_properties_ : 2;
+  // The uint16_t for reported_errors_begin_ and reported_errors_end_ will
+  // not be enough in the case of a long series of expressions using nested
+  // classifiers, e.g., a long sequence of assignments, as in:
+  // literals with spreads, as in:
+  // var N=65536; eval("var x;" + "x=".repeat(N) + "42");
+  // This should not be a problem, as such things currently fail with a
+  // stack overflow while parsing.
+  uint16_t reported_errors_begin_;
+  uint16_t reported_errors_end_;
 };
 
 
+#undef ERROR_CODES
+
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/parsing/parameter-initializer-rewriter.cc b/src/parsing/parameter-initializer-rewriter.cc
index 6362c63..4bb367d 100644
--- a/src/parsing/parameter-initializer-rewriter.cc
+++ b/src/parsing/parameter-initializer-rewriter.cc
@@ -24,7 +24,9 @@
            Scope* new_scope)
       : AstExpressionVisitor(stack_limit, initializer),
         old_scope_(old_scope),
-        new_scope_(new_scope) {}
+        new_scope_(new_scope),
+        old_scope_closure_(old_scope->ClosureScope()),
+        new_scope_closure_(new_scope->ClosureScope()) {}
   ~Rewriter();
 
  private:
@@ -40,6 +42,8 @@
 
   Scope* old_scope_;
   Scope* new_scope_;
+  Scope* old_scope_closure_;
+  Scope* new_scope_closure_;
   std::vector<std::pair<Variable*, int>> temps_;
 };
 
@@ -55,8 +59,8 @@
     // 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);
+      var_and_index.first->set_scope(new_scope_closure_);
+      new_scope_closure_->AddTemporary(var_and_index.first);
     }
   }
 }
@@ -90,11 +94,11 @@
   if (proxy->is_resolved()) {
     Variable* var = proxy->var();
     if (var->mode() != TEMPORARY) return;
-    // 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);
+    // Temporaries are only placed in ClosureScopes.
+    DCHECK_EQ(var->scope(), var->scope()->ClosureScope());
+    // If the temporary is already where it should be, return quickly.
+    if (var->scope() == new_scope_closure_) return;
+    int index = old_scope_closure_->RemoveTemporary(var);
     if (index >= 0) {
       temps_.push_back(std::make_pair(var, index));
     }
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
index 6086f7a..669defa 100644
--- a/src/parsing/parser-base.h
+++ b/src/parsing/parser-base.h
@@ -7,7 +7,7 @@
 
 #include "src/ast/scopes.h"
 #include "src/bailout-reason.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/messages.h"
 #include "src/parsing/expression-classifier.h"
 #include "src/parsing/func-name-inferrer.h"
@@ -196,9 +196,9 @@
         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_async_await_(false) {}
+        allow_harmony_async_await_(false),
+        allow_harmony_restrictive_generators_(false) {}
 
 #define ALLOW_ACCESSORS(name)                           \
   bool allow_##name() const { return allow_##name##_; } \
@@ -216,9 +216,9 @@
   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);
+  ALLOW_ACCESSORS(harmony_restrictive_generators);
   SCANNER_ACCESSORS(harmony_exponentiation_operator);
 
 #undef SCANNER_ACCESSORS
@@ -385,8 +385,8 @@
 
     typename Traits::Type::Factory* factory() { return factory_; }
 
-    const List<DestructuringAssignment>& destructuring_assignments_to_rewrite()
-        const {
+    const ZoneList<DestructuringAssignment>&
+        destructuring_assignments_to_rewrite() const {
       return destructuring_assignments_to_rewrite_;
     }
 
@@ -408,6 +408,10 @@
       }
     }
 
+    ZoneList<typename ExpressionClassifier::Error>* GetReportedErrorList() {
+      return &reported_errors_;
+    }
+
     ReturnExprContext return_expr_context() const {
       return return_expr_context_;
     }
@@ -429,13 +433,16 @@
 
    private:
     void AddDestructuringAssignment(DestructuringAssignment pair) {
-      destructuring_assignments_to_rewrite_.Add(pair);
+      destructuring_assignments_to_rewrite_.Add(pair, (*scope_stack_)->zone());
     }
 
     V8_INLINE Scope* scope() { return *scope_stack_; }
 
-    void AddNonPatternForRewriting(ExpressionT expr) {
+    void AddNonPatternForRewriting(ExpressionT expr, bool* ok) {
       non_patterns_to_rewrite_.Add(expr, (*scope_stack_)->zone());
+      if (non_patterns_to_rewrite_.length() >=
+          std::numeric_limits<uint16_t>::max())
+        *ok = false;
     }
 
     // Used to assign an index to each literal that needs materialization in
@@ -466,11 +473,13 @@
     Scope** scope_stack_;
     Scope* outer_scope_;
 
-    List<DestructuringAssignment> destructuring_assignments_to_rewrite_;
+    ZoneList<DestructuringAssignment> destructuring_assignments_to_rewrite_;
     TailCallExpressionList tail_call_expressions_;
     ReturnExprContext return_expr_context_;
     ZoneList<ExpressionT> non_patterns_to_rewrite_;
 
+    ZoneList<typename ExpressionClassifier::Error> reported_errors_;
+
     typename Traits::Type::Factory* factory_;
 
     // If true, the next (and immediately following) function literal is
@@ -658,13 +667,13 @@
     Expect(Token::SEMICOLON, ok);
   }
 
-  bool peek_any_identifier() {
-    Token::Value next = peek();
-    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;
+  bool is_any_identifier(Token::Value token) {
+    return token == Token::IDENTIFIER || token == Token::ENUM ||
+           token == Token::AWAIT || token == Token::ASYNC ||
+           token == Token::FUTURE_STRICT_RESERVED_WORD || token == Token::LET ||
+           token == Token::STATIC || token == Token::YIELD;
   }
+  bool peek_any_identifier() { return is_any_identifier(peek()); }
 
   bool CheckContextualKeyword(Vector<const char> keyword) {
     if (PeekContextualKeyword(keyword)) {
@@ -877,6 +886,10 @@
     }
   }
 
+  bool IsValidArrowFormalParametersStart(Token::Value token) {
+    return is_any_identifier(token) || token == Token::LPAREN;
+  }
+
   void ValidateArrowFormalParameters(const ExpressionClassifier* classifier,
                                      ExpressionT expr,
                                      bool parenthesized_formals, bool is_async,
@@ -1173,9 +1186,9 @@
   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_;
+  bool allow_harmony_restrictive_generators_;
 };
 
 template <class Traits>
@@ -1193,9 +1206,11 @@
       outer_function_state_(*function_state_stack),
       scope_stack_(scope_stack),
       outer_scope_(*scope_stack),
+      destructuring_assignments_to_rewrite_(16, scope->zone()),
       tail_call_expressions_(scope->zone()),
       return_expr_context_(ReturnExprContext::kInsideValidBlock),
       non_patterns_to_rewrite_(0, scope->zone()),
+      reported_errors_(16, scope->zone()),
       factory_(factory),
       next_function_is_parenthesized_(false),
       this_function_is_parenthesized_(false) {
@@ -1552,12 +1567,11 @@
       // Parentheses are not valid on the LHS of a BindingPattern, so we use the
       // is_valid_binding_pattern() check to detect multiple levels of
       // parenthesization.
-      if (!classifier->is_valid_binding_pattern()) {
-        ArrowFormalParametersUnexpectedToken(classifier);
-      }
+      bool pattern_error = !classifier->is_valid_binding_pattern();
       classifier->RecordPatternError(scanner()->peek_location(),
                                      MessageTemplate::kUnexpectedToken,
                                      Token::String(Token::LPAREN));
+      if (pattern_error) ArrowFormalParametersUnexpectedToken(classifier);
       Consume(Token::LPAREN);
       if (Check(Token::RPAREN)) {
         // ()=>x.  The continuation that looks for the => is in
@@ -1575,8 +1589,11 @@
                                           MessageTemplate::kUnexpectedToken,
                                           Token::String(Token::ELLIPSIS));
         classifier->RecordNonSimpleParameter();
-        ExpressionT expr =
-            this->ParseAssignmentExpression(true, classifier, CHECK_OK);
+        ExpressionClassifier binding_classifier(this);
+        ExpressionT expr = this->ParseAssignmentExpression(
+            true, &binding_classifier, CHECK_OK);
+        classifier->Accumulate(&binding_classifier,
+                               ExpressionClassifier::AllProductions);
         if (!this->IsIdentifier(expr) && !IsValidPattern(expr)) {
           classifier->RecordArrowFormalParametersError(
               Scanner::Location(ellipsis_pos, scanner()->location().end_pos),
@@ -1663,11 +1680,14 @@
   //   AssignmentExpression
   //   Expression ',' AssignmentExpression
 
-  ExpressionClassifier binding_classifier(this);
-  ExpressionT result =
-      this->ParseAssignmentExpression(accept_IN, &binding_classifier, CHECK_OK);
-  classifier->Accumulate(&binding_classifier,
-                         ExpressionClassifier::AllProductions);
+  ExpressionT result = this->EmptyExpression();
+  {
+    ExpressionClassifier binding_classifier(this);
+    result = this->ParseAssignmentExpression(accept_IN, &binding_classifier,
+                                             CHECK_OK);
+    classifier->Accumulate(&binding_classifier,
+                           ExpressionClassifier::AllProductions);
+  }
   bool is_simple_parameter_list = this->IsIdentifier(result);
   bool seen_rest = false;
   while (peek() == Token::COMMA) {
@@ -1690,6 +1710,7 @@
       seen_rest = is_rest = true;
     }
     int pos = position(), expr_pos = peek_position();
+    ExpressionClassifier binding_classifier(this);
     ExpressionT right = this->ParseAssignmentExpression(
         accept_IN, &binding_classifier, CHECK_OK);
     classifier->Accumulate(&binding_classifier,
@@ -1777,7 +1798,15 @@
                                                   literal_index, pos);
   if (first_spread_index >= 0) {
     result = factory()->NewRewritableExpression(result);
-    Traits::QueueNonPatternForRewriting(result);
+    Traits::QueueNonPatternForRewriting(result, ok);
+    if (!*ok) {
+      // If the non-pattern rewriting mechanism is used in the future for
+      // rewriting other things than spreads, this error message will have
+      // to change.  Also, this error message will never appear while pre-
+      // parsing (this is OK, as it is an implementation limitation).
+      ReportMessage(MessageTemplate::kTooManySpreads);
+      return this->EmptyExpression();
+    }
   }
   return result;
 }
@@ -1917,10 +1946,16 @@
         classifier->RecordLetPatternError(
             scanner()->location(), MessageTemplate::kLetInLexicalBinding);
       }
-      if (is_await && is_async_function()) {
-        classifier->RecordPatternError(
-            Scanner::Location(next_beg_pos, next_end_pos),
-            MessageTemplate::kAwaitBindingIdentifier);
+      if (is_await) {
+        if (is_async_function()) {
+          classifier->RecordPatternError(
+              Scanner::Location(next_beg_pos, next_end_pos),
+              MessageTemplate::kAwaitBindingIdentifier);
+        } else {
+          classifier->RecordAsyncArrowFormalParametersError(
+              Scanner::Location(next_beg_pos, next_end_pos),
+              MessageTemplate::kAwaitBindingIdentifier);
+        }
       }
       ExpressionT lhs = this->ExpressionFromIdentifier(
           *name, next_beg_pos, next_end_pos, scope_, factory());
@@ -1941,9 +1976,7 @@
             Scanner::Location(next_beg_pos, scanner()->location().end_pos),
             MessageTemplate::kInvalidCoverInitializedName);
 
-        if (allow_harmony_function_name()) {
-          Traits::SetFunctionNameFromIdentifierRef(rhs, lhs);
-        }
+        Traits::SetFunctionNameFromIdentifierRef(rhs, lhs);
       } else {
         value = lhs;
       }
@@ -2098,9 +2131,7 @@
 
     if (fni_ != nullptr) fni_->Infer();
 
-    if (allow_harmony_function_name()) {
-      Traits::SetFunctionNameFromPropertyName(property, name);
-    }
+    Traits::SetFunctionNameFromPropertyName(property, name);
   }
   Expect(Token::RBRACE, CHECK_OK);
 
@@ -2135,7 +2166,10 @@
     ExpressionT argument = this->ParseAssignmentExpression(
         true, classifier, CHECK_OK_CUSTOM(NullExpressionList));
     CheckNoTailCallExpressions(classifier, CHECK_OK_CUSTOM(NullExpressionList));
-    Traits::RewriteNonPattern(classifier, CHECK_OK_CUSTOM(NullExpressionList));
+    if (!maybe_arrow) {
+      Traits::RewriteNonPattern(classifier,
+                                CHECK_OK_CUSTOM(NullExpressionList));
+    }
     if (is_spread) {
       if (!spread_arg.IsValid()) {
         spread_arg.beg_pos = start_pos;
@@ -2172,11 +2206,17 @@
   }
   *first_spread_arg_loc = spread_arg;
 
-  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
-    Traits::MaterializeUnspreadArgumentsLiterals(unspread_sequences_count);
+  if (!maybe_arrow || peek() != Token::ARROW) {
+    if (maybe_arrow) {
+      Traits::RewriteNonPattern(classifier,
+                                CHECK_OK_CUSTOM(NullExpressionList));
+    }
+    if (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
+      Traits::MaterializeUnspreadArgumentsLiterals(unspread_sequences_count);
+    }
   }
 
   return result;
@@ -2206,7 +2246,8 @@
                                                 classifier->duplicate_finder());
 
   bool is_async = allow_harmony_async_await() && peek() == Token::ASYNC &&
-                  !scanner()->HasAnyLineTerminatorAfterNext();
+                  !scanner()->HasAnyLineTerminatorAfterNext() &&
+                  IsValidArrowFormalParametersStart(PeekAhead());
 
   bool parenthesized_formals = peek() == Token::LPAREN;
   if (!is_async && !parenthesized_formals) {
@@ -2224,9 +2265,7 @@
   }
 
   if (peek() == Token::ARROW) {
-    classifier->RecordPatternError(scanner()->peek_location(),
-                                   MessageTemplate::kUnexpectedToken,
-                                   Token::String(Token::ARROW));
+    Scanner::Location arrow_loc = scanner()->peek_location();
     ValidateArrowFormalParameters(&arrow_formals_classifier, expression,
                                   parenthesized_formals, is_async, CHECK_OK);
     // This reads strangely, but is correct: it checks whether any
@@ -2263,6 +2302,10 @@
     }
     expression = this->ParseArrowFunctionLiteral(
         accept_IN, parameters, is_async, arrow_formals_classifier, CHECK_OK);
+    arrow_formals_classifier.Discard();
+    classifier->RecordPatternError(arrow_loc,
+                                   MessageTemplate::kUnexpectedToken,
+                                   Token::String(Token::ARROW));
 
     if (fni_ != nullptr) fni_->Infer();
 
@@ -2352,7 +2395,7 @@
     }
   }
 
-  if (op == Token::ASSIGN && allow_harmony_function_name()) {
+  if (op == Token::ASSIGN) {
     Traits::SetFunctionNameFromIdentifierRef(right, expression);
   }
 
@@ -2457,6 +2500,12 @@
     *ok = false;
     return Traits::EmptyExpression();
   }
+  if (is_resumable()) {
+    Scanner::Location sub_loc(sub_expression_pos, loc.end_pos);
+    ReportMessageAt(sub_loc, MessageTemplate::kUnexpectedTailCall);
+    *ok = false;
+    return Traits::EmptyExpression();
+  }
   ReturnExprContext return_expr_context =
       function_state_->return_expr_context();
   if (return_expr_context != ReturnExprContext::kInsideValidReturnStatement) {
@@ -2502,8 +2551,8 @@
   if (peek() != Token::CONDITIONAL) return expression;
   CheckNoTailCallExpressions(classifier, CHECK_OK);
   Traits::RewriteNonPattern(classifier, CHECK_OK);
-  ArrowFormalParametersUnexpectedToken(classifier);
   BindingPatternUnexpectedToken(classifier);
+  ArrowFormalParametersUnexpectedToken(classifier);
   Consume(Token::CONDITIONAL);
   // In parsing the first assignment expression in conditional
   // expressions we always accept the 'in' keyword; see ECMA-262,
@@ -2667,6 +2716,8 @@
       default:
         break;
     }
+
+    int await_pos = peek_position();
     Consume(Token::AWAIT);
 
     ExpressionT value = ParseUnaryExpression(classifier, CHECK_OK);
@@ -2674,7 +2725,7 @@
     classifier->RecordFormalParameterInitializerError(
         Scanner::Location(beg_pos, scanner()->location().end_pos),
         MessageTemplate::kAwaitExpressionFormalParameter);
-    return Traits::RewriteAwaitExpression(value, beg_pos);
+    return Traits::RewriteAwaitExpression(value, await_pos);
   } else {
     return this->ParsePostfixExpression(classifier, ok);
   }
@@ -3148,9 +3199,7 @@
     init_classifier.Discard();
     classifier->RecordNonSimpleParameter();
 
-    if (allow_harmony_function_name()) {
-      Traits::SetFunctionNameFromIdentifierRef(initializer, pattern);
-    }
+    Traits::SetFunctionNameFromIdentifierRef(initializer, pattern);
   }
 
   Traits::AddFormalParameter(parameters, pattern, initializer,
@@ -3317,7 +3366,6 @@
     } else {
       // Single-expression body
       int pos = position();
-      ExpressionClassifier classifier(this);
       DCHECK(ReturnExprContext::kInsideValidBlock ==
              function_state_->return_expr_context());
       ReturnExprScope allow_tail_calls(
@@ -3325,6 +3373,7 @@
       body = this->NewStatementList(1, zone());
       this->AddParameterInitializationBlock(formal_parameters, body, is_async,
                                             CHECK_OK);
+      ExpressionClassifier classifier(this);
       if (is_async) {
         this->ParseAsyncArrowSingleExpressionBody(body, accept_IN, &classifier,
                                                   pos, CHECK_OK);
diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
index 822c49e..a39d0ee 100644
--- a/src/parsing/parser.cc
+++ b/src/parsing/parser.cc
@@ -205,7 +205,16 @@
     body = new (zone()) ZoneList<Statement*>(call_super ? 2 : 1, zone());
     if (call_super) {
       // $super_constructor = %_GetSuperConstructor(<this-function>)
-      // %reflect_construct($super_constructor, arguments, new.target)
+      // %reflect_construct(
+      //     $super_constructor, InternalArray(...args), new.target)
+      auto constructor_args_name = ast_value_factory()->empty_string();
+      bool is_duplicate;
+      bool is_rest = true;
+      bool is_optional = false;
+      Variable* constructor_args =
+          function_scope->DeclareParameter(constructor_args_name, TEMPORARY,
+                                           is_optional, is_rest, &is_duplicate);
+
       ZoneList<Expression*>* args =
           new (zone()) ZoneList<Expression*>(2, zone());
       VariableProxy* this_function_proxy = scope_->NewUnresolved(
@@ -217,10 +226,12 @@
       Expression* super_constructor = factory()->NewCallRuntime(
           Runtime::kInlineGetSuperConstructor, tmp, pos);
       args->Add(super_constructor, zone());
-      VariableProxy* arguments_proxy = scope_->NewUnresolved(
-          factory(), ast_value_factory()->arguments_string(), Variable::NORMAL,
-          pos);
-      args->Add(arguments_proxy, zone());
+      Spread* spread_args = factory()->NewSpread(
+          factory()->NewVariableProxy(constructor_args), pos, pos);
+      ZoneList<Expression*>* spread_args_expr =
+          new (zone()) ZoneList<Expression*>(1, zone());
+      spread_args_expr->Add(spread_args, zone());
+      args->AddAll(*PrepareSpreadArguments(spread_args_expr), zone());
       VariableProxy* new_target_proxy = scope_->NewUnresolved(
           factory(), ast_value_factory()->new_target_string(), Variable::NORMAL,
           pos);
@@ -669,13 +680,14 @@
 Expression* ParserTraits::FunctionSentExpression(Scope* scope,
                                                  AstNodeFactory* factory,
                                                  int pos) {
-  // We desugar function.sent into %GeneratorGetInput(generator).
+  // We desugar function.sent into %_GeneratorGetInputOrDebugPos(generator).
   Zone* zone = parser_->zone();
   ZoneList<Expression*>* args = new (zone) ZoneList<Expression*>(1, zone);
   VariableProxy* generator = factory->NewVariableProxy(
       parser_->function_state_->generator_object_variable());
   args->Add(generator, zone);
-  return factory->NewCallRuntime(Runtime::kGeneratorGetInput, args, pos);
+  return factory->NewCallRuntime(Runtime::kInlineGeneratorGetInputOrDebugPos,
+                                 args, pos);
 }
 
 
@@ -796,13 +808,13 @@
                       info->isolate()->is_tail_call_elimination_enabled());
   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);
+  set_allow_harmony_restrictive_generators(FLAG_harmony_restrictive_generators);
   for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
        ++feature) {
     use_counts_[feature] = 0;
@@ -1971,10 +1983,24 @@
     } else if (IsLexicalVariableMode(mode) ||
                IsLexicalVariableMode(var->mode())) {
       // Allow duplicate function decls for web compat, see bug 4693.
+      bool duplicate_allowed = false;
       if (is_sloppy(language_mode()) && is_function_declaration &&
           var->is_function()) {
         DCHECK(IsLexicalVariableMode(mode) &&
                IsLexicalVariableMode(var->mode()));
+        // If the duplication is allowed, then the var will show up
+        // in the SloppyBlockFunctionMap and the new FunctionKind
+        // will be a permitted duplicate.
+        FunctionKind function_kind =
+            declaration->AsFunctionDeclaration()->fun()->kind();
+        duplicate_allowed =
+            scope->DeclarationScope()->sloppy_block_function_map()->Lookup(
+                const_cast<AstRawString*>(name), name->hash()) != nullptr &&
+            !IsAsyncFunction(function_kind) &&
+            !(allow_harmony_restrictive_generators() &&
+              IsGeneratorFunction(function_kind));
+      }
+      if (duplicate_allowed) {
         ++use_counts_[v8::Isolate::kSloppyModeBlockScopedFunctionRedefinition];
       } else {
         // The name was declared in this scope before; check for conflicting
@@ -2010,13 +2036,12 @@
     // In a var binding in a sloppy direct eval, pollute the enclosing scope
     // with this new binding by doing the following:
     // The proxy is bound to a lookup variable to force a dynamic declaration
-    // using the DeclareLookupSlot runtime function.
+    // using the DeclareEvalVar or DeclareEvalFunction runtime functions.
     Variable::Kind kind = Variable::NORMAL;
     // TODO(sigurds) figure out if kNotAssigned is OK here
     var = new (zone()) Variable(declaration_scope, name, mode, kind,
                                 declaration->initialization(), kNotAssigned);
     var->AllocateTo(VariableLocation::LOOKUP, -1);
-    var->SetFromEval();
     resolve = true;
   }
 
@@ -2036,7 +2061,7 @@
   // same variable if it is declared several times. This is not a
   // semantic issue as long as we keep the source order, but it may be
   // a performance issue since it may lead to repeated
-  // RuntimeHidden_DeclareLookupSlot calls.
+  // DeclareEvalVar or DeclareEvalFunction calls.
   declaration_scope->AddDeclaration(declaration);
 
   // If requested and we have a local variable, bind the proxy to the variable
@@ -2188,7 +2213,13 @@
   Declare(declaration, DeclarationDescriptor::NORMAL, true, CHECK_OK);
   if (names) names->Add(name, zone());
   EmptyStatement* empty = factory()->NewEmptyStatement(RelocInfo::kNoPosition);
-  if (is_sloppy(language_mode()) && !scope_->is_declaration_scope()) {
+  // Async functions don't undergo sloppy mode block scoped hoisting, and don't
+  // allow duplicates in a block. Both are represented by the
+  // sloppy_block_function_map. Don't add them to the map for async functions.
+  // Generators are also supposed to be prohibited; currently doing this behind
+  // a flag and UseCounting violations to assess web compatibility.
+  if (is_sloppy(language_mode()) && !scope_->is_declaration_scope() &&
+      !is_async && !(allow_harmony_restrictive_generators() && is_generator)) {
     SloppyBlockFunctionStatement* delegate =
         factory()->NewSloppyBlockFunctionStatement(empty, scope_);
     scope_->DeclarationScope()->sloppy_block_function_map()->Declare(name,
@@ -2412,9 +2443,7 @@
         }
       }
 
-      if (allow_harmony_function_name()) {
-        ParserTraits::SetFunctionNameFromIdentifierRef(value, pattern);
-      }
+      ParserTraits::SetFunctionNameFromIdentifierRef(value, pattern);
 
       // End position of the initializer is after the assignment expression.
       initializer_position = scanner()->location().end_pos;
@@ -2518,7 +2547,6 @@
       ReportUnexpectedToken(Next());
       *ok = false;
       return nullptr;
-
     default:
       break;
   }
@@ -2725,7 +2753,7 @@
       Expression* is_spec_object_call = factory()->NewCallRuntime(
           Runtime::kInlineIsJSReceiver, is_spec_object_args, pos);
 
-      // %_IsJSReceiver(temp) ? temp : throw_expression
+      // %_IsJSReceiver(temp) ? temp : 1;
       Expression* is_object_conditional = factory()->NewConditional(
           is_spec_object_call, factory()->NewVariableProxy(temp),
           factory()->NewSmiLiteral(1, pos), pos);
@@ -2744,7 +2772,7 @@
           function_state_, ReturnExprContext::kInsideValidReturnStatement);
       return_value = ParseExpression(true, CHECK_OK);
 
-      if (allow_tailcalls() && !is_sloppy(language_mode())) {
+      if (allow_tailcalls() && !is_sloppy(language_mode()) && !is_resumable()) {
         // ES6 14.6.1 Static Semantics: IsInTailPosition
         function_state_->AddImplicitTailCallExpression(return_value);
       }
@@ -2970,40 +2998,40 @@
     catch_scope = NewScope(scope_, CATCH_SCOPE);
     catch_scope->set_start_position(scanner()->location().beg_pos);
 
-    ExpressionClassifier pattern_classifier(this);
-    Expression* pattern = ParsePrimaryExpression(&pattern_classifier, CHECK_OK);
-    ValidateBindingPattern(&pattern_classifier, CHECK_OK);
-
-    const AstRawString* name = ast_value_factory()->dot_catch_string();
-    bool is_simple = pattern->IsVariableProxy();
-    if (is_simple) {
-      auto proxy = pattern->AsVariableProxy();
-      scope_->RemoveUnresolved(proxy);
-      name = proxy->raw_name();
-    }
-
-    catch_variable = catch_scope->DeclareLocal(name, VAR, kCreatedInitialized,
-                                               Variable::NORMAL);
-
-    Expect(Token::RPAREN, CHECK_OK);
-
     {
       CollectExpressionsInTailPositionToListScope
           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
-      // a block.
       catch_block =
           factory()->NewBlock(nullptr, 16, false, RelocInfo::kNoPosition);
-      Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
 
+      // Create a block scope to hold any lexical declarations created
+      // as part of destructuring the catch parameter.
+      Scope* block_scope = NewScope(scope_, BLOCK_SCOPE);
       block_scope->set_start_position(scanner()->location().beg_pos);
       {
         BlockState block_state(&scope_, block_scope);
         Target target(&this->target_stack_, catch_block);
 
+        ExpressionClassifier pattern_classifier(this);
+        Expression* pattern =
+            ParsePrimaryExpression(&pattern_classifier, CHECK_OK);
+        ValidateBindingPattern(&pattern_classifier, CHECK_OK);
+
+        const AstRawString* name = ast_value_factory()->dot_catch_string();
+        bool is_simple = pattern->IsVariableProxy();
+        if (is_simple) {
+          auto proxy = pattern->AsVariableProxy();
+          scope_->RemoveUnresolved(proxy);
+          name = proxy->raw_name();
+        }
+        catch_variable = catch_scope->DeclareLocal(
+            name, VAR, kCreatedInitialized, Variable::NORMAL);
+
+        Expect(Token::RPAREN, CHECK_OK);
+
         if (!is_simple) {
           DeclarationDescriptor descriptor;
           descriptor.declaration_kind = DeclarationDescriptor::NORMAL;
@@ -3028,6 +3056,8 @@
           catch_block->statements()->Add(init_block, zone());
         }
 
+        // TODO(adamk): This should call ParseBlock in order to properly
+        // add an additional block scope for the catch body.
         Expect(Token::LBRACE, CHECK_OK);
         while (peek() != Token::RBRACE) {
           Statement* stat = ParseStatementListItem(CHECK_OK);
@@ -4705,7 +4735,7 @@
       // We produce:
       //
       // try { InitialYield; ...body...; return {value: undefined, done: true} }
-      // finally { %GeneratorClose(generator) }
+      // finally { %_GeneratorClose(generator) }
       //
       // - InitialYield yields the actual generator object.
       // - Any return statement inside the body will have its argument wrapped
@@ -4724,8 +4754,11 @@
             Token::INIT, init_proxy, allocation, RelocInfo::kNoPosition);
         VariableProxy* get_proxy = factory()->NewVariableProxy(
             function_state_->generator_object_variable());
-        Yield* yield =
-            factory()->NewYield(get_proxy, assignment, RelocInfo::kNoPosition);
+        // The position of the yield is important for reporting the exception
+        // caused by calling the .throw method on a generator suspended at the
+        // initial yield (i.e. right after generator instantiation).
+        Yield* yield = factory()->NewYield(get_proxy, assignment,
+                                           scope_->start_position());
         try_block->statements()->Add(
             factory()->NewExpressionStatement(yield, RelocInfo::kNoPosition),
             zone());
@@ -4745,7 +4778,7 @@
           function_state_->generator_object_variable());
       args->Add(call_proxy, zone());
       Expression* call = factory()->NewCallRuntime(
-          Runtime::kGeneratorClose, args, RelocInfo::kNoPosition);
+          Runtime::kInlineGeneratorClose, args, RelocInfo::kNoPosition);
       finally_block->statements()->Add(
           factory()->NewExpressionStatement(call, RelocInfo::kNoPosition),
           zone());
@@ -4844,7 +4877,6 @@
     SET_ALLOW(natives);
     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);
@@ -4943,8 +4975,7 @@
 
     if (fni_ != NULL) fni_->Infer();
 
-    if (allow_harmony_function_name() &&
-        property_name != ast_value_factory()->constructor_string()) {
+    if (property_name != ast_value_factory()->constructor_string()) {
       SetFunctionNameFromPropertyName(property, property_name);
     }
   }
@@ -4953,7 +4984,7 @@
   int end_pos = scanner()->location().end_pos;
 
   if (constructor == NULL) {
-    constructor = DefaultConstructor(name, extends != NULL, block_scope, pos,
+    constructor = DefaultConstructor(name, has_extends, block_scope, pos,
                                      end_pos, block_scope->language_mode());
   }
 
@@ -5189,7 +5220,7 @@
   // Move statistics to Isolate.
   for (int feature = 0; feature < v8::Isolate::kUseCounterFeatureCount;
        ++feature) {
-    for (int i = 0; i < use_counts_[feature]; ++i) {
+    if (use_counts_[feature] > 0) {
       isolate->CountUsage(v8::Isolate::UseCounterFeature(feature));
     }
   }
@@ -5586,7 +5617,8 @@
   parser_->RewriteNonPattern(classifier, ok);
 }
 
-Expression* ParserTraits::RewriteAwaitExpression(Expression* value, int pos) {
+Expression* ParserTraits::RewriteAwaitExpression(Expression* value,
+                                                 int await_pos) {
   // yield %AsyncFunctionAwait(.generator_object, <operand>)
   Variable* generator_object_variable =
       parser_->function_state_->generator_object_variable();
@@ -5594,33 +5626,56 @@
   // If generator_object_variable is null,
   if (!generator_object_variable) return value;
 
-  Expression* generator_object =
-      parser_->factory()->NewVariableProxy(generator_object_variable);
+  auto factory = parser_->factory();
+  const int nopos = RelocInfo::kNoPosition;
+
+  Variable* temp_var = parser_->scope_->NewTemporary(
+      parser_->ast_value_factory()->empty_string());
+  VariableProxy* temp_proxy = factory->NewVariableProxy(temp_var);
+  Block* do_block = factory->NewBlock(nullptr, 2, false, nopos);
+
+  // Wrap value evaluation to provide a break location.
+  Expression* value_assignment =
+      factory->NewAssignment(Token::ASSIGN, temp_proxy, value, nopos);
+  do_block->statements()->Add(
+      factory->NewExpressionStatement(value_assignment, value->position()),
+      zone());
 
   ZoneList<Expression*>* async_function_await_args =
       new (zone()) ZoneList<Expression*>(2, zone());
+  Expression* generator_object =
+      factory->NewVariableProxy(generator_object_variable);
   async_function_await_args->Add(generator_object, zone());
-  async_function_await_args->Add(value, zone());
+  async_function_await_args->Add(temp_proxy, zone());
   Expression* async_function_await = parser_->factory()->NewCallRuntime(
-      Context::ASYNC_FUNCTION_AWAIT_INDEX, async_function_await_args,
-      RelocInfo::kNoPosition);
+      Context::ASYNC_FUNCTION_AWAIT_INDEX, async_function_await_args, nopos);
+  // Wrap await to provide a break location between value evaluation and yield.
+  Expression* await_assignment = factory->NewAssignment(
+      Token::ASSIGN, temp_proxy, async_function_await, nopos);
+  do_block->statements()->Add(
+      factory->NewExpressionStatement(await_assignment, await_pos), zone());
+  Expression* do_expr = factory->NewDoExpression(do_block, temp_var, nopos);
 
-  generator_object =
-      parser_->factory()->NewVariableProxy(generator_object_variable);
-  return parser_->factory()->NewYield(generator_object, async_function_await,
-                                      pos);
+  generator_object = factory->NewVariableProxy(generator_object_variable);
+  return factory->NewYield(generator_object, do_expr, nopos);
 }
 
-Zone* ParserTraits::zone() const {
-  return parser_->function_state_->scope()->zone();
-}
-
-
 ZoneList<Expression*>* ParserTraits::GetNonPatternList() const {
   return parser_->function_state_->non_patterns_to_rewrite();
 }
 
 
+ZoneList<typename ParserTraits::Type::ExpressionClassifier::Error>*
+ParserTraits::GetReportedErrorList() const {
+  return parser_->function_state_->GetReportedErrorList();
+}
+
+
+Zone* ParserTraits::zone() const {
+  return parser_->function_state_->scope()->zone();
+}
+
+
 class NonPatternRewriter : public AstExpressionRewriter {
  public:
   NonPatternRewriter(uintptr_t stack_limit, Parser* parser)
@@ -5834,9 +5889,9 @@
 }
 
 
-void ParserTraits::QueueNonPatternForRewriting(Expression* expr) {
+void ParserTraits::QueueNonPatternForRewriting(Expression* expr, bool* ok) {
   DCHECK(expr->IsRewritableExpression());
-  parser_->function_state_->AddNonPatternForRewriting(expr);
+  parser_->function_state_->AddNonPatternForRewriting(expr, ok);
 }
 
 
@@ -6529,8 +6584,6 @@
 void ParserTraits::FinalizeIteratorUse(Variable* completion,
                                        Expression* condition, Variable* iter,
                                        Block* iterator_use, Block* target) {
-  if (!FLAG_harmony_iterator_close) return;
-
   //
   // This function adds two statements to [target], corresponding to the
   // following code:
@@ -6813,8 +6866,6 @@
 
 
 Statement* ParserTraits::FinalizeForOfStatement(ForOfStatement* loop, int pos) {
-  if (!FLAG_harmony_iterator_close) return loop;
-
   //
   // This function replaces the loop with the following wrapping:
   //
diff --git a/src/parsing/parser.h b/src/parsing/parser.h
index 174b983..472dab9 100644
--- a/src/parsing/parser.h
+++ b/src/parsing/parser.h
@@ -658,7 +658,7 @@
 
   V8_INLINE void QueueDestructuringAssignmentForRewriting(
       Expression* assignment);
-  V8_INLINE void QueueNonPatternForRewriting(Expression* expr);
+  V8_INLINE void QueueNonPatternForRewriting(Expression* expr, bool* ok);
 
   void SetFunctionNameFromPropertyName(ObjectLiteralProperty* property,
                                        const AstRawString* name);
@@ -670,6 +670,8 @@
   V8_INLINE void RewriteNonPattern(Type::ExpressionClassifier* classifier,
                                    bool* ok);
 
+  V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>*
+      GetReportedErrorList() const;
   V8_INLINE Zone* zone() const;
 
   V8_INLINE ZoneList<Expression*>* GetNonPatternList() const;
diff --git a/src/parsing/pattern-rewriter.cc b/src/parsing/pattern-rewriter.cc
index 3dcff98..970231b 100644
--- a/src/parsing/pattern-rewriter.cc
+++ b/src/parsing/pattern-rewriter.cc
@@ -461,9 +461,7 @@
   // wrap this new block in a try-finally statement, restore block_ to its
   // original value, and add the try-finally statement to block_.
   auto target = block_;
-  if (FLAG_harmony_iterator_close) {
-    block_ = factory()->NewBlock(nullptr, 8, true, nopos);
-  }
+  block_ = factory()->NewBlock(nullptr, 8, true, nopos);
 
   Spread* spread = nullptr;
   for (Expression* value : *node->values()) {
@@ -551,7 +549,7 @@
     block_->statements()->Add(if_not_done, zone());
 
     if (!(value->IsLiteral() && value->AsLiteral()->raw_value()->IsTheHole())) {
-      if (FLAG_harmony_iterator_close) {
+      {
         // completion = kAbruptCompletion;
         Expression* proxy = factory()->NewVariableProxy(completion);
         Expression* assignment = factory()->NewAssignment(
@@ -563,7 +561,7 @@
 
       RecurseIntoSubpattern(value, factory()->NewVariableProxy(v));
 
-      if (FLAG_harmony_iterator_close) {
+      {
         // completion = kNormalCompletion;
         Expression* proxy = factory()->NewVariableProxy(completion);
         Expression* assignment = factory()->NewAssignment(
@@ -676,13 +674,11 @@
                           factory()->NewVariableProxy(array));
   }
 
-  if (FLAG_harmony_iterator_close) {
-    Expression* closing_condition = factory()->NewUnaryOperation(
-        Token::NOT, factory()->NewVariableProxy(done), nopos);
-    parser_->FinalizeIteratorUse(completion, closing_condition, iterator,
-                                 block_, target);
-    block_ = target;
-  }
+  Expression* closing_condition = factory()->NewUnaryOperation(
+      Token::NOT, factory()->NewVariableProxy(done), nopos);
+  parser_->FinalizeIteratorUse(completion, closing_condition, iterator, block_,
+                               target);
+  block_ = target;
 }
 
 
diff --git a/src/parsing/preparse-data.cc b/src/parsing/preparse-data.cc
index d02cd63..e1ef74c 100644
--- a/src/parsing/preparse-data.cc
+++ b/src/parsing/preparse-data.cc
@@ -2,11 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "src/parsing/preparse-data.h"
+#include "src/base/hashmap.h"
 #include "src/base/logging.h"
 #include "src/globals.h"
-#include "src/hashmap.h"
 #include "src/parsing/parser.h"
-#include "src/parsing/preparse-data.h"
 #include "src/parsing/preparse-data-format.h"
 
 namespace v8 {
diff --git a/src/parsing/preparse-data.h b/src/parsing/preparse-data.h
index 1c99450..ddc4d03 100644
--- a/src/parsing/preparse-data.h
+++ b/src/parsing/preparse-data.h
@@ -6,8 +6,8 @@
 #define V8_PARSING_PREPARSE_DATA_H_
 
 #include "src/allocation.h"
+#include "src/base/hashmap.h"
 #include "src/collector.h"
-#include "src/hashmap.h"
 #include "src/messages.h"
 #include "src/parsing/preparse-data-format.h"
 
diff --git a/src/parsing/preparser.cc b/src/parsing/preparser.cc
index 0a091c6..08d5eaf 100644
--- a/src/parsing/preparser.cc
+++ b/src/parsing/preparser.cc
@@ -9,7 +9,6 @@
 #include "src/conversions-inl.h"
 #include "src/conversions.h"
 #include "src/globals.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #include "src/parsing/parser-base.h"
 #include "src/parsing/preparse-data-format.h"
diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h
index 16eeab4..8eb95e7 100644
--- a/src/parsing/preparser.h
+++ b/src/parsing/preparser.h
@@ -7,7 +7,7 @@
 
 #include "src/ast/scopes.h"
 #include "src/bailout-reason.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/messages.h"
 #include "src/parsing/expression-classifier.h"
 #include "src/parsing/func-name-inferrer.h"
@@ -974,7 +974,7 @@
   }
 
   inline void QueueDestructuringAssignmentForRewriting(PreParserExpression) {}
-  inline void QueueNonPatternForRewriting(PreParserExpression) {}
+  inline void QueueNonPatternForRewriting(PreParserExpression, bool* ok) {}
 
   void SetFunctionNameFromPropertyName(PreParserExpression,
                                        PreParserIdentifier) {}
@@ -987,6 +987,8 @@
   inline PreParserExpression RewriteAwaitExpression(PreParserExpression value,
                                                     int pos);
 
+  V8_INLINE ZoneList<typename Type::ExpressionClassifier::Error>*
+      GetReportedErrorList() const;
   V8_INLINE Zone* zone() const;
   V8_INLINE ZoneList<PreParserExpression>* GetNonPatternList() const;
 
@@ -1214,13 +1216,19 @@
   return value;
 }
 
-Zone* PreParserTraits::zone() const {
-  return pre_parser_->function_state_->scope()->zone();
+ZoneList<PreParserExpression>* PreParserTraits::GetNonPatternList() const {
+  return pre_parser_->function_state_->non_patterns_to_rewrite();
 }
 
 
-ZoneList<PreParserExpression>* PreParserTraits::GetNonPatternList() const {
-  return pre_parser_->function_state_->non_patterns_to_rewrite();
+ZoneList<typename PreParserTraits::Type::ExpressionClassifier::Error>*
+PreParserTraits::GetReportedErrorList() const {
+  return pre_parser_->function_state_->GetReportedErrorList();
+}
+
+
+Zone* PreParserTraits::zone() const {
+  return pre_parser_->function_state_->scope()->zone();
 }
 
 
diff --git a/src/parsing/scanner.cc b/src/parsing/scanner.cc
index 6a9b32e..5fc848f 100644
--- a/src/parsing/scanner.cc
+++ b/src/parsing/scanner.cc
@@ -839,9 +839,6 @@
 }
 
 
-const int kMaxAscii = 127;
-
-
 Token::Value Scanner::ScanString() {
   uc32 quote = c0_;
   Advance<false, false>();  // consume quote
@@ -858,7 +855,7 @@
       Advance<false, false>();
       return Token::STRING;
     }
-    uc32 c = c0_;
+    char c = static_cast<char>(c0_);
     if (c == '\\') break;
     Advance<false, false>();
     AddLiteralChar(c);
@@ -1283,7 +1280,7 @@
   LiteralScope literal(this);
   if (IsInRange(c0_, 'a', 'z')) {
     do {
-      uc32 first_char = c0_;
+      char first_char = static_cast<char>(c0_);
       Advance<false, false>();
       AddLiteralChar(first_char);
     } while (IsInRange(c0_, 'a', 'z'));
@@ -1291,11 +1288,11 @@
     if (IsDecimalDigit(c0_) || IsInRange(c0_, 'A', 'Z') || c0_ == '_' ||
         c0_ == '$') {
       // Identifier starting with lowercase.
-      uc32 first_char = c0_;
+      char first_char = static_cast<char>(c0_);
       Advance<false, false>();
       AddLiteralChar(first_char);
       while (IsAsciiIdentifier(c0_)) {
-        uc32 first_char = c0_;
+        char first_char = static_cast<char>(c0_);
         Advance<false, false>();
         AddLiteralChar(first_char);
       }
@@ -1313,7 +1310,7 @@
     HandleLeadSurrogate();
   } else if (IsInRange(c0_, 'A', 'Z') || c0_ == '_' || c0_ == '$') {
     do {
-      uc32 first_char = c0_;
+      char first_char = static_cast<char>(c0_);
       Advance<false, false>();
       AddLiteralChar(first_char);
     } while (IsAsciiIdentifier(c0_));
@@ -1456,7 +1453,6 @@
         flag = RegExp::kMultiline;
         break;
       case 'u':
-        if (!FLAG_harmony_unicode_regexps) return Nothing<RegExp::Flags>();
         flag = RegExp::kUnicode;
         break;
       case 'y':
@@ -1590,7 +1586,7 @@
                                int value) {
   uint32_t hash = Hash(key, is_one_byte);
   byte* encoding = BackupKey(key, is_one_byte);
-  HashMap::Entry* entry = map_.LookupOrInsert(encoding, hash);
+  base::HashMap::Entry* entry = map_.LookupOrInsert(encoding, hash);
   int old_value = static_cast<int>(reinterpret_cast<intptr_t>(entry->value));
   entry->value =
     reinterpret_cast<void*>(static_cast<intptr_t>(value | old_value));
diff --git a/src/parsing/scanner.h b/src/parsing/scanner.h
index 0acc7ab..610091c 100644
--- a/src/parsing/scanner.h
+++ b/src/parsing/scanner.h
@@ -8,16 +8,16 @@
 #define V8_PARSING_SCANNER_H_
 
 #include "src/allocation.h"
+#include "src/base/hashmap.h"
 #include "src/base/logging.h"
 #include "src/char-predicates.h"
 #include "src/collector.h"
 #include "src/globals.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #include "src/messages.h"
 #include "src/parsing/token.h"
-#include "src/unicode.h"
 #include "src/unicode-decoder.h"
+#include "src/unicode.h"
 
 namespace v8 {
 namespace internal {
@@ -143,22 +143,32 @@
   UnicodeCache* unicode_constants_;
   // Backing store used to store strings used as hashmap keys.
   SequenceCollector<unsigned char> backing_store_;
-  HashMap map_;
+  base::HashMap map_;
   // Buffer used for string->number->canonical string conversions.
   char number_buffer_[kBufferSize];
 };
 
-
 // ----------------------------------------------------------------------------
 // LiteralBuffer -  Collector of chars of literals.
 
+const int kMaxAscii = 127;
+
 class LiteralBuffer {
  public:
   LiteralBuffer() : is_one_byte_(true), position_(0), backing_store_() { }
 
   ~LiteralBuffer() { backing_store_.Dispose(); }
 
-  INLINE(void AddChar(uint32_t code_unit)) {
+  INLINE(void AddChar(char code_unit)) {
+    if (position_ >= backing_store_.length()) ExpandBuffer();
+    DCHECK(is_one_byte_);
+    DCHECK(0 <= code_unit && code_unit <= kMaxAscii);
+    backing_store_[position_] = static_cast<byte>(code_unit);
+    position_ += kOneByteSize;
+    return;
+  }
+
+  INLINE(void AddChar(uc32 code_unit)) {
     if (position_ >= backing_store_.length()) ExpandBuffer();
     if (is_one_byte_) {
       if (code_unit <= unibrow::Latin1::kMaxChar) {
@@ -557,6 +567,11 @@
     next_.literal_chars->AddChar(c);
   }
 
+  INLINE(void AddLiteralChar(char c)) {
+    DCHECK_NOT_NULL(next_.literal_chars);
+    next_.literal_chars->AddChar(c);
+  }
+
   INLINE(void AddRawLiteralChar(uc32 c)) {
     DCHECK_NOT_NULL(next_.raw_literal_chars);
     next_.raw_literal_chars->AddChar(c);
diff --git a/src/perf-jit.cc b/src/perf-jit.cc
index 6f35514..df251fd 100644
--- a/src/perf-jit.cc
+++ b/src/perf-jit.cc
@@ -28,6 +28,7 @@
 #include "src/perf-jit.h"
 
 #include "src/assembler.h"
+#include "src/eh-frame.h"
 #include "src/objects-inl.h"
 
 #if V8_OS_LINUX
@@ -56,7 +57,13 @@
 };
 
 struct PerfJitBase {
-  enum PerfJitEvent { kLoad = 0, kMove = 1, kDebugInfo = 2, kClose = 3 };
+  enum PerfJitEvent {
+    kLoad = 0,
+    kMove = 1,
+    kDebugInfo = 2,
+    kClose = 3,
+    kUnwindingInfo = 4
+  };
 
   uint32_t event_;
   uint32_t size_;
@@ -85,6 +92,13 @@
   // Followed by entry_count_ instances of PerfJitDebugEntry.
 };
 
+struct PerfJitCodeUnwindingInfo : PerfJitBase {
+  uint64_t unwinding_size_;
+  uint64_t eh_frame_hdr_size_;
+  uint64_t mapped_size_;
+  // Followed by size_ - sizeof(PerfJitCodeUnwindingInfo) bytes of data.
+};
+
 const char PerfJitLogger::kFilenameFormatString[] = "./jit-%d.dump";
 
 // Extra padding for the PID in the filename
@@ -204,6 +218,9 @@
   uint32_t code_size = code->is_crankshafted() ? code->safepoint_table_offset()
                                                : code->instruction_size();
 
+  // Unwinding info comes right after debug info.
+  if (FLAG_perf_prof_unwinding_info) LogWriteUnwindingInfo(code);
+
   static const char string_terminator[] = "\0";
 
   PerfJitCodeLoad code_load;
@@ -303,6 +320,46 @@
   LogWriteBytes(padding_bytes, padding);
 }
 
+void PerfJitLogger::LogWriteUnwindingInfo(Code* code) {
+  EhFrameHdr eh_frame_hdr(code);
+
+  PerfJitCodeUnwindingInfo unwinding_info_header;
+  unwinding_info_header.event_ = PerfJitCodeLoad::kUnwindingInfo;
+  unwinding_info_header.time_stamp_ = GetTimestamp();
+  unwinding_info_header.eh_frame_hdr_size_ = EhFrameHdr::kRecordSize;
+
+  if (code->has_unwinding_info()) {
+    unwinding_info_header.unwinding_size_ = code->unwinding_info_size();
+    unwinding_info_header.mapped_size_ = unwinding_info_header.unwinding_size_;
+  } else {
+    unwinding_info_header.unwinding_size_ = EhFrameHdr::kRecordSize;
+    unwinding_info_header.mapped_size_ = 0;
+  }
+
+  int content_size = static_cast<int>(sizeof(unwinding_info_header) +
+                                      unwinding_info_header.unwinding_size_);
+  int padding_size = RoundUp(content_size, 8) - content_size;
+  unwinding_info_header.size_ = content_size + padding_size;
+
+  LogWriteBytes(reinterpret_cast<const char*>(&unwinding_info_header),
+                sizeof(unwinding_info_header));
+
+  if (code->has_unwinding_info()) {
+    // The last EhFrameHdr::kRecordSize bytes were a placeholder for the header.
+    // Discard them and write the actual eh_frame_hdr (below).
+    DCHECK_GE(code->unwinding_info_size(), EhFrameHdr::kRecordSize);
+    LogWriteBytes(reinterpret_cast<const char*>(code->unwinding_info_start()),
+                  code->unwinding_info_size() - EhFrameHdr::kRecordSize);
+  }
+
+  LogWriteBytes(reinterpret_cast<const char*>(&eh_frame_hdr),
+                EhFrameHdr::kRecordSize);
+
+  char padding_bytes[] = "\0\0\0\0\0\0\0\0";
+  DCHECK_LT(padding_size, sizeof(padding_bytes));
+  LogWriteBytes(padding_bytes, padding_size);
+}
+
 void PerfJitLogger::CodeMoveEvent(AbstractCode* from, Address to) {
   // Code relocation not supported.
   UNREACHABLE();
diff --git a/src/perf-jit.h b/src/perf-jit.h
index 25cc3b3..6efa4bb 100644
--- a/src/perf-jit.h
+++ b/src/perf-jit.h
@@ -66,11 +66,13 @@
   void LogWriteBytes(const char* bytes, int size);
   void LogWriteHeader();
   void LogWriteDebugInfo(Code* code, SharedFunctionInfo* shared);
+  void LogWriteUnwindingInfo(Code* code);
 
   static const uint32_t kElfMachIA32 = 3;
   static const uint32_t kElfMachX64 = 62;
   static const uint32_t kElfMachARM = 40;
   static const uint32_t kElfMachMIPS = 10;
+  static const uint32_t kElfMachARM64 = 183;
 
   uint32_t GetElfMach() {
 #if V8_TARGET_ARCH_IA32
@@ -81,6 +83,8 @@
     return kElfMachARM;
 #elif V8_TARGET_ARCH_MIPS
     return kElfMachMIPS;
+#elif V8_TARGET_ARCH_ARM64
+    return kElfMachARM64;
 #else
     UNIMPLEMENTED();
     return 0;
diff --git a/src/ppc/OWNERS b/src/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/ppc/OWNERS
+++ b/src/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/ppc/assembler-ppc.cc b/src/ppc/assembler-ppc.cc
index bf59955..2ce601e 100644
--- a/src/ppc/assembler-ppc.cc
+++ b/src/ppc/assembler-ppc.cc
@@ -166,31 +166,21 @@
      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();
-  }
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_,
+                                   reinterpret_cast<Address>(size), flush_mode);
 }
 
 // -----------------------------------------------------------------------------
@@ -267,6 +257,8 @@
   desc->constant_pool_size =
       (constant_pool_offset ? desc->instr_size - constant_pool_offset : 0);
   desc->origin = this;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -715,13 +707,11 @@
 
 
 void Assembler::bclr(BOfield bo, int condition_bit, LKBit lk) {
-  positions_recorder()->WriteRecordedPositions();
   emit(EXT1 | bo | condition_bit * B16 | BCLRX | lk);
 }
 
 
 void Assembler::bcctr(BOfield bo, int condition_bit, LKBit lk) {
-  positions_recorder()->WriteRecordedPositions();
   emit(EXT1 | bo | condition_bit * B16 | BCCTRX | lk);
 }
 
@@ -738,9 +728,6 @@
 
 
 void Assembler::bc(int branch_offset, BOfield bo, int condition_bit, LKBit lk) {
-  if (lk == SetLK) {
-    positions_recorder()->WriteRecordedPositions();
-  }
   int imm16 = branch_offset;
   CHECK(is_int16(imm16) && (imm16 & (kAAMask | kLKMask)) == 0);
   emit(BCX | bo | condition_bit * B16 | (imm16 & kImm16Mask) | lk);
@@ -748,9 +735,6 @@
 
 
 void Assembler::b(int branch_offset, LKBit lk) {
-  if (lk == SetLK) {
-    positions_recorder()->WriteRecordedPositions();
-  }
   int imm26 = branch_offset;
   CHECK(is_int26(imm26) && (imm26 & (kAAMask | kLKMask)) == 0);
   emit(BX | (imm26 & kImm26Mask) | lk);
diff --git a/src/ppc/assembler-ppc.h b/src/ppc/assembler-ppc.h
index a9cf730..24166e3 100644
--- a/src/ppc/assembler-ppc.h
+++ b/src/ppc/assembler-ppc.h
@@ -166,8 +166,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -206,6 +204,8 @@
 const Register kRootRegister = r29;          // Roots array pointer.
 const Register cp = r30;                     // JavaScript context pointer.
 
+static const bool kSimpleFPAliasing = true;
+
 // Double word FP register.
 struct DoubleRegister {
   enum Code {
@@ -219,8 +219,6 @@
   static const int kNumRegisters = Code::kAfterLast;
   static const int kMaxNumRegisters = kNumRegisters;
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
diff --git a/src/ppc/builtins-ppc.cc b/src/ppc/builtins-ppc.cc
index a6263cd..c3c2b84 100644
--- a/src/ppc/builtins-ppc.cc
+++ b/src/ppc/builtins-ppc.cc
@@ -17,8 +17,7 @@
 #define __ ACCESS_MASM(masm)
 
 
-void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- r3                 : number of arguments excluding receiver
   //  -- r4                 : target
@@ -37,23 +36,8 @@
   __ LoadP(cp, FieldMemOperand(r4, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(r4);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(r6);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(r4, r6);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
+  const int num_extra_args = 2;
+  __ Push(r4, r6);
 
   // JumpToExternalReference expects r3 to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -139,6 +123,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- r3                 : number of arguments
+  //  -- r4                 : function
+  //  -- cp                 : context
   //  -- lr                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -150,58 +136,69 @@
   DoubleRegister const reg = (kind == MathMaxMinKind::kMin) ? d2 : d1;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in r4 and the double value in d1.
-  __ LoadRoot(r4, root_index);
-  __ lfd(d1, FieldMemOperand(r4, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in r8 and the double value in d1.
+  __ LoadRoot(r8, root_index);
+  __ lfd(d1, FieldMemOperand(r8, HeapNumber::kValueOffset));
 
   // Setup state for loop
   // r5: address of arg[0] + kPointerSize
   // r6: number of slots to drop at exit (arguments + receiver)
-  __ ShiftLeftImm(r5, r3, Operand(kPointerSizeLog2));
-  __ add(r5, sp, r5);
-  __ addi(r6, r3, Operand(1));
+  __ addi(r7, r3, Operand(1));
 
   Label done_loop, loop;
   __ bind(&loop);
   {
     // Check if all parameters done.
-    __ cmpl(r5, sp);
-    __ ble(&done_loop);
+    __ subi(r3, r3, Operand(1));
+    __ cmpi(r3, Operand::Zero());
+    __ blt(&done_loop);
 
-    // Load the next parameter tagged value into r3.
-    __ LoadPU(r3, MemOperand(r5, -kPointerSize));
+    // Load the next parameter tagged value into r5.
+    __ ShiftLeftImm(r5, r3, Operand(kPointerSizeLog2));
+    __ LoadPX(r5, MemOperand(sp, r5));
 
     // Load the double value of the parameter into d2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
-    __ JumpIfSmi(r3, &convert_smi);
-    __ LoadP(r7, FieldMemOperand(r3, HeapObject::kMapOffset));
-    __ JumpIfRoot(r7, Heap::kHeapNumberMapRootIndex, &convert_number);
+    __ JumpIfSmi(r5, &convert_smi);
+    __ LoadP(r6, FieldMemOperand(r5, HeapObject::kMapOffset));
+    __ JumpIfRoot(r6, Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(r6);
-      __ Push(r4, r5, r6);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
-      __ Pop(r4, r5, r6);
-      __ SmiUntag(r6);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ PushStandardFrame(r4);
+      __ SmiTag(r3);
+      __ SmiTag(r7);
+      __ Push(r3, r7, r8);
+      __ mr(r3, r5);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
+      __ mr(r5, r3);
+      __ Pop(r3, r7, r8);
       {
         // Restore the double accumulator value (d1).
         Label done_restore;
-        __ SmiToDouble(d1, r4);
-        __ JumpIfSmi(r4, &done_restore);
-        __ lfd(d1, FieldMemOperand(r4, HeapNumber::kValueOffset));
+        __ SmiToDouble(d1, r8);
+        __ JumpIfSmi(r8, &done_restore);
+        __ lfd(d1, FieldMemOperand(r8, HeapNumber::kValueOffset));
         __ bind(&done_restore);
       }
+      __ SmiUntag(r7);
+      __ SmiUntag(r3);
+      // TODO(Jaideep): Add macro furtion for PopStandardFrame
+      if (FLAG_enable_embedded_constant_pool) {
+        __ Pop(r0, fp, kConstantPoolRegister, cp, r4);
+      } else {
+        __ Pop(r0, fp, cp, r4);
+      }
+      __ mtlr(r0);
     }
     __ b(&convert);
     __ bind(&convert_number);
-    __ lfd(d2, FieldMemOperand(r3, HeapNumber::kValueOffset));
+    __ lfd(d2, FieldMemOperand(r5, HeapNumber::kValueOffset));
     __ b(&done_convert);
     __ bind(&convert_smi);
-    __ SmiToDouble(d2, r3);
+    __ SmiToDouble(d2, r5);
     __ bind(&done_convert);
 
     // Perform the actual comparison with the accumulator value on the left hand
@@ -213,26 +210,26 @@
     __ b(CommuteCondition(cond_done), &compare_swap);
 
     // Left and right hand side are equal, check for -0 vs. +0.
-    __ TestDoubleIsMinusZero(reg, r7, r8);
+    __ TestDoubleIsMinusZero(reg, r9, r0);
     __ bne(&loop);
 
     // Update accumulator. Result is on the right hand side.
     __ bind(&compare_swap);
     __ fmr(d1, d2);
-    __ mr(r4, r3);
+    __ mr(r8, r5);
     __ b(&loop);
 
     // At least one side is NaN, which means that the result will be NaN too.
     // We still need to visit the rest of the arguments.
     __ bind(&compare_nan);
-    __ LoadRoot(r4, Heap::kNanValueRootIndex);
-    __ lfd(d1, FieldMemOperand(r4, HeapNumber::kValueOffset));
+    __ LoadRoot(r8, Heap::kNanValueRootIndex);
+    __ lfd(d1, FieldMemOperand(r8, HeapNumber::kValueOffset));
     __ b(&loop);
   }
 
   __ bind(&done_loop);
-  __ mr(r3, r4);
-  __ Drop(r6);
+  __ mr(r3, r8);
+  __ Drop(r7);
   __ Ret();
 }
 
@@ -259,8 +256,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0.
   __ bind(&no_arguments);
@@ -310,8 +306,7 @@
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
       __ Push(r4, r6);
       __ mr(r3, r5);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mr(r5, r3);
       __ Pop(r4, r6);
     }
@@ -711,8 +706,9 @@
   __ AssertGeneratorObject(r4);
 
   // Store input value into generator object.
-  __ StoreP(r3, FieldMemOperand(r4, JSGeneratorObject::kInputOffset), r0);
-  __ RecordWriteField(r4, JSGeneratorObject::kInputOffset, r3, r6,
+  __ StoreP(r3, FieldMemOperand(r4, JSGeneratorObject::kInputOrDebugPosOffset),
+            r0);
+  __ RecordWriteField(r4, JSGeneratorObject::kInputOrDebugPosOffset, r3, r6,
                       kLRHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -723,21 +719,27 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ mov(ip, Operand(last_step_action));
+  __ LoadByte(ip, MemOperand(ip), r0);
+  __ extsb(ip, ip);
+  __ cmpi(ip, Operand(StepIn));
+  __ bge(&prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+
+  __ mov(ip, Operand(debug_suspended_generator));
+  __ LoadP(ip, MemOperand(ip));
+  __ cmp(ip, r4);
+  __ beq(&prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Push receiver.
   __ LoadP(ip, FieldMemOperand(r4, JSGeneratorObject::kReceiverOffset));
@@ -843,6 +845,26 @@
       __ Jump(r6);
     }
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r4, r5, r7);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r4, r5);
+    __ LoadP(r7, FieldMemOperand(r4, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r4, r5);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(r4, r5);
+    __ LoadP(r7, FieldMemOperand(r4, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
 }
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
@@ -968,6 +990,20 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ LoadP(args_count,
+           MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ lwz(args_count,
+         FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  __ add(sp, sp, args_count);
+}
 
 // Generate code for entering a JS function with the interpreter.
 // On entry to the function the receiver and arguments have been pushed on the
@@ -1077,15 +1113,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // The return value is 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);
-
-  __ add(sp, sp, r5);
+  LeaveInterpreterFrame(masm, r5);
   __ blr();
 
   // If the bytecode array is no longer present, then the underlying function
@@ -1101,6 +1129,30 @@
   __ JumpToJSEntry(r7);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ LoadP(r4, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ LoadP(kContextRegister,
+           MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, r5);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(r3);
+
+    // Push function as argument and compile for baseline.
+    __ push(r4);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(r3);
+  }
+  __ blr();
+}
 
 static void Generate_InterpreterPushArgs(MacroAssembler* masm, Register index,
                                          Register count, Register scratch) {
@@ -1687,6 +1739,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- r3    : number of arguments
+  //  -- r4    : function
+  //  -- cp    : context
   //  -- lr    : return address
   //  -- sp[0] : receiver
   // -----------------------------------
@@ -1696,7 +1751,7 @@
   {
     __ Pop(r3);
     __ JumpIfSmi(r3, &receiver_not_date);
-    __ CompareObjectType(r3, r4, r5, JS_DATE_TYPE);
+    __ CompareObjectType(r3, r5, r6, JS_DATE_TYPE);
     __ bne(&receiver_not_date);
   }
 
@@ -1726,7 +1781,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ push(r3);
+    __ PushStandardFrame(r4);
+    __ LoadSmiLiteral(r7, Smi::FromInt(0));
+    __ push(r7);
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2696,6 +2758,76 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in r3.
+  __ AssertString(r3);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ lwz(r5, FieldMemOperand(r3, String::kHashFieldOffset));
+  __ And(r0, r5, Operand(String::kContainsCachedArrayIndexMask), SetRC);
+  __ bne(&runtime, cr0);
+  __ IndexFromHash(r5, r3);
+  __ blr();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(r3);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in r3.
+  STATIC_ASSERT(kSmiTag == 0);
+  __ TestIfSmi(r3, r0);
+  __ Ret(eq, cr0);
+
+  __ CompareObjectType(r3, r4, r4, HEAP_NUMBER_TYPE);
+  // r3: receiver
+  // r4: receiver instance type
+  __ Ret(eq);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in r3.
+  __ AssertNotNumber(r3);
+
+  __ CompareObjectType(r3, r4, r4, FIRST_NONSTRING_TYPE);
+  // r3: receiver
+  // r4: receiver instance type
+  __ Jump(masm->isolate()->builtins()->StringToNumber(), RelocInfo::CODE_TARGET,
+          lt);
+
+  Label not_oddball;
+  __ cmpi(r4, Operand(ODDBALL_TYPE));
+  __ bne(&not_oddball);
+  __ LoadP(r3, FieldMemOperand(r3, Oddball::kToNumberOffset));
+  __ blr();
+  __ bind(&not_oddball);
+
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(r3);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- r3 : actual number of arguments
diff --git a/src/ppc/code-stubs-ppc.cc b/src/ppc/code-stubs-ppc.cc
index f0f74c3..6065d02 100644
--- a/src/ppc/code-stubs-ppc.cc
+++ b/src/ppc/code-stubs-ppc.cc
@@ -21,70 +21,28 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler =
-      Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r3, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ ShiftLeftImm(r0, r3, Operand(kPointerSizeLog2));
+  __ StorePX(r4, MemOperand(sp, r0));
+  __ push(r4);
+  __ push(r5);
+  __ addi(r3, r3, Operand(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler =
-      Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r3, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(r3, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(r3, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
                                           Condition cond);
 static void EmitSmiNonsmiComparison(MacroAssembler* masm, Register lhs,
@@ -988,7 +946,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1407,7 +1365,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -1860,12 +1817,15 @@
   // r5 : feedback vector
   // r6 : slot in feedback vector (Smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
   DCHECK_EQ(*TypeFeedbackVector::UninitializedSentinel(masm->isolate()),
             masm->isolate()->heap()->uninitialized_symbol());
 
+  const int count_offset = FixedArray::kHeaderSize + kPointerSize;
+
   // Load the cache state into r8.
   __ SmiToPtrArrayOffset(r8, r6);
   __ add(r8, r5, r8);
@@ -1880,7 +1840,7 @@
   Register weak_value = r10;
   __ LoadP(weak_value, FieldMemOperand(r8, WeakCell::kValueOffset));
   __ cmp(r4, weak_value);
-  __ beq(&done);
+  __ beq(&done_increment_count);
   __ CompareRoot(r8, Heap::kmegamorphic_symbolRootIndex);
   __ beq(&done);
   __ LoadP(feedback_map, FieldMemOperand(r8, HeapObject::kMapOffset));
@@ -1903,7 +1863,7 @@
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, r8);
   __ cmp(r4, r8);
   __ bne(&megamorphic);
-  __ b(&done);
+  __ b(&done_increment_count);
 
   __ bind(&miss);
 
@@ -1933,12 +1893,31 @@
   // slot.
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ b(&done);
+  __ b(&done_initialize_count);
 
   __ bind(&not_array_function);
 
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ LoadSmiLiteral(r8, Smi::FromInt(1));
+  __ SmiToPtrArrayOffset(r7, r6);
+  __ add(r7, r5, r7);
+  __ StoreP(r8, FieldMemOperand(r7, count_offset), r0);
+  __ b(&done);
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ SmiToPtrArrayOffset(r8, r6);
+  __ add(r8, r5, r8);
+
+  __ LoadP(r7, FieldMemOperand(r8, count_offset));
+  __ AddSmiLiteral(r7, r7, Smi::FromInt(1), r0);
+  __ StoreP(r7, FieldMemOperand(r8, count_offset), r0);
+
   __ bind(&done);
 }
 
@@ -2008,7 +1987,7 @@
   __ SmiToPtrArrayOffset(r8, r6);
   __ add(r5, r5, r8);
   __ LoadP(r6, FieldMemOperand(r5, count_offset));
-  __ AddSmiLiteral(r6, r6, Smi::FromInt(CallICNexus::kCallCountIncrement), r0);
+  __ AddSmiLiteral(r6, r6, Smi::FromInt(1), r0);
   __ StoreP(r6, FieldMemOperand(r5, count_offset), r0);
 
   __ mr(r5, r7);
@@ -2056,7 +2035,7 @@
   // Increment the call count for monomorphic function calls.
   const int count_offset = FixedArray::kHeaderSize + kPointerSize;
   __ LoadP(r6, FieldMemOperand(r9, count_offset));
-  __ AddSmiLiteral(r6, r6, Smi::FromInt(CallICNexus::kCallCountIncrement), r0);
+  __ AddSmiLiteral(r6, r6, Smi::FromInt(1), r0);
   __ StoreP(r6, FieldMemOperand(r9, count_offset), r0);
 
   __ bind(&call_function);
@@ -2126,7 +2105,7 @@
   __ bne(&miss);
 
   // Initialize the call counter.
-  __ LoadSmiLiteral(r8, Smi::FromInt(CallICNexus::kCallCountIncrement));
+  __ LoadSmiLiteral(r8, Smi::FromInt(1));
   __ StoreP(r8, FieldMemOperand(r9, count_offset), r0);
 
   // Store the function. Use a stub since we need a frame for allocation.
@@ -2217,13 +2196,7 @@
     // index_ is consumed by runtime conversion function.
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
   __ Move(index_, r3);
@@ -2552,67 +2525,13 @@
   // r6: from index (untagged)
   __ SmiTag(r6, r6);
   StringCharAtGenerator generator(r3, r6, r5, r3, &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ Drop(3);
   __ Ret();
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in r3.
-  STATIC_ASSERT(kSmiTag == 0);
-  __ TestIfSmi(r3, r0);
-  __ Ret(eq, cr0);
-
-  __ CompareObjectType(r3, r4, r4, HEAP_NUMBER_TYPE);
-  // r3: receiver
-  // r4: receiver instance type
-  __ Ret(eq);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in r3.
-  __ AssertNotNumber(r3);
-
-  __ CompareObjectType(r3, r4, r4, FIRST_NONSTRING_TYPE);
-  // r3: receiver
-  // r4: receiver instance type
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub, lt);
-
-  Label not_oddball;
-  __ cmpi(r4, Operand(ODDBALL_TYPE));
-  __ bne(&not_oddball);
-  __ LoadP(r3, FieldMemOperand(r3, Oddball::kToNumberOffset));
-  __ blr();
-  __ bind(&not_oddball);
-
-  __ push(r3);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in r3.
-  __ AssertString(r3);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ lwz(r5, FieldMemOperand(r3, String::kHashFieldOffset));
-  __ And(r0, r5, Operand(String::kContainsCachedArrayIndexMask), SetRC);
-  __ bne(&runtime, cr0);
-  __ IndexFromHash(r5, r3);
-  __ blr();
-
-  __ bind(&runtime);
-  __ push(r3);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in r3.
   Label is_number;
@@ -2803,7 +2722,7 @@
   // Load r5 with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ Move(r5, handle(isolate()->heap()->undefined_value()));
+  __ Move(r5, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3677,14 +3596,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4339,18 +4258,11 @@
 }
 
 
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
-      isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = {FAST_ELEMENTS, FAST_HOLEY_ELEMENTS};
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4358,8 +4270,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4378,13 +4288,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4468,7 +4380,7 @@
   InternalArrayNoArgumentConstructorStub stub0(isolate(), kind);
   __ TailCallStub(&stub0, lt);
 
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN, gt);
 
   if (IsFastPackedElementsKind(kind)) {
@@ -4686,13 +4598,13 @@
   // specified by the function's internal formal parameter count.
   Label rest_parameters;
   __ LoadP(r3, MemOperand(r5, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ LoadP(r4, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(r6, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
   __ LoadWordArith(
-      r4, FieldMemOperand(r4, SharedFunctionInfo::kFormalParameterCountOffset));
+      r6, FieldMemOperand(r6, SharedFunctionInfo::kFormalParameterCountOffset));
 #if V8_TARGET_ARCH_PPC64
-  __ SmiTag(r4);
+  __ SmiTag(r6);
 #endif
-  __ sub(r3, r3, r4, LeaveOE, SetRC);
+  __ sub(r3, r3, r6, LeaveOE, SetRC);
   __ bgt(&rest_parameters, cr0);
 
   // Return an empty rest parameter array.
@@ -4739,6 +4651,7 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- r3 : number of rest parameters (tagged)
+    //  -- r4 : function
     //  -- r5 : pointer just past first rest parameters
     //  -- r9 : size of rest parameters
     //  -- lr : return address
@@ -4746,9 +4659,9 @@
 
     // Allocate space for the rest parameter array plus the backing store.
     Label allocate, done_allocate;
-    __ mov(r4, Operand(JSArray::kSize + FixedArray::kHeaderSize));
-    __ add(r4, r4, r9);
-    __ Allocate(r4, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
+    __ mov(r10, Operand(JSArray::kSize + FixedArray::kHeaderSize));
+    __ add(r10, r10, r9);
+    __ Allocate(r10, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r6.
@@ -4779,17 +4692,25 @@
     __ addi(r3, r7, Operand(kHeapObjectTag));
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ Cmpi(r10, Operand(Page::kMaxRegularHeapObjectSize), r0);
+    __ bgt(&too_big_for_new_space);
     {
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(r4);
-      __ Push(r3, r5, r4);
+      __ SmiTag(r10);
+      __ Push(r3, r5, r10);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ mr(r6, r3);
       __ Pop(r3, r5);
     }
     __ b(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ push(r4);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -5095,10 +5016,10 @@
   __ CmpSmiLiteral(ip, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0);
   __ beq(&arguments_adaptor);
   {
-    __ LoadP(r4, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
+    __ LoadP(r7, FieldMemOperand(r4, JSFunction::kSharedFunctionInfoOffset));
     __ LoadWordArith(
         r3,
-        FieldMemOperand(r4, SharedFunctionInfo::kFormalParameterCountOffset));
+        FieldMemOperand(r7, SharedFunctionInfo::kFormalParameterCountOffset));
 #if V8_TARGET_ARCH_PPC64
     __ SmiTag(r3);
 #endif
@@ -5118,6 +5039,7 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- r3 : number of rest parameters (tagged)
+  //  -- r4 : function
   //  -- r5 : pointer just past first rest parameters
   //  -- r9 : size of rest parameters
   //  -- lr : return address
@@ -5125,9 +5047,10 @@
 
   // Allocate space for the strict arguments object plus the backing store.
   Label allocate, done_allocate;
-  __ mov(r4, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ add(r4, r4, r9);
-  __ Allocate(r4, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
+  __ mov(r10,
+         Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
+  __ add(r10, r10, r9);
+  __ Allocate(r10, r6, r7, r8, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r6.
@@ -5160,47 +5083,27 @@
   __ addi(r3, r7, Operand(kHeapObjectTag));
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ Cmpi(r10, Operand(Page::kMaxRegularHeapObjectSize), r0);
+  __ bgt(&too_big_for_new_space);
   {
     FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-    __ SmiTag(r4);
-    __ Push(r3, r5, r4);
+    __ SmiTag(r10);
+    __ Push(r3, r5, r10);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ mr(r6, r3);
     __ Pop(r3, r5);
   }
   __ b(&done_allocate);
+
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ push(r4);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context = cp;
-  Register result = r3;
-  Register slot = r5;
-
-  // Go up the context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ LoadP(result, ContextMemOperand(context, Context::PREVIOUS_INDEX));
-    context = result;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ ShiftLeftImm(r0, slot, Operand(kPointerSizeLog2));
-  __ add(result, context, r0);
-  __ LoadP(result, ContextMemOperand(result));
-  __ LoadP(result, FieldMemOperand(result, PropertyCell::kValueOffset));
-
-  // If the result is not the_hole, return. Otherwise, handle in the runtime.
-  __ CompareRoot(result, Heap::kTheHoleValueRootIndex);
-  __ Ret(ne);
-
-  // Fallback to runtime.
-  __ SmiTag(slot);
-  __ Push(slot);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
-}
-
-
 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
   Register value = r3;
   Register slot = r5;
diff --git a/src/ppc/codegen-ppc.cc b/src/ppc/codegen-ppc.cc
index 2139d87..8f2f1cd 100644
--- a/src/ppc/codegen-ppc.cc
+++ b/src/ppc/codegen-ppc.cc
@@ -16,62 +16,6 @@
 
 #define __ masm.
 
-
-#if defined(USE_SIMULATOR)
-byte* fast_exp_ppc_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  return Simulator::current(isolate)
-      ->CallFPReturnsDouble(fast_exp_ppc_machine_code, x, 0);
-}
-#endif
-
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-
-  {
-    DoubleRegister input = d1;
-    DoubleRegister result = d2;
-    DoubleRegister double_scratch1 = d3;
-    DoubleRegister double_scratch2 = d4;
-    Register temp1 = r7;
-    Register temp2 = r8;
-    Register temp3 = r9;
-
-// Called from C
-    __ function_descriptor();
-
-    __ Push(temp3, temp2, temp1);
-    MathExpGenerator::EmitMathExp(&masm, input, result, double_scratch1,
-                                  double_scratch2, temp1, temp2, temp3);
-    __ Pop(temp3, temp2, temp1);
-    __ fmr(d1, result);
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(ABI_USES_FUNCTION_DESCRIPTORS || !RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_ppc_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
-
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
 #if defined(USE_SIMULATOR)
   return nullptr;
@@ -513,96 +457,6 @@
   __ bind(&done);
 }
 
-
-static MemOperand ExpConstant(int index, Register base) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm, DoubleRegister input,
-                                   DoubleRegister result,
-                                   DoubleRegister double_scratch1,
-                                   DoubleRegister double_scratch2,
-                                   Register temp1, Register temp2,
-                                   Register temp3) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch1));
-  DCHECK(!input.is(double_scratch2));
-  DCHECK(!result.is(double_scratch1));
-  DCHECK(!result.is(double_scratch2));
-  DCHECK(!double_scratch1.is(double_scratch2));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(!temp1.is(temp3));
-  DCHECK(!temp2.is(temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label zero, infinity, done;
-
-  __ mov(temp3, Operand(ExternalReference::math_exp_constants(0)));
-
-  __ lfd(double_scratch1, ExpConstant(0, temp3));
-  __ fcmpu(double_scratch1, input);
-  __ fmr(result, input);
-  __ bunordered(&done);
-  __ bge(&zero);
-
-  __ lfd(double_scratch2, ExpConstant(1, temp3));
-  __ fcmpu(input, double_scratch2);
-  __ bge(&infinity);
-
-  __ lfd(double_scratch1, ExpConstant(3, temp3));
-  __ lfd(result, ExpConstant(4, temp3));
-  __ fmul(double_scratch1, double_scratch1, input);
-  __ fadd(double_scratch1, double_scratch1, result);
-  __ MovDoubleLowToInt(temp2, double_scratch1);
-  __ fsub(double_scratch1, double_scratch1, result);
-  __ lfd(result, ExpConstant(6, temp3));
-  __ lfd(double_scratch2, ExpConstant(5, temp3));
-  __ fmul(double_scratch1, double_scratch1, double_scratch2);
-  __ fsub(double_scratch1, double_scratch1, input);
-  __ fsub(result, result, double_scratch1);
-  __ fmul(double_scratch2, double_scratch1, double_scratch1);
-  __ fmul(result, result, double_scratch2);
-  __ lfd(double_scratch2, ExpConstant(7, temp3));
-  __ fmul(result, result, double_scratch2);
-  __ fsub(result, result, double_scratch1);
-  __ lfd(double_scratch2, ExpConstant(8, temp3));
-  __ fadd(result, result, double_scratch2);
-  __ srwi(temp1, temp2, Operand(11));
-  __ andi(temp2, temp2, Operand(0x7ff));
-  __ addi(temp1, temp1, Operand(0x3ff));
-
-  // Must not call ExpConstant() after overwriting temp3!
-  __ mov(temp3, Operand(ExternalReference::math_exp_log_table()));
-  __ slwi(temp2, temp2, Operand(3));
-#if V8_TARGET_ARCH_PPC64
-  __ ldx(temp2, MemOperand(temp3, temp2));
-  __ sldi(temp1, temp1, Operand(52));
-  __ orx(temp2, temp1, temp2);
-  __ MovInt64ToDouble(double_scratch1, temp2);
-#else
-  __ add(ip, temp3, temp2);
-  __ lwz(temp3, MemOperand(ip, Register::kExponentOffset));
-  __ lwz(temp2, MemOperand(ip, Register::kMantissaOffset));
-  __ slwi(temp1, temp1, Operand(20));
-  __ orx(temp3, temp1, temp3);
-  __ MovInt64ToDouble(double_scratch1, temp3, temp2);
-#endif
-
-  __ fmul(result, result, double_scratch1);
-  __ b(&done);
-
-  __ bind(&zero);
-  __ fmr(result, kDoubleRegZero);
-  __ b(&done);
-
-  __ bind(&infinity);
-  __ lfd(result, ExpConstant(2, temp3));
-
-  __ bind(&done);
-}
-
 #undef __
 
 CodeAgingHelper::CodeAgingHelper(Isolate* isolate) {
diff --git a/src/ppc/codegen-ppc.h b/src/ppc/codegen-ppc.h
index c3cd9b3..ff487c3 100644
--- a/src/ppc/codegen-ppc.h
+++ b/src/ppc/codegen-ppc.h
@@ -23,18 +23,6 @@
  private:
   DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
 };
-
-class MathExpGenerator : public AllStatic {
- public:
-  // Register input isn't modified. All other registers are clobbered.
-  static void EmitMathExp(MacroAssembler* masm, DoubleRegister input,
-                          DoubleRegister result, DoubleRegister double_scratch1,
-                          DoubleRegister double_scratch2, Register temp1,
-                          Register temp2, Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/ppc/deoptimizer-ppc.cc b/src/ppc/deoptimizer-ppc.cc
index ead877e..39102a1 100644
--- a/src/ppc/deoptimizer-ppc.cc
+++ b/src/ppc/deoptimizer-ppc.cc
@@ -124,8 +124,7 @@
 
   // Save all double registers before messing with them.
   __ subi(sp, sp, Operand(kDoubleRegsSize));
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     const DoubleRegister dreg = DoubleRegister::from_code(code);
diff --git a/src/ppc/disasm-ppc.cc b/src/ppc/disasm-ppc.cc
index baba146..c0a02a8 100644
--- a/src/ppc/disasm-ppc.cc
+++ b/src/ppc/disasm-ppc.cc
@@ -39,6 +39,7 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
 
 //------------------------------------------------------------------------------
 
@@ -118,7 +119,7 @@
 
 // Print the double FP register name according to the active name converter.
 void Decoder::PrintDRegister(int reg) {
-  Print(DoubleRegister::from_code(reg).ToString());
+  Print(GetRegConfig()->GetDoubleRegisterName(reg));
 }
 
 
@@ -1401,7 +1402,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -1412,7 +1413,7 @@
 
 
 const char* NameConverter::NameOfCPURegister(int reg) const {
-  return v8::internal::Register::from_code(reg).ToString();
+  return v8::internal::GetRegConfig()->GetGeneralRegisterName(reg);
 }
 
 const char* NameConverter::NameOfByteCPURegister(int reg) const {
@@ -1461,7 +1462,7 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    v8::internal::PrintF(f, "%p    %08x      %s\n", prev_pc,
+    v8::internal::PrintF(f, "%p    %08x      %s\n", static_cast<void*>(prev_pc),
                          *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
   }
 }
diff --git a/src/ppc/interface-descriptors-ppc.cc b/src/ppc/interface-descriptors-ppc.cc
index 6426316..21fe1ef 100644
--- a/src/ppc/interface-descriptors-ppc.cc
+++ b/src/ppc/interface-descriptors-ppc.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {r3, r4, r5, r6, r7};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return r4; }
 const Register LoadDescriptor::NameRegister() { return r5; }
@@ -39,9 +47,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return r6; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return r5; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return r5; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r3; }
 
@@ -63,9 +68,6 @@
 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) {
   Register registers[] = {r5};
@@ -251,18 +253,18 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // r3 -- number of arguments
   // r4 -- function
   // r5 -- allocation site with elements kind
-  Register registers[] = {r4, r5};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  Register registers[] = {r4, r5, r3};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
 
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {r4, r5, r3};
@@ -270,24 +272,7 @@
 }
 
 
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // register state
-  // r3 -- number of arguments
-  // r4 -- constructor function
-  Register registers[] = {r4};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {r4, r3};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {r3};
diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc
index 0f5f3a7..bda6541 100644
--- a/src/ppc/macro-assembler-ppc.cc
+++ b/src/ppc/macro-assembler-ppc.cc
@@ -84,10 +84,6 @@
   Label start;
   bind(&start);
 
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  positions_recorder()->WriteRecordedPositions();
-
   // branch via link register and set LK bit for return point
   mtctr(target);
   bctrl();
@@ -128,11 +124,6 @@
   Label start;
   bind(&start);
 #endif
-
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  positions_recorder()->WriteRecordedPositions();
-
   // This can likely be optimized to make use of bc() with 24bit relative
   //
   // RecordRelocInfo(x.rmode_, x.imm_);
@@ -725,8 +716,7 @@
 
 MemOperand MacroAssembler::SafepointRegistersAndDoublesSlot(Register reg) {
   // General purpose registers are pushed last on the stack.
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   int doubles_size = config->num_allocatable_double_registers() * kDoubleSize;
   int register_offset = SafepointRegisterStackIndex(reg.code()) * kPointerSize;
   return MemOperand(sp, doubles_size + register_offset);
@@ -1047,9 +1037,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   LoadP(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  LoadP(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  LoadP(vector,
-        FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  LoadP(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  LoadP(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -1387,12 +1376,14 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  mov(r7, Operand(step_in_enabled));
-  lbz(r7, MemOperand(r7));
-  cmpi(r7, Operand::Zero());
-  beq(&skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  mov(r7, Operand(last_step_action));
+  LoadByte(r7, MemOperand(r7), r0);
+  extsb(r7, r7);
+  cmpi(r7, Operand(StepIn));
+  blt(&skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -4750,8 +4741,7 @@
   if (reg5.is_valid()) regs |= reg5.bit();
   if (reg6.is_valid()) regs |= reg6.bit();
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     Register candidate = Register::from_code(code);
diff --git a/src/ppc/simulator-ppc.cc b/src/ppc/simulator-ppc.cc
index 79dc825..1585845 100644
--- a/src/ppc/simulator-ppc.cc
+++ b/src/ppc/simulator-ppc.cc
@@ -23,6 +23,8 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
+
 // This macro provides a platform independent use of sscanf. The reason for
 // SScanF not being implemented in a platform independent way through
 // ::v8::internal::OS in the same way as SNPrintF is that the
@@ -315,7 +317,7 @@
             for (int i = 0; i < kNumRegisters; i++) {
               value = GetRegisterValue(i);
               PrintF("    %3s: %08" V8PRIxPTR,
-                     Register::from_code(i).ToString(), value);
+                     GetRegConfig()->GetGeneralRegisterName(i), value);
               if ((argc == 3 && strcmp(arg2, "fp") == 0) && i < 8 &&
                   (i % 2) == 0) {
                 dvalue = GetRegisterPairDoubleValue(i);
@@ -334,7 +336,7 @@
             for (int i = 0; i < kNumRegisters; i++) {
               value = GetRegisterValue(i);
               PrintF("     %3s: %08" V8PRIxPTR " %11" V8PRIdPTR,
-                     Register::from_code(i).ToString(), value, value);
+                     GetRegConfig()->GetGeneralRegisterName(i), value, value);
               if ((argc == 3 && strcmp(arg2, "fp") == 0) && i < 8 &&
                   (i % 2) == 0) {
                 dvalue = GetRegisterPairDoubleValue(i);
@@ -354,7 +356,7 @@
               dvalue = GetFPDoubleRegisterValue(i);
               uint64_t as_words = bit_cast<uint64_t>(dvalue);
               PrintF("%3s: %f 0x%08x %08x\n",
-                     DoubleRegister::from_code(i).ToString(), dvalue,
+                     GetRegConfig()->GetDoubleRegisterName(i), dvalue,
                      static_cast<uint32_t>(as_words >> 32),
                      static_cast<uint32_t>(as_words & 0xffffffff));
             }
@@ -707,7 +709,7 @@
 }
 
 
-void Simulator::FlushICache(v8::internal::HashMap* i_cache, void* start_addr,
+void Simulator::FlushICache(base::HashMap* i_cache, void* start_addr,
                             size_t size) {
   intptr_t start = reinterpret_cast<intptr_t>(start_addr);
   int intra_line = (start & CachePage::kLineMask);
@@ -729,9 +731,8 @@
 }
 
 
-CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
-  v8::internal::HashMap::Entry* entry =
-      i_cache->LookupOrInsert(page, ICacheHash(page));
+CachePage* Simulator::GetCachePage(base::HashMap* i_cache, void* page) {
+  base::HashMap::Entry* entry = i_cache->LookupOrInsert(page, ICacheHash(page));
   if (entry->value == NULL) {
     CachePage* new_page = new CachePage();
     entry->value = new_page;
@@ -741,8 +742,7 @@
 
 
 // Flush from start up to and not including start + size.
-void Simulator::FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                             int size) {
+void Simulator::FlushOnePage(base::HashMap* i_cache, intptr_t start, int size) {
   DCHECK(size <= CachePage::kPageSize);
   DCHECK(AllOnOnePage(start, size - 1));
   DCHECK((start & CachePage::kLineMask) == 0);
@@ -754,9 +754,7 @@
   memset(valid_bytemap, CachePage::LINE_INVALID, size >> CachePage::kLineShift);
 }
 
-
-void Simulator::CheckICache(v8::internal::HashMap* i_cache,
-                            Instruction* instr) {
+void Simulator::CheckICache(base::HashMap* i_cache, Instruction* instr) {
   intptr_t address = reinterpret_cast<intptr_t>(instr);
   void* page = reinterpret_cast<void*>(address & (~CachePage::kPageMask));
   void* line = reinterpret_cast<void*>(address & (~CachePage::kLineMask));
@@ -789,7 +787,7 @@
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
-    i_cache_ = new v8::internal::HashMap(&ICacheMatch);
+    i_cache_ = new base::HashMap(&ICacheMatch);
     isolate_->set_simulator_i_cache(i_cache_);
   }
   Initialize(isolate);
@@ -925,10 +923,10 @@
 
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
   if (i_cache != nullptr) {
-    for (HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
+    for (base::HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
          entry = i_cache->Next(entry)) {
       delete static_cast<CachePage*>(entry->value);
     }
@@ -1284,15 +1282,18 @@
             case ExternalReference::BUILTIN_FP_FP_CALL:
             case ExternalReference::BUILTIN_COMPARE_CALL:
               PrintF("Call to host function at %p with args %f, %f",
-                     FUNCTION_ADDR(generic_target), dval0, dval1);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)),
+                     dval0, dval1);
               break;
             case ExternalReference::BUILTIN_FP_CALL:
               PrintF("Call to host function at %p with arg %f",
-                     FUNCTION_ADDR(generic_target), dval0);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)),
+                     dval0);
               break;
             case ExternalReference::BUILTIN_FP_INT_CALL:
               PrintF("Call to host function at %p with args %f, %" V8PRIdPTR,
-                     FUNCTION_ADDR(generic_target), dval0, ival);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)),
+                     dval0, ival);
               break;
             default:
               UNREACHABLE();
@@ -1434,8 +1435,8 @@
               "Call to host function at %p,\n"
               "\t\t\t\targs %08" V8PRIxPTR ", %08" V8PRIxPTR ", %08" V8PRIxPTR
               ", %08" V8PRIxPTR ", %08" V8PRIxPTR ", %08" V8PRIxPTR,
-              FUNCTION_ADDR(target), arg[0], arg[1], arg[2], arg[3], arg[4],
-              arg[5]);
+              static_cast<void*>(FUNCTION_ADDR(target)), arg[0], arg[1],
+              arg[2], arg[3], arg[4], arg[5]);
           if (!stack_aligned) {
             PrintF(" with unaligned stack %08" V8PRIxPTR "\n",
                    get_register(sp));
diff --git a/src/ppc/simulator-ppc.h b/src/ppc/simulator-ppc.h
index a3b03dc..d3163e8 100644
--- a/src/ppc/simulator-ppc.h
+++ b/src/ppc/simulator-ppc.h
@@ -66,7 +66,7 @@
 // Running with a simulator.
 
 #include "src/assembler.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/ppc/constants-ppc.h"
 
 namespace v8 {
@@ -217,7 +217,7 @@
   // Call on program start.
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   // V8 generally calls into generated JS code with 5 parameters and into
   // generated RegExp code with 7 parameters. This is a convenience function,
@@ -239,8 +239,7 @@
   char* last_debugger_input() { return last_debugger_input_; }
 
   // ICache checking.
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size);
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size);
 
   // Returns true if pc register contains one of the 'special_values' defined
   // below (bad_lr, end_sim_pc).
@@ -330,10 +329,9 @@
   void ExecuteInstruction(Instruction* instr);
 
   // ICache.
-  static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr);
-  static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                           int size);
-  static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page);
+  static void CheckICache(base::HashMap* i_cache, Instruction* instr);
+  static void FlushOnePage(base::HashMap* i_cache, intptr_t start, int size);
+  static CachePage* GetCachePage(base::HashMap* i_cache, void* page);
 
   // Runtime call support.
   static void* RedirectExternalReference(
@@ -371,7 +369,7 @@
   char* last_debugger_input_;
 
   // Icache simulation
-  v8::internal::HashMap* i_cache_;
+  base::HashMap* i_cache_;
 
   // Registered breakpoints.
   Instruction* break_pc_;
diff --git a/src/profiler/allocation-tracker.cc b/src/profiler/allocation-tracker.cc
index 6acd191..d094d0e 100644
--- a/src/profiler/allocation-tracker.cc
+++ b/src/profiler/allocation-tracker.cc
@@ -151,8 +151,8 @@
 void AddressToTraceMap::Print() {
   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);
+    PrintF("[%p - %p] => %u\n", static_cast<void*>(it->second.start),
+           static_cast<void*>(it->first), it->second.trace_node_id);
   }
   PrintF("]\n");
 }
@@ -190,12 +190,10 @@
     delete *info;
 }
 
-
-AllocationTracker::AllocationTracker(
-    HeapObjectsMap* ids, StringsStorage* names)
+AllocationTracker::AllocationTracker(HeapObjectsMap* ids, StringsStorage* names)
     : ids_(ids),
       names_(names),
-      id_to_function_info_index_(HashMap::PointersMatch),
+      id_to_function_info_index_(base::HashMap::PointersMatch),
       info_index_for_other_state_(0) {
   FunctionInfo* info = new FunctionInfo();
   info->name = "(root)";
@@ -261,7 +259,7 @@
 
 unsigned AllocationTracker::AddFunctionInfo(SharedFunctionInfo* shared,
                                             SnapshotObjectId id) {
-  HashMap::Entry* entry = id_to_function_info_index_.LookupOrInsert(
+  base::HashMap::Entry* entry = id_to_function_info_index_.LookupOrInsert(
       reinterpret_cast<void*>(id), SnapshotObjectIdHash(id));
   if (entry->value == NULL) {
     FunctionInfo* info = new FunctionInfo();
diff --git a/src/profiler/allocation-tracker.h b/src/profiler/allocation-tracker.h
index dbcf4a7..45bd446 100644
--- a/src/profiler/allocation-tracker.h
+++ b/src/profiler/allocation-tracker.h
@@ -8,8 +8,8 @@
 #include <map>
 
 #include "include/v8-profiler.h"
+#include "src/base/hashmap.h"
 #include "src/handles.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #include "src/vector.h"
 
@@ -143,7 +143,7 @@
   AllocationTraceTree trace_tree_;
   unsigned allocation_trace_buffer_[kMaxAllocationTraceLength];
   List<FunctionInfo*> function_info_list_;
-  HashMap id_to_function_info_index_;
+  base::HashMap id_to_function_info_index_;
   List<UnresolvedLocation*> unresolved_locations_;
   unsigned info_index_for_other_state_;
   AddressToTraceMap address_to_trace_;
diff --git a/src/profiler/cpu-profiler.cc b/src/profiler/cpu-profiler.cc
index 5e4a444..42b5fdf 100644
--- a/src/profiler/cpu-profiler.cc
+++ b/src/profiler/cpu-profiler.cc
@@ -21,7 +21,7 @@
 
 
 ProfilerEventsProcessor::ProfilerEventsProcessor(ProfileGenerator* generator,
-                                                 Sampler* sampler,
+                                                 sampler::Sampler* sampler,
                                                  base::TimeDelta period)
     : Thread(Thread::Options("v8:ProfEvntProc", kProfilerStackSize)),
       generator_(generator),
@@ -199,299 +199,23 @@
   }
 }
 
-
-void CpuProfiler::CallbackEvent(Name* name, Address entry_point) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = entry_point;
-  rec->entry = profiles_->NewCodeEntry(
-      Logger::CALLBACK_TAG,
-      profiles_->GetName(name));
-  rec->size = 1;
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
-                                  AbstractCode* code, const char* name) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = code->address();
-  rec->entry = profiles_->NewCodeEntry(
-      tag, profiles_->GetFunctionName(name), CodeEntry::kEmptyNamePrefix,
-      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
-      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
-  RecordInliningInfo(rec->entry, code);
-  rec->size = code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
-                                  AbstractCode* code, Name* name) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = code->address();
-  rec->entry = profiles_->NewCodeEntry(
-      tag, profiles_->GetFunctionName(name), CodeEntry::kEmptyNamePrefix,
-      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
-      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
-  RecordInliningInfo(rec->entry, code);
-  rec->size = code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
-                                  AbstractCode* code,
-                                  SharedFunctionInfo* shared,
-                                  Name* script_name) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = code->address();
-  rec->entry = profiles_->NewCodeEntry(
-      tag, profiles_->GetFunctionName(shared->DebugName()),
-      CodeEntry::kEmptyNamePrefix,
-      profiles_->GetName(InferScriptName(script_name, shared)),
-      CpuProfileNode::kNoLineNumberInfo, CpuProfileNode::kNoColumnNumberInfo,
-      NULL, code->instruction_start());
-  RecordInliningInfo(rec->entry, code);
-  rec->entry->FillFunctionInfo(shared);
-  rec->size = code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
-                                  AbstractCode* abstract_code,
-                                  SharedFunctionInfo* shared, Name* script_name,
-                                  int line, int column) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = abstract_code->address();
-  Script* script = Script::cast(shared->script());
-  JITLineInfoTable* line_table = NULL;
-  if (script) {
-    if (abstract_code->IsCode()) {
-      Code* code = abstract_code->GetCode();
-      int start_position = shared->start_position();
-      int end_position = shared->end_position();
-      line_table = new JITLineInfoTable();
-      for (RelocIterator it(code); !it.done(); it.next()) {
-        RelocInfo* reloc_info = it.rinfo();
-        if (!RelocInfo::IsPosition(reloc_info->rmode())) continue;
-        int position = static_cast<int>(reloc_info->data());
-        // TODO(alph): in case of inlining the position may correspond
-        // to an inlined function source code. Do not collect positions
-        // that fall beyond the function source code. There's however a
-        // chance the inlined function has similar positions but in another
-        // script. So the proper fix is to store script_id in some form
-        // along with the inlined function positions.
-        if (position < start_position || position >= end_position) continue;
-        int pc_offset = static_cast<int>(reloc_info->pc() - code->address());
-        int line_number = script->GetLineNumber(position) + 1;
-        line_table->SetPosition(pc_offset, line_number);
-      }
-    } else {
-      BytecodeArray* bytecode = abstract_code->GetBytecodeArray();
-      line_table = new JITLineInfoTable();
-      interpreter::SourcePositionTableIterator it(
-          bytecode->source_position_table());
-      for (; !it.done(); it.Advance()) {
-        int line_number = script->GetLineNumber(it.source_position()) + 1;
-        int pc_offset = it.bytecode_offset() + BytecodeArray::kHeaderSize;
-        line_table->SetPosition(pc_offset, line_number);
-      }
+void CpuProfiler::CodeEventHandler(const CodeEventsContainer& evt_rec) {
+  switch (evt_rec.generic.type) {
+    case CodeEventRecord::CODE_CREATION:
+    case CodeEventRecord::CODE_MOVE:
+    case CodeEventRecord::CODE_DISABLE_OPT:
+      processor_->Enqueue(evt_rec);
+      break;
+    case CodeEventRecord::CODE_DEOPT: {
+      const CodeDeoptEventRecord* rec = &evt_rec.CodeDeoptEventRecord_;
+      Address pc = reinterpret_cast<Address>(rec->pc);
+      int fp_to_sp_delta = rec->fp_to_sp_delta;
+      processor_->Enqueue(evt_rec);
+      processor_->AddDeoptStack(isolate_, pc, fp_to_sp_delta);
+      break;
     }
-  }
-  rec->entry = profiles_->NewCodeEntry(
-      tag, profiles_->GetFunctionName(shared->DebugName()),
-      CodeEntry::kEmptyNamePrefix,
-      profiles_->GetName(InferScriptName(script_name, shared)), line, column,
-      line_table, abstract_code->instruction_start());
-  RecordInliningInfo(rec->entry, abstract_code);
-  RecordDeoptInlinedFrames(rec->entry, abstract_code);
-  rec->entry->FillFunctionInfo(shared);
-  rec->size = abstract_code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeCreateEvent(Logger::LogEventsAndTags tag,
-                                  AbstractCode* code, int args_count) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = code->address();
-  rec->entry = profiles_->NewCodeEntry(
-      tag, profiles_->GetName(args_count), "args_count: ",
-      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
-      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
-  RecordInliningInfo(rec->entry, code);
-  rec->size = code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeMoveEvent(AbstractCode* from, Address to) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_MOVE);
-  CodeMoveEventRecord* rec = &evt_rec.CodeMoveEventRecord_;
-  rec->from = from->address();
-  rec->to = to;
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeDisableOptEvent(AbstractCode* code,
-                                      SharedFunctionInfo* shared) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_DISABLE_OPT);
-  CodeDisableOptEventRecord* rec = &evt_rec.CodeDisableOptEventRecord_;
-  rec->start = code->address();
-  rec->bailout_reason = GetBailoutReason(shared->disable_optimization_reason());
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_DEOPT);
-  CodeDeoptEventRecord* rec = &evt_rec.CodeDeoptEventRecord_;
-  Deoptimizer::DeoptInfo info = Deoptimizer::GetDeoptInfo(code, pc);
-  rec->start = code->address();
-  rec->deopt_reason = Deoptimizer::GetDeoptReason(info.deopt_reason);
-  rec->position = info.position;
-  rec->deopt_id = info.deopt_id;
-  processor_->Enqueue(evt_rec);
-  processor_->AddDeoptStack(isolate_, pc, fp_to_sp_delta);
-}
-
-void CpuProfiler::GetterCallbackEvent(Name* name, Address entry_point) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = entry_point;
-  rec->entry = profiles_->NewCodeEntry(
-      Logger::CALLBACK_TAG,
-      profiles_->GetName(name),
-      "get ");
-  rec->size = 1;
-  processor_->Enqueue(evt_rec);
-}
-
-void CpuProfiler::RegExpCodeCreateEvent(AbstractCode* code, String* source) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = code->address();
-  rec->entry = profiles_->NewCodeEntry(
-      Logger::REG_EXP_TAG, profiles_->GetName(source), "RegExp: ",
-      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
-      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
-  rec->size = code->ExecutableSize();
-  processor_->Enqueue(evt_rec);
-}
-
-
-void CpuProfiler::SetterCallbackEvent(Name* name, Address entry_point) {
-  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
-  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
-  rec->start = entry_point;
-  rec->entry = profiles_->NewCodeEntry(
-      Logger::CALLBACK_TAG,
-      profiles_->GetName(name),
-      "set ");
-  rec->size = 1;
-  processor_->Enqueue(evt_rec);
-}
-
-Name* CpuProfiler::InferScriptName(Name* name, SharedFunctionInfo* info) {
-  if (name->IsString() && String::cast(name)->length()) return name;
-  if (!info->script()->IsScript()) return name;
-  Object* source_url = Script::cast(info->script())->source_url();
-  return source_url->IsName() ? Name::cast(source_url) : name;
-}
-
-void CpuProfiler::RecordInliningInfo(CodeEntry* entry,
-                                     AbstractCode* abstract_code) {
-  if (!abstract_code->IsCode()) return;
-  Code* code = abstract_code->GetCode();
-  if (code->kind() != Code::OPTIMIZED_FUNCTION) return;
-  DeoptimizationInputData* deopt_input_data =
-      DeoptimizationInputData::cast(code->deoptimization_data());
-  int deopt_count = deopt_input_data->DeoptCount();
-  for (int i = 0; i < deopt_count; i++) {
-    int pc_offset = deopt_input_data->Pc(i)->value();
-    if (pc_offset == -1) continue;
-    int translation_index = deopt_input_data->TranslationIndex(i)->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));
-    int depth = 0;
-    std::vector<CodeEntry*> inline_stack;
-    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;
-      }
-      it.Next();  // Skip ast_id
-      int shared_info_id = it.Next();
-      it.Next();  // Skip height
-      SharedFunctionInfo* shared_info = SharedFunctionInfo::cast(
-          deopt_input_data->LiteralArray()->get(shared_info_id));
-      if (!depth++) continue;  // Skip the current function itself.
-      CodeEntry* inline_entry = new CodeEntry(
-          entry->tag(), profiles_->GetFunctionName(shared_info->DebugName()),
-          CodeEntry::kEmptyNamePrefix, entry->resource_name(),
-          CpuProfileNode::kNoLineNumberInfo,
-          CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
-      inline_entry->FillFunctionInfo(shared_info);
-      inline_stack.push_back(inline_entry);
-    }
-    if (!inline_stack.empty()) {
-      entry->AddInlineStack(pc_offset, inline_stack);
-      DCHECK(inline_stack.empty());
-    }
-  }
-}
-
-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());
-    }
+    default:
+      UNREACHABLE();
   }
 }
 
@@ -499,15 +223,12 @@
     : isolate_(isolate),
       sampling_interval_(base::TimeDelta::FromMicroseconds(
           FLAG_cpu_profiler_sampling_interval)),
-      profiles_(new CpuProfilesCollection(isolate->heap())),
-      generator_(NULL),
-      processor_(NULL),
+      profiles_(new CpuProfilesCollection(isolate)),
       is_profiling_(false) {
+  profiles_->set_cpu_profiler(this);
 }
 
-
-CpuProfiler::CpuProfiler(Isolate* isolate,
-                         CpuProfilesCollection* test_profiles,
+CpuProfiler::CpuProfiler(Isolate* isolate, CpuProfilesCollection* test_profiles,
                          ProfileGenerator* test_generator,
                          ProfilerEventsProcessor* test_processor)
     : isolate_(isolate),
@@ -517,28 +238,25 @@
       generator_(test_generator),
       processor_(test_processor),
       is_profiling_(false) {
+  profiles_->set_cpu_profiler(this);
 }
 
-
 CpuProfiler::~CpuProfiler() {
   DCHECK(!is_profiling_);
-  delete profiles_;
 }
 
-
 void CpuProfiler::set_sampling_interval(base::TimeDelta value) {
   DCHECK(!is_profiling_);
   sampling_interval_ = value;
 }
 
-
 void CpuProfiler::ResetProfiles() {
-  delete profiles_;
-  profiles_ = new CpuProfilesCollection(isolate()->heap());
+  profiles_.reset(new CpuProfilesCollection(isolate_));
+  profiles_->set_cpu_profiler(this);
 }
 
 void CpuProfiler::CollectSample() {
-  if (processor_ != NULL) {
+  if (processor_) {
     processor_->AddCurrentStack(isolate_);
   }
 }
@@ -557,7 +275,7 @@
 
 
 void CpuProfiler::StartProcessorIfNotStarted() {
-  if (processor_ != NULL) {
+  if (processor_) {
     processor_->AddCurrentStack(isolate_);
     return;
   }
@@ -565,11 +283,15 @@
   // Disable logging when using the new implementation.
   saved_is_logging_ = logger->is_logging_;
   logger->is_logging_ = false;
-  generator_ = new ProfileGenerator(profiles_);
-  Sampler* sampler = logger->sampler();
-  processor_ = new ProfilerEventsProcessor(
-      generator_, sampler, sampling_interval_);
+  sampler::Sampler* sampler = logger->sampler();
+  generator_.reset(new ProfileGenerator(profiles_.get()));
+  processor_.reset(new ProfilerEventsProcessor(generator_.get(), sampler,
+                                               sampling_interval_));
+  logger->SetUpProfilerListener();
+  ProfilerListener* profiler_listener = logger->profiler_listener();
+  profiler_listener->AddObserver(this);
   is_profiling_ = true;
+  isolate_->set_is_profiling(true);
   // Enumerate stuff we already have in the heap.
   DCHECK(isolate_->heap()->HasBeenSetUp());
   if (!FLAG_prof_browser_mode) {
@@ -587,10 +309,10 @@
 
 
 CpuProfile* CpuProfiler::StopProfiling(const char* title) {
-  if (!is_profiling_) return NULL;
+  if (!is_profiling_) return nullptr;
   StopProcessorIfLastProfile(title);
   CpuProfile* result = profiles_->StopProfiling(title);
-  if (result != NULL) {
+  if (result) {
     result->Print();
   }
   return result;
@@ -598,7 +320,7 @@
 
 
 CpuProfile* CpuProfiler::StopProfiling(String* title) {
-  if (!is_profiling_) return NULL;
+  if (!is_profiling_) return nullptr;
   const char* profile_title = profiles_->GetName(title);
   StopProcessorIfLastProfile(profile_title);
   return profiles_->StopProfiling(profile_title);
@@ -606,19 +328,24 @@
 
 
 void CpuProfiler::StopProcessorIfLastProfile(const char* title) {
-  if (profiles_->IsLastProfile(title)) StopProcessor();
+  if (profiles_->IsLastProfile(title)) {
+    StopProcessor();
+  }
 }
 
 
 void CpuProfiler::StopProcessor() {
   Logger* logger = isolate_->logger();
-  Sampler* sampler = reinterpret_cast<Sampler*>(logger->ticker_);
+  sampler::Sampler* sampler =
+      reinterpret_cast<sampler::Sampler*>(logger->ticker_);
   is_profiling_ = false;
+  isolate_->set_is_profiling(false);
+  ProfilerListener* profiler_listener = logger->profiler_listener();
+  profiler_listener->RemoveObserver(this);
   processor_->StopSynchronously();
-  delete processor_;
-  delete generator_;
-  processor_ = NULL;
-  generator_ = NULL;
+  logger->TearDownProfilerListener();
+  processor_.reset();
+  generator_.reset();
   sampler->SetHasProcessingThread(false);
   sampler->DecreaseProfilingDepth();
   logger->is_logging_ = saved_is_logging_;
@@ -638,6 +365,5 @@
   }
 }
 
-
 }  // namespace internal
 }  // namespace v8
diff --git a/src/profiler/cpu-profiler.h b/src/profiler/cpu-profiler.h
index ed1e15f..d354aeb 100644
--- a/src/profiler/cpu-profiler.h
+++ b/src/profiler/cpu-profiler.h
@@ -5,14 +5,18 @@
 #ifndef V8_PROFILER_CPU_PROFILER_H_
 #define V8_PROFILER_CPU_PROFILER_H_
 
+#include <memory>
+
 #include "src/allocation.h"
 #include "src/base/atomic-utils.h"
 #include "src/base/atomicops.h"
 #include "src/base/platform/time.h"
 #include "src/compiler.h"
+#include "src/isolate.h"
+#include "src/libsampler/v8-sampler.h"
 #include "src/locked-queue.h"
 #include "src/profiler/circular-queue.h"
-#include "src/profiler/sampler.h"
+#include "src/profiler/profiler-listener.h"
 #include "src/profiler/tick-sample.h"
 
 namespace v8 {
@@ -82,6 +86,8 @@
   const char* deopt_reason;
   SourcePosition position;
   int deopt_id;
+  void* pc;
+  int fp_to_sp_delta;
 
   INLINE(void UpdateCodeMap(CodeMap* code_map));
 };
@@ -128,7 +134,7 @@
 class ProfilerEventsProcessor : public base::Thread {
  public:
   ProfilerEventsProcessor(ProfileGenerator* generator,
-                          Sampler* sampler,
+                          sampler::Sampler* sampler,
                           base::TimeDelta period);
   virtual ~ProfilerEventsProcessor();
 
@@ -166,7 +172,7 @@
   SampleProcessingResult ProcessOneSample();
 
   ProfileGenerator* generator_;
-  Sampler* sampler_;
+  sampler::Sampler* sampler_;
   base::Atomic32 running_;
   const base::TimeDelta period_;  // Samples & code events processing period.
   LockedQueue<CodeEventsContainer> events_buffer_;
@@ -180,24 +186,11 @@
   unsigned last_processed_code_event_id_;
 };
 
-
-#define PROFILE(IsolateGetter, Call)                                        \
-  do {                                                                      \
-    Isolate* cpu_profiler_isolate = (IsolateGetter);                        \
-    v8::internal::Logger* logger = cpu_profiler_isolate->logger();          \
-    CpuProfiler* cpu_profiler = cpu_profiler_isolate->cpu_profiler();       \
-    if (logger->is_logging_code_events() || cpu_profiler->is_profiling()) { \
-      logger->Call;                                                         \
-    }                                                                       \
-  } while (false)
-
-
-class CpuProfiler : public CodeEventListener {
+class CpuProfiler : public CodeEventObserver {
  public:
   explicit CpuProfiler(Isolate* isolate);
 
-  CpuProfiler(Isolate* isolate,
-              CpuProfilesCollection* test_collection,
+  CpuProfiler(Isolate* isolate, CpuProfilesCollection* profiles,
               ProfileGenerator* test_generator,
               ProfilerEventsProcessor* test_processor);
 
@@ -214,41 +207,16 @@
   void DeleteAllProfiles();
   void DeleteProfile(CpuProfile* profile);
 
+  void CodeEventHandler(const CodeEventsContainer& evt_rec) override;
+
   // Invoked from stack sampler (thread or signal handler.)
   inline TickSample* StartTickSample();
   inline void FinishTickSample();
 
-  // Must be called via PROFILE macro, otherwise will crash when
-  // profiling is not enabled.
-  void CallbackEvent(Name* name, Address entry_point) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       const char* comment) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       Name* name) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, Name* script_name) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       SharedFunctionInfo* shared, Name* script_name, int line,
-                       int column) override;
-  void CodeCreateEvent(Logger::LogEventsAndTags tag, AbstractCode* code,
-                       int args_count) override;
-  void CodeMovingGCEvent() override {}
-  void CodeMoveEvent(AbstractCode* from, Address to) override;
-  void CodeDisableOptEvent(AbstractCode* code,
-                           SharedFunctionInfo* shared) override;
-  void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta);
-  void GetterCallbackEvent(Name* name, Address entry_point) override;
-  void RegExpCodeCreateEvent(AbstractCode* code, String* source) override;
-  void SetterCallbackEvent(Name* name, Address entry_point) override;
-  void SharedFunctionInfoMoveEvent(Address from, Address to) override {}
+  bool is_profiling() const { return is_profiling_; }
 
-  INLINE(bool is_profiling() const) { return is_profiling_; }
-  bool* is_profiling_address() {
-    return &is_profiling_;
-  }
-
-  ProfileGenerator* generator() const { return generator_; }
-  ProfilerEventsProcessor* processor() const { return processor_; }
+  ProfileGenerator* generator() const { return generator_.get(); }
+  ProfilerEventsProcessor* processor() const { return processor_.get(); }
   Isolate* isolate() const { return isolate_; }
 
  private:
@@ -257,15 +225,12 @@
   void StopProcessor();
   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_;
+  Isolate* const isolate_;
   base::TimeDelta sampling_interval_;
-  CpuProfilesCollection* profiles_;
-  ProfileGenerator* generator_;
-  ProfilerEventsProcessor* processor_;
+  std::unique_ptr<CpuProfilesCollection> profiles_;
+  std::unique_ptr<ProfileGenerator> generator_;
+  std::unique_ptr<ProfilerEventsProcessor> processor_;
   bool saved_is_logging_;
   bool is_profiling_;
 
diff --git a/src/profiler/heap-snapshot-generator.cc b/src/profiler/heap-snapshot-generator.cc
index e67acef..c80877f 100644
--- a/src/profiler/heap-snapshot-generator.cc
+++ b/src/profiler/heap-snapshot-generator.cc
@@ -80,8 +80,8 @@
 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" PRIuS " @%6u %*c %s%s: ", self_size(), id(), indent,
-                  ' ', prefix, edge_name);
+  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_);
   } else {
@@ -392,7 +392,7 @@
       entries_.at(to_entry_info_index).addr = NULL;
     }
   } else {
-    HashMap::Entry* to_entry =
+    base::HashMap::Entry* to_entry =
         entries_map_.LookupOrInsert(to, ComputePointerHash(to));
     if (to_entry->value != NULL) {
       // We found the existing entry with to address for an old object.
@@ -412,10 +412,8 @@
     // object is migrated.
     if (FLAG_heap_profiler_trace_objects) {
       PrintF("Move object from %p to %p old size %6d new size %6d\n",
-             from,
-             to,
-             entries_.at(from_entry_info_index).size,
-             object_size);
+             static_cast<void*>(from), static_cast<void*>(to),
+             entries_.at(from_entry_info_index).size, object_size);
     }
     entries_.at(from_entry_info_index).size = object_size;
     to_entry->value = from_value;
@@ -430,7 +428,8 @@
 
 
 SnapshotObjectId HeapObjectsMap::FindEntry(Address addr) {
-  HashMap::Entry* entry = entries_map_.Lookup(addr, ComputePointerHash(addr));
+  base::HashMap::Entry* entry =
+      entries_map_.Lookup(addr, ComputePointerHash(addr));
   if (entry == NULL) return 0;
   int entry_index = static_cast<int>(reinterpret_cast<intptr_t>(entry->value));
   EntryInfo& entry_info = entries_.at(entry_index);
@@ -443,7 +442,7 @@
                                                 unsigned int size,
                                                 bool accessed) {
   DCHECK(static_cast<uint32_t>(entries_.length()) > entries_map_.occupancy());
-  HashMap::Entry* entry =
+  base::HashMap::Entry* entry =
       entries_map_.LookupOrInsert(addr, ComputePointerHash(addr));
   if (entry->value != NULL) {
     int entry_index =
@@ -452,9 +451,7 @@
     entry_info.accessed = accessed;
     if (FLAG_heap_profiler_trace_objects) {
       PrintF("Update object size : %p with old size %d and new size %d\n",
-             addr,
-             entry_info.size,
-             size);
+             static_cast<void*>(addr), entry_info.size, size);
     }
     entry_info.size = size;
     return entry_info.id;
@@ -487,9 +484,8 @@
     FindOrAddEntry(obj->address(), obj->Size());
     if (FLAG_heap_profiler_trace_objects) {
       PrintF("Update object      : %p %6d. Next address is %p\n",
-             obj->address(),
-             obj->Size(),
-             obj->address() + obj->Size());
+             static_cast<void*>(obj->address()), obj->Size(),
+             static_cast<void*>(obj->address() + obj->Size()));
     }
   }
   RemoveDeadEntries();
@@ -517,20 +513,16 @@
   void Print() const {
     if (expected_size == 0) {
       PrintF("Untracked object   : %p %6d. Next address is %p\n",
-             obj->address(),
-             obj->Size(),
-             obj->address() + obj->Size());
+             static_cast<void*>(obj->address()), obj->Size(),
+             static_cast<void*>(obj->address() + obj->Size()));
     } else if (obj->Size() != expected_size) {
-      PrintF("Wrong size %6d: %p %6d. Next address is %p\n",
-             expected_size,
-             obj->address(),
-             obj->Size(),
-             obj->address() + obj->Size());
+      PrintF("Wrong size %6d: %p %6d. Next address is %p\n", expected_size,
+             static_cast<void*>(obj->address()), obj->Size(),
+             static_cast<void*>(obj->address() + obj->Size()));
     } else {
       PrintF("Good object      : %p %6d. Next address is %p\n",
-             obj->address(),
-             expected_size,
-             obj->address() + obj->Size());
+             static_cast<void*>(obj->address()), expected_size,
+             static_cast<void*>(obj->address() + obj->Size()));
     }
   }
 };
@@ -554,7 +546,7 @@
   for (HeapObject* obj = iterator.next();
        obj != NULL;
        obj = iterator.next()) {
-    HashMap::Entry* entry =
+    base::HashMap::Entry* entry =
         entries_map_.Lookup(obj->address(), ComputePointerHash(obj->address()));
     if (entry == NULL) {
       ++untracked;
@@ -674,7 +666,7 @@
         entries_.at(first_free_entry) = entry_info;
       }
       entries_.at(first_free_entry).accessed = false;
-      HashMap::Entry* entry = entries_map_.Lookup(
+      base::HashMap::Entry* entry = entries_map_.Lookup(
           entry_info.addr, ComputePointerHash(entry_info.addr));
       DCHECK(entry);
       entry->value = reinterpret_cast<void*>(first_free_entry);
@@ -707,37 +699,28 @@
 
 
 size_t HeapObjectsMap::GetUsedMemorySize() const {
-  return
-      sizeof(*this) +
-      sizeof(HashMap::Entry) * entries_map_.capacity() +
-      GetMemoryUsedByList(entries_) +
-      GetMemoryUsedByList(time_intervals_);
+  return sizeof(*this) +
+         sizeof(base::HashMap::Entry) * entries_map_.capacity() +
+         GetMemoryUsedByList(entries_) + GetMemoryUsedByList(time_intervals_);
 }
 
-
-HeapEntriesMap::HeapEntriesMap()
-    : entries_(HashMap::PointersMatch) {
-}
-
+HeapEntriesMap::HeapEntriesMap() : entries_(base::HashMap::PointersMatch) {}
 
 int HeapEntriesMap::Map(HeapThing thing) {
-  HashMap::Entry* cache_entry = entries_.Lookup(thing, Hash(thing));
+  base::HashMap::Entry* cache_entry = entries_.Lookup(thing, Hash(thing));
   if (cache_entry == NULL) return HeapEntry::kNoEntry;
   return static_cast<int>(reinterpret_cast<intptr_t>(cache_entry->value));
 }
 
 
 void HeapEntriesMap::Pair(HeapThing thing, int entry) {
-  HashMap::Entry* cache_entry = entries_.LookupOrInsert(thing, Hash(thing));
+  base::HashMap::Entry* cache_entry =
+      entries_.LookupOrInsert(thing, Hash(thing));
   DCHECK(cache_entry->value == NULL);
   cache_entry->value = reinterpret_cast<void*>(static_cast<intptr_t>(entry));
 }
 
-
-HeapObjectsSet::HeapObjectsSet()
-    : entries_(HashMap::PointersMatch) {
-}
-
+HeapObjectsSet::HeapObjectsSet() : entries_(base::HashMap::PointersMatch) {}
 
 void HeapObjectsSet::Clear() {
   entries_.Clear();
@@ -760,7 +743,7 @@
 
 const char* HeapObjectsSet::GetTag(Object* obj) {
   HeapObject* object = HeapObject::cast(obj);
-  HashMap::Entry* cache_entry =
+  base::HashMap::Entry* cache_entry =
       entries_.Lookup(object, HeapEntriesMap::Hash(object));
   return cache_entry != NULL
       ? reinterpret_cast<const char*>(cache_entry->value)
@@ -771,7 +754,7 @@
 void HeapObjectsSet::SetTag(Object* obj, const char* tag) {
   if (!obj->IsHeapObject()) return;
   HeapObject* object = HeapObject::cast(obj);
-  HashMap::Entry* cache_entry =
+  base::HashMap::Entry* cache_entry =
       entries_.LookupOrInsert(object, HeapEntriesMap::Hash(object));
   cache_entry->value = const_cast<char*>(tag);
 }
@@ -1117,7 +1100,7 @@
   } else if (obj->IsJSFunction()) {
     JSFunction* js_fun = JSFunction::cast(js_obj);
     Object* proto_or_map = js_fun->prototype_or_initial_map();
-    if (!proto_or_map->IsTheHole()) {
+    if (!proto_or_map->IsTheHole(heap_->isolate())) {
       if (!proto_or_map->IsMap()) {
         SetPropertyReference(
             obj, entry,
@@ -1387,9 +1370,9 @@
   SetInternalReference(obj, entry,
                        "optimized_code_map", shared->optimized_code_map(),
                        SharedFunctionInfo::kOptimizedCodeMapOffset);
-  SetInternalReference(obj, entry,
-                       "feedback_vector", shared->feedback_vector(),
-                       SharedFunctionInfo::kFeedbackVectorOffset);
+  SetInternalReference(obj, entry, "feedback_metadata",
+                       shared->feedback_metadata(),
+                       SharedFunctionInfo::kFeedbackMetadataOffset);
 }
 
 
@@ -1567,6 +1550,7 @@
 
 
 void V8HeapExplorer::ExtractPropertyReferences(JSObject* js_obj, int entry) {
+  Isolate* isolate = js_obj->GetIsolate();
   if (js_obj->HasFastProperties()) {
     DescriptorArray* descs = js_obj->map()->instance_descriptors();
     int real_size = js_obj->map()->NumberOfOwnDescriptors();
@@ -1600,7 +1584,7 @@
     int length = dictionary->Capacity();
     for (int i = 0; i < length; ++i) {
       Object* k = dictionary->KeyAt(i);
-      if (dictionary->IsKey(k)) {
+      if (dictionary->IsKey(isolate, k)) {
         DCHECK(dictionary->ValueAt(i)->IsPropertyCell());
         PropertyCell* cell = PropertyCell::cast(dictionary->ValueAt(i));
         Object* value = cell->value();
@@ -1614,7 +1598,7 @@
     int length = dictionary->Capacity();
     for (int i = 0; i < length; ++i) {
       Object* k = dictionary->KeyAt(i);
-      if (dictionary->IsKey(k)) {
+      if (dictionary->IsKey(isolate, k)) {
         Object* value = dictionary->ValueAt(i);
         PropertyDetails details = dictionary->DetailsAt(i);
         SetDataOrAccessorPropertyReference(details.kind(), js_obj, entry,
@@ -1644,13 +1628,14 @@
 
 
 void V8HeapExplorer::ExtractElementReferences(JSObject* js_obj, int entry) {
+  Isolate* isolate = js_obj->GetIsolate();
   if (js_obj->HasFastObjectElements()) {
     FixedArray* elements = FixedArray::cast(js_obj->elements());
     int length = js_obj->IsJSArray() ?
         Smi::cast(JSArray::cast(js_obj)->length())->value() :
         elements->length();
     for (int i = 0; i < length; ++i) {
-      if (!elements->get(i)->IsTheHole()) {
+      if (!elements->get(i)->IsTheHole(isolate)) {
         SetElementReference(js_obj, entry, i, elements->get(i));
       }
     }
@@ -1659,7 +1644,7 @@
     int length = dictionary->Capacity();
     for (int i = 0; i < length; ++i) {
       Object* k = dictionary->KeyAt(i);
-      if (dictionary->IsKey(k)) {
+      if (dictionary->IsKey(isolate, k)) {
         DCHECK(k->IsNumber());
         uint32_t index = static_cast<uint32_t>(k->Number());
         SetElementReference(js_obj, entry, index, dictionary->ValueAt(i));
@@ -2261,8 +2246,7 @@
 
 
 NativeObjectsExplorer::~NativeObjectsExplorer() {
-  for (HashMap::Entry* p = objects_by_info_.Start();
-       p != NULL;
+  for (base::HashMap::Entry* p = objects_by_info_.Start(); p != NULL;
        p = objects_by_info_.Next(p)) {
     v8::RetainedObjectInfo* info =
         reinterpret_cast<v8::RetainedObjectInfo*>(p->key);
@@ -2271,8 +2255,7 @@
         reinterpret_cast<List<HeapObject*>* >(p->value);
     delete objects;
   }
-  for (HashMap::Entry* p = native_groups_.Start();
-       p != NULL;
+  for (base::HashMap::Entry* p = native_groups_.Start(); p != NULL;
        p = native_groups_.Next(p)) {
     v8::RetainedObjectInfo* info =
         reinterpret_cast<v8::RetainedObjectInfo*>(p->value);
@@ -2344,7 +2327,8 @@
 
 List<HeapObject*>* NativeObjectsExplorer::GetListMaybeDisposeInfo(
     v8::RetainedObjectInfo* info) {
-  HashMap::Entry* entry = objects_by_info_.LookupOrInsert(info, InfoHash(info));
+  base::HashMap::Entry* entry =
+      objects_by_info_.LookupOrInsert(info, InfoHash(info));
   if (entry->value != NULL) {
     info->Dispose();
   } else {
@@ -2360,8 +2344,7 @@
   FillRetainedObjects();
   FillImplicitReferences();
   if (EstimateObjectsCount() > 0) {
-    for (HashMap::Entry* p = objects_by_info_.Start();
-         p != NULL;
+    for (base::HashMap::Entry* p = objects_by_info_.Start(); p != NULL;
          p = objects_by_info_.Next(p)) {
       v8::RetainedObjectInfo* info =
           reinterpret_cast<v8::RetainedObjectInfo*>(p->key);
@@ -2413,7 +2396,7 @@
       label_copy,
       static_cast<int>(strlen(label_copy)),
       isolate_->heap()->HashSeed());
-  HashMap::Entry* entry =
+  base::HashMap::Entry* entry =
       native_groups_.LookupOrInsert(const_cast<char*>(label_copy), hash);
   if (entry->value == NULL) {
     entry->value = new NativeGroupRetainedObjectInfo(label);
@@ -2459,8 +2442,7 @@
 
 
 void NativeObjectsExplorer::SetRootNativeRootsReference() {
-  for (HashMap::Entry* entry = native_groups_.Start();
-       entry;
+  for (base::HashMap::Entry* entry = native_groups_.Start(); entry;
        entry = native_groups_.Next(entry)) {
     NativeGroupRetainedObjectInfo* group_info =
         static_cast<NativeGroupRetainedObjectInfo*>(entry->value);
@@ -2728,7 +2710,7 @@
 
 
 int HeapSnapshotJSONSerializer::GetStringId(const char* s) {
-  HashMap::Entry* cache_entry =
+  base::HashMap::Entry* cache_entry =
       strings_.LookupOrInsert(const_cast<char*>(s), StringHash(s));
   if (cache_entry->value == NULL) {
     cache_entry->value = reinterpret_cast<void*>(next_string_id_++);
@@ -3113,8 +3095,7 @@
 void HeapSnapshotJSONSerializer::SerializeStrings() {
   ScopedVector<const unsigned char*> sorted_strings(
       strings_.occupancy() + 1);
-  for (HashMap::Entry* entry = strings_.Start();
-       entry != NULL;
+  for (base::HashMap::Entry* entry = strings_.Start(); entry != NULL;
        entry = strings_.Next(entry)) {
     int index = static_cast<int>(reinterpret_cast<uintptr_t>(entry->value));
     sorted_strings[index] = reinterpret_cast<const unsigned char*>(entry->key);
diff --git a/src/profiler/heap-snapshot-generator.h b/src/profiler/heap-snapshot-generator.h
index 255f61d..a6bc385 100644
--- a/src/profiler/heap-snapshot-generator.h
+++ b/src/profiler/heap-snapshot-generator.h
@@ -259,7 +259,7 @@
   };
 
   SnapshotObjectId next_id_;
-  HashMap entries_map_;
+  base::HashMap entries_map_;
   List<EntryInfo> entries_;
   List<TimeInterval> time_intervals_;
   Heap* heap_;
@@ -297,7 +297,7 @@
         v8::internal::kZeroHashSeed);
   }
 
-  HashMap entries_;
+  base::HashMap entries_;
 
   friend class HeapObjectsSet;
 
@@ -316,7 +316,7 @@
   bool is_empty() const { return entries_.occupancy() == 0; }
 
  private:
-  HashMap entries_;
+  base::HashMap entries_;
 
   DISALLOW_COPY_AND_ASSIGN(HeapObjectsSet);
 };
@@ -521,8 +521,8 @@
   bool embedder_queried_;
   HeapObjectsSet in_groups_;
   // RetainedObjectInfo* -> List<HeapObject*>*
-  HashMap objects_by_info_;
-  HashMap native_groups_;
+  base::HashMap objects_by_info_;
+  base::HashMap native_groups_;
   HeapEntriesAllocator* synthetic_entries_allocator_;
   HeapEntriesAllocator* native_entries_allocator_;
   // Used during references extraction.
@@ -609,7 +609,7 @@
   static const int kNodeFieldsCount;
 
   HeapSnapshot* snapshot_;
-  HashMap strings_;
+  base::HashMap strings_;
   int next_node_id_;
   int next_string_id_;
   OutputStreamWriter* writer_;
diff --git a/src/profiler/profile-generator-inl.h b/src/profiler/profile-generator-inl.h
index 85edce2..0bb17e2 100644
--- a/src/profiler/profile-generator-inl.h
+++ b/src/profiler/profile-generator-inl.h
@@ -10,7 +10,7 @@
 namespace v8 {
 namespace internal {
 
-CodeEntry::CodeEntry(Logger::LogEventsAndTags tag, const char* name,
+CodeEntry::CodeEntry(CodeEventListener::LogEventsAndTags tag, const char* name,
                      const char* name_prefix, const char* resource_name,
                      int line_number, int column_number,
                      JITLineInfoTable* line_info, Address instruction_start)
@@ -29,7 +29,6 @@
       line_info_(line_info),
       instruction_start_(instruction_start) {}
 
-
 ProfileNode::ProfileNode(ProfileTree* tree, CodeEntry* entry)
     : tree_(tree),
       entry_(entry),
diff --git a/src/profiler/profile-generator.cc b/src/profiler/profile-generator.cc
index b07601f..d40cf2a 100644
--- a/src/profiler/profile-generator.cc
+++ b/src/profiler/profile-generator.cc
@@ -9,9 +9,9 @@
 #include "src/debug/debug.h"
 #include "src/deoptimizer.h"
 #include "src/global-handles.h"
+#include "src/profiler/cpu-profiler.h"
 #include "src/profiler/profile-generator-inl.h"
 #include "src/profiler/tick-sample.h"
-#include "src/splay-tree-inl.h"
 #include "src/unicode.h"
 
 namespace v8 {
@@ -48,6 +48,41 @@
 const char* const CodeEntry::kEmptyBailoutReason = "";
 const char* const CodeEntry::kNoDeoptReason = "";
 
+const char* const CodeEntry::kProgramEntryName = "(program)";
+const char* const CodeEntry::kIdleEntryName = "(idle)";
+const char* const CodeEntry::kGarbageCollectorEntryName = "(garbage collector)";
+const char* const CodeEntry::kUnresolvedFunctionName = "(unresolved function)";
+
+base::LazyDynamicInstance<CodeEntry, CodeEntry::ProgramEntryCreateTrait>::type
+    CodeEntry::kProgramEntry = LAZY_DYNAMIC_INSTANCE_INITIALIZER;
+
+base::LazyDynamicInstance<CodeEntry, CodeEntry::IdleEntryCreateTrait>::type
+    CodeEntry::kIdleEntry = LAZY_DYNAMIC_INSTANCE_INITIALIZER;
+
+base::LazyDynamicInstance<CodeEntry, CodeEntry::GCEntryCreateTrait>::type
+    CodeEntry::kGCEntry = LAZY_DYNAMIC_INSTANCE_INITIALIZER;
+
+base::LazyDynamicInstance<CodeEntry,
+                          CodeEntry::UnresolvedEntryCreateTrait>::type
+    CodeEntry::kUnresolvedEntry = LAZY_DYNAMIC_INSTANCE_INITIALIZER;
+
+CodeEntry* CodeEntry::ProgramEntryCreateTrait::Create() {
+  return new CodeEntry(Logger::FUNCTION_TAG, CodeEntry::kProgramEntryName);
+}
+
+CodeEntry* CodeEntry::IdleEntryCreateTrait::Create() {
+  return new CodeEntry(Logger::FUNCTION_TAG, CodeEntry::kIdleEntryName);
+}
+
+CodeEntry* CodeEntry::GCEntryCreateTrait::Create() {
+  return new CodeEntry(Logger::BUILTIN_TAG,
+                       CodeEntry::kGarbageCollectorEntryName);
+}
+
+CodeEntry* CodeEntry::UnresolvedEntryCreateTrait::Create() {
+  return new CodeEntry(Logger::FUNCTION_TAG,
+                       CodeEntry::kUnresolvedFunctionName);
+}
 
 CodeEntry::~CodeEntry() {
   delete line_info_;
@@ -94,7 +129,7 @@
 
 
 void CodeEntry::SetBuiltinId(Builtins::Name id) {
-  bit_field_ = TagField::update(bit_field_, Logger::BUILTIN_TAG);
+  bit_field_ = TagField::update(bit_field_, CodeEventListener::BUILTIN_TAG);
   bit_field_ = BuiltinIdField::update(bit_field_, id);
 }
 
@@ -170,14 +205,15 @@
 
 
 ProfileNode* ProfileNode::FindChild(CodeEntry* entry) {
-  HashMap::Entry* map_entry = children_.Lookup(entry, CodeEntryHash(entry));
+  base::HashMap::Entry* map_entry =
+      children_.Lookup(entry, CodeEntryHash(entry));
   return map_entry != NULL ?
       reinterpret_cast<ProfileNode*>(map_entry->value) : NULL;
 }
 
 
 ProfileNode* ProfileNode::FindOrAddChild(CodeEntry* entry) {
-  HashMap::Entry* map_entry =
+  base::HashMap::Entry* map_entry =
       children_.LookupOrInsert(entry, CodeEntryHash(entry));
   ProfileNode* node = reinterpret_cast<ProfileNode*>(map_entry->value);
   if (node == NULL) {
@@ -194,7 +230,7 @@
   if (src_line == v8::CpuProfileNode::kNoLineNumberInfo) return;
   // Increment a hit counter of a certain source line.
   // Add a new source line if not found.
-  HashMap::Entry* e =
+  base::HashMap::Entry* e =
       line_ticks_.LookupOrInsert(reinterpret_cast<void*>(src_line), src_line);
   DCHECK(e);
   e->value = reinterpret_cast<void*>(reinterpret_cast<uintptr_t>(e->value) + 1);
@@ -212,7 +248,7 @@
 
   v8::CpuProfileNode::LineTick* entry = entries;
 
-  for (HashMap::Entry* p = line_ticks_.Start(); p != NULL;
+  for (base::HashMap::Entry *p = line_ticks_.Start(); p != NULL;
        p = line_ticks_.Next(p), entry++) {
     entry->line =
         static_cast<unsigned int>(reinterpret_cast<uintptr_t>(p->key));
@@ -250,8 +286,7 @@
     base::OS::Print("%*s bailed out due to '%s'\n", indent + 10, "",
                     bailout_reason);
   }
-  for (HashMap::Entry* p = children_.Start();
-       p != NULL;
+  for (base::HashMap::Entry* p = children_.Start(); p != NULL;
        p = children_.Next(p)) {
     reinterpret_cast<ProfileNode*>(p->value)->Print(indent + 2);
   }
@@ -269,16 +304,14 @@
   void AfterChildTraversed(ProfileNode*, ProfileNode*) { }
 };
 
-
 ProfileTree::ProfileTree(Isolate* isolate)
-    : root_entry_(Logger::FUNCTION_TAG, "(root)"),
+    : root_entry_(CodeEventListener::FUNCTION_TAG, "(root)"),
       next_node_id_(1),
       root_(new ProfileNode(this, &root_entry_)),
       isolate_(isolate),
       next_function_id_(1),
       function_ids_(ProfileNode::CodeEntriesMatch) {}
 
-
 ProfileTree::~ProfileTree() {
   DeleteNodesCallback cb;
   TraverseDepthFirst(&cb);
@@ -287,7 +320,7 @@
 
 unsigned ProfileTree::GetFunctionId(const ProfileNode* node) {
   CodeEntry* code_entry = node->entry();
-  HashMap::Entry* entry =
+  base::HashMap::Entry* entry =
       function_ids_.LookupOrInsert(code_entry, code_entry->GetHash());
   if (!entry->value) {
     entry->value = reinterpret_cast<void*>(next_function_id_++);
@@ -366,12 +399,13 @@
   }
 }
 
-
-CpuProfile::CpuProfile(Isolate* isolate, const char* title, bool record_samples)
+CpuProfile::CpuProfile(CpuProfiler* profiler, const char* title,
+                       bool record_samples)
     : title_(title),
       record_samples_(record_samples),
       start_time_(base::TimeTicks::HighResolutionNow()),
-      top_down_(isolate) {}
+      top_down_(profiler->isolate()),
+      profiler_(profiler) {}
 
 void CpuProfile::AddPath(base::TimeTicks timestamp,
                          const std::vector<CodeEntry*>& path, int src_line,
@@ -384,92 +418,60 @@
   }
 }
 
-
 void CpuProfile::CalculateTotalTicksAndSamplingRate() {
   end_time_ = base::TimeTicks::HighResolutionNow();
 }
 
-
 void CpuProfile::Print() {
   base::OS::Print("[Top down]:\n");
   top_down_.Print();
 }
 
-
-CodeMap::~CodeMap() {}
-
-
-const CodeMap::CodeTreeConfig::Key CodeMap::CodeTreeConfig::kNoKey = NULL;
-
-
 void CodeMap::AddCode(Address addr, CodeEntry* entry, unsigned size) {
   DeleteAllCoveredCode(addr, addr + size);
-  CodeTree::Locator locator;
-  tree_.Insert(addr, &locator);
-  locator.set_value(CodeEntryInfo(entry, size));
+  code_map_.insert({addr, CodeEntryInfo(entry, size)});
 }
 
-
 void CodeMap::DeleteAllCoveredCode(Address start, Address end) {
-  List<Address> to_delete;
-  Address addr = end - 1;
-  while (addr >= start) {
-    CodeTree::Locator locator;
-    if (!tree_.FindGreatestLessThan(addr, &locator)) break;
-    Address start2 = locator.key(), end2 = start2 + locator.value().size;
-    if (start2 < end && start < end2) to_delete.Add(start2);
-    addr = start2 - 1;
+  auto left = code_map_.upper_bound(start);
+  if (left != code_map_.begin()) {
+    --left;
+    if (left->first + left->second.size <= start) ++left;
   }
-  for (int i = 0; i < to_delete.length(); ++i) tree_.Remove(to_delete[i]);
+  auto right = left;
+  while (right != code_map_.end() && right->first < end) ++right;
+  code_map_.erase(left, right);
 }
 
-
 CodeEntry* CodeMap::FindEntry(Address addr) {
-  CodeTree::Locator locator;
-  if (tree_.FindGreatestLessThan(addr, &locator)) {
-    // locator.key() <= addr. Need to check that addr is within entry.
-    const CodeEntryInfo& entry = locator.value();
-    if (addr < (locator.key() + entry.size)) {
-      return entry.entry;
-    }
-  }
-  return NULL;
+  auto it = code_map_.upper_bound(addr);
+  if (it == code_map_.begin()) return nullptr;
+  --it;
+  Address end_address = it->first + it->second.size;
+  return addr < end_address ? it->second.entry : nullptr;
 }
 
-
 void CodeMap::MoveCode(Address from, Address to) {
   if (from == to) return;
-  CodeTree::Locator locator;
-  if (!tree_.Find(from, &locator)) return;
-  CodeEntryInfo entry = locator.value();
-  tree_.Remove(from);
-  AddCode(to, entry.entry, entry.size);
+  auto it = code_map_.find(from);
+  if (it == code_map_.end()) return;
+  CodeEntryInfo info = it->second;
+  code_map_.erase(it);
+  AddCode(to, info.entry, info.size);
 }
 
-
-void CodeMap::CodeTreePrinter::Call(
-    const Address& key, const CodeMap::CodeEntryInfo& value) {
-  base::OS::Print("%p %5d %s\n", key, value.size, value.entry->name());
-}
-
-
 void CodeMap::Print() {
-  CodeTreePrinter printer;
-  tree_.ForEach(&printer);
+  for (auto it = code_map_.begin(); it != code_map_.end(); ++it) {
+    base::OS::Print("%p %5d %s\n", static_cast<void*>(it->first),
+                    it->second.size, it->second.entry->name());
+  }
 }
 
-
-CpuProfilesCollection::CpuProfilesCollection(Heap* heap)
-    : function_and_resource_names_(heap),
-      isolate_(heap->isolate()),
+CpuProfilesCollection::CpuProfilesCollection(Isolate* isolate)
+    : resource_names_(isolate->heap()),
+      profiler_(nullptr),
       current_profiles_semaphore_(1) {}
 
-
-static void DeleteCodeEntry(CodeEntry** entry_ptr) {
-  delete *entry_ptr;
-}
-
-
 static void DeleteCpuProfile(CpuProfile** profile_ptr) {
   delete *profile_ptr;
 }
@@ -478,7 +480,6 @@
 CpuProfilesCollection::~CpuProfilesCollection() {
   finished_profiles_.Iterate(DeleteCpuProfile);
   current_profiles_.Iterate(DeleteCpuProfile);
-  code_entries_.Iterate(DeleteCodeEntry);
 }
 
 
@@ -497,7 +498,7 @@
       return true;
     }
   }
-  current_profiles_.Add(new CpuProfile(isolate_, title, record_samples));
+  current_profiles_.Add(new CpuProfile(profiler_, title, record_samples));
   current_profiles_semaphore_.Signal();
   return true;
 }
@@ -555,43 +556,8 @@
   current_profiles_semaphore_.Signal();
 }
 
-
-CodeEntry* CpuProfilesCollection::NewCodeEntry(
-    Logger::LogEventsAndTags tag, const char* name, const char* name_prefix,
-    const char* resource_name, int line_number, int column_number,
-    JITLineInfoTable* line_info, Address instruction_start) {
-  CodeEntry* code_entry =
-      new CodeEntry(tag, name, name_prefix, resource_name, line_number,
-                    column_number, line_info, instruction_start);
-  code_entries_.Add(code_entry);
-  return code_entry;
-}
-
-
-const char* const ProfileGenerator::kProgramEntryName =
-    "(program)";
-const char* const ProfileGenerator::kIdleEntryName =
-    "(idle)";
-const char* const ProfileGenerator::kGarbageCollectorEntryName =
-    "(garbage collector)";
-const char* const ProfileGenerator::kUnresolvedFunctionName =
-    "(unresolved function)";
-
-
 ProfileGenerator::ProfileGenerator(CpuProfilesCollection* profiles)
-    : profiles_(profiles),
-      program_entry_(
-          profiles->NewCodeEntry(Logger::FUNCTION_TAG, kProgramEntryName)),
-      idle_entry_(
-          profiles->NewCodeEntry(Logger::FUNCTION_TAG, kIdleEntryName)),
-      gc_entry_(
-          profiles->NewCodeEntry(Logger::BUILTIN_TAG,
-                                 kGarbageCollectorEntryName)),
-      unresolved_entry_(
-          profiles->NewCodeEntry(Logger::FUNCTION_TAG,
-                                 kUnresolvedFunctionName)) {
-}
-
+    : profiles_(profiles) {}
 
 void ProfileGenerator::RecordTickSample(const TickSample& sample) {
   std::vector<CodeEntry*> entries;
@@ -607,9 +573,8 @@
   int src_line = v8::CpuProfileNode::kNoLineNumberInfo;
   bool src_line_not_found = true;
 
-  if (sample.pc != NULL) {
-    if (sample.has_external_callback && sample.state == EXTERNAL &&
-        sample.top_frame_type == StackFrame::EXIT) {
+  if (sample.pc != nullptr) {
+    if (sample.has_external_callback && sample.state == EXTERNAL) {
       // Don't use PC when in external callback code, as it can point
       // inside callback's code, and we will erroneously report
       // that a callback calls itself.
@@ -619,9 +584,7 @@
       // If there is no pc_entry we're likely in native code.
       // Find out, if top of stack was pointing inside a JS function
       // meaning that we have encountered a frameless invocation.
-      if (!pc_entry && (sample.top_frame_type == StackFrame::JAVA_SCRIPT ||
-                        sample.top_frame_type == StackFrame::INTERPRETED ||
-                        sample.top_frame_type == StackFrame::OPTIMIZED)) {
+      if (!pc_entry && !sample.has_external_callback) {
         pc_entry = code_map_.FindEntry(sample.tos);
       }
       // If pc is in the function code before it set up stack frame or after the
@@ -646,8 +609,8 @@
           // In the latter case we know the caller for sure but in the
           // former case we don't so we simply replace the frame with
           // 'unresolved' entry.
-          if (sample.top_frame_type == StackFrame::JAVA_SCRIPT) {
-            entries.push_back(unresolved_entry_);
+          if (!sample.has_external_callback) {
+            entries.push_back(CodeEntry::unresolved_entry());
           }
         }
       }
@@ -704,7 +667,7 @@
 CodeEntry* ProfileGenerator::EntryForVMState(StateTag tag) {
   switch (tag) {
     case GC:
-      return gc_entry_;
+      return CodeEntry::gc_entry();
     case JS:
     case COMPILER:
     // DOM events handlers are reported as OTHER / EXTERNAL entries.
@@ -712,9 +675,9 @@
     // one bucket.
     case OTHER:
     case EXTERNAL:
-      return program_entry_;
+      return CodeEntry::program_entry();
     case IDLE:
-      return idle_entry_;
+      return CodeEntry::idle_entry();
     default: return NULL;
   }
 }
diff --git a/src/profiler/profile-generator.h b/src/profiler/profile-generator.h
index 5c017e1..fdd87f3 100644
--- a/src/profiler/profile-generator.h
+++ b/src/profiler/profile-generator.h
@@ -8,8 +8,8 @@
 #include <map>
 #include "include/v8-profiler.h"
 #include "src/allocation.h"
+#include "src/base/hashmap.h"
 #include "src/compiler.h"
-#include "src/hashmap.h"
 #include "src/profiler/strings-storage.h"
 
 namespace v8 {
@@ -38,7 +38,7 @@
 class CodeEntry {
  public:
   // CodeEntry doesn't own name strings, just references them.
-  inline CodeEntry(Logger::LogEventsAndTags tag, const char* name,
+  inline CodeEntry(CodeEventListener::LogEventsAndTags tag, const char* name,
                    const char* name_prefix = CodeEntry::kEmptyNamePrefix,
                    const char* resource_name = CodeEntry::kEmptyResourceName,
                    int line_number = v8::CpuProfileNode::kNoLineNumberInfo,
@@ -105,16 +105,56 @@
   bool HasDeoptInlinedFramesFor(int deopt_id) const;
 
   Address instruction_start() const { return instruction_start_; }
-  Logger::LogEventsAndTags tag() const { return TagField::decode(bit_field_); }
+  CodeEventListener::LogEventsAndTags tag() const {
+    return TagField::decode(bit_field_);
+  }
 
   static const char* const kEmptyNamePrefix;
   static const char* const kEmptyResourceName;
   static const char* const kEmptyBailoutReason;
   static const char* const kNoDeoptReason;
 
+  static const char* const kProgramEntryName;
+  static const char* const kIdleEntryName;
+  static const char* const kGarbageCollectorEntryName;
+  // Used to represent frames for which we have no reliable way to
+  // detect function.
+  static const char* const kUnresolvedFunctionName;
+
+  V8_INLINE static CodeEntry* program_entry() {
+    return kProgramEntry.Pointer();
+  }
+  V8_INLINE static CodeEntry* idle_entry() { return kIdleEntry.Pointer(); }
+  V8_INLINE static CodeEntry* gc_entry() { return kGCEntry.Pointer(); }
+  V8_INLINE static CodeEntry* unresolved_entry() {
+    return kUnresolvedEntry.Pointer();
+  }
+
  private:
+  struct ProgramEntryCreateTrait {
+    static CodeEntry* Create();
+  };
+  struct IdleEntryCreateTrait {
+    static CodeEntry* Create();
+  };
+  struct GCEntryCreateTrait {
+    static CodeEntry* Create();
+  };
+  struct UnresolvedEntryCreateTrait {
+    static CodeEntry* Create();
+  };
+
+  static base::LazyDynamicInstance<CodeEntry, ProgramEntryCreateTrait>::type
+      kProgramEntry;
+  static base::LazyDynamicInstance<CodeEntry, IdleEntryCreateTrait>::type
+      kIdleEntry;
+  static base::LazyDynamicInstance<CodeEntry, GCEntryCreateTrait>::type
+      kGCEntry;
+  static base::LazyDynamicInstance<CodeEntry, UnresolvedEntryCreateTrait>::type
+      kUnresolvedEntry;
+
   class TagField : public BitField<Logger::LogEventsAndTags, 0, 8> {};
-  class BuiltinIdField : public BitField<Builtins::Name, 8, 8> {};
+  class BuiltinIdField : public BitField<Builtins::Name, 8, 24> {};
 
   uint32_t bit_field_;
   const char* name_prefix_;
@@ -180,10 +220,10 @@
   CodeEntry* entry_;
   unsigned self_ticks_;
   // Mapping from CodeEntry* to ProfileNode*
-  HashMap children_;
+  base::HashMap children_;
   List<ProfileNode*> children_list_;
   unsigned id_;
-  HashMap line_ticks_;
+  base::HashMap line_ticks_;
 
   std::vector<CpuProfileDeoptInfo> deopt_infos_;
 
@@ -220,7 +260,7 @@
   Isolate* isolate_;
 
   unsigned next_function_id_;
-  HashMap function_ids_;
+  base::HashMap function_ids_;
 
   DISALLOW_COPY_AND_ASSIGN(ProfileTree);
 };
@@ -228,7 +268,7 @@
 
 class CpuProfile {
  public:
-  CpuProfile(Isolate* isolate, const char* title, bool record_samples);
+  CpuProfile(CpuProfiler* profiler, const char* title, bool record_samples);
 
   // Add pc -> ... -> main() call path to the profile.
   void AddPath(base::TimeTicks timestamp, const std::vector<CodeEntry*>& path,
@@ -246,6 +286,7 @@
 
   base::TimeTicks start_time() const { return start_time_; }
   base::TimeTicks end_time() const { return end_time_; }
+  CpuProfiler* cpu_profiler() const { return profiler_; }
 
   void UpdateTicksScale();
 
@@ -259,20 +300,18 @@
   List<ProfileNode*> samples_;
   List<base::TimeTicks> timestamps_;
   ProfileTree top_down_;
+  CpuProfiler* const profiler_;
 
   DISALLOW_COPY_AND_ASSIGN(CpuProfile);
 };
 
-
 class CodeMap {
  public:
   CodeMap() {}
-  ~CodeMap();
+
   void AddCode(Address addr, CodeEntry* entry, unsigned size);
   void MoveCode(Address from, Address to);
   CodeEntry* FindEntry(Address addr);
-  int GetSharedId(Address addr);
-
   void Print();
 
  private:
@@ -283,61 +322,26 @@
     unsigned size;
   };
 
-  struct CodeTreeConfig {
-    typedef Address Key;
-    typedef CodeEntryInfo Value;
-    static const Key kNoKey;
-    static const Value NoValue() { return CodeEntryInfo(NULL, 0); }
-    static int Compare(const Key& a, const Key& b) {
-      return a < b ? -1 : (a > b ? 1 : 0);
-    }
-  };
-  typedef SplayTree<CodeTreeConfig> CodeTree;
-
-  class CodeTreePrinter {
-   public:
-    void Call(const Address& key, const CodeEntryInfo& value);
-  };
-
   void DeleteAllCoveredCode(Address start, Address end);
 
-  CodeTree tree_;
+  std::map<Address, CodeEntryInfo> code_map_;
 
   DISALLOW_COPY_AND_ASSIGN(CodeMap);
 };
 
-
 class CpuProfilesCollection {
  public:
-  explicit CpuProfilesCollection(Heap* heap);
+  explicit CpuProfilesCollection(Isolate* isolate);
   ~CpuProfilesCollection();
 
+  void set_cpu_profiler(CpuProfiler* profiler) { profiler_ = profiler; }
   bool StartProfiling(const char* title, bool record_samples);
   CpuProfile* StopProfiling(const char* title);
   List<CpuProfile*>* profiles() { return &finished_profiles_; }
-  const char* GetName(Name* name) {
-    return function_and_resource_names_.GetName(name);
-  }
-  const char* GetName(int args_count) {
-    return function_and_resource_names_.GetName(args_count);
-  }
-  const char* GetFunctionName(Name* name) {
-    return function_and_resource_names_.GetFunctionName(name);
-  }
-  const char* GetFunctionName(const char* name) {
-    return function_and_resource_names_.GetFunctionName(name);
-  }
+  const char* GetName(Name* name) { return resource_names_.GetName(name); }
   bool IsLastProfile(const char* title);
   void RemoveProfile(CpuProfile* profile);
 
-  CodeEntry* NewCodeEntry(
-      Logger::LogEventsAndTags tag, const char* name,
-      const char* name_prefix = CodeEntry::kEmptyNamePrefix,
-      const char* resource_name = CodeEntry::kEmptyResourceName,
-      int line_number = v8::CpuProfileNode::kNoLineNumberInfo,
-      int column_number = v8::CpuProfileNode::kNoColumnNumberInfo,
-      JITLineInfoTable* line_info = NULL, Address instruction_start = NULL);
-
   // Called from profile generator thread.
   void AddPathToCurrentProfiles(base::TimeTicks timestamp,
                                 const std::vector<CodeEntry*>& path,
@@ -347,11 +351,9 @@
   static const int kMaxSimultaneousProfiles = 100;
 
  private:
-  StringsStorage function_and_resource_names_;
-  List<CodeEntry*> code_entries_;
+  StringsStorage resource_names_;
   List<CpuProfile*> finished_profiles_;
-
-  Isolate* isolate_;
+  CpuProfiler* profiler_;
 
   // Accessed by VM thread and profile generator thread.
   List<CpuProfile*> current_profiles_;
@@ -369,22 +371,11 @@
 
   CodeMap* code_map() { return &code_map_; }
 
-  static const char* const kProgramEntryName;
-  static const char* const kIdleEntryName;
-  static const char* const kGarbageCollectorEntryName;
-  // Used to represent frames for which we have no reliable way to
-  // detect function.
-  static const char* const kUnresolvedFunctionName;
-
  private:
   CodeEntry* EntryForVMState(StateTag tag);
 
   CpuProfilesCollection* profiles_;
   CodeMap code_map_;
-  CodeEntry* program_entry_;
-  CodeEntry* idle_entry_;
-  CodeEntry* gc_entry_;
-  CodeEntry* unresolved_entry_;
 
   DISALLOW_COPY_AND_ASSIGN(ProfileGenerator);
 };
diff --git a/src/profiler/profiler-listener.cc b/src/profiler/profiler-listener.cc
new file mode 100644
index 0000000..2b353e7
--- /dev/null
+++ b/src/profiler/profiler-listener.cc
@@ -0,0 +1,339 @@
+// 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/profiler/profiler-listener.h"
+
+#include "src/deoptimizer.h"
+#include "src/interpreter/source-position-table.h"
+#include "src/profiler/cpu-profiler.h"
+#include "src/profiler/profile-generator-inl.h"
+
+namespace v8 {
+namespace internal {
+
+ProfilerListener::ProfilerListener(Isolate* isolate)
+    : function_and_resource_names_(isolate->heap()) {}
+
+ProfilerListener::~ProfilerListener() {
+  for (auto code_entry : code_entries_) {
+    delete code_entry;
+  }
+}
+
+void ProfilerListener::CallbackEvent(Name* name, Address entry_point) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = entry_point;
+  rec->entry = NewCodeEntry(CodeEventListener::CALLBACK_TAG, GetName(name));
+  rec->size = 1;
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                                       AbstractCode* code, const char* name) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = code->address();
+  rec->entry = NewCodeEntry(
+      tag, GetFunctionName(name), CodeEntry::kEmptyNamePrefix,
+      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
+      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
+  RecordInliningInfo(rec->entry, code);
+  rec->size = code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                                       AbstractCode* code, Name* name) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = code->address();
+  rec->entry = NewCodeEntry(
+      tag, GetFunctionName(name), CodeEntry::kEmptyNamePrefix,
+      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
+      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
+  RecordInliningInfo(rec->entry, code);
+  rec->size = code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                                       AbstractCode* code,
+                                       SharedFunctionInfo* shared,
+                                       Name* script_name) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = code->address();
+  rec->entry = NewCodeEntry(
+      tag, GetFunctionName(shared->DebugName()), CodeEntry::kEmptyNamePrefix,
+      GetName(InferScriptName(script_name, shared)),
+      CpuProfileNode::kNoLineNumberInfo, CpuProfileNode::kNoColumnNumberInfo,
+      NULL, code->instruction_start());
+  RecordInliningInfo(rec->entry, code);
+  rec->entry->FillFunctionInfo(shared);
+  rec->size = code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                                       AbstractCode* abstract_code,
+                                       SharedFunctionInfo* shared,
+                                       Name* script_name, int line,
+                                       int column) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = abstract_code->address();
+  Script* script = Script::cast(shared->script());
+  JITLineInfoTable* line_table = NULL;
+  if (script) {
+    if (abstract_code->IsCode()) {
+      Code* code = abstract_code->GetCode();
+      int start_position = shared->start_position();
+      int end_position = shared->end_position();
+      line_table = new JITLineInfoTable();
+      for (RelocIterator it(code); !it.done(); it.next()) {
+        RelocInfo* reloc_info = it.rinfo();
+        if (!RelocInfo::IsPosition(reloc_info->rmode())) continue;
+        int position = static_cast<int>(reloc_info->data());
+        // TODO(alph): in case of inlining the position may correspond
+        // to an inlined function source code. Do not collect positions
+        // that fall beyond the function source code. There's however a
+        // chance the inlined function has similar positions but in another
+        // script. So the proper fix is to store script_id in some form
+        // along with the inlined function positions.
+        if (position < start_position || position >= end_position) continue;
+        int pc_offset = static_cast<int>(reloc_info->pc() - code->address());
+        int line_number = script->GetLineNumber(position) + 1;
+        line_table->SetPosition(pc_offset, line_number);
+      }
+    } else {
+      BytecodeArray* bytecode = abstract_code->GetBytecodeArray();
+      line_table = new JITLineInfoTable();
+      interpreter::SourcePositionTableIterator it(
+          bytecode->source_position_table());
+      for (; !it.done(); it.Advance()) {
+        int line_number = script->GetLineNumber(it.source_position()) + 1;
+        int pc_offset = it.bytecode_offset() + BytecodeArray::kHeaderSize;
+        line_table->SetPosition(pc_offset, line_number);
+      }
+    }
+  }
+  rec->entry = NewCodeEntry(
+      tag, GetFunctionName(shared->DebugName()), CodeEntry::kEmptyNamePrefix,
+      GetName(InferScriptName(script_name, shared)), line, column, line_table,
+      abstract_code->instruction_start());
+  RecordInliningInfo(rec->entry, abstract_code);
+  RecordDeoptInlinedFrames(rec->entry, abstract_code);
+  rec->entry->FillFunctionInfo(shared);
+  rec->size = abstract_code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                                       AbstractCode* code, int args_count) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = code->address();
+  rec->entry = NewCodeEntry(
+      tag, GetName(args_count), "args_count: ", CodeEntry::kEmptyResourceName,
+      CpuProfileNode::kNoLineNumberInfo, CpuProfileNode::kNoColumnNumberInfo,
+      NULL, code->instruction_start());
+  RecordInliningInfo(rec->entry, code);
+  rec->size = code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeMoveEvent(AbstractCode* from, Address to) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_MOVE);
+  CodeMoveEventRecord* rec = &evt_rec.CodeMoveEventRecord_;
+  rec->from = from->address();
+  rec->to = to;
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeDisableOptEvent(AbstractCode* code,
+                                           SharedFunctionInfo* shared) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_DISABLE_OPT);
+  CodeDisableOptEventRecord* rec = &evt_rec.CodeDisableOptEventRecord_;
+  rec->start = code->address();
+  rec->bailout_reason = GetBailoutReason(shared->disable_optimization_reason());
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::CodeDeoptEvent(Code* code, Address pc,
+                                      int fp_to_sp_delta) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_DEOPT);
+  CodeDeoptEventRecord* rec = &evt_rec.CodeDeoptEventRecord_;
+  Deoptimizer::DeoptInfo info = Deoptimizer::GetDeoptInfo(code, pc);
+  rec->start = code->address();
+  rec->deopt_reason = Deoptimizer::GetDeoptReason(info.deopt_reason);
+  rec->position = info.position;
+  rec->deopt_id = info.deopt_id;
+  rec->pc = reinterpret_cast<void*>(pc);
+  rec->fp_to_sp_delta = fp_to_sp_delta;
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::GetterCallbackEvent(Name* name, Address entry_point) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = entry_point;
+  rec->entry =
+      NewCodeEntry(CodeEventListener::CALLBACK_TAG, GetName(name), "get ");
+  rec->size = 1;
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::RegExpCodeCreateEvent(AbstractCode* code,
+                                             String* source) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = code->address();
+  rec->entry = NewCodeEntry(
+      CodeEventListener::REG_EXP_TAG, GetName(source), "RegExp: ",
+      CodeEntry::kEmptyResourceName, CpuProfileNode::kNoLineNumberInfo,
+      CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
+  rec->size = code->ExecutableSize();
+  DispatchCodeEvent(evt_rec);
+}
+
+void ProfilerListener::SetterCallbackEvent(Name* name, Address entry_point) {
+  CodeEventsContainer evt_rec(CodeEventRecord::CODE_CREATION);
+  CodeCreateEventRecord* rec = &evt_rec.CodeCreateEventRecord_;
+  rec->start = entry_point;
+  rec->entry =
+      NewCodeEntry(CodeEventListener::CALLBACK_TAG, GetName(name), "set ");
+  rec->size = 1;
+  DispatchCodeEvent(evt_rec);
+}
+
+Name* ProfilerListener::InferScriptName(Name* name, SharedFunctionInfo* info) {
+  if (name->IsString() && String::cast(name)->length()) return name;
+  if (!info->script()->IsScript()) return name;
+  Object* source_url = Script::cast(info->script())->source_url();
+  return source_url->IsName() ? Name::cast(source_url) : name;
+}
+
+void ProfilerListener::RecordInliningInfo(CodeEntry* entry,
+                                          AbstractCode* abstract_code) {
+  if (!abstract_code->IsCode()) return;
+  Code* code = abstract_code->GetCode();
+  if (code->kind() != Code::OPTIMIZED_FUNCTION) return;
+  DeoptimizationInputData* deopt_input_data =
+      DeoptimizationInputData::cast(code->deoptimization_data());
+  int deopt_count = deopt_input_data->DeoptCount();
+  for (int i = 0; i < deopt_count; i++) {
+    int pc_offset = deopt_input_data->Pc(i)->value();
+    if (pc_offset == -1) continue;
+    int translation_index = deopt_input_data->TranslationIndex(i)->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));
+    int depth = 0;
+    std::vector<CodeEntry*> inline_stack;
+    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;
+      }
+      it.Next();  // Skip ast_id
+      int shared_info_id = it.Next();
+      it.Next();  // Skip height
+      SharedFunctionInfo* shared_info = SharedFunctionInfo::cast(
+          deopt_input_data->LiteralArray()->get(shared_info_id));
+      if (!depth++) continue;  // Skip the current function itself.
+      CodeEntry* inline_entry = new CodeEntry(
+          entry->tag(), GetFunctionName(shared_info->DebugName()),
+          CodeEntry::kEmptyNamePrefix, entry->resource_name(),
+          CpuProfileNode::kNoLineNumberInfo,
+          CpuProfileNode::kNoColumnNumberInfo, NULL, code->instruction_start());
+      inline_entry->FillFunctionInfo(shared_info);
+      inline_stack.push_back(inline_entry);
+    }
+    if (!inline_stack.empty()) {
+      entry->AddInlineStack(pc_offset, inline_stack);
+      DCHECK(inline_stack.empty());
+    }
+  }
+}
+
+void ProfilerListener::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());
+    }
+  }
+}
+
+CodeEntry* ProfilerListener::NewCodeEntry(
+    CodeEventListener::LogEventsAndTags tag, const char* name,
+    const char* name_prefix, const char* resource_name, int line_number,
+    int column_number, JITLineInfoTable* line_info, Address instruction_start) {
+  CodeEntry* code_entry =
+      new CodeEntry(tag, name, name_prefix, resource_name, line_number,
+                    column_number, line_info, instruction_start);
+  code_entries_.push_back(code_entry);
+  return code_entry;
+}
+
+void ProfilerListener::AddObserver(CodeEventObserver* observer) {
+  if (std::find(observers_.begin(), observers_.end(), observer) !=
+      observers_.end())
+    return;
+  observers_.push_back(observer);
+}
+
+void ProfilerListener::RemoveObserver(CodeEventObserver* observer) {
+  auto it = std::find(observers_.begin(), observers_.end(), observer);
+  if (it == observers_.end()) return;
+  observers_.erase(it);
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/src/profiler/profiler-listener.h b/src/profiler/profiler-listener.h
new file mode 100644
index 0000000..7e24cea
--- /dev/null
+++ b/src/profiler/profiler-listener.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 V8_PROFILER_PROFILER_LISTENER_H_
+#define V8_PROFILER_PROFILER_LISTENER_H_
+
+#include <vector>
+
+#include "src/code-events.h"
+#include "src/profiler/profile-generator.h"
+
+namespace v8 {
+namespace internal {
+
+class CodeEventsContainer;
+
+class CodeEventObserver {
+ public:
+  virtual void CodeEventHandler(const CodeEventsContainer& evt_rec) = 0;
+  virtual ~CodeEventObserver() {}
+};
+
+class ProfilerListener : public CodeEventListener {
+ public:
+  explicit ProfilerListener(Isolate* isolate);
+  ~ProfilerListener() override;
+
+  void CallbackEvent(Name* name, Address entry_point) override;
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, const char* comment) override;
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, Name* name) override;
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, SharedFunctionInfo* shared,
+                       Name* script_name) override;
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, SharedFunctionInfo* shared,
+                       Name* script_name, int line, int column) override;
+  void CodeCreateEvent(CodeEventListener::LogEventsAndTags tag,
+                       AbstractCode* code, int args_count) override;
+  void CodeMovingGCEvent() override {}
+  void CodeMoveEvent(AbstractCode* from, Address to) override;
+  void CodeDisableOptEvent(AbstractCode* code,
+                           SharedFunctionInfo* shared) override;
+  void CodeDeoptEvent(Code* code, Address pc, int fp_to_sp_delta) override;
+  void GetterCallbackEvent(Name* name, Address entry_point) override;
+  void RegExpCodeCreateEvent(AbstractCode* code, String* source) override;
+  void SetterCallbackEvent(Name* name, Address entry_point) override;
+  void SharedFunctionInfoMoveEvent(Address from, Address to) override {}
+
+  CodeEntry* NewCodeEntry(
+      CodeEventListener::LogEventsAndTags tag, const char* name,
+      const char* name_prefix = CodeEntry::kEmptyNamePrefix,
+      const char* resource_name = CodeEntry::kEmptyResourceName,
+      int line_number = v8::CpuProfileNode::kNoLineNumberInfo,
+      int column_number = v8::CpuProfileNode::kNoColumnNumberInfo,
+      JITLineInfoTable* line_info = NULL, Address instruction_start = NULL);
+
+  void AddObserver(CodeEventObserver* observer);
+  void RemoveObserver(CodeEventObserver* observer);
+  V8_INLINE bool HasObservers() { return !observers_.empty(); }
+
+  const char* GetName(Name* name) {
+    return function_and_resource_names_.GetName(name);
+  }
+  const char* GetName(int args_count) {
+    return function_and_resource_names_.GetName(args_count);
+  }
+  const char* GetFunctionName(Name* name) {
+    return function_and_resource_names_.GetFunctionName(name);
+  }
+  const char* GetFunctionName(const char* name) {
+    return function_and_resource_names_.GetFunctionName(name);
+  }
+
+ private:
+  void RecordInliningInfo(CodeEntry* entry, AbstractCode* abstract_code);
+  void RecordDeoptInlinedFrames(CodeEntry* entry, AbstractCode* abstract_code);
+  Name* InferScriptName(Name* name, SharedFunctionInfo* info);
+  V8_INLINE void DispatchCodeEvent(const CodeEventsContainer& evt_rec) {
+    for (auto observer : observers_) {
+      observer->CodeEventHandler(evt_rec);
+    }
+  }
+
+  StringsStorage function_and_resource_names_;
+  std::vector<CodeEntry*> code_entries_;
+  std::vector<CodeEventObserver*> observers_;
+
+  DISALLOW_COPY_AND_ASSIGN(ProfilerListener);
+};
+
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_PROFILER_PROFILER_LISTENER_H_
diff --git a/src/profiler/sampler.cc b/src/profiler/sampler.cc
deleted file mode 100644
index ae47dca..0000000
--- a/src/profiler/sampler.cc
+++ /dev/null
@@ -1,828 +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/profiler/sampler.h"
-
-#if V8_OS_POSIX && !V8_OS_CYGWIN
-
-#define USE_SIGNALS
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <sys/time.h>
-
-#if !V8_OS_QNX && !V8_OS_NACL && !V8_OS_AIX
-#include <sys/syscall.h>  // NOLINT
-#endif
-
-#if V8_OS_MACOSX
-#include <mach/mach.h>
-// OpenBSD doesn't have <ucontext.h>. ucontext_t lives in <signal.h>
-// and is a typedef for struct sigcontext. There is no uc_mcontext.
-#elif(!V8_OS_ANDROID || defined(__BIONIC_HAVE_UCONTEXT_T)) && \
-    !V8_OS_OPENBSD && !V8_OS_NACL
-#include <ucontext.h>
-#endif
-
-#include <unistd.h>
-
-// GLibc on ARM defines mcontext_t has a typedef for 'struct sigcontext'.
-// Old versions of the C library <signal.h> didn't define the type.
-#if V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T) && \
-    (defined(__arm__) || defined(__aarch64__)) && \
-    !defined(__BIONIC_HAVE_STRUCT_SIGCONTEXT)
-#include <asm/sigcontext.h>  // NOLINT
-#endif
-
-#elif V8_OS_WIN || V8_OS_CYGWIN
-
-#include "src/base/win32-headers.h"
-
-#endif
-
-#include "src/base/atomic-utils.h"
-#include "src/base/platform/platform.h"
-#include "src/profiler/cpu-profiler-inl.h"
-#include "src/profiler/tick-sample.h"
-#include "src/simulator.h"
-#include "src/v8threads.h"
-
-
-#if V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T)
-
-// Not all versions of Android's C library provide ucontext_t.
-// Detect this and provide custom but compatible definitions. Note that these
-// follow the GLibc naming convention to access register values from
-// mcontext_t.
-//
-// See http://code.google.com/p/android/issues/detail?id=34784
-
-#if defined(__arm__)
-
-typedef struct sigcontext mcontext_t;
-
-typedef struct ucontext {
-  uint32_t uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  // Other fields are not used by V8, don't define them here.
-} ucontext_t;
-
-#elif defined(__aarch64__)
-
-typedef struct sigcontext mcontext_t;
-
-typedef struct ucontext {
-  uint64_t uc_flags;
-  struct ucontext *uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  // Other fields are not used by V8, don't define them here.
-} ucontext_t;
-
-#elif defined(__mips__)
-// MIPS version of sigcontext, for Android bionic.
-typedef struct {
-  uint32_t regmask;
-  uint32_t status;
-  uint64_t pc;
-  uint64_t gregs[32];
-  uint64_t fpregs[32];
-  uint32_t acx;
-  uint32_t fpc_csr;
-  uint32_t fpc_eir;
-  uint32_t used_math;
-  uint32_t dsp;
-  uint64_t mdhi;
-  uint64_t mdlo;
-  uint32_t hi1;
-  uint32_t lo1;
-  uint32_t hi2;
-  uint32_t lo2;
-  uint32_t hi3;
-  uint32_t lo3;
-} mcontext_t;
-
-typedef struct ucontext {
-  uint32_t uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  // Other fields are not used by V8, don't define them here.
-} ucontext_t;
-
-#elif defined(__i386__)
-// x86 version for Android.
-typedef struct {
-  uint32_t gregs[19];
-  void* fpregs;
-  uint32_t oldmask;
-  uint32_t cr2;
-} mcontext_t;
-
-typedef uint32_t kernel_sigset_t[2];  // x86 kernel uses 64-bit signal masks
-typedef struct ucontext {
-  uint32_t uc_flags;
-  struct ucontext* uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  // Other fields are not used by V8, don't define them here.
-} ucontext_t;
-enum { REG_EBP = 6, REG_ESP = 7, REG_EIP = 14 };
-
-#elif defined(__x86_64__)
-// x64 version for Android.
-typedef struct {
-  uint64_t gregs[23];
-  void* fpregs;
-  uint64_t __reserved1[8];
-} mcontext_t;
-
-typedef struct ucontext {
-  uint64_t uc_flags;
-  struct ucontext *uc_link;
-  stack_t uc_stack;
-  mcontext_t uc_mcontext;
-  // Other fields are not used by V8, don't define them here.
-} ucontext_t;
-enum { REG_RBP = 10, REG_RSP = 15, REG_RIP = 16 };
-#endif
-
-#endif  // V8_OS_ANDROID && !defined(__BIONIC_HAVE_UCONTEXT_T)
-
-
-namespace v8 {
-namespace internal {
-
-namespace {
-
-class PlatformDataCommon : public Malloced {
- public:
-  PlatformDataCommon() : profiled_thread_id_(ThreadId::Current()) {}
-  ThreadId profiled_thread_id() { return profiled_thread_id_; }
-
- protected:
-  ~PlatformDataCommon() {}
-
- private:
-  ThreadId profiled_thread_id_;
-};
-
-
-typedef List<Sampler*> SamplerList;
-
-#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_);
-  }
-
-  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)
-
-class Sampler::PlatformData : public PlatformDataCommon {
- public:
-  PlatformData() : vm_tid_(pthread_self()) {}
-  pthread_t vm_tid() const { return vm_tid_; }
-
- private:
-  pthread_t vm_tid_;
-};
-
-#elif V8_OS_WIN || V8_OS_CYGWIN
-
-// ----------------------------------------------------------------------------
-// Win32 profiler support. On Cygwin we use the same sampler implementation as
-// on Win32.
-
-class Sampler::PlatformData : public PlatformDataCommon {
- public:
-  // Get a handle to the calling thread. This is the thread that we are
-  // going to profile. We need to make a copy of the handle because we are
-  // going to use it in the sampler thread. Using GetThreadHandle() will
-  // not work in this case. We're using OpenThread because DuplicateHandle
-  // for some reason doesn't work in Chrome's sandbox.
-  PlatformData()
-      : profiled_thread_(OpenThread(THREAD_GET_CONTEXT |
-                                    THREAD_SUSPEND_RESUME |
-                                    THREAD_QUERY_INFORMATION,
-                                    false,
-                                    GetCurrentThreadId())) {}
-
-  ~PlatformData() {
-    if (profiled_thread_ != NULL) {
-      CloseHandle(profiled_thread_);
-      profiled_thread_ = NULL;
-    }
-  }
-
-  HANDLE profiled_thread() { return profiled_thread_; }
-
- private:
-  HANDLE profiled_thread_;
-};
-#endif
-
-
-#if defined(USE_SIGNALS)
-
-class SignalHandler : public AllStatic {
- public:
-  static void SetUp() { if (!mutex_) mutex_ = new base::Mutex(); }
-  static void TearDown() { delete mutex_; mutex_ = NULL; }
-
-  static void IncreaseSamplerCount() {
-    base::LockGuard<base::Mutex> lock_guard(mutex_);
-    if (++client_count_ == 1) Install();
-  }
-
-  static void DecreaseSamplerCount() {
-    base::LockGuard<base::Mutex> lock_guard(mutex_);
-    if (--client_count_ == 0) Restore();
-  }
-
-  static bool Installed() {
-    return signal_handler_installed_;
-  }
-
-#if !V8_OS_NACL
-  static void CollectSample(void* context, Sampler* sampler);
-#endif
-
- private:
-  static void Install() {
-#if !V8_OS_NACL
-    struct sigaction sa;
-    sa.sa_sigaction = &HandleProfilerSignal;
-    sigemptyset(&sa.sa_mask);
-#if V8_OS_QNX
-    sa.sa_flags = SA_SIGINFO;
-#else
-    sa.sa_flags = SA_RESTART | SA_SIGINFO;
-#endif
-    signal_handler_installed_ =
-        (sigaction(SIGPROF, &sa, &old_signal_handler_) == 0);
-#endif
-  }
-
-  static void Restore() {
-#if !V8_OS_NACL
-    if (signal_handler_installed_) {
-      sigaction(SIGPROF, &old_signal_handler_, 0);
-      signal_handler_installed_ = false;
-    }
-#endif
-  }
-
-#if !V8_OS_NACL
-  static void HandleProfilerSignal(int signal, siginfo_t* info, void* context);
-#endif
-  // Protects the process wide state below.
-  static base::Mutex* mutex_;
-  static int client_count_;
-  static bool signal_handler_installed_;
-  static struct sigaction old_signal_handler_;
-};
-
-
-base::Mutex* SignalHandler::mutex_ = NULL;
-int SignalHandler::client_count_ = 0;
-struct sigaction SignalHandler::old_signal_handler_;
-bool SignalHandler::signal_handler_installed_ = false;
-
-
-// As Native Client does not support signal handling, profiling is disabled.
-#if !V8_OS_NACL
-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;
-  }
-
-  v8::RegisterState state;
-
-#if defined(USE_SIMULATOR)
-  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);
-#if !(V8_OS_OPENBSD || (V8_OS_LINUX && (V8_HOST_ARCH_PPC || V8_HOST_ARCH_S390)))
-  mcontext_t& mcontext = ucontext->uc_mcontext;
-#endif
-#if V8_OS_LINUX
-#if V8_HOST_ARCH_IA32
-  state.pc = reinterpret_cast<Address>(mcontext.gregs[REG_EIP]);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[REG_ESP]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[REG_EBP]);
-#elif V8_HOST_ARCH_X64
-  state.pc = reinterpret_cast<Address>(mcontext.gregs[REG_RIP]);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[REG_RSP]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[REG_RBP]);
-#elif V8_HOST_ARCH_ARM
-#if V8_LIBC_GLIBC && !V8_GLIBC_PREREQ(2, 4)
-  // Old GLibc ARM versions used a gregs[] array to access the register
-  // values from mcontext_t.
-  state.pc = reinterpret_cast<Address>(mcontext.gregs[R15]);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[R13]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[R11]);
-#else
-  state.pc = reinterpret_cast<Address>(mcontext.arm_pc);
-  state.sp = reinterpret_cast<Address>(mcontext.arm_sp);
-  state.fp = reinterpret_cast<Address>(mcontext.arm_fp);
-#endif  // V8_LIBC_GLIBC && !V8_GLIBC_PREREQ(2, 4)
-#elif V8_HOST_ARCH_ARM64
-  state.pc = reinterpret_cast<Address>(mcontext.pc);
-  state.sp = reinterpret_cast<Address>(mcontext.sp);
-  // FP is an alias for x29.
-  state.fp = reinterpret_cast<Address>(mcontext.regs[29]);
-#elif V8_HOST_ARCH_MIPS
-  state.pc = reinterpret_cast<Address>(mcontext.pc);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[29]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[30]);
-#elif V8_HOST_ARCH_MIPS64
-  state.pc = reinterpret_cast<Address>(mcontext.pc);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[29]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[30]);
-#elif V8_HOST_ARCH_PPC
-  state.pc = reinterpret_cast<Address>(ucontext->uc_mcontext.regs->nip);
-  state.sp = reinterpret_cast<Address>(ucontext->uc_mcontext.regs->gpr[PT_R1]);
-  state.fp = reinterpret_cast<Address>(ucontext->uc_mcontext.regs->gpr[PT_R31]);
-#elif V8_HOST_ARCH_S390
-#if V8_TARGET_ARCH_32_BIT
-  // 31-bit target will have bit 0 (MSB) of the PSW set to denote addressing
-  // mode.  This bit needs to be masked out to resolve actual address.
-  state.pc =
-      reinterpret_cast<Address>(ucontext->uc_mcontext.psw.addr & 0x7FFFFFFF);
-#else
-  state.pc = reinterpret_cast<Address>(ucontext->uc_mcontext.psw.addr);
-#endif  // V8_TARGET_ARCH_32_BIT
-  state.sp = reinterpret_cast<Address>(ucontext->uc_mcontext.gregs[15]);
-  state.fp = reinterpret_cast<Address>(ucontext->uc_mcontext.gregs[11]);
-#endif  // V8_HOST_ARCH_*
-#elif V8_OS_MACOSX
-#if V8_HOST_ARCH_X64
-#if __DARWIN_UNIX03
-  state.pc = reinterpret_cast<Address>(mcontext->__ss.__rip);
-  state.sp = reinterpret_cast<Address>(mcontext->__ss.__rsp);
-  state.fp = reinterpret_cast<Address>(mcontext->__ss.__rbp);
-#else  // !__DARWIN_UNIX03
-  state.pc = reinterpret_cast<Address>(mcontext->ss.rip);
-  state.sp = reinterpret_cast<Address>(mcontext->ss.rsp);
-  state.fp = reinterpret_cast<Address>(mcontext->ss.rbp);
-#endif  // __DARWIN_UNIX03
-#elif V8_HOST_ARCH_IA32
-#if __DARWIN_UNIX03
-  state.pc = reinterpret_cast<Address>(mcontext->__ss.__eip);
-  state.sp = reinterpret_cast<Address>(mcontext->__ss.__esp);
-  state.fp = reinterpret_cast<Address>(mcontext->__ss.__ebp);
-#else  // !__DARWIN_UNIX03
-  state.pc = reinterpret_cast<Address>(mcontext->ss.eip);
-  state.sp = reinterpret_cast<Address>(mcontext->ss.esp);
-  state.fp = reinterpret_cast<Address>(mcontext->ss.ebp);
-#endif  // __DARWIN_UNIX03
-#endif  // V8_HOST_ARCH_IA32
-#elif V8_OS_FREEBSD
-#if V8_HOST_ARCH_IA32
-  state.pc = reinterpret_cast<Address>(mcontext.mc_eip);
-  state.sp = reinterpret_cast<Address>(mcontext.mc_esp);
-  state.fp = reinterpret_cast<Address>(mcontext.mc_ebp);
-#elif V8_HOST_ARCH_X64
-  state.pc = reinterpret_cast<Address>(mcontext.mc_rip);
-  state.sp = reinterpret_cast<Address>(mcontext.mc_rsp);
-  state.fp = reinterpret_cast<Address>(mcontext.mc_rbp);
-#elif V8_HOST_ARCH_ARM
-  state.pc = reinterpret_cast<Address>(mcontext.mc_r15);
-  state.sp = reinterpret_cast<Address>(mcontext.mc_r13);
-  state.fp = reinterpret_cast<Address>(mcontext.mc_r11);
-#endif  // V8_HOST_ARCH_*
-#elif V8_OS_NETBSD
-#if V8_HOST_ARCH_IA32
-  state.pc = reinterpret_cast<Address>(mcontext.__gregs[_REG_EIP]);
-  state.sp = reinterpret_cast<Address>(mcontext.__gregs[_REG_ESP]);
-  state.fp = reinterpret_cast<Address>(mcontext.__gregs[_REG_EBP]);
-#elif V8_HOST_ARCH_X64
-  state.pc = reinterpret_cast<Address>(mcontext.__gregs[_REG_RIP]);
-  state.sp = reinterpret_cast<Address>(mcontext.__gregs[_REG_RSP]);
-  state.fp = reinterpret_cast<Address>(mcontext.__gregs[_REG_RBP]);
-#endif  // V8_HOST_ARCH_*
-#elif V8_OS_OPENBSD
-#if V8_HOST_ARCH_IA32
-  state.pc = reinterpret_cast<Address>(ucontext->sc_eip);
-  state.sp = reinterpret_cast<Address>(ucontext->sc_esp);
-  state.fp = reinterpret_cast<Address>(ucontext->sc_ebp);
-#elif V8_HOST_ARCH_X64
-  state.pc = reinterpret_cast<Address>(ucontext->sc_rip);
-  state.sp = reinterpret_cast<Address>(ucontext->sc_rsp);
-  state.fp = reinterpret_cast<Address>(ucontext->sc_rbp);
-#endif  // V8_HOST_ARCH_*
-#elif V8_OS_SOLARIS
-  state.pc = reinterpret_cast<Address>(mcontext.gregs[REG_PC]);
-  state.sp = reinterpret_cast<Address>(mcontext.gregs[REG_SP]);
-  state.fp = reinterpret_cast<Address>(mcontext.gregs[REG_FP]);
-#elif V8_OS_QNX
-#if V8_HOST_ARCH_IA32
-  state.pc = reinterpret_cast<Address>(mcontext.cpu.eip);
-  state.sp = reinterpret_cast<Address>(mcontext.cpu.esp);
-  state.fp = reinterpret_cast<Address>(mcontext.cpu.ebp);
-#elif V8_HOST_ARCH_ARM
-  state.pc = reinterpret_cast<Address>(mcontext.cpu.gpr[ARM_REG_PC]);
-  state.sp = reinterpret_cast<Address>(mcontext.cpu.gpr[ARM_REG_SP]);
-  state.fp = reinterpret_cast<Address>(mcontext.cpu.gpr[ARM_REG_FP]);
-#endif  // V8_HOST_ARCH_*
-#elif V8_OS_AIX
-  state.pc = reinterpret_cast<Address>(mcontext.jmp_context.iar);
-  state.sp = reinterpret_cast<Address>(mcontext.jmp_context.gpr[1]);
-  state.fp = reinterpret_cast<Address>(mcontext.jmp_context.gpr[31]);
-#endif  // V8_OS_AIX
-#endif  // USE_SIMULATOR
-  sampler->SampleStack(state);
-}
-#endif  // V8_OS_NACL
-
-#endif  // USE_SIGNALS
-
-
-class SamplerThread : public base::Thread {
- public:
-  static const int kSamplerThreadStackSize = 64 * KB;
-
-  explicit SamplerThread(int interval)
-      : Thread(base::Thread::Options("SamplerThread", kSamplerThreadStackSize)),
-        interval_(interval) {}
-
-  static void SetUp() { if (!mutex_) mutex_ = new base::Mutex(); }
-  static void TearDown() { delete mutex_; mutex_ = NULL; }
-
-  static void AddActiveSampler(Sampler* sampler) {
-    bool need_to_start = false;
-    base::LockGuard<base::Mutex> lock_guard(mutex_);
-    if (instance_ == NULL) {
-      // Start a thread that will send SIGPROF signal to VM threads,
-      // when CPU profiling will be enabled.
-      instance_ = new SamplerThread(sampler->interval());
-      need_to_start = true;
-    }
-
-    DCHECK(sampler->IsActive());
-    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 RemoveSampler(Sampler* sampler) {
-    SamplerThread* instance_to_remove = NULL;
-    {
-      base::LockGuard<base::Mutex> lock_guard(mutex_);
-
-      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);
-
-      // We cannot delete the instance immediately as we need to Join() the
-      // thread but we are holding mutex_ and the thread may try to acquire it.
-      if (instance_->active_samplers_.is_empty()) {
-        instance_to_remove = instance_;
-        instance_ = NULL;
-      }
-#endif  // USE_SIGNALS
-    }
-
-    if (!instance_to_remove) return;
-    instance_to_remove->Join();
-    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.
-        for (int i = 0; i < active_samplers_.length(); ++i) {
-          Sampler* sampler = active_samplers_.at(i);
-          if (!sampler->IsProfiling()) continue;
-          sampler->DoSample();
-        }
-#endif  // USE_SIGNALS
-      }
-      base::OS::Sleep(base::TimeDelta::FromMilliseconds(interval_));
-    }
-  }
-
- private:
-  // Protects the process wide state below.
-  static base::Mutex* mutex_;
-  static SamplerThread* instance_;
-
-  const int interval_;
-
-#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);
-};
-
-
-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);
-
-// 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;
-  SamplerList* samplers = reinterpret_cast<SamplerList*>(entry->value);
-  for (int i = 0; i < samplers->length(); ++i) {
-    Sampler* sampler = samplers->at(i);
-    CollectSample(context, sampler);
-  }
-}
-#endif  // !V8_OS_NACL
-#endif  // USE_SIGNALs
-
-
-void Sampler::SetUp() {
-#if defined(USE_SIGNALS)
-  SignalHandler::SetUp();
-#endif
-  SamplerThread::SetUp();
-}
-
-
-void Sampler::TearDown() {
-  SamplerThread::TearDown();
-#if defined(USE_SIGNALS)
-  SignalHandler::TearDown();
-#endif
-}
-
-Sampler::Sampler(Isolate* isolate, int interval)
-    : isolate_(isolate),
-      interval_(interval),
-      profiling_(false),
-      has_processing_thread_(false),
-      active_(false),
-      registered_(false),
-      is_counting_samples_(false),
-      js_sample_count_(0),
-      external_sample_count_(0) {
-  data_ = new PlatformData;
-}
-
-Sampler::~Sampler() {
-  DCHECK(!IsActive());
-  if (IsRegistered()) {
-    SamplerThread::RemoveSampler(this);
-  }
-  delete data_;
-}
-
-void Sampler::Start() {
-  DCHECK(!IsActive());
-  SetActive(true);
-  SamplerThread::AddActiveSampler(this);
-}
-
-
-void Sampler::Stop() {
-  DCHECK(IsActive());
-  SamplerThread::RemoveSampler(this);
-  SetActive(false);
-  SetRegistered(false);
-}
-
-
-void Sampler::IncreaseProfilingDepth() {
-  base::NoBarrier_AtomicIncrement(&profiling_, 1);
-#if defined(USE_SIGNALS)
-  SignalHandler::IncreaseSamplerCount();
-#endif
-}
-
-
-void Sampler::DecreaseProfilingDepth() {
-#if defined(USE_SIGNALS)
-  SignalHandler::DecreaseSamplerCount();
-#endif
-  base::NoBarrier_AtomicIncrement(&profiling_, -1);
-}
-
-
-void Sampler::SampleStack(const v8::RegisterState& state) {
-  TickSample* sample = isolate_->cpu_profiler()->StartTickSample();
-  TickSample sample_obj;
-  if (sample == NULL) sample = &sample_obj;
-  sample->Init(isolate_, state, TickSample::kIncludeCEntryFrame, true);
-  if (is_counting_samples_ && !sample->timestamp.IsNull()) {
-    if (sample->state == JS) ++js_sample_count_;
-    if (sample->state == EXTERNAL) ++external_sample_count_;
-  }
-  Tick(sample);
-  if (sample != &sample_obj) {
-    isolate_->cpu_profiler()->FinishTickSample();
-  }
-}
-
-
-#if defined(USE_SIGNALS)
-
-void Sampler::DoSample() {
-  if (!SignalHandler::Installed()) return;
-  if (!IsActive() && !IsRegistered()) {
-    SamplerThread::RegisterSampler(this);
-    SetRegistered(true);
-  }
-  pthread_kill(platform_data()->vm_tid(), SIGPROF);
-}
-
-#elif V8_OS_WIN || V8_OS_CYGWIN
-
-void Sampler::DoSample() {
-  HANDLE profiled_thread = platform_data()->profiled_thread();
-  if (profiled_thread == NULL) return;
-
-  const DWORD kSuspendFailed = static_cast<DWORD>(-1);
-  if (SuspendThread(profiled_thread) == kSuspendFailed) return;
-
-  // Context used for sampling the register state of the profiled thread.
-  CONTEXT context;
-  memset(&context, 0, sizeof(context));
-  context.ContextFlags = CONTEXT_FULL;
-  if (GetThreadContext(profiled_thread, &context) != 0) {
-    v8::RegisterState state;
-#if defined(USE_SIMULATOR)
-    if (!SimulatorHelper::FillRegisters(isolate(), &state)) {
-      ResumeThread(profiled_thread);
-      return;
-    }
-#else
-#if V8_HOST_ARCH_X64
-    state.pc = reinterpret_cast<Address>(context.Rip);
-    state.sp = reinterpret_cast<Address>(context.Rsp);
-    state.fp = reinterpret_cast<Address>(context.Rbp);
-#else
-    state.pc = reinterpret_cast<Address>(context.Eip);
-    state.sp = reinterpret_cast<Address>(context.Esp);
-    state.fp = reinterpret_cast<Address>(context.Ebp);
-#endif
-#endif  // USE_SIMULATOR
-    SampleStack(state);
-  }
-  ResumeThread(profiled_thread);
-}
-
-#endif  // USE_SIGNALS
-
-
-}  // namespace internal
-}  // namespace v8
diff --git a/src/profiler/sampling-heap-profiler.cc b/src/profiler/sampling-heap-profiler.cc
index db9214d..b4361ee 100644
--- a/src/profiler/sampling-heap-profiler.cc
+++ b/src/profiler/sampling-heap-profiler.cc
@@ -7,6 +7,7 @@
 #include <stdint.h>
 #include <memory>
 #include "src/api.h"
+#include "src/base/ieee754.h"
 #include "src/base/utils/random-number-generator.h"
 #include "src/frames-inl.h"
 #include "src/heap/heap.h"
@@ -27,7 +28,7 @@
     return static_cast<intptr_t>(rate);
   }
   double u = random_->NextDouble();
-  double next = (-std::log(u)) * rate;
+  double next = (-base::ieee754::log(u)) * rate;
   return next < kPointerSize
              ? kPointerSize
              : (next > INT_MAX ? INT_MAX : static_cast<intptr_t>(next));
diff --git a/src/profiler/strings-storage.cc b/src/profiler/strings-storage.cc
index 9f095b8..634b6ee 100644
--- a/src/profiler/strings-storage.cc
+++ b/src/profiler/strings-storage.cc
@@ -22,7 +22,8 @@
 
 
 StringsStorage::~StringsStorage() {
-  for (HashMap::Entry* p = names_.Start(); p != NULL; p = names_.Next(p)) {
+  for (base::HashMap::Entry* p = names_.Start(); p != NULL;
+       p = names_.Next(p)) {
     DeleteArray(reinterpret_cast<const char*>(p->value));
   }
 }
@@ -30,7 +31,7 @@
 
 const char* StringsStorage::GetCopy(const char* src) {
   int len = static_cast<int>(strlen(src));
-  HashMap::Entry* entry = GetEntry(src, len);
+  base::HashMap::Entry* entry = GetEntry(src, len);
   if (entry->value == NULL) {
     Vector<char> dst = Vector<char>::New(len + 1);
     StrNCpy(dst, src, len);
@@ -52,7 +53,7 @@
 
 
 const char* StringsStorage::AddOrDisposeString(char* str, int len) {
-  HashMap::Entry* entry = GetEntry(str, len);
+  base::HashMap::Entry* entry = GetEntry(str, len);
   if (entry->value == NULL) {
     // New entry added.
     entry->key = str;
@@ -107,15 +108,15 @@
 
 size_t StringsStorage::GetUsedMemorySize() const {
   size_t size = sizeof(*this);
-  size += sizeof(HashMap::Entry) * names_.capacity();
-  for (HashMap::Entry* p = names_.Start(); p != NULL; p = names_.Next(p)) {
+  size += sizeof(base::HashMap::Entry) * names_.capacity();
+  for (base::HashMap::Entry* p = names_.Start(); p != NULL;
+       p = names_.Next(p)) {
     size += strlen(reinterpret_cast<const char*>(p->value)) + 1;
   }
   return size;
 }
 
-
-HashMap::Entry* StringsStorage::GetEntry(const char* str, int len) {
+base::HashMap::Entry* StringsStorage::GetEntry(const char* str, int len) {
   uint32_t hash = StringHasher::HashSequentialString(str, len, hash_seed_);
   return names_.LookupOrInsert(const_cast<char*>(str), hash);
 }
diff --git a/src/profiler/strings-storage.h b/src/profiler/strings-storage.h
index 0849d63..f98aa5e 100644
--- a/src/profiler/strings-storage.h
+++ b/src/profiler/strings-storage.h
@@ -5,9 +5,11 @@
 #ifndef V8_PROFILER_STRINGS_STORAGE_H_
 #define V8_PROFILER_STRINGS_STORAGE_H_
 
+#include <stdarg.h>
+
 #include "src/allocation.h"
 #include "src/base/compiler-specific.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 
 namespace v8 {
 namespace internal {
@@ -34,10 +36,10 @@
 
   static bool StringsMatch(void* key1, void* key2);
   const char* AddOrDisposeString(char* str, int len);
-  HashMap::Entry* GetEntry(const char* str, int len);
+  base::HashMap::Entry* GetEntry(const char* str, int len);
 
   uint32_t hash_seed_;
-  HashMap names_;
+  base::HashMap names_;
 
   DISALLOW_COPY_AND_ASSIGN(StringsStorage);
 };
diff --git a/src/profiler/tick-sample.cc b/src/profiler/tick-sample.cc
index 3edd964..4b48132 100644
--- a/src/profiler/tick-sample.cc
+++ b/src/profiler/tick-sample.cc
@@ -20,7 +20,6 @@
          (reinterpret_cast<uintptr_t>(ptr2) & mask);
 }
 
-
 // Check if the code at specified address could potentially be a
 // frame setup code.
 bool IsNoFrameRegion(Address address) {
@@ -77,7 +76,6 @@
 
 }  // namespace
 
-
 //
 // StackTracer implementation
 //
@@ -86,21 +84,52 @@
                                    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;
+  SampleInfo info;
+  if (GetStackSample(isolate, regs, record_c_entry_frame,
+                     reinterpret_cast<void**>(&stack[0]), kMaxFramesCount,
+                     &info)) {
+    state = info.vm_state;
+    pc = static_cast<Address>(regs.pc);
+    frames_count = static_cast<unsigned>(info.frames_count);
+    has_external_callback = info.external_callback_entry != nullptr;
+    if (has_external_callback) {
+      external_callback_entry =
+          static_cast<Address>(info.external_callback_entry);
+    } else if (frames_count) {
+      // 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));
+    } else {
+      tos = nullptr;
+    }
+  } else {
+    // It is executing JS but failed to collect a stack trace.
+    // Mark the sample as spoiled.
+    timestamp = base::TimeTicks();
+    pc = nullptr;
+  }
+}
+
+bool 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();
+  sample_info->external_callback_entry = nullptr;
+  if (sample_info->vm_state == GC) return true;
 
   Address js_entry_sp = isolate->js_entry_sp();
-  if (js_entry_sp == 0) return;  // Not executing JS now.
+  if (js_entry_sp == 0) return true;  // Not executing JS now.
 
-  if (pc && IsNoFrameRegion(pc)) {
-    // Can't collect stack. Mark the sample as spoiled.
-    timestamp = base::TimeTicks();
-    pc = 0;
-    return;
+  if (regs.pc && IsNoFrameRegion(static_cast<Address>(regs.pc))) {
+    // Can't collect stack.
+    return false;
   }
 
   ExternalCallbackScope* scope = isolate->external_callback_scope();
@@ -109,48 +138,12 @@
   // 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;
+    sample_info->external_callback_entry =
+        *scope->callback_entrypoint_address();
   }
 
   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) {
@@ -172,9 +165,9 @@
     it.Advance();
   }
   sample_info->frames_count = i;
+  return true;
 }
 
-
 #if defined(USE_SIMULATOR)
 bool SimulatorHelper::FillRegisters(Isolate* isolate,
                                     v8::RegisterState* state) {
diff --git a/src/profiler/tick-sample.h b/src/profiler/tick-sample.h
index fa2cf21..0a651af 100644
--- a/src/profiler/tick-sample.h
+++ b/src/profiler/tick-sample.h
@@ -36,11 +36,10 @@
         external_callback_entry(NULL),
         frames_count(0),
         has_external_callback(false),
-        update_stats(true),
-        top_frame_type(StackFrame::NONE) {}
+        update_stats(true) {}
   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,
+  static bool GetStackSample(Isolate* isolate, const v8::RegisterState& state,
                              RecordCEntryFrame record_c_entry_frame,
                              void** frames, size_t frames_limit,
                              v8::SampleInfo* sample_info);
@@ -57,7 +56,6 @@
   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;
 };
 
 
diff --git a/src/property-descriptor.cc b/src/property-descriptor.cc
index 31efb41..f22a263 100644
--- a/src/property-descriptor.cc
+++ b/src/property-descriptor.cc
@@ -249,7 +249,7 @@
   if (!getter.is_null()) {
     // 18c. If IsCallable(getter) is false and getter is not undefined,
     // throw a TypeError exception.
-    if (!getter->IsCallable() && !getter->IsUndefined()) {
+    if (!getter->IsCallable() && !getter->IsUndefined(isolate)) {
       isolate->Throw(*isolate->factory()->NewTypeError(
           MessageTemplate::kObjectGetterCallable, getter));
       return false;
@@ -267,7 +267,7 @@
   if (!setter.is_null()) {
     // 21c. If IsCallable(setter) is false and setter is not undefined,
     // throw a TypeError exception.
-    if (!setter->IsCallable() && !setter->IsUndefined()) {
+    if (!setter->IsCallable() && !setter->IsUndefined(isolate)) {
       isolate->Throw(*isolate->factory()->NewTypeError(
           MessageTemplate::kObjectSetterCallable, setter));
       return false;
diff --git a/src/property-details.h b/src/property-details.h
index 8df7307..e30d668 100644
--- a/src/property-details.h
+++ b/src/property-details.h
@@ -28,11 +28,6 @@
   // ABSENT can never be stored in or returned from a descriptor's attributes
   // bitfield.  It is only used as a return value meaning the attributes of
   // a non-existent property.
-
-  // When creating a property, EVAL_DECLARED used to indicate that the property
-  // came from a sloppy-mode direct eval, and certain checks need to be done.
-  // Cannot be stored in or returned from a descriptor's attributes bitfield.
-  EVAL_DECLARED = 128
 };
 
 
diff --git a/src/prototype.h b/src/prototype.h
index e09ff0f..032d9b6 100644
--- a/src/prototype.h
+++ b/src/prototype.h
@@ -25,14 +25,12 @@
 
 class PrototypeIterator {
  public:
-  enum WhereToStart { START_AT_RECEIVER, START_AT_PROTOTYPE };
-
   enum WhereToEnd { END_AT_NULL, END_AT_NON_HIDDEN };
 
   const int kProxyPrototypeLimit = 100 * 1000;
 
   PrototypeIterator(Isolate* isolate, Handle<JSReceiver> receiver,
-                    WhereToStart where_to_start = START_AT_PROTOTYPE,
+                    WhereToStart where_to_start = kStartAtPrototype,
                     WhereToEnd where_to_end = END_AT_NULL)
       : object_(NULL),
         handle_(receiver),
@@ -41,32 +39,34 @@
         is_at_end_(false),
         seen_proxies_(0) {
     CHECK(!handle_.is_null());
-    if (where_to_start == START_AT_PROTOTYPE) Advance();
+    if (where_to_start == kStartAtPrototype) Advance();
   }
 
   PrototypeIterator(Isolate* isolate, JSReceiver* receiver,
-                    WhereToStart where_to_start = START_AT_PROTOTYPE,
+                    WhereToStart where_to_start = kStartAtPrototype,
                     WhereToEnd where_to_end = END_AT_NULL)
       : object_(receiver),
         isolate_(isolate),
         where_to_end_(where_to_end),
         is_at_end_(false),
         seen_proxies_(0) {
-    if (where_to_start == START_AT_PROTOTYPE) Advance();
+    if (where_to_start == kStartAtPrototype) Advance();
   }
 
   explicit PrototypeIterator(Map* receiver_map)
       : object_(receiver_map->prototype()),
         isolate_(receiver_map->GetIsolate()),
         where_to_end_(END_AT_NULL),
-        is_at_end_(object_->IsNull()) {}
+        is_at_end_(object_->IsNull(isolate_)),
+        seen_proxies_(0) {}
 
   explicit PrototypeIterator(Handle<Map> receiver_map)
       : object_(NULL),
         handle_(handle(receiver_map->prototype(), receiver_map->GetIsolate())),
         isolate_(receiver_map->GetIsolate()),
         where_to_end_(END_AT_NULL),
-        is_at_end_(handle_->IsNull()) {}
+        is_at_end_(handle_->IsNull(isolate_)),
+        seen_proxies_(0) {}
 
   ~PrototypeIterator() {}
 
@@ -114,7 +114,7 @@
     Object* prototype = map->prototype();
     is_at_end_ = where_to_end_ == END_AT_NON_HIDDEN
                      ? !map->has_hidden_prototype()
-                     : prototype->IsNull();
+                     : prototype->IsNull(isolate_);
 
     if (handle_.is_null()) {
       object_ = prototype;
@@ -153,7 +153,8 @@
     MaybeHandle<Object> proto =
         JSProxy::GetPrototype(Handle<JSProxy>::cast(handle_));
     if (!proto.ToHandle(&handle_)) return false;
-    is_at_end_ = where_to_end_ == END_AT_NON_HIDDEN || handle_->IsNull();
+    is_at_end_ =
+        where_to_end_ == END_AT_NON_HIDDEN || handle_->IsNull(isolate_);
     return true;
   }
 
diff --git a/src/regexp/arm/regexp-macro-assembler-arm.cc b/src/regexp/arm/regexp-macro-assembler-arm.cc
index f8dfc97..bf762b5 100644
--- a/src/regexp/arm/regexp-macro-assembler-arm.cc
+++ b/src/regexp/arm/regexp-macro-assembler-arm.cc
@@ -9,7 +9,6 @@
 #include "src/code-stubs.h"
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/regexp/arm64/regexp-macro-assembler-arm64.cc b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
index e8bdad8..96d0c25 100644
--- a/src/regexp/arm64/regexp-macro-assembler-arm64.cc
+++ b/src/regexp/arm64/regexp-macro-assembler-arm64.cc
@@ -9,7 +9,6 @@
 #include "src/code-stubs.h"
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/regexp/ia32/regexp-macro-assembler-ia32.cc b/src/regexp/ia32/regexp-macro-assembler-ia32.cc
index 9c55af6..6b4ea24 100644
--- a/src/regexp/ia32/regexp-macro-assembler-ia32.cc
+++ b/src/regexp/ia32/regexp-macro-assembler-ia32.cc
@@ -8,7 +8,6 @@
 
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/regexp/jsregexp.cc b/src/regexp/jsregexp.cc
index 6c50f4e..c3b670b 100644
--- a/src/regexp/jsregexp.cc
+++ b/src/regexp/jsregexp.cc
@@ -397,6 +397,7 @@
 
   Handle<FixedArray> data = Handle<FixedArray>(FixedArray::cast(re->data()));
   data->set(JSRegExp::code_index(is_one_byte), result.code);
+  SetIrregexpCaptureNameMap(*data, compile_data.capture_name_map);
   int register_max = IrregexpMaxRegisterCount(*data);
   if (result.num_registers > register_max) {
     SetIrregexpMaxRegisterCount(*data, result.num_registers);
@@ -416,6 +417,14 @@
   re->set(JSRegExp::kIrregexpMaxRegisterCountIndex, Smi::FromInt(value));
 }
 
+void RegExpImpl::SetIrregexpCaptureNameMap(FixedArray* re,
+                                           Handle<FixedArray> value) {
+  if (value.is_null()) {
+    re->set(JSRegExp::kIrregexpCaptureNameMapIndex, Smi::FromInt(0));
+  } else {
+    re->set(JSRegExp::kIrregexpCaptureNameMapIndex, *value);
+  }
+}
 
 int RegExpImpl::IrregexpNumberOfCaptures(FixedArray* re) {
   return Smi::cast(re->get(JSRegExp::kIrregexpCaptureCountIndex))->value();
diff --git a/src/regexp/jsregexp.h b/src/regexp/jsregexp.h
index e55d650..dc8aee1 100644
--- a/src/regexp/jsregexp.h
+++ b/src/regexp/jsregexp.h
@@ -196,6 +196,8 @@
   // For acting on the JSRegExp data FixedArray.
   static int IrregexpMaxRegisterCount(FixedArray* re);
   static void SetIrregexpMaxRegisterCount(FixedArray* re, int value);
+  static void SetIrregexpCaptureNameMap(FixedArray* re,
+                                        Handle<FixedArray> value);
   static int IrregexpNumberOfCaptures(FixedArray* re);
   static int IrregexpNumberOfRegisters(FixedArray* re);
   static ByteArray* IrregexpByteCode(FixedArray* re, bool is_one_byte);
@@ -1530,6 +1532,7 @@
   RegExpNode* node;
   bool simple;
   bool contains_anchor;
+  Handle<FixedArray> capture_name_map;
   Handle<String> error;
   int capture_count;
 };
diff --git a/src/regexp/ppc/OWNERS b/src/regexp/ppc/OWNERS
index eb007cb..752e8e3 100644
--- a/src/regexp/ppc/OWNERS
+++ b/src/regexp/ppc/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/regexp/ppc/regexp-macro-assembler-ppc.cc b/src/regexp/ppc/regexp-macro-assembler-ppc.cc
index 70842f5..a7418dd 100644
--- a/src/regexp/ppc/regexp-macro-assembler-ppc.cc
+++ b/src/regexp/ppc/regexp-macro-assembler-ppc.cc
@@ -10,7 +10,6 @@
 #include "src/code-stubs.h"
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/regexp/regexp-ast.h b/src/regexp/regexp-ast.h
index 39c9cee..406bf84 100644
--- a/src/regexp/regexp-ast.h
+++ b/src/regexp/regexp-ast.h
@@ -7,6 +7,7 @@
 
 #include "src/objects.h"
 #include "src/utils.h"
+#include "src/zone-containers.h"
 #include "src/zone.h"
 
 namespace v8 {
@@ -412,7 +413,8 @@
 
 class RegExpCapture final : public RegExpTree {
  public:
-  explicit RegExpCapture(int index) : body_(NULL), index_(index) {}
+  explicit RegExpCapture(int index)
+      : body_(NULL), index_(index), name_(nullptr) {}
   void* Accept(RegExpVisitor* visitor, void* data) override;
   RegExpNode* ToNode(RegExpCompiler* compiler, RegExpNode* on_success) override;
   static RegExpNode* ToNode(RegExpTree* body, int index,
@@ -427,12 +429,15 @@
   RegExpTree* body() { return body_; }
   void set_body(RegExpTree* body) { body_ = body; }
   int index() { return index_; }
+  const ZoneVector<uc16>* name() const { return name_; }
+  void set_name(const ZoneVector<uc16>* name) { name_ = name; }
   static int StartRegister(int index) { return index * 2; }
   static int EndRegister(int index) { return index * 2 + 1; }
 
  private:
   RegExpTree* body_;
   int index_;
+  const ZoneVector<uc16>* name_;
 };
 
 
@@ -489,7 +494,9 @@
 
 class RegExpBackReference final : public RegExpTree {
  public:
-  explicit RegExpBackReference(RegExpCapture* capture) : capture_(capture) {}
+  RegExpBackReference() : capture_(nullptr), name_(nullptr) {}
+  explicit RegExpBackReference(RegExpCapture* capture)
+      : capture_(capture), name_(nullptr) {}
   void* Accept(RegExpVisitor* visitor, void* data) override;
   RegExpNode* ToNode(RegExpCompiler* compiler, RegExpNode* on_success) override;
   RegExpBackReference* AsBackReference() override;
@@ -500,9 +507,13 @@
   int max_match() override { return kInfinity; }
   int index() { return capture_->index(); }
   RegExpCapture* capture() { return capture_; }
+  void set_capture(RegExpCapture* capture) { capture_ = capture; }
+  const ZoneVector<uc16>* name() const { return name_; }
+  void set_name(const ZoneVector<uc16>* name) { name_ = name; }
 
  private:
   RegExpCapture* capture_;
+  const ZoneVector<uc16>* name_;
 };
 
 
diff --git a/src/regexp/regexp-macro-assembler.cc b/src/regexp/regexp-macro-assembler.cc
index 7fed26e..19ecaed 100644
--- a/src/regexp/regexp-macro-assembler.cc
+++ b/src/regexp/regexp-macro-assembler.cc
@@ -177,7 +177,7 @@
     return_value = RETRY;
   } else {
     Object* result = isolate->stack_guard()->HandleInterrupts();
-    if (result->IsException()) return_value = EXCEPTION;
+    if (result->IsException(isolate)) return_value = EXCEPTION;
   }
 
   DisallowHeapAllocation no_gc;
diff --git a/src/regexp/regexp-parser.cc b/src/regexp/regexp-parser.cc
index abb644a..dba81ae 100644
--- a/src/regexp/regexp-parser.cc
+++ b/src/regexp/regexp-parser.cc
@@ -25,6 +25,8 @@
       zone_(zone),
       error_(error),
       captures_(NULL),
+      named_captures_(NULL),
+      named_back_references_(NULL),
       in_(in),
       current_(kEndMarker),
       ignore_case_(flags & JSRegExp::kIgnoreCase),
@@ -73,7 +75,8 @@
   if (has_next()) {
     StackLimitCheck check(isolate());
     if (check.HasOverflowed()) {
-      ReportError(CStrVector(Isolate::kStackOverflowMessage));
+      ReportError(CStrVector(
+          MessageTemplate::TemplateString(MessageTemplate::kStackOverflow)));
     } else if (zone()->excess_allocation()) {
       ReportError(CStrVector("Regular expression too large"));
     } else {
@@ -149,6 +152,7 @@
 //   Disjunction
 RegExpTree* RegExpParser::ParsePattern() {
   RegExpTree* result = ParseDisjunction(CHECK_FAILED);
+  PatchNamedBackReferences(CHECK_FAILED);
   DCHECK(!has_more());
   // If the result of parsing is a literal string atom, and it has the
   // same length as the input, then the atom is identical to the input.
@@ -172,7 +176,7 @@
 RegExpTree* RegExpParser::ParseDisjunction() {
   // Used to store current state while parsing subexpressions.
   RegExpParserState initial_state(NULL, INITIAL, RegExpLookaround::LOOKAHEAD, 0,
-                                  ignore_case(), unicode(), zone());
+                                  nullptr, ignore_case(), unicode(), zone());
   RegExpParserState* state = &initial_state;
   // Cache the builder in a local variable for quick access.
   RegExpBuilder* builder = initial_state.builder();
@@ -204,6 +208,10 @@
 
         // Build result of subexpression.
         if (group_type == CAPTURE) {
+          if (state->IsNamedCapture()) {
+            CreateNamedCaptureAtIndex(state->capture_name(),
+                                      capture_index CHECK_FAILED);
+          }
           RegExpCapture* capture = GetCapture(capture_index);
           capture->set_body(body);
           body = capture;
@@ -268,47 +276,65 @@
       case '(': {
         SubexpressionType subexpr_type = CAPTURE;
         RegExpLookaround::Type lookaround_type = state->lookaround_type();
+        bool is_named_capture = false;
         Advance();
         if (current() == '?') {
           switch (Next()) {
             case ':':
               subexpr_type = GROUPING;
+              Advance(2);
               break;
             case '=':
               lookaround_type = RegExpLookaround::LOOKAHEAD;
               subexpr_type = POSITIVE_LOOKAROUND;
+              Advance(2);
               break;
             case '!':
               lookaround_type = RegExpLookaround::LOOKAHEAD;
               subexpr_type = NEGATIVE_LOOKAROUND;
+              Advance(2);
               break;
             case '<':
+              Advance();
               if (FLAG_harmony_regexp_lookbehind) {
-                Advance();
-                lookaround_type = RegExpLookaround::LOOKBEHIND;
                 if (Next() == '=') {
                   subexpr_type = POSITIVE_LOOKAROUND;
+                  lookaround_type = RegExpLookaround::LOOKBEHIND;
+                  Advance(2);
                   break;
                 } else if (Next() == '!') {
                   subexpr_type = NEGATIVE_LOOKAROUND;
+                  lookaround_type = RegExpLookaround::LOOKBEHIND;
+                  Advance(2);
                   break;
                 }
               }
+              if (FLAG_harmony_regexp_named_captures && unicode()) {
+                is_named_capture = true;
+                Advance();
+                break;
+              }
             // Fall through.
             default:
               return ReportError(CStrVector("Invalid group"));
           }
-          Advance(2);
-        } else {
+        }
+
+        const ZoneVector<uc16>* capture_name = nullptr;
+        if (subexpr_type == CAPTURE) {
           if (captures_started_ >= kMaxCaptures) {
             return ReportError(CStrVector("Too many captures"));
           }
           captures_started_++;
+
+          if (is_named_capture) {
+            capture_name = ParseCaptureGroupName(CHECK_FAILED);
+          }
         }
         // Store current state and begin new disjunction parsing.
         state = new (zone()) RegExpParserState(
             state, subexpr_type, lookaround_type, captures_started_,
-            ignore_case(), unicode(), zone());
+            capture_name, ignore_case(), unicode(), zone());
         builder = state->builder();
         continue;
       }
@@ -362,11 +388,11 @@
               if (FLAG_harmony_regexp_property) {
                 ZoneList<CharacterRange>* ranges =
                     new (zone()) ZoneList<CharacterRange>(2, zone());
-                if (!ParsePropertyClass(ranges)) {
+                if (!ParsePropertyClass(ranges, p == 'P')) {
                   return ReportError(CStrVector("Invalid property name"));
                 }
                 RegExpCharacterClass* cc =
-                    new (zone()) RegExpCharacterClass(ranges, p == 'P');
+                    new (zone()) RegExpCharacterClass(ranges, false);
                 builder->AddCharacterClass(cc);
               } else {
                 // With /u, no identity escapes except for syntax characters
@@ -416,7 +442,7 @@
               break;
             }
           }
-          // FALLTHROUGH
+          // Fall through.
           case '0': {
             Advance();
             if (unicode() && Next() >= '0' && Next() <= '9') {
@@ -497,6 +523,13 @@
             }
             break;
           }
+          case 'k':
+            if (FLAG_harmony_regexp_named_captures && unicode()) {
+              Advance(2);
+              ParseNamedBackReference(builder, state CHECK_FAILED);
+              break;
+            }
+          // Fall through.
           default:
             Advance();
             // With /u, no identity escapes except for syntax characters
@@ -514,14 +547,14 @@
         int dummy;
         bool parsed = ParseIntervalQuantifier(&dummy, &dummy CHECK_FAILED);
         if (parsed) return ReportError(CStrVector("Nothing to repeat"));
-        // fallthrough
+        // Fall through.
       }
       case '}':
       case ']':
         if (unicode()) {
           return ReportError(CStrVector("Lone quantifier brackets"));
         }
-      // fallthrough
+      // Fall through.
       default:
         builder->AddUnicodeCharacter(current());
         Advance();
@@ -675,6 +708,148 @@
   return true;
 }
 
+static void push_code_unit(ZoneVector<uc16>* v, uint32_t code_unit) {
+  if (code_unit <= unibrow::Utf16::kMaxNonSurrogateCharCode) {
+    v->push_back(code_unit);
+  } else {
+    v->push_back(unibrow::Utf16::LeadSurrogate(code_unit));
+    v->push_back(unibrow::Utf16::TrailSurrogate(code_unit));
+  }
+}
+
+const ZoneVector<uc16>* RegExpParser::ParseCaptureGroupName() {
+  DCHECK(FLAG_harmony_regexp_named_captures);
+  DCHECK(unicode());
+
+  ZoneVector<uc16>* name =
+      new (zone()->New(sizeof(ZoneVector<uc16>))) ZoneVector<uc16>(zone());
+
+  bool at_start = true;
+  while (true) {
+    uc32 c = current();
+    Advance();
+
+    // Convert unicode escapes.
+    if (c == '\\' && current() == 'u') {
+      Advance();
+      if (!ParseUnicodeEscape(&c)) {
+        ReportError(CStrVector("Invalid Unicode escape sequence"));
+        return nullptr;
+      }
+    }
+
+    if (at_start) {
+      if (!IdentifierStart::Is(c)) {
+        ReportError(CStrVector("Invalid capture group name"));
+        return nullptr;
+      }
+      push_code_unit(name, c);
+      at_start = false;
+    } else {
+      if (c == '>') {
+        break;
+      } else if (IdentifierPart::Is(c)) {
+        push_code_unit(name, c);
+      } else {
+        ReportError(CStrVector("Invalid capture group name"));
+        return nullptr;
+      }
+    }
+  }
+
+  return name;
+}
+
+bool RegExpParser::CreateNamedCaptureAtIndex(const ZoneVector<uc16>* name,
+                                             int index) {
+  DCHECK(FLAG_harmony_regexp_named_captures);
+  DCHECK(unicode());
+  DCHECK(0 < index && index <= captures_started_);
+  DCHECK_NOT_NULL(name);
+
+  if (named_captures_ == nullptr) {
+    named_captures_ = new (zone()) ZoneList<RegExpCapture*>(1, zone());
+  } else {
+    // Check for duplicates and bail if we find any.
+    for (const auto& named_capture : *named_captures_) {
+      if (*named_capture->name() == *name) {
+        ReportError(CStrVector("Duplicate capture group name"));
+        return false;
+      }
+    }
+  }
+
+  RegExpCapture* capture = GetCapture(index);
+  DCHECK(capture->name() == nullptr);
+
+  capture->set_name(name);
+  named_captures_->Add(capture, zone());
+
+  return true;
+}
+
+bool RegExpParser::ParseNamedBackReference(RegExpBuilder* builder,
+                                           RegExpParserState* state) {
+  // The parser is assumed to be on the '<' in \k<name>.
+  if (current() != '<') {
+    ReportError(CStrVector("Invalid named reference"));
+    return false;
+  }
+
+  Advance();
+  const ZoneVector<uc16>* name = ParseCaptureGroupName();
+  if (name == nullptr) {
+    return false;
+  }
+
+  if (state->IsInsideCaptureGroup(name)) {
+    builder->AddEmpty();
+  } else {
+    RegExpBackReference* atom = new (zone()) RegExpBackReference();
+    atom->set_name(name);
+
+    builder->AddAtom(atom);
+
+    if (named_back_references_ == nullptr) {
+      named_back_references_ =
+          new (zone()) ZoneList<RegExpBackReference*>(1, zone());
+    }
+    named_back_references_->Add(atom, zone());
+  }
+
+  return true;
+}
+
+void RegExpParser::PatchNamedBackReferences() {
+  if (named_back_references_ == nullptr) return;
+
+  if (named_captures_ == nullptr) {
+    ReportError(CStrVector("Invalid named capture referenced"));
+    return;
+  }
+
+  // Look up and patch the actual capture for each named back reference.
+  // TODO(jgruber): O(n^2), optimize if necessary.
+
+  for (int i = 0; i < named_back_references_->length(); i++) {
+    RegExpBackReference* ref = named_back_references_->at(i);
+
+    int index = -1;
+    for (const auto& capture : *named_captures_) {
+      if (*capture->name() == *ref->name()) {
+        index = capture->index();
+        break;
+      }
+    }
+
+    if (index == -1) {
+      ReportError(CStrVector("Invalid named capture referenced"));
+      return;
+    }
+
+    ref->set_capture(GetCapture(index));
+  }
+}
 
 RegExpCapture* RegExpParser::GetCapture(int index) {
   // The index for the capture groups are one-based. Its index in the list is
@@ -691,6 +866,24 @@
   return captures_->at(index - 1);
 }
 
+Handle<FixedArray> RegExpParser::CreateCaptureNameMap() {
+  if (named_captures_ == nullptr || named_captures_->is_empty())
+    return Handle<FixedArray>();
+
+  Factory* factory = isolate()->factory();
+
+  int len = named_captures_->length() * 2;
+  Handle<FixedArray> array = factory->NewFixedArray(len);
+
+  for (int i = 0; i < named_captures_->length(); i++) {
+    RegExpCapture* capture = named_captures_->at(i);
+    MaybeHandle<String> name = factory->NewStringFromTwoByte(capture->name());
+    array->set(i * 2, *name.ToHandleChecked());
+    array->set(i * 2 + 1, Smi::FromInt(capture->index()));
+  }
+
+  return array;
+}
 
 bool RegExpParser::RegExpParserState::IsInsideCaptureGroup(int index) {
   for (RegExpParserState* s = this; s != NULL; s = s->previous_state()) {
@@ -703,6 +896,15 @@
   return false;
 }
 
+bool RegExpParser::RegExpParserState::IsInsideCaptureGroup(
+    const ZoneVector<uc16>* name) {
+  DCHECK_NOT_NULL(name);
+  for (RegExpParserState* s = this; s != NULL; s = s->previous_state()) {
+    if (s->capture_name() == nullptr) continue;
+    if (*s->capture_name() == *name) return true;
+  }
+  return false;
+}
 
 // QuantifierPrefix ::
 //   { DecimalDigits }
@@ -845,6 +1047,9 @@
 }
 
 #ifdef V8_I18N_SUPPORT
+
+namespace {
+
 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;
@@ -875,7 +1080,7 @@
 }
 
 bool LookupPropertyValueName(UProperty property,
-                             const char* property_value_name,
+                             const char* property_value_name, bool negate,
                              ZoneList<CharacterRange>* result, Zone* zone) {
   int32_t property_value =
       u_getPropertyValueEnum(property, property_value_name);
@@ -895,6 +1100,7 @@
 
   if (success) {
     uset_removeAllStrings(set);
+    if (negate) uset_complement(set);
     int item_count = uset_getItemCount(set);
     int item_result = 0;
     for (int i = 0; i < item_count; i++) {
@@ -910,9 +1116,34 @@
   return success;
 }
 
-bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result) {
+template <size_t N>
+inline bool NameEquals(const char* name, const char (&literal)[N]) {
+  return strncmp(name, literal, N + 1) == 0;
+}
+
+bool LookupSpecialPropertyValueName(const char* name,
+                                    ZoneList<CharacterRange>* result,
+                                    bool negate, Zone* zone) {
+  if (NameEquals(name, "Any")) {
+    if (!negate) result->Add(CharacterRange::Everything(), zone);
+  } else if (NameEquals(name, "ASCII")) {
+    result->Add(negate ? CharacterRange::Range(0x80, String::kMaxCodePoint)
+                       : CharacterRange::Range(0x0, 0x7f),
+                zone);
+  } else if (NameEquals(name, "Assigned")) {
+    return LookupPropertyValueName(UCHAR_GENERAL_CATEGORY, "Unassigned",
+                                   !negate, result, zone);
+  } else {
+    return false;
+  }
+  return true;
+}
+
+}  // anonymous namespace
+
+bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result,
+                                      bool negate) {
   // 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.
@@ -935,9 +1166,6 @@
       }
       second_part.Add(0);  // null-terminate string.
     }
-  } else if (current() != kEndMarker) {
-    // Parse \pN, where N is a single-character property name value.
-    first_part.Add(static_cast<char>(current()));
   } else {
     return false;
   }
@@ -947,8 +1175,12 @@
   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())) {
+    if (LookupPropertyValueName(UCHAR_GENERAL_CATEGORY_MASK, name, negate,
+                                result, zone())) {
+      return true;
+    }
+    // Interpret "Any", "ASCII", and "Assigned".
+    if (LookupSpecialPropertyValueName(name, result, negate, zone())) {
       return true;
     }
     // Then attempt to interpret as binary property name with value name 'Y'.
@@ -956,7 +1188,8 @@
     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());
+    return LookupPropertyValueName(property, negate ? "N" : "Y", false, result,
+                                   zone());
   } else {
     // Both property name and value name are specified. Attempt to interpret
     // the property name as enumerated property.
@@ -966,13 +1199,15 @@
     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());
+    return LookupPropertyValueName(property, value_name, negate, result,
+                                   zone());
   }
 }
 
 #else  // V8_I18N_SUPPORT
 
-bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result) {
+bool RegExpParser::ParsePropertyClass(ZoneList<CharacterRange>* result,
+                                      bool negate) {
   return false;
 }
 
@@ -1139,7 +1374,6 @@
   return CharacterRange::Singleton(first);
 }
 
-
 static const uc16 kNoCharClass = 0;
 
 // Adds range or pre-defined character class to character ranges.
@@ -1163,19 +1397,10 @@
   bool parse_success = false;
   if (next == 'p') {
     Advance(2);
-    parse_success = ParsePropertyClass(ranges);
+    parse_success = ParsePropertyClass(ranges, false);
   } else if (next == 'P') {
     Advance(2);
-    ZoneList<CharacterRange>* property_class =
-        new (zone()) ZoneList<CharacterRange>(2, zone());
-    parse_success = ParsePropertyClass(property_class);
-    if (parse_success) {
-      ZoneList<CharacterRange>* negated =
-          new (zone()) ZoneList<CharacterRange>(2, zone());
-      CharacterRange::Negate(property_class, negated, zone());
-      const Vector<CharacterRange> negated_vector = negated->ToVector();
-      ranges->AddAll(negated_vector, zone());
-    }
+    parse_success = ParsePropertyClass(ranges, true);
   } else {
     return false;
   }
@@ -1272,6 +1497,7 @@
     int capture_count = parser.captures_started();
     result->simple = tree->IsAtom() && parser.simple() && capture_count == 0;
     result->contains_anchor = parser.contains_anchor();
+    result->capture_name_map = parser.CreateCaptureNameMap();
     result->capture_count = capture_count;
   }
   return !parser.failed();
diff --git a/src/regexp/regexp-parser.h b/src/regexp/regexp-parser.h
index 6142a9e..a0b975d 100644
--- a/src/regexp/regexp-parser.h
+++ b/src/regexp/regexp-parser.h
@@ -174,7 +174,7 @@
   bool ParseHexEscape(int length, uc32* value);
   bool ParseUnicodeEscape(uc32* value);
   bool ParseUnlimitedLengthHexNumber(int max_value, uc32* value);
-  bool ParsePropertyClass(ZoneList<CharacterRange>* result);
+  bool ParsePropertyClass(ZoneList<CharacterRange>* result, bool negate);
 
   uc32 ParseOctalLiteral();
 
@@ -222,13 +222,15 @@
     RegExpParserState(RegExpParserState* previous_state,
                       SubexpressionType group_type,
                       RegExpLookaround::Type lookaround_type,
-                      int disjunction_capture_index, bool ignore_case,
+                      int disjunction_capture_index,
+                      const ZoneVector<uc16>* capture_name, bool ignore_case,
                       bool unicode, Zone* zone)
         : previous_state_(previous_state),
           builder_(new (zone) RegExpBuilder(zone, ignore_case, unicode)),
           group_type_(group_type),
           lookaround_type_(lookaround_type),
-          disjunction_capture_index_(disjunction_capture_index) {}
+          disjunction_capture_index_(disjunction_capture_index),
+          capture_name_(capture_name) {}
     // Parser state of containing expression, if any.
     RegExpParserState* previous_state() { return previous_state_; }
     bool IsSubexpression() { return previous_state_ != NULL; }
@@ -242,9 +244,16 @@
     // Also the capture index of this sub-expression itself, if group_type
     // is CAPTURE.
     int capture_index() { return disjunction_capture_index_; }
+    // The name of the current sub-expression, if group_type is CAPTURE. Only
+    // used for named captures.
+    const ZoneVector<uc16>* capture_name() { return capture_name_; }
+
+    bool IsNamedCapture() const { return capture_name_ != nullptr; }
 
     // Check whether the parser is inside a capture group with the given index.
     bool IsInsideCaptureGroup(int index);
+    // Check whether the parser is inside a capture group with the given name.
+    bool IsInsideCaptureGroup(const ZoneVector<uc16>* name);
 
    private:
     // Linked list implementation of stack of states.
@@ -257,11 +266,32 @@
     RegExpLookaround::Type lookaround_type_;
     // Stored disjunction's capture index (if any).
     int disjunction_capture_index_;
+    // Stored capture name (if any).
+    const ZoneVector<uc16>* capture_name_;
   };
 
   // Return the 1-indexed RegExpCapture object, allocate if necessary.
   RegExpCapture* GetCapture(int index);
 
+  // Creates a new named capture at the specified index. Must be called exactly
+  // once for each named capture. Fails if a capture with the same name is
+  // encountered.
+  bool CreateNamedCaptureAtIndex(const ZoneVector<uc16>* name, int index);
+
+  // Parses the name of a capture group (?<name>pattern). The name must adhere
+  // to IdentifierName in the ECMAScript standard.
+  const ZoneVector<uc16>* ParseCaptureGroupName();
+
+  bool ParseNamedBackReference(RegExpBuilder* builder,
+                               RegExpParserState* state);
+
+  // After the initial parsing pass, patch corresponding RegExpCapture objects
+  // into all RegExpBackReferences. This is done after initial parsing in order
+  // to avoid complicating cases in which references comes before the capture.
+  void PatchNamedBackReferences();
+
+  Handle<FixedArray> CreateCaptureNameMap();
+
   Isolate* isolate() { return isolate_; }
   Zone* zone() const { return zone_; }
 
@@ -278,6 +308,8 @@
   Zone* zone_;
   Handle<String>* error_;
   ZoneList<RegExpCapture*>* captures_;
+  ZoneList<RegExpCapture*>* named_captures_;
+  ZoneList<RegExpBackReference*>* named_back_references_;
   FlatStringReader* in_;
   uc32 current_;
   bool ignore_case_;
diff --git a/src/regexp/s390/OWNERS b/src/regexp/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/regexp/s390/OWNERS
+++ b/src/regexp/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/regexp/s390/regexp-macro-assembler-s390.cc b/src/regexp/s390/regexp-macro-assembler-s390.cc
index 9dac534..d9ca1df 100644
--- a/src/regexp/s390/regexp-macro-assembler-s390.cc
+++ b/src/regexp/s390/regexp-macro-assembler-s390.cc
@@ -10,7 +10,6 @@
 #include "src/code-stubs.h"
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/regexp/s390/regexp-macro-assembler-s390.h"
diff --git a/src/regexp/x64/regexp-macro-assembler-x64.cc b/src/regexp/x64/regexp-macro-assembler-x64.cc
index 5d73b43..aafc840 100644
--- a/src/regexp/x64/regexp-macro-assembler-x64.cc
+++ b/src/regexp/x64/regexp-macro-assembler-x64.cc
@@ -8,7 +8,6 @@
 
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/regexp/x87/regexp-macro-assembler-x87.cc b/src/regexp/x87/regexp-macro-assembler-x87.cc
index 9f15b1c..4a1c3a8 100644
--- a/src/regexp/x87/regexp-macro-assembler-x87.cc
+++ b/src/regexp/x87/regexp-macro-assembler-x87.cc
@@ -8,7 +8,6 @@
 
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/regexp/regexp-macro-assembler.h"
 #include "src/regexp/regexp-stack.h"
 #include "src/unicode.h"
diff --git a/src/register-configuration.cc b/src/register-configuration.cc
index ab5c692..148c3fc 100644
--- a/src/register-configuration.cc
+++ b/src/register-configuration.cc
@@ -33,6 +33,12 @@
 #undef REGISTER_NAME
 };
 
+static const char* const kFloatRegisterNames[] = {
+#define REGISTER_NAME(R) #R,
+    FLOAT_REGISTERS(REGISTER_NAME)
+#undef REGISTER_NAME
+};
+
 static const char* const kDoubleRegisterNames[] = {
 #define REGISTER_NAME(R) #R,
     DOUBLE_REGISTERS(REGISTER_NAME)
@@ -44,113 +50,99 @@
 STATIC_ASSERT(RegisterConfiguration::kMaxFPRegisters >=
               DoubleRegister::kMaxNumRegisters);
 
+enum CompilerSelector { CRANKSHAFT, TURBOFAN };
+
 class ArchDefaultRegisterConfiguration : public RegisterConfiguration {
  public:
   explicit ArchDefaultRegisterConfiguration(CompilerSelector compiler)
-      : RegisterConfiguration(Register::kNumRegisters,
-                              DoubleRegister::kMaxNumRegisters,
+      : RegisterConfiguration(
+            Register::kNumRegisters, DoubleRegister::kMaxNumRegisters,
 #if V8_TARGET_ARCH_IA32
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_X87
-                              kMaxAllocatableGeneralRegisterCount,
-                              compiler == TURBOFAN
-                                  ? 1
-                                  : kMaxAllocatableDoubleRegisterCount,
-                              compiler == TURBOFAN
-                                  ? 1
-                                  : kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            compiler == TURBOFAN ? 1 : kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_X64
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_ARM
-                              FLAG_enable_embedded_constant_pool
-                                  ? (kMaxAllocatableGeneralRegisterCount - 1)
-                                  : kMaxAllocatableGeneralRegisterCount,
-                              CpuFeatures::IsSupported(VFP32DREGS)
-                                  ? kMaxAllocatableDoubleRegisterCount
-                                  : (ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(
-                                        REGISTER_COUNT)0),
-                              ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(
-                                  REGISTER_COUNT)0,
+            FLAG_enable_embedded_constant_pool
+                ? (kMaxAllocatableGeneralRegisterCount - 1)
+                : kMaxAllocatableGeneralRegisterCount,
+            CpuFeatures::IsSupported(VFP32DREGS)
+                ? kMaxAllocatableDoubleRegisterCount
+                : (ALLOCATABLE_NO_VFP32_DOUBLE_REGISTERS(REGISTER_COUNT) 0),
 #elif V8_TARGET_ARCH_ARM64
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_MIPS
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_MIPS64
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_PPC
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #elif V8_TARGET_ARCH_S390
-                              kMaxAllocatableGeneralRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
-                              kMaxAllocatableDoubleRegisterCount,
+            kMaxAllocatableGeneralRegisterCount,
+            kMaxAllocatableDoubleRegisterCount,
 #else
 #error Unsupported target architecture.
 #endif
-                              kAllocatableGeneralCodes, kAllocatableDoubleCodes,
-                              kGeneralRegisterNames, kDoubleRegisterNames) {
+            kAllocatableGeneralCodes, kAllocatableDoubleCodes,
+            kSimpleFPAliasing ? AliasingKind::OVERLAP : AliasingKind::COMBINE,
+            kGeneralRegisterNames, kFloatRegisterNames, kDoubleRegisterNames) {
   }
 };
 
-
-template <RegisterConfiguration::CompilerSelector compiler>
+template <CompilerSelector compiler>
 struct RegisterConfigurationInitializer {
   static void Construct(ArchDefaultRegisterConfiguration* config) {
     new (config) ArchDefaultRegisterConfiguration(compiler);
   }
 };
 
-static base::LazyInstance<
-    ArchDefaultRegisterConfiguration,
-    RegisterConfigurationInitializer<RegisterConfiguration::CRANKSHAFT>>::type
+static base::LazyInstance<ArchDefaultRegisterConfiguration,
+                          RegisterConfigurationInitializer<CRANKSHAFT>>::type
     kDefaultRegisterConfigurationForCrankshaft = LAZY_INSTANCE_INITIALIZER;
 
-
-static base::LazyInstance<
-    ArchDefaultRegisterConfiguration,
-    RegisterConfigurationInitializer<RegisterConfiguration::TURBOFAN>>::type
+static base::LazyInstance<ArchDefaultRegisterConfiguration,
+                          RegisterConfigurationInitializer<TURBOFAN>>::type
     kDefaultRegisterConfigurationForTurboFan = LAZY_INSTANCE_INITIALIZER;
 
 }  // namespace
 
-
-const RegisterConfiguration* RegisterConfiguration::ArchDefault(
-    CompilerSelector compiler) {
-  return compiler == TURBOFAN
-             ? &kDefaultRegisterConfigurationForTurboFan.Get()
-             : &kDefaultRegisterConfigurationForCrankshaft.Get();
+const RegisterConfiguration* RegisterConfiguration::Crankshaft() {
+  return &kDefaultRegisterConfigurationForCrankshaft.Get();
 }
 
+const RegisterConfiguration* RegisterConfiguration::Turbofan() {
+  return &kDefaultRegisterConfigurationForTurboFan.Get();
+}
 
 RegisterConfiguration::RegisterConfiguration(
     int num_general_registers, int num_double_registers,
     int num_allocatable_general_registers, int num_allocatable_double_registers,
-    int num_allocatable_aliased_double_registers,
     const int* allocatable_general_codes, const int* allocatable_double_codes,
-    const char* const* general_register_names,
+    AliasingKind fp_aliasing_kind, const char* const* general_register_names,
+    const char* const* float_register_names,
     const char* const* double_register_names)
     : num_general_registers_(num_general_registers),
+      num_float_registers_(0),
       num_double_registers_(num_double_registers),
       num_allocatable_general_registers_(num_allocatable_general_registers),
       num_allocatable_double_registers_(num_allocatable_double_registers),
-      num_allocatable_aliased_double_registers_(
-          num_allocatable_aliased_double_registers),
+      num_allocatable_float_registers_(0),
       allocatable_general_codes_mask_(0),
       allocatable_double_codes_mask_(0),
+      allocatable_float_codes_mask_(0),
       allocatable_general_codes_(allocatable_general_codes),
       allocatable_double_codes_(allocatable_double_codes),
+      fp_aliasing_kind_(fp_aliasing_kind),
       general_register_names_(general_register_names),
+      float_register_names_(float_register_names),
       double_register_names_(double_register_names) {
   DCHECK(num_general_registers_ <= RegisterConfiguration::kMaxGeneralRegisters);
   DCHECK(num_double_registers_ <= RegisterConfiguration::kMaxFPRegisters);
@@ -160,6 +152,81 @@
   for (int i = 0; i < num_allocatable_double_registers_; ++i) {
     allocatable_double_codes_mask_ |= (1 << allocatable_double_codes_[i]);
   }
+
+  if (fp_aliasing_kind_ == COMBINE) {
+    num_float_registers_ = num_double_registers_ * 2 <= kMaxFPRegisters
+                               ? num_double_registers_ * 2
+                               : kMaxFPRegisters;
+    num_allocatable_float_registers_ = 0;
+    for (int i = 0; i < num_allocatable_double_registers_; i++) {
+      int base_code = allocatable_double_codes_[i] * 2;
+      if (base_code >= kMaxFPRegisters) continue;
+      allocatable_float_codes_[num_allocatable_float_registers_++] = base_code;
+      allocatable_float_codes_[num_allocatable_float_registers_++] =
+          base_code + 1;
+      allocatable_float_codes_mask_ |= (0x3 << base_code);
+    }
+  } else {
+    DCHECK(fp_aliasing_kind_ == OVERLAP);
+    num_float_registers_ = num_double_registers_;
+    num_allocatable_float_registers_ = num_allocatable_double_registers_;
+    for (int i = 0; i < num_allocatable_float_registers_; ++i) {
+      allocatable_float_codes_[i] = allocatable_double_codes_[i];
+    }
+    allocatable_float_codes_mask_ = allocatable_double_codes_mask_;
+  }
+}
+
+int RegisterConfiguration::GetAliases(MachineRepresentation rep, int index,
+                                      MachineRepresentation other_rep,
+                                      int* alias_base_index) const {
+  DCHECK(fp_aliasing_kind_ == COMBINE);
+  DCHECK(rep == MachineRepresentation::kFloat32 ||
+         rep == MachineRepresentation::kFloat64);
+  DCHECK(other_rep == MachineRepresentation::kFloat32 ||
+         other_rep == MachineRepresentation::kFloat64);
+  if (rep == other_rep) {
+    *alias_base_index = index;
+    return 1;
+  }
+  if (rep == MachineRepresentation::kFloat32) {
+    DCHECK(other_rep == MachineRepresentation::kFloat64);
+    DCHECK(index < num_allocatable_float_registers_);
+    *alias_base_index = index / 2;
+    return 1;
+  }
+  DCHECK(rep == MachineRepresentation::kFloat64);
+  DCHECK(other_rep == MachineRepresentation::kFloat32);
+  if (index * 2 >= kMaxFPRegisters) {
+    // Alias indices are out of float register range.
+    return 0;
+  }
+  *alias_base_index = index * 2;
+  return 2;
+}
+
+bool RegisterConfiguration::AreAliases(MachineRepresentation rep, int index,
+                                       MachineRepresentation other_rep,
+                                       int other_index) const {
+  DCHECK(fp_aliasing_kind_ == COMBINE);
+  DCHECK(rep == MachineRepresentation::kFloat32 ||
+         rep == MachineRepresentation::kFloat64);
+  DCHECK(other_rep == MachineRepresentation::kFloat32 ||
+         other_rep == MachineRepresentation::kFloat64);
+  if (rep == other_rep) {
+    return index == other_index;
+  }
+  if (rep == MachineRepresentation::kFloat32) {
+    DCHECK(other_rep == MachineRepresentation::kFloat64);
+    return index / 2 == other_index;
+  }
+  DCHECK(rep == MachineRepresentation::kFloat64);
+  DCHECK(other_rep == MachineRepresentation::kFloat32);
+  if (index * 2 >= kMaxFPRegisters) {
+    // Alias indices are out of float register range.
+    return false;
+  }
+  return index == other_index / 2;
 }
 
 #undef REGISTER_COUNT
diff --git a/src/register-configuration.h b/src/register-configuration.h
index c07106e..25f3ef5 100644
--- a/src/register-configuration.h
+++ b/src/register-configuration.h
@@ -6,6 +6,7 @@
 #define V8_COMPILER_REGISTER_CONFIGURATION_H_
 
 #include "src/base/macros.h"
+#include "src/machine-type.h"
 
 namespace v8 {
 namespace internal {
@@ -14,29 +15,35 @@
 // for instruction creation.
 class RegisterConfiguration {
  public:
-  // Define the optimized compiler selector for register configuration
-  // selection.
-  //
-  // TODO(X87): This distinction in RegisterConfigurations is temporary
-  // until x87 TF supports all of the registers that Crankshaft does.
-  enum CompilerSelector { CRANKSHAFT, TURBOFAN };
+  enum AliasingKind {
+    // Registers alias a single register of every other size (e.g. Intel).
+    OVERLAP,
+    // Registers alias two registers of the next smaller size (e.g. ARM).
+    COMBINE
+  };
 
   // Architecture independent maxes.
   static const int kMaxGeneralRegisters = 32;
   static const int kMaxFPRegisters = 32;
 
-  static const RegisterConfiguration* ArchDefault(CompilerSelector compiler);
+  // Default RegisterConfigurations for the target architecture.
+  // TODO(X87): This distinction in RegisterConfigurations is temporary
+  // until x87 TF supports all of the registers that Crankshaft does.
+  static const RegisterConfiguration* Crankshaft();
+  static const RegisterConfiguration* Turbofan();
 
   RegisterConfiguration(int num_general_registers, int num_double_registers,
                         int num_allocatable_general_registers,
                         int num_allocatable_double_registers,
-                        int num_allocatable_aliased_double_registers,
                         const int* allocatable_general_codes,
                         const int* allocatable_double_codes,
+                        AliasingKind fp_aliasing_kind,
                         char const* const* general_names,
+                        char const* const* float_names,
                         char const* const* double_names);
 
   int num_general_registers() const { return num_general_registers_; }
+  int num_float_registers() const { return num_float_registers_; }
   int num_double_registers() const { return num_double_registers_; }
   int num_allocatable_general_registers() const {
     return num_allocatable_general_registers_;
@@ -44,12 +51,10 @@
   int num_allocatable_double_registers() const {
     return num_allocatable_double_registers_;
   }
-  // TODO(turbofan): This is a temporary work-around required because our
-  // register allocator does not yet support the aliasing of single/double
-  // registers on ARM.
-  int num_allocatable_aliased_double_registers() const {
-    return num_allocatable_aliased_double_registers_;
+  int num_allocatable_float_registers() const {
+    return num_allocatable_float_registers_;
   }
+  AliasingKind fp_aliasing_kind() const { return fp_aliasing_kind_; }
   int32_t allocatable_general_codes_mask() const {
     return allocatable_general_codes_mask_;
   }
@@ -59,12 +64,27 @@
   int GetAllocatableGeneralCode(int index) const {
     return allocatable_general_codes_[index];
   }
+  bool IsAllocatableGeneralCode(int index) const {
+    return ((1 << index) & allocatable_general_codes_mask_) != 0;
+  }
   int GetAllocatableDoubleCode(int index) const {
     return allocatable_double_codes_[index];
   }
+  bool IsAllocatableDoubleCode(int index) const {
+    return ((1 << index) & allocatable_double_codes_mask_) != 0;
+  }
+  int GetAllocatableFloatCode(int index) const {
+    return allocatable_float_codes_[index];
+  }
+  bool IsAllocatableFloatCode(int index) const {
+    return ((1 << index) & allocatable_float_codes_mask_) != 0;
+  }
   const char* GetGeneralRegisterName(int code) const {
     return general_register_names_[code];
   }
+  const char* GetFloatRegisterName(int code) const {
+    return float_register_names_[code];
+  }
   const char* GetDoubleRegisterName(int code) const {
     return double_register_names_[code];
   }
@@ -74,18 +94,38 @@
   const int* allocatable_double_codes() const {
     return allocatable_double_codes_;
   }
+  const int* allocatable_float_codes() const {
+    return allocatable_float_codes_;
+  }
+
+  // Aliasing calculations for floating point registers, when fp_aliasing_kind()
+  // is COMBINE. Currently only implemented for kFloat32, or kFloat64 reps.
+  // Returns the number of aliases, and if > 0, alias_base_index is set to the
+  // index of the first alias.
+  int GetAliases(MachineRepresentation rep, int index,
+                 MachineRepresentation other_rep, int* alias_base_index) const;
+  // Returns a value indicating whether two registers alias each other, when
+  // fp_aliasing_kind() is COMBINE. Currently only implemented for kFloat32, or
+  // kFloat64 reps.
+  bool AreAliases(MachineRepresentation rep, int index,
+                  MachineRepresentation other_rep, int other_index) const;
 
  private:
   const int num_general_registers_;
+  int num_float_registers_;
   const int num_double_registers_;
   int num_allocatable_general_registers_;
   int num_allocatable_double_registers_;
-  int num_allocatable_aliased_double_registers_;
+  int num_allocatable_float_registers_;
   int32_t allocatable_general_codes_mask_;
   int32_t allocatable_double_codes_mask_;
+  int32_t allocatable_float_codes_mask_;
   const int* allocatable_general_codes_;
   const int* allocatable_double_codes_;
+  int allocatable_float_codes_[kMaxFPRegisters];
+  AliasingKind fp_aliasing_kind_;
   char const* const* general_register_names_;
+  char const* const* float_register_names_;
   char const* const* double_register_names_;
 };
 
diff --git a/src/runtime-profiler.cc b/src/runtime-profiler.cc
index 1b571a7..6500b9a 100644
--- a/src/runtime-profiler.cc
+++ b/src/runtime-profiler.cc
@@ -21,7 +21,7 @@
 
 // Number of times a function has to be seen on the stack before it is
 // compiled for baseline.
-static const int kProfilerTicksBeforeBaseline = 2;
+static const int kProfilerTicksBeforeBaseline = 1;
 // Number of times a function has to be seen on the stack before it is
 // optimized.
 static const int kProfilerTicksBeforeOptimization = 2;
@@ -56,16 +56,14 @@
       any_ic_changed_(false) {
 }
 
-
-static void GetICCounts(SharedFunctionInfo* shared,
-                        int* ic_with_type_info_count, int* ic_generic_count,
-                        int* ic_total_count, int* type_info_percentage,
-                        int* generic_percentage) {
+static void GetICCounts(JSFunction* function, int* ic_with_type_info_count,
+                        int* ic_generic_count, int* ic_total_count,
+                        int* type_info_percentage, int* generic_percentage) {
   *ic_total_count = 0;
   *ic_generic_count = 0;
   *ic_with_type_info_count = 0;
-  if (shared->code()->kind() == Code::FUNCTION) {
-    Code* shared_code = shared->code();
+  if (function->code()->kind() == Code::FUNCTION) {
+    Code* shared_code = function->shared()->code();
     Object* raw_info = shared_code->type_feedback_info();
     if (raw_info->IsTypeFeedbackInfo()) {
       TypeFeedbackInfo* info = TypeFeedbackInfo::cast(raw_info);
@@ -76,7 +74,7 @@
   }
 
   // Harvest vector-ics as well
-  TypeFeedbackVector* vector = shared->feedback_vector();
+  TypeFeedbackVector* vector = function->feedback_vector();
   int with = 0, gen = 0;
   vector->ComputeCounts(&with, &gen);
   *ic_with_type_info_count += with;
@@ -100,8 +98,8 @@
     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,
-                  &type_percentage, &generic_percentage);
+      GetICCounts(function, &typeinfo, &generic, &total, &type_percentage,
+                  &generic_percentage);
       PrintF(", ICs with typeinfo: %d/%d (%d%%)", typeinfo, total,
              type_percentage);
       PrintF(", generic ICs: %d/%d (%d%%)", generic, total, generic_percentage);
@@ -219,7 +217,7 @@
 
   if (ticks >= kProfilerTicksBeforeOptimization) {
     int typeinfo, generic, total, type_percentage, generic_percentage;
-    GetICCounts(shared, &typeinfo, &generic, &total, &type_percentage,
+    GetICCounts(function, &typeinfo, &generic, &total, &type_percentage,
                 &generic_percentage);
     if (type_percentage >= FLAG_type_info_threshold &&
         generic_percentage <= FLAG_generic_ic_threshold) {
@@ -242,7 +240,7 @@
     // If no IC was patched since the last tick and this function is very
     // small, optimistically optimize it now.
     int typeinfo, generic, total, type_percentage, generic_percentage;
-    GetICCounts(shared, &typeinfo, &generic, &total, &type_percentage,
+    GetICCounts(function, &typeinfo, &generic, &total, &type_percentage,
                 &generic_percentage);
     if (type_percentage >= FLAG_type_info_threshold &&
         generic_percentage <= FLAG_generic_ic_threshold) {
diff --git a/src/runtime/runtime-array.cc b/src/runtime/runtime-array.cc
index 519df77..a92215c 100644
--- a/src/runtime/runtime-array.cc
+++ b/src/runtime/runtime-array.cc
@@ -22,8 +22,9 @@
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, prototype, 0);
   Object* length = prototype->length();
-  RUNTIME_ASSERT(length->IsSmi() && Smi::cast(length)->value() == 0);
-  RUNTIME_ASSERT(prototype->HasFastSmiOrObjectElements());
+  CHECK(length->IsSmi());
+  CHECK(Smi::cast(length)->value() == 0);
+  CHECK(prototype->HasFastSmiOrObjectElements());
   // This is necessary to enable fast checks for absence of elements
   // on Array.prototype and below.
   prototype->set_elements(isolate->heap()->empty_fixed_array());
@@ -85,7 +86,7 @@
 
 RUNTIME_FUNCTION(Runtime_TransitionElementsKind) {
   HandleScope scope(isolate);
-  RUNTIME_ASSERT(args.length() == 2);
+  DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
   CONVERT_ARG_HANDLE_CHECKED(Map, map, 1);
   JSObject::TransitionElementsKind(array, map->elements_kind());
@@ -182,8 +183,14 @@
   DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, array, 0);
   CONVERT_NUMBER_CHECKED(uint32_t, length, Uint32, args[1]);
+  ElementsKind kind = array->GetElementsKind();
 
-  if (array->HasFastStringWrapperElements()) {
+  if (IsFastElementsKind(kind) || IsFixedTypedArrayElementsKind(kind)) {
+    uint32_t actual_length = static_cast<uint32_t>(array->elements()->length());
+    return *isolate->factory()->NewNumberFromUint(Min(actual_length, length));
+  }
+
+  if (kind == FAST_STRING_WRAPPER_ELEMENTS) {
     int string_length =
         String::cast(Handle<JSValue>::cast(array)->value())->length();
     int backing_store_length = array->elements()->length();
@@ -192,17 +199,9 @@
             static_cast<uint32_t>(Max(string_length, backing_store_length))));
   }
 
-  if (!array->elements()->IsDictionary()) {
-    RUNTIME_ASSERT(array->HasFastSmiOrObjectElements() ||
-                   array->HasFastDoubleElements());
-    uint32_t actual_length = static_cast<uint32_t>(array->elements()->length());
-    return *isolate->factory()->NewNumberFromUint(Min(actual_length, length));
-  }
-
-  KeyAccumulator accumulator(isolate, OWN_ONLY, ALL_PROPERTIES);
-  // No need to separate prototype levels since we only get element keys.
-  for (PrototypeIterator iter(isolate, array,
-                              PrototypeIterator::START_AT_RECEIVER);
+  KeyAccumulator accumulator(isolate, KeyCollectionMode::kOwnOnly,
+                             ALL_PROPERTIES);
+  for (PrototypeIterator iter(isolate, array, kStartAtReceiver);
        !iter.IsAtEnd(); iter.Advance()) {
     if (PrototypeIterator::GetCurrent(iter)->IsJSProxy() ||
         PrototypeIterator::GetCurrent<JSObject>(iter)
@@ -211,12 +210,12 @@
       // collecting keys in that case.
       return *isolate->factory()->NewNumberFromUint(length);
     }
-    accumulator.NextPrototype();
     Handle<JSObject> current = PrototypeIterator::GetCurrent<JSObject>(iter);
-    accumulator.CollectOwnElementIndices(current);
+    accumulator.CollectOwnElementIndices(array, current);
   }
   // Erase any keys >= length.
-  Handle<FixedArray> keys = accumulator.GetKeys(KEEP_NUMBERS);
+  Handle<FixedArray> keys =
+      accumulator.GetKeys(GetKeysConversion::kKeepNumbers);
   int j = 0;
   for (int i = 0; i < keys->length(); i++) {
     if (NumberToUint32(keys->get(i)) >= length) continue;
@@ -321,7 +320,6 @@
 
 }  // namespace
 
-
 RUNTIME_FUNCTION(Runtime_NewArray) {
   HandleScope scope(isolate);
   DCHECK_LE(3, args.length());
@@ -338,66 +336,12 @@
   return ArrayConstructorCommon(isolate, constructor, new_target, site, &argv);
 }
 
-
-RUNTIME_FUNCTION(Runtime_ArrayConstructor) {
-  HandleScope scope(isolate);
-  // If we get 2 arguments then they are the stub parameters (constructor, type
-  // info).  If we get 4, then the first one is a pointer to the arguments
-  // passed by the caller, and the last one is the length of the arguments
-  // passed to the caller (redundant, but useful to check on the deoptimizer
-  // with an assert).
-  Arguments empty_args(0, NULL);
-  bool no_caller_args = args.length() == 2;
-  DCHECK(no_caller_args || args.length() == 4);
-  int parameters_start = no_caller_args ? 0 : 1;
-  Arguments* caller_args =
-      no_caller_args ? &empty_args : reinterpret_cast<Arguments*>(args[0]);
-  CONVERT_ARG_HANDLE_CHECKED(JSFunction, constructor, parameters_start);
-  CONVERT_ARG_HANDLE_CHECKED(Object, type_info, parameters_start + 1);
-#ifdef DEBUG
-  if (!no_caller_args) {
-    CONVERT_SMI_ARG_CHECKED(arg_count, parameters_start + 2);
-    DCHECK(arg_count == caller_args->length());
-  }
-#endif
-
-  Handle<AllocationSite> site;
-  if (!type_info.is_null() &&
-      *type_info != isolate->heap()->undefined_value()) {
-    site = Handle<AllocationSite>::cast(type_info);
-    DCHECK(!site->SitePointsToLiteral());
-  }
-
-  return ArrayConstructorCommon(isolate, constructor, constructor, site,
-                                caller_args);
-}
-
-RUNTIME_FUNCTION(Runtime_InternalArrayConstructor) {
-  HandleScope scope(isolate);
-  Arguments empty_args(0, NULL);
-  bool no_caller_args = args.length() == 1;
-  DCHECK(no_caller_args || args.length() == 3);
-  int parameters_start = no_caller_args ? 0 : 1;
-  Arguments* caller_args =
-      no_caller_args ? &empty_args : reinterpret_cast<Arguments*>(args[0]);
-  CONVERT_ARG_HANDLE_CHECKED(JSFunction, constructor, parameters_start);
-#ifdef DEBUG
-  if (!no_caller_args) {
-    CONVERT_SMI_ARG_CHECKED(arg_count, parameters_start + 1);
-    DCHECK(arg_count == caller_args->length());
-  }
-#endif
-  return ArrayConstructorCommon(isolate, constructor, constructor,
-                                Handle<AllocationSite>::null(), caller_args);
-}
-
-
 RUNTIME_FUNCTION(Runtime_NormalizeElements) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, array, 0);
-  RUNTIME_ASSERT(!array->HasFixedTypedArrayElements() &&
-                 !array->IsJSGlobalProxy());
+  CHECK(!array->HasFixedTypedArrayElements());
+  CHECK(!array->IsJSGlobalProxy());
   JSObject::NormalizeElements(array);
   return *array;
 }
@@ -437,8 +381,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, array, 0);
-  for (PrototypeIterator iter(isolate, array,
-                              PrototypeIterator::START_AT_RECEIVER);
+  for (PrototypeIterator iter(isolate, array, kStartAtReceiver);
        !iter.IsAtEnd(); iter.Advance()) {
     if (PrototypeIterator::GetCurrent(iter)->IsJSProxy()) {
       return isolate->heap()->true_value();
@@ -491,11 +434,8 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, original_array, 0);
-  Handle<Object> constructor;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, constructor,
-      Object::ArraySpeciesConstructor(isolate, original_array));
-  return *constructor;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::ArraySpeciesConstructor(isolate, original_array));
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-atomics.cc b/src/runtime/runtime-atomics.cc
index dd309f7..28a8741 100644
--- a/src/runtime/runtime-atomics.cc
+++ b/src/runtime/runtime-atomics.cc
@@ -354,8 +354,8 @@
   CONVERT_SIZE_ARG_CHECKED(index, 1);
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(oldobj, 2);
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(newobj, 3);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index < NumberToSize(isolate, sta->length()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -387,8 +387,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -419,8 +419,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -451,8 +451,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -483,8 +483,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -515,8 +515,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
@@ -547,8 +547,8 @@
   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()));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
 
   uint8_t* source = static_cast<uint8_t*>(sta->GetBuffer()->backing_store()) +
                     NumberToSize(isolate, sta->byte_offset());
diff --git a/src/runtime/runtime-classes.cc b/src/runtime/runtime-classes.cc
index a784d6d..303122f 100644
--- a/src/runtime/runtime-classes.cc
+++ b/src/runtime/runtime-classes.cc
@@ -88,25 +88,21 @@
   Handle<Object> prototype_parent;
   Handle<Object> constructor_parent;
 
-  if (super_class->IsTheHole()) {
+  if (super_class->IsTheHole(isolate)) {
     prototype_parent = isolate->initial_object_prototype();
   } else {
-    if (super_class->IsNull()) {
+    if (super_class->IsNull(isolate)) {
       prototype_parent = isolate->factory()->null_value();
     } else if (super_class->IsConstructor()) {
-      if (super_class->IsJSFunction() &&
-          Handle<JSFunction>::cast(super_class)->shared()->is_generator()) {
-        THROW_NEW_ERROR(
-            isolate,
-            NewTypeError(MessageTemplate::kExtendsValueGenerator, super_class),
-            Object);
-      }
+      DCHECK(!super_class->IsJSFunction() ||
+             !Handle<JSFunction>::cast(super_class)->shared()->is_resumable());
       ASSIGN_RETURN_ON_EXCEPTION(
           isolate, prototype_parent,
           Runtime::GetObjectProperty(isolate, super_class,
                                      isolate->factory()->prototype_string()),
           Object);
-      if (!prototype_parent->IsNull() && !prototype_parent->IsJSReceiver()) {
+      if (!prototype_parent->IsNull(isolate) &&
+          !prototype_parent->IsJSReceiver()) {
         THROW_NEW_ERROR(
             isolate, NewTypeError(MessageTemplate::kPrototypeParentNotAnObject,
                                   prototype_parent),
@@ -114,10 +110,10 @@
       }
       constructor_parent = super_class;
     } else {
-      THROW_NEW_ERROR(
-          isolate,
-          NewTypeError(MessageTemplate::kExtendsValueNotFunction, super_class),
-          Object);
+      THROW_NEW_ERROR(isolate,
+                      NewTypeError(MessageTemplate::kExtendsValueNotConstructor,
+                                   super_class),
+                      Object);
     }
   }
 
@@ -128,7 +124,7 @@
   map->SetConstructor(*constructor);
   Handle<JSObject> prototype = isolate->factory()->NewJSObjectFromMap(map);
 
-  if (!super_class->IsTheHole()) {
+  if (!super_class->IsTheHole(isolate)) {
     // Derived classes, just like builtins, don't create implicit receivers in
     // [[construct]]. Instead they just set up new.target and call into the
     // constructor. Hence we can reuse the builtins construct stub for derived
@@ -186,11 +182,9 @@
   CONVERT_SMI_ARG_CHECKED(start_position, 2);
   CONVERT_SMI_ARG_CHECKED(end_position, 3);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, DefineClass(isolate, super_class, constructor,
-                                   start_position, end_position));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, DefineClass(isolate, super_class, constructor, start_position,
+                           end_position));
 }
 
 
@@ -247,10 +241,8 @@
   CONVERT_ARG_HANDLE_CHECKED(JSObject, home_object, 1);
   CONVERT_ARG_HANDLE_CHECKED(Name, name, 2);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, LoadFromSuper(isolate, receiver, home_object, name));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           LoadFromSuper(isolate, receiver, home_object, name));
 }
 
 
@@ -262,13 +254,10 @@
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 2);
 
   uint32_t index = 0;
-  Handle<Object> result;
 
   if (key->ToArrayIndex(&index)) {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result,
-        LoadElementFromSuper(isolate, receiver, home_object, index));
-    return *result;
+    RETURN_RESULT_OR_FAILURE(
+        isolate, LoadElementFromSuper(isolate, receiver, home_object, index));
   }
 
   Handle<Name> name;
@@ -276,14 +265,11 @@
                                      Object::ToName(isolate, key));
   // TODO(verwaest): Unify using LookupIterator.
   if (name->AsArrayIndex(&index)) {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result,
-        LoadElementFromSuper(isolate, receiver, home_object, index));
-    return *result;
+    RETURN_RESULT_OR_FAILURE(
+        isolate, LoadElementFromSuper(isolate, receiver, home_object, index));
   }
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, LoadFromSuper(isolate, receiver, home_object, name));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           LoadFromSuper(isolate, receiver, home_object, name));
 }
 
 
diff --git a/src/runtime/runtime-collections.cc b/src/runtime/runtime-collections.cc
index 65690df..b25a5ef 100644
--- a/src/runtime/runtime-collections.cc
+++ b/src/runtime/runtime-collections.cc
@@ -31,7 +31,7 @@
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_CHECKED(JSObject, object, 0);
-  RUNTIME_ASSERT(object->IsJSSet() || object->IsJSMap());
+  CHECK(object->IsJSSet() || object->IsJSMap());
   return static_cast<JSCollection*>(object)->table();
 }
 
@@ -40,8 +40,8 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  Handle<Smi> hash = Object::GetOrCreateHash(isolate, object);
-  return *hash;
+  Smi* hash = Object::GetOrCreateHash(isolate, object);
+  return hash;
 }
 
 
@@ -91,8 +91,8 @@
   CONVERT_ARG_HANDLE_CHECKED(JSSetIterator, holder, 0);
   CONVERT_ARG_HANDLE_CHECKED(JSSet, set, 1);
   CONVERT_SMI_ARG_CHECKED(kind, 2)
-  RUNTIME_ASSERT(kind == JSSetIterator::kKindValues ||
-                 kind == JSSetIterator::kKindEntries);
+  CHECK(kind == JSSetIterator::kKindValues ||
+        kind == JSSetIterator::kKindEntries);
   Handle<OrderedHashSet> table(OrderedHashSet::cast(set->table()));
   holder->set_table(*table);
   holder->set_index(Smi::FromInt(0));
@@ -186,9 +186,9 @@
   CONVERT_ARG_HANDLE_CHECKED(JSMapIterator, holder, 0);
   CONVERT_ARG_HANDLE_CHECKED(JSMap, map, 1);
   CONVERT_SMI_ARG_CHECKED(kind, 2)
-  RUNTIME_ASSERT(kind == JSMapIterator::kKindKeys ||
-                 kind == JSMapIterator::kKindValues ||
-                 kind == JSMapIterator::kKindEntries);
+  CHECK(kind == JSMapIterator::kKindKeys ||
+        kind == JSMapIterator::kKindValues ||
+        kind == JSMapIterator::kKindEntries);
   Handle<OrderedHashMap> table(OrderedHashMap::cast(map->table()));
   holder->set_table(*table);
   holder->set_index(Smi::FromInt(0));
@@ -232,7 +232,7 @@
   DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, holder, 0);
   CONVERT_NUMBER_CHECKED(int, max_entries, Int32, args[1]);
-  RUNTIME_ASSERT(max_entries >= 0);
+  CHECK(max_entries >= 0);
 
   Handle<ObjectHashTable> table(ObjectHashTable::cast(holder->table()));
   if (max_entries == 0 || max_entries > table->NumberOfElements()) {
@@ -250,7 +250,7 @@
     int count = 0;
     for (int i = 0; count / 2 < max_entries && i < table->Capacity(); i++) {
       Handle<Object> key(table->KeyAt(i), isolate);
-      if (table->IsKey(*key)) {
+      if (table->IsKey(isolate, *key)) {
         entries->set(count++, *key);
         Object* value = table->Lookup(key);
         entries->set(count++, value);
@@ -286,12 +286,13 @@
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, weak_collection, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
   CONVERT_SMI_ARG_CHECKED(hash, 2)
-  RUNTIME_ASSERT(key->IsJSReceiver() || key->IsSymbol());
+  CHECK(key->IsJSReceiver() || key->IsSymbol());
   Handle<ObjectHashTable> table(
       ObjectHashTable::cast(weak_collection->table()));
-  RUNTIME_ASSERT(table->IsKey(*key));
+  CHECK(table->IsKey(isolate, *key));
   Handle<Object> lookup(table->Lookup(key, hash), isolate);
-  return lookup->IsTheHole() ? isolate->heap()->undefined_value() : *lookup;
+  return lookup->IsTheHole(isolate) ? isolate->heap()->undefined_value()
+                                    : *lookup;
 }
 
 
@@ -301,12 +302,12 @@
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, weak_collection, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
   CONVERT_SMI_ARG_CHECKED(hash, 2)
-  RUNTIME_ASSERT(key->IsJSReceiver() || key->IsSymbol());
+  CHECK(key->IsJSReceiver() || key->IsSymbol());
   Handle<ObjectHashTable> table(
       ObjectHashTable::cast(weak_collection->table()));
-  RUNTIME_ASSERT(table->IsKey(*key));
+  CHECK(table->IsKey(isolate, *key));
   Handle<Object> lookup(table->Lookup(key, hash), isolate);
-  return isolate->heap()->ToBoolean(!lookup->IsTheHole());
+  return isolate->heap()->ToBoolean(!lookup->IsTheHole(isolate));
 }
 
 
@@ -316,10 +317,10 @@
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, weak_collection, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
   CONVERT_SMI_ARG_CHECKED(hash, 2)
-  RUNTIME_ASSERT(key->IsJSReceiver() || key->IsSymbol());
+  CHECK(key->IsJSReceiver() || key->IsSymbol());
   Handle<ObjectHashTable> table(
       ObjectHashTable::cast(weak_collection->table()));
-  RUNTIME_ASSERT(table->IsKey(*key));
+  CHECK(table->IsKey(isolate, *key));
   bool was_present = JSWeakCollection::Delete(weak_collection, key, hash);
   return isolate->heap()->ToBoolean(was_present);
 }
@@ -330,12 +331,12 @@
   DCHECK(args.length() == 4);
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, weak_collection, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
-  RUNTIME_ASSERT(key->IsJSReceiver() || key->IsSymbol());
+  CHECK(key->IsJSReceiver() || key->IsSymbol());
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
   CONVERT_SMI_ARG_CHECKED(hash, 3)
   Handle<ObjectHashTable> table(
       ObjectHashTable::cast(weak_collection->table()));
-  RUNTIME_ASSERT(table->IsKey(*key));
+  CHECK(table->IsKey(isolate, *key));
   JSWeakCollection::Set(weak_collection, key, value, hash);
   return *weak_collection;
 }
@@ -346,7 +347,7 @@
   DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSWeakCollection, holder, 0);
   CONVERT_NUMBER_CHECKED(int, max_values, Int32, args[1]);
-  RUNTIME_ASSERT(max_values >= 0);
+  CHECK(max_values >= 0);
 
   Handle<ObjectHashTable> table(ObjectHashTable::cast(holder->table()));
   if (max_values == 0 || max_values > table->NumberOfElements()) {
@@ -361,8 +362,8 @@
     DisallowHeapAllocation no_gc;
     int count = 0;
     for (int i = 0; count < max_values && i < table->Capacity(); i++) {
-      Handle<Object> key(table->KeyAt(i), isolate);
-      if (table->IsKey(*key)) values->set(count++, *key);
+      Object* key = table->KeyAt(i);
+      if (table->IsKey(isolate, key)) values->set(count++, key);
     }
     DCHECK_EQ(max_values, count);
   }
diff --git a/src/runtime/runtime-compiler.cc b/src/runtime/runtime-compiler.cc
index c8fc9e8..c095045 100644
--- a/src/runtime/runtime-compiler.cc
+++ b/src/runtime/runtime-compiler.cc
@@ -202,7 +202,7 @@
   // We're not prepared to handle a function with arguments object.
   DCHECK(!function->shared()->uses_arguments());
 
-  RUNTIME_ASSERT(FLAG_use_osr);
+  CHECK(FLAG_use_osr);
 
   // Passing the PC in the javascript frame from the caller directly is
   // not GC safe, so we walk the stack to get it.
@@ -303,7 +303,7 @@
 
 bool CodeGenerationFromStringsAllowed(Isolate* isolate,
                                       Handle<Context> context) {
-  DCHECK(context->allow_code_gen_from_strings()->IsFalse());
+  DCHECK(context->allow_code_gen_from_strings()->IsFalse(isolate));
   // Check with callback if set.
   AllowCodeGenerationFromStringsCallback callback =
       isolate->allow_code_gen_callback();
@@ -326,7 +326,7 @@
 
   // Check if native context allows code generation from
   // strings. Throw an exception if it doesn't.
-  if (native_context->allow_code_gen_from_strings()->IsFalse() &&
+  if (native_context->allow_code_gen_from_strings()->IsFalse(isolate) &&
       !CodeGenerationFromStringsAllowed(isolate, native_context)) {
     Handle<Object> error_message =
         native_context->ErrorMessageForCodeGenerationFromStrings();
diff --git a/src/runtime/runtime-debug.cc b/src/runtime/runtime-debug.cc
index e3f3beb..b3be8f7 100644
--- a/src/runtime/runtime-debug.cc
+++ b/src/runtime/runtime-debug.cc
@@ -76,8 +76,8 @@
 RUNTIME_FUNCTION(Runtime_SetDebugEventListener) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 2);
-  RUNTIME_ASSERT(args[0]->IsJSFunction() || args[0]->IsUndefined() ||
-                 args[0]->IsNull());
+  RUNTIME_ASSERT(args[0]->IsJSFunction() || args[0]->IsUndefined(isolate) ||
+                 args[0]->IsNull(isolate));
   CONVERT_ARG_HANDLE_CHECKED(Object, callback, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, data, 1);
   isolate->debug()->SetEventListener(callback, data);
@@ -145,7 +145,7 @@
     Isolate* isolate, Handle<IteratorType> object) {
   Factory* factory = isolate->factory();
   Handle<IteratorType> iterator = Handle<IteratorType>::cast(object);
-  RUNTIME_ASSERT_HANDLIFIED(iterator->kind()->IsSmi(), JSArray);
+  CHECK(iterator->kind()->IsSmi());
   const char* kind = NULL;
   switch (Smi::cast(iterator->kind())->value()) {
     case IteratorType::kKindKeys:
@@ -158,7 +158,7 @@
       kind = "entries";
       break;
     default:
-      RUNTIME_ASSERT_HANDLIFIED(false, JSArray);
+      UNREACHABLE();
   }
 
   Handle<FixedArray> result = factory->NewFixedArray(2 * 3);
@@ -243,12 +243,12 @@
     result->set(4, *receiver);
     result->set(5, generator->receiver());
     return factory->NewJSArrayWithElements(result);
-  } else if (Object::IsPromise(object)) {
+  } else if (object->IsJSPromise()) {
     Handle<JSObject> promise = Handle<JSObject>::cast(object);
 
     Handle<Object> status_obj =
         DebugGetProperty(promise, isolate->factory()->promise_state_symbol());
-    RUNTIME_ASSERT_HANDLIFIED(status_obj->IsSmi(), JSArray);
+    CHECK(status_obj->IsSmi());
     const char* status = "rejected";
     int status_val = Handle<Smi>::cast(status_obj)->value();
     switch (status_val) {
@@ -313,10 +313,8 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, obj, 0);
-  Handle<JSArray> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Runtime::GetInternalProperties(isolate, obj));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Runtime::GetInternalProperties(isolate, obj));
 }
 
 
@@ -564,10 +562,13 @@
     // Use the value from the stack.
     if (ScopeInfo::VariableIsSynthetic(scope_info->LocalName(i))) continue;
     locals->set(local * 2, scope_info->LocalName(i));
-    Handle<Object> value = frame_inspector.GetExpression(i);
+    Handle<Object> value =
+        frame_inspector.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.
-    if (value->IsOptimizedOut()) value = isolate->factory()->undefined_value();
+    if (value->IsOptimizedOut(isolate)) {
+      value = isolate->factory()->undefined_value();
+    }
     locals->set(local * 2 + 1, *value);
     local++;
   }
@@ -764,10 +765,7 @@
   if (it.Done()) {
     return isolate->heap()->undefined_value();
   }
-  Handle<JSObject> details;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, details,
-                                     it.MaterializeScopeDetails());
-  return *details;
+  RETURN_RESULT_OR_FAILURE(isolate, it.MaterializeScopeDetails());
 }
 
 
@@ -856,10 +854,7 @@
     return isolate->heap()->undefined_value();
   }
 
-  Handle<JSObject> details;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, details,
-                                     it.MaterializeScopeDetails());
-  return *details;
+  RETURN_RESULT_OR_FAILURE(isolate, it.MaterializeScopeDetails());
 }
 
 
@@ -971,7 +966,9 @@
   // Find the number of break points
   Handle<Object> break_locations =
       Debug::GetSourceBreakLocations(shared, alignment);
-  if (break_locations->IsUndefined()) return isolate->heap()->undefined_value();
+  if (break_locations->IsUndefined(isolate)) {
+    return isolate->heap()->undefined_value();
+  }
   // Return array as JS array
   return *isolate->factory()->NewJSArrayWithElements(
       Handle<FixedArray>::cast(break_locations));
@@ -1141,12 +1138,9 @@
 
   StackFrame::Id id = DebugFrameHelper::UnwrapFrameId(wrapped_id);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      DebugEvaluate::Local(isolate, id, inlined_jsframe_index, source,
-                           disable_break, context_extension));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, DebugEvaluate::Local(isolate, id, inlined_jsframe_index, source,
+                                    disable_break, context_extension));
 }
 
 
@@ -1163,11 +1157,9 @@
   CONVERT_BOOLEAN_ARG_CHECKED(disable_break, 2);
   CONVERT_ARG_HANDLE_CHECKED(HeapObject, context_extension, 3);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       DebugEvaluate::Global(isolate, source, disable_break, context_extension));
-  return *result;
 }
 
 
@@ -1206,7 +1198,7 @@
 static bool HasInPrototypeChainIgnoringProxies(Isolate* isolate,
                                                JSObject* object,
                                                Object* proto) {
-  PrototypeIterator iter(isolate, object, PrototypeIterator::START_AT_RECEIVER);
+  PrototypeIterator iter(isolate, object, kStartAtReceiver);
   while (true) {
     iter.AdvanceIgnoringProxies();
     if (iter.IsAtEnd()) return false;
@@ -1224,7 +1216,7 @@
   DCHECK(args.length() == 3);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, target, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, filter, 1);
-  RUNTIME_ASSERT(filter->IsUndefined() || filter->IsJSObject());
+  RUNTIME_ASSERT(filter->IsUndefined(isolate) || filter->IsJSObject());
   CONVERT_NUMBER_CHECKED(int32_t, max_references, Int32, args[2]);
   RUNTIME_ASSERT(max_references >= 0);
 
@@ -1243,7 +1235,7 @@
       if (!obj->ReferencesObject(*target)) continue;
       // Check filter if supplied. This is normally used to avoid
       // references from mirror objects.
-      if (!filter->IsUndefined() &&
+      if (!filter->IsUndefined(isolate) &&
           HasInPrototypeChainIgnoringProxies(isolate, obj, *filter)) {
         continue;
       }
@@ -1313,12 +1305,9 @@
   HandleScope shs(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
-  Handle<Object> prototype;
   // TODO(1543): Come up with a solution for clients to handle potential errors
   // thrown by an intermediate proxy.
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, prototype,
-                                     JSReceiver::GetPrototype(isolate, obj));
-  return *prototype;
+  RETURN_RESULT_OR_FAILURE(isolate, JSReceiver::GetPrototype(isolate, obj));
 }
 
 
@@ -1359,15 +1348,13 @@
 
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, function, 0);
 
-  Handle<Object> name;
   if (function->IsJSBoundFunction()) {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, name, JSBoundFunction::GetName(
-                           isolate, Handle<JSBoundFunction>::cast(function)));
+    RETURN_RESULT_OR_FAILURE(
+        isolate, JSBoundFunction::GetName(
+                     isolate, Handle<JSBoundFunction>::cast(function)));
   } else {
-    name = JSFunction::GetDebugName(Handle<JSFunction>::cast(function));
+    return *JSFunction::GetDebugName(Handle<JSFunction>::cast(function));
   }
-  return *name;
 }
 
 
@@ -1423,12 +1410,9 @@
     return isolate->heap()->exception();
   }
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      Execution::Call(isolate, function, handle(function->global_proxy()), 0,
-                      NULL));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Execution::Call(isolate, function,
+                               handle(function->global_proxy()), 0, NULL));
 }
 
 
@@ -1501,6 +1485,212 @@
   return *Script::GetWrapper(found);
 }
 
+RUNTIME_FUNCTION(Runtime_ScriptLineCount) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 1);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  Script::InitLineEnds(script_handle);
+
+  FixedArray* line_ends_array = FixedArray::cast(script_handle->line_ends());
+  return Smi::FromInt(line_ends_array->length());
+}
+
+RUNTIME_FUNCTION(Runtime_ScriptLineStartPosition) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+  CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  Script::InitLineEnds(script_handle);
+
+  FixedArray* line_ends_array = FixedArray::cast(script_handle->line_ends());
+  const int line_count = line_ends_array->length();
+
+  // If line == line_count, we return the first position beyond the last line.
+  if (line < 0 || line > line_count) {
+    return Smi::FromInt(-1);
+  } else if (line == 0) {
+    return Smi::FromInt(0);
+  } else {
+    DCHECK(0 < line && line <= line_count);
+    const int pos = Smi::cast(line_ends_array->get(line - 1))->value() + 1;
+    return Smi::FromInt(pos);
+  }
+}
+
+RUNTIME_FUNCTION(Runtime_ScriptLineEndPosition) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+  CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  Script::InitLineEnds(script_handle);
+
+  FixedArray* line_ends_array = FixedArray::cast(script_handle->line_ends());
+  const int line_count = line_ends_array->length();
+
+  if (line < 0 || line >= line_count) {
+    return Smi::FromInt(-1);
+  } else {
+    return Smi::cast(line_ends_array->get(line));
+  }
+}
+
+static Handle<Object> GetJSPositionInfo(Handle<Script> script, int position,
+                                        Script::OffsetFlag offset_flag,
+                                        Isolate* isolate) {
+  Script::PositionInfo info;
+  if (!script->GetPositionInfo(position, &info, offset_flag)) {
+    return handle(isolate->heap()->null_value(), isolate);
+  }
+
+  Handle<String> source = handle(String::cast(script->source()), isolate);
+  Handle<String> sourceText =
+      isolate->factory()->NewSubString(source, info.line_start, info.line_end);
+
+  Handle<JSObject> jsinfo =
+      isolate->factory()->NewJSObject(isolate->object_function());
+
+  JSObject::AddProperty(jsinfo, isolate->factory()->script_string(), script,
+                        NONE);
+  JSObject::AddProperty(jsinfo, isolate->factory()->position_string(),
+                        handle(Smi::FromInt(position), isolate), NONE);
+  JSObject::AddProperty(jsinfo, isolate->factory()->line_string(),
+                        handle(Smi::FromInt(info.line), isolate), NONE);
+  JSObject::AddProperty(jsinfo, isolate->factory()->column_string(),
+                        handle(Smi::FromInt(info.column), isolate), NONE);
+  JSObject::AddProperty(jsinfo, isolate->factory()->sourceText_string(),
+                        sourceText, NONE);
+
+  return jsinfo;
+}
+
+// Get information on a specific source line and column possibly offset by a
+// fixed source position. This function is used to find a source position from
+// a line and column position. The fixed source position offset is typically
+// used to find a source position in a function based on a line and column in
+// the source for the function alone. The offset passed will then be the
+// start position of the source for the function within the full script source.
+// Note that incoming line and column parameters may be undefined, and are
+// assumed to be passed *with* offsets.
+RUNTIME_FUNCTION(Runtime_ScriptLocationFromLine) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 4);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  // Line and column are possibly undefined and we need to handle these cases,
+  // additionally subtracting corresponding offsets.
+
+  int32_t line;
+  if (args[1]->IsNull(isolate) || args[1]->IsUndefined(isolate)) {
+    line = 0;
+  } else {
+    RUNTIME_ASSERT(args[1]->IsNumber());
+    line = NumberToInt32(args[1]) - script_handle->line_offset();
+  }
+
+  int32_t column;
+  if (args[2]->IsNull(isolate) || args[2]->IsUndefined(isolate)) {
+    column = 0;
+  } else {
+    RUNTIME_ASSERT(args[2]->IsNumber());
+    column = NumberToInt32(args[2]);
+    if (line == 0) column -= script_handle->column_offset();
+  }
+
+  CONVERT_NUMBER_CHECKED(int32_t, offset_position, Int32, args[3]);
+
+  if (line < 0 || column < 0 || offset_position < 0) {
+    return isolate->heap()->null_value();
+  }
+
+  Script::InitLineEnds(script_handle);
+
+  FixedArray* line_ends_array = FixedArray::cast(script_handle->line_ends());
+  const int line_count = line_ends_array->length();
+
+  int position;
+  if (line == 0) {
+    position = offset_position + column;
+  } else {
+    Script::PositionInfo info;
+    if (!script_handle->GetPositionInfo(offset_position, &info,
+                                        Script::NO_OFFSET) ||
+        info.line + line >= line_count) {
+      return isolate->heap()->null_value();
+    }
+
+    const int offset_line = info.line + line;
+    const int offset_line_position =
+        (offset_line == 0)
+            ? 0
+            : Smi::cast(line_ends_array->get(offset_line - 1))->value() + 1;
+    position = offset_line_position + column;
+  }
+
+  return *GetJSPositionInfo(script_handle, position, Script::NO_OFFSET,
+                            isolate);
+}
+
+RUNTIME_FUNCTION(Runtime_ScriptPositionInfo) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 3);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+  CONVERT_NUMBER_CHECKED(int32_t, position, Int32, args[1]);
+  CONVERT_BOOLEAN_ARG_CHECKED(with_offset, 2);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  const Script::OffsetFlag offset_flag =
+      with_offset ? Script::WITH_OFFSET : Script::NO_OFFSET;
+  return *GetJSPositionInfo(script_handle, position, offset_flag, isolate);
+}
+
+// Returns the given line as a string, or null if line is out of bounds.
+// The parameter line is expected to include the script's line offset.
+RUNTIME_FUNCTION(Runtime_ScriptSourceLine) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_ARG_CHECKED(JSValue, script, 0);
+  CONVERT_NUMBER_CHECKED(int32_t, line, Int32, args[1]);
+
+  RUNTIME_ASSERT(script->value()->IsScript());
+  Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
+
+  Script::InitLineEnds(script_handle);
+
+  FixedArray* line_ends_array = FixedArray::cast(script_handle->line_ends());
+  const int line_count = line_ends_array->length();
+
+  line -= script_handle->line_offset();
+  if (line < 0 || line_count <= line) {
+    return isolate->heap()->null_value();
+  }
+
+  const int start =
+      (line == 0) ? 0 : Smi::cast(line_ends_array->get(line - 1))->value() + 1;
+  const int end = Smi::cast(line_ends_array->get(line))->value();
+
+  Handle<String> source =
+      handle(String::cast(script_handle->source()), isolate);
+  Handle<String> str = isolate->factory()->NewSubString(source, start, end);
+
+  return *str;
+}
 
 // Set one shot breakpoints for the callback function that is passed to a
 // built-in function such as Array.forEach to enable stepping into the callback,
@@ -1513,6 +1703,22 @@
   return isolate->heap()->undefined_value();
 }
 
+// Set one shot breakpoints for the suspended generator object.
+RUNTIME_FUNCTION(Runtime_DebugPrepareStepInSuspendedGenerator) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(0, args.length());
+  isolate->debug()->PrepareStepInSuspendedGenerator();
+  return isolate->heap()->undefined_value();
+}
+
+RUNTIME_FUNCTION(Runtime_DebugRecordAsyncFunction) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
+  CHECK(isolate->debug()->last_step_action() >= StepNext);
+  isolate->debug()->RecordAsyncFunction(generator);
+  return isolate->heap()->undefined_value();
+}
 
 RUNTIME_FUNCTION(Runtime_DebugPushPromise) {
   DCHECK(args.length() == 2);
@@ -1520,8 +1726,6 @@
   CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0);
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 1);
   isolate->PushPromise(promise, function);
-  // If we are in step-in mode, flood the handler.
-  isolate->debug()->EnableStepIn();
   return isolate->heap()->undefined_value();
 }
 
diff --git a/src/runtime/runtime-forin.cc b/src/runtime/runtime-forin.cc
index 4b558d1..e57016a 100644
--- a/src/runtime/runtime-forin.cc
+++ b/src/runtime/runtime-forin.cc
@@ -22,14 +22,18 @@
 // deletions during a for-in.
 MaybeHandle<HeapObject> Enumerate(Handle<JSReceiver> receiver) {
   Isolate* const isolate = receiver->GetIsolate();
-  FastKeyAccumulator accumulator(isolate, receiver, INCLUDE_PROTOS,
+  JSObject::MakePrototypesFast(receiver, kStartAtReceiver, isolate);
+  FastKeyAccumulator accumulator(isolate, receiver,
+                                 KeyCollectionMode::kIncludePrototypes,
                                  ENUMERABLE_STRINGS);
   accumulator.set_filter_proxy_keys(false);
+  accumulator.set_is_for_in(true);
   // Test if we have an enum cache for {receiver}.
   if (!accumulator.is_receiver_simple_enum()) {
     Handle<FixedArray> keys;
-    ASSIGN_RETURN_ON_EXCEPTION(isolate, keys, accumulator.GetKeys(KEEP_NUMBERS),
-                               HeapObject);
+    ASSIGN_RETURN_ON_EXCEPTION(
+        isolate, keys, accumulator.GetKeys(GetKeysConversion::kKeepNumbers),
+        HeapObject);
     // Test again, since cache may have been built by GetKeys() calls above.
     if (!accumulator.is_receiver_simple_enum()) return keys;
   }
@@ -61,7 +65,7 @@
           Handle<Object> prototype;
           ASSIGN_RETURN_ON_EXCEPTION(isolate, prototype,
                                      JSProxy::GetPrototype(proxy), Object);
-          if (prototype->IsNull()) break;
+          if (prototype->IsNull(isolate)) break;
           // We already have a stack-check in JSProxy::GetPrototype.
           return HasEnumerableProperty(
               isolate, Handle<JSReceiver>::cast(prototype), key);
@@ -107,9 +111,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, receiver, 0);
-  Handle<HeapObject> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Enumerate(receiver));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Enumerate(receiver));
 }
 
 
@@ -159,9 +161,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, receiver, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Filter(receiver, key));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Filter(receiver, key));
 }
 
 
@@ -177,9 +177,7 @@
   if (receiver->map() == *cache_type) {
     return *key;
   }
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Filter(receiver, key));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Filter(receiver, key));
 }
 
 
diff --git a/src/runtime/runtime-function.cc b/src/runtime/runtime-function.cc
index 56cf3b6..3a66869 100644
--- a/src/runtime/runtime-function.cc
+++ b/src/runtime/runtime-function.cc
@@ -10,7 +10,6 @@
 #include "src/frames-inl.h"
 #include "src/isolate-inl.h"
 #include "src/messages.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/wasm/wasm-module.h"
 
 namespace v8 {
@@ -21,15 +20,13 @@
   DCHECK(args.length() == 1);
 
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, function, 0);
-  Handle<Object> result;
   if (function->IsJSBoundFunction()) {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, JSBoundFunction::GetName(
-                             isolate, Handle<JSBoundFunction>::cast(function)));
+    RETURN_RESULT_OR_FAILURE(
+        isolate, JSBoundFunction::GetName(
+                     isolate, Handle<JSBoundFunction>::cast(function)));
   } else {
-    result = JSFunction::GetName(isolate, Handle<JSFunction>::cast(function));
+    return *JSFunction::GetName(isolate, Handle<JSFunction>::cast(function));
   }
-  return *result;
 }
 
 
@@ -51,7 +48,7 @@
   DCHECK(args.length() == 1);
 
   CONVERT_ARG_CHECKED(JSFunction, f, 0);
-  RUNTIME_ASSERT(f->RemovePrototype());
+  CHECK(f->RemovePrototype());
   f->shared()->set_construct_stub(
       *isolate->builtins()->ConstructedNonConstructable());
 
@@ -131,8 +128,7 @@
 
   CONVERT_ARG_CHECKED(JSFunction, fun, 0);
   CONVERT_SMI_ARG_CHECKED(length, 1);
-  RUNTIME_ASSERT((length & 0xC0000000) == 0xC0000000 ||
-                 (length & 0xC0000000) == 0x0);
+  CHECK((length & 0xC0000000) == 0xC0000000 || (length & 0xC0000000) == 0x0);
   fun->shared()->set_length(length);
   return isolate->heap()->undefined_value();
 }
@@ -144,7 +140,7 @@
 
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, fun, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
-  RUNTIME_ASSERT(fun->IsConstructor());
+  CHECK(fun->IsConstructor());
   RETURN_FAILURE_ON_EXCEPTION(isolate,
                               Accessors::FunctionSetPrototype(fun, value));
   return args[0];  // return TOS
@@ -189,7 +185,8 @@
   }
   target_shared->set_scope_info(source_shared->scope_info());
   target_shared->set_length(source_shared->length());
-  target_shared->set_feedback_vector(source_shared->feedback_vector());
+  target_shared->set_num_literals(source_shared->num_literals());
+  target_shared->set_feedback_metadata(source_shared->feedback_metadata());
   target_shared->set_internal_formal_parameter_count(
       source_shared->internal_formal_parameter_count());
   target_shared->set_start_position_and_type(
@@ -206,21 +203,17 @@
 
   // Set the code of the target function.
   target->ReplaceCode(source_shared->code());
-  DCHECK(target->next_function_link()->IsUndefined());
+  DCHECK(target->next_function_link()->IsUndefined(isolate));
 
-  // Make sure we get a fresh copy of the literal vector to avoid cross
-  // context contamination.
   Handle<Context> context(source->context());
   target->set_context(*context);
 
-  int number_of_literals = source->NumberOfLiterals();
-  Handle<LiteralsArray> literals =
-      LiteralsArray::New(isolate, handle(target_shared->feedback_vector()),
-                         number_of_literals, TENURED);
-  target->set_literals(*literals);
+  // Make sure we get a fresh copy of the literal vector to avoid cross
+  // context contamination, and that the literal vector makes it's way into
+  // the target_shared optimized code map.
+  JSFunction::EnsureLiterals(target);
 
-  if (isolate->logger()->is_logging_code_events() ||
-      isolate->cpu_profiler()->is_profiling()) {
+  if (isolate->logger()->is_logging_code_events() || isolate->is_profiling()) {
     isolate->logger()->LogExistingFunction(
         source_shared, Handle<AbstractCode>(source_shared->abstract_code()));
   }
@@ -234,7 +227,7 @@
 // into the global object when doing call and apply.
 RUNTIME_FUNCTION(Runtime_SetNativeFlag) {
   SealHandleScope shs(isolate);
-  RUNTIME_ASSERT(args.length() == 1);
+  DCHECK_EQ(1, args.length());
 
   CONVERT_ARG_CHECKED(Object, object, 0);
 
@@ -255,7 +248,7 @@
 
 RUNTIME_FUNCTION(Runtime_SetForceInlineFlag) {
   SealHandleScope shs(isolate);
-  RUNTIME_ASSERT(args.length() == 1);
+  DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
 
   if (object->IsJSFunction()) {
@@ -276,11 +269,8 @@
   for (int i = 0; i < argc; ++i) {
     argv[i] = args.at<Object>(2 + i);
   }
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      Execution::Call(isolate, target, receiver, argc, argv.start()));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Execution::Call(isolate, target, receiver, argc, argv.start()));
 }
 
 
@@ -311,15 +301,5 @@
              : *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-futex.cc b/src/runtime/runtime-futex.cc
index f4ef679..a966412 100644
--- a/src/runtime/runtime-futex.cc
+++ b/src/runtime/runtime-futex.cc
@@ -24,10 +24,10 @@
   CONVERT_SIZE_ARG_CHECKED(index, 1);
   CONVERT_INT32_ARG_CHECKED(value, 2);
   CONVERT_DOUBLE_ARG_CHECKED(timeout, 3);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index < NumberToSize(isolate, sta->length()));
-  RUNTIME_ASSERT(sta->type() == kExternalInt32Array);
-  RUNTIME_ASSERT(timeout == V8_INFINITY || !std::isnan(timeout));
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
+  CHECK_EQ(sta->type(), kExternalInt32Array);
+  CHECK(timeout == V8_INFINITY || !std::isnan(timeout));
 
   Handle<JSArrayBuffer> array_buffer = sta->GetBuffer();
   size_t addr = (index << 2) + NumberToSize(isolate, sta->byte_offset());
@@ -42,9 +42,9 @@
   CONVERT_ARG_HANDLE_CHECKED(JSTypedArray, sta, 0);
   CONVERT_SIZE_ARG_CHECKED(index, 1);
   CONVERT_INT32_ARG_CHECKED(count, 2);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index < NumberToSize(isolate, sta->length()));
-  RUNTIME_ASSERT(sta->type() == kExternalInt32Array);
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
+  CHECK_EQ(sta->type(), kExternalInt32Array);
 
   Handle<JSArrayBuffer> array_buffer = sta->GetBuffer();
   size_t addr = (index << 2) + NumberToSize(isolate, sta->byte_offset());
@@ -61,10 +61,10 @@
   CONVERT_INT32_ARG_CHECKED(count, 2);
   CONVERT_INT32_ARG_CHECKED(value, 3);
   CONVERT_SIZE_ARG_CHECKED(index2, 4);
-  RUNTIME_ASSERT(sta->GetBuffer()->is_shared());
-  RUNTIME_ASSERT(index1 < NumberToSize(isolate, sta->length()));
-  RUNTIME_ASSERT(index2 < NumberToSize(isolate, sta->length()));
-  RUNTIME_ASSERT(sta->type() == kExternalInt32Array);
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index1, NumberToSize(isolate, sta->length()));
+  CHECK_LT(index2, NumberToSize(isolate, sta->length()));
+  CHECK_EQ(sta->type(), kExternalInt32Array);
 
   Handle<JSArrayBuffer> array_buffer = sta->GetBuffer();
   size_t addr1 = (index1 << 2) + NumberToSize(isolate, sta->byte_offset());
@@ -80,9 +80,9 @@
   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()));
-  RUNTIME_ASSERT(sta->type() == kExternalInt32Array);
+  CHECK(sta->GetBuffer()->is_shared());
+  CHECK_LT(index, NumberToSize(isolate, sta->length()));
+  CHECK_EQ(sta->type(), kExternalInt32Array);
 
   Handle<JSArrayBuffer> array_buffer = sta->GetBuffer();
   size_t addr = (index << 2) + NumberToSize(isolate, sta->byte_offset());
diff --git a/src/runtime/runtime-generator.cc b/src/runtime/runtime-generator.cc
index 7ff7fc8..3b65682 100644
--- a/src/runtime/runtime-generator.cc
+++ b/src/runtime/runtime-generator.cc
@@ -5,6 +5,7 @@
 #include "src/runtime/runtime-utils.h"
 
 #include "src/arguments.h"
+#include "src/debug/debug.h"
 #include "src/factory.h"
 #include "src/frames-inl.h"
 #include "src/objects-inl.h"
@@ -17,14 +18,15 @@
   DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, receiver, 1);
-  RUNTIME_ASSERT(function->shared()->is_resumable());
+  CHECK(function->shared()->is_resumable());
 
   Handle<FixedArray> operand_stack;
-  if (FLAG_ignition && FLAG_ignition_generators) {
+  if (function->shared()->HasBytecodeArray()) {
+    // New-style generators.
     int size = function->shared()->bytecode_array()->register_count();
     operand_stack = isolate->factory()->NewFixedArray(size);
   } else {
-    DCHECK(!function->shared()->HasBytecodeArray());
+    // Old-style generators.
     operand_stack = handle(isolate->heap()->empty_fixed_array());
   }
 
@@ -38,7 +40,6 @@
   return *generator;
 }
 
-
 RUNTIME_FUNCTION(Runtime_SuspendJSGeneratorObject) {
   HandleScope handle_scope(isolate);
   DCHECK(args.length() == 1);
@@ -46,11 +47,13 @@
 
   JavaScriptFrameIterator stack_iterator(isolate);
   JavaScriptFrame* frame = stack_iterator.frame();
-  RUNTIME_ASSERT(frame->function()->shared()->is_resumable());
+  CHECK(frame->function()->shared()->is_resumable());
   DCHECK_EQ(frame->function(), generator_object->function());
   DCHECK(frame->function()->shared()->is_compiled());
   DCHECK(!frame->function()->IsOptimized());
 
+  isolate->debug()->RecordAsyncFunction(generator_object);
+
   // The caller should have saved the context and continuation already.
   DCHECK_EQ(generator_object->context(), Context::cast(frame->context()));
   DCHECK_LT(0, generator_object->continuation());
@@ -77,7 +80,6 @@
   return isolate->heap()->undefined_value();
 }
 
-
 RUNTIME_FUNCTION(Runtime_GeneratorClose) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -88,8 +90,6 @@
   return isolate->heap()->undefined_value();
 }
 
-
-// Returns function of generator activation.
 RUNTIME_FUNCTION(Runtime_GeneratorGetFunction) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -98,8 +98,6 @@
   return generator->function();
 }
 
-
-// Returns receiver of generator activation.
 RUNTIME_FUNCTION(Runtime_GeneratorGetReceiver) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -108,18 +106,14 @@
   return generator->receiver();
 }
 
-
-// Returns input of generator activation.
-RUNTIME_FUNCTION(Runtime_GeneratorGetInput) {
+RUNTIME_FUNCTION(Runtime_GeneratorGetInputOrDebugPos) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
 
-  return generator->input();
+  return generator->input_or_debug_pos();
 }
 
-
-// Returns resume mode of generator activation.
 RUNTIME_FUNCTION(Runtime_GeneratorGetResumeMode) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -128,17 +122,6 @@
   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);
@@ -147,59 +130,13 @@
   return Smi::FromInt(generator->continuation());
 }
 
-
-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);
   CONVERT_ARG_HANDLE_CHECKED(JSGeneratorObject, generator, 0);
 
-  if (generator->is_suspended()) {
-    Handle<Code> code(generator->function()->code(), isolate);
-    int offset = generator->continuation();
-    RUNTIME_ASSERT(0 <= offset && offset < code->instruction_size());
-    return Smi::FromInt(code->SourcePosition(offset));
-  }
-
-  return isolate->heap()->undefined_value();
+  if (!generator->is_suspended()) return isolate->heap()->undefined_value();
+  return Smi::FromInt(generator->source_position());
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-i18n.cc b/src/runtime/runtime-i18n.cc
index 14974e8..d4c6034 100644
--- a/src/runtime/runtime-i18n.cc
+++ b/src/runtime/runtime-i18n.cc
@@ -259,7 +259,7 @@
 
   Handle<Symbol> marker = isolate->factory()->intl_initialized_marker_symbol();
   Handle<Object> tag = JSReceiver::GetDataProperty(obj, marker);
-  return isolate->heap()->ToBoolean(!tag->IsUndefined());
+  return isolate->heap()->ToBoolean(!tag->IsUndefined(isolate));
 }
 
 
@@ -317,7 +317,7 @@
   Handle<Symbol> marker = isolate->factory()->intl_impl_object_symbol();
 
   Handle<Object> impl = JSReceiver::GetDataProperty(obj, marker);
-  if (impl->IsTheHole()) {
+  if (impl->IsTheHole(isolate)) {
     THROW_NEW_ERROR_RETURN_FAILURE(
         isolate, NewTypeError(MessageTemplate::kNotIntlObject, obj));
   }
@@ -382,13 +382,10 @@
   icu::UnicodeString result;
   date_format->format(value->Number(), result);
 
-  Handle<String> result_str;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result_str,
-      isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
-          reinterpret_cast<const uint16_t*>(result.getBuffer()),
-          result.length())));
-  return *result_str;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
+                   reinterpret_cast<const uint16_t*>(result.getBuffer()),
+                   result.length())));
 }
 
 
@@ -410,12 +407,9 @@
   UDate date = date_format->parse(u_date, status);
   if (U_FAILURE(status)) return isolate->heap()->undefined_value();
 
-  Handle<JSDate> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      JSDate::New(isolate->date_function(), isolate->date_function(),
-                  static_cast<double>(date)));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, JSDate::New(isolate->date_function(), isolate->date_function(),
+                           static_cast<double>(date)));
 }
 
 
@@ -476,13 +470,10 @@
   icu::UnicodeString result;
   number_format->format(value->Number(), result);
 
-  Handle<String> result_str;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result_str,
-      isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
-          reinterpret_cast<const uint16_t*>(result.getBuffer()),
-          result.length())));
-  return *result_str;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
+                   reinterpret_cast<const uint16_t*>(result.getBuffer()),
+                   result.length())));
 }
 
 
@@ -647,13 +638,10 @@
     return isolate->heap()->undefined_value();
   }
 
-  Handle<String> result_str;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result_str,
-      isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
-          reinterpret_cast<const uint16_t*>(result.getBuffer()),
-          result.length())));
-  return *result_str;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, isolate->factory()->NewStringFromTwoByte(Vector<const uint16_t>(
+                   reinterpret_cast<const uint16_t*>(result.getBuffer()),
+                   result.length())));
 }
 
 
@@ -848,13 +836,11 @@
       // If no change is made, just return |s|.
       if (converted.getBuffer() == src) return *s;
     }
-    Handle<String> result;
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result,
+    RETURN_RESULT_OR_FAILURE(
+        isolate,
         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;
@@ -1145,6 +1131,23 @@
                            reinterpret_cast<const char*>(lang_str));
 }
 
+RUNTIME_FUNCTION(Runtime_DateCacheVersion) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(0, args.length());
+  if (isolate->serializer_enabled()) return isolate->heap()->undefined_value();
+  if (!isolate->eternal_handles()->Exists(EternalHandles::DATE_CACHE_VERSION)) {
+    Handle<FixedArray> date_cache_version =
+        isolate->factory()->NewFixedArray(1, TENURED);
+    date_cache_version->set(0, Smi::FromInt(0));
+    isolate->eternal_handles()->CreateSingleton(
+        isolate, *date_cache_version, EternalHandles::DATE_CACHE_VERSION);
+  }
+  Handle<FixedArray> date_cache_version =
+      Handle<FixedArray>::cast(isolate->eternal_handles()->GetSingleton(
+          EternalHandles::DATE_CACHE_VERSION));
+  return date_cache_version->get(0);
+}
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/runtime/runtime-internal.cc b/src/runtime/runtime-internal.cc
index f805fdb..e7491ba 100644
--- a/src/runtime/runtime-internal.cc
+++ b/src/runtime/runtime-internal.cc
@@ -13,6 +13,7 @@
 #include "src/isolate-inl.h"
 #include "src/messages.h"
 #include "src/parsing/parser.h"
+#include "src/wasm/wasm-module.h"
 
 namespace v8 {
 namespace internal {
@@ -20,7 +21,7 @@
 RUNTIME_FUNCTION(Runtime_CheckIsBootstrapping) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 0);
-  RUNTIME_ASSERT(isolate->bootstrapper()->IsActive());
+  CHECK(isolate->bootstrapper()->IsActive());
   return isolate->heap()->undefined_value();
 }
 
@@ -29,7 +30,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0);
-  RUNTIME_ASSERT(isolate->bootstrapper()->IsActive());
+  CHECK(isolate->bootstrapper()->IsActive());
   JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10,
                                 "ExportFromRuntime");
   Bootstrapper::ExportFromRuntime(isolate, container);
@@ -42,7 +43,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, container, 0);
-  RUNTIME_ASSERT(isolate->bootstrapper()->IsActive());
+  CHECK(isolate->bootstrapper()->IsActive());
   JSObject::NormalizeProperties(container, KEEP_INOBJECT_PROPERTIES, 10,
                                 "ExportExperimentalFromRuntime");
   Bootstrapper::ExportExperimentalFromRuntime(isolate, container);
@@ -55,21 +56,21 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
-  RUNTIME_ASSERT(array->HasFastElements());
-  RUNTIME_ASSERT(isolate->bootstrapper()->IsActive());
+  CHECK(array->HasFastElements());
+  CHECK(isolate->bootstrapper()->IsActive());
   Handle<Context> native_context = isolate->native_context();
   Handle<FixedArray> fixed_array(FixedArray::cast(array->elements()));
   int length = Smi::cast(array->length())->value();
   for (int i = 0; i < length; i += 2) {
-    RUNTIME_ASSERT(fixed_array->get(i)->IsString());
+    CHECK(fixed_array->get(i)->IsString());
     Handle<String> name(String::cast(fixed_array->get(i)));
-    RUNTIME_ASSERT(fixed_array->get(i + 1)->IsJSObject());
+    CHECK(fixed_array->get(i + 1)->IsJSObject());
     Handle<JSObject> object(JSObject::cast(fixed_array->get(i + 1)));
     int index = Context::ImportedFieldIndexForName(name);
     if (index == Context::kNotFound) {
       index = Context::IntrinsicIndexForName(name);
     }
-    RUNTIME_ASSERT(index != Context::kNotFound);
+    CHECK(index != Context::kNotFound);
     native_context->set(index, *object);
   }
   return isolate->heap()->undefined_value();
@@ -140,8 +141,9 @@
                       LookupIterator::PROTOTYPE_CHAIN_SKIP_INTERCEPTOR);
     if (it.IsFound()) {
       DCHECK(JSReceiver::GetDataProperty(&it)->IsSmi());
+      // Make column number 1-based here.
       Maybe<bool> data_set = JSReceiver::SetDataProperty(
-          &it, handle(Smi::FromInt(byte_offset), isolate));
+          &it, handle(Smi::FromInt(byte_offset + 1), isolate));
       DCHECK(data_set.IsJust() && data_set.FromJust() == true);
       USE(data_set);
     }
@@ -258,7 +260,7 @@
   if (debug_event) isolate->debug()->OnPromiseReject(promise, value);
   Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol();
   // Do not report if we actually have a handler.
-  if (JSReceiver::GetDataProperty(promise, key)->IsUndefined()) {
+  if (JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate)) {
     isolate->ReportPromiseReject(promise, value,
                                  v8::kPromiseRejectWithNoHandler);
   }
@@ -272,7 +274,7 @@
   CONVERT_ARG_HANDLE_CHECKED(JSObject, promise, 0);
   Handle<Symbol> key = isolate->factory()->promise_has_handler_symbol();
   // At this point, no revocation has been issued before
-  RUNTIME_ASSERT(JSReceiver::GetDataProperty(promise, key)->IsUndefined());
+  CHECK(JSReceiver::GetDataProperty(promise, key)->IsUndefined(isolate));
   isolate->ReportPromiseReject(promise, Handle<Object>(),
                                v8::kPromiseHandlerAddedAfterReject);
   return isolate->heap()->undefined_value();
@@ -304,9 +306,9 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_SMI_ARG_CHECKED(size, 0);
-  RUNTIME_ASSERT(IsAligned(size, kPointerSize));
-  RUNTIME_ASSERT(size > 0);
-  RUNTIME_ASSERT(size <= Page::kMaxRegularHeapObjectSize);
+  CHECK(IsAligned(size, kPointerSize));
+  CHECK(size > 0);
+  CHECK(size <= Page::kMaxRegularHeapObjectSize);
   return *isolate->factory()->NewFillerObject(size, false, NEW_SPACE);
 }
 
@@ -316,14 +318,33 @@
   DCHECK(args.length() == 2);
   CONVERT_SMI_ARG_CHECKED(size, 0);
   CONVERT_SMI_ARG_CHECKED(flags, 1);
-  RUNTIME_ASSERT(IsAligned(size, kPointerSize));
-  RUNTIME_ASSERT(size > 0);
-  RUNTIME_ASSERT(size <= Page::kMaxRegularHeapObjectSize);
+  CHECK(IsAligned(size, kPointerSize));
+  CHECK(size > 0);
+  CHECK(size <= Page::kMaxRegularHeapObjectSize);
   bool double_align = AllocateDoubleAlignFlag::decode(flags);
   AllocationSpace space = AllocateTargetSpace::decode(flags);
   return *isolate->factory()->NewFillerObject(size, double_align, space);
 }
 
+RUNTIME_FUNCTION(Runtime_AllocateSeqOneByteString) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_SMI_ARG_CHECKED(length, 0);
+  Handle<SeqOneByteString> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, isolate->factory()->NewRawOneByteString(length));
+  return *result;
+}
+
+RUNTIME_FUNCTION(Runtime_AllocateSeqTwoByteString) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_SMI_ARG_CHECKED(length, 0);
+  Handle<SeqTwoByteString> result;
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
+      isolate, result, isolate->factory()->NewRawTwoByteString(length));
+  return *result;
+}
 
 // Collect the raw data for a stack trace.  Returns an array of 4
 // element segments each containing a receiver, function, code and
@@ -369,23 +390,20 @@
   CONVERT_ARG_HANDLE_CHECKED(String, arg0, 1);
   CONVERT_ARG_HANDLE_CHECKED(String, arg1, 2);
   CONVERT_ARG_HANDLE_CHECKED(String, arg2, 3);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      MessageTemplate::FormatMessage(template_index, arg0, arg1, arg2));
   isolate->native_context()->IncrementErrorsThrown();
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, MessageTemplate::FormatMessage(
+                                        template_index, arg0, arg1, arg2));
 }
 
-#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);                       \
+#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);             \
+    CHECK(call_site.IsJavaScript() || call_site.IsWasm());  \
+    return RETURN(call_site.NAME(), isolate);               \
   }
 
 static inline Object* ReturnDereferencedHandle(Handle<Object> obj,
@@ -434,8 +452,8 @@
     JSFunction* fun = frame->function();
     Object* script = fun->shared()->script();
     if (script->IsScript() &&
-        !(Script::cast(script)->source()->IsUndefined())) {
-      Handle<Script> casted_script(Script::cast(script));
+        !(Script::cast(script)->source()->IsUndefined(isolate))) {
+      Handle<Script> casted_script(Script::cast(script), isolate);
       // 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.
@@ -515,11 +533,8 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  Handle<FixedArray> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      Object::CreateListFromArrayLike(isolate, object, ElementTypes::kAll));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::CreateListFromArrayLike(
+                                        isolate, object, ElementTypes::kAll));
 }
 
 
@@ -597,10 +612,17 @@
   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;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::OrdinaryHasInstance(isolate, callable, object));
+}
+
+RUNTIME_FUNCTION(Runtime_IsWasmObject) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_CHECKED(Object, object, 0);
+  bool is_wasm_object =
+      object->IsJSObject() && wasm::IsWasmObject(JSObject::cast(object));
+  return *isolate->factory()->ToBoolean(is_wasm_object);
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-json.cc b/src/runtime/runtime-json.cc
deleted file mode 100644
index 72fc758..0000000
--- a/src/runtime/runtime-json.cc
+++ /dev/null
@@ -1,54 +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/char-predicates-inl.h"
-#include "src/isolate-inl.h"
-#include "src/json-parser.h"
-#include "src/objects-inl.h"
-
-namespace v8 {
-namespace internal {
-
-RUNTIME_FUNCTION(Runtime_QuoteJSONString) {
-  HandleScope scope(isolate);
-  CONVERT_ARG_HANDLE_CHECKED(String, string, 0);
-  DCHECK(args.length() == 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      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);
-  Handle<Object> result;
-  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());
-  CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  Handle<String> source;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, source,
-                                     Object::ToString(isolate, object));
-  source = String::Flatten(source);
-  // Optimized fast case where we only have Latin1 characters.
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     source->IsSeqOneByteString()
-                                         ? JsonParser<true>::Parse(source)
-                                         : JsonParser<false>::Parse(source));
-  return *result;
-}
-
-}  // namespace internal
-}  // namespace v8
diff --git a/src/runtime/runtime-literals.cc b/src/runtime/runtime-literals.cc
index 34feeba..9c43b40 100644
--- a/src/runtime/runtime-literals.cc
+++ b/src/runtime/runtime-literals.cc
@@ -85,7 +85,9 @@
     uint32_t element_index = 0;
     if (key->ToArrayIndex(&element_index)) {
       // Array index (uint32).
-      if (value->IsUninitialized()) value = handle(Smi::FromInt(0), isolate);
+      if (value->IsUninitialized(isolate)) {
+        value = handle(Smi::FromInt(0), isolate);
+      }
       maybe_result = JSObject::SetOwnElementIgnoreAttributes(
           boilerplate, element_index, value, NONE);
     } else {
@@ -209,7 +211,7 @@
 
   // Check if boilerplate exists. If not, create it first.
   Handle<Object> boilerplate(closure->literals()->literal(index), isolate);
-  if (boilerplate->IsUndefined()) {
+  if (boilerplate->IsUndefined(isolate)) {
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
         isolate, boilerplate, JSRegExp::New(pattern, JSRegExp::Flags(flags)));
     closure->literals()->set_literal(index, *boilerplate);
@@ -229,14 +231,14 @@
   bool should_have_fast_elements = (flags & ObjectLiteral::kFastElements) != 0;
   bool enable_mementos = (flags & ObjectLiteral::kDisableMementos) == 0;
 
-  RUNTIME_ASSERT(literals_index >= 0 &&
-                 literals_index < literals->literals_count());
+  CHECK(literals_index >= 0);
+  CHECK(literals_index < literals->literals_count());
 
   // Check if boilerplate exists. If not, create it first.
   Handle<Object> literal_site(literals->literal(literals_index), isolate);
   Handle<AllocationSite> site;
   Handle<JSObject> boilerplate;
-  if (*literal_site == isolate->heap()->undefined_value()) {
+  if (literal_site->IsUndefined(isolate)) {
     Handle<Object> raw_boilerplate;
     ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
         isolate, raw_boilerplate,
@@ -263,9 +265,7 @@
   MaybeHandle<Object> maybe_copy =
       JSObject::DeepCopy(boilerplate, &usage_context);
   usage_context.ExitScope(site, boilerplate);
-  Handle<Object> copy;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, copy, maybe_copy);
-  return *copy;
+  RETURN_RESULT_OR_FAILURE(isolate, maybe_copy);
 }
 
 MUST_USE_RESULT static MaybeHandle<AllocationSite> GetLiteralAllocationSite(
@@ -274,7 +274,7 @@
   // Check if boilerplate exists. If not, create it first.
   Handle<Object> literal_site(literals->literal(literals_index), isolate);
   Handle<AllocationSite> site;
-  if (*literal_site == isolate->heap()->undefined_value()) {
+  if (literal_site->IsUndefined(isolate)) {
     DCHECK(*elements != isolate->heap()->empty_fixed_array());
     Handle<Object> boilerplate;
     ASSIGN_RETURN_ON_EXCEPTION(
@@ -302,9 +302,7 @@
 static MaybeHandle<JSObject> CreateArrayLiteralImpl(
     Isolate* isolate, Handle<LiteralsArray> literals, int literals_index,
     Handle<FixedArray> elements, int flags) {
-  RUNTIME_ASSERT_HANDLIFIED(
-      literals_index >= 0 && literals_index < literals->literals_count(),
-      JSObject);
+  CHECK(literals_index >= 0 && literals_index < literals->literals_count());
   Handle<AllocationSite> site;
   ASSIGN_RETURN_ON_EXCEPTION(
       isolate, site,
@@ -333,12 +331,10 @@
   CONVERT_ARG_HANDLE_CHECKED(FixedArray, elements, 2);
   CONVERT_SMI_ARG_CHECKED(flags, 3);
 
-  Handle<JSObject> result;
   Handle<LiteralsArray> literals(closure->literals(), isolate);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, CreateArrayLiteralImpl(isolate, literals, literals_index,
-                                              elements, flags));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, CreateArrayLiteralImpl(isolate, literals, literals_index,
+                                      elements, flags));
 }
 
 
@@ -349,13 +345,11 @@
   CONVERT_SMI_ARG_CHECKED(literals_index, 1);
   CONVERT_ARG_HANDLE_CHECKED(FixedArray, elements, 2);
 
-  Handle<JSObject> result;
   Handle<LiteralsArray> literals(closure->literals(), isolate);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       CreateArrayLiteralImpl(isolate, literals, literals_index, elements,
                              ArrayLiteral::kShallowElements));
-  return *result;
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-liveedit.cc b/src/runtime/runtime-liveedit.cc
index da342de..72e8648 100644
--- a/src/runtime/runtime-liveedit.cc
+++ b/src/runtime/runtime-liveedit.cc
@@ -70,10 +70,8 @@
   RUNTIME_ASSERT(script->value()->IsScript());
   Handle<Script> script_handle = Handle<Script>(Script::cast(script->value()));
 
-  Handle<JSArray> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, LiveEdit::GatherCompileInfo(script_handle, source));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           LiveEdit::GatherCompileInfo(script_handle, source));
 }
 
 
@@ -223,7 +221,7 @@
         isolate, new_element,
         JSReceiver::GetElement(isolate, new_shared_array, i));
     RUNTIME_ASSERT(
-        new_element->IsUndefined() ||
+        new_element->IsUndefined(isolate) ||
         (new_element->IsJSValue() &&
          Handle<JSValue>::cast(new_element)->value()->IsSharedFunctionInfo()));
   }
diff --git a/src/runtime/runtime-maths.cc b/src/runtime/runtime-maths.cc
index 91b6181..1a923bf 100644
--- a/src/runtime/runtime-maths.cc
+++ b/src/runtime/runtime-maths.cc
@@ -9,24 +9,10 @@
 #include "src/base/utils/random-number-generator.h"
 #include "src/bootstrapper.h"
 #include "src/codegen.h"
-#include "src/third_party/fdlibm/fdlibm.h"
 
 namespace v8 {
 namespace internal {
 
-#define RUNTIME_UNARY_MATH(Name, name)                         \
-  RUNTIME_FUNCTION(Runtime_Math##Name) {                       \
-    HandleScope scope(isolate);                                \
-    DCHECK(args.length() == 1);                                \
-    isolate->counters()->math_##name##_runtime()->Increment(); \
-    CONVERT_DOUBLE_ARG_CHECKED(x, 0);                          \
-    return *isolate->factory()->NewHeapNumber(std::name(x));   \
-  }
-
-RUNTIME_UNARY_MATH(LogRT, log)
-#undef RUNTIME_UNARY_MATH
-
-
 RUNTIME_FUNCTION(Runtime_DoubleHi) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -49,65 +35,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_ConstructDouble) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_NUMBER_CHECKED(uint32_t, hi, Uint32, args[0]);
-  CONVERT_NUMBER_CHECKED(uint32_t, lo, Uint32, args[1]);
-  uint64_t result = (static_cast<uint64_t>(hi) << 32) | lo;
-  return *isolate->factory()->NewNumber(uint64_to_double(result));
-}
-
-
-RUNTIME_FUNCTION(Runtime_RemPiO2) {
-  SealHandleScope shs(isolate);
-  DisallowHeapAllocation no_gc;
-  DCHECK(args.length() == 2);
-  CONVERT_DOUBLE_ARG_CHECKED(x, 0);
-  CONVERT_ARG_CHECKED(JSTypedArray, result, 1);
-  RUNTIME_ASSERT(result->byte_length() == Smi::FromInt(2 * sizeof(double)));
-  FixedFloat64Array* array = FixedFloat64Array::cast(result->elements());
-  double* y = static_cast<double*>(array->DataPtr());
-  return Smi::FromInt(fdlibm::rempio2(x, y));
-}
-
-
-static const double kPiDividedBy4 = 0.78539816339744830962;
-
-
-RUNTIME_FUNCTION(Runtime_MathAtan2) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  isolate->counters()->math_atan2_runtime()->Increment();
-  CONVERT_DOUBLE_ARG_CHECKED(x, 0);
-  CONVERT_DOUBLE_ARG_CHECKED(y, 1);
-  double result;
-  if (std::isinf(x) && std::isinf(y)) {
-    // Make sure that the result in case of two infinite arguments
-    // is a multiple of Pi / 4. The sign of the result is determined
-    // by the first argument (x) and the sign of the second argument
-    // determines the multiplier: one or three.
-    int multiplier = (x < 0) ? -1 : 1;
-    if (y < 0) multiplier *= 3;
-    result = multiplier * kPiDividedBy4;
-  } else {
-    result = std::atan2(x, y);
-  }
-  return *isolate->factory()->NewNumber(result);
-}
-
-
-RUNTIME_FUNCTION(Runtime_MathExpRT) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  isolate->counters()->math_exp_runtime()->Increment();
-
-  CONVERT_DOUBLE_ARG_CHECKED(x, 0);
-  lazily_initialize_fast_exp(isolate);
-  return *isolate->factory()->NewNumber(fast_exp(x, isolate));
-}
-
-
 // Slow version of Math.pow.  We check for fast paths for special cases.
 // Used if VFP3 is not available.
 RUNTIME_FUNCTION(Runtime_MathPow) {
diff --git a/src/runtime/runtime-numbers.cc b/src/runtime/runtime-numbers.cc
index efbdeb2..edd83bc 100644
--- a/src/runtime/runtime-numbers.cc
+++ b/src/runtime/runtime-numbers.cc
@@ -17,7 +17,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 2);
   CONVERT_SMI_ARG_CHECKED(radix, 1);
-  RUNTIME_ASSERT(2 <= radix && radix <= 36);
+  CHECK(2 <= radix && radix <= 36);
 
   // Fast case where the result is a one character string.
   if (args[0]->IsSmi()) {
@@ -56,8 +56,8 @@
   CONVERT_DOUBLE_ARG_CHECKED(f_number, 1);
   int f = FastD2IChecked(f_number);
   // See DoubleToFixedCString for these constants:
-  RUNTIME_ASSERT(f >= 0 && f <= 20);
-  RUNTIME_ASSERT(!Double(value).IsSpecial());
+  CHECK(f >= 0 && f <= 20);
+  CHECK(!Double(value).IsSpecial());
   char* str = DoubleToFixedCString(value, f);
   Handle<String> result = isolate->factory()->NewStringFromAsciiChecked(str);
   DeleteArray(str);
@@ -72,8 +72,8 @@
   CONVERT_DOUBLE_ARG_CHECKED(value, 0);
   CONVERT_DOUBLE_ARG_CHECKED(f_number, 1);
   int f = FastD2IChecked(f_number);
-  RUNTIME_ASSERT(f >= -1 && f <= 20);
-  RUNTIME_ASSERT(!Double(value).IsSpecial());
+  CHECK(f >= -1 && f <= 20);
+  CHECK(!Double(value).IsSpecial());
   char* str = DoubleToExponentialCString(value, f);
   Handle<String> result = isolate->factory()->NewStringFromAsciiChecked(str);
   DeleteArray(str);
@@ -88,8 +88,8 @@
   CONVERT_DOUBLE_ARG_CHECKED(value, 0);
   CONVERT_DOUBLE_ARG_CHECKED(f_number, 1);
   int f = FastD2IChecked(f_number);
-  RUNTIME_ASSERT(f >= 1 && f <= 21);
-  RUNTIME_ASSERT(!Double(value).IsSpecial());
+  CHECK(f >= 1 && f <= 21);
+  CHECK(!Double(value).IsSpecial());
   char* str = DoubleToPrecisionCString(value, f);
   Handle<String> result = isolate->factory()->NewStringFromAsciiChecked(str);
   DeleteArray(str);
@@ -121,7 +121,7 @@
   CONVERT_ARG_HANDLE_CHECKED(String, subject, 0);
   CONVERT_NUMBER_CHECKED(int, radix, Int32, args[1]);
   // Step 8.a. is already handled in the JS function.
-  RUNTIME_ASSERT(radix == 0 || (2 <= radix && radix <= 36));
+  CHECK(radix == 0 || (2 <= radix && radix <= 36));
 
   subject = String::Flatten(subject);
   double value;
@@ -174,20 +174,6 @@
 }
 
 
-// TODO(bmeurer): Kill this runtime entry. Uses in date.js are wrong anyway.
-RUNTIME_FUNCTION(Runtime_NumberToIntegerMapMinusZero) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, input, Object::ToNumber(input));
-  double double_value = DoubleToInteger(input->Number());
-  // Map both -0 and +0 to +0.
-  if (double_value == 0) double_value = 0;
-
-  return *isolate->factory()->NewNumber(double_value);
-}
-
-
 // Converts a Number to a Smi, if possible. Returns NaN if the number is not
 // a small integer.
 RUNTIME_FUNCTION(Runtime_NumberToSmi) {
diff --git a/src/runtime/runtime-object.cc b/src/runtime/runtime-object.cc
index 8c9c230..c7f2398 100644
--- a/src/runtime/runtime-object.cc
+++ b/src/runtime/runtime-object.cc
@@ -8,7 +8,6 @@
 #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"
@@ -18,8 +17,9 @@
 
 MaybeHandle<Object> Runtime::GetObjectProperty(Isolate* isolate,
                                                Handle<Object> object,
-                                               Handle<Object> key) {
-  if (object->IsUndefined() || object->IsNull()) {
+                                               Handle<Object> key,
+                                               bool* is_found_out) {
+  if (object->IsUndefined(isolate) || object->IsNull(isolate)) {
     THROW_NEW_ERROR(
         isolate,
         NewTypeError(MessageTemplate::kNonObjectPropertyLoad, key, object),
@@ -31,7 +31,9 @@
       LookupIterator::PropertyOrElement(isolate, object, key, &success);
   if (!success) return MaybeHandle<Object>();
 
-  return Object::GetProperty(&it);
+  MaybeHandle<Object> result = Object::GetProperty(&it);
+  if (is_found_out) *is_found_out = it.IsFound();
+  return result;
 }
 
 static MaybeHandle<Object> KeyedGetObjectProperty(Isolate* isolate,
@@ -63,7 +65,9 @@
           PropertyCell* cell = PropertyCell::cast(dictionary->ValueAt(entry));
           if (cell->property_details().type() == DATA) {
             Object* value = cell->value();
-            if (!value->IsTheHole()) return Handle<Object>(value, isolate);
+            if (!value->IsTheHole(isolate)) {
+              return Handle<Object>(value, isolate);
+            }
             // If value is the hole (meaning, absent) do the general lookup.
           }
         }
@@ -195,7 +199,7 @@
         key_is_array_index
             ? index < static_cast<uint32_t>(String::cast(*object)->length())
             : key->Equals(isolate->heap()->length_string()));
-  } else if (object->IsNull() || object->IsUndefined()) {
+  } else if (object->IsNull(isolate) || object->IsUndefined(isolate)) {
     THROW_NEW_ERROR_RETURN_FAILURE(
         isolate, NewTypeError(MessageTemplate::kUndefinedOrNullToObject));
   }
@@ -208,7 +212,7 @@
                                                Handle<Object> key,
                                                Handle<Object> value,
                                                LanguageMode language_mode) {
-  if (object->IsUndefined() || object->IsNull()) {
+  if (object->IsUndefined(isolate) || object->IsNull(isolate)) {
     THROW_NEW_ERROR(
         isolate,
         NewTypeError(MessageTemplate::kNonObjectPropertyStore, key, object),
@@ -226,24 +230,12 @@
   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);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, obj, 0);
-  Handle<Object> prototype;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, prototype,
-                                     JSReceiver::GetPrototype(isolate, obj));
-  return *prototype;
+  RETURN_RESULT_OR_FAILURE(isolate, JSReceiver::GetPrototype(isolate, obj));
 }
 
 
@@ -285,42 +277,6 @@
 }
 
 
-RUNTIME_FUNCTION(Runtime_LoadGlobalViaContext) {
-  HandleScope scope(isolate);
-  DCHECK_EQ(1, args.length());
-  CONVERT_SMI_ARG_CHECKED(slot, 0);
-
-  // Go up context chain to the script context.
-  Handle<Context> script_context(isolate->context()->script_context(), isolate);
-  DCHECK(script_context->IsScriptContext());
-  DCHECK(script_context->get(slot)->IsPropertyCell());
-
-  // Lookup the named property on the global object.
-  Handle<ScopeInfo> scope_info(script_context->scope_info(), isolate);
-  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::OWN);
-
-  // Switch to fast mode only if there is a data property and it's not on
-  // a hidden prototype.
-  if (it.state() == LookupIterator::DATA &&
-      it.GetHolder<Object>().is_identical_to(global_object)) {
-    // Now update the cell in the script context.
-    Handle<PropertyCell> cell = it.GetPropertyCell();
-    script_context->set(slot, *cell);
-  } else {
-    // This is not a fast case, so keep this access in a slow mode.
-    // Store empty_property_cell here to release the outdated property cell.
-    script_context->set(slot, isolate->heap()->empty_property_cell());
-  }
-
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Object::GetProperty(&it));
-  return *result;
-}
-
-
 namespace {
 
 Object* StoreGlobalViaContext(Isolate* isolate, int slot, Handle<Object> value,
@@ -386,13 +342,10 @@
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Runtime::GetObjectProperty(isolate, object, key));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Runtime::GetObjectProperty(isolate, object, key));
 }
 
-
 // KeyedGetProperty is called from KeyedLoadIC::GenerateGeneric.
 RUNTIME_FUNCTION(Runtime_KeyedGetProperty) {
   HandleScope scope(isolate);
@@ -401,16 +354,14 @@
   CONVERT_ARG_HANDLE_CHECKED(Object, receiver_obj, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key_obj, 1);
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, KeyedGetObjectProperty(isolate, receiver_obj, key_obj));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, KeyedGetObjectProperty(isolate, receiver_obj, key_obj));
 }
 
 
 RUNTIME_FUNCTION(Runtime_AddNamedProperty) {
   HandleScope scope(isolate);
-  RUNTIME_ASSERT(args.length() == 4);
+  DCHECK_EQ(4, args.length());
 
   CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
   CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
@@ -423,14 +374,11 @@
   LookupIterator it(object, name, object, LookupIterator::OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
   if (!maybe.IsJust()) return isolate->heap()->exception();
-  RUNTIME_ASSERT(!it.IsFound());
+  CHECK(!it.IsFound());
 #endif
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      JSObject::SetOwnPropertyIgnoreAttributes(object, name, value, attrs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnPropertyIgnoreAttributes(
+                                        object, name, value, attrs));
 }
 
 
@@ -438,7 +386,7 @@
 // This is used to create an indexed data property into an array.
 RUNTIME_FUNCTION(Runtime_AddElement) {
   HandleScope scope(isolate);
-  RUNTIME_ASSERT(args.length() == 3);
+  DCHECK_EQ(3, args.length());
 
   CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
@@ -452,25 +400,22 @@
                     LookupIterator::OWN_SKIP_INTERCEPTOR);
   Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
   if (!maybe.IsJust()) return isolate->heap()->exception();
-  RUNTIME_ASSERT(!it.IsFound());
+  CHECK(!it.IsFound());
 
   if (object->IsJSArray()) {
     Handle<JSArray> array = Handle<JSArray>::cast(object);
-    RUNTIME_ASSERT(!JSArray::WouldChangeReadOnlyLength(array, index));
+    CHECK(!JSArray::WouldChangeReadOnlyLength(array, index));
   }
 #endif
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      JSObject::SetOwnElementIgnoreAttributes(object, index, value, NONE));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSObject::SetOwnElementIgnoreAttributes(
+                                        object, index, value, NONE));
 }
 
 
 RUNTIME_FUNCTION(Runtime_AppendElement) {
   HandleScope scope(isolate);
-  RUNTIME_ASSERT(args.length() == 2);
+  DCHECK_EQ(2, args.length());
 
   CONVERT_ARG_HANDLE_CHECKED(JSArray, array, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
@@ -478,9 +423,8 @@
   uint32_t index;
   CHECK(array->length()->ToArrayIndex(&index));
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, JSObject::AddDataElement(array, index, value, NONE));
+  RETURN_FAILURE_ON_EXCEPTION(
+      isolate, JSObject::AddDataElement(array, index, value, NONE));
   JSObject::ValidateElements(array);
   return *array;
 }
@@ -488,7 +432,7 @@
 
 RUNTIME_FUNCTION(Runtime_SetProperty) {
   HandleScope scope(isolate);
-  RUNTIME_ASSERT(args.length() == 4);
+  DCHECK_EQ(4, args.length());
 
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, key, 1);
@@ -496,11 +440,9 @@
   CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode_arg, 3);
   LanguageMode language_mode = language_mode_arg;
 
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Runtime::SetObjectProperty(isolate, object, key, value, language_mode));
-  return *result;
 }
 
 
@@ -591,7 +533,8 @@
   Handle<FixedArray> keys;
   ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
       isolate, keys,
-      JSReceiver::GetKeys(object, OWN_ONLY, filter, CONVERT_TO_STRING));
+      KeyAccumulator::GetKeys(object, KeyCollectionMode::kOwnOnly, filter,
+                              GetKeysConversion::kConvertToString));
 
   return *isolate->factory()->NewJSArrayWithElements(keys);
 }
@@ -639,10 +582,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, target, 0);
   CONVERT_ARG_HANDLE_CHECKED(JSReceiver, new_target, 1);
-  Handle<JSObject> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     JSObject::New(target, new_target));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, JSObject::New(target, new_target));
 }
 
 
@@ -662,15 +602,14 @@
   DCHECK(args.length() == 2);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0);
   CONVERT_ARG_HANDLE_CHECKED(Smi, index, 1);
-  RUNTIME_ASSERT((index->value() & 1) == 1);
+  CHECK((index->value() & 1) == 1);
   FieldIndex field_index =
       FieldIndex::ForLoadByFieldIndex(object->map(), index->value());
   if (field_index.is_inobject()) {
-    RUNTIME_ASSERT(field_index.property_index() <
-                   object->map()->GetInObjectProperties());
+    CHECK(field_index.property_index() <
+          object->map()->GetInObjectProperties());
   } else {
-    RUNTIME_ASSERT(field_index.outobject_array_index() <
-                   object->properties()->length());
+    CHECK(field_index.outobject_array_index() < object->properties()->length());
   }
   return *JSObject::FastPropertyAt(object, Representation::Double(),
                                    field_index);
@@ -700,9 +639,8 @@
   return isolate->heap()->ToBoolean(obj->IsJSGlobalProxy());
 }
 
-
-static bool IsValidAccessor(Handle<Object> obj) {
-  return obj->IsUndefined() || obj->IsCallable() || obj->IsNull();
+static bool IsValidAccessor(Isolate* isolate, Handle<Object> obj) {
+  return obj->IsUndefined(isolate) || obj->IsCallable() || obj->IsNull(isolate);
 }
 
 
@@ -716,12 +654,12 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 5);
   CONVERT_ARG_HANDLE_CHECKED(JSObject, obj, 0);
-  RUNTIME_ASSERT(!obj->IsNull());
+  CHECK(!obj->IsNull(isolate));
   CONVERT_ARG_HANDLE_CHECKED(Name, name, 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, getter, 2);
-  RUNTIME_ASSERT(IsValidAccessor(getter));
+  CHECK(IsValidAccessor(isolate, getter));
   CONVERT_ARG_HANDLE_CHECKED(Object, setter, 3);
-  RUNTIME_ASSERT(IsValidAccessor(setter));
+  CHECK(IsValidAccessor(isolate, setter));
   CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 4);
 
   RETURN_FAILURE_ON_EXCEPTION(
@@ -739,7 +677,7 @@
   CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
   CONVERT_SMI_ARG_CHECKED(set_function_name, 4);
 
-  if (FLAG_harmony_function_name && set_function_name) {
+  if (set_function_name) {
     DCHECK(value->IsJSFunction());
     JSFunction::SetName(Handle<JSFunction>::cast(value), name,
                         isolate->factory()->empty_string());
@@ -808,8 +746,7 @@
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, getter, 2);
   CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
 
-  if (FLAG_harmony_function_name &&
-      String::cast(getter->shared()->name())->length() == 0) {
+  if (String::cast(getter->shared()->name())->length() == 0) {
     JSFunction::SetName(getter, name, isolate->factory()->get_string());
   }
 
@@ -829,8 +766,7 @@
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, setter, 2);
   CONVERT_PROPERTY_ATTRIBUTES_CHECKED(attrs, 3);
 
-  if (FLAG_harmony_function_name &&
-      String::cast(setter->shared()->name())->length() == 0) {
+  if (String::cast(setter->shared()->name())->length() == 0) {
     JSFunction::SetName(setter, name, isolate->factory()->set_string());
   }
 
@@ -846,10 +782,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, object, 0);
-  Handle<JSReceiver> receiver;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, receiver,
-                                     Object::ToObject(isolate, object));
-  return *receiver;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToObject(isolate, object));
 }
 
 
@@ -857,10 +790,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ToPrimitive(input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToPrimitive(input));
 }
 
 
@@ -868,10 +798,8 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::ToPrimitive(input, ToPrimitiveHint::kNumber));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::ToPrimitive(input, ToPrimitiveHint::kNumber));
 }
 
 
@@ -879,10 +807,8 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::ToPrimitive(input, ToPrimitiveHint::kString));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::ToPrimitive(input, ToPrimitiveHint::kString));
 }
 
 
@@ -890,9 +816,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, Object::ToNumber(input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToNumber(input));
 }
 
 
@@ -900,10 +824,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ToInteger(isolate, input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToInteger(isolate, input));
 }
 
 
@@ -911,10 +832,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ToLength(isolate, input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToLength(isolate, input));
 }
 
 
@@ -922,10 +840,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ToString(isolate, input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToString(isolate, input));
 }
 
 
@@ -933,10 +848,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ToName(isolate, input));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ToName(isolate, input));
 }
 
 
diff --git a/src/runtime/runtime-operators.cc b/src/runtime/runtime-operators.cc
index 78dd16f..2a9255b 100644
--- a/src/runtime/runtime-operators.cc
+++ b/src/runtime/runtime-operators.cc
@@ -14,10 +14,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::Multiply(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::Multiply(isolate, lhs, rhs));
 }
 
 
@@ -26,10 +23,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::Divide(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::Divide(isolate, lhs, rhs));
 }
 
 
@@ -38,10 +32,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::Modulus(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::Modulus(isolate, lhs, rhs));
 }
 
 
@@ -50,10 +41,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::Add(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::Add(isolate, lhs, rhs));
 }
 
 
@@ -62,10 +50,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::Subtract(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::Subtract(isolate, lhs, rhs));
 }
 
 
@@ -74,10 +59,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ShiftLeft(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ShiftLeft(isolate, lhs, rhs));
 }
 
 
@@ -86,10 +68,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::ShiftRight(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::ShiftRight(isolate, lhs, rhs));
 }
 
 
@@ -98,10 +77,8 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::ShiftRightLogical(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Object::ShiftRightLogical(isolate, lhs, rhs));
 }
 
 
@@ -110,10 +87,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::BitwiseAnd(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseAnd(isolate, lhs, rhs));
 }
 
 
@@ -122,10 +96,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::BitwiseOr(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseOr(isolate, lhs, rhs));
 }
 
 
@@ -134,10 +105,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(Object, lhs, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, rhs, 1);
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result,
-                                     Object::BitwiseXor(isolate, lhs, rhs));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, Object::BitwiseXor(isolate, lhs, rhs));
 }
 
 RUNTIME_FUNCTION(Runtime_Equal) {
@@ -221,10 +189,8 @@
   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;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           Object::InstanceOf(isolate, object, callable));
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-proxy.cc b/src/runtime/runtime-proxy.cc
index 7764d25..87c7c91 100644
--- a/src/runtime/runtime-proxy.cc
+++ b/src/runtime/runtime-proxy.cc
@@ -40,17 +40,15 @@
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name));
   // 6. If trap is undefined, then
   int const arguments_length = args.length() - 2;
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 6.a. Return Call(target, thisArgument, argumentsList).
     ScopedVector<Handle<Object>> argv(arguments_length);
     for (int i = 0; i < arguments_length; ++i) {
       argv[i] = args.at<Object>(i + 1);
     }
-    Handle<Object> result;
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, Execution::Call(isolate, target, receiver,
-                                         arguments_length, argv.start()));
-    return *result;
+    RETURN_RESULT_OR_FAILURE(
+        isolate, Execution::Call(isolate, target, receiver, arguments_length,
+                                 argv.start()));
   }
   // 7. Let argArray be CreateArrayFromList(argumentsList).
   Handle<JSArray> arg_array = isolate->factory()->NewJSArray(
@@ -63,12 +61,10 @@
     }
   }
   // 8. Return Call(trap, handler, «target, thisArgument, argArray»).
-  Handle<Object> trap_result;
   Handle<Object> trap_args[] = {target, receiver, arg_array};
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, trap_result,
+  RETURN_RESULT_OR_FAILURE(
+      isolate,
       Execution::Call(isolate, trap, handler, arraysize(trap_args), trap_args));
-  return *trap_result;
 }
 
 
@@ -98,7 +94,7 @@
       Object::GetMethod(Handle<JSReceiver>::cast(handler), trap_name));
   // 6. If trap is undefined, then
   int const arguments_length = args.length() - 3;
-  if (trap->IsUndefined()) {
+  if (trap->IsUndefined(isolate)) {
     // 6.a. Assert: target has a [[Construct]] internal method.
     DCHECK(target->IsConstructor());
     // 6.b. Return Construct(target, argumentsList, newTarget).
@@ -106,11 +102,9 @@
     for (int i = 0; i < arguments_length; ++i) {
       argv[i] = args.at<Object>(i + 1);
     }
-    Handle<Object> result;
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, Execution::New(isolate, target, new_target,
-                                        arguments_length, argv.start()));
-    return *result;
+    RETURN_RESULT_OR_FAILURE(
+        isolate, Execution::New(isolate, target, new_target, arguments_length,
+                                argv.start()));
   }
   // 7. Let argArray be CreateArrayFromList(argumentsList).
   Handle<JSArray> arg_array = isolate->factory()->NewJSArray(
diff --git a/src/runtime/runtime-regexp.cc b/src/runtime/runtime-regexp.cc
index aead017..a8133d3 100644
--- a/src/runtime/runtime-regexp.cc
+++ b/src/runtime/runtime-regexp.cc
@@ -544,9 +544,7 @@
   RegExpImpl::SetLastMatchInfo(last_match_info, subject, capture_count,
                                global_cache.LastSuccessfulMatch());
 
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, builder.ToString());
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, builder.ToString());
 }
 
 
@@ -658,8 +656,8 @@
   CONVERT_ARG_HANDLE_CHECKED(JSRegExp, regexp, 1);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 3);
 
-  RUNTIME_ASSERT(regexp->GetFlags() & JSRegExp::kGlobal);
-  RUNTIME_ASSERT(last_match_info->HasFastObjectElements());
+  CHECK(regexp->GetFlags() & JSRegExp::kGlobal);
+  CHECK(last_match_info->HasFastObjectElements());
 
   subject = String::Flatten(subject);
 
@@ -686,11 +684,11 @@
   CONVERT_ARG_HANDLE_CHECKED(String, subject, 0);
   CONVERT_ARG_HANDLE_CHECKED(String, pattern, 1);
   CONVERT_NUMBER_CHECKED(uint32_t, limit, Uint32, args[2]);
-  RUNTIME_ASSERT(limit > 0);
+  CHECK(limit > 0);
 
   int subject_length = subject->length();
   int pattern_length = pattern->length();
-  RUNTIME_ASSERT(pattern_length > 0);
+  CHECK(pattern_length > 0);
 
   if (limit == 0xffffffffu) {
     FixedArray* last_match_cache_unused;
@@ -776,14 +774,11 @@
   CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 3);
   // Due to the way the JS calls are constructed this must be less than the
   // length of a string, i.e. it is always a Smi.  We check anyway for security.
-  RUNTIME_ASSERT(index >= 0);
-  RUNTIME_ASSERT(index <= subject->length());
+  CHECK(index >= 0);
+  CHECK(index <= subject->length());
   isolate->counters()->regexp_entry_runtime()->Increment();
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      RegExpImpl::Exec(regexp, subject, index, last_match_info));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, RegExpImpl::Exec(regexp, subject, index, last_match_info));
 }
 
 
@@ -807,7 +802,7 @@
   HandleScope handle_scope(isolate);
   DCHECK(args.length() == 3);
   CONVERT_SMI_ARG_CHECKED(size, 0);
-  RUNTIME_ASSERT(size >= 0 && size <= FixedArray::kMaxLength);
+  CHECK(size >= 0 && size <= FixedArray::kMaxLength);
   CONVERT_ARG_HANDLE_CHECKED(Object, index, 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, input, 2);
   Handle<FixedArray> elements = isolate->factory()->NewFixedArray(size);
@@ -995,11 +990,11 @@
   CONVERT_ARG_HANDLE_CHECKED(String, subject, 1);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, last_match_info, 2);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, result_array, 3);
-  RUNTIME_ASSERT(last_match_info->HasFastObjectElements());
-  RUNTIME_ASSERT(result_array->HasFastObjectElements());
+  CHECK(last_match_info->HasFastObjectElements());
+  CHECK(result_array->HasFastObjectElements());
 
   subject = String::Flatten(subject);
-  RUNTIME_ASSERT(regexp->GetFlags() & JSRegExp::kGlobal);
+  CHECK(regexp->GetFlags() & JSRegExp::kGlobal);
 
   if (regexp->CaptureCount() == 0) {
     return SearchRegExpMultiple<false>(isolate, subject, regexp,
diff --git a/src/runtime/runtime-scopes.cc b/src/runtime/runtime-scopes.cc
index 68df582..0bdbe2e 100644
--- a/src/runtime/runtime-scopes.cc
+++ b/src/runtime/runtime-scopes.cc
@@ -16,10 +16,18 @@
 namespace v8 {
 namespace internal {
 
-static Object* ThrowRedeclarationError(Isolate* isolate, Handle<String> name) {
+enum class RedeclarationType { kSyntaxError = 0, kTypeError = 1 };
+
+static Object* ThrowRedeclarationError(Isolate* isolate, Handle<String> name,
+                                       RedeclarationType redeclaration_type) {
   HandleScope scope(isolate);
-  THROW_NEW_ERROR_RETURN_FAILURE(
-      isolate, NewTypeError(MessageTemplate::kVarRedeclaration, name));
+  if (redeclaration_type == RedeclarationType::kSyntaxError) {
+    THROW_NEW_ERROR_RETURN_FAILURE(
+        isolate, NewSyntaxError(MessageTemplate::kVarRedeclaration, name));
+  } else {
+    THROW_NEW_ERROR_RETURN_FAILURE(
+        isolate, NewTypeError(MessageTemplate::kVarRedeclaration, name));
+  }
 }
 
 
@@ -34,13 +42,18 @@
 static Object* DeclareGlobals(Isolate* isolate, Handle<JSGlobalObject> global,
                               Handle<String> name, Handle<Object> value,
                               PropertyAttributes attr, bool is_var,
-                              bool is_const, bool is_function) {
+                              bool is_function,
+                              RedeclarationType redeclaration_type) {
   Handle<ScriptContextTable> script_contexts(
       global->native_context()->script_context_table());
   ScriptContextTable::LookupResult lookup;
   if (ScriptContextTable::Lookup(script_contexts, name, &lookup) &&
       IsLexicalVariableMode(lookup.mode)) {
-    return ThrowRedeclarationError(isolate, name);
+    // ES#sec-globaldeclarationinstantiation 6.a:
+    // If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    return ThrowRedeclarationError(isolate, name,
+                                   RedeclarationType::kSyntaxError);
   }
 
   // Do the lookup own properties only, see ES5 erratum.
@@ -51,7 +64,6 @@
   if (it.IsFound()) {
     PropertyAttributes old_attributes = maybe.FromJust();
     // The name was declared before; check for conflicting re-declarations.
-    if (is_const) return ThrowRedeclarationError(isolate, name);
 
     // Skip var re-declarations.
     if (is_var) return isolate->heap()->undefined_value();
@@ -68,7 +80,11 @@
       if (old_details.IsReadOnly() || old_details.IsDontEnum() ||
           (it.state() == LookupIterator::ACCESSOR &&
            it.GetAccessors()->IsAccessorPair())) {
-        return ThrowRedeclarationError(isolate, name);
+        // ES#sec-globaldeclarationinstantiation 5.d:
+        // If hasRestrictedGlobal is true, throw a SyntaxError exception.
+        // ES#sec-evaldeclarationinstantiation 8.a.iv.1.b:
+        // If fnDefinable is false, throw a TypeError exception.
+        return ThrowRedeclarationError(isolate, name, redeclaration_type);
       }
       // If the existing property is not configurable, keep its attributes. Do
       attr = old_attributes;
@@ -106,14 +122,9 @@
     Handle<String> name(String::cast(pairs->get(i)));
     Handle<Object> initial_value(pairs->get(i + 1), isolate);
 
-    // We have to declare a global const property. To capture we only
-    // assign to it when evaluating the assignment for "const x =
-    // <expr>" the initial value is the hole.
-    bool is_var = initial_value->IsUndefined();
-    bool is_const = initial_value->IsTheHole();
+    bool is_var = initial_value->IsUndefined(isolate);
     bool is_function = initial_value->IsSharedFunctionInfo();
-    DCHECK_EQ(1,
-              BoolToInt(is_var) + BoolToInt(is_const) + BoolToInt(is_function));
+    DCHECK_EQ(1, BoolToInt(is_var) + BoolToInt(is_function));
 
     Handle<Object> value;
     if (is_function) {
@@ -133,13 +144,14 @@
     bool is_native = DeclareGlobalsNativeFlag::decode(flags);
     bool is_eval = DeclareGlobalsEvalFlag::decode(flags);
     int attr = NONE;
-    if (is_const) attr |= READ_ONLY;
     if (is_function && is_native) attr |= READ_ONLY;
-    if (!is_const && !is_eval) attr |= DONT_DELETE;
+    if (!is_eval) attr |= DONT_DELETE;
 
-    Object* result = DeclareGlobals(isolate, global, name, value,
-                                    static_cast<PropertyAttributes>(attr),
-                                    is_var, is_const, is_function);
+    // ES#sec-globaldeclarationinstantiation 5.d:
+    // If hasRestrictedGlobal is true, throw a SyntaxError exception.
+    Object* result = DeclareGlobals(
+        isolate, global, name, value, static_cast<PropertyAttributes>(attr),
+        is_var, is_function, RedeclarationType::kSyntaxError);
     if (isolate->has_pending_exception()) return result;
   });
 
@@ -149,32 +161,20 @@
 
 RUNTIME_FUNCTION(Runtime_InitializeVarGlobal) {
   HandleScope scope(isolate);
-  // args[0] == name
-  // args[1] == language_mode
-  // args[2] == value (optional)
-
-  // Determine if we need to assign to the variable if it already
-  // exists (based on the number of arguments).
-  RUNTIME_ASSERT(args.length() == 3);
-
+  DCHECK_EQ(3, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
   CONVERT_LANGUAGE_MODE_ARG_CHECKED(language_mode, 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 2);
 
   Handle<JSGlobalObject> global(isolate->context()->global_object());
-  Handle<Object> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, Object::SetProperty(global, name, value, language_mode));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(
+      isolate, Object::SetProperty(global, name, value, language_mode));
 }
 
 
 RUNTIME_FUNCTION(Runtime_InitializeConstGlobal) {
   HandleScope handle_scope(isolate);
-  // All constants are declared with an initial value. The name
-  // of the constant is the first argument and the initial value
-  // is the second.
-  RUNTIME_ASSERT(args.length() == 2);
+  DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
 
@@ -207,76 +207,69 @@
   return *value;
 }
 
-
 namespace {
 
-Object* DeclareLookupSlot(Isolate* isolate, Handle<String> name,
-                          Handle<Object> initial_value,
-                          PropertyAttributes attr) {
-  // Declarations are always made in a function, eval or script context, or
-  // a declaration block scope.
-  // In the case of eval code, the context passed is the context of the caller,
-  // which may be some nested context and not the declaration context.
+Object* DeclareEvalHelper(Isolate* isolate, Handle<String> name,
+                          Handle<Object> value) {
+  // Declarations are always made in a function, native, or script context, or
+  // a declaration block scope. Since this is called from eval, the context
+  // passed is the context of the caller, which may be some nested context and
+  // not the declaration context.
   Handle<Context> context_arg(isolate->context(), isolate);
   Handle<Context> context(context_arg->declaration_context(), isolate);
 
-  // TODO(verwaest): Unify the encoding indicating "var" with DeclareGlobals.
-  bool is_var = *initial_value == NULL;
-  bool is_const = initial_value->IsTheHole();
-  bool is_function = initial_value->IsJSFunction();
-  DCHECK_EQ(1,
-            BoolToInt(is_var) + BoolToInt(is_const) + BoolToInt(is_function));
+  DCHECK(context->IsFunctionContext() || context->IsNativeContext() ||
+         context->IsScriptContext() ||
+         (context->IsBlockContext() && context->has_extension()));
+
+  bool is_function = value->IsJSFunction();
+  bool is_var = !is_function;
+  DCHECK(!is_var || value->IsUndefined(isolate));
 
   int index;
   PropertyAttributes attributes;
   BindingFlags binding_flags;
 
-  if ((attr & EVAL_DECLARED) != 0) {
-    // Check for a conflict with a lexically scoped variable
-    context_arg->Lookup(name, LEXICAL_TEST, &index, &attributes,
-                        &binding_flags);
-    if (attributes != ABSENT && binding_flags == BINDING_CHECK_INITIALIZED) {
-      return ThrowRedeclarationError(isolate, name);
-    }
-    attr = static_cast<PropertyAttributes>(attr & ~EVAL_DECLARED);
+  // Check for a conflict with a lexically scoped variable
+  context_arg->Lookup(name, LEXICAL_TEST, &index, &attributes, &binding_flags);
+  if (attributes != ABSENT && binding_flags == BINDING_CHECK_INITIALIZED) {
+    // ES#sec-evaldeclarationinstantiation 5.a.i.1:
+    // If varEnvRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    // ES#sec-evaldeclarationinstantiation 5.d.ii.2.a.i:
+    // Throw a SyntaxError exception.
+    return ThrowRedeclarationError(isolate, name,
+                                   RedeclarationType::kSyntaxError);
   }
 
   Handle<Object> holder = context->Lookup(name, DONT_FOLLOW_CHAINS, &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();
-  }
+  DCHECK(!isolate->has_pending_exception());
 
   Handle<JSObject> object;
-  Handle<Object> value =
-      is_function ? initial_value
-                  : Handle<Object>::cast(isolate->factory()->undefined_value());
 
-  // TODO(verwaest): This case should probably not be covered by this function,
-  // but by DeclareGlobals instead.
   if (attributes != ABSENT && holder->IsJSGlobalObject()) {
+    // ES#sec-evaldeclarationinstantiation 8.a.iv.1.b:
+    // If fnDefinable is false, throw a TypeError exception.
     return DeclareGlobals(isolate, Handle<JSGlobalObject>::cast(holder), name,
-                          value, attr, is_var, is_const, is_function);
+                          value, NONE, is_var, is_function,
+                          RedeclarationType::kTypeError);
   }
   if (context_arg->extension()->IsJSGlobalObject()) {
     Handle<JSGlobalObject> global(
         JSGlobalObject::cast(context_arg->extension()), isolate);
-    return DeclareGlobals(isolate, global, name, value, attr, is_var, is_const,
-                          is_function);
+    return DeclareGlobals(isolate, global, name, value, NONE, is_var,
+                          is_function, RedeclarationType::kTypeError);
   } else if (context->IsScriptContext()) {
     DCHECK(context->global_object()->IsJSGlobalObject());
     Handle<JSGlobalObject> global(
         JSGlobalObject::cast(context->global_object()), isolate);
-    return DeclareGlobals(isolate, global, name, value, attr, is_var, is_const,
-                          is_function);
+    return DeclareGlobals(isolate, global, name, value, NONE, is_var,
+                          is_function, RedeclarationType::kTypeError);
   }
 
   if (attributes != ABSENT) {
-    // The name was declared before; check for conflicting re-declarations.
-    if (is_const || (attributes & READ_ONLY) != 0) {
-      return ThrowRedeclarationError(isolate, name);
-    }
+    DCHECK_EQ(NONE, attributes);
 
     // Skip var re-declarations.
     if (is_var) return isolate->heap()->undefined_value();
@@ -284,7 +277,7 @@
     DCHECK(is_function);
     if (index != Context::kNotFound) {
       DCHECK(holder.is_identical_to(context));
-      context->set(index, *initial_value);
+      context->set(index, *value);
       return isolate->heap()->undefined_value();
     }
 
@@ -313,26 +306,28 @@
   }
 
   RETURN_FAILURE_ON_EXCEPTION(isolate, JSObject::SetOwnPropertyIgnoreAttributes(
-                                           object, name, value, attr));
+                                           object, name, value, NONE));
 
   return isolate->heap()->undefined_value();
 }
 
 }  // namespace
 
-
-RUNTIME_FUNCTION(Runtime_DeclareLookupSlot) {
+RUNTIME_FUNCTION(Runtime_DeclareEvalFunction) {
   HandleScope scope(isolate);
-  DCHECK_EQ(3, args.length());
+  DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
-  CONVERT_ARG_HANDLE_CHECKED(Object, initial_value, 1);
-  CONVERT_ARG_HANDLE_CHECKED(Smi, property_attributes, 2);
-
-  PropertyAttributes attributes =
-      static_cast<PropertyAttributes>(property_attributes->value());
-  return DeclareLookupSlot(isolate, name, initial_value, attributes);
+  CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
+  return DeclareEvalHelper(isolate, name, value);
 }
 
+RUNTIME_FUNCTION(Runtime_DeclareEvalVar) {
+  HandleScope scope(isolate);
+  DCHECK_EQ(1, args.length());
+  CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
+  return DeclareEvalHelper(isolate, name,
+                           isolate->factory()->undefined_value());
+}
 
 namespace {
 
@@ -563,7 +558,7 @@
   {
     DisallowHeapAllocation no_gc;
     FixedArray* elements = FixedArray::cast(result->elements());
-    WriteBarrierMode mode = elements->GetWriteBarrierMode(no_gc);
+    WriteBarrierMode mode = result->GetWriteBarrierMode(no_gc);
     for (int i = 0; i < num_elements; i++) {
       elements->set(i, *arguments[i + start_index], mode);
     }
@@ -614,7 +609,11 @@
     ScriptContextTable::LookupResult lookup;
     if (ScriptContextTable::Lookup(script_context, name, &lookup)) {
       if (IsLexicalVariableMode(mode) || IsLexicalVariableMode(lookup.mode)) {
-        return ThrowRedeclarationError(isolate, name);
+        // ES#sec-globaldeclarationinstantiation 5.b:
+        // If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+        // exception.
+        return ThrowRedeclarationError(isolate, name,
+                                       RedeclarationType::kSyntaxError);
       }
     }
 
@@ -624,7 +623,13 @@
       Maybe<PropertyAttributes> maybe = JSReceiver::GetPropertyAttributes(&it);
       if (!maybe.IsJust()) return isolate->heap()->exception();
       if ((maybe.FromJust() & DONT_DELETE) != 0) {
-        return ThrowRedeclarationError(isolate, name);
+        // ES#sec-globaldeclarationinstantiation 5.a:
+        // If envRec.HasVarDeclaration(name) is true, throw a SyntaxError
+        // exception.
+        // ES#sec-globaldeclarationinstantiation 5.d:
+        // If hasRestrictedGlobal is true, throw a SyntaxError exception.
+        return ThrowRedeclarationError(isolate, name,
+                                       RedeclarationType::kSyntaxError);
       }
 
       JSGlobalObject::InvalidatePropertyCell(global_object, name);
@@ -777,7 +782,7 @@
     Handle<JSModule> module(context->module());
 
     for (int j = 0; j < description->length(); ++j) {
-      Handle<String> name(description->name(j));
+      Handle<String> name(description->name(j), isolate);
       VariableMode mode = description->mode(j);
       int index = description->index(j);
       switch (mode) {
@@ -791,7 +796,7 @@
               Accessors::MakeModuleExport(name, index, attr);
           Handle<Object> result =
               JSObject::SetAccessor(module, info).ToHandleChecked();
-          DCHECK(!result->IsUndefined());
+          DCHECK(!result->IsUndefined(isolate));
           USE(result);
           break;
         }
@@ -870,14 +875,14 @@
     // Check for uninitialized bindings.
     switch (flags) {
       case BINDING_CHECK_INITIALIZED:
-        if (value->IsTheHole()) {
+        if (value->IsTheHole(isolate)) {
           THROW_NEW_ERROR(isolate,
                           NewReferenceError(MessageTemplate::kNotDefined, name),
                           Object);
         }
       // FALLTHROUGH
       case BINDING_IS_INITIALIZED:
-        DCHECK(!value->IsTheHole());
+        DCHECK(!value->IsTheHole(isolate));
         if (receiver_return) *receiver_return = receiver;
         return value;
       case MISSING_BINDING:
@@ -923,10 +928,8 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
-  Handle<Object> value;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, value, LoadLookupSlot(name, Object::THROW_ON_ERROR));
-  return *value;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           LoadLookupSlot(name, Object::THROW_ON_ERROR));
 }
 
 
@@ -934,10 +937,7 @@
   HandleScope scope(isolate);
   DCHECK_EQ(1, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
-  Handle<Object> value;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, value, LoadLookupSlot(name, Object::DONT_THROW));
-  return *value;
+  RETURN_RESULT_OR_FAILURE(isolate, LoadLookupSlot(name, Object::DONT_THROW));
 }
 
 
@@ -1021,9 +1021,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value,
-                                     StoreLookupSlot(name, value, SLOPPY));
-  return *value;
+  RETURN_RESULT_OR_FAILURE(isolate, StoreLookupSlot(name, value, SLOPPY));
 }
 
 
@@ -1032,9 +1030,7 @@
   DCHECK_EQ(2, args.length());
   CONVERT_ARG_HANDLE_CHECKED(String, name, 0);
   CONVERT_ARG_HANDLE_CHECKED(Object, value, 1);
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, value,
-                                     StoreLookupSlot(name, value, STRICT));
-  return *value;
+  RETURN_RESULT_OR_FAILURE(isolate, StoreLookupSlot(name, value, STRICT));
 }
 
 }  // namespace internal
diff --git a/src/runtime/runtime-simd.cc b/src/runtime/runtime-simd.cc
index 9e56142..70bc950 100644
--- a/src/runtime/runtime-simd.cc
+++ b/src/runtime/runtime-simd.cc
@@ -26,6 +26,7 @@
   // A float can't represent 2^31 - 1 or 2^32 - 1 exactly, so promote the limits
   // to double. Otherwise, the limit is truncated and numbers like 2^31 or 2^32
   // get through, causing any static_cast to be undefined.
+  from = trunc(from);
   return from >= static_cast<double>(std::numeric_limits<T>::min()) &&
          from <= static_cast<double>(std::numeric_limits<T>::max());
 }
@@ -168,9 +169,19 @@
 
 // Utility macros.
 
-#define CONVERT_SIMD_LANE_ARG_CHECKED(name, index, lanes) \
-  CONVERT_INT32_ARG_CHECKED(name, index);                 \
-  RUNTIME_ASSERT(name >= 0 && name < lanes);
+// TODO(gdeepti): Fix to use ToNumber conversion once polyfill is updated.
+#define CONVERT_SIMD_LANE_ARG_CHECKED(name, index, lanes)            \
+  Handle<Object> name_object = args.at<Object>(index);               \
+  if (!name_object->IsNumber()) {                                    \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                  \
+        isolate, NewTypeError(MessageTemplate::kInvalidSimdIndex));  \
+  }                                                                  \
+  double number = name_object->Number();                             \
+  if (number < 0 || number >= lanes || !IsInt32Double(number)) {     \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                  \
+        isolate, NewRangeError(MessageTemplate::kInvalidSimdIndex)); \
+  }                                                                  \
+  uint32_t name = static_cast<uint32_t>(number);
 
 #define CONVERT_SIMD_ARG_HANDLE_THROW(Type, name, index)                \
   Handle<Type> name;                                                    \
@@ -217,8 +228,10 @@
 
 // Common functions.
 
-#define GET_NUMERIC_ARG(lane_type, name, index) \
-  CONVERT_NUMBER_ARG_HANDLE_CHECKED(a, index);  \
+#define GET_NUMERIC_ARG(lane_type, name, index)              \
+  Handle<Object> a;                                          \
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(                        \
+      isolate, a, Object::ToNumber(args.at<Object>(index))); \
   name = ConvertNumber<lane_type>(a->Number());
 
 #define GET_BOOLEAN_ARG(lane_type, name, index) \
@@ -395,10 +408,14 @@
   FUNCTION(Uint16x8, uint16_t, 16, 8) \
   FUNCTION(Uint8x16, uint8_t, 8, 16)
 
-#define CONVERT_SHIFT_ARG_CHECKED(name, index)         \
-  RUNTIME_ASSERT(args[index]->IsNumber());             \
-  int32_t signed_shift = 0;                            \
-  RUNTIME_ASSERT(args[index]->ToInt32(&signed_shift)); \
+#define CONVERT_SHIFT_ARG_CHECKED(name, index)                          \
+  Handle<Object> name_object = args.at<Object>(index);                  \
+  if (!name_object->IsNumber()) {                                       \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                     \
+        isolate, NewTypeError(MessageTemplate::kInvalidSimdOperation)); \
+  }                                                                     \
+  int32_t signed_shift = 0;                                             \
+  args[index]->ToInt32(&signed_shift);                                  \
   uint32_t name = bit_cast<uint32_t>(signed_shift);
 
 #define SIMD_LSL_FUNCTION(type, lane_type, lane_bits, lane_count) \
@@ -409,31 +426,29 @@
     CONVERT_SIMD_ARG_HANDLE_THROW(type, a, 0);                    \
     CONVERT_SHIFT_ARG_CHECKED(shift, 1);                          \
     lane_type lanes[kLaneCount] = {0};                            \
-    if (shift < lane_bits) {                                      \
-      for (int i = 0; i < kLaneCount; i++) {                      \
-        lanes[i] = a->get_lane(i) << shift;                       \
-      }                                                           \
+    shift &= lane_bits - 1;                                       \
+    for (int i = 0; i < kLaneCount; i++) {                        \
+      lanes[i] = a->get_lane(i) << shift;                         \
     }                                                             \
     Handle<type> result = isolate->factory()->New##type(lanes);   \
     return *result;                                               \
   }
 
-#define SIMD_LSR_FUNCTION(type, lane_type, lane_bits, lane_count) \
-  RUNTIME_FUNCTION(Runtime_##type##ShiftRightByScalar) {          \
-    static const int kLaneCount = lane_count;                     \
-    HandleScope scope(isolate);                                   \
-    DCHECK(args.length() == 2);                                   \
-    CONVERT_SIMD_ARG_HANDLE_THROW(type, a, 0);                    \
-    CONVERT_SHIFT_ARG_CHECKED(shift, 1);                          \
-    lane_type lanes[kLaneCount] = {0};                            \
-    if (shift < lane_bits) {                                      \
-      for (int i = 0; i < kLaneCount; i++) {                      \
-        lanes[i] = static_cast<lane_type>(                        \
-            bit_cast<lane_type>(a->get_lane(i)) >> shift);        \
-      }                                                           \
-    }                                                             \
-    Handle<type> result = isolate->factory()->New##type(lanes);   \
-    return *result;                                               \
+#define SIMD_LSR_FUNCTION(type, lane_type, lane_bits, lane_count)              \
+  RUNTIME_FUNCTION(Runtime_##type##ShiftRightByScalar) {                       \
+    static const int kLaneCount = lane_count;                                  \
+    HandleScope scope(isolate);                                                \
+    DCHECK(args.length() == 2);                                                \
+    CONVERT_SIMD_ARG_HANDLE_THROW(type, a, 0);                                 \
+    CONVERT_SHIFT_ARG_CHECKED(shift, 1);                                       \
+    lane_type lanes[kLaneCount] = {0};                                         \
+    shift &= lane_bits - 1;                                                    \
+    for (int i = 0; i < kLaneCount; i++) {                                     \
+      lanes[i] = static_cast<lane_type>(bit_cast<lane_type>(a->get_lane(i)) >> \
+                                        shift);                                \
+    }                                                                          \
+    Handle<type> result = isolate->factory()->New##type(lanes);                \
+    return *result;                                                            \
   }
 
 #define SIMD_ASR_FUNCTION(type, lane_type, lane_bits, lane_count)      \
@@ -443,7 +458,7 @@
     DCHECK(args.length() == 2);                                        \
     CONVERT_SIMD_ARG_HANDLE_THROW(type, a, 0);                         \
     CONVERT_SHIFT_ARG_CHECKED(shift, 1);                               \
-    if (shift >= lane_bits) shift = lane_bits - 1;                     \
+    shift &= lane_bits - 1;                                            \
     lane_type lanes[kLaneCount];                                       \
     for (int i = 0; i < kLaneCount; i++) {                             \
       int64_t shifted = static_cast<int64_t>(a->get_lane(i)) >> shift; \
@@ -785,8 +800,10 @@
     lane_type lanes[kLaneCount];                                               \
     for (int i = 0; i < kLaneCount; i++) {                                     \
       from_ctype a_value = a->get_lane(i);                                     \
-      if (a_value != a_value) a_value = 0;                                     \
-      RUNTIME_ASSERT(CanCast<lane_type>(a_value));                             \
+      if (a_value != a_value || !CanCast<lane_type>(a_value)) {                \
+        THROW_NEW_ERROR_RETURN_FAILURE(                                        \
+            isolate, NewRangeError(MessageTemplate::kInvalidSimdLaneValue));   \
+      }                                                                        \
       lanes[i] = static_cast<lane_type>(a_value);                              \
     }                                                                          \
     Handle<type> result = isolate->factory()->New##type(lanes);                \
@@ -863,6 +880,17 @@
   FUNCTION(Int32x4, int32_t, 4)           \
   FUNCTION(Uint32x4, uint32_t, 4)
 
+#define SIMD_COERCE_INDEX(name, i)                                            \
+  Handle<Object> length_object, number_object;                                \
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(                                         \
+      isolate, length_object, Object::ToLength(isolate, args.at<Object>(i))); \
+  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, number_object,                  \
+                                     Object::ToNumber(args.at<Object>(i)));   \
+  if (number_object->Number() != length_object->Number()) {                   \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                           \
+        isolate, NewTypeError(MessageTemplate::kInvalidSimdIndex));           \
+  }                                                                           \
+  int32_t name = number_object->Number();
 
 // Common Load and Store Functions
 
@@ -870,11 +898,14 @@
   static const int kLaneCount = lane_count;                            \
   DCHECK(args.length() == 2);                                          \
   CONVERT_SIMD_ARG_HANDLE_THROW(JSTypedArray, tarray, 0);              \
-  CONVERT_INT32_ARG_CHECKED(index, 1)                                  \
+  SIMD_COERCE_INDEX(index, 1);                                         \
   size_t bpe = tarray->element_size();                                 \
   uint32_t bytes = count * sizeof(lane_type);                          \
   size_t byte_length = NumberToSize(isolate, tarray->byte_length());   \
-  RUNTIME_ASSERT(index >= 0 && index * bpe + bytes <= byte_length);    \
+  if (index < 0 || index * bpe + bytes > byte_length) {                \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                    \
+        isolate, NewRangeError(MessageTemplate::kInvalidSimdIndex));   \
+  }                                                                    \
   size_t tarray_offset = NumberToSize(isolate, tarray->byte_offset()); \
   uint8_t* tarray_base =                                               \
       static_cast<uint8_t*>(tarray->GetBuffer()->backing_store()) +    \
@@ -883,17 +914,19 @@
   memcpy(lanes, tarray_base + index * bpe, bytes);                     \
   Handle<type> result = isolate->factory()->New##type(lanes);
 
-
 #define SIMD_STORE(type, lane_type, lane_count, count, a)              \
   static const int kLaneCount = lane_count;                            \
   DCHECK(args.length() == 3);                                          \
   CONVERT_SIMD_ARG_HANDLE_THROW(JSTypedArray, tarray, 0);              \
   CONVERT_SIMD_ARG_HANDLE_THROW(type, a, 2);                           \
-  CONVERT_INT32_ARG_CHECKED(index, 1)                                  \
+  SIMD_COERCE_INDEX(index, 1);                                         \
   size_t bpe = tarray->element_size();                                 \
   uint32_t bytes = count * sizeof(lane_type);                          \
   size_t byte_length = NumberToSize(isolate, tarray->byte_length());   \
-  RUNTIME_ASSERT(index >= 0 && index * bpe + bytes <= byte_length);    \
+  if (index < 0 || byte_length < index * bpe + bytes) {                \
+    THROW_NEW_ERROR_RETURN_FAILURE(                                    \
+        isolate, NewRangeError(MessageTemplate::kInvalidSimdIndex));   \
+  }                                                                    \
   size_t tarray_offset = NumberToSize(isolate, tarray->byte_offset()); \
   uint8_t* tarray_base =                                               \
       static_cast<uint8_t*>(tarray->GetBuffer()->backing_store()) +    \
@@ -904,7 +937,6 @@
   }                                                                    \
   memcpy(tarray_base + index * bpe, lanes, bytes);
 
-
 #define SIMD_LOAD_FUNCTION(type, lane_type, lane_count)         \
   RUNTIME_FUNCTION(Runtime_##type##Load) {                      \
     HandleScope scope(isolate);                                 \
diff --git a/src/runtime/runtime-strings.cc b/src/runtime/runtime-strings.cc
index 0f19bf3..c1f14ad 100644
--- a/src/runtime/runtime-strings.cc
+++ b/src/runtime/runtime-strings.cc
@@ -140,7 +140,7 @@
   uint32_t start_index = 0;
   if (!index->ToArrayIndex(&start_index)) return Smi::FromInt(-1);
 
-  RUNTIME_ASSERT(start_index <= static_cast<uint32_t>(sub->length()));
+  CHECK(start_index <= static_cast<uint32_t>(sub->length()));
   int position = StringMatch(isolate, sub, pat, start_index);
   return Smi::FromInt(position);
 }
@@ -313,16 +313,14 @@
   CONVERT_ARG_HANDLE_CHECKED(String, str1, 0);
   CONVERT_ARG_HANDLE_CHECKED(String, str2, 1);
   isolate->counters()->string_add_runtime()->Increment();
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, isolate->factory()->NewConsString(str1, str2));
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate,
+                           isolate->factory()->NewConsString(str1, str2));
 }
 
 
 RUNTIME_FUNCTION(Runtime_InternalizeString) {
   HandleScope handles(isolate);
-  RUNTIME_ASSERT(args.length() == 1);
+  DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(String, string, 0);
   return *isolate->factory()->InternalizeString(string);
 }
@@ -336,7 +334,7 @@
   CONVERT_ARG_HANDLE_CHECKED(JSRegExp, regexp, 1);
   CONVERT_ARG_HANDLE_CHECKED(JSArray, regexp_info, 2);
 
-  RUNTIME_ASSERT(regexp_info->HasFastObjectElements());
+  CHECK(regexp_info->HasFastObjectElements());
 
   RegExpImpl::GlobalCache global_cache(regexp, subject, isolate);
   if (global_cache.HasException()) return isolate->heap()->exception();
@@ -433,15 +431,14 @@
   CONVERT_ARG_HANDLE_CHECKED(String, special, 2);
 
   size_t actual_array_length = 0;
-  RUNTIME_ASSERT(
-      TryNumberToSize(isolate, array->length(), &actual_array_length));
-  RUNTIME_ASSERT(array_length >= 0);
-  RUNTIME_ASSERT(static_cast<size_t>(array_length) <= actual_array_length);
+  CHECK(TryNumberToSize(isolate, array->length(), &actual_array_length));
+  CHECK(array_length >= 0);
+  CHECK(static_cast<size_t>(array_length) <= actual_array_length);
 
   // This assumption is used by the slice encoding in one or two smis.
   DCHECK(Smi::kMaxValue >= String::kMaxLength);
 
-  RUNTIME_ASSERT(array->HasFastElements());
+  CHECK(array->HasFastElements());
   JSObject::EnsureCanContainHeapObjectElements(array);
 
   int special_length = special->length();
@@ -502,8 +499,8 @@
     THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewInvalidStringLengthError());
   }
   CONVERT_ARG_HANDLE_CHECKED(String, separator, 2);
-  RUNTIME_ASSERT(array->HasFastObjectElements());
-  RUNTIME_ASSERT(array_length >= 0);
+  CHECK(array->HasFastObjectElements());
+  CHECK(array_length >= 0);
 
   Handle<FixedArray> fixed_array(FixedArray::cast(array->elements()));
   if (fixed_array->length() < array_length) {
@@ -514,12 +511,12 @@
     return isolate->heap()->empty_string();
   } else if (array_length == 1) {
     Object* first = fixed_array->get(0);
-    RUNTIME_ASSERT(first->IsString());
+    CHECK(first->IsString());
     return first;
   }
 
   int separator_length = separator->length();
-  RUNTIME_ASSERT(separator_length > 0);
+  CHECK(separator_length > 0);
   int max_nof_separators =
       (String::kMaxLength + separator_length - 1) / separator_length;
   if (max_nof_separators < (array_length - 1)) {
@@ -528,7 +525,7 @@
   int length = (array_length - 1) * separator_length;
   for (int i = 0; i < array_length; i++) {
     Object* element_obj = fixed_array->get(i);
-    RUNTIME_ASSERT(element_obj->IsString());
+    CHECK(element_obj->IsString());
     String* element = String::cast(element_obj);
     int increment = element->length();
     if (increment > String::kMaxLength - length) {
@@ -550,7 +547,7 @@
   uc16* end = sink + length;
 #endif
 
-  RUNTIME_ASSERT(fixed_array->get(0)->IsString());
+  CHECK(fixed_array->get(0)->IsString());
   String* first = String::cast(fixed_array->get(0));
   String* separator_raw = *separator;
 
@@ -563,7 +560,7 @@
     String::WriteToFlat(separator_raw, sink, 0, separator_length);
     sink += separator_length;
 
-    RUNTIME_ASSERT(fixed_array->get(i)->IsString());
+    CHECK(fixed_array->get(i)->IsString());
     String* element = String::cast(fixed_array->get(i));
     int element_length = element->length();
     DCHECK(sink + element_length <= end);
@@ -642,18 +639,18 @@
   CONVERT_ARG_HANDLE_CHECKED(String, separator, 2);
   // elements_array is fast-mode JSarray of alternating positions
   // (increasing order) and strings.
-  RUNTIME_ASSERT(elements_array->HasFastSmiOrObjectElements());
+  CHECK(elements_array->HasFastSmiOrObjectElements());
   // array_length is length of original array (used to add separators);
   // separator is string to put between elements. Assumed to be non-empty.
-  RUNTIME_ASSERT(array_length > 0);
+  CHECK(array_length > 0);
 
   // Find total length of join result.
   int string_length = 0;
   bool is_one_byte = separator->IsOneByteRepresentation();
   bool overflow = false;
   CONVERT_NUMBER_CHECKED(int, elements_length, Int32, elements_array->length());
-  RUNTIME_ASSERT(elements_length <= elements_array->elements()->length());
-  RUNTIME_ASSERT((elements_length & 1) == 0);  // Even length.
+  CHECK(elements_length <= elements_array->elements()->length());
+  CHECK((elements_length & 1) == 0);  // Even length.
   FixedArray* elements = FixedArray::cast(elements_array->elements());
   {
     DisallowHeapAllocation no_gc;
@@ -1059,7 +1056,7 @@
   }
 
   Object* answer = ConvertCaseHelper(isolate, *s, *result, length, mapping);
-  if (answer->IsException() || answer->IsString()) return answer;
+  if (answer->IsException(isolate) || answer->IsString()) return answer;
 
   DCHECK(answer->IsSmi());
   length = Smi::cast(answer)->value();
@@ -1090,68 +1087,6 @@
   return ConvertCase(s, isolate, isolate->runtime_state()->to_upper_mapping());
 }
 
-
-RUNTIME_FUNCTION(Runtime_StringTrim) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 3);
-
-  CONVERT_ARG_HANDLE_CHECKED(String, string, 0);
-  CONVERT_BOOLEAN_ARG_CHECKED(trimLeft, 1);
-  CONVERT_BOOLEAN_ARG_CHECKED(trimRight, 2);
-
-  string = String::Flatten(string);
-  int length = string->length();
-
-  int left = 0;
-  UnicodeCache* unicode_cache = isolate->unicode_cache();
-  if (trimLeft) {
-    while (left < length &&
-           unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(left))) {
-      left++;
-    }
-  }
-
-  int right = length;
-  if (trimRight) {
-    while (
-        right > left &&
-        unicode_cache->IsWhiteSpaceOrLineTerminator(string->Get(right - 1))) {
-      right--;
-    }
-  }
-
-  return *isolate->factory()->NewSubString(string, left, right);
-}
-
-
-RUNTIME_FUNCTION(Runtime_TruncateString) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_HANDLE_CHECKED(SeqString, string, 0);
-  CONVERT_INT32_ARG_CHECKED(new_length, 1);
-  RUNTIME_ASSERT(new_length >= 0);
-  return *SeqString::Truncate(string, new_length);
-}
-
-
-RUNTIME_FUNCTION(Runtime_NewString) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_INT32_ARG_CHECKED(length, 0);
-  CONVERT_BOOLEAN_ARG_CHECKED(is_one_byte, 1);
-  if (length == 0) return isolate->heap()->empty_string();
-  Handle<String> result;
-  if (is_one_byte) {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, isolate->factory()->NewRawOneByteString(length));
-  } else {
-    ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-        isolate, result, isolate->factory()->NewRawTwoByteString(length));
-  }
-  return *result;
-}
-
-
 RUNTIME_FUNCTION(Runtime_StringLessThan) {
   HandleScope handle_scope(isolate);
   DCHECK_EQ(2, args.length());
@@ -1259,18 +1194,6 @@
   return isolate->heap()->empty_string();
 }
 
-
-RUNTIME_FUNCTION(Runtime_StringCharAt) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 2);
-  if (!args[0]->IsString()) return Smi::FromInt(0);
-  if (!args[1]->IsNumber()) return Smi::FromInt(0);
-  if (std::isinf(args.number_at(1))) return isolate->heap()->empty_string();
-  Object* code = __RT_impl_Runtime_StringCharCodeAtRT(args, isolate);
-  if (code->IsNaN()) return isolate->heap()->empty_string();
-  return __RT_impl_Runtime_StringCharFromCode(Arguments(1, &code), isolate);
-}
-
 RUNTIME_FUNCTION(Runtime_ExternalStringGetChar) {
   SealHandleScope shs(isolate);
   DCHECK_EQ(2, args.length());
@@ -1279,46 +1202,6 @@
   return Smi::FromInt(string->Get(index));
 }
 
-RUNTIME_FUNCTION(Runtime_OneByteSeqStringGetChar) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_CHECKED(SeqOneByteString, string, 0);
-  CONVERT_INT32_ARG_CHECKED(index, 1);
-  return Smi::FromInt(string->SeqOneByteStringGet(index));
-}
-
-
-RUNTIME_FUNCTION(Runtime_OneByteSeqStringSetChar) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_INT32_ARG_CHECKED(index, 0);
-  CONVERT_INT32_ARG_CHECKED(value, 1);
-  CONVERT_ARG_CHECKED(SeqOneByteString, string, 2);
-  string->SeqOneByteStringSet(index, value);
-  return string;
-}
-
-
-RUNTIME_FUNCTION(Runtime_TwoByteSeqStringGetChar) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 2);
-  CONVERT_ARG_CHECKED(SeqTwoByteString, string, 0);
-  CONVERT_INT32_ARG_CHECKED(index, 1);
-  return Smi::FromInt(string->SeqTwoByteStringGet(index));
-}
-
-
-RUNTIME_FUNCTION(Runtime_TwoByteSeqStringSetChar) {
-  SealHandleScope shs(isolate);
-  DCHECK(args.length() == 3);
-  CONVERT_INT32_ARG_CHECKED(index, 0);
-  CONVERT_INT32_ARG_CHECKED(value, 1);
-  CONVERT_ARG_CHECKED(SeqTwoByteString, string, 2);
-  string->SeqTwoByteStringSet(index, value);
-  return string;
-}
-
-
 RUNTIME_FUNCTION(Runtime_StringCharCodeAt) {
   SealHandleScope shs(isolate);
   DCHECK(args.length() == 2);
diff --git a/src/runtime/runtime-symbol.cc b/src/runtime/runtime-symbol.cc
index 234b456..300a643 100644
--- a/src/runtime/runtime-symbol.cc
+++ b/src/runtime/runtime-symbol.cc
@@ -16,7 +16,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, name, 0);
-  RUNTIME_ASSERT(name->IsString() || name->IsUndefined());
+  CHECK(name->IsString() || name->IsUndefined(isolate));
   Handle<Symbol> symbol = isolate->factory()->NewSymbol();
   if (name->IsString()) symbol->set_name(*name);
   return *symbol;
@@ -27,7 +27,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(Object, name, 0);
-  RUNTIME_ASSERT(name->IsString() || name->IsUndefined());
+  CHECK(name->IsString() || name->IsUndefined(isolate));
   Handle<Symbol> symbol = isolate->factory()->NewPrivateSymbol();
   if (name->IsString()) symbol->set_name(*name);
   return *symbol;
@@ -52,9 +52,7 @@
     builder.AppendString(handle(String::cast(symbol->name()), isolate));
   }
   builder.AppendCharacter(')');
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, result, builder.Finish());
-  return *result;
+  RETURN_RESULT_OR_FAILURE(isolate, builder.Finish());
 }
 
 
diff --git a/src/runtime/runtime-test.cc b/src/runtime/runtime-test.cc
index cc15d0e..9ec29b9 100644
--- a/src/runtime/runtime-test.cc
+++ b/src/runtime/runtime-test.cc
@@ -14,6 +14,15 @@
 namespace v8 {
 namespace internal {
 
+RUNTIME_FUNCTION(Runtime_ConstructDouble) {
+  HandleScope scope(isolate);
+  DCHECK(args.length() == 2);
+  CONVERT_NUMBER_CHECKED(uint32_t, hi, Uint32, args[0]);
+  CONVERT_NUMBER_CHECKED(uint32_t, lo, Uint32, args[1]);
+  uint64_t result = (static_cast<uint64_t>(hi) << 32) | lo;
+  return *isolate->factory()->NewNumber(uint64_to_double(result));
+}
+
 RUNTIME_FUNCTION(Runtime_DeoptimizeFunction) {
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
@@ -258,7 +267,7 @@
   HandleScope scope(isolate);
   DCHECK(args.length() == 1);
   CONVERT_ARG_HANDLE_CHECKED(JSFunction, function, 0);
-  function->shared()->ClearTypeFeedbackInfo();
+  function->ClearTypeFeedbackInfo();
   Code* unoptimized = function->shared()->code();
   if (unoptimized->kind() == Code::FUNCTION) {
     unoptimized->ClearInlineCaches();
diff --git a/src/runtime/runtime-typedarray.cc b/src/runtime/runtime-typedarray.cc
index 14b1207..37b612d 100644
--- a/src/runtime/runtime-typedarray.cc
+++ b/src/runtime/runtime-typedarray.cc
@@ -36,17 +36,17 @@
                                   "ArrayBuffer.prototype.slice")));
   }
 
-  RUNTIME_ASSERT(!source.is_identical_to(target));
+  CHECK(!source.is_identical_to(target));
   size_t start = 0, target_length = 0;
-  RUNTIME_ASSERT(TryNumberToSize(isolate, *first, &start));
-  RUNTIME_ASSERT(TryNumberToSize(isolate, *new_length, &target_length));
-  RUNTIME_ASSERT(NumberToSize(isolate, target->byte_length()) >= target_length);
+  CHECK(TryNumberToSize(isolate, *first, &start));
+  CHECK(TryNumberToSize(isolate, *new_length, &target_length));
+  CHECK(NumberToSize(isolate, target->byte_length()) >= target_length);
 
   if (target_length == 0) return isolate->heap()->undefined_value();
 
   size_t source_byte_length = NumberToSize(isolate, source->byte_length());
-  RUNTIME_ASSERT(start <= source_byte_length);
-  RUNTIME_ASSERT(source_byte_length - start >= target_length);
+  CHECK(start <= source_byte_length);
+  CHECK(source_byte_length - start >= target_length);
   uint8_t* source_data = reinterpret_cast<uint8_t*>(source->backing_store());
   uint8_t* target_data = reinterpret_cast<uint8_t*>(target->backing_store());
   CopyBytes(target_data, source_data + start, target_length);
@@ -63,7 +63,7 @@
     return isolate->heap()->undefined_value();
   }
   // Shared array buffers should never be neutered.
-  RUNTIME_ASSERT(!array_buffer->is_shared());
+  CHECK(!array_buffer->is_shared());
   DCHECK(!array_buffer->is_external());
   void* backing_store = array_buffer->backing_store();
   size_t byte_length = NumberToSize(isolate, array_buffer->byte_length());
@@ -105,32 +105,32 @@
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(byte_length_object, 4);
   CONVERT_BOOLEAN_ARG_CHECKED(initialize, 5);
 
-  RUNTIME_ASSERT(arrayId >= Runtime::ARRAY_ID_FIRST &&
-                 arrayId <= Runtime::ARRAY_ID_LAST);
+  CHECK(arrayId >= Runtime::ARRAY_ID_FIRST &&
+        arrayId <= Runtime::ARRAY_ID_LAST);
 
   ExternalArrayType array_type = kExternalInt8Array;  // Bogus initialization.
   size_t element_size = 1;                            // Bogus initialization.
   ElementsKind fixed_elements_kind = INT8_ELEMENTS;  // Bogus initialization.
   Runtime::ArrayIdToTypeAndSize(arrayId, &array_type, &fixed_elements_kind,
                                 &element_size);
-  RUNTIME_ASSERT(holder->map()->elements_kind() == fixed_elements_kind);
+  CHECK(holder->map()->elements_kind() == fixed_elements_kind);
 
   size_t byte_offset = 0;
   size_t byte_length = 0;
-  RUNTIME_ASSERT(TryNumberToSize(isolate, *byte_offset_object, &byte_offset));
-  RUNTIME_ASSERT(TryNumberToSize(isolate, *byte_length_object, &byte_length));
+  CHECK(TryNumberToSize(isolate, *byte_offset_object, &byte_offset));
+  CHECK(TryNumberToSize(isolate, *byte_length_object, &byte_length));
 
   if (maybe_buffer->IsJSArrayBuffer()) {
     Handle<JSArrayBuffer> buffer = Handle<JSArrayBuffer>::cast(maybe_buffer);
     size_t array_buffer_byte_length =
         NumberToSize(isolate, buffer->byte_length());
-    RUNTIME_ASSERT(byte_offset <= array_buffer_byte_length);
-    RUNTIME_ASSERT(array_buffer_byte_length - byte_offset >= byte_length);
+    CHECK(byte_offset <= array_buffer_byte_length);
+    CHECK(array_buffer_byte_length - byte_offset >= byte_length);
   } else {
-    RUNTIME_ASSERT(maybe_buffer->IsNull());
+    CHECK(maybe_buffer->IsNull(isolate));
   }
 
-  RUNTIME_ASSERT(byte_length % element_size == 0);
+  CHECK(byte_length % element_size == 0);
   size_t length = byte_length / element_size;
 
   if (length > static_cast<unsigned>(Smi::kMaxValue)) {
@@ -150,7 +150,7 @@
   holder->set_byte_offset(*byte_offset_object);
   holder->set_byte_length(*byte_length_object);
 
-  if (!maybe_buffer->IsNull()) {
+  if (!maybe_buffer->IsNull(isolate)) {
     Handle<JSArrayBuffer> buffer = Handle<JSArrayBuffer>::cast(maybe_buffer);
     holder->set_buffer(*buffer);
 
@@ -186,8 +186,8 @@
   CONVERT_ARG_HANDLE_CHECKED(Object, source, 2);
   CONVERT_NUMBER_ARG_HANDLE_CHECKED(length_obj, 3);
 
-  RUNTIME_ASSERT(arrayId >= Runtime::ARRAY_ID_FIRST &&
-                 arrayId <= Runtime::ARRAY_ID_LAST);
+  CHECK(arrayId >= Runtime::ARRAY_ID_FIRST &&
+        arrayId <= Runtime::ARRAY_ID_LAST);
 
   ExternalArrayType array_type = kExternalInt8Array;  // Bogus initialization.
   size_t element_size = 1;                            // Bogus initialization.
@@ -195,7 +195,7 @@
   Runtime::ArrayIdToTypeAndSize(arrayId, &array_type, &fixed_elements_kind,
                                 &element_size);
 
-  RUNTIME_ASSERT(holder->map()->elements_kind() == fixed_elements_kind);
+  CHECK(holder->map()->elements_kind() == fixed_elements_kind);
 
   Handle<JSArrayBuffer> buffer = isolate->factory()->NewJSArrayBuffer();
   size_t length = 0;
@@ -204,7 +204,7 @@
     length_obj = handle(JSTypedArray::cast(*source)->length(), isolate);
     length = JSTypedArray::cast(*source)->length_value();
   } else {
-    RUNTIME_ASSERT(TryNumberToSize(isolate, *length_obj, &length));
+    CHECK(TryNumberToSize(isolate, *length_obj, &length));
   }
 
   if ((length > static_cast<unsigned>(Smi::kMaxValue)) ||
@@ -284,7 +284,6 @@
 BUFFER_VIEW_GETTER(ArrayBufferView, ByteLength, byte_length)
 BUFFER_VIEW_GETTER(ArrayBufferView, ByteOffset, byte_offset)
 BUFFER_VIEW_GETTER(TypedArray, Length, length)
-BUFFER_VIEW_GETTER(DataView, Buffer, buffer)
 
 #undef BUFFER_VIEW_GETTER
 
@@ -329,7 +328,7 @@
   Handle<JSTypedArray> target(JSTypedArray::cast(*target_obj));
   Handle<JSTypedArray> source(JSTypedArray::cast(*source_obj));
   size_t offset = 0;
-  RUNTIME_ASSERT(TryNumberToSize(isolate, *offset_obj, &offset));
+  CHECK(TryNumberToSize(isolate, *offset_obj, &offset));
   size_t target_length = target->length_value();
   size_t source_length = source->length_value();
   size_t target_byte_length = NumberToSize(isolate, target->byte_length());
diff --git a/src/runtime/runtime-uri.cc b/src/runtime/runtime-uri.cc
deleted file mode 100644
index e64e9dc..0000000
--- a/src/runtime/runtime-uri.cc
+++ /dev/null
@@ -1,293 +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/conversions.h"
-#include "src/isolate-inl.h"
-#include "src/objects-inl.h"
-#include "src/string-search.h"
-#include "src/utils.h"
-
-namespace v8 {
-namespace internal {
-
-class URIUnescape : public AllStatic {
- public:
-  template <typename Char>
-  MUST_USE_RESULT static MaybeHandle<String> Unescape(Isolate* isolate,
-                                                      Handle<String> source);
-
- private:
-  static const signed char kHexValue['g'];
-
-  template <typename Char>
-  MUST_USE_RESULT static MaybeHandle<String> UnescapeSlow(Isolate* isolate,
-                                                          Handle<String> string,
-                                                          int start_index);
-
-  static INLINE(int TwoDigitHex(uint16_t character1, uint16_t character2));
-
-  template <typename Char>
-  static INLINE(int UnescapeChar(Vector<const Char> vector, int i, int length,
-                                 int* step));
-};
-
-
-const signed char URIUnescape::kHexValue[] = {
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -0, 1,  2,  3,  4,  5,
-    6,  7,  8,  9,  -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15};
-
-
-template <typename Char>
-MaybeHandle<String> URIUnescape::Unescape(Isolate* isolate,
-                                          Handle<String> source) {
-  int index;
-  {
-    DisallowHeapAllocation no_allocation;
-    StringSearch<uint8_t, Char> search(isolate, STATIC_CHAR_VECTOR("%"));
-    index = search.Search(source->GetCharVector<Char>(), 0);
-    if (index < 0) return source;
-  }
-  return UnescapeSlow<Char>(isolate, source, index);
-}
-
-
-template <typename Char>
-MaybeHandle<String> URIUnescape::UnescapeSlow(Isolate* isolate,
-                                              Handle<String> string,
-                                              int start_index) {
-  bool one_byte = true;
-  int length = string->length();
-
-  int unescaped_length = 0;
-  {
-    DisallowHeapAllocation no_allocation;
-    Vector<const Char> vector = string->GetCharVector<Char>();
-    for (int i = start_index; i < length; unescaped_length++) {
-      int step;
-      if (UnescapeChar(vector, i, length, &step) >
-          String::kMaxOneByteCharCode) {
-        one_byte = false;
-      }
-      i += step;
-    }
-  }
-
-  DCHECK(start_index < length);
-  Handle<String> first_part =
-      isolate->factory()->NewProperSubString(string, 0, start_index);
-
-  int dest_position = 0;
-  Handle<String> second_part;
-  DCHECK(unescaped_length <= String::kMaxLength);
-  if (one_byte) {
-    Handle<SeqOneByteString> dest = isolate->factory()
-                                        ->NewRawOneByteString(unescaped_length)
-                                        .ToHandleChecked();
-    DisallowHeapAllocation no_allocation;
-    Vector<const Char> vector = string->GetCharVector<Char>();
-    for (int i = start_index; i < length; dest_position++) {
-      int step;
-      dest->SeqOneByteStringSet(dest_position,
-                                UnescapeChar(vector, i, length, &step));
-      i += step;
-    }
-    second_part = dest;
-  } else {
-    Handle<SeqTwoByteString> dest = isolate->factory()
-                                        ->NewRawTwoByteString(unescaped_length)
-                                        .ToHandleChecked();
-    DisallowHeapAllocation no_allocation;
-    Vector<const Char> vector = string->GetCharVector<Char>();
-    for (int i = start_index; i < length; dest_position++) {
-      int step;
-      dest->SeqTwoByteStringSet(dest_position,
-                                UnescapeChar(vector, i, length, &step));
-      i += step;
-    }
-    second_part = dest;
-  }
-  return isolate->factory()->NewConsString(first_part, second_part);
-}
-
-
-int URIUnescape::TwoDigitHex(uint16_t character1, uint16_t character2) {
-  if (character1 > 'f') return -1;
-  int hi = kHexValue[character1];
-  if (hi == -1) return -1;
-  if (character2 > 'f') return -1;
-  int lo = kHexValue[character2];
-  if (lo == -1) return -1;
-  return (hi << 4) + lo;
-}
-
-
-template <typename Char>
-int URIUnescape::UnescapeChar(Vector<const Char> vector, int i, int length,
-                              int* step) {
-  uint16_t character = vector[i];
-  int32_t hi = 0;
-  int32_t lo = 0;
-  if (character == '%' && i <= length - 6 && vector[i + 1] == 'u' &&
-      (hi = TwoDigitHex(vector[i + 2], vector[i + 3])) != -1 &&
-      (lo = TwoDigitHex(vector[i + 4], vector[i + 5])) != -1) {
-    *step = 6;
-    return (hi << 8) + lo;
-  } else if (character == '%' && i <= length - 3 &&
-             (lo = TwoDigitHex(vector[i + 1], vector[i + 2])) != -1) {
-    *step = 3;
-    return lo;
-  } else {
-    *step = 1;
-    return character;
-  }
-}
-
-
-class URIEscape : public AllStatic {
- public:
-  template <typename Char>
-  MUST_USE_RESULT static MaybeHandle<String> Escape(Isolate* isolate,
-                                                    Handle<String> string);
-
- private:
-  static const char kHexChars[17];
-  static const char kNotEscaped[256];
-
-  static bool IsNotEscaped(uint16_t c) { return kNotEscaped[c] != 0; }
-};
-
-
-const char URIEscape::kHexChars[] = "0123456789ABCDEF";
-
-
-// kNotEscaped is generated by the following:
-//
-// #!/bin/perl
-// for (my $i = 0; $i < 256; $i++) {
-//   print "\n" if $i % 16 == 0;
-//   my $c = chr($i);
-//   my $escaped = 1;
-//   $escaped = 0 if $c =~ m#[A-Za-z0-9@*_+./-]#;
-//   print $escaped ? "0, " : "1, ";
-// }
-
-const char URIEscape::kNotEscaped[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1,
-    0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
-    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-
-
-template <typename Char>
-MaybeHandle<String> URIEscape::Escape(Isolate* isolate, Handle<String> string) {
-  DCHECK(string->IsFlat());
-  int escaped_length = 0;
-  int length = string->length();
-
-  {
-    DisallowHeapAllocation no_allocation;
-    Vector<const Char> vector = string->GetCharVector<Char>();
-    for (int i = 0; i < length; i++) {
-      uint16_t c = vector[i];
-      if (c >= 256) {
-        escaped_length += 6;
-      } else if (IsNotEscaped(c)) {
-        escaped_length++;
-      } else {
-        escaped_length += 3;
-      }
-
-      // We don't allow strings that are longer than a maximal length.
-      DCHECK(String::kMaxLength < 0x7fffffff - 6);     // Cannot overflow.
-      if (escaped_length > String::kMaxLength) break;  // Provoke exception.
-    }
-  }
-
-  // No length change implies no change.  Return original string if no change.
-  if (escaped_length == length) return string;
-
-  Handle<SeqOneByteString> dest;
-  ASSIGN_RETURN_ON_EXCEPTION(
-      isolate, dest, isolate->factory()->NewRawOneByteString(escaped_length),
-      String);
-  int dest_position = 0;
-
-  {
-    DisallowHeapAllocation no_allocation;
-    Vector<const Char> vector = string->GetCharVector<Char>();
-    for (int i = 0; i < length; i++) {
-      uint16_t c = vector[i];
-      if (c >= 256) {
-        dest->SeqOneByteStringSet(dest_position, '%');
-        dest->SeqOneByteStringSet(dest_position + 1, 'u');
-        dest->SeqOneByteStringSet(dest_position + 2, kHexChars[c >> 12]);
-        dest->SeqOneByteStringSet(dest_position + 3, kHexChars[(c >> 8) & 0xf]);
-        dest->SeqOneByteStringSet(dest_position + 4, kHexChars[(c >> 4) & 0xf]);
-        dest->SeqOneByteStringSet(dest_position + 5, kHexChars[c & 0xf]);
-        dest_position += 6;
-      } else if (IsNotEscaped(c)) {
-        dest->SeqOneByteStringSet(dest_position, c);
-        dest_position++;
-      } else {
-        dest->SeqOneByteStringSet(dest_position, '%');
-        dest->SeqOneByteStringSet(dest_position + 1, kHexChars[c >> 4]);
-        dest->SeqOneByteStringSet(dest_position + 2, kHexChars[c & 0xf]);
-        dest_position += 3;
-      }
-    }
-  }
-
-  return dest;
-}
-
-
-RUNTIME_FUNCTION(Runtime_URIEscape) {
-  HandleScope scope(isolate);
-  DCHECK_EQ(1, args.length());
-  CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<String> source;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, source,
-                                     Object::ToString(isolate, input));
-  source = String::Flatten(source);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, source->IsOneByteRepresentationUnderneath()
-                           ? URIEscape::Escape<uint8_t>(isolate, source)
-                           : URIEscape::Escape<uc16>(isolate, source));
-  return *result;
-}
-
-
-RUNTIME_FUNCTION(Runtime_URIUnescape) {
-  HandleScope scope(isolate);
-  DCHECK(args.length() == 1);
-  CONVERT_ARG_HANDLE_CHECKED(Object, input, 0);
-  Handle<String> source;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(isolate, source,
-                                     Object::ToString(isolate, input));
-  source = String::Flatten(source);
-  Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result, source->IsOneByteRepresentationUnderneath()
-                           ? URIUnescape::Unescape<uint8_t>(isolate, source)
-                           : URIUnescape::Unescape<uc16>(isolate, source));
-  return *result;
-}
-
-}  // namespace internal
-}  // namespace v8
diff --git a/src/runtime/runtime-utils.h b/src/runtime/runtime-utils.h
index 17c78d5..5cdf043 100644
--- a/src/runtime/runtime-utils.h
+++ b/src/runtime/runtime-utils.h
@@ -21,15 +21,6 @@
     }                                              \
   } while (0)
 
-#define RUNTIME_ASSERT_HANDLIFIED(value, T)        \
-  do {                                             \
-    if (!(value)) {                                \
-      V8_RuntimeError(__FILE__, __LINE__, #value); \
-      isolate->ThrowIllegalOperation();            \
-      return MaybeHandle<T>();                     \
-    }                                              \
-  } while (0)
-
 #else
 
 #define RUNTIME_ASSERT(value)                  \
@@ -39,14 +30,6 @@
     }                                          \
   } while (0)
 
-#define RUNTIME_ASSERT_HANDLIFIED(value, T) \
-  do {                                      \
-    if (!(value)) {                         \
-      isolate->ThrowIllegalOperation();     \
-      return MaybeHandle<T>();              \
-    }                                       \
-  } while (0)
-
 #endif
 
 // Cast the given object to a value of the specified type and store
@@ -69,7 +52,7 @@
 // and return.
 #define CONVERT_BOOLEAN_ARG_CHECKED(name, index) \
   RUNTIME_ASSERT(args[index]->IsBoolean());      \
-  bool name = args[index]->IsTrue();
+  bool name = args[index]->IsTrue(isolate);
 
 // Cast the given argument to a Smi and store its value in an int variable
 // with the given name.  If the argument is not a Smi call IllegalOperation
diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h
index 2c80280..e325d4f 100644
--- a/src/runtime/runtime.h
+++ b/src/runtime/runtime.h
@@ -39,10 +39,9 @@
   F(MoveArrayContents, 2, 1)         \
   F(EstimateNumberOfElements, 1, 1)  \
   F(GetArrayKeys, 2, 1)              \
-  F(ArrayConstructor, -1, 1)         \
   F(NewArray, -1 /* >= 3 */, 1)      \
-  F(InternalArrayConstructor, -1, 1) \
   F(ArrayPush, -1, 1)                \
+  F(FunctionBind, -1, 1)             \
   F(NormalizeElements, 1, 1)         \
   F(GrowArrayElements, 2, 1)         \
   F(HasComplexElements, 1, 1)        \
@@ -135,56 +134,64 @@
   F(DateCurrentTime, 0, 1)         \
   F(ThrowNotDateError, 0, 1)
 
-#define FOR_EACH_INTRINSIC_DEBUG(F)            \
-  F(HandleDebuggerStatement, 0, 1)             \
-  F(DebugBreak, 1, 1)                          \
-  F(DebugBreakOnBytecode, 1, 1)                \
-  F(SetDebugEventListener, 2, 1)               \
-  F(ScheduleBreak, 0, 1)                       \
-  F(DebugGetInternalProperties, 1, 1)          \
-  F(DebugGetPropertyDetails, 2, 1)             \
-  F(DebugGetProperty, 2, 1)                    \
-  F(DebugPropertyTypeFromDetails, 1, 1)        \
-  F(DebugPropertyAttributesFromDetails, 1, 1)  \
-  F(CheckExecutionState, 1, 1)                 \
-  F(GetFrameCount, 1, 1)                       \
-  F(GetFrameDetails, 2, 1)                     \
-  F(GetScopeCount, 2, 1)                       \
-  F(GetScopeDetails, 4, 1)                     \
-  F(GetAllScopesDetails, 4, 1)                 \
-  F(GetFunctionScopeCount, 1, 1)               \
-  F(GetFunctionScopeDetails, 2, 1)             \
-  F(SetScopeVariableValue, 6, 1)               \
-  F(DebugPrintScopes, 0, 1)                    \
-  F(SetBreakPointsActive, 1, 1)                \
-  F(GetBreakLocations, 2, 1)                   \
-  F(SetFunctionBreakPoint, 3, 1)               \
-  F(SetScriptBreakPoint, 4, 1)                 \
-  F(ClearBreakPoint, 1, 1)                     \
-  F(ChangeBreakOnException, 2, 1)              \
-  F(IsBreakOnException, 1, 1)                  \
-  F(PrepareStep, 2, 1)                         \
-  F(ClearStepping, 0, 1)                       \
-  F(DebugEvaluate, 6, 1)                       \
-  F(DebugEvaluateGlobal, 4, 1)                 \
-  F(DebugGetLoadedScripts, 0, 1)               \
-  F(DebugReferencedBy, 3, 1)                   \
-  F(DebugConstructedBy, 2, 1)                  \
-  F(DebugGetPrototype, 1, 1)                   \
-  F(DebugSetScriptSource, 2, 1)                \
-  F(FunctionGetInferredName, 1, 1)             \
-  F(FunctionGetDebugName, 1, 1)                \
-  F(GetFunctionCodePositionFromSource, 2, 1)   \
-  F(ExecuteInDebugContext, 1, 1)               \
-  F(GetDebugContext, 0, 1)                     \
-  F(CollectGarbage, 1, 1)                      \
-  F(GetHeapUsage, 0, 1)                        \
-  F(GetScript, 1, 1)                           \
-  F(DebugPrepareStepInIfStepping, 1, 1)        \
-  F(DebugPushPromise, 2, 1)                    \
-  F(DebugPopPromise, 0, 1)                     \
-  F(DebugAsyncTaskEvent, 1, 1)                 \
-  F(DebugIsActive, 0, 1)                       \
+#define FOR_EACH_INTRINSIC_DEBUG(F)             \
+  F(HandleDebuggerStatement, 0, 1)              \
+  F(DebugBreak, 1, 1)                           \
+  F(DebugBreakOnBytecode, 1, 1)                 \
+  F(SetDebugEventListener, 2, 1)                \
+  F(ScheduleBreak, 0, 1)                        \
+  F(DebugGetInternalProperties, 1, 1)           \
+  F(DebugGetPropertyDetails, 2, 1)              \
+  F(DebugGetProperty, 2, 1)                     \
+  F(DebugPropertyTypeFromDetails, 1, 1)         \
+  F(DebugPropertyAttributesFromDetails, 1, 1)   \
+  F(CheckExecutionState, 1, 1)                  \
+  F(GetFrameCount, 1, 1)                        \
+  F(GetFrameDetails, 2, 1)                      \
+  F(GetScopeCount, 2, 1)                        \
+  F(GetScopeDetails, 4, 1)                      \
+  F(GetAllScopesDetails, 4, 1)                  \
+  F(GetFunctionScopeCount, 1, 1)                \
+  F(GetFunctionScopeDetails, 2, 1)              \
+  F(SetScopeVariableValue, 6, 1)                \
+  F(DebugPrintScopes, 0, 1)                     \
+  F(SetBreakPointsActive, 1, 1)                 \
+  F(GetBreakLocations, 2, 1)                    \
+  F(SetFunctionBreakPoint, 3, 1)                \
+  F(SetScriptBreakPoint, 4, 1)                  \
+  F(ClearBreakPoint, 1, 1)                      \
+  F(ChangeBreakOnException, 2, 1)               \
+  F(IsBreakOnException, 1, 1)                   \
+  F(PrepareStep, 2, 1)                          \
+  F(ClearStepping, 0, 1)                        \
+  F(DebugEvaluate, 6, 1)                        \
+  F(DebugEvaluateGlobal, 4, 1)                  \
+  F(DebugGetLoadedScripts, 0, 1)                \
+  F(DebugReferencedBy, 3, 1)                    \
+  F(DebugConstructedBy, 2, 1)                   \
+  F(DebugGetPrototype, 1, 1)                    \
+  F(DebugSetScriptSource, 2, 1)                 \
+  F(FunctionGetInferredName, 1, 1)              \
+  F(FunctionGetDebugName, 1, 1)                 \
+  F(GetFunctionCodePositionFromSource, 2, 1)    \
+  F(ExecuteInDebugContext, 1, 1)                \
+  F(GetDebugContext, 0, 1)                      \
+  F(CollectGarbage, 1, 1)                       \
+  F(GetHeapUsage, 0, 1)                         \
+  F(GetScript, 1, 1)                            \
+  F(ScriptLineCount, 1, 1)                      \
+  F(ScriptLineStartPosition, 2, 1)              \
+  F(ScriptLineEndPosition, 2, 1)                \
+  F(ScriptLocationFromLine, 4, 1)               \
+  F(ScriptPositionInfo, 3, 1)                   \
+  F(ScriptSourceLine, 2, 1)                     \
+  F(DebugPrepareStepInIfStepping, 1, 1)         \
+  F(DebugPrepareStepInSuspendedGenerator, 0, 1) \
+  F(DebugRecordAsyncFunction, 1, 1)             \
+  F(DebugPushPromise, 2, 1)                     \
+  F(DebugPopPromise, 0, 1)                      \
+  F(DebugAsyncTaskEvent, 1, 1)                  \
+  F(DebugIsActive, 0, 1)                        \
   F(DebugBreakInOptimizedCode, 0, 1)
 
 #define FOR_EACH_INTRINSIC_FORIN(F) \
@@ -229,14 +236,10 @@
   F(GeneratorClose, 1, 1)               \
   F(GeneratorGetFunction, 1, 1)         \
   F(GeneratorGetReceiver, 1, 1)         \
-  F(GeneratorGetInput, 1, 1)            \
-  F(GeneratorSetContext, 1, 1)          \
+  F(GeneratorGetInputOrDebugPos, 1, 1)  \
   F(GeneratorGetContinuation, 1, 1)     \
-  F(GeneratorSetContinuation, 2, 1)     \
   F(GeneratorGetSourcePosition, 1, 1)   \
-  F(GeneratorGetResumeMode, 1, 1)       \
-  F(GeneratorLoadRegister, 2, 1)        \
-  F(GeneratorStoreRegister, 3, 1)
+  F(GeneratorGetResumeMode, 1, 1)
 
 #ifdef V8_I18N_SUPPORT
 #define FOR_EACH_INTRINSIC_I18N(F)           \
@@ -265,7 +268,8 @@
   F(BreakIteratorBreakType, 1, 1)            \
   F(StringToLowerCaseI18N, 1, 1)             \
   F(StringToUpperCaseI18N, 1, 1)             \
-  F(StringLocaleConvertCase, 3, 1)
+  F(StringLocaleConvertCase, 3, 1)           \
+  F(DateCacheVersion, 0, 1)
 #else
 #define FOR_EACH_INTRINSIC_I18N(F)
 #endif
@@ -296,6 +300,8 @@
   F(Interrupt, 0, 1)                                \
   F(AllocateInNewSpace, 1, 1)                       \
   F(AllocateInTargetSpace, 2, 1)                    \
+  F(AllocateSeqOneByteString, 1, 1)                 \
+  F(AllocateSeqTwoByteString, 1, 1)                 \
   F(CollectStackTrace, 2, 1)                        \
   F(MessageGetStartPosition, 1, 1)                  \
   F(MessageGetScript, 1, 1)                         \
@@ -320,14 +326,8 @@
   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)         \
-  F(BasicJSONStringify, 1, 1)      \
-  F(ParseJson, 1, 1)
-
+  F(OrdinaryHasInstance, 2, 1)                      \
+  F(IsWasmObject, 1, 1)
 
 #define FOR_EACH_INTRINSIC_LITERALS(F) \
   F(CreateRegExpLiteral, 4, 1)         \
@@ -351,13 +351,8 @@
 
 
 #define FOR_EACH_INTRINSIC_MATHS(F) \
-  F(MathLogRT, 1, 1)                \
   F(DoubleHi, 1, 1)                 \
   F(DoubleLo, 1, 1)                 \
-  F(ConstructDouble, 2, 1)          \
-  F(RemPiO2, 2, 1)                  \
-  F(MathAtan2, 2, 1)                \
-  F(MathExpRT, 1, 1)                \
   F(MathPow, 2, 1)                  \
   F(MathPowRT, 2, 1)                \
   F(GenerateRandomNumbers, 1, 1)
@@ -374,7 +369,6 @@
   F(StringParseFloat, 1, 1)            \
   F(NumberToString, 1, 1)              \
   F(NumberToStringSkipCache, 1, 1)     \
-  F(NumberToIntegerMapMinusZero, 1, 1) \
   F(NumberToSmi, 1, 1)                 \
   F(SmiLexicographicCompare, 2, 1)     \
   F(MaxSmi, 0, 1)                      \
@@ -391,7 +385,6 @@
   F(OptimizeObjectForAddingMultipleProperties, 2, 1) \
   F(GetProperty, 2, 1)                               \
   F(KeyedGetProperty, 2, 1)                          \
-  F(LoadGlobalViaContext, 1, 1)                      \
   F(StoreGlobalViaContext_Sloppy, 2, 1)              \
   F(StoreGlobalViaContext_Strict, 2, 1)              \
   F(AddNamedProperty, 4, 1)                          \
@@ -479,30 +472,31 @@
   F(RegExpExecReThrow, 4, 1)                   \
   F(IsRegExp, 1, 1)
 
-#define FOR_EACH_INTRINSIC_SCOPES(F)       \
-  F(ThrowConstAssignError, 0, 1)           \
-  F(DeclareGlobals, 2, 1)                  \
-  F(InitializeVarGlobal, 3, 1)             \
-  F(InitializeConstGlobal, 2, 1)           \
-  F(DeclareLookupSlot, 3, 1)               \
-  F(NewSloppyArguments_Generic, 1, 1)      \
-  F(NewStrictArguments, 1, 1)              \
-  F(NewRestParameter, 1, 1)                \
-  F(NewSloppyArguments, 3, 1)              \
-  F(NewClosure, 1, 1)                      \
-  F(NewClosure_Tenured, 1, 1)              \
-  F(NewScriptContext, 2, 1)                \
-  F(NewFunctionContext, 1, 1)              \
-  F(PushWithContext, 2, 1)                 \
-  F(PushCatchContext, 3, 1)                \
-  F(PushBlockContext, 2, 1)                \
-  F(IsJSModule, 1, 1)                      \
-  F(PushModuleContext, 2, 1)               \
-  F(DeclareModules, 1, 1)                  \
-  F(DeleteLookupSlot, 1, 1)                \
-  F(LoadLookupSlot, 1, 1)                  \
-  F(LoadLookupSlotInsideTypeof, 1, 1)      \
-  F(StoreLookupSlot_Sloppy, 2, 1)          \
+#define FOR_EACH_INTRINSIC_SCOPES(F)  \
+  F(ThrowConstAssignError, 0, 1)      \
+  F(DeclareGlobals, 2, 1)             \
+  F(InitializeVarGlobal, 3, 1)        \
+  F(InitializeConstGlobal, 2, 1)      \
+  F(DeclareEvalFunction, 2, 1)        \
+  F(DeclareEvalVar, 1, 1)             \
+  F(NewSloppyArguments_Generic, 1, 1) \
+  F(NewStrictArguments, 1, 1)         \
+  F(NewRestParameter, 1, 1)           \
+  F(NewSloppyArguments, 3, 1)         \
+  F(NewClosure, 1, 1)                 \
+  F(NewClosure_Tenured, 1, 1)         \
+  F(NewScriptContext, 2, 1)           \
+  F(NewFunctionContext, 1, 1)         \
+  F(PushWithContext, 2, 1)            \
+  F(PushCatchContext, 3, 1)           \
+  F(PushBlockContext, 2, 1)           \
+  F(IsJSModule, 1, 1)                 \
+  F(PushModuleContext, 2, 1)          \
+  F(DeclareModules, 1, 1)             \
+  F(DeleteLookupSlot, 1, 1)           \
+  F(LoadLookupSlot, 1, 1)             \
+  F(LoadLookupSlotInsideTypeof, 1, 1) \
+  F(StoreLookupSlot_Sloppy, 2, 1)     \
   F(StoreLookupSlot_Strict, 2, 1)
 
 #define FOR_EACH_INTRINSIC_SIMD(F)     \
@@ -832,9 +826,6 @@
   F(StringToArray, 2, 1)                  \
   F(StringToLowerCase, 1, 1)              \
   F(StringToUpperCase, 1, 1)              \
-  F(StringTrim, 3, 1)                     \
-  F(TruncateString, 2, 1)                 \
-  F(NewString, 2, 1)                      \
   F(StringLessThan, 2, 1)                 \
   F(StringLessThanOrEqual, 2, 1)          \
   F(StringGreaterThan, 2, 1)              \
@@ -843,12 +834,7 @@
   F(StringNotEqual, 2, 1)                 \
   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)        \
-  F(TwoByteSeqStringSetChar, 3, 1)        \
   F(StringCharCodeAt, 2, 1)
 
 #define FOR_EACH_INTRINSIC_SYMBOL(F) \
@@ -860,6 +846,7 @@
   F(SymbolIsPrivate, 1, 1)
 
 #define FOR_EACH_INTRINSIC_TEST(F)            \
+  F(ConstructDouble, 2, 1)                    \
   F(DeoptimizeFunction, 1, 1)                 \
   F(DeoptimizeNow, 0, 1)                      \
   F(RunningInSimulator, 0, 1)                 \
@@ -919,7 +906,6 @@
   F(ArrayBufferViewGetByteLength, 1, 1)      \
   F(ArrayBufferViewGetByteOffset, 1, 1)      \
   F(TypedArrayGetLength, 1, 1)               \
-  F(DataViewGetBuffer, 1, 1)                 \
   F(TypedArrayGetBuffer, 1, 1)               \
   F(TypedArraySetFastCases, 3, 1)            \
   F(TypedArrayMaxSizeInHeap, 0, 1)           \
@@ -945,10 +931,6 @@
   F(DataViewSetFloat64, 4, 1)
 
 
-#define FOR_EACH_INTRINSIC_URI(F) \
-  F(URIEscape, 1, 1)              \
-  F(URIUnescape, 1, 1)
-
 #define FOR_EACH_INTRINSIC_RETURN_PAIR(F) \
   F(LoadLookupSlotForCall, 1, 2)
 
@@ -969,6 +951,8 @@
   F(KeyedStoreIC_MissFromStubFailure, 5, 1)  \
   F(KeyedStoreIC_Slow, 5, 1)                 \
   F(LoadElementWithInterceptor, 2, 1)        \
+  F(LoadGlobalIC_Miss, 2, 1)                 \
+  F(LoadGlobalIC_Slow, 2, 1)                 \
   F(LoadIC_Miss, 4, 1)                       \
   F(LoadIC_MissFromStubFailure, 4, 1)        \
   F(LoadPropertyWithInterceptor, 3, 1)       \
@@ -981,7 +965,6 @@
   F(ToBooleanIC_Miss, 1, 1)                  \
   F(Unreachable, 0, 1)
 
-
 #define FOR_EACH_INTRINSIC_RETURN_OBJECT(F) \
   FOR_EACH_INTRINSIC_IC(F)                  \
   FOR_EACH_INTRINSIC_ARRAY(F)               \
@@ -998,7 +981,6 @@
   FOR_EACH_INTRINSIC_GENERATOR(F)           \
   FOR_EACH_INTRINSIC_I18N(F)                \
   FOR_EACH_INTRINSIC_INTERNAL(F)            \
-  FOR_EACH_INTRINSIC_JSON(F)                \
   FOR_EACH_INTRINSIC_LITERALS(F)            \
   FOR_EACH_INTRINSIC_LIVEEDIT(F)            \
   FOR_EACH_INTRINSIC_MATHS(F)               \
@@ -1012,8 +994,7 @@
   FOR_EACH_INTRINSIC_STRINGS(F)             \
   FOR_EACH_INTRINSIC_SYMBOL(F)              \
   FOR_EACH_INTRINSIC_TEST(F)                \
-  FOR_EACH_INTRINSIC_TYPEDARRAY(F)          \
-  FOR_EACH_INTRINSIC_URI(F)
+  FOR_EACH_INTRINSIC_TYPEDARRAY(F)
 
 // FOR_EACH_INTRINSIC defines the list of all intrinsics, coming in 2 flavors,
 // either returning an object or a pair.
@@ -1092,13 +1073,8 @@
       Handle<Object> value, LanguageMode language_mode);
 
   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);
+      Isolate* isolate, Handle<Object> object, Handle<Object> key,
+      bool* is_found_out = nullptr);
 
   enum TypedArrayId {
     // arrayIds below should be synchronized with typedarray.js natives.
diff --git a/src/s390/OWNERS b/src/s390/OWNERS
index eb007cb..752e8e3 100644
--- a/src/s390/OWNERS
+++ b/src/s390/OWNERS
@@ -3,3 +3,4 @@
 joransiu@ca.ibm.com
 mbrandy@us.ibm.com
 michael_dawson@ca.ibm.com
+bjaideep@ca.ibm.com
diff --git a/src/s390/assembler-s390.cc b/src/s390/assembler-s390.cc
index 9aa2aab..07ef6c0 100644
--- a/src/s390/assembler-s390.cc
+++ b/src/s390/assembler-s390.cc
@@ -228,31 +228,20 @@
       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();
-  }
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(rmode_));
+  return Assembler::target_address_at(pc_, host_);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_, address, flush_mode);
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Assembler::set_target_address_at(isolate_, pc_, host_,
+                                   reinterpret_cast<Address>(size), flush_mode);
 }
 
 // -----------------------------------------------------------------------------
@@ -311,6 +300,8 @@
   desc->instr_size = pc_offset();
   desc->reloc_size = (buffer_ + buffer_size_) - reloc_info_writer.pos();
   desc->origin = this;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 void Assembler::Align(int m) {
@@ -2504,7 +2495,6 @@
 
 void Assembler::call(Handle<Code> target, RelocInfo::Mode rmode,
                      TypeFeedbackId ast_id) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
 
   int32_t target_index = emit_code_target(target, rmode, ast_id);
diff --git a/src/s390/assembler-s390.h b/src/s390/assembler-s390.h
index 28cdbb6..391a5d4 100644
--- a/src/s390/assembler-s390.h
+++ b/src/s390/assembler-s390.h
@@ -145,8 +145,6 @@
     return r;
   }
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -187,6 +185,8 @@
 const Register kRootRegister = r10;   // Roots array pointer.
 const Register cp = r13;              // JavaScript context pointer.
 
+static const bool kSimpleFPAliasing = true;
+
 // Double word FP register.
 struct DoubleRegister {
   enum Code {
@@ -200,8 +200,6 @@
   static const int kNumRegisters = Code::kAfterLast;
   static const int kMaxNumRegisters = kNumRegisters;
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(DoubleRegister reg) const { return reg_code == reg.reg_code; }
 
@@ -548,7 +546,6 @@
 
   // Helper for unconditional branch to Label with update to save register
   void b(Register r, Label* l) {
-    positions_recorder()->WriteRecordedPositions();
     int32_t halfwords = branch_offset(l) / 2;
     brasl(r, Operand(halfwords));
   }
@@ -609,7 +606,7 @@
 
   void breakpoint(bool do_print) {
     if (do_print) {
-      printf("DebugBreak is inserted to %p\n", pc_);
+      PrintF("DebugBreak is inserted to %p\n", static_cast<void*>(pc_));
     }
 #if V8_HOST_ARCH_64_BIT
     int64_t value = reinterpret_cast<uint64_t>(&v8::base::OS::DebugBreak);
diff --git a/src/s390/builtins-s390.cc b/src/s390/builtins-s390.cc
index 8c2283f..f0059bc 100644
--- a/src/s390/builtins-s390.cc
+++ b/src/s390/builtins-s390.cc
@@ -15,8 +15,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- r2                 : number of arguments excluding receiver
   //  -- r3                 : target
@@ -35,24 +34,8 @@
   __ LoadP(cp, FieldMemOperand(r3, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  switch (extra_args) {
-    case BuiltinExtraArguments::kTarget:
-      __ Push(r3);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kNewTarget:
-      __ Push(r5);
-      ++num_extra_args;
-      break;
-    case BuiltinExtraArguments::kTargetAndNewTarget:
-      __ Push(r3, r5);
-      num_extra_args += 2;
-      break;
-    case BuiltinExtraArguments::kNone:
-      break;
-  }
-
+  const int num_extra_args = 2;
+  __ Push(r3, r5);
   // JumpToExternalReference expects r2 to contain the number of arguments
   // including the receiver and the extra arguments.
   __ AddP(r2, r2, Operand(num_extra_args + 1));
@@ -132,6 +115,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- r2                 : number of arguments
+  //  -- r3                 : function
+  //  -- cp                 : context
   //  -- lr                 : return address
   //  -- sp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- sp[(argc + 1) * 8] : receiver
@@ -143,59 +128,63 @@
   DoubleRegister const reg = (kind == MathMaxMinKind::kMin) ? d2 : d1;
 
   // Load the accumulator with the default return value (either -Infinity or
-  // +Infinity), with the tagged value in r3 and the double value in d1.
-  __ LoadRoot(r3, root_index);
-  __ LoadDouble(d1, FieldMemOperand(r3, HeapNumber::kValueOffset));
+  // +Infinity), with the tagged value in r7 and the double value in d1.
+  __ LoadRoot(r7, root_index);
+  __ LoadDouble(d1, FieldMemOperand(r7, HeapNumber::kValueOffset));
 
   // Setup state for loop
   // r4: address of arg[0] + kPointerSize
   // r5: number of slots to drop at exit (arguments + receiver)
-  __ ShiftLeftP(r4, r2, Operand(kPointerSizeLog2));
-  __ AddP(r4, sp, r4);
-  __ AddP(r5, r2, Operand(1));
+  __ AddP(r6, r2, Operand(1));
 
   Label done_loop, loop;
   __ bind(&loop);
   {
     // Check if all parameters done.
-    __ CmpLogicalP(r4, sp);
-    __ ble(&done_loop);
+    __ SubP(r2, Operand(1));
+    __ blt(&done_loop);
 
     // Load the next parameter tagged value into r2.
-    __ lay(r4, MemOperand(r4, -kPointerSize));
-    __ LoadP(r2, MemOperand(r4));
+    __ ShiftLeftP(r1, r2, Operand(kPointerSizeLog2));
+    __ LoadP(r4, MemOperand(sp, r1));
 
     // Load the double value of the parameter into d2, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
-    __ JumpIfSmi(r2, &convert_smi);
-    __ LoadP(r6, FieldMemOperand(r2, HeapObject::kMapOffset));
-    __ JumpIfRoot(r6, Heap::kHeapNumberMapRootIndex, &convert_number);
+    __ JumpIfSmi(r4, &convert_smi);
+    __ LoadP(r5, FieldMemOperand(r4, HeapObject::kMapOffset));
+    __ JumpIfRoot(r5, Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(r5);
-      __ Push(r3, r4, r5);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
-      __ Pop(r3, r4, r5);
-      __ SmiUntag(r5);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      DCHECK(!FLAG_enable_embedded_constant_pool);
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ PushStandardFrame(r3);
+      __ SmiTag(r2);
+      __ SmiTag(r6);
+      __ Push(r2, r6, r7);
+      __ LoadRR(r2, r4);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
+      __ LoadRR(r4, r2);
+      __ Pop(r2, r6, r7);
       {
         // Restore the double accumulator value (d1).
         Label done_restore;
-        __ SmiToDouble(d1, r3);
-        __ JumpIfSmi(r3, &done_restore);
-        __ LoadDouble(d1, FieldMemOperand(r3, HeapNumber::kValueOffset));
+        __ SmiToDouble(d1, r7);
+        __ JumpIfSmi(r7, &done_restore);
+        __ LoadDouble(d1, FieldMemOperand(r7, HeapNumber::kValueOffset));
         __ bind(&done_restore);
       }
+      __ SmiUntag(r6);
+      __ SmiUntag(r2);
+      __ Pop(r14, fp, cp, r3);
     }
     __ b(&convert);
     __ bind(&convert_number);
-    __ LoadDouble(d2, FieldMemOperand(r2, HeapNumber::kValueOffset));
+    __ LoadDouble(d2, FieldMemOperand(r4, HeapNumber::kValueOffset));
     __ b(&done_convert);
     __ bind(&convert_smi);
-    __ SmiToDouble(d2, r2);
+    __ SmiToDouble(d2, r4);
     __ bind(&done_convert);
 
     // Perform the actual comparison with the accumulator value on the left hand
@@ -207,26 +196,26 @@
     __ b(CommuteCondition(cond_done), &compare_swap);
 
     // Left and right hand side are equal, check for -0 vs. +0.
-    __ TestDoubleIsMinusZero(reg, r6, r7);
+    __ TestDoubleIsMinusZero(reg, r1, r0);
     __ bne(&loop);
 
     // Update accumulator. Result is on the right hand side.
     __ bind(&compare_swap);
     __ ldr(d1, d2);
-    __ LoadRR(r3, r2);
+    __ LoadRR(r7, r4);
     __ b(&loop);
 
     // At least one side is NaN, which means that the result will be NaN too.
     // We still need to visit the rest of the arguments.
     __ bind(&compare_nan);
-    __ LoadRoot(r3, Heap::kNanValueRootIndex);
-    __ LoadDouble(d1, FieldMemOperand(r3, HeapNumber::kValueOffset));
+    __ LoadRoot(r7, Heap::kNanValueRootIndex);
+    __ LoadDouble(d1, FieldMemOperand(r7, HeapNumber::kValueOffset));
     __ b(&loop);
   }
 
   __ bind(&done_loop);
-  __ LoadRR(r2, r3);
-  __ Drop(r5);
+  __ LoadRR(r2, r7);
+  __ Drop(r6);
   __ Ret();
 }
 
@@ -254,8 +243,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0.
   __ bind(&no_arguments);
@@ -305,8 +293,7 @@
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
       __ Push(r3, r5);
       __ LoadRR(r2, r4);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ LoadRR(r4, r2);
       __ Pop(r3, r5);
     }
@@ -699,8 +686,9 @@
   __ AssertGeneratorObject(r3);
 
   // Store input value into generator object.
-  __ StoreP(r2, FieldMemOperand(r3, JSGeneratorObject::kInputOffset), r0);
-  __ RecordWriteField(r3, JSGeneratorObject::kInputOffset, r2, r5,
+  __ StoreP(r2, FieldMemOperand(r3, JSGeneratorObject::kInputOrDebugPosOffset),
+            r0);
+  __ RecordWriteField(r3, JSGeneratorObject::kInputOrDebugPosOffset, r2, r5,
                       kLRHasNotBeenSaved, kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -711,21 +699,26 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ mov(ip, Operand(last_step_action));
+  __ LoadB(ip, MemOperand(ip));
+  __ CmpP(ip, Operand(StepIn));
+  __ bge(&prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+
+  __ mov(ip, Operand(debug_suspended_generator));
+  __ LoadP(ip, MemOperand(ip));
+  __ CmpP(ip, r3);
+  __ beq(&prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Push receiver.
   __ LoadP(ip, FieldMemOperand(r3, JSGeneratorObject::kReceiverOffset));
@@ -830,6 +823,26 @@
       __ Jump(r5);
     }
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r3, r4, r6);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(r3, r4);
+    __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
+    __ Push(r3, r4);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(r3, r4);
+    __ LoadP(r6, FieldMemOperand(r3, JSGeneratorObject::kFunctionOffset));
+  }
+  __ b(&stepping_prepared);
 }
 
 void Builtins::Generate_ConstructedNonConstructable(MacroAssembler* masm) {
@@ -957,6 +970,21 @@
   Generate_JSEntryTrampolineHelper(masm, true);
 }
 
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch) {
+  Register args_count = scratch;
+
+  // Get the arguments + receiver count.
+  __ LoadP(args_count,
+           MemOperand(fp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ LoadlW(args_count,
+            FieldMemOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ LeaveFrame(StackFrame::JAVA_SCRIPT);
+
+  __ AddP(sp, sp, args_count);
+}
+
 // 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
@@ -1067,15 +1095,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // The return value is 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);
-
-  __ lay(sp, MemOperand(sp, r4));
+  LeaveInterpreterFrame(masm, r4);
   __ Ret();
 
   // If the bytecode array is no longer present, then the underlying function
@@ -1091,6 +1111,31 @@
   __ JumpToJSEntry(r6);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ LoadP(r3, MemOperand(fp, StandardFrameConstants::kFunctionOffset));
+  __ LoadP(kContextRegister,
+           MemOperand(fp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, r4);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(r2);
+
+    // Push function as argument and compile for baseline.
+    __ push(r3);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(r2);
+  }
+  __ Ret();
+}
+
 static void Generate_InterpreterPushArgs(MacroAssembler* masm, Register index,
                                          Register count, Register scratch) {
   Label loop;
@@ -1656,6 +1701,10 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- r2    : number of arguments
+  //  -- r3    : function
+  //  -- cp    : context
+
   //  -- lr    : return address
   //  -- sp[0] : receiver
   // -----------------------------------
@@ -1665,7 +1714,7 @@
   {
     __ Pop(r2);
     __ JumpIfSmi(r2, &receiver_not_date);
-    __ CompareObjectType(r2, r3, r4, JS_DATE_TYPE);
+    __ CompareObjectType(r2, r4, r5, JS_DATE_TYPE);
     __ bne(&receiver_not_date);
   }
 
@@ -1695,7 +1744,14 @@
 
   // 3. Raise a TypeError if the receiver is not a date.
   __ bind(&receiver_not_date);
-  __ TailCallRuntime(Runtime::kThrowNotDateError);
+  {
+    FrameScope scope(masm, StackFrame::MANUAL);
+    __ push(r2);
+    __ PushStandardFrame(r3);
+    __ LoadSmiLiteral(r6, Smi::FromInt(0));
+    __ push(r6);
+    __ CallRuntime(Runtime::kThrowNotDateError);
+  }
 }
 
 // static
@@ -2661,6 +2717,76 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in r2.
+  __ AssertString(r2);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ LoadlW(r4, FieldMemOperand(r2, String::kHashFieldOffset));
+  __ And(r0, r4, Operand(String::kContainsCachedArrayIndexMask));
+  __ bne(&runtime);
+  __ IndexFromHash(r4, r2);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(r2);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in r2.
+  STATIC_ASSERT(kSmiTag == 0);
+  __ TestIfSmi(r2);
+  __ Ret(eq);
+
+  __ CompareObjectType(r2, r3, r3, HEAP_NUMBER_TYPE);
+  // r2: receiver
+  // r3: receiver instance type
+  __ Ret(eq);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in r2.
+  __ AssertNotNumber(r2);
+
+  __ CompareObjectType(r2, r3, r3, FIRST_NONSTRING_TYPE);
+  // r2: receiver
+  // r3: receiver instance type
+  __ Jump(masm->isolate()->builtins()->StringToNumber(), RelocInfo::CODE_TARGET,
+          lt);
+
+  Label not_oddball;
+  __ CmpP(r3, Operand(ODDBALL_TYPE));
+  __ bne(&not_oddball);
+  __ LoadP(r2, FieldMemOperand(r2, Oddball::kToNumberOffset));
+  __ Ret();
+  __ bind(&not_oddball);
+
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(r2);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 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 e1e2003..6098c37 100644
--- a/src/s390/code-stubs-s390.cc
+++ b/src/s390/code-stubs-s390.cc
@@ -21,44 +21,15 @@
 namespace v8 {
 namespace internal {
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler =
-      Runtime::FunctionForId(Runtime::kArrayConstructor)->entry;
+#define __ ACCESS_MASM(masm)
 
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r2, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler =
-      Runtime::FunctionForId(Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(r2, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ ShiftLeftP(r1, r2, Operand(kPointerSizeLog2));
+  __ StoreP(r3, MemOperand(sp, r1));
+  __ push(r3);
+  __ push(r4);
+  __ AddP(r2, r2, Operand(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
@@ -66,18 +37,12 @@
   descriptor->Initialize(r2, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(r2, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-#define __ ACCESS_MASM(masm)
-
 static void EmitIdenticalObjectComparison(MacroAssembler* masm, Label* slow,
                                           Condition cond);
 static void EmitSmiNonsmiComparison(MacroAssembler* masm, Register lhs,
@@ -956,7 +921,7 @@
   CEntryStub::GenerateAheadOfTime(isolate);
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1070,7 +1035,6 @@
     // zLinux ABI requires caller's frame to have sufficient space for callee
     // preserved regsiter save area.
     // __ lay(sp, MemOperand(sp, -kCalleeRegisterSaveAreaSize));
-    __ positions_recorder()->WriteRecordedPositions();
     __ b(target);
     __ bind(&return_label);
     // __ la(sp, MemOperand(sp, +kCalleeRegisterSaveAreaSize));
@@ -1401,7 +1365,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ Ret();
@@ -1864,12 +1827,15 @@
   // r4 : feedback vector
   // r5 : slot in feedback vector (Smi)
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   DCHECK_EQ(*TypeFeedbackVector::MegamorphicSentinel(masm->isolate()),
             masm->isolate()->heap()->megamorphic_symbol());
   DCHECK_EQ(*TypeFeedbackVector::UninitializedSentinel(masm->isolate()),
             masm->isolate()->heap()->uninitialized_symbol());
 
+  const int count_offset = FixedArray::kHeaderSize + kPointerSize;
+
   // Load the cache state into r7.
   __ SmiToPtrArrayOffset(r7, r5);
   __ AddP(r7, r4, r7);
@@ -1884,9 +1850,9 @@
   Register weak_value = r9;
   __ LoadP(weak_value, FieldMemOperand(r7, WeakCell::kValueOffset));
   __ CmpP(r3, weak_value);
-  __ beq(&done);
+  __ beq(&done_increment_count, Label::kNear);
   __ CompareRoot(r7, Heap::kmegamorphic_symbolRootIndex);
-  __ beq(&done);
+  __ beq(&done, Label::kNear);
   __ LoadP(feedback_map, FieldMemOperand(r7, HeapObject::kMapOffset));
   __ CompareRoot(feedback_map, Heap::kWeakCellMapRootIndex);
   __ bne(&check_allocation_site);
@@ -1907,7 +1873,7 @@
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, r7);
   __ CmpP(r3, r7);
   __ bne(&megamorphic);
-  __ b(&done);
+  __ b(&done_increment_count, Label::kNear);
 
   __ bind(&miss);
 
@@ -1937,12 +1903,31 @@
   // slot.
   CreateAllocationSiteStub create_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ b(&done);
+  __ b(&done_initialize_count, Label::kNear);
 
   __ bind(&not_array_function);
 
   CreateWeakCellStub weak_cell_stub(masm->isolate());
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ LoadSmiLiteral(r7, Smi::FromInt(1));
+  __ SmiToPtrArrayOffset(r6, r5);
+  __ AddP(r6, r4, r6);
+  __ StoreP(r7, FieldMemOperand(r6, count_offset), r0);
+  __ b(&done, Label::kNear);
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ SmiToPtrArrayOffset(r7, r5);
+  __ AddP(r7, r4, r7);
+
+  __ LoadP(r6, FieldMemOperand(r7, count_offset));
+  __ AddSmiLiteral(r6, r6, Smi::FromInt(1), r0);
+  __ StoreP(r6, FieldMemOperand(r7, count_offset), r0);
+
   __ bind(&done);
 }
 
@@ -2005,7 +1990,7 @@
   __ SmiToPtrArrayOffset(r7, r5);
   __ AddP(r4, r4, r7);
   __ LoadP(r5, FieldMemOperand(r4, count_offset));
-  __ AddSmiLiteral(r5, r5, Smi::FromInt(CallICNexus::kCallCountIncrement), r0);
+  __ AddSmiLiteral(r5, r5, Smi::FromInt(1), r0);
   __ StoreP(r5, FieldMemOperand(r4, count_offset), r0);
 
   __ LoadRR(r4, r6);
@@ -2052,7 +2037,7 @@
   // Increment the call count for monomorphic function calls.
   const int count_offset = FixedArray::kHeaderSize + kPointerSize;
   __ LoadP(r5, FieldMemOperand(r8, count_offset));
-  __ AddSmiLiteral(r5, r5, Smi::FromInt(CallICNexus::kCallCountIncrement), r0);
+  __ AddSmiLiteral(r5, r5, Smi::FromInt(1), r0);
   __ StoreP(r5, FieldMemOperand(r8, count_offset), r0);
 
   __ bind(&call_function);
@@ -2122,7 +2107,7 @@
   __ bne(&miss);
 
   // Initialize the call counter.
-  __ LoadSmiLiteral(r7, Smi::FromInt(CallICNexus::kCallCountIncrement));
+  __ LoadSmiLiteral(r7, Smi::FromInt(1));
   __ StoreP(r7, FieldMemOperand(r8, count_offset), r0);
 
   // Store the function. Use a stub since we need a frame for allocation.
@@ -2211,13 +2196,7 @@
     // index_ is consumed by runtime conversion function.
     __ Push(object_, index_);
   }
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   // Save the conversion result before the pop instructions below
   // have a chance to overwrite it.
   __ Move(index_, r2);
@@ -2548,69 +2527,13 @@
   // r5: from index (untagged)
   __ SmiTag(r5, r5);
   StringCharAtGenerator generator(r2, r5, r4, r2, &runtime, &runtime, &runtime,
-                                  STRING_INDEX_IS_NUMBER, RECEIVER_IS_STRING);
+                                  RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ Drop(3);
   __ Ret();
   generator.SkipSlow(masm, &runtime);
 }
 
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in r2.
-  STATIC_ASSERT(kSmiTag == 0);
-  __ TestIfSmi(r2);
-  __ Ret(eq);
-
-  __ CompareObjectType(r2, r3, r3, HEAP_NUMBER_TYPE);
-  // r2: receiver
-  // r3: receiver instance type
-  Label not_heap_number;
-  __ bne(&not_heap_number);
-  __ Ret();
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in r2.
-  __ AssertNotNumber(r2);
-
-  __ CompareObjectType(r2, r3, r3, FIRST_NONSTRING_TYPE);
-  // r2: receiver
-  // r3: receiver instance type
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub, lt);
-
-  Label not_oddball;
-  __ CmpP(r3, Operand(ODDBALL_TYPE));
-  __ bne(&not_oddball, Label::kNear);
-  __ LoadP(r2, FieldMemOperand(r2, Oddball::kToNumberOffset));
-  __ b(r14);
-  __ bind(&not_oddball);
-
-  __ push(r2);  // Push argument.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in r2.
-  __ AssertString(r2);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ LoadlW(r4, FieldMemOperand(r2, String::kHashFieldOffset));
-  __ And(r0, r4, Operand(String::kContainsCachedArrayIndexMask));
-  __ bne(&runtime);
-  __ IndexFromHash(r4, r2);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ push(r2);  // Push argument.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in r2.
   Label done;
@@ -2788,7 +2711,7 @@
   // Load r4 with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ Move(r4, handle(isolate()->heap()->undefined_value()));
+  __ Move(r4, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3170,10 +3093,6 @@
 void DirectCEntryStub::Generate(MacroAssembler* masm) {
   __ CleanseP(r14);
 
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  __ positions_recorder()->WriteRecordedPositions();
-
   __ b(ip);  // Callee will return to R14 directly
 }
 
@@ -3627,13 +3546,13 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4273,17 +4192,11 @@
   }
 }
 
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
-      isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
   ElementsKind kinds[2] = {FAST_ELEMENTS, FAST_HOLEY_ELEMENTS};
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4291,8 +4204,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4310,13 +4221,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4398,7 +4311,7 @@
   InternalArrayNoArgumentConstructorStub stub0(isolate(), kind);
   __ TailCallStub(&stub0, lt);
 
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN, gt);
 
   if (IsFastPackedElementsKind(kind)) {
@@ -4617,13 +4530,13 @@
   // specified by the function's internal formal parameter count.
   Label rest_parameters;
   __ LoadP(r2, MemOperand(r4, ArgumentsAdaptorFrameConstants::kLengthOffset));
-  __ LoadP(r3, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
+  __ LoadP(r5, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
   __ LoadW(
-      r3, FieldMemOperand(r3, SharedFunctionInfo::kFormalParameterCountOffset));
+      r5, FieldMemOperand(r5, SharedFunctionInfo::kFormalParameterCountOffset));
 #if V8_TARGET_ARCH_S390X
-  __ SmiTag(r3);
+  __ SmiTag(r5);
 #endif
-  __ SubP(r2, r2, r3);
+  __ SubP(r2, r2, r5);
   __ bgt(&rest_parameters);
 
   // Return an empty rest parameter array.
@@ -4670,6 +4583,7 @@
     // ----------- S t a t e -------------
     //  -- cp : context
     //  -- r2 : number of rest parameters (tagged)
+    //  -- r3 : function
     //  -- r4 : pointer just past first rest parameters
     //  -- r8 : size of rest parameters
     //  -- lr : return address
@@ -4677,9 +4591,9 @@
 
     // Allocate space for the rest parameter array plus the backing store.
     Label allocate, done_allocate;
-    __ mov(r3, Operand(JSArray::kSize + FixedArray::kHeaderSize));
-    __ AddP(r3, r3, r8);
-    __ Allocate(r3, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
+    __ mov(r9, Operand(JSArray::kSize + FixedArray::kHeaderSize));
+    __ AddP(r9, r9, r8);
+    __ Allocate(r9, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Setup the elements array in r5.
@@ -4713,17 +4627,25 @@
     __ AddP(r2, r6, Operand(kHeapObjectTag));
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ CmpP(r9, Operand(Page::kMaxRegularHeapObjectSize));
+    __ bgt(&too_big_for_new_space);
     {
       FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-      __ SmiTag(r3);
-      __ Push(r2, r4, r3);
+      __ SmiTag(r9);
+      __ Push(r2, r4, r9);
       __ CallRuntime(Runtime::kAllocateInNewSpace);
       __ LoadRR(r5, r2);
       __ Pop(r2, r4);
     }
     __ b(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ push(r3);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -5013,9 +4935,9 @@
   __ CmpSmiLiteral(ip, Smi::FromInt(StackFrame::ARGUMENTS_ADAPTOR), r0);
   __ beq(&arguments_adaptor);
   {
-    __ LoadP(r3, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
+    __ LoadP(r6, FieldMemOperand(r3, JSFunction::kSharedFunctionInfoOffset));
     __ LoadW(r2, FieldMemOperand(
-                     r3, SharedFunctionInfo::kFormalParameterCountOffset));
+                     r6, SharedFunctionInfo::kFormalParameterCountOffset));
 #if V8_TARGET_ARCH_S390X
     __ SmiTag(r2);
 #endif
@@ -5035,6 +4957,7 @@
   // ----------- S t a t e -------------
   //  -- cp : context
   //  -- r2 : number of rest parameters (tagged)
+  //  -- r3 : function
   //  -- r4 : pointer just past first rest parameters
   //  -- r8 : size of rest parameters
   //  -- lr : return address
@@ -5042,9 +4965,9 @@
 
   // Allocate space for the strict arguments object plus the backing store.
   Label allocate, done_allocate;
-  __ mov(r3, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
-  __ AddP(r3, r3, r8);
-  __ Allocate(r3, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
+  __ mov(r9, Operand(JSStrictArgumentsObject::kSize + FixedArray::kHeaderSize));
+  __ AddP(r9, r9, r8);
+  __ Allocate(r9, r5, r6, r7, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Setup the elements array in r5.
@@ -5079,47 +5002,25 @@
   __ AddP(r2, r6, Operand(kHeapObjectTag));
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ CmpP(r9, Operand(Page::kMaxRegularHeapObjectSize));
+  __ bgt(&too_big_for_new_space);
   {
     FrameAndConstantPoolScope scope(masm, StackFrame::INTERNAL);
-    __ SmiTag(r3);
-    __ Push(r2, r4, r3);
+    __ SmiTag(r9);
+    __ Push(r2, r4, r9);
     __ CallRuntime(Runtime::kAllocateInNewSpace);
     __ LoadRR(r5, r2);
     __ Pop(r2, r4);
   }
   __ b(&done_allocate);
-}
 
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context = cp;
-  Register result = r2;
-  Register slot = r4;
-
-  // Go up the context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ LoadP(result, ContextMemOperand(context, Context::PREVIOUS_INDEX));
-    context = result;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ ShiftLeftP(r0, slot, Operand(kPointerSizeLog2));
-  __ AddP(result, context, r0);
-  __ LoadP(result, ContextMemOperand(result));
-  __ LoadP(result, FieldMemOperand(result, PropertyCell::kValueOffset));
-
-  // If the result is not the_hole, return. Otherwise, handle in the runtime.
-  __ CompareRoot(result, Heap::kTheHoleValueRootIndex);
-  Label runtime;
-  __ beq(&runtime);
-  __ Ret();
-  __ bind(&runtime);
-
-  // Fallback to runtime.
-  __ SmiTag(slot);
-  __ Push(slot);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ push(r3);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
diff --git a/src/s390/codegen-s390.cc b/src/s390/codegen-s390.cc
index fe94c94..5728e45 100644
--- a/src/s390/codegen-s390.cc
+++ b/src/s390/codegen-s390.cc
@@ -15,56 +15,6 @@
 
 #define __ masm.
 
-#if defined(USE_SIMULATOR)
-byte* fast_exp_s390_machine_code = nullptr;
-double fast_exp_simulator(double x, Isolate* isolate) {
-  return Simulator::current(isolate)->CallFPReturnsDouble(
-      fast_exp_s390_machine_code, x, 0);
-}
-#endif
-
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-
-  {
-    DoubleRegister input = d0;
-    DoubleRegister result = d2;
-    DoubleRegister double_scratch1 = d3;
-    DoubleRegister double_scratch2 = d4;
-    Register temp1 = r6;
-    Register temp2 = r7;
-    Register temp3 = r8;
-
-    __ Push(temp3, temp2, temp1);
-    MathExpGenerator::EmitMathExp(&masm, input, result, double_scratch1,
-                                  double_scratch2, temp1, temp2, temp3);
-    __ Pop(temp3, temp2, temp1);
-    __ ldr(d0, result);
-    __ Ret();
-  }
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(ABI_USES_FUNCTION_DESCRIPTORS || !RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-
-#if !defined(USE_SIMULATOR)
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-#else
-  fast_exp_s390_machine_code = buffer;
-  return &fast_exp_simulator;
-#endif
-}
-
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
 #if defined(USE_SIMULATOR)
   return nullptr;
@@ -507,95 +457,6 @@
   __ bind(&done);
 }
 
-static MemOperand ExpConstant(int index, Register base) {
-  return MemOperand(base, index * kDoubleSize);
-}
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm, DoubleRegister input,
-                                   DoubleRegister result,
-                                   DoubleRegister double_scratch1,
-                                   DoubleRegister double_scratch2,
-                                   Register temp1, Register temp2,
-                                   Register temp3) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch1));
-  DCHECK(!input.is(double_scratch2));
-  DCHECK(!result.is(double_scratch1));
-  DCHECK(!result.is(double_scratch2));
-  DCHECK(!double_scratch1.is(double_scratch2));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(!temp1.is(temp3));
-  DCHECK(!temp2.is(temp3));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label zero, infinity, done;
-
-  __ mov(temp3, Operand(ExternalReference::math_exp_constants(0)));
-
-  __ LoadDouble(double_scratch1, ExpConstant(0, temp3));
-  __ cdbr(double_scratch1, input);
-  __ ldr(result, input);
-  __ bunordered(&done, Label::kNear);
-  __ bge(&zero, Label::kNear);
-
-  __ LoadDouble(double_scratch2, ExpConstant(1, temp3));
-  __ cdbr(input, double_scratch2);
-  __ bge(&infinity, Label::kNear);
-
-  __ LoadDouble(double_scratch1, ExpConstant(3, temp3));
-  __ LoadDouble(result, ExpConstant(4, temp3));
-
-  // Do not generate madbr, as intermediate result are not
-  // rounded properly
-  __ mdbr(double_scratch1, input);
-  __ adbr(double_scratch1, result);
-
-  // Move low word of double_scratch1 to temp2
-  __ lgdr(temp2, double_scratch1);
-  __ nihf(temp2, Operand::Zero());
-
-  __ sdbr(double_scratch1, result);
-  __ LoadDouble(result, ExpConstant(6, temp3));
-  __ LoadDouble(double_scratch2, ExpConstant(5, temp3));
-  __ mdbr(double_scratch1, double_scratch2);
-  __ sdbr(double_scratch1, input);
-  __ sdbr(result, double_scratch1);
-  __ ldr(double_scratch2, double_scratch1);
-  __ mdbr(double_scratch2, double_scratch2);
-  __ mdbr(result, double_scratch2);
-  __ LoadDouble(double_scratch2, ExpConstant(7, temp3));
-  __ mdbr(result, double_scratch2);
-  __ sdbr(result, double_scratch1);
-  __ LoadDouble(double_scratch2, ExpConstant(8, temp3));
-  __ adbr(result, double_scratch2);
-  __ ShiftRight(temp1, temp2, Operand(11));
-  __ AndP(temp2, Operand(0x7ff));
-  __ AddP(temp1, Operand(0x3ff));
-
-  // Must not call ExpConstant() after overwriting temp3!
-  __ mov(temp3, Operand(ExternalReference::math_exp_log_table()));
-  __ ShiftLeft(temp2, temp2, Operand(3));
-
-  __ lg(temp2, MemOperand(temp2, temp3));
-  __ sllg(temp1, temp1, Operand(52));
-  __ ogr(temp2, temp1);
-  __ ldgr(double_scratch1, temp2);
-
-  __ mdbr(result, double_scratch1);
-  __ b(&done, Label::kNear);
-
-  __ bind(&zero);
-  __ lzdr(kDoubleRegZero);
-  __ ldr(result, kDoubleRegZero);
-  __ b(&done, Label::kNear);
-
-  __ bind(&infinity);
-  __ LoadDouble(result, ExpConstant(2, temp3));
-
-  __ bind(&done);
-}
-
 #undef __
 
 CodeAgingHelper::CodeAgingHelper(Isolate* isolate) {
diff --git a/src/s390/codegen-s390.h b/src/s390/codegen-s390.h
index 18cf8e2..aaedb01 100644
--- a/src/s390/codegen-s390.h
+++ b/src/s390/codegen-s390.h
@@ -25,19 +25,6 @@
  private:
   DISALLOW_COPY_AND_ASSIGN(StringCharLoadGenerator);
 };
-
-class MathExpGenerator : public AllStatic {
- public:
-  // Register input isn't modified. All other registers are clobbered.
-  static void EmitMathExp(MacroAssembler* masm, DoubleRegister input,
-                          DoubleRegister result, DoubleRegister double_scratch1,
-                          DoubleRegister double_scratch2, Register temp1,
-                          Register temp2, Register temp3);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/s390/deoptimizer-s390.cc b/src/s390/deoptimizer-s390.cc
index 44062d6..6ee8c74 100644
--- a/src/s390/deoptimizer-s390.cc
+++ b/src/s390/deoptimizer-s390.cc
@@ -116,8 +116,7 @@
 
   // Save all double registers before messing with them.
   __ lay(sp, MemOperand(sp, -kDoubleRegsSize));
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     const DoubleRegister dreg = DoubleRegister::from_code(code);
diff --git a/src/s390/disasm-s390.cc b/src/s390/disasm-s390.cc
index 5bab604..d9cf2d3 100644
--- a/src/s390/disasm-s390.cc
+++ b/src/s390/disasm-s390.cc
@@ -37,6 +37,8 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
+
 //------------------------------------------------------------------------------
 
 // Decoder decodes and disassembles instructions into an output buffer.
@@ -111,7 +113,7 @@
 
 // Print the double FP register name according to the active name converter.
 void Decoder::PrintDRegister(int reg) {
-  Print(DoubleRegister::from_code(reg).ToString());
+  Print(GetRegConfig()->GetDoubleRegisterName(reg));
 }
 
 // Print SoftwareInterrupt codes. Factoring this out reduces the complexity of
@@ -1357,7 +1359,7 @@
 namespace disasm {
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -1366,7 +1368,7 @@
 }
 
 const char* NameConverter::NameOfCPURegister(int reg) const {
-  return v8::internal::Register::from_code(reg).ToString();
+  return v8::internal::GetRegConfig()->GetGeneralRegisterName(reg);
 }
 
 const char* NameConverter::NameOfByteCPURegister(int reg) const {
@@ -1411,7 +1413,7 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    v8::internal::PrintF(f, "%p    %08x      %s\n", prev_pc,
+    v8::internal::PrintF(f, "%p    %08x      %s\n", static_cast<void*>(prev_pc),
                          *reinterpret_cast<int32_t*>(prev_pc), buffer.start());
   }
 }
diff --git a/src/s390/interface-descriptors-s390.cc b/src/s390/interface-descriptors-s390.cc
index aae1949..d588fbe 100644
--- a/src/s390/interface-descriptors-s390.cc
+++ b/src/s390/interface-descriptors-s390.cc
@@ -11,6 +11,15 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return cp; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {r2, r3, r4, r5, r6};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
+
 const Register LoadDescriptor::ReceiverRegister() { return r3; }
 const Register LoadDescriptor::NameRegister() { return r4; }
 const Register LoadDescriptor::SlotRegister() { return r2; }
@@ -31,8 +40,6 @@
 
 const Register StoreTransitionDescriptor::MapRegister() { return r5; }
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return r4; }
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return r4; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return r2; }
 
@@ -51,9 +58,6 @@
 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};
@@ -222,41 +226,24 @@
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // r2 -- number of arguments
   // r3 -- function
   // r4 -- allocation site with elements kind
-  Register registers[] = {r3, r4};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  Register registers[] = {r3, r4, r2};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {r3, r4, r2};
   data->InitializePlatformSpecific(arraysize(registers), registers);
 }
 
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
-  // register state
-  // r2 -- number of arguments
-  // r3 -- constructor function
-  Register registers[] = {r3};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {r3, r2};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {r2};
diff --git a/src/s390/macro-assembler-s390.cc b/src/s390/macro-assembler-s390.cc
index 9257e64..ca48614 100644
--- a/src/s390/macro-assembler-s390.cc
+++ b/src/s390/macro-assembler-s390.cc
@@ -70,10 +70,6 @@
   Label start;
   bind(&start);
 
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  positions_recorder()->WriteRecordedPositions();
-
   // Branch to target via indirect branch
   basr(r14, target);
 
@@ -122,10 +118,6 @@
   bind(&start);
 #endif
 
-  // Statement positions are expected to be recorded when the target
-  // address is loaded.
-  positions_recorder()->WriteRecordedPositions();
-
   mov(ip, Operand(reinterpret_cast<intptr_t>(target), rmode));
   basr(r14, ip);
 
@@ -645,8 +637,7 @@
 
 MemOperand MacroAssembler::SafepointRegistersAndDoublesSlot(Register reg) {
   // General purpose registers are pushed last on the stack.
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   int doubles_size = config->num_allocatable_double_registers() * kDoubleSize;
   int register_offset = SafepointRegisterStackIndex(reg.code()) * kPointerSize;
   return MemOperand(sp, doubles_size + register_offset);
@@ -987,9 +978,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   LoadP(vector, MemOperand(fp, JavaScriptFrameConstants::kFunctionOffset));
-  LoadP(vector, FieldMemOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  LoadP(vector,
-        FieldMemOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  LoadP(vector, FieldMemOperand(vector, JSFunction::kLiteralsOffset));
+  LoadP(vector, FieldMemOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 void MacroAssembler::EnterFrame(StackFrame::Type type,
@@ -1310,12 +1300,13 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  mov(r6, Operand(step_in_enabled));
-  LoadlB(r6, MemOperand(r6));
-  CmpP(r6, Operand::Zero());
-  beq(&skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  mov(r6, Operand(last_step_action));
+  LoadB(r6, MemOperand(r6));
+  CmpP(r6, Operand(StepIn));
+  blt(&skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -3705,8 +3696,7 @@
   if (reg5.is_valid()) regs |= reg5.bit();
   if (reg6.is_valid()) regs |= reg6.bit();
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_general_registers(); ++i) {
     int code = config->GetAllocatableGeneralCode(i);
     Register candidate = Register::from_code(code);
@@ -4757,7 +4747,6 @@
 // Branch On Count.  Decrement R1, and branch if R1 != 0.
 void MacroAssembler::BranchOnCount(Register r1, Label* l) {
   int32_t offset = branch_offset(l);
-  positions_recorder()->WriteRecordedPositions();
   if (is_int16(offset)) {
 #if V8_TARGET_ARCH_S390X
     brctg(r1, Operand(offset));
diff --git a/src/s390/macro-assembler-s390.h b/src/s390/macro-assembler-s390.h
index 19f0f7c..23b353e 100644
--- a/src/s390/macro-assembler-s390.h
+++ b/src/s390/macro-assembler-s390.h
@@ -1582,17 +1582,29 @@
   }
 
   void IndexToArrayOffset(Register dst, Register src, int elementSizeLog2,
-                          bool isSmi) {
+                          bool isSmi, bool keyMaybeNegative) {
     if (isSmi) {
       SmiToArrayOffset(dst, src, elementSizeLog2);
-    } else {
+    } else if (keyMaybeNegative ||
+          !CpuFeatures::IsSupported(GENERAL_INSTR_EXT)) {
 #if V8_TARGET_ARCH_S390X
+      // If array access is dehoisted, the key, being an int32, can contain
+      // a negative value, as needs to be sign-extended to 64-bit for
+      // memory access.
+      //
       // src (key) is a 32-bit integer.  Sign extension ensures
       // upper 32-bit does not contain garbage before being used to
       // reference memory.
       lgfr(src, src);
 #endif
       ShiftLeftP(dst, src, Operand(elementSizeLog2));
+    } else {
+      // Small optimization to reduce pathlength.  After Bounds Check,
+      // the key is guaranteed to be non-negative.  Leverage RISBG,
+      // which also performs zero-extension.
+      risbg(dst, src, Operand(32 - elementSizeLog2),
+            Operand(63 - elementSizeLog2), Operand(elementSizeLog2),
+            true);
     }
   }
 
diff --git a/src/s390/simulator-s390.cc b/src/s390/simulator-s390.cc
index e819556..434fbff 100644
--- a/src/s390/simulator-s390.cc
+++ b/src/s390/simulator-s390.cc
@@ -23,6 +23,8 @@
 namespace v8 {
 namespace internal {
 
+const auto GetRegConfig = RegisterConfiguration::Crankshaft;
+
 // This macro provides a platform independent use of sscanf. The reason for
 // SScanF not being implemented in a platform independent way through
 // ::v8::internal::OS in the same way as SNPrintF is that the
@@ -331,7 +333,7 @@
             for (int i = 0; i < kNumRegisters; i++) {
               value = GetRegisterValue(i);
               PrintF("    %3s: %08" V8PRIxPTR,
-                     Register::from_code(i).ToString(), value);
+                     GetRegConfig()->GetGeneralRegisterName(i), value);
               if ((argc == 3 && strcmp(arg2, "fp") == 0) && i < 8 &&
                   (i % 2) == 0) {
                 dvalue = GetRegisterPairDoubleValue(i);
@@ -346,7 +348,7 @@
             for (int i = 0; i < kNumRegisters; i++) {
               value = GetRegisterValue(i);
               PrintF("     %3s: %08" V8PRIxPTR " %11" V8PRIdPTR,
-                     Register::from_code(i).ToString(), value, value);
+                     GetRegConfig()->GetGeneralRegisterName(i), value, value);
               if ((argc == 3 && strcmp(arg2, "fp") == 0) && i < 8 &&
                   (i % 2) == 0) {
                 dvalue = GetRegisterPairDoubleValue(i);
@@ -362,14 +364,15 @@
               float fvalue = GetFPFloatRegisterValue(i);
               uint32_t as_words = bit_cast<uint32_t>(fvalue);
               PrintF("%3s: %f 0x%08x\n",
-                     DoubleRegister::from_code(i).ToString(), fvalue, as_words);
+                     GetRegConfig()->GetDoubleRegisterName(i), fvalue,
+                     as_words);
             }
           } else if (strcmp(arg1, "alld") == 0) {
             for (int i = 0; i < DoubleRegister::kNumRegisters; i++) {
               dvalue = GetFPDoubleRegisterValue(i);
               uint64_t as_words = bit_cast<uint64_t>(dvalue);
               PrintF("%3s: %f 0x%08x %08x\n",
-                     DoubleRegister::from_code(i).ToString(), dvalue,
+                     GetRegConfig()->GetDoubleRegisterName(i), dvalue,
                      static_cast<uint32_t>(as_words >> 32),
                      static_cast<uint32_t>(as_words & 0xffffffff));
             }
@@ -701,7 +704,7 @@
   last_debugger_input_ = input;
 }
 
-void Simulator::FlushICache(v8::internal::HashMap* i_cache, void* start_addr,
+void Simulator::FlushICache(base::HashMap* i_cache, void* start_addr,
                             size_t size) {
   intptr_t start = reinterpret_cast<intptr_t>(start_addr);
   int intra_line = (start & CachePage::kLineMask);
@@ -722,9 +725,8 @@
   }
 }
 
-CachePage* Simulator::GetCachePage(v8::internal::HashMap* i_cache, void* page) {
-  v8::internal::HashMap::Entry* entry =
-      i_cache->LookupOrInsert(page, ICacheHash(page));
+CachePage* Simulator::GetCachePage(base::HashMap* i_cache, void* page) {
+  base::HashMap::Entry* entry = i_cache->LookupOrInsert(page, ICacheHash(page));
   if (entry->value == NULL) {
     CachePage* new_page = new CachePage();
     entry->value = new_page;
@@ -733,8 +735,7 @@
 }
 
 // Flush from start up to and not including start + size.
-void Simulator::FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                             int size) {
+void Simulator::FlushOnePage(base::HashMap* i_cache, intptr_t start, int size) {
   DCHECK(size <= CachePage::kPageSize);
   DCHECK(AllOnOnePage(start, size - 1));
   DCHECK((start & CachePage::kLineMask) == 0);
@@ -746,8 +747,7 @@
   memset(valid_bytemap, CachePage::LINE_INVALID, size >> CachePage::kLineShift);
 }
 
-void Simulator::CheckICache(v8::internal::HashMap* i_cache,
-                            Instruction* instr) {
+void Simulator::CheckICache(base::HashMap* i_cache, Instruction* instr) {
   intptr_t address = reinterpret_cast<intptr_t>(instr);
   void* page = reinterpret_cast<void*>(address & (~CachePage::kPageMask));
   void* line = reinterpret_cast<void*>(address & (~CachePage::kLineMask));
@@ -1513,7 +1513,7 @@
 Simulator::Simulator(Isolate* isolate) : isolate_(isolate) {
   i_cache_ = isolate_->simulator_i_cache();
   if (i_cache_ == NULL) {
-    i_cache_ = new v8::internal::HashMap(&ICacheMatch);
+    i_cache_ = new base::HashMap(&ICacheMatch);
     isolate_->set_simulator_i_cache(i_cache_);
   }
   Initialize(isolate);
@@ -1654,10 +1654,10 @@
 };
 
 // static
-void Simulator::TearDown(HashMap* i_cache, Redirection* first) {
+void Simulator::TearDown(base::HashMap* i_cache, Redirection* first) {
   Redirection::DeleteChain(first);
   if (i_cache != nullptr) {
-    for (HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
+    for (base::HashMap::Entry* entry = i_cache->Start(); entry != nullptr;
          entry = i_cache->Next(entry)) {
       delete static_cast<CachePage*>(entry->value);
     }
@@ -2028,15 +2028,17 @@
             case ExternalReference::BUILTIN_FP_FP_CALL:
             case ExternalReference::BUILTIN_COMPARE_CALL:
               PrintF("Call to host function at %p with args %f, %f",
-                     FUNCTION_ADDR(generic_target), dval0, dval1);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                     dval1);
               break;
             case ExternalReference::BUILTIN_FP_CALL:
               PrintF("Call to host function at %p with arg %f",
-                     FUNCTION_ADDR(generic_target), dval0);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0);
               break;
             case ExternalReference::BUILTIN_FP_INT_CALL:
               PrintF("Call to host function at %p with args %f, %" V8PRIdPTR,
-                     FUNCTION_ADDR(generic_target), dval0, ival);
+                     static_cast<void*>(FUNCTION_ADDR(generic_target)), dval0,
+                     ival);
               break;
             default:
               UNREACHABLE();
@@ -2178,8 +2180,8 @@
               "Call to host function at %p,\n"
               "\t\t\t\targs %08" V8PRIxPTR ", %08" V8PRIxPTR ", %08" V8PRIxPTR
               ", %08" V8PRIxPTR ", %08" V8PRIxPTR ", %08" V8PRIxPTR,
-              FUNCTION_ADDR(target), arg[0], arg[1], arg[2], arg[3], arg[4],
-              arg[5]);
+              static_cast<void*>(FUNCTION_ADDR(target)), arg[0], arg[1], arg[2],
+              arg[3], arg[4], arg[5]);
           if (!stack_aligned) {
             PrintF(" with unaligned stack %08" V8PRIxPTR "\n",
                    static_cast<intptr_t>(get_register(sp)));
@@ -5654,6 +5656,9 @@
 }
 
 void Simulator::CallInternal(byte* entry, int reg_arg_count) {
+  // Adjust JS-based stack limit to C-based stack limit.
+  isolate_->stack_guard()->AdjustStackLimitForSimulator();
+
   // Prepare to execute the code at entry
   if (ABI_USES_FUNCTION_DESCRIPTORS) {
     // entry is the function descriptor
@@ -5736,6 +5741,9 @@
 }
 
 intptr_t Simulator::Call(byte* entry, int argument_count, ...) {
+  // Adjust JS-based stack limit to C-based stack limit.
+  isolate_->stack_guard()->AdjustStackLimitForSimulator();
+
   // Remember the values of non-volatile registers.
   int64_t r6_val = get_register(r6);
   int64_t r7_val = get_register(r7);
@@ -5948,11 +5956,52 @@
   uint8_t imm_val = AS(SIInstruction)->I2Value();          \
   int length = 4;
 
+#define DECODE_SIL_INSTRUCTION(b1, d1, i2)     \
+  int b1 = AS(SILInstruction)->B1Value();      \
+  intptr_t d1 = AS(SILInstruction)->D1Value(); \
+  int16_t i2 = AS(SILInstruction)->I2Value();  \
+  int length = 6;
+
+#define DECODE_SIY_INSTRUCTION(b1, d1, i2)     \
+  int b1 = AS(SIYInstruction)->B1Value();      \
+  intptr_t d1 = AS(SIYInstruction)->D1Value(); \
+  uint8_t i2 = AS(SIYInstruction)->I2Value();  \
+  int length = 6;
+
 #define DECODE_RRE_INSTRUCTION(r1, r2)    \
   int r1 = AS(RREInstruction)->R1Value(); \
   int r2 = AS(RREInstruction)->R2Value(); \
   int length = 4;
 
+#define DECODE_RRE_INSTRUCTION_M3(r1, r2, m3) \
+  int r1 = AS(RREInstruction)->R1Value();     \
+  int r2 = AS(RREInstruction)->R2Value();     \
+  int m3 = AS(RREInstruction)->M3Value();     \
+  int length = 4;
+
+#define DECODE_RRE_INSTRUCTION_NO_R2(r1)  \
+  int r1 = AS(RREInstruction)->R1Value(); \
+  int length = 4;
+
+#define DECODE_RRD_INSTRUCTION(r1, r2, r3) \
+  int r1 = AS(RRDInstruction)->R1Value();  \
+  int r2 = AS(RRDInstruction)->R2Value();  \
+  int r3 = AS(RRDInstruction)->R3Value();  \
+  int length = 4;
+
+#define DECODE_RRF_E_INSTRUCTION(r1, r2, m3, m4) \
+  int r1 = AS(RRFInstruction)->R1Value();        \
+  int r2 = AS(RRFInstruction)->R2Value();        \
+  int m3 = AS(RRFInstruction)->M3Value();        \
+  int m4 = AS(RRFInstruction)->M4Value();        \
+  int length = 4;
+
+#define DECODE_RRF_A_INSTRUCTION(r1, r2, r3) \
+  int r1 = AS(RRFInstruction)->R1Value();    \
+  int r2 = AS(RRFInstruction)->R2Value();    \
+  int r3 = AS(RRFInstruction)->R3Value();    \
+  int length = 4;
+
 #define DECODE_RR_INSTRUCTION(r1, r2)    \
   int r1 = AS(RRInstruction)->R1Value(); \
   int r2 = AS(RRInstruction)->R2Value(); \
@@ -5994,6 +6043,13 @@
   int16_t i2 = AS(RIInstruction)->I2Value();                           \
   int length = 4;
 
+#define DECODE_RXE_INSTRUCTION(r1, b2, x2, d2) \
+  int r1 = AS(RXEInstruction)->R1Value();      \
+  int b2 = AS(RXEInstruction)->B2Value();      \
+  int x2 = AS(RXEInstruction)->X2Value();      \
+  int d2 = AS(RXEInstruction)->D2Value();      \
+  int length = 6;
+
 #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
@@ -6334,11 +6390,23 @@
   return length;
 }
 
-EVALUATE(SPM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SPM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BALR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BALR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BCTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BCTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(BCR) {
   DCHECK_OPCODE(BCR);
@@ -6357,11 +6425,23 @@
   return length;
 }
 
-EVALUATE(SVC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SVC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BSM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BSM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BASSM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BASSM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(BASR) {
   DCHECK_OPCODE(BASR);
@@ -6382,11 +6462,23 @@
   return length;
 }
 
-EVALUATE(MVCL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLCL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLCL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LNR) {
   DCHECK_OPCODE(LNR);
@@ -6560,9 +6652,17 @@
   return length;
 }
 
-EVALUATE(CDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LER) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LER) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(STH) {
   DCHECK_OPCODE(STH);
@@ -6598,7 +6698,11 @@
   return length;
 }
 
-EVALUATE(IC_z) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IC_z) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(EX) {
   DCHECK_OPCODE(EX);
@@ -6622,11 +6726,23 @@
   return length;
 }
 
-EVALUATE(BAL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BAL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BCT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BCT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LH) {
   DCHECK_OPCODE(LH);
@@ -6642,7 +6758,11 @@
   return length;
 }
 
-EVALUATE(CH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(AH) {
   DCHECK_OPCODE(AH);
@@ -6695,13 +6815,29 @@
   return length;
 }
 
-EVALUATE(BAS) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BAS) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CVD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CVB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(N) {
   DCHECK_OPCODE(N);
@@ -6808,13 +6944,29 @@
   return length;
 }
 
-EVALUATE(M) { return DecodeInstructionOriginal(instr); }
+EVALUATE(M) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(D) { return DecodeInstructionOriginal(instr); }
+EVALUATE(D) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(STD) {
   DCHECK_OPCODE(STD);
@@ -6838,7 +6990,11 @@
   return length;
 }
 
-EVALUATE(CD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(STE) {
   DCHECK_OPCODE(STE);
@@ -6873,9 +7029,17 @@
   return length;
 }
 
-EVALUATE(BRXH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BRXH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BRXLE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BRXLE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(BXH) {
   DCHECK_OPCODE(BXH);
@@ -6905,7 +7069,11 @@
   return length;
 }
 
-EVALUATE(BXLE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BXLE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(SRL) {
   DCHECK_OPCODE(SRL);
@@ -7018,7 +7186,11 @@
   return length;
 }
 
-EVALUATE(SLDA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLDA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(STM) {
   DCHECK_OPCODE(STM);
@@ -7061,11 +7233,23 @@
   return length;
 }
 
-EVALUATE(MVI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TS) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TS) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(CLI) {
   DCHECK_OPCODE(CLI);
@@ -7078,9 +7262,17 @@
   return length;
 }
 
-EVALUATE(OI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LM) {
   DCHECK_OPCODE(LM);
@@ -7102,25 +7294,65 @@
   return length;
 }
 
-EVALUATE(MVCLE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCLE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLCLE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLCLE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDS) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDS) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ICM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ICM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BPRP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BPRP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BPP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BPP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MVN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(MVC) {
   DCHECK_OPCODE(MVC);
@@ -7143,73 +7375,209 @@
   return length;
 }
 
-EVALUATE(MVZ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVZ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(OC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MVCP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ED) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ED) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EDMK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EDMK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PKU) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PKU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(UNPKU) { return DecodeInstructionOriginal(instr); }
+EVALUATE(UNPKU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MVCIN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCIN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PKA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PKA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(UNPKA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(UNPKA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PLO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PLO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LMD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LMD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MVO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PACK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PACK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(UNPK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(UNPK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ZAP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ZAP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(UPT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(UPT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PFPO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PFPO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IIHH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IIHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IIHL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IIHL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IILH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IILH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IILL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IILL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NIHH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NIHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NIHL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NIHL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(NILH) {
   DCHECK_OPCODE(NILH);
@@ -7233,9 +7601,17 @@
   return length;
 }
 
-EVALUATE(OIHH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OIHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(OIHL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OIHL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(OILH) {
   DCHECK_OPCODE(OILH);
@@ -7258,15 +7634,35 @@
   return length;
 }
 
-EVALUATE(LLIHH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLIHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLIHL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLIHL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLILH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLILH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLILL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLILL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TMLH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TMLH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(TMLL) {
   DCHECK_OPCODE(TMLL);
@@ -7326,9 +7722,17 @@
   return length;
 }
 
-EVALUATE(TMHH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TMHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TMHL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TMHL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(BRAS) {
   DCHECK_OPCODE(BRAS);
@@ -7437,7 +7841,11 @@
   return length;
 }
 
-EVALUATE(LGFI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGFI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(BRASL) {
   DCHECK_OPCODE(BRASL);
@@ -7668,93 +8076,269 @@
   return length;
 }
 
-EVALUATE(LLHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LGHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LGRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STGRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STGRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LGFRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGFRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGFRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGFRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EXRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EXRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PFDRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PFDRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CHRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CHRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGFRL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGFRL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ECTG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ECTG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CSST) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CSST) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPDG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPDG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BRCTH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BRCTH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AIH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AIH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALSIH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALSIH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALSIHN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALSIHN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CIH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CIH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CFC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IPM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IPM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(HSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(HSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TPI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TPI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SAL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SAL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCRW) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCRW) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCPS) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCPS) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RCHP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RCHP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SCHM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SCHM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CKSM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CKSM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SAR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SAR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EAR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EAR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(MSR) {
   DCHECK_OPCODE(MSR);
@@ -7765,49 +8349,144 @@
   return length;
 }
 
-EVALUATE(MVST) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVST) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CUSE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CUSE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRST) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRST) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XSCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XSCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCKE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCKE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCKF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCKF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRNM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRNM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STFPC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STFPC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LFPC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LFPC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CUUTF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CUUTF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CUTFU) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CUTFU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STFLE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STFLE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRNMB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRNMB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRNMT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRNMT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LFAS) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LFAS) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(PPA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PPA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ETND) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ETND) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TEND) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TEND) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NIAI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NIAI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TABORT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TABORT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRAP4) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRAP4) {
+  DCHECK_OPCODE(TRAP4);
+  int length = 4;
+  // whack the space of the caller allocated stack
+  int64_t sp_addr = get_register(sp);
+  for (int i = 0; i < kCalleeRegisterSaveAreaSize / kPointerSize; ++i) {
+    // we dont want to whack the RA (r14)
+    if (i != 14) (reinterpret_cast<intptr_t*>(sp_addr))[i] = 0xdeadbabe;
+  }
+  SoftwareInterrupt(instr);
+  return length;
+}
 
 EVALUATE(LPEBR) {
   DCHECK_OPCODE(LPEBR);
@@ -7827,7 +8506,11 @@
   return length;
 }
 
-EVALUATE(LNEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LTEBR) {
   DCHECK_OPCODE(LTEBR);
@@ -7839,7 +8522,11 @@
   return length;
 }
 
-EVALUATE(LCEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LCEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LDEBR) {
   DCHECK_OPCODE(LDEBR);
@@ -7850,13 +8537,29 @@
   return length;
 }
 
-EVALUATE(LXDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LXEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MXDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MXDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(CEBR) {
   DCHECK_OPCODE(CEBR);
@@ -7896,7 +8599,11 @@
   return length;
 }
 
-EVALUATE(MDEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(DEBR) {
   DCHECK_OPCODE(DEBR);
@@ -7910,9 +8617,17 @@
   return length;
 }
 
-EVALUATE(MAEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MAEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LPDBR) {
   DCHECK_OPCODE(LPDBR);
@@ -7931,7 +8646,11 @@
   return length;
 }
 
-EVALUATE(LNDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 EVALUATE(LTDBR) {
   DCHECK_OPCODE(LTDBR);
@@ -7961,875 +8680,3890 @@
   return length;
 }
 
-EVALUATE(SQEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SQEBR) {
+  DCHECK_OPCODE(SQEBR);
+  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::sqrt(fr2_val);
+  set_d_register_from_float32(r1, fr1_val);
+  return length;
+}
 
-EVALUATE(SQDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SQDBR) {
+  DCHECK_OPCODE(SQDBR);
+  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::sqrt(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(SQXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SQXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MEEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MEEBR) {
+  DCHECK_OPCODE(MEEBR);
+  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(KDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDBR) {
+  DCHECK_OPCODE(CDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r1_val = get_double_from_d_register(r1);
+  double r2_val = get_double_from_d_register(r2);
+  if (isNaN(r1_val) || isNaN(r2_val)) {
+    condition_reg_ = CC_OF;
+  } else {
+    SetS390ConditionCode<double>(r1_val, r2_val);
+  }
+  return length;
+}
 
-EVALUATE(ADBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ADBR) {
+  DCHECK_OPCODE(ADBR);
+  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);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(SDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SDBR) {
+  DCHECK_OPCODE(SDBR);
+  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);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(MDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDBR) {
+  DCHECK_OPCODE(MDBR);
+  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);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(DDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DDBR) {
+  DCHECK_OPCODE(DDBR);
+  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);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(MADBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MADBR) {
+  DCHECK_OPCODE(MADBR);
+  DECODE_RRD_INSTRUCTION(r1, r2, r3);
+  double r1_val = get_double_from_d_register(r1);
+  double r2_val = get_double_from_d_register(r2);
+  double r3_val = get_double_from_d_register(r3);
+  r1_val += r2_val * r3_val;
+  set_d_register_from_double(r1, r1_val);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(MSDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LNXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LTXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LCXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LCXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LEDBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LEDBRA) {
+  DCHECK_OPCODE(LEDBRA);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r2_val = get_double_from_d_register(r2);
+  set_d_register_from_float32(r1, static_cast<float>(r2_val));
+  return length;
+}
 
-EVALUATE(LDXBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDXBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LEXBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LEXBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(FIXBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FIXBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DXBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TBEDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TBEDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TBDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TBDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DIEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DIEBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(FIEBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FIEBRA) {
+  DCHECK_OPCODE(FIEBRA);
+  DECODE_RRF_E_INSTRUCTION(r1, r2, m3, m4);
+  float r2_val = get_float32_from_d_register(r2);
+  CHECK(m4 == 0);
+  switch (m3) {
+    case Assembler::FIDBRA_ROUND_TO_NEAREST_AWAY_FROM_0:
+      set_d_register_from_float32(r1, round(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_0:
+      set_d_register_from_float32(r1, trunc(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_POS_INF:
+      set_d_register_from_float32(r1, std::ceil(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_NEG_INF:
+      set_d_register_from_float32(r1, std::floor(r2_val));
+      break;
+    default:
+      UNIMPLEMENTED();
+      break;
+  }
+  return length;
+}
 
-EVALUATE(THDER) { return DecodeInstructionOriginal(instr); }
+EVALUATE(THDER) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(THDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(THDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DIDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DIDBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(FIDBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FIDBRA) {
+  DCHECK_OPCODE(FIDBRA);
+  DECODE_RRF_E_INSTRUCTION(r1, r2, m3, m4);
+  double r2_val = get_double_from_d_register(r2);
+  CHECK(m4 == 0);
+  switch (m3) {
+    case Assembler::FIDBRA_ROUND_TO_NEAREST_AWAY_FROM_0:
+      set_d_register_from_double(r1, round(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_0:
+      set_d_register_from_double(r1, trunc(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_POS_INF:
+      set_d_register_from_double(r1, std::ceil(r2_val));
+      break;
+    case Assembler::FIDBRA_ROUND_TOWARD_NEG_INF:
+      set_d_register_from_double(r1, std::floor(r2_val));
+      break;
+    default:
+      UNIMPLEMENTED();
+      break;
+  }
+  return length;
+}
 
-EVALUATE(LXR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPDFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPDFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LNDFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNDFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LCDFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LCDFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LZER) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LZER) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LZDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LZDR) {
+  DCHECK_OPCODE(LZDR);
+  DECODE_RRE_INSTRUCTION_NO_R2(r1);
+  set_d_register_from_double(r1, 0.0);
+  return length;
+}
 
-EVALUATE(LZXR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LZXR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SFPC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SFPC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SFASR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SFASR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EFPC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EFPC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CELFBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CELFBR) {
+  DCHECK_OPCODE(CELFBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  float r1_val = static_cast<float>(r2_val);
+  set_d_register_from_float32(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CDLFBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDLFBR) {
+  DCHECK_OPCODE(CDLFBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  double r1_val = static_cast<double>(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CXLFBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXLFBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CEFBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CEFBRA) {
+  DCHECK_OPCODE(CEFBRA);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t fr2_val = get_low_register<int32_t>(r2);
+  float fr1_val = static_cast<float>(fr2_val);
+  set_d_register_from_float32(r1, fr1_val);
+  return length;
+}
 
-EVALUATE(CDFBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDFBRA) {
+  DCHECK_OPCODE(CDFBRA);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  double r1_val = static_cast<double>(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CXFBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXFBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CFEBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFEBRA) {
+  DCHECK_OPCODE(CFEBRA);
+  DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
+  float r2_fval = get_float32_from_d_register(r2);
+  int32_t r1_val = 0;
 
-EVALUATE(CFDBRA) { return DecodeInstructionOriginal(instr); }
+  SetS390RoundConditionCode(r2_fval, INT32_MAX, INT32_MIN);
 
-EVALUATE(CFXBRA) { return DecodeInstructionOriginal(instr); }
+  switch (mask_val) {
+    case CURRENT_ROUNDING_MODE:
+    case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
+      r1_val = static_cast<int32_t>(r2_fval);
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0: {
+      float ceil_val = std::ceil(r2_fval);
+      float floor_val = std::floor(r2_fval);
+      float sub_val1 = std::fabs(r2_fval - floor_val);
+      float sub_val2 = std::fabs(r2_fval - ceil_val);
+      if (sub_val1 > sub_val2) {
+        r1_val = static_cast<int32_t>(ceil_val);
+      } else if (sub_val1 < sub_val2) {
+        r1_val = static_cast<int32_t>(floor_val);
+      } else {  // round away from zero:
+        if (r2_fval > 0.0) {
+          r1_val = static_cast<int32_t>(ceil_val);
+        } else {
+          r1_val = static_cast<int32_t>(floor_val);
+        }
+      }
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
+      float ceil_val = std::ceil(r2_fval);
+      float floor_val = std::floor(r2_fval);
+      float sub_val1 = std::fabs(r2_fval - floor_val);
+      float sub_val2 = std::fabs(r2_fval - ceil_val);
+      if (sub_val1 > sub_val2) {
+        r1_val = static_cast<int32_t>(ceil_val);
+      } else if (sub_val1 < sub_val2) {
+        r1_val = static_cast<int32_t>(floor_val);
+      } else {  // check which one is even:
+        int32_t c_v = static_cast<int32_t>(ceil_val);
+        int32_t f_v = static_cast<int32_t>(floor_val);
+        if (f_v % 2 == 0)
+          r1_val = f_v;
+        else
+          r1_val = c_v;
+      }
+      break;
+    }
+    case ROUND_TOWARD_0: {
+      // check for overflow, cast r2_fval to 64bit integer
+      // then check value within the range of INT_MIN and INT_MAX
+      // and set condition code accordingly
+      int64_t temp = static_cast<int64_t>(r2_fval);
+      if (temp < INT_MIN || temp > INT_MAX) {
+        condition_reg_ = CC_OF;
+      }
+      r1_val = static_cast<int32_t>(r2_fval);
+      break;
+    }
+    case ROUND_TOWARD_PLUS_INFINITE: {
+      r1_val = static_cast<int32_t>(std::ceil(r2_fval));
+      break;
+    }
+    case ROUND_TOWARD_MINUS_INFINITE: {
+      // check for overflow, cast r2_fval to 64bit integer
+      // then check value within the range of INT_MIN and INT_MAX
+      // and set condition code accordingly
+      int64_t temp = static_cast<int64_t>(std::floor(r2_fval));
+      if (temp < INT_MIN || temp > INT_MAX) {
+        condition_reg_ = CC_OF;
+      }
+      r1_val = static_cast<int32_t>(std::floor(r2_fval));
+      break;
+    }
+    default:
+      UNREACHABLE();
+  }
+  set_low_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CLFEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFDBRA) {
+  DCHECK_OPCODE(CFDBRA);
+  DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
+  double r2_val = get_double_from_d_register(r2);
+  int32_t r1_val = 0;
 
-EVALUATE(CLFDBR) { return DecodeInstructionOriginal(instr); }
+  SetS390RoundConditionCode(r2_val, INT32_MAX, INT32_MIN);
 
-EVALUATE(CLFXBR) { return DecodeInstructionOriginal(instr); }
+  switch (mask_val) {
+    case CURRENT_ROUNDING_MODE:
+    case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
+      r1_val = static_cast<int32_t>(r2_val);
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0: {
+      double ceil_val = std::ceil(r2_val);
+      double floor_val = std::floor(r2_val);
+      double sub_val1 = std::fabs(r2_val - floor_val);
+      double sub_val2 = std::fabs(r2_val - ceil_val);
+      if (sub_val1 > sub_val2) {
+        r1_val = static_cast<int32_t>(ceil_val);
+      } else if (sub_val1 < sub_val2) {
+        r1_val = static_cast<int32_t>(floor_val);
+      } else {  // round away from zero:
+        if (r2_val > 0.0) {
+          r1_val = static_cast<int32_t>(ceil_val);
+        } else {
+          r1_val = static_cast<int32_t>(floor_val);
+        }
+      }
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
+      double ceil_val = std::ceil(r2_val);
+      double floor_val = std::floor(r2_val);
+      double sub_val1 = std::fabs(r2_val - floor_val);
+      double sub_val2 = std::fabs(r2_val - ceil_val);
+      if (sub_val1 > sub_val2) {
+        r1_val = static_cast<int32_t>(ceil_val);
+      } else if (sub_val1 < sub_val2) {
+        r1_val = static_cast<int32_t>(floor_val);
+      } else {  // check which one is even:
+        int32_t c_v = static_cast<int32_t>(ceil_val);
+        int32_t f_v = static_cast<int32_t>(floor_val);
+        if (f_v % 2 == 0)
+          r1_val = f_v;
+        else
+          r1_val = c_v;
+      }
+      break;
+    }
+    case ROUND_TOWARD_0: {
+      // check for overflow, cast r2_val to 64bit integer
+      // then check value within the range of INT_MIN and INT_MAX
+      // and set condition code accordingly
+      int64_t temp = static_cast<int64_t>(r2_val);
+      if (temp < INT_MIN || temp > INT_MAX) {
+        condition_reg_ = CC_OF;
+      }
+      r1_val = static_cast<int32_t>(r2_val);
+      break;
+    }
+    case ROUND_TOWARD_PLUS_INFINITE: {
+      r1_val = static_cast<int32_t>(std::ceil(r2_val));
+      break;
+    }
+    case ROUND_TOWARD_MINUS_INFINITE: {
+      // check for overflow, cast r2_val to 64bit integer
+      // then check value within the range of INT_MIN and INT_MAX
+      // and set condition code accordingly
+      int64_t temp = static_cast<int64_t>(std::floor(r2_val));
+      if (temp < INT_MIN || temp > INT_MAX) {
+        condition_reg_ = CC_OF;
+      }
+      r1_val = static_cast<int32_t>(std::floor(r2_val));
+      break;
+    }
+    default:
+      UNREACHABLE();
+  }
+  set_low_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CELGBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFXBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDLGBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFEBR) {
+  DCHECK_OPCODE(CLFEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float r2_val = get_float32_from_d_register(r2);
+  uint32_t r1_val = static_cast<uint32_t>(r2_val);
+  set_low_register(r1, r1_val);
+  SetS390ConvertConditionCode<double>(r2_val, r1_val, UINT32_MAX);
+  return length;
+}
 
-EVALUATE(CXLGBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFDBR) {
+  DCHECK_OPCODE(CLFDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r2_val = get_double_from_d_register(r2);
+  uint32_t r1_val = static_cast<uint32_t>(r2_val);
+  set_low_register(r1, r1_val);
+  SetS390ConvertConditionCode<double>(r2_val, r1_val, UINT32_MAX);
+  return length;
+}
 
-EVALUATE(CEGBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFXBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDGBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CELGBR) {
+  DCHECK_OPCODE(CELGBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint64_t r2_val = get_register(r2);
+  float r1_val = static_cast<float>(r2_val);
+  set_d_register_from_float32(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CXGBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDLGBR) {
+  DCHECK_OPCODE(CDLGBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint64_t r2_val = get_register(r2);
+  double r1_val = static_cast<double>(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CGEBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXLGBR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGDBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CEGBRA) {
+  DCHECK_OPCODE(CEGBRA);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t fr2_val = get_register(r2);
+  float fr1_val = static_cast<float>(fr2_val);
+  set_d_register_from_float32(r1, fr1_val);
+  return length;
+}
 
-EVALUATE(CGXBRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDGBRA) {
+  DCHECK_OPCODE(CDGBRA);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_register(r2);
+  double r1_val = static_cast<double>(r2_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CLGEBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXGBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLGDBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGEBRA) {
+  DCHECK_OPCODE(CGEBRA);
+  DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
+  float r2_fval = get_float32_from_d_register(r2);
+  int64_t r1_val = 0;
 
-EVALUATE(CFER) { return DecodeInstructionOriginal(instr); }
+  SetS390RoundConditionCode(r2_fval, INT64_MAX, INT64_MIN);
 
-EVALUATE(CFDR) { return DecodeInstructionOriginal(instr); }
+  switch (mask_val) {
+    case CURRENT_ROUNDING_MODE:
+    case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0:
+    case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
+      UNIMPLEMENTED();
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
+      float ceil_val = std::ceil(r2_fval);
+      float floor_val = std::floor(r2_fval);
+      if (std::abs(r2_fval - floor_val) > std::abs(r2_fval - ceil_val)) {
+        r1_val = static_cast<int64_t>(ceil_val);
+      } else if (std::abs(r2_fval - floor_val) < std::abs(r2_fval - ceil_val)) {
+        r1_val = static_cast<int64_t>(floor_val);
+      } else {  // check which one is even:
+        int64_t c_v = static_cast<int64_t>(ceil_val);
+        int64_t f_v = static_cast<int64_t>(floor_val);
+        if (f_v % 2 == 0)
+          r1_val = f_v;
+        else
+          r1_val = c_v;
+      }
+      break;
+    }
+    case ROUND_TOWARD_0: {
+      r1_val = static_cast<int64_t>(r2_fval);
+      break;
+    }
+    case ROUND_TOWARD_PLUS_INFINITE: {
+      r1_val = static_cast<int64_t>(std::ceil(r2_fval));
+      break;
+    }
+    case ROUND_TOWARD_MINUS_INFINITE: {
+      r1_val = static_cast<int64_t>(std::floor(r2_fval));
+      break;
+    }
+    default:
+      UNREACHABLE();
+  }
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CFXR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGDBRA) {
+  DCHECK_OPCODE(CGDBRA);
+  DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
+  double r2_val = get_double_from_d_register(r2);
+  int64_t r1_val = 0;
 
-EVALUATE(LDGR) { return DecodeInstructionOriginal(instr); }
+  SetS390RoundConditionCode(r2_val, INT64_MAX, INT64_MIN);
 
-EVALUATE(CGER) { return DecodeInstructionOriginal(instr); }
+  switch (mask_val) {
+    case CURRENT_ROUNDING_MODE:
+    case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0:
+    case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
+      UNIMPLEMENTED();
+      break;
+    }
+    case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
+      double ceil_val = std::ceil(r2_val);
+      double floor_val = std::floor(r2_val);
+      if (std::abs(r2_val - floor_val) > std::abs(r2_val - ceil_val)) {
+        r1_val = static_cast<int64_t>(ceil_val);
+      } else if (std::abs(r2_val - floor_val) < std::abs(r2_val - ceil_val)) {
+        r1_val = static_cast<int64_t>(floor_val);
+      } else {  // check which one is even:
+        int64_t c_v = static_cast<int64_t>(ceil_val);
+        int64_t f_v = static_cast<int64_t>(floor_val);
+        if (f_v % 2 == 0)
+          r1_val = f_v;
+        else
+          r1_val = c_v;
+      }
+      break;
+    }
+    case ROUND_TOWARD_0: {
+      r1_val = static_cast<int64_t>(r2_val);
+      break;
+    }
+    case ROUND_TOWARD_PLUS_INFINITE: {
+      r1_val = static_cast<int64_t>(std::ceil(r2_val));
+      break;
+    }
+    case ROUND_TOWARD_MINUS_INFINITE: {
+      r1_val = static_cast<int64_t>(std::floor(r2_val));
+      break;
+    }
+    default:
+      UNREACHABLE();
+  }
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(CGDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGXBRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGXR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLGEBR) {
+  DCHECK_OPCODE(CLGEBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  float r2_val = get_float32_from_d_register(r2);
+  uint64_t r1_val = static_cast<uint64_t>(r2_val);
+  set_register(r1, r1_val);
+  SetS390ConvertConditionCode<double>(r2_val, r1_val, UINT64_MAX);
+  return length;
+}
 
-EVALUATE(LGDR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLGDBR) {
+  DCHECK_OPCODE(CLGDBR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  double r2_val = get_double_from_d_register(r2);
+  uint64_t r1_val = static_cast<uint64_t>(r2_val);
+  set_register(r1, r1_val);
+  SetS390ConvertConditionCode<double>(r2_val, r1_val, UINT64_MAX);
+  return length;
+}
 
-EVALUATE(MDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFER) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MDTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DDTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFXR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ADTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDGR) {
+  DCHECK_OPCODE(LDGR);
+  // Load FPR from GPR (L <- 64)
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint64_t int_val = get_register(r2);
+  // double double_val = bit_cast<double, uint64_t>(int_val);
+  // set_d_register_from_double(rreInst->R1Value(), double_val);
+  set_d_register(r1, int_val);
+  return length;
+}
 
-EVALUATE(SDTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGER) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LDETR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGDR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LEDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGXR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LTDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGDR) {
+  DCHECK_OPCODE(LGDR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Load GPR from FPR (64 <- L)
+  int64_t double_val = get_d_register(r2);
+  set_register(r1, double_val);
+  return length;
+}
 
-EVALUATE(FIDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MXTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DXTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DDTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AXTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ADTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SXTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SDTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LXDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDETR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LDXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LEDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LTXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(FIXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FIDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MXTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGDTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DXTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CUDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AXTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SXTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EEDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ESDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGXTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FIXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CUXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CSXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGDTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CUDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EEXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ESXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EEDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDGTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ESDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDUTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDSTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGXTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CEDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CUXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(QADTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CSXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IEDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RRDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EEXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXGTRA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ESXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXUTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDGTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXSTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDUTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CEXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDSTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(QAXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CEDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(IEXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(QADTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RRXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IEDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RRDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LNGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXGTRA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LTGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXUTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LCGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXSTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CEXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(QAXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(IEXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RRXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DSGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LRVGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNGR) {
+  DCHECK_OPCODE(LNGR);
+  // Load Negative (64)
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_register(r2);
+  r2_val = (r2_val >= 0) ? -r2_val : r2_val;  // If pos, then negate it.
+  set_register(r1, r2_val);
+  condition_reg_ = (r2_val == 0) ? CC_EQ : CC_LT;  // CC0 - result is zero
+  // CC1 - result is negative
+  return length;
+}
 
-EVALUATE(LPGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTGR) {
+  DCHECK_OPCODE(LTGR);
+  // Load Register (64)
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_register(r2);
+  SetS390ConditionCode<int64_t>(r2_val, 0);
+  set_register(r1, get_register(r2));
+  return length;
+}
 
-EVALUATE(LNGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LCGR) {
+  DCHECK_OPCODE(LCGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_register(r2);
+  r2_val = ~r2_val;
+  r2_val = r2_val + 1;
+  set_register(r1, r2_val);
+  SetS390ConditionCode<int64_t>(r2_val, 0);
+  // if the input is INT_MIN, loading its compliment would be overflowing
+  if (r2_val < 0 && (r2_val + 1) > 0) {
+    SetS390OverflowCode(true);
+  }
+  return length;
+}
 
-EVALUATE(LTGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SGR) {
+  DCHECK_OPCODE(SGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(r1_val, r2_val, int64_t);
+  r1_val -= r2_val;
+  SetS390ConditionCode<int64_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(LCGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSGR) {
+  DCHECK_OPCODE(MSGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  set_register(r1, r1_val * r2_val);
+  return length;
+}
 
-EVALUATE(AGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DSGR) {
+  DCHECK_OPCODE(DSGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
 
-EVALUATE(SGFR) { return DecodeInstructionOriginal(instr); }
+  DCHECK(r1 % 2 == 0);
 
-EVALUATE(ALGFR) { return DecodeInstructionOriginal(instr); }
+  int64_t dividend = get_register(r1 + 1);
+  int64_t divisor = get_register(r2);
+  set_register(r1, dividend % divisor);
+  set_register(r1 + 1, dividend / divisor);
+  return length;
+}
 
-EVALUATE(SLGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRVGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DSGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LNGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KMAC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTGFR) {
+  DCHECK_OPCODE(LTGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Load and Test Register (64 <- 32)  (Sign Extends 32-bit val)
+  // Load Register (64 <- 32)  (Sign Extends 32-bit val)
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int64_t result = static_cast<int64_t>(r2_val);
+  set_register(r1, result);
+  SetS390ConditionCode<int64_t>(result, 0);
+  return length;
+}
 
-EVALUATE(LRVR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LCGFR) {
+  DCHECK_OPCODE(LCGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Load and Test Register (64 <- 32)  (Sign Extends 32-bit val)
+  // Load Register (64 <- 32)  (Sign Extends 32-bit val)
+  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(CGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGFR) {
+  DCHECK_OPCODE(LLGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  uint64_t r2_finalval = (static_cast<uint64_t>(r2_val) & 0x00000000ffffffff);
+  set_register(r1, r2_finalval);
+  return length;
+}
 
-EVALUATE(CLGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KMF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AGFR) {
+  DCHECK_OPCODE(AGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Add Register (64 <- 32)  (Sign Extends 32-bit val)
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = static_cast<int64_t>(get_low_register<int32_t>(r2));
+  bool isOF = CheckOverflowForIntAdd(r1_val, r2_val, int64_t);
+  r1_val += r2_val;
+  SetS390ConditionCode<int64_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(KMO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SGFR) {
+  DCHECK_OPCODE(SGFR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Sub Reg (64 <- 32)
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = static_cast<int64_t>(get_low_register<int32_t>(r2));
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(r1_val, r2_val, int64_t);
+  r1_val -= r2_val;
+  SetS390ConditionCode<int64_t>(r1_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(PCC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KMCTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KM) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KMC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DSGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGFR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KMAC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KIMD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRVR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KLMD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGR) {
+  DCHECK_OPCODE(CGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Compare (64)
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  SetS390ConditionCode<int64_t>(r1_val, r2_val);
+  return length;
+}
 
-EVALUATE(CFDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLGR) {
+  DCHECK_OPCODE(CLGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  // Compare Logical (64)
+  uint64_t r1_val = static_cast<uint64_t>(get_register(r1));
+  uint64_t r2_val = static_cast<uint64_t>(get_register(r2));
+  SetS390ConditionCode<uint64_t>(r1_val, r2_val);
+  return length;
+}
 
-EVALUATE(CLGDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KMF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLFDTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KMO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BCTGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PCC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CFXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KMCTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLFXTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KM) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDFTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KMC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDLGTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGFR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDLFTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KIMD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXFTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KLMD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXLGTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXLFTR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLGDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGRT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFDTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BCTGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(OGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CFXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFXTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(FLOGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDFTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGCR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDLGTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDLFTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MLGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXFTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DLGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXLGTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALCGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXLFTR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLBGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGRT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(EPSW) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NGR) {
+  DCHECK_OPCODE(NGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  r1_val &= r2_val;
+  SetS390BitWiseConditionCode<uint64_t>(r1_val);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(TRTT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OGR) {
+  DCHECK_OPCODE(OGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  r1_val |= r2_val;
+  SetS390BitWiseConditionCode<uint64_t>(r1_val);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(TRTO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XGR) {
+  DCHECK_OPCODE(XGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r1_val = get_register(r1);
+  int64_t r2_val = get_register(r2);
+  r1_val ^= r2_val;
+  SetS390BitWiseConditionCode<uint64_t>(r1_val);
+  set_register(r1, r1_val);
+  return length;
+}
 
-EVALUATE(TROT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(FLOGR) {
+  DCHECK_OPCODE(FLOGR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
 
-EVALUATE(TROO) { return DecodeInstructionOriginal(instr); }
+  DCHECK(r1 % 2 == 0);
 
-EVALUATE(LLCR) { return DecodeInstructionOriginal(instr); }
+  int64_t r2_val = get_register(r2);
 
-EVALUATE(LLHR) { return DecodeInstructionOriginal(instr); }
+  int i = 0;
+  for (; i < 64; i++) {
+    if (r2_val < 0) break;
+    r2_val <<= 1;
+  }
 
-EVALUATE(MLR) { return DecodeInstructionOriginal(instr); }
+  r2_val = get_register(r2);
 
-EVALUATE(DLR) { return DecodeInstructionOriginal(instr); }
+  int64_t mask = ~(1 << (63 - i));
+  set_register(r1, i);
+  set_register(r1 + 1, r2_val & mask);
+  return length;
+}
 
-EVALUATE(ALCR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGCR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLBR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CU14) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MLGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CU24) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DLGR) {
+  DCHECK_OPCODE(DLGR);
+#ifdef V8_TARGET_ARCH_S390X
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint64_t r1_val = get_register(r1);
+  uint64_t r2_val = get_register(r2);
+  DCHECK(r1 % 2 == 0);
+  unsigned __int128 dividend = static_cast<unsigned __int128>(r1_val) << 64;
+  dividend += get_register(r1 + 1);
+  uint64_t remainder = dividend % r2_val;
+  uint64_t quotient = dividend / r2_val;
+  r1_val = remainder;
+  set_register(r1, remainder);
+  set_register(r1 + 1, quotient);
+  return length;
+#else
+  UNREACHABLE();
+#endif
+}
 
-EVALUATE(CU41) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALCGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CU42) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLBGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRTRE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(EPSW) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRSTU) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRTT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TRTE) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TRTO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AHHHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TROT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SHHHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TROO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALHHHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLCR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLHHHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CHHR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MLR) {
+  DCHECK_OPCODE(MLR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  DCHECK(r1 % 2 == 0);
+
+  uint32_t r1_val = get_low_register<uint32_t>(r1 + 1);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  uint64_t product =
+      static_cast<uint64_t>(r1_val) * static_cast<uint64_t>(r2_val);
+  int32_t high_bits = product >> 32;
+  int32_t low_bits = product & 0x00000000FFFFFFFF;
+  set_low_register(r1, high_bits);
+  set_low_register(r1 + 1, low_bits);
+  return length;
+}
+
+EVALUATE(DLR) {
+  DCHECK_OPCODE(DLR);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  uint32_t r1_val = get_low_register<uint32_t>(r1);
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  DCHECK(r1 % 2 == 0);
+  uint64_t dividend = static_cast<uint64_t>(r1_val) << 32;
+  dividend += get_low_register<uint32_t>(r1 + 1);
+  uint32_t remainder = dividend % r2_val;
+  uint32_t quotient = dividend / r2_val;
+  r1_val = remainder;
+  set_low_register(r1, remainder);
+  set_low_register(r1 + 1, quotient);
+  return length;
+}
+
+EVALUATE(ALCR) {
+  DCHECK_OPCODE(ALCR);
+  DECODE_RRE_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;
+  bool isOF_original = CheckOverflowForUIntAdd(r1_val, r2_val);
+  if (TestConditionCode((Condition)2) || TestConditionCode((Condition)3)) {
+    alu_out = alu_out + 1;
+    isOF = isOF_original || CheckOverflowForUIntAdd(alu_out, 1);
+  } else {
+    isOF = isOF_original;
+  }
+  set_low_register(r1, alu_out);
+  SetS390ConditionCodeCarry<uint32_t>(alu_out, isOF);
+  return length;
+}
+
+EVALUATE(SLBR) {
+  DCHECK_OPCODE(SLBR);
+  DECODE_RRE_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;
+  bool isOF_original = CheckOverflowForUIntSub(r1_val, r2_val);
+  if (TestConditionCode((Condition)2) || TestConditionCode((Condition)3)) {
+    alu_out = alu_out - 1;
+    isOF = isOF_original || CheckOverflowForUIntSub(alu_out, 1);
+  } else {
+    isOF = isOF_original;
+  }
+  set_low_register(r1, alu_out);
+  SetS390ConditionCodeCarry<uint32_t>(alu_out, isOF);
+  return length;
+}
+
+EVALUATE(CU14) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(CU24) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(CU41) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(CU42) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(TRTRE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(SRSTU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(TRTE) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(AHHHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(SHHHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(ALHHHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(SLHHHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(CHHR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(AHHLR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(SHHLR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(ALHHLR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(SLHHLR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(CHLR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(POPCNT_Z) {
+  DCHECK_OPCODE(POPCNT_Z);
+  DECODE_RRE_INSTRUCTION(r1, r2);
+  int64_t r2_val = get_register(r2);
+  int64_t r1_val = 0;
+
+  uint8_t* r2_val_ptr = reinterpret_cast<uint8_t*>(&r2_val);
+  uint8_t* r1_val_ptr = reinterpret_cast<uint8_t*>(&r1_val);
+  for (int i = 0; i < 8; i++) {
+    uint32_t x = static_cast<uint32_t>(r2_val_ptr[i]);
+#if defined(__GNUC__)
+    r1_val_ptr[i] = __builtin_popcount(x);
+#else
+#error unsupport __builtin_popcount
+#endif
+  }
+  set_register(r1, static_cast<uint64_t>(r1_val));
+  return length;
+}
+
+EVALUATE(LOCGR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(NGRK) {
+  DCHECK_OPCODE(NGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering arithmetics / bitwise ops.
+  int64_t r2_val = get_register(r2);
+  int64_t r3_val = get_register(r3);
+  uint64_t bitwise_result = 0;
+  bitwise_result = r2_val & r3_val;
+  SetS390BitWiseConditionCode<uint64_t>(bitwise_result);
+  set_register(r1, bitwise_result);
+  return length;
+}
+
+EVALUATE(OGRK) {
+  DCHECK_OPCODE(OGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering arithmetics / bitwise ops.
+  int64_t r2_val = get_register(r2);
+  int64_t r3_val = get_register(r3);
+  uint64_t bitwise_result = 0;
+  bitwise_result = r2_val | r3_val;
+  SetS390BitWiseConditionCode<uint64_t>(bitwise_result);
+  set_register(r1, bitwise_result);
+  return length;
+}
+
+EVALUATE(XGRK) {
+  DCHECK_OPCODE(XGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering arithmetics / bitwise ops.
+  int64_t r2_val = get_register(r2);
+  int64_t r3_val = get_register(r3);
+  uint64_t bitwise_result = 0;
+  bitwise_result = r2_val ^ r3_val;
+  SetS390BitWiseConditionCode<uint64_t>(bitwise_result);
+  set_register(r1, bitwise_result);
+  return length;
+}
+
+EVALUATE(AGRK) {
+  DCHECK_OPCODE(AGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering arithmetics / bitwise ops.
+  int64_t r2_val = get_register(r2);
+  int64_t r3_val = get_register(r3);
+  bool isOF = CheckOverflowForIntAdd(r2_val, r3_val, int64_t);
+  SetS390ConditionCode<int64_t>(r2_val + r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r2_val + r3_val);
+  return length;
+}
+
+EVALUATE(SGRK) {
+  DCHECK_OPCODE(SGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering arithmetics / bitwise ops.
+  int64_t r2_val = get_register(r2);
+  int64_t r3_val = get_register(r3);
+  bool isOF = CheckOverflowForIntSub(r2_val, r3_val, int64_t);
+  SetS390ConditionCode<int64_t>(r2_val - r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r2_val - r3_val);
+  return length;
+}
+
+EVALUATE(ALGRK) {
+  DCHECK_OPCODE(ALGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering unsigned arithmetics
+  uint64_t r2_val = get_register(r2);
+  uint64_t r3_val = get_register(r3);
+  bool isOF = CheckOverflowForUIntAdd(r2_val, r3_val);
+  SetS390ConditionCode<uint64_t>(r2_val + r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r2_val + r3_val);
+  return length;
+}
+
+EVALUATE(SLGRK) {
+  DCHECK_OPCODE(SLGRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 64-bit Non-clobbering unsigned arithmetics
+  uint64_t r2_val = get_register(r2);
+  uint64_t r3_val = get_register(r3);
+  bool isOF = CheckOverflowForUIntSub(r2_val, r3_val);
+  SetS390ConditionCode<uint64_t>(r2_val - r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_register(r1, r2_val - r3_val);
+  return length;
+}
+
+EVALUATE(LOCR) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
+
+EVALUATE(NRK) {
+  DCHECK_OPCODE(NRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering arithmetics / bitwise ops
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  // Assume bitwise operation here
+  uint32_t bitwise_result = 0;
+  bitwise_result = r2_val & r3_val;
+  SetS390BitWiseConditionCode<uint32_t>(bitwise_result);
+  set_low_register(r1, bitwise_result);
+  return length;
+}
+
+EVALUATE(ORK) {
+  DCHECK_OPCODE(ORK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering arithmetics / bitwise ops
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  // Assume bitwise operation here
+  uint32_t bitwise_result = 0;
+  bitwise_result = r2_val | r3_val;
+  SetS390BitWiseConditionCode<uint32_t>(bitwise_result);
+  set_low_register(r1, bitwise_result);
+  return length;
+}
+
+EVALUATE(XRK) {
+  DCHECK_OPCODE(XRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering arithmetics / bitwise ops
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  // Assume bitwise operation here
+  uint32_t bitwise_result = 0;
+  bitwise_result = r2_val ^ r3_val;
+  SetS390BitWiseConditionCode<uint32_t>(bitwise_result);
+  set_low_register(r1, bitwise_result);
+  return length;
+}
 
-EVALUATE(AHHLR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ARK) {
+  DCHECK_OPCODE(ARK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering arithmetics / bitwise ops
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  bool isOF = CheckOverflowForIntAdd(r2_val, r3_val, int32_t);
+  SetS390ConditionCode<int32_t>(r2_val + r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r2_val + r3_val);
+  return length;
+}
 
-EVALUATE(SHHLR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRK) {
+  DCHECK_OPCODE(SRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering arithmetics / bitwise ops
+  int32_t r2_val = get_low_register<int32_t>(r2);
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  bool isOF = CheckOverflowForIntSub(r2_val, r3_val, int32_t);
+  SetS390ConditionCode<int32_t>(r2_val - r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r2_val - r3_val);
+  return length;
+}
 
-EVALUATE(ALHHLR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALRK) {
+  DCHECK_OPCODE(ALRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering unsigned arithmetics
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  uint32_t r3_val = get_low_register<uint32_t>(r3);
+  bool isOF = CheckOverflowForUIntAdd(r2_val, r3_val);
+  SetS390ConditionCode<uint32_t>(r2_val + r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r2_val + r3_val);
+  return length;
+}
 
-EVALUATE(SLHHLR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLRK) {
+  DCHECK_OPCODE(SLRK);
+  DECODE_RRF_A_INSTRUCTION(r1, r2, r3);
+  // 32-bit Non-clobbering unsigned arithmetics
+  uint32_t r2_val = get_low_register<uint32_t>(r2);
+  uint32_t r3_val = get_low_register<uint32_t>(r3);
+  bool isOF = CheckOverflowForUIntSub(r2_val, r3_val);
+  SetS390ConditionCode<uint32_t>(r2_val - r3_val, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, r2_val - r3_val);
+  return length;
+}
 
-EVALUATE(CHLR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTG) {
+  DCHECK_OPCODE(LTG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int64_t value = ReadDW(addr);
+  set_register(r1, value);
+  SetS390ConditionCode<int64_t>(value, 0);
+  return length;
+}
 
-EVALUATE(POPCNT_Z) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVBY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LOCGR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AG) {
+  DCHECK_OPCODE(AG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  alu_out += mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(NGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SG) {
+  DCHECK_OPCODE(SG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  alu_out -= mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(OGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALG) {
+  DCHECK_OPCODE(ALG);
+#ifndef V8_TARGET_ARCH_S390X
+  DCHECK(false);
+#endif
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint64_t r1_val = get_register(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint64_t alu_out = r1_val;
+  uint64_t mem_val = static_cast<uint64_t>(ReadDW(b2_val + d2_val + x2_val));
+  alu_out += mem_val;
+  SetS390ConditionCode<uint64_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(XGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLG) {
+  DCHECK_OPCODE(SLG);
+#ifndef V8_TARGET_ARCH_S390X
+  DCHECK(false);
+#endif
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint64_t r1_val = get_register(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint64_t alu_out = r1_val;
+  uint64_t mem_val = static_cast<uint64_t>(ReadDW(b2_val + d2_val + x2_val));
+  alu_out -= mem_val;
+  SetS390ConditionCode<uint64_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(AGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSG) {
+  DCHECK_OPCODE(MSG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  int64_t mem_val = ReadDW(b2_val + d2_val + x2_val);
+  int64_t r1_val = get_register(r1);
+  set_register(r1, mem_val * r1_val);
+  return length;
+}
 
-EVALUATE(SGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DSG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVBG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLGRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRVG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LOCR) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LT) {
+  DCHECK_OPCODE(LT);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int32_t value = ReadW(addr, instr);
+  set_low_register(r1, value);
+  SetS390ConditionCode<int32_t>(value, 0);
+  return length;
+}
 
-EVALUATE(NRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGH) {
+  DCHECK_OPCODE(LGH);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int64_t mem_val = static_cast<int64_t>(ReadH(addr, instr));
+  set_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(ORK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGF) {
+  DCHECK_OPCODE(LLGF);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  uint64_t mem_val = static_cast<uint64_t>(ReadWU(addr, instr));
+  set_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(XRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ARK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AGF) {
+  DCHECK_OPCODE(AGF);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint64_t r1_val = get_register(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint64_t alu_out = r1_val;
+  uint32_t mem_val = ReadW(b2_val + d2_val + x2_val, instr);
+  alu_out += mem_val;
+  SetS390ConditionCode<int64_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(SRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SGF) {
+  DCHECK_OPCODE(SGF);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  uint64_t r1_val = get_register(r1);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint64_t alu_out = r1_val;
+  uint32_t mem_val = ReadW(b2_val + d2_val + x2_val, instr);
+  alu_out -= mem_val;
+  SetS390ConditionCode<int64_t>(alu_out, 0);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(ALRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLRK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LTG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CVBY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DSGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRV) {
+  DCHECK_OPCODE(LRV);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t mem_addr = b2_val + x2_val + d2;
+  int32_t mem_val = ReadW(mem_addr, instr);
+  set_low_register(r1, ByteReverse(mem_val));
+  return length;
+}
 
-EVALUATE(SG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LRVH) {
+  DCHECK_OPCODE(LRVH);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t mem_addr = b2_val + x2_val + d2;
+  int16_t mem_val = ReadH(mem_addr, instr);
+  int32_t result = ByteReverse(mem_val) & 0x0000ffff;
+  result |= r1_val & 0xffff0000;
+  set_low_register(r1, result);
+  return length;
+}
 
-EVALUATE(ALG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CG) {
+  DCHECK_OPCODE(CG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  SetS390ConditionCode<int64_t>(alu_out, mem_val);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(SLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLG) {
+  DCHECK_OPCODE(CLG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  SetS390ConditionCode<uint64_t>(alu_out, mem_val);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(MSG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NTSTG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DSG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVDY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CVBG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CVDG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LRVG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STRVG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LGH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LTGF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(PFD) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STRV) {
+  DCHECK_OPCODE(STRV);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t mem_addr = b2_val + x2_val + d2;
+  WriteW(mem_addr, ByteReverse(r1_val), instr);
+  return length;
+}
 
-EVALUATE(ALGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STRVH) {
+  DCHECK_OPCODE(STRVH);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t mem_addr = b2_val + x2_val + d2;
+  int16_t result = static_cast<int16_t>(r1_val >> 16);
+  WriteH(mem_addr, ByteReverse(result), instr);
+  return length;
+}
 
-EVALUATE(SLGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BCTG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSY) {
+  DCHECK_OPCODE(MSY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  int32_t mem_val = ReadW(b2_val + d2_val + x2_val, instr);
+  int32_t r1_val = get_low_register<int32_t>(r1);
+  set_low_register(r1, mem_val * r1_val);
+  return length;
+}
 
-EVALUATE(DSGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NY) {
+  DCHECK_OPCODE(NY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  alu_out &= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(LRV) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLY) {
+  DCHECK_OPCODE(CLY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  uint32_t mem_val = ReadWU(b2_val + x2_val + d2, instr);
+  SetS390ConditionCode<uint32_t>(alu_out, mem_val);
+  return length;
+}
 
-EVALUATE(LRVH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OY) {
+  DCHECK_OPCODE(OY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  alu_out |= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(CG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XY) {
+  DCHECK_OPCODE(XY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  alu_out ^= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(CLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CY) {
+  DCHECK_OPCODE(CY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  SetS390ConditionCode<int32_t>(alu_out, mem_val);
+  return length;
+}
 
-EVALUATE(NTSTG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AY) {
+  DCHECK_OPCODE(AY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  bool isOF = false;
+  isOF = CheckOverflowForIntAdd(alu_out, mem_val, int32_t);
+  alu_out += mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(CVDY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SY) {
+  DCHECK_OPCODE(SY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int32_t alu_out = get_low_register<int32_t>(r1);
+  int32_t mem_val = ReadW(b2_val + x2_val + d2, instr);
+  bool isOF = false;
+  isOF = CheckOverflowForIntSub(alu_out, mem_val, int32_t);
+  alu_out -= mem_val;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(CVDG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MFY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STRVG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALY) {
+  DCHECK_OPCODE(ALY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  uint32_t mem_val = ReadWU(b2_val + x2_val + d2, instr);
+  alu_out += mem_val;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<uint32_t>(alu_out, 0);
+  return length;
+}
 
-EVALUATE(CGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLY) {
+  DCHECK_OPCODE(SLY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  uint32_t alu_out = get_low_register<uint32_t>(r1);
+  uint32_t mem_val = ReadWU(b2_val + x2_val + d2, instr);
+  alu_out -= mem_val;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<uint32_t>(alu_out, 0);
+  return length;
+}
 
-EVALUATE(CLGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STHY) {
+  DCHECK_OPCODE(STHY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  uint16_t value = get_low_register<uint32_t>(r1);
+  WriteH(addr, value, instr);
+  return length;
+}
 
-EVALUATE(LTGF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAY) {
+  DCHECK_OPCODE(LAY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Load Address
+  int rb = b2;
+  int rx = x2;
+  int offset = d2;
+  int64_t rb_val = (rb == 0) ? 0 : get_register(rb);
+  int64_t rx_val = (rx == 0) ? 0 : get_register(rx);
+  set_register(r1, rx_val + rb_val + offset);
+  return length;
+}
 
-EVALUATE(CGH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCY) {
+  DCHECK_OPCODE(STCY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  uint8_t value = get_low_register<uint32_t>(r1);
+  WriteB(addr, value);
+  return length;
+}
 
-EVALUATE(PFD) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ICY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STRV) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAEY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STRVH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LB) {
+  DCHECK_OPCODE(LB);
+  // Miscellaneous Loads and Stores
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int32_t mem_val = ReadB(addr);
+  set_low_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(BCTG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGB) {
+  DCHECK_OPCODE(LGB);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int64_t mem_val = ReadB(addr);
+  set_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(MSY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LHY) {
+  DCHECK_OPCODE(LHY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int32_t result = static_cast<int32_t>(ReadH(addr, instr));
+  set_low_register(r1, result);
+  return length;
+}
 
-EVALUATE(NY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CHY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AHY) {
+  DCHECK_OPCODE(AHY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  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 d2_val = d2;
+  int32_t mem_val =
+      static_cast<int32_t>(ReadH(b2_val + d2_val + x2_val, instr));
+  int32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r1_val + mem_val;
+  isOF = CheckOverflowForIntAdd(r1_val, mem_val, int32_t);
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(OY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SHY) {
+  DCHECK_OPCODE(SHY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  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 d2_val = d2;
+  int32_t mem_val =
+      static_cast<int32_t>(ReadH(b2_val + d2_val + x2_val, instr));
+  int32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r1_val - mem_val;
+  isOF = CheckOverflowForIntSub(r1_val, mem_val, int64_t);
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(XY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MHY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NG) {
+  DCHECK_OPCODE(NG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  alu_out &= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(AY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OG) {
+  DCHECK_OPCODE(OG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  alu_out |= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(SY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XG) {
+  DCHECK_OPCODE(XG);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t alu_out = get_register(r1);
+  int64_t mem_val = ReadDW(b2_val + x2_val + d2);
+  alu_out ^= mem_val;
+  SetS390BitWiseConditionCode<uint32_t>(alu_out);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(MFY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LGAT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MLG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DLG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALCG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLBG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STPQ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ICY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LPQ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAEY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGH) {
+  DCHECK_OPCODE(LLGH);
+  // Load Logical Halfword
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint16_t mem_val = ReadHU(b2_val + d2_val + x2_val, instr);
+  set_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(LB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLH) {
+  DCHECK_OPCODE(LLH);
+  // Load Logical Halfword
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  uint16_t mem_val = ReadHU(b2_val + d2_val + x2_val, instr);
+  set_low_register(r1, mem_val);
+  return length;
+}
 
-EVALUATE(LGB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ML) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGTAT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MHY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLGFAT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(OG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LBH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LGAT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LLHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALCG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STHH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLBG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LFHAT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STPQ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LFH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LPQ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STFH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CHF) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCDK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ML) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVHHI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVGHI) {
+  DCHECK_OPCODE(MVGHI);
+  // Move Integer (64)
+  DECODE_SIL_INSTRUCTION(b1, d1, i2);
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t src_addr = b1_val + d1;
+  WriteDW(src_addr, i2);
+  return length;
+}
 
-EVALUATE(ALC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVHI) {
+  DCHECK_OPCODE(MVHI);
+  // Move Integer (32)
+  DECODE_SIL_INSTRUCTION(b1, d1, i2);
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t src_addr = b1_val + d1;
+  WriteW(src_addr, i2, instr);
+  return length;
+}
 
-EVALUATE(SLB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CHHSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGTAT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGHSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLGFAT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CHSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFHSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LBH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TBEGIN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LLCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TBEGINC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LMG) {
+  DCHECK_OPCODE(LMG);
+  // Store Multiple 64-bits.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  int rb = b2;
+  int offset = d2;
 
-EVALUATE(LHH) { return DecodeInstructionOriginal(instr); }
+  // 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;
 
-EVALUATE(LLHH) { return DecodeInstructionOriginal(instr); }
+  int64_t rb_val = (rb == 0) ? 0 : get_register(rb);
 
-EVALUATE(STHH) { return DecodeInstructionOriginal(instr); }
+  // Store each register in ascending order.
+  for (int i = 0; i <= r3 - r1; i++) {
+    int64_t value = ReadDW(rb_val + offset + 8 * i);
+    set_register((r1 + i) % 16, value);
+  }
+  return length;
+}
 
-EVALUATE(LFHAT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRAG) {
+  DCHECK_OPCODE(SRAG);
+  // 64-bit non-clobbering shift-left/right arithmetic
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int64_t r3_val = get_register(r3);
+  intptr_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r3_val >> shiftBits;
+  set_register(r1, alu_out);
+  SetS390ConditionCode<intptr_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(LFH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLAG) {
+  DCHECK_OPCODE(SLAG);
+  // 64-bit non-clobbering shift-left/right arithmetic
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int64_t r3_val = get_register(r3);
+  intptr_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForShiftLeft(r3_val, shiftBits);
+  alu_out = r3_val << shiftBits;
+  set_register(r1, alu_out);
+  SetS390ConditionCode<intptr_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(STFH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRLG) {
+  DCHECK_OPCODE(SRLG);
+  // For SLLG/SRLG, the 64-bit third operand is shifted the number
+  // of bits specified by the second-operand address, and the result is
+  // placed at the first-operand location. Except for when the R1 and R3
+  // fields designate the same register, the third operand remains
+  // unchanged in general register R3.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  // unsigned
+  uint64_t r3_val = get_register(r3);
+  uint64_t alu_out = 0;
+  alu_out = r3_val >> shiftBits;
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(CHF) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLLG) {
+  DCHECK_OPCODE(SLLG);
+  // For SLLG/SRLG, the 64-bit third operand is shifted the number
+  // of bits specified by the second-operand address, and the result is
+  // placed at the first-operand location. Except for when the R1 and R3
+  // fields designate the same register, the third operand remains
+  // unchanged in general register R3.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  // unsigned
+  uint64_t r3_val = get_register(r3);
+  uint64_t alu_out = 0;
+  alu_out = r3_val << shiftBits;
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(MVCDK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CSY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MVHHI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RLLG) {
+  DCHECK_OPCODE(RLLG);
+  // For SLLG/SRLG, the 64-bit third operand is shifted the number
+  // of bits specified by the second-operand address, and the result is
+  // placed at the first-operand location. Except for when the R1 and R3
+  // fields designate the same register, the third operand remains
+  // unchanged in general register R3.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  // unsigned
+  uint64_t r3_val = get_register(r3);
+  uint64_t alu_out = 0;
+  uint64_t rotateBits = r3_val >> (64 - shiftBits);
+  alu_out = (r3_val << shiftBits) | (rotateBits);
+  set_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(MVGHI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STMG) {
+  DCHECK_OPCODE(STMG);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  int rb = b2;
+  int offset = d2;
 
-EVALUATE(MVHI) { return DecodeInstructionOriginal(instr); }
+  // 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;
 
-EVALUATE(CHHSI) { return DecodeInstructionOriginal(instr); }
+  int64_t rb_val = (rb == 0) ? 0 : get_register(rb);
 
-EVALUATE(CGHSI) { return DecodeInstructionOriginal(instr); }
+  // Store each register in ascending order.
+  for (int i = 0; i <= r3 - r1; i++) {
+    int64_t value = get_register((r1 + i) % 16);
+    WriteDW(rb_val + offset + 8 * i, value);
+  }
+  return length;
+}
 
-EVALUATE(CHSI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STMH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLFHSI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCMH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TBEGIN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STCMY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TBEGINC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDSY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LMG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDSG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRAG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BXHG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLAG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BXLEG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ECAG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TMY) {
+  DCHECK_OPCODE(TMY);
+  // Test Under Mask (Mem - Imm) (8)
+  DECODE_SIY_INSTRUCTION(b1, d1, i2);
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t d1_val = d1;
+  intptr_t addr = b1_val + d1_val;
+  uint8_t mem_val = ReadB(addr);
+  uint8_t imm_val = i2;
+  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(CSY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVIY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RLLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(NIY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STMG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLIY) {
+  DCHECK_OPCODE(CLIY);
+  DECODE_SIY_INSTRUCTION(b1, d1, i2);
+  // Compare Immediate (Mem - Imm) (8)
+  int64_t b1_val = (b1 == 0) ? 0 : get_register(b1);
+  intptr_t d1_val = d1;
+  intptr_t addr = b1_val + d1_val;
+  uint8_t mem_val = ReadB(addr);
+  uint8_t imm_val = i2;
+  SetS390ConditionCode<uint8_t>(mem_val, imm_val);
+  return length;
+}
 
-EVALUATE(STMH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(OIY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCMH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(XIY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STCMY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ASI) {
+  DCHECK_OPCODE(ASI);
+  // TODO(bcleung): Change all fooInstr->I2Value() to template functions.
+  // The below static cast to 8 bit and then to 32 bit is necessary
+  // because siyInstr->I2Value() returns a uint8_t, which a direct
+  // cast to int32_t could incorrectly interpret.
+  DECODE_SIY_INSTRUCTION(b1, d1, i2_unsigned);
+  int8_t i2_8bit = static_cast<int8_t>(i2_unsigned);
+  int32_t i2 = static_cast<int32_t>(i2_8bit);
+  intptr_t b1_val = (b1 == 0) ? 0 : get_register(b1);
 
-EVALUATE(CDSY) { return DecodeInstructionOriginal(instr); }
+  int d1_val = d1;
+  intptr_t addr = b1_val + d1_val;
 
-EVALUATE(CDSG) { return DecodeInstructionOriginal(instr); }
+  int32_t mem_val = ReadW(addr, instr);
+  bool isOF = CheckOverflowForIntAdd(mem_val, i2, int32_t);
+  int32_t alu_out = mem_val + i2;
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  WriteW(addr, alu_out, instr);
+  return length;
+}
 
-EVALUATE(BXHG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BXLEG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AGSI) {
+  DCHECK_OPCODE(AGSI);
+  // TODO(bcleung): Change all fooInstr->I2Value() to template functions.
+  // The below static cast to 8 bit and then to 32 bit is necessary
+  // because siyInstr->I2Value() returns a uint8_t, which a direct
+  // cast to int32_t could incorrectly interpret.
+  DECODE_SIY_INSTRUCTION(b1, d1, i2_unsigned);
+  int8_t i2_8bit = static_cast<int8_t>(i2_unsigned);
+  int64_t i2 = static_cast<int64_t>(i2_8bit);
+  intptr_t b1_val = (b1 == 0) ? 0 : get_register(b1);
 
-EVALUATE(ECAG) { return DecodeInstructionOriginal(instr); }
+  int d1_val = d1;
+  intptr_t addr = b1_val + d1_val;
 
-EVALUATE(TMY) { return DecodeInstructionOriginal(instr); }
+  int64_t mem_val = ReadDW(addr);
+  int isOF = CheckOverflowForIntAdd(mem_val, i2, int64_t);
+  int64_t alu_out = mem_val + i2;
+  SetS390ConditionCode<uint64_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  WriteDW(addr, alu_out);
+  return length;
+}
 
-EVALUATE(MVIY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALGSI) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(NIY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ICMH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLIY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ICMY) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(OIY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MVCLU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(XIY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLCLU) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ASI) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STMY) {
+  DCHECK_OPCODE(STMY);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // Load/Store Multiple (32)
+  int offset = d2;
 
-EVALUATE(ALSI) { return DecodeInstructionOriginal(instr); }
+  // 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;
 
-EVALUATE(AGSI) { return DecodeInstructionOriginal(instr); }
+  int32_t b2_val = (b2 == 0) ? 0 : get_low_register<int32_t>(b2);
 
-EVALUATE(ALGSI) { return DecodeInstructionOriginal(instr); }
+  // 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(b2_val + offset + 4 * i, value, instr);
+  }
+  return length;
+}
 
-EVALUATE(ICMH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LMH) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ICMY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LMY) {
+  DCHECK_OPCODE(LMY);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // Load/Store Multiple (32)
+  int offset = d2;
 
-EVALUATE(MVCLU) { return DecodeInstructionOriginal(instr); }
+  // 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;
 
-EVALUATE(CLCLU) { return DecodeInstructionOriginal(instr); }
+  int32_t b2_val = (b2 == 0) ? 0 : get_low_register<int32_t>(b2);
 
-EVALUATE(STMY) { return DecodeInstructionOriginal(instr); }
+  // Store each register in ascending order.
+  for (int i = 0; i <= r3 - r1; i++) {
+    int32_t value = ReadW(b2_val + offset + 4 * i, instr);
+    set_low_register((r1 + i) % 16, value);
+  }
+  return length;
+}
 
-EVALUATE(LMH) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TP) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LMY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRAK) {
+  DCHECK_OPCODE(SRAK);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // 32-bit non-clobbering shift-left/right arithmetic
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  alu_out = r3_val >> shiftBits;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(TP) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLAK) {
+  DCHECK_OPCODE(SLAK);
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // 32-bit non-clobbering shift-left/right arithmetic
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  int32_t r3_val = get_low_register<int32_t>(r3);
+  int32_t alu_out = 0;
+  bool isOF = false;
+  isOF = CheckOverflowForShiftLeft(r3_val, shiftBits);
+  alu_out = r3_val << shiftBits;
+  set_low_register(r1, alu_out);
+  SetS390ConditionCode<int32_t>(alu_out, 0);
+  SetS390OverflowCode(isOF);
+  return length;
+}
 
-EVALUATE(SRAK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRLK) {
+  DCHECK_OPCODE(SRLK);
+  // For SLLK/SRLL, the 32-bit third operand is shifted the number
+  // of bits specified by the second-operand address, and the result is
+  // placed at the first-operand location. Except for when the R1 and R3
+  // fields designate the same register, the third operand remains
+  // unchanged in general register R3.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  // unsigned
+  uint32_t r3_val = get_low_register<uint32_t>(r3);
+  uint32_t alu_out = 0;
+  alu_out = r3_val >> shiftBits;
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(SLAK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLLK) {
+  DCHECK_OPCODE(SLLK);
+  // For SLLK/SRLL, the 32-bit third operand is shifted the number
+  // of bits specified by the second-operand address, and the result is
+  // placed at the first-operand location. Except for when the R1 and R3
+  // fields designate the same register, the third operand remains
+  // unchanged in general register R3.
+  DECODE_RSY_A_INSTRUCTION(r1, r3, b2, d2);
+  // only takes rightmost 6 bits
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int shiftBits = (b2_val + d2) & 0x3F;
+  // unsigned
+  uint32_t r3_val = get_low_register<uint32_t>(r3);
+  uint32_t alu_out = 0;
+  alu_out = r3_val << shiftBits;
+  set_low_register(r1, alu_out);
+  return length;
+}
 
-EVALUATE(SRLK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LOCG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLLK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STOCG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LOCG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LANG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STOCG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAOG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LANG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAXG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAOG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAAG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAXG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAALG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAAG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LOC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAALG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STOC) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LOC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(STOC) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAO) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAX) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAO) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAA) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAX) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LAAL) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAA) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BRXHG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LAAL) { return DecodeInstructionOriginal(instr); }
+EVALUATE(BRXLG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BRXHG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RISBLG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(BRXLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RNSBG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RISBLG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ROSBG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RNSBG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RXSBG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ROSBG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RISBGN) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RXSBG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(RISBHG) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RISBGN) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGRJ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(RISBHG) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGIT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGRJ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CIT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGIT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CLFIT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CIT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGIJ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CLFIT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CIJ) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGIJ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALHSIK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CIJ) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ALGHSIK) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALHSIK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGRB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(ALGHSIK) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CGIB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGRB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CIB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CGIB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDEB) {
+  DCHECK_OPCODE(LDEB);
+  // Load Float
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int rb = b2;
+  int rx = x2;
+  int offset = d2;
+  int64_t rb_val = (rb == 0) ? 0 : get_register(rb);
+  int64_t rx_val = (rx == 0) ? 0 : get_register(rx);
+  double ret =
+      static_cast<double>(*reinterpret_cast<float*>(rx_val + rb_val + offset));
+  set_d_register_from_double(r1, ret);
+  return length;
+}
 
-EVALUATE(CIB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXDB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LDEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LXEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LXDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MXDB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LXEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MXDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(KEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(AEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(AEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MDEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MAEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(DEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MAEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TCEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TCDB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TCEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TCXB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TCDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SQEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TCXB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SQDB) {
+  DCHECK_OPCODE(SQDB);
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  r1_val = std::sqrt(dbl_val);
+  set_d_register_from_double(r1, r1_val);
+  return length;
+}
 
-EVALUATE(SQEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MEEB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SQDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(KDB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MEEB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDB) {
+  DCHECK_OPCODE(CDB);
 
-EVALUATE(KDB) { return DecodeInstructionOriginal(instr); }
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  SetS390ConditionCode<double>(r1_val, dbl_val);
+  return length;
+}
 
-EVALUATE(CDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(ADB) {
+  DCHECK_OPCODE(ADB);
 
-EVALUATE(ADB) { return DecodeInstructionOriginal(instr); }
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  r1_val += dbl_val;
+  set_d_register_from_double(r1, r1_val);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(SDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SDB) {
+  DCHECK_OPCODE(SDB);
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  r1_val -= dbl_val;
+  set_d_register_from_double(r1, r1_val);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(MDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MDB) {
+  DCHECK_OPCODE(MDB);
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  r1_val *= dbl_val;
+  set_d_register_from_double(r1, r1_val);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(DDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(DDB) {
+  DCHECK_OPCODE(DDB);
+  DECODE_RXE_INSTRUCTION(r1, b2, x2, d2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  intptr_t d2_val = d2;
+  double r1_val = get_double_from_d_register(r1);
+  double dbl_val = ReadDouble(b2_val + x2_val + d2_val);
+  r1_val /= dbl_val;
+  set_d_register_from_double(r1, r1_val);
+  SetS390ConditionCode<double>(r1_val, 0);
+  return length;
+}
 
-EVALUATE(MADB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MADB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(MSDB) { return DecodeInstructionOriginal(instr); }
+EVALUATE(MSDB) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLDT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLDT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRDT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRDT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SLXT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SLXT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(SRXT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(SRXT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDCET) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDCET) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDGET) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDGET) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDCDT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDCDT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDGDT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDGDT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDCXT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDCXT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(TDGXT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(TDGXT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(LEY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LEY) {
+  DCHECK_OPCODE(LEY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  float float_val = *reinterpret_cast<float*>(addr);
+  set_d_register_from_float32(r1, float_val);
+  return length;
+}
 
-EVALUATE(LDY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(LDY) {
+  DCHECK_OPCODE(LDY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  uint64_t dbl_val = *reinterpret_cast<uint64_t*>(addr);
+  set_d_register(r1, dbl_val);
+  return length;
+}
 
-EVALUATE(STEY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STEY) {
+  DCHECK_OPCODE(STEY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int64_t frs_val = get_d_register(r1) >> 32;
+  WriteW(addr, static_cast<int32_t>(frs_val), instr);
+  return length;
+}
 
-EVALUATE(STDY) { return DecodeInstructionOriginal(instr); }
+EVALUATE(STDY) {
+  DCHECK_OPCODE(STDY);
+  DECODE_RXY_A_INSTRUCTION(r1, x2, b2, d2);
+  // Miscellaneous Loads and Stores
+  int64_t x2_val = (x2 == 0) ? 0 : get_register(x2);
+  int64_t b2_val = (b2 == 0) ? 0 : get_register(b2);
+  intptr_t addr = x2_val + b2_val + d2;
+  int64_t frs_val = get_d_register(r1);
+  WriteDW(addr, frs_val);
+  return length;
+}
 
-EVALUATE(CZDT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CZDT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CZXT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CZXT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CDZT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CDZT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
-EVALUATE(CXZT) { return DecodeInstructionOriginal(instr); }
+EVALUATE(CXZT) {
+  UNIMPLEMENTED();
+  USE(instr);
+  return 0;
+}
 
 #undef EVALUATE
 
diff --git a/src/s390/simulator-s390.h b/src/s390/simulator-s390.h
index 6e82c9a..b9ee25d 100644
--- a/src/s390/simulator-s390.h
+++ b/src/s390/simulator-s390.h
@@ -64,7 +64,7 @@
 // Running with a simulator.
 
 #include "src/assembler.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #include "src/s390/constants-s390.h"
 
 namespace v8 {
@@ -211,7 +211,7 @@
   // Call on program start.
   static void Initialize(Isolate* isolate);
 
-  static void TearDown(HashMap* i_cache, Redirection* first);
+  static void TearDown(base::HashMap* i_cache, Redirection* first);
 
   // V8 generally calls into generated JS code with 5 parameters and into
   // generated RegExp code with 7 parameters. This is a convenience function,
@@ -233,8 +233,7 @@
   char* last_debugger_input() { return last_debugger_input_; }
 
   // ICache checking.
-  static void FlushICache(v8::internal::HashMap* i_cache, void* start,
-                          size_t size);
+  static void FlushICache(base::HashMap* i_cache, void* start, size_t size);
 
   // Returns true if pc register contains one of the 'special_values' defined
   // below (bad_lr, end_sim_pc).
@@ -444,10 +443,9 @@
   void ExecuteInstruction(Instruction* instr, bool auto_incr_pc = true);
 
   // ICache.
-  static void CheckICache(v8::internal::HashMap* i_cache, Instruction* instr);
-  static void FlushOnePage(v8::internal::HashMap* i_cache, intptr_t start,
-                           int size);
-  static CachePage* GetCachePage(v8::internal::HashMap* i_cache, void* page);
+  static void CheckICache(base::HashMap* i_cache, Instruction* instr);
+  static void FlushOnePage(base::HashMap* i_cache, intptr_t start, int size);
+  static CachePage* GetCachePage(base::HashMap* i_cache, void* page);
 
   // Runtime call support.
   static void* RedirectExternalReference(
@@ -482,7 +480,7 @@
   char* last_debugger_input_;
 
   // Icache simulation
-  v8::internal::HashMap* i_cache_;
+  base::HashMap* i_cache_;
 
   // Registered breakpoints.
   Instruction* break_pc_;
diff --git a/src/snapshot/code-serializer.cc b/src/snapshot/code-serializer.cc
index 1a2e077..4229607 100644
--- a/src/snapshot/code-serializer.cc
+++ b/src/snapshot/code-serializer.cc
@@ -7,7 +7,6 @@
 #include "src/code-stubs.h"
 #include "src/log.h"
 #include "src/macro-assembler.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/snapshot/deserializer.h"
 #include "src/version.h"
 
@@ -27,15 +26,14 @@
   }
 
   // Serialize code object.
-  SnapshotByteSink sink(info->code()->CodeSize() * 2);
-  CodeSerializer cs(isolate, &sink, *source);
+  CodeSerializer cs(isolate, *source);
   DisallowHeapAllocation no_gc;
   Object** location = Handle<Object>::cast(info).location();
   cs.VisitPointer(location);
   cs.SerializeDeferredObjects();
   cs.Pad();
 
-  SerializedCodeData data(sink.data(), cs);
+  SerializedCodeData data(cs.sink()->data(), &cs);
   ScriptData* script_data = data.GetScriptData();
 
   if (FLAG_profile_deserialization) {
@@ -49,13 +47,15 @@
 
 void CodeSerializer::SerializeObject(HeapObject* obj, HowToCode how_to_code,
                                      WhereToPoint where_to_point, int skip) {
+  if (SerializeHotObject(obj, how_to_code, where_to_point, skip)) return;
+
   int root_index = root_index_map_.Lookup(obj);
   if (root_index != RootIndexMap::kInvalidRootIndex) {
     PutRoot(root_index, obj, how_to_code, where_to_point, skip);
     return;
   }
 
-  if (SerializeKnownObject(obj, how_to_code, where_to_point, skip)) return;
+  if (SerializeBackReference(obj, how_to_code, where_to_point, skip)) return;
 
   FlushSkip(skip);
 
@@ -106,7 +106,7 @@
                                       HowToCode how_to_code,
                                       WhereToPoint where_to_point) {
   // Object has not yet been serialized.  Serialize it here.
-  ObjectSerializer serializer(this, heap_object, sink_, how_to_code,
+  ObjectSerializer serializer(this, heap_object, &sink_, how_to_code,
                               where_to_point);
   serializer.Serialize();
 }
@@ -124,8 +124,8 @@
            isolate()->builtins()->name(builtin_index));
   }
 
-  sink_->Put(kBuiltin + how_to_code + where_to_point, "Builtin");
-  sink_->PutInt(builtin_index, "builtin_index");
+  sink_.Put(kBuiltin + how_to_code + where_to_point, "Builtin");
+  sink_.PutInt(builtin_index, "builtin_index");
 }
 
 void CodeSerializer::SerializeCodeStub(Code* code_stub, HowToCode how_to_code,
@@ -185,15 +185,14 @@
   }
   result->set_deserialized(true);
 
-  if (isolate->logger()->is_logging_code_events() ||
-      isolate->cpu_profiler()->is_profiling()) {
+  if (isolate->logger()->is_logging_code_events() || isolate->is_profiling()) {
     String* name = isolate->heap()->empty_string();
     if (result->script()->IsScript()) {
       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, name);
+    PROFILE(isolate, CodeCreateEvent(CodeEventListener::SCRIPT_TAG,
+                                     result->abstract_code(), *result, name));
   }
   return scope.CloseAndEscape(result);
 }
@@ -237,13 +236,13 @@
   DISALLOW_COPY_AND_ASSIGN(Checksum);
 };
 
-SerializedCodeData::SerializedCodeData(const List<byte>& payload,
-                                       const CodeSerializer& cs) {
+SerializedCodeData::SerializedCodeData(const List<byte>* payload,
+                                       const CodeSerializer* cs) {
   DisallowHeapAllocation no_gc;
-  const List<uint32_t>* stub_keys = cs.stub_keys();
+  const List<uint32_t>* stub_keys = cs->stub_keys();
 
   List<Reservation> reservations;
-  cs.EncodeReservations(&reservations);
+  cs->EncodeReservations(&reservations);
 
   // Calculate sizes.
   int reservation_size = reservations.length() * kInt32Size;
@@ -251,23 +250,23 @@
   int stub_keys_size = stub_keys->length() * kInt32Size;
   int payload_offset = kHeaderSize + reservation_size + stub_keys_size;
   int padded_payload_offset = POINTER_SIZE_ALIGN(payload_offset);
-  int size = padded_payload_offset + payload.length();
+  int size = padded_payload_offset + payload->length();
 
   // Allocate backing store and create result data.
   AllocateData(size);
 
   // Set header values.
-  SetMagicNumber(cs.isolate());
+  SetMagicNumber(cs->isolate());
   SetHeaderValue(kVersionHashOffset, Version::Hash());
-  SetHeaderValue(kSourceHashOffset, SourceHash(cs.source()));
+  SetHeaderValue(kSourceHashOffset, SourceHash(cs->source()));
   SetHeaderValue(kCpuFeaturesOffset,
                  static_cast<uint32_t>(CpuFeatures::SupportedFeatures()));
   SetHeaderValue(kFlagHashOffset, FlagList::Hash());
   SetHeaderValue(kNumReservationsOffset, reservations.length());
   SetHeaderValue(kNumCodeStubKeysOffset, num_stub_keys);
-  SetHeaderValue(kPayloadLengthOffset, payload.length());
+  SetHeaderValue(kPayloadLengthOffset, payload->length());
 
-  Checksum checksum(payload.ToConstVector());
+  Checksum checksum(payload->ToConstVector());
   SetHeaderValue(kChecksum1Offset, checksum.a());
   SetHeaderValue(kChecksum2Offset, checksum.b());
 
@@ -282,8 +281,8 @@
   memset(data_ + payload_offset, 0, padded_payload_offset - payload_offset);
 
   // Copy serialized data.
-  CopyBytes(data_ + padded_payload_offset, payload.begin(),
-            static_cast<size_t>(payload.length()));
+  CopyBytes(data_ + padded_payload_offset, payload->begin(),
+            static_cast<size_t>(payload->length()));
 }
 
 SerializedCodeData::SanityCheckResult SerializedCodeData::SanityCheck(
diff --git a/src/snapshot/code-serializer.h b/src/snapshot/code-serializer.h
index 8ed4cf6..1948939 100644
--- a/src/snapshot/code-serializer.h
+++ b/src/snapshot/code-serializer.h
@@ -28,8 +28,8 @@
   const List<uint32_t>* stub_keys() const { return &stub_keys_; }
 
  private:
-  CodeSerializer(Isolate* isolate, SnapshotByteSink* sink, String* source)
-      : Serializer(isolate, sink), source_(source) {
+  CodeSerializer(Isolate* isolate, String* source)
+      : Serializer(isolate), source_(source) {
     reference_map_.AddAttachedReference(source);
   }
 
@@ -60,7 +60,7 @@
                                             String* source);
 
   // Used when producing.
-  SerializedCodeData(const List<byte>& payload, const CodeSerializer& cs);
+  SerializedCodeData(const List<byte>* payload, const CodeSerializer* cs);
 
   // Return ScriptData object and relinquish ownership over it to the caller.
   ScriptData* GetScriptData();
diff --git a/src/snapshot/deserializer.cc b/src/snapshot/deserializer.cc
index 88820ae..68d3489 100644
--- a/src/snapshot/deserializer.cc
+++ b/src/snapshot/deserializer.cc
@@ -31,9 +31,7 @@
 void Deserializer::FlushICacheForNewIsolate() {
   DCHECK(!deserializing_user_code_);
   // The entire isolate is newly deserialized. Simply flush all code pages.
-  PageIterator it(isolate_->heap()->code_space());
-  while (it.has_next()) {
-    Page* p = it.next();
+  for (Page* p : *isolate_->heap()->code_space()) {
     Assembler::FlushICache(isolate_, p->area_start(),
                            p->area_end() - p->area_start());
   }
@@ -101,10 +99,6 @@
         isolate_->heap()->undefined_value());
   }
 
-  // Update data pointers to the external strings containing natives sources.
-  Natives::UpdateSourceCache(isolate_->heap());
-  ExtraNatives::UpdateSourceCache(isolate_->heap());
-
   // Issue code events for newly deserialized code objects.
   LOG_CODE_EVENT(isolate_, LogCodeObjects());
   LOG_CODE_EVENT(isolate_, LogBytecodeHandlers());
@@ -481,6 +475,7 @@
         Heap::RootListIndex root_index = static_cast<Heap::RootListIndex>(id); \
         new_object = isolate->heap()->root(root_index);                        \
         emit_write_barrier = isolate->heap()->InNewSpace(new_object);          \
+        hot_objects_.Add(HeapObject::cast(new_object));                        \
       } else if (where == kPartialSnapshotCache) {                             \
         int cache_index = source_.GetInt();                                    \
         new_object = isolate->partial_snapshot_cache()->at(cache_index);       \
@@ -507,12 +502,11 @@
         emit_write_barrier = false;                                            \
       }                                                                        \
       if (within == kInnerPointer) {                                           \
-        if (space_number != CODE_SPACE || new_object->IsCode()) {              \
-          Code* new_code_object = reinterpret_cast<Code*>(new_object);         \
+        if (new_object->IsCode()) {                                            \
+          Code* new_code_object = Code::cast(new_object);                      \
           new_object =                                                         \
               reinterpret_cast<Object*>(new_code_object->instruction_start()); \
         } else {                                                               \
-          DCHECK(space_number == CODE_SPACE);                                  \
           Cell* cell = Cell::cast(new_object);                                 \
           new_object = reinterpret_cast<Object*>(cell->ValueAddress());        \
         }                                                                      \
@@ -579,6 +573,9 @@
       // pointer because it points at the entry point, not at the start of the
       // code object.
       SINGLE_CASE(kNewObject, kPlain, kInnerPointer, CODE_SPACE)
+      // Support for pointers into a cell. It's an inner pointer because it
+      // points directly at the value field, not the start of the cell object.
+      SINGLE_CASE(kNewObject, kPlain, kInnerPointer, OLD_SPACE)
       // Deserialize a new code object and write a pointer to its first
       // instruction to the current code object.
       ALL_SPACES(kNewObject, kFromCode, kInnerPointer)
@@ -605,8 +602,12 @@
       // object.
       ALL_SPACES(kBackref, kFromCode, kInnerPointer)
       ALL_SPACES(kBackrefWithSkip, kFromCode, kInnerPointer)
-      ALL_SPACES(kBackref, kPlain, kInnerPointer)
-      ALL_SPACES(kBackrefWithSkip, kPlain, kInnerPointer)
+      // Support for direct instruction pointers in functions.
+      SINGLE_CASE(kBackref, kPlain, kInnerPointer, CODE_SPACE)
+      SINGLE_CASE(kBackrefWithSkip, kPlain, kInnerPointer, CODE_SPACE)
+      // Support for pointers into a cell.
+      SINGLE_CASE(kBackref, kPlain, kInnerPointer, OLD_SPACE)
+      SINGLE_CASE(kBackrefWithSkip, kPlain, kInnerPointer, OLD_SPACE)
       // Find an object in the roots array and write a pointer to it to the
       // current object.
       SINGLE_CASE(kRootArray, kPlain, kStartOfObject, 0)
@@ -767,9 +768,8 @@
         int index = data & kHotObjectMask;
         Object* hot_object = hot_objects_.Get(index);
         UnalignedCopy(current, &hot_object);
-        if (write_barrier_needed) {
+        if (write_barrier_needed && isolate->heap()->InNewSpace(hot_object)) {
           Address current_address = reinterpret_cast<Address>(current);
-          SLOW_DCHECK(isolate->heap()->ContainsSlow(current_object_address));
           isolate->heap()->RecordWrite(
               HeapObject::FromAddress(current_object_address),
               static_cast<int>(current_address - current_object_address),
diff --git a/src/snapshot/mksnapshot.cc b/src/snapshot/mksnapshot.cc
index 9fe611a..f4362e5 100644
--- a/src/snapshot/mksnapshot.cc
+++ b/src/snapshot/mksnapshot.cc
@@ -79,7 +79,7 @@
   }
 
   void WriteData(const i::Vector<const i::byte>& blob) const {
-    fprintf(fp_, "static const byte blob_data[] __attribute__((aligned(8))) = {\n");
+    fprintf(fp_, "static const byte blob_data[] = {\n");
     WriteSnapshotData(blob);
     fprintf(fp_, "};\n");
     fprintf(fp_, "static const int blob_size = %d;\n", blob.length());
@@ -150,7 +150,7 @@
   }
 
   i::CpuFeatures::Probe(true);
-  V8::InitializeICU();
+  V8::InitializeICUDefaultLocation(argv[0]);
   v8::Platform* platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform);
   v8::V8::Initialize();
diff --git a/src/snapshot/natives-common.cc b/src/snapshot/natives-common.cc
index f30e794..338b92b 100644
--- a/src/snapshot/natives-common.cc
+++ b/src/snapshot/natives-common.cc
@@ -34,24 +34,5 @@
   return heap->experimental_extra_natives_source_cache();
 }
 
-
-template <NativeType type>
-void NativesCollection<type>::UpdateSourceCache(Heap* heap) {
-  for (int i = 0; i < GetBuiltinsCount(); i++) {
-    Object* source = GetSourceCache(heap)->get(i);
-    if (!source->IsUndefined()) {
-      ExternalOneByteString::cast(source)->update_data_cache();
-    }
-  }
-}
-
-
-// Explicit template instantiations.
-template void NativesCollection<CORE>::UpdateSourceCache(Heap* heap);
-template void NativesCollection<EXPERIMENTAL>::UpdateSourceCache(Heap* heap);
-template void NativesCollection<EXTRAS>::UpdateSourceCache(Heap* heap);
-template void NativesCollection<EXPERIMENTAL_EXTRAS>::UpdateSourceCache(
-    Heap* heap);
-
 }  // namespace internal
 }  // namespace v8
diff --git a/src/snapshot/natives.h b/src/snapshot/natives.h
index 07f6b1a..e447515 100644
--- a/src/snapshot/natives.h
+++ b/src/snapshot/natives.h
@@ -44,7 +44,6 @@
   // The following methods are implemented in natives-common.cc:
 
   static FixedArray* GetSourceCache(Heap* heap);
-  static void UpdateSourceCache(Heap* heap);
 };
 
 typedef NativesCollection<CORE> Natives;
diff --git a/src/snapshot/partial-serializer.cc b/src/snapshot/partial-serializer.cc
index 34defb4..b46f675 100644
--- a/src/snapshot/partial-serializer.cc
+++ b/src/snapshot/partial-serializer.cc
@@ -3,6 +3,7 @@
 // found in the LICENSE file.
 
 #include "src/snapshot/partial-serializer.h"
+#include "src/snapshot/startup-serializer.h"
 
 #include "src/objects-inl.h"
 
@@ -10,11 +11,8 @@
 namespace internal {
 
 PartialSerializer::PartialSerializer(Isolate* isolate,
-                                     Serializer* startup_snapshot_serializer,
-                                     SnapshotByteSink* sink)
-    : Serializer(isolate, sink),
-      startup_serializer_(startup_snapshot_serializer),
-      next_partial_cache_index_(0) {
+                                     StartupSerializer* startup_serializer)
+    : Serializer(isolate), startup_serializer_(startup_serializer) {
   InitializeCodeAddressMap();
 }
 
@@ -34,7 +32,7 @@
     if (context->IsNativeContext()) {
       context->set(Context::NEXT_CONTEXT_LINK,
                    isolate_->heap()->undefined_value());
-      DCHECK(!context->global_object()->IsUndefined());
+      DCHECK(!context->global_object()->IsUndefined(context->GetIsolate()));
     }
   }
   VisitPointer(o);
@@ -53,19 +51,23 @@
   // Replace typed arrays by undefined.
   if (obj->IsJSTypedArray()) obj = isolate_->heap()->undefined_value();
 
+  if (SerializeHotObject(obj, how_to_code, where_to_point, skip)) return;
+
   int root_index = root_index_map_.Lookup(obj);
   if (root_index != RootIndexMap::kInvalidRootIndex) {
     PutRoot(root_index, obj, how_to_code, where_to_point, skip);
     return;
   }
 
+  if (SerializeBackReference(obj, how_to_code, where_to_point, skip)) return;
+
   if (ShouldBeInThePartialSnapshotCache(obj)) {
     FlushSkip(skip);
 
-    int cache_index = PartialSnapshotCacheIndex(obj);
-    sink_->Put(kPartialSnapshotCache + how_to_code + where_to_point,
-               "PartialSnapshotCache");
-    sink_->PutInt(cache_index, "partial_snapshot_cache_index");
+    int cache_index = startup_serializer_->PartialSnapshotCacheIndex(obj);
+    sink_.Put(kPartialSnapshotCache + how_to_code + where_to_point,
+              "PartialSnapshotCache");
+    sink_.PutInt(cache_index, "partial_snapshot_cache_index");
     return;
   }
 
@@ -76,35 +78,26 @@
   // 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());
-
-  if (SerializeKnownObject(obj, how_to_code, where_to_point, skip)) return;
+  // Function and object templates are not context specific.
+  DCHECK(!obj->IsTemplateInfo());
 
   FlushSkip(skip);
 
   // Clear literal boilerplates.
   if (obj->IsJSFunction()) {
-    FixedArray* literals = JSFunction::cast(obj)->literals();
-    for (int i = 0; i < literals->length(); i++) literals->set_undefined(i);
+    JSFunction* function = JSFunction::cast(obj);
+    LiteralsArray* literals = function->literals();
+    for (int i = 0; i < literals->literals_count(); i++) {
+      literals->set_literal_undefined(i);
+    }
+    function->ClearTypeFeedbackInfo();
   }
 
   // Object has not yet been serialized.  Serialize it here.
-  ObjectSerializer serializer(this, obj, sink_, how_to_code, where_to_point);
+  ObjectSerializer serializer(this, obj, &sink_, how_to_code, where_to_point);
   serializer.Serialize();
 }
 
-int PartialSerializer::PartialSnapshotCacheIndex(HeapObject* heap_object) {
-  int index = partial_cache_index_map_.LookupOrInsert(
-      heap_object, next_partial_cache_index_);
-  if (index == PartialCacheIndexMap::kInvalidIndex) {
-    // This object is not part of the partial snapshot cache yet. Add it to the
-    // startup snapshot so we can refer to it via partial snapshot index from
-    // the partial snapshot.
-    startup_serializer_->VisitPointer(reinterpret_cast<Object**>(&heap_object));
-    return next_partial_cache_index_++;
-  }
-  return index;
-}
-
 bool PartialSerializer::ShouldBeInThePartialSnapshotCache(HeapObject* o) {
   // Scripts should be referred only through shared function infos.  We can't
   // allow them to be part of the partial snapshot because they contain a
diff --git a/src/snapshot/partial-serializer.h b/src/snapshot/partial-serializer.h
index ddaba5f..282f76e 100644
--- a/src/snapshot/partial-serializer.h
+++ b/src/snapshot/partial-serializer.h
@@ -11,10 +11,11 @@
 namespace v8 {
 namespace internal {
 
+class StartupSerializer;
+
 class PartialSerializer : public Serializer {
  public:
-  PartialSerializer(Isolate* isolate, Serializer* startup_snapshot_serializer,
-                    SnapshotByteSink* sink);
+  PartialSerializer(Isolate* isolate, StartupSerializer* startup_serializer);
 
   ~PartialSerializer() override;
 
@@ -22,36 +23,12 @@
   void Serialize(Object** o);
 
  private:
-  class PartialCacheIndexMap : public AddressMapBase {
-   public:
-    PartialCacheIndexMap() : map_(HashMap::PointersMatch) {}
-
-    static const int kInvalidIndex = -1;
-
-    // Lookup object in the map. Return its index if found, or create
-    // a new entry with new_index as value, and return kInvalidIndex.
-    int LookupOrInsert(HeapObject* obj, int new_index) {
-      HashMap::Entry* entry = LookupEntry(&map_, obj, false);
-      if (entry != NULL) return GetValue(entry);
-      SetValue(LookupEntry(&map_, obj, true), static_cast<uint32_t>(new_index));
-      return kInvalidIndex;
-    }
-
-   private:
-    HashMap map_;
-
-    DISALLOW_COPY_AND_ASSIGN(PartialCacheIndexMap);
-  };
-
   void SerializeObject(HeapObject* o, HowToCode how_to_code,
                        WhereToPoint where_to_point, int skip) override;
 
-  int PartialSnapshotCacheIndex(HeapObject* o);
   bool ShouldBeInThePartialSnapshotCache(HeapObject* o);
 
-  Serializer* startup_serializer_;
-  PartialCacheIndexMap partial_cache_index_map_;
-  int next_partial_cache_index_;
+  StartupSerializer* startup_serializer_;
   DISALLOW_COPY_AND_ASSIGN(PartialSerializer);
 };
 
diff --git a/src/snapshot/serializer-common.cc b/src/snapshot/serializer-common.cc
index 4afaa20..41c68e8 100644
--- a/src/snapshot/serializer-common.cc
+++ b/src/snapshot/serializer-common.cc
@@ -14,7 +14,7 @@
 ExternalReferenceEncoder::ExternalReferenceEncoder(Isolate* isolate) {
   map_ = isolate->external_reference_map();
   if (map_ != NULL) return;
-  map_ = new HashMap(HashMap::PointersMatch);
+  map_ = new base::HashMap(base::HashMap::PointersMatch);
   ExternalReferenceTable* table = ExternalReferenceTable::instance(isolate);
   for (int i = 0; i < table->size(); ++i) {
     Address addr = table->address(i);
@@ -31,16 +31,16 @@
 
 uint32_t ExternalReferenceEncoder::Encode(Address address) const {
   DCHECK_NOT_NULL(address);
-  HashMap::Entry* entry =
-      const_cast<HashMap*>(map_)->Lookup(address, Hash(address));
+  base::HashMap::Entry* entry =
+      const_cast<base::HashMap*>(map_)->Lookup(address, Hash(address));
   DCHECK_NOT_NULL(entry);
   return static_cast<uint32_t>(reinterpret_cast<intptr_t>(entry->value));
 }
 
 const char* ExternalReferenceEncoder::NameOfAddress(Isolate* isolate,
                                                     Address address) const {
-  HashMap::Entry* entry =
-      const_cast<HashMap*>(map_)->Lookup(address, Hash(address));
+  base::HashMap::Entry* entry =
+      const_cast<base::HashMap*>(map_)->Lookup(address, Hash(address));
   if (entry == NULL) return "<unknown>";
   uint32_t i = static_cast<uint32_t>(reinterpret_cast<intptr_t>(entry->value));
   return ExternalReferenceTable::instance(isolate)->name(i);
@@ -67,7 +67,7 @@
     // During deserialization, the visitor populates the partial snapshot cache
     // and eventually terminates the cache with undefined.
     visitor->VisitPointer(&cache->at(i));
-    if (cache->at(i)->IsUndefined()) break;
+    if (cache->at(i)->IsUndefined(isolate)) break;
   }
 }
 
diff --git a/src/snapshot/serializer-common.h b/src/snapshot/serializer-common.h
index 1ce5ced..bdd2b51 100644
--- a/src/snapshot/serializer-common.h
+++ b/src/snapshot/serializer-common.h
@@ -28,7 +28,7 @@
                                  kPointerSizeLog2);
   }
 
-  HashMap* map_;
+  base::HashMap* map_;
 
   DISALLOW_COPY_AND_ASSIGN(ExternalReferenceEncoder);
 };
@@ -94,31 +94,26 @@
   STATIC_ASSERT(5 == kNumberOfSpaces);
   enum Where {
     // 0x00..0x04  Allocate new object, in specified space.
-    kNewObject = 0,
-    // 0x05        Unused (including 0x25, 0x45, 0x65).
-    // 0x06        Unused (including 0x26, 0x46, 0x66).
-    // 0x07        Unused (including 0x27, 0x47, 0x67).
+    kNewObject = 0x00,
     // 0x08..0x0c  Reference to previous object from space.
     kBackref = 0x08,
-    // 0x0d        Unused (including 0x2d, 0x4d, 0x6d).
-    // 0x0e        Unused (including 0x2e, 0x4e, 0x6e).
-    // 0x0f        Unused (including 0x2f, 0x4f, 0x6f).
     // 0x10..0x14  Reference to previous object from space after skip.
     kBackrefWithSkip = 0x10,
-    // 0x15        Unused (including 0x35, 0x55, 0x75).
-    // 0x16        Unused (including 0x36, 0x56, 0x76).
-    // 0x17        Misc (including 0x37, 0x57, 0x77).
-    // 0x18        Root array item.
-    kRootArray = 0x18,
-    // 0x19        Object in the partial snapshot cache.
-    kPartialSnapshotCache = 0x19,
-    // 0x1a        External reference referenced by id.
-    kExternalReference = 0x1a,
-    // 0x1b        Object provided in the attached list.
-    kAttachedReference = 0x1b,
-    // 0x1c        Builtin code referenced by index.
-    kBuiltin = 0x1c
-    // 0x1d..0x1f  Misc (including 0x3d..0x3f, 0x5d..0x5f, 0x7d..0x7f)
+
+    // 0x05       Root array item.
+    kRootArray = 0x05,
+    // 0x06        Object in the partial snapshot cache.
+    kPartialSnapshotCache = 0x06,
+    // 0x07        External reference referenced by id.
+    kExternalReference = 0x07,
+
+    // 0x0d        Object provided in the attached list.
+    kAttachedReference = 0x0d,
+    // 0x0e        Builtin code referenced by index.
+    kBuiltin = 0x0e,
+
+    // 0x0f        Misc, see below (incl. 0x2f, 0x4f, 0x6f).
+    // 0x15..0x1f  Misc, see below (incl. 0x35..0x3f, 0x55..0x5f, 0x75..0x7f).
   };
 
   static const int kWhereMask = 0x1f;
@@ -147,36 +142,45 @@
 
   // ---------- Misc ----------
   // Skip.
-  static const int kSkip = 0x1d;
-  // Internal reference encoded as offsets of pc and target from code entry.
-  static const int kInternalReference = 0x1e;
-  static const int kInternalReferenceEncoded = 0x1f;
+  static const int kSkip = 0x0f;
   // Do nothing, used for padding.
-  static const int kNop = 0x3d;
+  static const int kNop = 0x2f;
   // Move to next reserved chunk.
-  static const int kNextChunk = 0x3e;
+  static const int kNextChunk = 0x4f;
   // Deferring object content.
-  static const int kDeferred = 0x3f;
-  // Used for the source code of the natives, which is in the executable, but
-  // is referred to from external strings in the snapshot.
-  static const int kNativesStringResource = 0x5d;
-  // Used for the source code for compiled stubs, which is in the executable,
-  // but is referred to from external strings in the snapshot.
-  static const int kExtraNativesStringResource = 0x5e;
+  static const int kDeferred = 0x6f;
+  // Alignment prefixes 0x15..0x17
+  static const int kAlignmentPrefix = 0x15;
   // A tag emitted at strategic points in the snapshot to delineate sections.
   // If the deserializer does not find these at the expected moments then it
   // is an indication that the snapshot and the VM do not fit together.
   // Examine the build process for architecture, version or configuration
   // mismatches.
-  static const int kSynchronize = 0x17;
+  static const int kSynchronize = 0x18;
   // Repeats of variable length.
-  static const int kVariableRepeat = 0x37;
+  static const int kVariableRepeat = 0x19;
   // Raw data of variable length.
-  static const int kVariableRawData = 0x57;
-  // Alignment prefixes 0x7d..0x7f
-  static const int kAlignmentPrefix = 0x7d;
+  static const int kVariableRawData = 0x1a;
+  // Internal reference encoded as offsets of pc and target from code entry.
+  static const int kInternalReference = 0x1b;
+  static const int kInternalReferenceEncoded = 0x1c;
+  // Used for the source code of the natives, which is in the executable, but
+  // is referred to from external strings in the snapshot.
+  static const int kNativesStringResource = 0x1d;
+  // Used for the source code for compiled stubs, which is in the executable,
+  // but is referred to from external strings in the snapshot.
+  static const int kExtraNativesStringResource = 0x1e;
 
-  // 0x77 unused
+  // 8 hot (recently seen or back-referenced) objects with optional skip.
+  static const int kNumberOfHotObjects = 8;
+  STATIC_ASSERT(kNumberOfHotObjects == HotObjectsList::kSize);
+  // 0x38..0x3f
+  static const int kHotObject = 0x38;
+  // 0x58..0x5f
+  static const int kHotObjectWithSkip = 0x58;
+  static const int kHotObjectMask = 0x07;
+
+  // 0x1f, 0x35..0x37, 0x55..0x57, 0x75..0x7f unused.
 
   // ---------- byte code range 0x80..0xff ----------
   // First 32 root array items.
@@ -187,27 +191,21 @@
   static const int kRootArrayConstantsWithSkip = 0xa0;
   static const int kRootArrayConstantsMask = 0x1f;
 
-  // 8 hot (recently seen or back-referenced) objects with optional skip.
-  static const int kNumberOfHotObjects = 0x08;
-  // 0xc0..0xc7
-  static const int kHotObject = 0xc0;
-  // 0xc8..0xcf
-  static const int kHotObjectWithSkip = 0xc8;
-  static const int kHotObjectMask = 0x07;
-
   // 32 common raw data lengths.
   static const int kNumberOfFixedRawData = 0x20;
-  // 0xd0..0xef
-  static const int kFixedRawData = 0xd0;
+  // 0xc0..0xdf
+  static const int kFixedRawData = 0xc0;
   static const int kOnePointerRawData = kFixedRawData;
   static const int kFixedRawDataStart = kFixedRawData - 1;
 
   // 16 repeats lengths.
   static const int kNumberOfFixedRepeat = 0x10;
-  // 0xf0..0xff
-  static const int kFixedRepeat = 0xf0;
+  // 0xe0..0xef
+  static const int kFixedRepeat = 0xe0;
   static const int kFixedRepeatStart = kFixedRepeat - 1;
 
+  // 0xf0..0xff unused.
+
   // ---------- special values ----------
   static const int kAnyOldSpace = -1;
 
diff --git a/src/snapshot/serializer.cc b/src/snapshot/serializer.cc
index f6f2200..b6a75ff 100644
--- a/src/snapshot/serializer.cc
+++ b/src/snapshot/serializer.cc
@@ -10,9 +10,8 @@
 namespace v8 {
 namespace internal {
 
-Serializer::Serializer(Isolate* isolate, SnapshotByteSink* sink)
+Serializer::Serializer(Isolate* isolate)
     : isolate_(isolate),
-      sink_(sink),
       external_reference_encoder_(isolate),
       root_index_map_(isolate),
       recursion_depth_(0),
@@ -90,10 +89,10 @@
 void Serializer::SerializeDeferredObjects() {
   while (deferred_objects_.length() > 0) {
     HeapObject* obj = deferred_objects_.RemoveLast();
-    ObjectSerializer obj_serializer(this, obj, sink_, kPlain, kStartOfObject);
+    ObjectSerializer obj_serializer(this, obj, &sink_, kPlain, kStartOfObject);
     obj_serializer.SerializeDeferred();
   }
-  sink_->Put(kSynchronize, "Finished with deferred objects");
+  sink_.Put(kSynchronize, "Finished with deferred objects");
 }
 
 void Serializer::VisitPointers(Object** start, Object** end) {
@@ -141,62 +140,61 @@
 }
 #endif  // DEBUG
 
-bool Serializer::SerializeKnownObject(HeapObject* obj, HowToCode how_to_code,
-                                      WhereToPoint where_to_point, int skip) {
-  if (how_to_code == kPlain && where_to_point == kStartOfObject) {
-    // Encode a reference to a hot object by its index in the working set.
-    int index = hot_objects_.Find(obj);
-    if (index != HotObjectsList::kNotFound) {
-      DCHECK(index >= 0 && index < kNumberOfHotObjects);
-      if (FLAG_trace_serializer) {
-        PrintF(" Encoding hot object %d:", index);
-        obj->ShortPrint();
-        PrintF("\n");
-      }
-      if (skip != 0) {
-        sink_->Put(kHotObjectWithSkip + index, "HotObjectWithSkip");
-        sink_->PutInt(skip, "HotObjectSkipDistance");
-      } else {
-        sink_->Put(kHotObject + index, "HotObject");
-      }
-      return true;
-    }
+bool Serializer::SerializeHotObject(HeapObject* obj, HowToCode how_to_code,
+                                    WhereToPoint where_to_point, int skip) {
+  if (how_to_code != kPlain || where_to_point != kStartOfObject) return false;
+  // Encode a reference to a hot object by its index in the working set.
+  int index = hot_objects_.Find(obj);
+  if (index == HotObjectsList::kNotFound) return false;
+  DCHECK(index >= 0 && index < kNumberOfHotObjects);
+  if (FLAG_trace_serializer) {
+    PrintF(" Encoding hot object %d:", index);
+    obj->ShortPrint();
+    PrintF("\n");
   }
+  if (skip != 0) {
+    sink_.Put(kHotObjectWithSkip + index, "HotObjectWithSkip");
+    sink_.PutInt(skip, "HotObjectSkipDistance");
+  } else {
+    sink_.Put(kHotObject + index, "HotObject");
+  }
+  return true;
+}
+bool Serializer::SerializeBackReference(HeapObject* obj, HowToCode how_to_code,
+                                        WhereToPoint where_to_point, int skip) {
   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 (reference.is_attached_reference()) {
-      FlushSkip(skip);
-      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();
-        PrintF("\n");
-      }
-
-      PutAlignmentPrefix(obj);
-      AllocationSpace space = reference.space();
-      if (skip == 0) {
-        sink_->Put(kBackref + how_to_code + where_to_point + space, "BackRef");
-      } else {
-        sink_->Put(kBackrefWithSkip + how_to_code + where_to_point + space,
-                   "BackRefWithSkip");
-        sink_->PutInt(skip, "BackRefSkipDistance");
-      }
-      PutBackReference(obj, reference);
+  if (!reference.is_valid()) return false;
+  // 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 (reference.is_attached_reference()) {
+    FlushSkip(skip);
+    if (FLAG_trace_serializer) {
+      PrintF(" Encoding attached reference %d\n",
+             reference.attached_reference_index());
     }
-    return true;
+    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();
+      PrintF("\n");
+    }
+
+    PutAlignmentPrefix(obj);
+    AllocationSpace space = reference.space();
+    if (skip == 0) {
+      sink_.Put(kBackref + how_to_code + where_to_point + space, "BackRef");
+    } else {
+      sink_.Put(kBackrefWithSkip + how_to_code + where_to_point + space,
+                "BackRefWithSkip");
+      sink_.PutInt(skip, "BackRefSkipDistance");
+    }
+    PutBackReference(obj, reference);
   }
-  return false;
+  return true;
 }
 
 void Serializer::PutRoot(int root_index, HeapObject* object,
@@ -213,28 +211,29 @@
       root_index < kNumberOfRootArrayConstants &&
       !isolate()->heap()->InNewSpace(object)) {
     if (skip == 0) {
-      sink_->Put(kRootArrayConstants + root_index, "RootConstant");
+      sink_.Put(kRootArrayConstants + root_index, "RootConstant");
     } else {
-      sink_->Put(kRootArrayConstantsWithSkip + root_index, "RootConstant");
-      sink_->PutInt(skip, "SkipInPutRoot");
+      sink_.Put(kRootArrayConstantsWithSkip + root_index, "RootConstant");
+      sink_.PutInt(skip, "SkipInPutRoot");
     }
   } else {
     FlushSkip(skip);
-    sink_->Put(kRootArray + how_to_code + where_to_point, "RootSerialization");
-    sink_->PutInt(root_index, "root_index");
+    sink_.Put(kRootArray + how_to_code + where_to_point, "RootSerialization");
+    sink_.PutInt(root_index, "root_index");
+    hot_objects_.Add(object);
   }
 }
 
 void Serializer::PutSmi(Smi* smi) {
-  sink_->Put(kOnePointerRawData, "Smi");
+  sink_.Put(kOnePointerRawData, "Smi");
   byte* bytes = reinterpret_cast<byte*>(&smi);
-  for (int i = 0; i < kPointerSize; i++) sink_->Put(bytes[i], "Byte");
+  for (int i = 0; i < kPointerSize; i++) sink_.Put(bytes[i], "Byte");
 }
 
 void Serializer::PutBackReference(HeapObject* object,
                                   SerializerReference reference) {
   DCHECK(BackReferenceIsAlreadyAllocated(reference));
-  sink_->PutInt(reference.back_reference(), "BackRefValue");
+  sink_.PutInt(reference.back_reference(), "BackRefValue");
   hot_objects_.Add(object);
 }
 
@@ -245,8 +244,8 @@
   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");
+  sink_.Put(kAttachedReference + how_to_code + where_to_point, "AttachedRef");
+  sink_.PutInt(reference.attached_reference_index(), "AttachedRefIndex");
 }
 
 int Serializer::PutAlignmentPrefix(HeapObject* object) {
@@ -254,7 +253,7 @@
   if (alignment != kWordAligned) {
     DCHECK(1 <= alignment && alignment <= 3);
     byte prefix = (kAlignmentPrefix - 1) + alignment;
-    sink_->Put(prefix, "Alignment");
+    sink_.Put(prefix, "Alignment");
     return Heap::GetMaximumFillToAlign(alignment);
   }
   return 0;
@@ -274,8 +273,8 @@
   if (new_chunk_size > max_chunk_size(space)) {
     // The new chunk size would not fit onto a single page. Complete the
     // current chunk and start a new one.
-    sink_->Put(kNextChunk, "NextChunk");
-    sink_->Put(space, "NextChunkSpace");
+    sink_.Put(kNextChunk, "NextChunk");
+    sink_.Put(space, "NextChunkSpace");
     completed_chunks_[space].Add(pending_chunk_[space]);
     pending_chunk_[space] = 0;
     new_chunk_size = size;
@@ -290,11 +289,11 @@
   // The non-branching GetInt will read up to 3 bytes too far, so we need
   // to pad the snapshot to make sure we don't read over the end.
   for (unsigned i = 0; i < sizeof(int32_t) - 1; i++) {
-    sink_->Put(kNop, "Padding");
+    sink_.Put(kNop, "Padding");
   }
   // Pad up to pointer size for checksum.
-  while (!IsAligned(sink_->Position(), kPointerAlignment)) {
-    sink_->Put(kNop, "Padding");
+  while (!IsAligned(sink_.Position(), kPointerAlignment)) {
+    sink_.Put(kNop, "Padding");
   }
 }
 
@@ -668,9 +667,10 @@
     int builtin_count,
     v8::String::ExternalOneByteStringResource** resource_pointer,
     FixedArray* source_cache, int resource_index) {
+  Isolate* isolate = serializer_->isolate();
   for (int i = 0; i < builtin_count; i++) {
     Object* source = source_cache->get(i);
-    if (!source->IsUndefined()) {
+    if (!source->IsUndefined(isolate)) {
       ExternalOneByteString* string = ExternalOneByteString::cast(source);
       typedef v8::String::ExternalOneByteStringResource Resource;
       const Resource* resource = string->resource();
@@ -687,6 +687,9 @@
 
 void Serializer::ObjectSerializer::VisitExternalOneByteString(
     v8::String::ExternalOneByteStringResource** resource_pointer) {
+  DCHECK_EQ(serializer_->isolate()->heap()->native_source_string_map(),
+            object_->map());
+  DCHECK(ExternalOneByteString::cast(object_)->is_short());
   Address references_start = reinterpret_cast<Address>(resource_pointer);
   OutputRawData(references_start);
   if (SerializeExternalNativeSourceString(
@@ -707,25 +710,27 @@
 }
 
 Address Serializer::ObjectSerializer::PrepareCode() {
-  // To make snapshots reproducible, we make a copy of the code object
-  // and wipe all pointers in the copy, which we then serialize.
-  Code* original = Code::cast(object_);
-  Code* code = serializer_->CopyCode(original);
+  Code* code = Code::cast(object_);
+  if (FLAG_predictable) {
+    // To make snapshots reproducible, we make a copy of the code object
+    // and wipe all pointers in the copy, which we then serialize.
+    code = serializer_->CopyCode(code);
+    int mode_mask = RelocInfo::kCodeTargetMask |
+                    RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) |
+                    RelocInfo::ModeMask(RelocInfo::EXTERNAL_REFERENCE) |
+                    RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY) |
+                    RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE) |
+                    RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE_ENCODED);
+    for (RelocIterator it(code, mode_mask); !it.done(); it.next()) {
+      RelocInfo* rinfo = it.rinfo();
+      rinfo->WipeOut();
+    }
+    // We need to wipe out the header fields *after* wiping out the
+    // relocations, because some of these fields are needed for the latter.
+    code->WipeOutHeader();
+  }
   // Code age headers are not serializable.
   code->MakeYoung(serializer_->isolate());
-  int mode_mask = RelocInfo::kCodeTargetMask |
-                  RelocInfo::ModeMask(RelocInfo::EMBEDDED_OBJECT) |
-                  RelocInfo::ModeMask(RelocInfo::EXTERNAL_REFERENCE) |
-                  RelocInfo::ModeMask(RelocInfo::RUNTIME_ENTRY) |
-                  RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE) |
-                  RelocInfo::ModeMask(RelocInfo::INTERNAL_REFERENCE_ENCODED);
-  for (RelocIterator it(code, mode_mask); !it.done(); it.next()) {
-    RelocInfo* rinfo = it.rinfo();
-    rinfo->WipeOut();
-  }
-  // We need to wipe out the header fields *after* wiping out the
-  // relocations, because some of these fields are needed for the latter.
-  code->WipeOutHeader();
   return code->address();
 }
 
diff --git a/src/snapshot/serializer.h b/src/snapshot/serializer.h
index f99cd72..45f891e 100644
--- a/src/snapshot/serializer.h
+++ b/src/snapshot/serializer.h
@@ -38,28 +38,29 @@
  private:
   class NameMap {
    public:
-    NameMap() : impl_(HashMap::PointersMatch) {}
+    NameMap() : impl_(base::HashMap::PointersMatch) {}
 
     ~NameMap() {
-      for (HashMap::Entry* p = impl_.Start(); p != NULL; p = impl_.Next(p)) {
+      for (base::HashMap::Entry* p = impl_.Start(); p != NULL;
+           p = impl_.Next(p)) {
         DeleteArray(static_cast<const char*>(p->value));
       }
     }
 
     void Insert(Address code_address, const char* name, int name_size) {
-      HashMap::Entry* entry = FindOrCreateEntry(code_address);
+      base::HashMap::Entry* entry = FindOrCreateEntry(code_address);
       if (entry->value == NULL) {
         entry->value = CopyName(name, name_size);
       }
     }
 
     const char* Lookup(Address code_address) {
-      HashMap::Entry* entry = FindEntry(code_address);
+      base::HashMap::Entry* entry = FindEntry(code_address);
       return (entry != NULL) ? static_cast<const char*>(entry->value) : NULL;
     }
 
     void Remove(Address code_address) {
-      HashMap::Entry* entry = FindEntry(code_address);
+      base::HashMap::Entry* entry = FindEntry(code_address);
       if (entry != NULL) {
         DeleteArray(static_cast<char*>(entry->value));
         RemoveEntry(entry);
@@ -68,11 +69,11 @@
 
     void Move(Address from, Address to) {
       if (from == to) return;
-      HashMap::Entry* from_entry = FindEntry(from);
+      base::HashMap::Entry* from_entry = FindEntry(from);
       DCHECK(from_entry != NULL);
       void* value = from_entry->value;
       RemoveEntry(from_entry);
-      HashMap::Entry* to_entry = FindOrCreateEntry(to);
+      base::HashMap::Entry* to_entry = FindOrCreateEntry(to);
       DCHECK(to_entry->value == NULL);
       to_entry->value = value;
     }
@@ -89,20 +90,20 @@
       return result;
     }
 
-    HashMap::Entry* FindOrCreateEntry(Address code_address) {
+    base::HashMap::Entry* FindOrCreateEntry(Address code_address) {
       return impl_.LookupOrInsert(code_address,
                                   ComputePointerHash(code_address));
     }
 
-    HashMap::Entry* FindEntry(Address code_address) {
+    base::HashMap::Entry* FindEntry(Address code_address) {
       return impl_.Lookup(code_address, ComputePointerHash(code_address));
     }
 
-    void RemoveEntry(HashMap::Entry* entry) {
+    void RemoveEntry(base::HashMap::Entry* entry) {
       impl_.Remove(entry->key, entry->hash);
     }
 
-    HashMap impl_;
+    base::HashMap impl_;
 
     DISALLOW_COPY_AND_ASSIGN(NameMap);
   };
@@ -119,7 +120,7 @@
 // There can be only one serializer per V8 process.
 class Serializer : public SerializerDeserializer {
  public:
-  Serializer(Isolate* isolate, SnapshotByteSink* sink);
+  explicit Serializer(Isolate* isolate);
   ~Serializer() override;
 
   void EncodeReservations(List<SerializedData::Reservation>* out) const;
@@ -170,14 +171,18 @@
   // Emit alignment prefix if necessary, return required padding space in bytes.
   int PutAlignmentPrefix(HeapObject* object);
 
-  // Returns true if the object was successfully serialized.
-  bool SerializeKnownObject(HeapObject* obj, HowToCode how_to_code,
-                            WhereToPoint where_to_point, int skip);
+  // Returns true if the object was successfully serialized as hot object.
+  bool SerializeHotObject(HeapObject* obj, HowToCode how_to_code,
+                          WhereToPoint where_to_point, int skip);
+
+  // Returns true if the object was successfully serialized as back reference.
+  bool SerializeBackReference(HeapObject* obj, HowToCode how_to_code,
+                              WhereToPoint where_to_point, int skip);
 
   inline void FlushSkip(int skip) {
     if (skip != 0) {
-      sink_->Put(kSkip, "SkipFromSerializeObject");
-      sink_->PutInt(skip, "SkipDistanceFromSerializeObject");
+      sink_.Put(kSkip, "SkipFromSerializeObject");
+      sink_.PutInt(skip, "SkipDistanceFromSerializeObject");
     }
   }
 
@@ -207,7 +212,7 @@
     return max_chunk_size_[space];
   }
 
-  SnapshotByteSink* sink() const { return sink_; }
+  const SnapshotByteSink* sink() const { return &sink_; }
 
   void QueueDeferredObject(HeapObject* obj) {
     DCHECK(reference_map_.Lookup(obj).is_back_reference());
@@ -218,7 +223,7 @@
 
   Isolate* isolate_;
 
-  SnapshotByteSink* sink_;
+  SnapshotByteSink sink_;
   ExternalReferenceEncoder external_reference_encoder_;
 
   SerializerReferenceMap reference_map_;
diff --git a/src/snapshot/snapshot-common.cc b/src/snapshot/snapshot-common.cc
index a951b0d..5eac4af 100644
--- a/src/snapshot/snapshot-common.cc
+++ b/src/snapshot/snapshot-common.cc
@@ -18,8 +18,7 @@
 
 #ifdef DEBUG
 bool Snapshot::SnapshotIsValid(v8::StartupData* snapshot_blob) {
-  return !Snapshot::ExtractStartupData(snapshot_blob).is_empty() &&
-         !Snapshot::ExtractContextData(snapshot_blob).is_empty();
+  return Snapshot::ExtractNumContexts(snapshot_blob) > 0;
 }
 #endif  // DEBUG
 
@@ -31,12 +30,6 @@
 }
 
 
-bool Snapshot::EmbedsScript(Isolate* isolate) {
-  if (!isolate->snapshot_available()) return false;
-  return ExtractMetadata(isolate->snapshot_blob()).embeds_script();
-}
-
-
 uint32_t Snapshot::SizeOfFirstPage(Isolate* isolate, AllocationSpace space) {
   DCHECK(space >= FIRST_PAGED_SPACE && space <= LAST_PAGED_SPACE);
   if (!isolate->snapshot_available()) {
@@ -67,15 +60,16 @@
   return success;
 }
 
-
 MaybeHandle<Context> Snapshot::NewContextFromSnapshot(
-    Isolate* isolate, Handle<JSGlobalProxy> global_proxy) {
+    Isolate* isolate, Handle<JSGlobalProxy> global_proxy,
+    size_t context_index) {
   if (!isolate->snapshot_available()) return Handle<Context>();
   base::ElapsedTimer timer;
   if (FLAG_profile_deserialization) timer.Start();
 
   const v8::StartupData* blob = isolate->snapshot_blob();
-  Vector<const byte> context_data = ExtractContextData(blob);
+  Vector<const byte> context_data =
+      ExtractContextData(blob, static_cast<int>(context_index));
   SnapshotData snapshot_data(context_data);
   Deserializer deserializer(&snapshot_data);
 
@@ -87,178 +81,192 @@
   if (FLAG_profile_deserialization) {
     double ms = timer.Elapsed().InMillisecondsF();
     int bytes = context_data.length();
-    PrintF("[Deserializing context (%d bytes) took %0.3f ms]\n", bytes, ms);
+    PrintF("[Deserializing context #%zu (%d bytes) took %0.3f ms]\n",
+           context_index, bytes, ms);
   }
   return Handle<Context>::cast(result);
 }
 
+void UpdateMaxRequirementPerPage(
+    uint32_t* requirements,
+    Vector<const SerializedData::Reservation> reservations) {
+  int space = 0;
+  uint32_t current_requirement = 0;
+  for (const auto& reservation : reservations) {
+    current_requirement += reservation.chunk_size();
+    if (reservation.is_last()) {
+      requirements[space] = std::max(requirements[space], current_requirement);
+      current_requirement = 0;
+      space++;
+    }
+  }
+  DCHECK_EQ(i::Serializer::kNumberOfSpaces, space);
+}
 
-void CalculateFirstPageSizes(bool is_default_snapshot,
-                             const SnapshotData& startup_snapshot,
-                             const SnapshotData& context_snapshot,
+void CalculateFirstPageSizes(const SnapshotData* startup_snapshot,
+                             const List<SnapshotData*>* context_snapshots,
                              uint32_t* sizes_out) {
-  Vector<const SerializedData::Reservation> startup_reservations =
-      startup_snapshot.Reservations();
-  Vector<const SerializedData::Reservation> context_reservations =
-      context_snapshot.Reservations();
-  int startup_index = 0;
-  int context_index = 0;
-
   if (FLAG_profile_deserialization) {
     int startup_total = 0;
-    int context_total = 0;
-    for (auto& reservation : startup_reservations) {
+    PrintF("Deserialization will reserve:\n");
+    for (const auto& reservation : startup_snapshot->Reservations()) {
       startup_total += reservation.chunk_size();
     }
-    for (auto& reservation : context_reservations) {
-      context_total += reservation.chunk_size();
+    PrintF("%10d bytes per isolate\n", startup_total);
+    for (int i = 0; i < context_snapshots->length(); i++) {
+      int context_total = 0;
+      for (const auto& reservation : context_snapshots->at(i)->Reservations()) {
+        context_total += reservation.chunk_size();
+      }
+      PrintF("%10d bytes per context #%d\n", context_total, i);
     }
-    PrintF(
-        "Deserialization will reserve:\n"
-        "%10d bytes per isolate\n"
-        "%10d bytes per context\n",
-        startup_total, context_total);
+  }
+
+  uint32_t startup_requirements[i::Serializer::kNumberOfSpaces];
+  uint32_t context_requirements[i::Serializer::kNumberOfSpaces];
+  for (int space = 0; space < i::Serializer::kNumberOfSpaces; space++) {
+    startup_requirements[space] = 0;
+    context_requirements[space] = 0;
+  }
+
+  UpdateMaxRequirementPerPage(startup_requirements,
+                              startup_snapshot->Reservations());
+  for (const auto& context_snapshot : *context_snapshots) {
+    UpdateMaxRequirementPerPage(context_requirements,
+                                context_snapshot->Reservations());
   }
 
   for (int space = 0; space < i::Serializer::kNumberOfSpaces; space++) {
-    bool single_chunk = true;
-    while (!startup_reservations[startup_index].is_last()) {
-      single_chunk = false;
-      startup_index++;
-    }
-    while (!context_reservations[context_index].is_last()) {
-      single_chunk = false;
-      context_index++;
-    }
-
-    uint32_t required = kMaxUInt32;
-    if (single_chunk) {
-      // If both the startup snapshot data and the context snapshot data on
-      // this space fit in a single page, then we consider limiting the size
-      // of the first page. For this, we add the chunk sizes and some extra
-      // allowance. This way we achieve a smaller startup memory footprint.
-      required = (startup_reservations[startup_index].chunk_size() +
-                  2 * context_reservations[context_index].chunk_size()) +
-                 Page::kObjectStartOffset;
-      // Add a small allowance to the code space for small scripts.
-      if (space == CODE_SPACE) required += 32 * KB;
-    } 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);
-    }
+    // If the space requirement for a page is less than a page size, we consider
+    // limiting the size of the first page in order to save memory on startup.
+    uint32_t required = startup_requirements[space] +
+                        2 * context_requirements[space] +
+                        Page::kObjectStartOffset;
+    // Add a small allowance to the code space for small scripts.
+    if (space == CODE_SPACE) required += 32 * KB;
 
     if (space >= FIRST_PAGED_SPACE && space <= LAST_PAGED_SPACE) {
       uint32_t max_size =
           MemoryAllocator::PageAreaSize(static_cast<AllocationSpace>(space));
-      sizes_out[space - FIRST_PAGED_SPACE] = Min(required, max_size);
-    } else {
-      DCHECK(single_chunk);
+      sizes_out[space - FIRST_PAGED_SPACE] = std::min(required, max_size);
     }
-    startup_index++;
-    context_index++;
   }
-
-  DCHECK_EQ(startup_reservations.length(), startup_index);
-  DCHECK_EQ(context_reservations.length(), context_index);
 }
 
-
 v8::StartupData Snapshot::CreateSnapshotBlob(
-    const i::StartupSerializer& startup_ser,
-    const i::PartialSerializer& context_ser, Snapshot::Metadata metadata) {
-  SnapshotData startup_snapshot(startup_ser);
-  SnapshotData context_snapshot(context_ser);
-  Vector<const byte> startup_data = startup_snapshot.RawData();
-  Vector<const byte> context_data = context_snapshot.RawData();
+    const SnapshotData* startup_snapshot,
+    const List<SnapshotData*>* context_snapshots) {
+  int num_contexts = context_snapshots->length();
+  int startup_snapshot_offset = StartupSnapshotOffset(num_contexts);
+  int total_length = startup_snapshot_offset;
+  total_length += startup_snapshot->RawData().length();
+  for (const auto& context_snapshot : *context_snapshots) {
+    total_length += context_snapshot->RawData().length();
+  }
 
   uint32_t first_page_sizes[kNumPagedSpaces];
+  CalculateFirstPageSizes(startup_snapshot, context_snapshots,
+                          first_page_sizes);
 
-  CalculateFirstPageSizes(!metadata.embeds_script(), startup_snapshot,
-                          context_snapshot, first_page_sizes);
-
-  int startup_length = startup_data.length();
-  int context_length = context_data.length();
-  int context_offset = ContextOffset(startup_length);
-
-  int length = context_offset + context_length;
-  char* data = new char[length];
-
-  memcpy(data + kMetadataOffset, &metadata.RawValue(), kInt32Size);
+  char* data = new char[total_length];
   memcpy(data + kFirstPageSizesOffset, first_page_sizes,
          kNumPagedSpaces * kInt32Size);
-  memcpy(data + kStartupLengthOffset, &startup_length, kInt32Size);
-  memcpy(data + kStartupDataOffset, startup_data.begin(), startup_length);
-  memcpy(data + context_offset, context_data.begin(), context_length);
-  v8::StartupData result = {data, length};
-
+  memcpy(data + kNumberOfContextsOffset, &num_contexts, kInt32Size);
+  int payload_offset = StartupSnapshotOffset(num_contexts);
+  int payload_length = startup_snapshot->RawData().length();
+  memcpy(data + payload_offset, startup_snapshot->RawData().start(),
+         payload_length);
   if (FLAG_profile_deserialization) {
-    PrintF(
-        "Snapshot blob consists of:\n"
-        "%10d bytes for startup\n"
-        "%10d bytes for context\n",
-        startup_length, context_length);
+    PrintF("Snapshot blob consists of:\n%10d bytes for startup\n",
+           payload_length);
   }
+  payload_offset += payload_length;
+  for (int i = 0; i < num_contexts; i++) {
+    memcpy(data + ContextSnapshotOffsetOffset(i), &payload_offset, kInt32Size);
+    SnapshotData* context_snapshot = context_snapshots->at(i);
+    payload_length = context_snapshot->RawData().length();
+    memcpy(data + payload_offset, context_snapshot->RawData().start(),
+           payload_length);
+    if (FLAG_profile_deserialization) {
+      PrintF("%10d bytes for context #%d\n", payload_length, i);
+    }
+    payload_offset += payload_length;
+  }
+
+  v8::StartupData result = {data, total_length};
   return result;
 }
 
-
-Snapshot::Metadata Snapshot::ExtractMetadata(const v8::StartupData* data) {
-  uint32_t raw;
-  memcpy(&raw, data->data + kMetadataOffset, kInt32Size);
-  return Metadata(raw);
+int Snapshot::ExtractNumContexts(const v8::StartupData* data) {
+  CHECK_LT(kNumberOfContextsOffset, data->raw_size);
+  int num_contexts;
+  memcpy(&num_contexts, data->data + kNumberOfContextsOffset, kInt32Size);
+  return num_contexts;
 }
 
-
 Vector<const byte> Snapshot::ExtractStartupData(const v8::StartupData* data) {
-  DCHECK_LT(kIntSize, data->raw_size);
-  int startup_length;
-  memcpy(&startup_length, data->data + kStartupLengthOffset, kInt32Size);
-  DCHECK_LT(startup_length, data->raw_size);
+  int num_contexts = ExtractNumContexts(data);
+  int startup_offset = StartupSnapshotOffset(num_contexts);
+  CHECK_LT(startup_offset, data->raw_size);
+  int first_context_offset;
+  memcpy(&first_context_offset, data->data + ContextSnapshotOffsetOffset(0),
+         kInt32Size);
+  CHECK_LT(first_context_offset, data->raw_size);
+  int startup_length = first_context_offset - startup_offset;
   const byte* startup_data =
-      reinterpret_cast<const byte*>(data->data + kStartupDataOffset);
+      reinterpret_cast<const byte*>(data->data + startup_offset);
   return Vector<const byte>(startup_data, startup_length);
 }
 
+Vector<const byte> Snapshot::ExtractContextData(const v8::StartupData* data,
+                                                int index) {
+  int num_contexts = ExtractNumContexts(data);
+  CHECK_LT(index, num_contexts);
 
-Vector<const byte> Snapshot::ExtractContextData(const v8::StartupData* data) {
-  DCHECK_LT(kIntSize, data->raw_size);
-  int startup_length;
-  memcpy(&startup_length, data->data + kStartupLengthOffset, kIntSize);
-  int context_offset = ContextOffset(startup_length);
+  int context_offset;
+  memcpy(&context_offset, data->data + ContextSnapshotOffsetOffset(index),
+         kInt32Size);
+  int next_context_offset;
+  if (index == num_contexts - 1) {
+    next_context_offset = data->raw_size;
+  } else {
+    memcpy(&next_context_offset,
+           data->data + ContextSnapshotOffsetOffset(index + 1), kInt32Size);
+    CHECK_LT(next_context_offset, data->raw_size);
+  }
+
   const byte* context_data =
       reinterpret_cast<const byte*>(data->data + context_offset);
-  DCHECK_LT(context_offset, data->raw_size);
-  int context_length = data->raw_size - context_offset;
+  int context_length = next_context_offset - context_offset;
   return Vector<const byte>(context_data, context_length);
 }
 
-SnapshotData::SnapshotData(const Serializer& ser) {
+SnapshotData::SnapshotData(const Serializer* serializer) {
   DisallowHeapAllocation no_gc;
   List<Reservation> reservations;
-  ser.EncodeReservations(&reservations);
-  const List<byte>& payload = ser.sink()->data();
+  serializer->EncodeReservations(&reservations);
+  const List<byte>* payload = serializer->sink()->data();
 
   // Calculate sizes.
   int reservation_size = reservations.length() * kInt32Size;
-  int size = kHeaderSize + reservation_size + payload.length();
+  int size = kHeaderSize + reservation_size + payload->length();
 
   // Allocate backing store and create result data.
   AllocateData(size);
 
   // Set header values.
-  SetMagicNumber(ser.isolate());
+  SetMagicNumber(serializer->isolate());
   SetHeaderValue(kCheckSumOffset, Version::Hash());
   SetHeaderValue(kNumReservationsOffset, reservations.length());
-  SetHeaderValue(kPayloadLengthOffset, payload.length());
+  SetHeaderValue(kPayloadLengthOffset, payload->length());
 
   // Copy reservation chunk sizes.
   CopyBytes(data_ + kHeaderSize, reinterpret_cast<byte*>(reservations.begin()),
             reservation_size);
 
   // Copy serialized data.
-  CopyBytes(data_ + kHeaderSize + reservation_size, payload.begin(),
-            static_cast<size_t>(payload.length()));
+  CopyBytes(data_ + kHeaderSize + reservation_size, payload->begin(),
+            static_cast<size_t>(payload->length()));
 }
 
 bool SnapshotData::IsSane() {
diff --git a/src/snapshot/snapshot-source-sink.h b/src/snapshot/snapshot-source-sink.h
index 360ec76..5d4c08d 100644
--- a/src/snapshot/snapshot-source-sink.h
+++ b/src/snapshot/snapshot-source-sink.h
@@ -94,7 +94,7 @@
   void PutRaw(const byte* data, int number_of_bytes, const char* description);
   int Position() { return data_.length(); }
 
-  const List<byte>& data() const { return data_; }
+  const List<byte>* data() const { return &data_; }
 
  private:
   List<byte> data_;
diff --git a/src/snapshot/snapshot.h b/src/snapshot/snapshot.h
index c648d75..e332967 100644
--- a/src/snapshot/snapshot.h
+++ b/src/snapshot/snapshot.h
@@ -16,84 +16,11 @@
 class PartialSerializer;
 class StartupSerializer;
 
-class Snapshot : public AllStatic {
- public:
-  class Metadata {
-   public:
-    explicit Metadata(uint32_t data = 0) : data_(data) {}
-    bool embeds_script() { return EmbedsScriptBits::decode(data_); }
-    void set_embeds_script(bool v) {
-      data_ = EmbedsScriptBits::update(data_, v);
-    }
-
-    uint32_t& RawValue() { return data_; }
-
-   private:
-    class EmbedsScriptBits : public BitField<bool, 0, 1> {};
-    uint32_t data_;
-  };
-
-  // Initialize the Isolate from the internal snapshot. Returns false if no
-  // snapshot could be found.
-  static bool Initialize(Isolate* isolate);
-  // Create a new context using the internal partial snapshot.
-  static MaybeHandle<Context> NewContextFromSnapshot(
-      Isolate* isolate, Handle<JSGlobalProxy> global_proxy);
-
-  static bool HaveASnapshotToStartFrom(Isolate* isolate);
-
-  static bool EmbedsScript(Isolate* isolate);
-
-  static uint32_t SizeOfFirstPage(Isolate* isolate, AllocationSpace space);
-
-
-  // To be implemented by the snapshot source.
-  static const v8::StartupData* DefaultSnapshotBlob();
-
-  static v8::StartupData CreateSnapshotBlob(
-      const StartupSerializer& startup_ser,
-      const PartialSerializer& context_ser, Snapshot::Metadata metadata);
-
-#ifdef DEBUG
-  static bool SnapshotIsValid(v8::StartupData* snapshot_blob);
-#endif  // DEBUG
-
- private:
-  static Vector<const byte> ExtractStartupData(const v8::StartupData* data);
-  static Vector<const byte> ExtractContextData(const v8::StartupData* data);
-  static Metadata ExtractMetadata(const v8::StartupData* data);
-
-  // Snapshot blob layout:
-  // [0] metadata
-  // [1 - 6] pre-calculated first page sizes for paged spaces
-  // [7] serialized start up data length
-  // ... serialized start up data
-  // ... serialized context data
-
-  static const int kNumPagedSpaces = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1;
-
-  static const int kMetadataOffset = 0;
-  static const int kFirstPageSizesOffset = kMetadataOffset + kInt32Size;
-  static const int kStartupLengthOffset =
-      kFirstPageSizesOffset + kNumPagedSpaces * kInt32Size;
-  static const int kStartupDataOffset = kStartupLengthOffset + kInt32Size;
-
-  static int ContextOffset(int startup_length) {
-    return kStartupDataOffset + startup_length;
-  }
-
-  DISALLOW_IMPLICIT_CONSTRUCTORS(Snapshot);
-};
-
-#ifdef V8_USE_EXTERNAL_STARTUP_DATA
-void SetSnapshotFromFile(StartupData* snapshot_blob);
-#endif
-
 // Wrapper around reservation sizes and the serialization payload.
 class SnapshotData : public SerializedData {
  public:
   // Used when producing.
-  explicit SnapshotData(const Serializer& ser);
+  explicit SnapshotData(const Serializer* serializer);
 
   // Used when consuming.
   explicit SnapshotData(const Vector<const byte> snapshot)
@@ -124,6 +51,74 @@
   static const int kHeaderSize = kPayloadLengthOffset + kInt32Size;
 };
 
+class Snapshot : public AllStatic {
+ public:
+  // Initialize the Isolate from the internal snapshot. Returns false if no
+  // snapshot could be found.
+  static bool Initialize(Isolate* isolate);
+  // Create a new context using the internal partial snapshot.
+  static MaybeHandle<Context> NewContextFromSnapshot(
+      Isolate* isolate, Handle<JSGlobalProxy> global_proxy,
+      size_t context_index);
+
+  static bool HaveASnapshotToStartFrom(Isolate* isolate);
+
+  static bool EmbedsScript(Isolate* isolate);
+
+  static uint32_t SizeOfFirstPage(Isolate* isolate, AllocationSpace space);
+
+
+  // To be implemented by the snapshot source.
+  static const v8::StartupData* DefaultSnapshotBlob();
+
+  static v8::StartupData CreateSnapshotBlob(
+      const SnapshotData* startup_snapshot,
+      const List<SnapshotData*>* context_snapshots);
+
+#ifdef DEBUG
+  static bool SnapshotIsValid(v8::StartupData* snapshot_blob);
+#endif  // DEBUG
+
+ private:
+  static int ExtractNumContexts(const v8::StartupData* data);
+  static Vector<const byte> ExtractStartupData(const v8::StartupData* data);
+  static Vector<const byte> ExtractContextData(const v8::StartupData* data,
+                                               int index);
+
+  // Snapshot blob layout:
+  // [0 - 5] pre-calculated first page sizes for paged spaces
+  // [6] number of contexts N
+  // [7] offset to context 0
+  // [8] offset to context 1
+  // ...
+  // ... offset to context N - 1
+  // ... startup snapshot data
+  // ... context 0 snapshot data
+  // ... context 1 snapshot data
+
+  static const int kNumPagedSpaces = LAST_PAGED_SPACE - FIRST_PAGED_SPACE + 1;
+
+  static const int kFirstPageSizesOffset = 0;
+  static const int kNumberOfContextsOffset =
+      kFirstPageSizesOffset + kNumPagedSpaces * kInt32Size;
+  static const int kFirstContextOffsetOffset =
+      kNumberOfContextsOffset + kInt32Size;
+
+  static int StartupSnapshotOffset(int num_contexts) {
+    return kFirstContextOffsetOffset + num_contexts * kInt32Size;
+  }
+
+  static int ContextSnapshotOffsetOffset(int index) {
+    return kFirstContextOffsetOffset + index * kInt32Size;
+  }
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(Snapshot);
+};
+
+#ifdef V8_USE_EXTERNAL_STARTUP_DATA
+void SetSnapshotFromFile(StartupData* snapshot_blob);
+#endif
+
 }  // namespace internal
 }  // namespace v8
 
diff --git a/src/snapshot/startup-serializer.cc b/src/snapshot/startup-serializer.cc
index c3f9b3e..80598e8 100644
--- a/src/snapshot/startup-serializer.cc
+++ b/src/snapshot/startup-serializer.cc
@@ -11,10 +11,11 @@
 namespace internal {
 
 StartupSerializer::StartupSerializer(
-    Isolate* isolate, SnapshotByteSink* sink,
-    FunctionCodeHandling function_code_handling)
-    : Serializer(isolate, sink),
-      function_code_handling_(function_code_handling),
+    Isolate* isolate,
+    v8::SnapshotCreator::FunctionCodeHandling function_code_handling)
+    : Serializer(isolate),
+      clear_function_code_(function_code_handling ==
+                           v8::SnapshotCreator::FunctionCodeHandling::kClear),
       serializing_builtins_(false) {
   InitializeCodeAddressMap();
 }
@@ -27,21 +28,21 @@
                                         WhereToPoint where_to_point, int skip) {
   DCHECK(!obj->IsJSFunction());
 
-  if (function_code_handling_ == CLEAR_FUNCTION_CODE) {
+  if (clear_function_code_) {
     if (obj->IsCode()) {
       Code* code = Code::cast(obj);
       // If the function code is compiled (either as native code or bytecode),
       // replace it with lazy-compile builtin. Only exception is when we are
       // serializing the canonical interpreter-entry-trampoline builtin.
       if (code->kind() == Code::FUNCTION ||
-          (!serializing_builtins_ && code->is_interpreter_entry_trampoline())) {
+          (!serializing_builtins_ &&
+           code->is_interpreter_trampoline_builtin())) {
         obj = isolate()->builtins()->builtin(Builtins::kCompileLazy);
       }
     } else if (obj->IsBytecodeArray()) {
       obj = isolate()->heap()->undefined_value();
     }
   } else if (obj->IsCode()) {
-    DCHECK_EQ(KEEP_FUNCTION_CODE, function_code_handling_);
     Code* code = Code::cast(obj);
     if (code->kind() == Code::FUNCTION) {
       code->ClearInlineCaches();
@@ -49,6 +50,8 @@
     }
   }
 
+  if (SerializeHotObject(obj, how_to_code, where_to_point, skip)) return;
+
   int root_index = root_index_map_.Lookup(obj);
   // We can only encode roots as such if it has already been serialized.
   // That applies to root indices below the wave front.
@@ -59,12 +62,12 @@
     }
   }
 
-  if (SerializeKnownObject(obj, how_to_code, where_to_point, skip)) return;
+  if (SerializeBackReference(obj, how_to_code, where_to_point, skip)) return;
 
   FlushSkip(skip);
 
   // Object has not yet been serialized.  Serialize it here.
-  ObjectSerializer object_serializer(this, obj, sink_, how_to_code,
+  ObjectSerializer object_serializer(this, obj, &sink_, how_to_code,
                                      where_to_point);
   object_serializer.Serialize();
 
@@ -89,11 +92,22 @@
   Pad();
 }
 
+int StartupSerializer::PartialSnapshotCacheIndex(HeapObject* heap_object) {
+  int index;
+  if (!partial_cache_index_map_.LookupOrInsert(heap_object, &index)) {
+    // This object is not part of the partial snapshot cache yet. Add it to the
+    // startup snapshot so we can refer to it via partial snapshot index from
+    // the partial snapshot.
+    VisitPointer(reinterpret_cast<Object**>(&heap_object));
+  }
+  return index;
+}
+
 void StartupSerializer::Synchronize(VisitorSynchronization::SyncTag tag) {
   // We expect the builtins tag after builtins have been serialized.
   DCHECK(!serializing_builtins_ || tag == VisitorSynchronization::kBuiltins);
   serializing_builtins_ = (tag == VisitorSynchronization::kHandleScope);
-  sink_->Put(kSynchronize, "Synchronize");
+  sink_.Put(kSynchronize, "Synchronize");
 }
 
 void StartupSerializer::SerializeStrongReferences() {
diff --git a/src/snapshot/startup-serializer.h b/src/snapshot/startup-serializer.h
index 71b8475..cc66f71 100644
--- a/src/snapshot/startup-serializer.h
+++ b/src/snapshot/startup-serializer.h
@@ -6,6 +6,7 @@
 #define V8_SNAPSHOT_STARTUP_SERIALIZER_H_
 
 #include <bitset>
+#include "include/v8.h"
 #include "src/snapshot/serializer.h"
 
 namespace v8 {
@@ -13,11 +14,9 @@
 
 class StartupSerializer : public Serializer {
  public:
-  enum FunctionCodeHandling { CLEAR_FUNCTION_CODE, KEEP_FUNCTION_CODE };
-
   StartupSerializer(
-      Isolate* isolate, SnapshotByteSink* sink,
-      FunctionCodeHandling function_code_handling = CLEAR_FUNCTION_CODE);
+      Isolate* isolate,
+      v8::SnapshotCreator::FunctionCodeHandling function_code_handling);
   ~StartupSerializer() override;
 
   // Serialize the current state of the heap.  The order is:
@@ -28,7 +27,34 @@
   void SerializeStrongReferences();
   void SerializeWeakReferencesAndDeferred();
 
+  int PartialSnapshotCacheIndex(HeapObject* o);
+
  private:
+  class PartialCacheIndexMap : public AddressMapBase {
+   public:
+    PartialCacheIndexMap()
+        : map_(base::HashMap::PointersMatch), next_index_(0) {}
+
+    // Lookup object in the map. Return its index if found, or create
+    // a new entry with new_index as value, and return kInvalidIndex.
+    bool LookupOrInsert(HeapObject* obj, int* index_out) {
+      base::HashMap::Entry* entry = LookupEntry(&map_, obj, false);
+      if (entry != NULL) {
+        *index_out = GetValue(entry);
+        return true;
+      }
+      *index_out = next_index_;
+      SetValue(LookupEntry(&map_, obj, true), next_index_++);
+      return false;
+    }
+
+   private:
+    base::HashMap map_;
+    int next_index_;
+
+    DISALLOW_COPY_AND_ASSIGN(PartialCacheIndexMap);
+  };
+
   // The StartupSerializer has to serialize the root array, which is slightly
   // different.
   void VisitPointers(Object** start, Object** end) override;
@@ -42,10 +68,11 @@
   // roots. In the second pass, we serialize the rest.
   bool RootShouldBeSkipped(int root_index);
 
-  FunctionCodeHandling function_code_handling_;
+  bool clear_function_code_;
   bool serializing_builtins_;
   bool serializing_immortal_immovables_roots_;
   std::bitset<Heap::kStrongRootListLength> root_has_been_serialized_;
+  PartialCacheIndexMap partial_cache_index_map_;
   DISALLOW_COPY_AND_ASSIGN(StartupSerializer);
 };
 
diff --git a/src/startup-data-util.cc b/src/startup-data-util.cc
index 4e0ad97..7c6d9eb 100644
--- a/src/startup-data-util.cc
+++ b/src/startup-data-util.cc
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "src/base/file-utils.h"
 #include "src/base/logging.h"
 #include "src/base/platform/platform.h"
 #include "src/utils.h"
@@ -77,27 +78,6 @@
   atexit(&FreeStartupData);
 }
 
-
-char* RelativePath(char** buffer, const char* exec_path, const char* name) {
-  DCHECK(exec_path);
-  int path_separator = static_cast<int>(strlen(exec_path)) - 1;
-  while (path_separator >= 0 &&
-         !base::OS::isDirectorySeparator(exec_path[path_separator])) {
-    path_separator--;
-  }
-  if (path_separator >= 0) {
-    int name_length = static_cast<int>(strlen(name));
-    *buffer =
-        reinterpret_cast<char*>(calloc(path_separator + name_length + 2, 1));
-    *buffer[0] = '\0';
-    strncat(*buffer, exec_path, path_separator + 1);
-    strncat(*buffer, name, name_length);
-  } else {
-    *buffer = strdup(name);
-  }
-  return *buffer;
-}
-
 }  // namespace
 #endif  // V8_USE_EXTERNAL_STARTUP_DATA
 
diff --git a/src/string-builder.h b/src/string-builder.h
index 98bd82b..192603f 100644
--- a/src/string-builder.h
+++ b/src/string-builder.h
@@ -293,6 +293,14 @@
     }
   }
 
+  INLINE(void AppendCString(const uc16* s)) {
+    if (encoding_ == String::ONE_BYTE_ENCODING) {
+      while (*s != '\0') Append<uc16, uint8_t>(*(s++));
+    } else {
+      while (*s != '\0') Append<uc16, uc16>(*(s++));
+    }
+  }
+
   INLINE(bool CurrentPartCanFit(int length)) {
     return part_length_ - current_index_ > length;
   }
@@ -301,6 +309,8 @@
 
   MaybeHandle<String> Finish();
 
+  INLINE(bool HasOverflowed()) const { return overflowed_; }
+
   // Change encoding to two-byte.
   void ChangeEncoding() {
     DCHECK_EQ(String::ONE_BYTE_ENCODING, encoding_);
diff --git a/src/string-stream.cc b/src/string-stream.cc
index 02f6f1c..781f8cd 100644
--- a/src/string-stream.cc
+++ b/src/string-stream.cc
@@ -378,14 +378,14 @@
 
 
 void StringStream::PrintFixedArray(FixedArray* array, unsigned int limit) {
-  Heap* heap = array->GetHeap();
+  Isolate* isolate = array->GetIsolate();
   for (unsigned int i = 0; i < 10 && i < limit; i++) {
     Object* element = array->get(i);
-    if (element != heap->the_hole_value()) {
-      for (int len = 1; len < 18; len++)
-        Put(' ');
-      Add("%d: %o\n", i, array->get(i));
+    if (element->IsTheHole(isolate)) continue;
+    for (int len = 1; len < 18; len++) {
+      Put(' ');
     }
+    Add("%d: %o\n", i, array->get(i));
   }
   if (limit >= 10) {
     Add("                  ...\n");
@@ -527,19 +527,20 @@
   Object* name = fun->shared()->name();
   bool print_name = false;
   Isolate* isolate = fun->GetIsolate();
-  if (receiver->IsNull() || receiver->IsUndefined() || receiver->IsJSProxy()) {
+  if (receiver->IsNull(isolate) || receiver->IsUndefined(isolate) ||
+      receiver->IsTheHole(isolate) || receiver->IsJSProxy()) {
     print_name = true;
-  } else {
+  } else if (isolate->context() != nullptr) {
     if (!receiver->IsJSObject()) {
       receiver = receiver->GetRootMap(isolate)->prototype();
     }
 
     for (PrototypeIterator iter(isolate, JSObject::cast(receiver),
-                                PrototypeIterator::START_AT_RECEIVER);
+                                kStartAtReceiver);
          !iter.IsAtEnd(); iter.Advance()) {
       if (iter.GetCurrent()->IsJSProxy()) break;
       Object* key = iter.GetCurrent<JSObject>()->SlowReverseLookup(fun);
-      if (!key->IsUndefined()) {
+      if (!key->IsUndefined(isolate)) {
         if (!name->IsString() ||
             !key->IsString() ||
             !String::cast(name)->Equals(String::cast(key))) {
diff --git a/src/third_party/fdlibm/fdlibm.cc b/src/third_party/fdlibm/fdlibm.cc
deleted file mode 100644
index 0ef2301..0000000
--- a/src/third_party/fdlibm/fdlibm.cc
+++ /dev/null
@@ -1,228 +0,0 @@
-// The following is adapted from fdlibm (http://www.netlib.org/fdlibm).
-//
-// ====================================================
-// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-//
-// Developed at SunSoft, a Sun Microsystems, Inc. business.
-// Permission to use, copy, modify, and distribute this
-// software is freely granted, provided that this notice
-// is preserved.
-// ====================================================
-//
-// The original source code covered by the above license above has been
-// modified significantly by Google Inc.
-// Copyright 2014 the V8 project authors. All rights reserved.
-
-#include "src/third_party/fdlibm/fdlibm.h"
-
-#include <stdint.h>
-#include <cmath>
-#include <limits>
-
-#include "src/base/macros.h"
-#include "src/double.h"
-
-namespace v8 {
-namespace fdlibm {
-
-#ifdef _MSC_VER
-inline double scalbn(double x, int y) { return _scalb(x, y); }
-#endif  // _MSC_VER
-
-
-// Table of constants for 2/pi, 396 Hex digits (476 decimal) of 2/pi
-static const int two_over_pi[] = {
-    0xA2F983, 0x6E4E44, 0x1529FC, 0x2757D1, 0xF534DD, 0xC0DB62, 0x95993C,
-    0x439041, 0xFE5163, 0xABDEBB, 0xC561B7, 0x246E3A, 0x424DD2, 0xE00649,
-    0x2EEA09, 0xD1921C, 0xFE1DEB, 0x1CB129, 0xA73EE8, 0x8235F5, 0x2EBB44,
-    0x84E99C, 0x7026B4, 0x5F7E41, 0x3991D6, 0x398353, 0x39F49C, 0x845F8B,
-    0xBDF928, 0x3B1FF8, 0x97FFDE, 0x05980F, 0xEF2F11, 0x8B5A0A, 0x6D1F6D,
-    0x367ECF, 0x27CB09, 0xB74F46, 0x3F669E, 0x5FEA2D, 0x7527BA, 0xC7EBE5,
-    0xF17B3D, 0x0739F7, 0x8A5292, 0xEA6BFB, 0x5FB11F, 0x8D5D08, 0x560330,
-    0x46FC7B, 0x6BABF0, 0xCFBC20, 0x9AF436, 0x1DA9E3, 0x91615E, 0xE61B08,
-    0x659985, 0x5F14A0, 0x68408D, 0xFFD880, 0x4D7327, 0x310606, 0x1556CA,
-    0x73A8C9, 0x60E27B, 0xC08C6B};
-
-static const double zero = 0.0;
-static const double two24 = 1.6777216e+07;
-static const double one = 1.0;
-static const double twon24 = 5.9604644775390625e-08;
-
-static const double PIo2[] = {
-    1.57079625129699707031e+00,  // 0x3FF921FB, 0x40000000
-    7.54978941586159635335e-08,  // 0x3E74442D, 0x00000000
-    5.39030252995776476554e-15,  // 0x3CF84698, 0x80000000
-    3.28200341580791294123e-22,  // 0x3B78CC51, 0x60000000
-    1.27065575308067607349e-29,  // 0x39F01B83, 0x80000000
-    1.22933308981111328932e-36,  // 0x387A2520, 0x40000000
-    2.73370053816464559624e-44,  // 0x36E38222, 0x80000000
-    2.16741683877804819444e-51   // 0x3569F31D, 0x00000000
-};
-
-
-INLINE(int __kernel_rem_pio2(double* x, double* y, int e0, int nx)) {
-  static const int32_t jk = 3;
-  double fw;
-  int32_t jx = nx - 1;
-  int32_t jv = (e0 - 3) / 24;
-  if (jv < 0) jv = 0;
-  int32_t q0 = e0 - 24 * (jv + 1);
-  int32_t m = jx + jk;
-
-  double f[20];
-  for (int i = 0, j = jv - jx; i <= m; i++, j++) {
-    f[i] = (j < 0) ? zero : static_cast<double>(two_over_pi[j]);
-  }
-
-  double q[20];
-  for (int i = 0; i <= jk; i++) {
-    fw = 0.0;
-    for (int j = 0; j <= jx; j++) fw += x[j] * f[jx + i - j];
-    q[i] = fw;
-  }
-
-  int32_t jz = jk;
-
-recompute:
-
-  int32_t iq[20];
-  double z = q[jz];
-  for (int i = 0, j = jz; j > 0; i++, j--) {
-    fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
-    iq[i] = static_cast<int32_t>(z - two24 * fw);
-    z = q[j - 1] + fw;
-  }
-
-  z = scalbn(z, q0);
-  z -= 8.0 * std::floor(z * 0.125);
-  int32_t n = static_cast<int32_t>(z);
-  z -= static_cast<double>(n);
-  int32_t ih = 0;
-  if (q0 > 0) {
-    int32_t i = (iq[jz - 1] >> (24 - q0));
-    n += i;
-    iq[jz - 1] -= i << (24 - q0);
-    ih = iq[jz - 1] >> (23 - q0);
-  } else if (q0 == 0) {
-    ih = iq[jz - 1] >> 23;
-  } else if (z >= 0.5) {
-    ih = 2;
-  }
-
-  if (ih > 0) {
-    n += 1;
-    int32_t carry = 0;
-    for (int i = 0; i < jz; i++) {
-      int32_t j = iq[i];
-      if (carry == 0) {
-        if (j != 0) {
-          carry = 1;
-          iq[i] = 0x1000000 - j;
-        }
-      } else {
-        iq[i] = 0xffffff - j;
-      }
-    }
-    if (q0 == 1) {
-      iq[jz - 1] &= 0x7fffff;
-    } else if (q0 == 2) {
-      iq[jz - 1] &= 0x3fffff;
-    }
-    if (ih == 2) {
-      z = one - z;
-      if (carry != 0) z -= scalbn(one, q0);
-    }
-  }
-
-  if (z == zero) {
-    int32_t j = 0;
-    for (int i = jz - 1; i >= jk; i--) j |= iq[i];
-    if (j == 0) {
-      int32_t k = 1;
-      while (iq[jk - k] == 0) k++;
-      for (int i = jz + 1; i <= jz + k; i++) {
-        f[jx + i] = static_cast<double>(two_over_pi[jv + i]);
-        for (j = 0, fw = 0.0; j <= jx; j++) fw += x[j] * f[jx + i - j];
-        q[i] = fw;
-      }
-      jz += k;
-      goto recompute;
-    }
-  }
-
-  if (z == 0.0) {
-    jz -= 1;
-    q0 -= 24;
-    while (iq[jz] == 0) {
-      jz--;
-      q0 -= 24;
-    }
-  } else {
-    z = scalbn(z, -q0);
-    if (z >= two24) {
-      fw = static_cast<double>(static_cast<int32_t>(twon24 * z));
-      iq[jz] = static_cast<int32_t>(z - two24 * fw);
-      jz += 1;
-      q0 += 24;
-      iq[jz] = static_cast<int32_t>(fw);
-    } else {
-      iq[jz] = static_cast<int32_t>(z);
-    }
-  }
-
-  fw = scalbn(one, q0);
-  for (int i = jz; i >= 0; i--) {
-    q[i] = fw * static_cast<double>(iq[i]);
-    fw *= twon24;
-  }
-
-  double fq[20];
-  for (int i = jz; i >= 0; i--) {
-    fw = 0.0;
-    for (int k = 0; k <= jk && k <= jz - i; k++) fw += PIo2[k] * q[i + k];
-    fq[jz - i] = fw;
-  }
-
-  fw = 0.0;
-  for (int i = jz; i >= 0; i--) fw += fq[i];
-  y[0] = (ih == 0) ? fw : -fw;
-  fw = fq[0] - fw;
-  for (int i = 1; i <= jz; i++) fw += fq[i];
-  y[1] = (ih == 0) ? fw : -fw;
-  return n & 7;
-}
-
-
-int rempio2(double x, double* y) {
-  int32_t hx = static_cast<int32_t>(internal::double_to_uint64(x) >> 32);
-  int32_t ix = hx & 0x7fffffff;
-
-  if (ix >= 0x7ff00000) {
-    *y = std::numeric_limits<double>::quiet_NaN();
-    return 0;
-  }
-
-  int32_t e0 = (ix >> 20) - 1046;
-  uint64_t zi = internal::double_to_uint64(x) & 0xFFFFFFFFu;
-  zi |= static_cast<uint64_t>(ix - (e0 << 20)) << 32;
-  double z = internal::uint64_to_double(zi);
-
-  double tx[3];
-  for (int i = 0; i < 2; i++) {
-    tx[i] = static_cast<double>(static_cast<int32_t>(z));
-    z = (z - tx[i]) * two24;
-  }
-  tx[2] = z;
-
-  int nx = 3;
-  while (tx[nx - 1] == zero) nx--;
-  int n = __kernel_rem_pio2(tx, y, e0, nx);
-  if (hx < 0) {
-    y[0] = -y[0];
-    y[1] = -y[1];
-    return -n;
-  }
-  return n;
-}
-}  // namespace internal
-}  // namespace v8
diff --git a/src/third_party/fdlibm/fdlibm.h b/src/third_party/fdlibm/fdlibm.h
deleted file mode 100644
index e417c8c..0000000
--- a/src/third_party/fdlibm/fdlibm.h
+++ /dev/null
@@ -1,27 +0,0 @@
-// The following is adapted from fdlibm (http://www.netlib.org/fdlibm).
-//
-// ====================================================
-// Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-//
-// Developed at SunSoft, a Sun Microsystems, Inc. business.
-// Permission to use, copy, modify, and distribute this
-// software is freely granted, provided that this notice
-// is preserved.
-// ====================================================
-//
-// The original source code covered by the above license above has been
-// modified significantly by Google Inc.
-// Copyright 2014 the V8 project authors. All rights reserved.
-
-#ifndef V8_FDLIBM_H_
-#define V8_FDLIBM_H_
-
-namespace v8 {
-namespace fdlibm {
-
-int rempio2(double x, double* y);
-
-}  // namespace internal
-}  // namespace v8
-
-#endif  // V8_FDLIBM_H_
diff --git a/src/third_party/fdlibm/fdlibm.js b/src/third_party/fdlibm/fdlibm.js
index a5e789f..26ef126 100644
--- a/src/third_party/fdlibm/fdlibm.js
+++ b/src/third_party/fdlibm/fdlibm.js
@@ -16,9 +16,6 @@
 // The following is a straightforward translation of fdlibm routines
 // by Raymond Toy (rtoy@google.com).
 
-// rempio2result is used as a container for return values of %RemPiO2. It is
-// initialized to a two-element Float64Array during genesis.
-
 (function(global, utils) {
   
 "use strict";
@@ -28,735 +25,15 @@
 // -------------------------------------------------------------------
 // Imports
 
-var GlobalFloat64Array = global.Float64Array;
 var GlobalMath = global.Math;
 var MathAbs;
-var MathExp;
-var NaN = %GetRootNaN();
-var rempio2result;
+var MathExpm1;
 
 utils.Import(function(from) {
   MathAbs = from.MathAbs;
-  MathExp = from.MathExp;
+  MathExpm1 = from.MathExpm1;
 });
 
-utils.CreateDoubleResultArray = function(global) {
-  rempio2result = new GlobalFloat64Array(2);
-};
-
-// -------------------------------------------------------------------
-
-define INVPIO2 = 6.36619772367581382433e-01;
-define PIO2_1  = 1.57079632673412561417;
-define PIO2_1T = 6.07710050650619224932e-11;
-define PIO2_2  = 6.07710050630396597660e-11;
-define PIO2_2T = 2.02226624879595063154e-21;
-define PIO2_3  = 2.02226624871116645580e-21;
-define PIO2_3T = 8.47842766036889956997e-32;
-define PIO4    = 7.85398163397448278999e-01;
-define PIO4LO  = 3.06161699786838301793e-17;
-
-// Compute k and r such that x - k*pi/2 = r where |r| < pi/4. For
-// precision, r is returned as two values y0 and y1 such that r = y0 + y1
-// to more than double precision.
-
-macro REMPIO2(X)
-  var n, y0, y1;
-  var hx = %_DoubleHi(X);
-  var ix = hx & 0x7fffffff;
-
-  if (ix < 0x4002d97c) {
-    // |X| ~< 3*pi/4, special case with n = +/- 1
-    if (hx > 0) {
-      var z = X - PIO2_1;
-      if (ix != 0x3ff921fb) {
-        // 33+53 bit pi is good enough
-        y0 = z - PIO2_1T;
-        y1 = (z - y0) - PIO2_1T;
-      } else {
-        // near pi/2, use 33+33+53 bit pi
-        z -= PIO2_2;
-        y0 = z - PIO2_2T;
-        y1 = (z - y0) - PIO2_2T;
-      }
-      n = 1;
-    } else {
-      // Negative X
-      var z = X + PIO2_1;
-      if (ix != 0x3ff921fb) {
-        // 33+53 bit pi is good enough
-        y0 = z + PIO2_1T;
-        y1 = (z - y0) + PIO2_1T;
-      } else {
-        // near pi/2, use 33+33+53 bit pi
-        z += PIO2_2;
-        y0 = z + PIO2_2T;
-        y1 = (z - y0) + PIO2_2T;
-      }
-      n = -1;
-    }
-  } else if (ix <= 0x413921fb) {
-    // |X| ~<= 2^19*(pi/2), medium size
-    var t = MathAbs(X);
-    n = (t * INVPIO2 + 0.5) | 0;
-    var r = t - n * PIO2_1;
-    var w = n * PIO2_1T;
-    // First round good to 85 bit
-    y0 = r - w;
-    if (ix - (%_DoubleHi(y0) & 0x7ff00000) > 0x1000000) {
-      // 2nd iteration needed, good to 118
-      t = r;
-      w = n * PIO2_2;
-      r = t - w;
-      w = n * PIO2_2T - ((t - r) - w);
-      y0 = r - w;
-      if (ix - (%_DoubleHi(y0) & 0x7ff00000) > 0x3100000) {
-        // 3rd iteration needed. 151 bits accuracy
-        t = r;
-        w = n * PIO2_3;
-        r = t - w;
-        w = n * PIO2_3T - ((t - r) - w);
-        y0 = r - w;
-      }
-    }
-    y1 = (r - y0) - w;
-    if (hx < 0) {
-      n = -n;
-      y0 = -y0;
-      y1 = -y1;
-    }
-  } else {
-    // Need to do full Payne-Hanek reduction here.
-    n = %RemPiO2(X, rempio2result);
-    y0 = rempio2result[0];
-    y1 = rempio2result[1];
-  }
-endmacro
-
-
-// __kernel_sin(X, Y, IY)
-// kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
-// Input X is assumed to be bounded by ~pi/4 in magnitude.
-// Input Y is the tail of X so that x = X + Y.
-//
-// Algorithm
-//  1. Since ieee_sin(-x) = -ieee_sin(x), we need only to consider positive x.
-//  2. ieee_sin(x) is approximated by a polynomial of degree 13 on
-//     [0,pi/4]
-//                           3            13
-//          sin(x) ~ x + S1*x + ... + S6*x
-//     where
-//
-//    |ieee_sin(x)    2     4     6     8     10     12  |     -58
-//    |----- - (1+S1*x +S2*x +S3*x +S4*x +S5*x  +S6*x   )| <= 2
-//    |  x                                               |
-//
-//  3. ieee_sin(X+Y) = ieee_sin(X) + sin'(X')*Y
-//              ~ ieee_sin(X) + (1-X*X/2)*Y
-//     For better accuracy, let
-//               3      2      2      2      2
-//          r = X *(S2+X *(S3+X *(S4+X *(S5+X *S6))))
-//     then                   3    2
-//          sin(x) = X + (S1*X + (X *(r-Y/2)+Y))
-//
-define S1 = -1.66666666666666324348e-01;
-define S2 = 8.33333333332248946124e-03;
-define S3 = -1.98412698298579493134e-04;
-define S4 = 2.75573137070700676789e-06;
-define S5 = -2.50507602534068634195e-08;
-define S6 = 1.58969099521155010221e-10;
-
-macro RETURN_KERNELSIN(X, Y, SIGN)
-  var z = X * X;
-  var v = z * X;
-  var r = S2 + z * (S3 + z * (S4 + z * (S5 + z * S6)));
-  return (X - ((z * (0.5 * Y - v * r) - Y) - v * S1)) SIGN;
-endmacro
-
-// __kernel_cos(X, Y)
-// kernel cos function on [-pi/4, pi/4], pi/4 ~ 0.785398164
-// Input X is assumed to be bounded by ~pi/4 in magnitude.
-// Input Y is the tail of X so that x = X + Y.
-//
-// Algorithm
-//  1. Since ieee_cos(-x) = ieee_cos(x), we need only to consider positive x.
-//  2. ieee_cos(x) is approximated by a polynomial of degree 14 on
-//     [0,pi/4]
-//                                   4            14
-//          cos(x) ~ 1 - x*x/2 + C1*x + ... + C6*x
-//     where the remez error is
-//
-//  |                   2     4     6     8     10    12     14 |     -58
-//  |ieee_cos(x)-(1-.5*x +C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  )| <= 2
-//  |                                                           |
-//
-//                 4     6     8     10    12     14
-//  3. let r = C1*x +C2*x +C3*x +C4*x +C5*x  +C6*x  , then
-//         ieee_cos(x) = 1 - x*x/2 + r
-//     since ieee_cos(X+Y) ~ ieee_cos(X) - ieee_sin(X)*Y
-//                    ~ ieee_cos(X) - X*Y,
-//     a correction term is necessary in ieee_cos(x) and hence
-//         cos(X+Y) = 1 - (X*X/2 - (r - X*Y))
-//     For better accuracy when x > 0.3, let qx = |x|/4 with
-//     the last 32 bits mask off, and if x > 0.78125, let qx = 0.28125.
-//     Then
-//         cos(X+Y) = (1-qx) - ((X*X/2-qx) - (r-X*Y)).
-//     Note that 1-qx and (X*X/2-qx) is EXACT here, and the
-//     magnitude of the latter is at least a quarter of X*X/2,
-//     thus, reducing the rounding error in the subtraction.
-//
-define C1 = 4.16666666666666019037e-02;
-define C2 = -1.38888888888741095749e-03;
-define C3 = 2.48015872894767294178e-05;
-define C4 = -2.75573143513906633035e-07;
-define C5 = 2.08757232129817482790e-09;
-define C6 = -1.13596475577881948265e-11;
-
-macro RETURN_KERNELCOS(X, Y, SIGN)
-  var ix = %_DoubleHi(X) & 0x7fffffff;
-  var z = X * X;
-  var r = z * (C1 + z * (C2 + z * (C3 + z * (C4 + z * (C5 + z * C6)))));
-  if (ix < 0x3fd33333) {  // |x| ~< 0.3
-    return (1 - (0.5 * z - (z * r - X * Y))) SIGN;
-  } else {
-    var qx;
-    if (ix > 0x3fe90000) {  // |x| > 0.78125
-      qx = 0.28125;
-    } else {
-      qx = %_ConstructDouble(%_DoubleHi(0.25 * X), 0);
-    }
-    var hz = 0.5 * z - qx;
-    return (1 - qx - (hz - (z * r - X * Y))) SIGN;
-  }
-endmacro
-
-
-// kernel tan function on [-pi/4, pi/4], pi/4 ~ 0.7854
-// Input x is assumed to be bounded by ~pi/4 in magnitude.
-// Input y is the tail of x.
-// Input k indicates whether ieee_tan (if k = 1) or -1/tan (if k = -1)
-// is returned.
-//
-// Algorithm
-//  1. Since ieee_tan(-x) = -ieee_tan(x), we need only to consider positive x.
-//  2. if x < 2^-28 (hx<0x3e300000 0), return x with inexact if x!=0.
-//  3. ieee_tan(x) is approximated by a odd polynomial of degree 27 on
-//     [0,0.67434]
-//                           3             27
-//          tan(x) ~ x + T1*x + ... + T13*x
-//     where
-//
-//     |ieee_tan(x)    2     4            26   |     -59.2
-//     |----- - (1+T1*x +T2*x +.... +T13*x    )| <= 2
-//     |  x                                    |
-//
-//     Note: ieee_tan(x+y) = ieee_tan(x) + tan'(x)*y
-//                    ~ ieee_tan(x) + (1+x*x)*y
-//     Therefore, for better accuracy in computing ieee_tan(x+y), let
-//               3      2      2       2       2
-//          r = x *(T2+x *(T3+x *(...+x *(T12+x *T13))))
-//     then
-//                              3    2
-//          tan(x+y) = x + (T1*x + (x *(r+y)+y))
-//
-//  4. For x in [0.67434,pi/4],  let y = pi/4 - x, then
-//          tan(x) = ieee_tan(pi/4-y) = (1-ieee_tan(y))/(1+ieee_tan(y))
-//                 = 1 - 2*(ieee_tan(y) - (ieee_tan(y)^2)/(1+ieee_tan(y)))
-//
-// Set returnTan to 1 for tan; -1 for cot.  Anything else is illegal
-// and will cause incorrect results.
-//
-define T00 = 3.33333333333334091986e-01;
-define T01 = 1.33333333333201242699e-01;
-define T02 = 5.39682539762260521377e-02;
-define T03 = 2.18694882948595424599e-02;
-define T04 = 8.86323982359930005737e-03;
-define T05 = 3.59207910759131235356e-03;
-define T06 = 1.45620945432529025516e-03;
-define T07 = 5.88041240820264096874e-04;
-define T08 = 2.46463134818469906812e-04;
-define T09 = 7.81794442939557092300e-05;
-define T10 = 7.14072491382608190305e-05;
-define T11 = -1.85586374855275456654e-05;
-define T12 = 2.59073051863633712884e-05;
-
-function KernelTan(x, y, returnTan) {
-  var z;
-  var w;
-  var hx = %_DoubleHi(x);
-  var ix = hx & 0x7fffffff;
-
-  if (ix < 0x3e300000) {  // |x| < 2^-28
-    if (((ix | %_DoubleLo(x)) | (returnTan + 1)) == 0) {
-      // x == 0 && returnTan = -1
-      return 1 / MathAbs(x);
-    } else {
-      if (returnTan == 1) {
-        return x;
-      } else {
-        // Compute -1/(x + y) carefully
-        var w = x + y;
-        var z = %_ConstructDouble(%_DoubleHi(w), 0);
-        var v = y - (z - x);
-        var a = -1 / w;
-        var t = %_ConstructDouble(%_DoubleHi(a), 0);
-        var s = 1 + t * z;
-        return t + a * (s + t * v);
-      }
-    }
-  }
-  if (ix >= 0x3fe59428) {  // |x| > .6744
-    if (x < 0) {
-      x = -x;
-      y = -y;
-    }
-    z = PIO4 - x;
-    w = PIO4LO - y;
-    x = z + w;
-    y = 0;
-  }
-  z = x * x;
-  w = z * z;
-
-  // Break x^5 * (T1 + x^2*T2 + ...) into
-  // x^5 * (T1 + x^4*T3 + ... + x^20*T11) +
-  // x^5 * (x^2 * (T2 + x^4*T4 + ... + x^22*T12))
-  var r = T01 + w * (T03 + w * (T05 +
-                w * (T07 + w * (T09 + w * T11))));
-  var v = z * (T02 + w * (T04 + w * (T06 +
-                     w * (T08 + w * (T10 + w * T12)))));
-  var s = z * x;
-  r = y + z * (s * (r + v) + y);
-  r = r + T00 * s;
-  w = x + r;
-  if (ix >= 0x3fe59428) {
-    return (1 - ((hx >> 30) & 2)) *
-      (returnTan - 2.0 * (x - (w * w / (w + returnTan) - r)));
-  }
-  if (returnTan == 1) {
-    return w;
-  } else {
-    z = %_ConstructDouble(%_DoubleHi(w), 0);
-    v = r - (z - x);
-    var a = -1 / w;
-    var t = %_ConstructDouble(%_DoubleHi(a), 0);
-    s = 1 + t * z;
-    return t + a * (s + t * v);
-  }
-}
-
-function MathSinSlow(x) {
-  REMPIO2(x);
-  var sign = 1 - (n & 2);
-  if (n & 1) {
-    RETURN_KERNELCOS(y0, y1, * sign);
-  } else {
-    RETURN_KERNELSIN(y0, y1, * sign);
-  }
-}
-
-function MathCosSlow(x) {
-  REMPIO2(x);
-  if (n & 1) {
-    var sign = (n & 2) - 1;
-    RETURN_KERNELSIN(y0, y1, * sign);
-  } else {
-    var sign = 1 - (n & 2);
-    RETURN_KERNELCOS(y0, y1, * sign);
-  }
-}
-
-// ECMA 262 - 15.8.2.16
-function MathSin(x) {
-  x = +x;  // Convert to number.
-  if ((%_DoubleHi(x) & 0x7fffffff) <= 0x3fe921fb) {
-    // |x| < pi/4, approximately.  No reduction needed.
-    RETURN_KERNELSIN(x, 0, /* empty */);
-  }
-  return +MathSinSlow(x);
-}
-
-// ECMA 262 - 15.8.2.7
-function MathCos(x) {
-  x = +x;  // Convert to number.
-  if ((%_DoubleHi(x) & 0x7fffffff) <= 0x3fe921fb) {
-    // |x| < pi/4, approximately.  No reduction needed.
-    RETURN_KERNELCOS(x, 0, /* empty */);
-  }
-  return +MathCosSlow(x);
-}
-
-// ECMA 262 - 15.8.2.18
-function MathTan(x) {
-  x = x * 1;  // Convert to number.
-  if ((%_DoubleHi(x) & 0x7fffffff) <= 0x3fe921fb) {
-    // |x| < pi/4, approximately.  No reduction needed.
-    return KernelTan(x, 0, 1);
-  }
-  REMPIO2(x);
-  return KernelTan(y0, y1, (n & 1) ? -1 : 1);
-}
-
-// ES6 draft 09-27-13, section 20.2.2.20.
-// Math.log1p
-//
-// Method :                  
-//   1. Argument Reduction: find k and f such that 
-//                      1+x = 2^k * (1+f), 
-//         where  sqrt(2)/2 < 1+f < sqrt(2) .
-//
-//      Note. If k=0, then f=x is exact. However, if k!=0, then f
-//      may not be representable exactly. In that case, a correction
-//      term is need. Let u=1+x rounded. Let c = (1+x)-u, then
-//      log(1+x) - log(u) ~ c/u. Thus, we proceed to compute log(u),
-//      and add back the correction term c/u.
-//      (Note: when x > 2**53, one can simply return log(x))
-//
-//   2. Approximation of log1p(f).
-//      Let s = f/(2+f) ; based on log(1+f) = log(1+s) - log(1-s)
-//            = 2s + 2/3 s**3 + 2/5 s**5 + .....,
-//            = 2s + s*R
-//      We use a special Reme algorithm on [0,0.1716] to generate 
-//      a polynomial of degree 14 to approximate R The maximum error 
-//      of this polynomial approximation is bounded by 2**-58.45. In
-//      other words,
-//                      2      4      6      8      10      12      14
-//          R(z) ~ Lp1*s +Lp2*s +Lp3*s +Lp4*s +Lp5*s  +Lp6*s  +Lp7*s
-//      (the values of Lp1 to Lp7 are listed in the program)
-//      and
-//          |      2          14          |     -58.45
-//          | Lp1*s +...+Lp7*s    -  R(z) | <= 2 
-//          |                             |
-//      Note that 2s = f - s*f = f - hfsq + s*hfsq, where hfsq = f*f/2.
-//      In order to guarantee error in log below 1ulp, we compute log
-//      by
-//              log1p(f) = f - (hfsq - s*(hfsq+R)).
-//
-//      3. Finally, log1p(x) = k*ln2 + log1p(f).  
-//                           = k*ln2_hi+(f-(hfsq-(s*(hfsq+R)+k*ln2_lo)))
-//         Here ln2 is split into two floating point number: 
-//                      ln2_hi + ln2_lo,
-//         where n*ln2_hi is always exact for |n| < 2000.
-//
-// Special cases:
-//      log1p(x) is NaN with signal if x < -1 (including -INF) ; 
-//      log1p(+INF) is +INF; log1p(-1) is -INF with signal;
-//      log1p(NaN) is that NaN with no signal.
-//
-// Accuracy:
-//      according to an error analysis, the error is always less than
-//      1 ulp (unit in the last place).
-//
-// Constants:
-//      Constants are found in fdlibm.cc. We assume the C++ compiler to convert
-//      from decimal to binary accurately enough to produce the intended values.
-//
-// Note: Assuming log() return accurate answer, the following
-//       algorithm can be used to compute log1p(x) to within a few ULP:
-//
-//              u = 1+x;
-//              if (u==1.0) return x ; else
-//                          return log(u)*(x/(u-1.0));
-//
-//       See HP-15C Advanced Functions Handbook, p.193.
-//
-define LN2_HI    = 6.93147180369123816490e-01;
-define LN2_LO    = 1.90821492927058770002e-10;
-define TWO_THIRD = 6.666666666666666666e-01;
-define LP1 = 6.666666666666735130e-01;
-define LP2 = 3.999999999940941908e-01;
-define LP3 = 2.857142874366239149e-01;
-define LP4 = 2.222219843214978396e-01;
-define LP5 = 1.818357216161805012e-01;
-define LP6 = 1.531383769920937332e-01;
-define LP7 = 1.479819860511658591e-01;
-
-// 2^54
-define TWO54 = 18014398509481984;
-
-function MathLog1p(x) {
-  x = x * 1;  // Convert to number.
-  var hx = %_DoubleHi(x);
-  var ax = hx & 0x7fffffff;
-  var k = 1;
-  var f = x;
-  var hu = 1;
-  var c = 0;
-  var u = x;
-
-  if (hx < 0x3fda827a) {
-    // x < 0.41422
-    if (ax >= 0x3ff00000) {  // |x| >= 1
-      if (x === -1) {
-        return -INFINITY;  // log1p(-1) = -inf
-      } else {
-        return NaN;  // log1p(x<-1) = NaN
-      }
-    } else if (ax < 0x3c900000)  {
-      // For |x| < 2^-54 we can return x.
-      return x;
-    } else if (ax < 0x3e200000) {
-      // For |x| < 2^-29 we can use a simple two-term Taylor series.
-      return x - x * x * 0.5;
-    }
-
-    if ((hx > 0) || (hx <= -0x402D413D)) {  // (int) 0xbfd2bec3 = -0x402d413d
-      // -.2929 < x < 0.41422
-      k = 0;
-    }
-  }
-
-  // Handle Infinity and NaN
-  if (hx >= 0x7ff00000) return x;
-
-  if (k !== 0) {
-    if (hx < 0x43400000) {
-      // x < 2^53
-      u = 1 + x;
-      hu = %_DoubleHi(u);
-      k = (hu >> 20) - 1023;
-      c = (k > 0) ? 1 - (u - x) : x - (u - 1);
-      c = c / u;
-    } else {
-      hu = %_DoubleHi(u);
-      k = (hu >> 20) - 1023;
-    }
-    hu = hu & 0xfffff;
-    if (hu < 0x6a09e) {
-      u = %_ConstructDouble(hu | 0x3ff00000, %_DoubleLo(u));  // Normalize u.
-    } else {
-      ++k;
-      u = %_ConstructDouble(hu | 0x3fe00000, %_DoubleLo(u));  // Normalize u/2.
-      hu = (0x00100000 - hu) >> 2;
-    }
-    f = u - 1;
-  }
-
-  var hfsq = 0.5 * f * f;
-  if (hu === 0) {
-    // |f| < 2^-20;
-    if (f === 0) {
-      if (k === 0) {
-        return 0.0;
-      } else {
-        return k * LN2_HI + (c + k * LN2_LO);
-      }
-    }
-    var R = hfsq * (1 - TWO_THIRD * f);
-    if (k === 0) {
-      return f - R;
-    } else {
-      return k * LN2_HI - ((R - (k * LN2_LO + c)) - f);
-    }
-  }
-
-  var s = f / (2 + f); 
-  var z = s * s;
-  var R = z * (LP1 + z * (LP2 + z * (LP3 + z * (LP4 +
-          z * (LP5 + z * (LP6 + z * LP7))))));
-  if (k === 0) {
-    return f - (hfsq - s * (hfsq + R));
-  } else {
-    return k * LN2_HI - ((hfsq - (s * (hfsq + R) + (k * LN2_LO + c))) - f);
-  }
-}
-
-// ES6 draft 09-27-13, section 20.2.2.14.
-// Math.expm1
-// Returns exp(x)-1, the exponential of x minus 1.
-//
-// Method
-//   1. Argument reduction:
-//      Given x, find r and integer k such that
-//
-//               x = k*ln2 + r,  |r| <= 0.5*ln2 ~ 0.34658  
-//
-//      Here a correction term c will be computed to compensate 
-//      the error in r when rounded to a floating-point number.
-//
-//   2. Approximating expm1(r) by a special rational function on
-//      the interval [0,0.34658]:
-//      Since
-//          r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 - r^4/360 + ...
-//      we define R1(r*r) by
-//          r*(exp(r)+1)/(exp(r)-1) = 2+ r^2/6 * R1(r*r)
-//      That is,
-//          R1(r**2) = 6/r *((exp(r)+1)/(exp(r)-1) - 2/r)
-//                   = 6/r * ( 1 + 2.0*(1/(exp(r)-1) - 1/r))
-//                   = 1 - r^2/60 + r^4/2520 - r^6/100800 + ...
-//      We use a special Remes algorithm on [0,0.347] to generate 
-//      a polynomial of degree 5 in r*r to approximate R1. The 
-//      maximum error of this polynomial approximation is bounded 
-//      by 2**-61. In other words,
-//          R1(z) ~ 1.0 + Q1*z + Q2*z**2 + Q3*z**3 + Q4*z**4 + Q5*z**5
-//      where   Q1  =  -1.6666666666666567384E-2,
-//              Q2  =   3.9682539681370365873E-4,
-//              Q3  =  -9.9206344733435987357E-6,
-//              Q4  =   2.5051361420808517002E-7,
-//              Q5  =  -6.2843505682382617102E-9;
-//      (where z=r*r, and the values of Q1 to Q5 are listed below)
-//      with error bounded by
-//          |                  5           |     -61
-//          | 1.0+Q1*z+...+Q5*z   -  R1(z) | <= 2 
-//          |                              |
-//
-//      expm1(r) = exp(r)-1 is then computed by the following 
-//      specific way which minimize the accumulation rounding error: 
-//                             2     3
-//                            r     r    [ 3 - (R1 + R1*r/2)  ]
-//            expm1(r) = r + --- + --- * [--------------------]
-//                            2     2    [ 6 - r*(3 - R1*r/2) ]
-//
-//      To compensate the error in the argument reduction, we use
-//              expm1(r+c) = expm1(r) + c + expm1(r)*c 
-//                         ~ expm1(r) + c + r*c 
-//      Thus c+r*c will be added in as the correction terms for
-//      expm1(r+c). Now rearrange the term to avoid optimization 
-//      screw up:
-//                      (      2                                    2 )
-//                      ({  ( r    [ R1 -  (3 - R1*r/2) ]  )  }    r  )
-//       expm1(r+c)~r - ({r*(--- * [--------------------]-c)-c} - --- )
-//                      ({  ( 2    [ 6 - r*(3 - R1*r/2) ]  )  }    2  )
-//                      (                                             )
-//
-//                 = r - E
-//   3. Scale back to obtain expm1(x):
-//      From step 1, we have
-//         expm1(x) = either 2^k*[expm1(r)+1] - 1
-//                  = or     2^k*[expm1(r) + (1-2^-k)]
-//   4. Implementation notes:
-//      (A). To save one multiplication, we scale the coefficient Qi
-//           to Qi*2^i, and replace z by (x^2)/2.
-//      (B). To achieve maximum accuracy, we compute expm1(x) by
-//        (i)   if x < -56*ln2, return -1.0, (raise inexact if x!=inf)
-//        (ii)  if k=0, return r-E
-//        (iii) if k=-1, return 0.5*(r-E)-0.5
-//        (iv)  if k=1 if r < -0.25, return 2*((r+0.5)- E)
-//                     else          return  1.0+2.0*(r-E);
-//        (v)   if (k<-2||k>56) return 2^k(1-(E-r)) - 1 (or exp(x)-1)
-//        (vi)  if k <= 20, return 2^k((1-2^-k)-(E-r)), else
-//        (vii) return 2^k(1-((E+2^-k)-r)) 
-//
-// Special cases:
-//      expm1(INF) is INF, expm1(NaN) is NaN;
-//      expm1(-INF) is -1, and
-//      for finite argument, only expm1(0)=0 is exact.
-//
-// Accuracy:
-//      according to an error analysis, the error is always less than
-//      1 ulp (unit in the last place).
-//
-// Misc. info.
-//      For IEEE double 
-//          if x > 7.09782712893383973096e+02 then expm1(x) overflow
-//
-define KEXPM1_OVERFLOW = 7.09782712893383973096e+02;
-define INVLN2          = 1.44269504088896338700;
-define EXPM1_1 = -3.33333333333331316428e-02;
-define EXPM1_2 = 1.58730158725481460165e-03;
-define EXPM1_3 = -7.93650757867487942473e-05;
-define EXPM1_4 = 4.00821782732936239552e-06;
-define EXPM1_5 = -2.01099218183624371326e-07;
-
-function MathExpm1(x) {
-  x = x * 1;  // Convert to number.
-  var y;
-  var hi;
-  var lo;
-  var k;
-  var t;
-  var c;
-    
-  var hx = %_DoubleHi(x);
-  var xsb = hx & 0x80000000;     // Sign bit of x
-  var y = (xsb === 0) ? x : -x;  // y = |x|
-  hx &= 0x7fffffff;              // High word of |x|
-
-  // Filter out huge and non-finite argument
-  if (hx >= 0x4043687a) {     // if |x| ~=> 56 * ln2
-    if (hx >= 0x40862e42) {   // if |x| >= 709.78
-      if (hx >= 0x7ff00000) {
-        // expm1(inf) = inf; expm1(-inf) = -1; expm1(nan) = nan;
-        return (x === -INFINITY) ? -1 : x;
-      }
-      if (x > KEXPM1_OVERFLOW) return INFINITY;  // Overflow
-    }
-    if (xsb != 0) return -1;  // x < -56 * ln2, return -1.
-  }
-
-  // Argument reduction
-  if (hx > 0x3fd62e42) {    // if |x| > 0.5 * ln2
-    if (hx < 0x3ff0a2b2) {  // and |x| < 1.5 * ln2
-      if (xsb === 0) {
-        hi = x - LN2_HI;
-        lo = LN2_LO;
-        k = 1;
-      } else {
-        hi = x + LN2_HI;
-        lo = -LN2_LO;
-        k = -1;
-      }
-    } else {
-      k = (INVLN2 * x + ((xsb === 0) ? 0.5 : -0.5)) | 0;
-      t = k;
-      // t * ln2_hi is exact here.
-      hi = x - t * LN2_HI;
-      lo = t * LN2_LO;
-    }
-    x = hi - lo;
-    c = (hi - x) - lo;
-  } else if (hx < 0x3c900000)	{
-    // When |x| < 2^-54, we can return x.
-    return x;
-  } else {
-    // Fall through.
-    k = 0;
-  }
-
-  // x is now in primary range
-  var hfx = 0.5 * x;
-  var hxs = x * hfx;
-  var r1 = 1 + hxs * (EXPM1_1 + hxs * (EXPM1_2 + hxs *
-                     (EXPM1_3 + hxs * (EXPM1_4 + hxs * EXPM1_5))));
-  t = 3 - r1 * hfx;
-  var e = hxs * ((r1 - t) / (6 - x * t));
-  if (k === 0) {  // c is 0
-    return x - (x*e - hxs);
-  } else {
-    e = (x * (e - c) - c);
-    e -= hxs;
-    if (k === -1) return 0.5 * (x - e) - 0.5;
-    if (k === 1) {
-      if (x < -0.25) return -2 * (e - (x + 0.5));
-      return 1 + 2 * (x - e);
-    }
-
-    if (k <= -2 || k > 56) {
-      // suffice to return exp(x) + 1
-      y = 1 - (e - x);
-      // Add k to y's exponent
-      y = %_ConstructDouble(%_DoubleHi(y) + (k << 20), %_DoubleLo(y));
-      return y - 1;
-    }
-    if (k < 20) {
-      // t = 1 - 2^k
-      t = %_ConstructDouble(0x3ff00000 - (0x200000 >> k), 0);
-      y = t - (e - x);
-      // Add k to y's exponent
-      y = %_ConstructDouble(%_DoubleHi(y) + (k << 20), %_DoubleLo(y));
-    } else {
-      // t = 2^-k
-      t = %_ConstructDouble((0x3ff - k) << 20, 0);
-      y = x - (e + t);
-      y += 1;
-      // Add k to y's exponent
-      y = %_ConstructDouble(%_DoubleHi(y) + (k << 20), %_DoubleLo(y));
-    }
-  }
-  return y;
-}
-
-
 // ES6 draft 09-27-13, section 20.2.2.30.
 // Math.sinh
 // Method :
@@ -792,11 +69,11 @@
     return h * (t + t / (t + 1));
   }
   // |x| in [22, log(maxdouble)], return 0.5 * exp(|x|)
-  if (ax < LOG_MAXD) return h * MathExp(ax);
+  if (ax < LOG_MAXD) return h * %math_exp(ax);
   // |x| in [log(maxdouble), overflowthreshold]
   // overflowthreshold = 710.4758600739426
   if (ax <= KSINH_OVERFLOW) {
-    var w = MathExp(0.5 * ax);
+    var w = %math_exp(0.5 * ax);
     var t = h * w;
     return t * w;
   }
@@ -842,14 +119,14 @@
   }
   // |x| in [0.5*log2, 22], return (exp(|x|)+1/exp(|x|)/2
   if (ix < 0x40360000) {
-    var t = MathExp(MathAbs(x));
+    var t = %math_exp(MathAbs(x));
     return 0.5 * t + 0.5 / t;
   }
   // |x| in [22, log(maxdouble)], return half*exp(|x|)
-  if (ix < 0x40862e42) return 0.5 * MathExp(MathAbs(x));
+  if (ix < 0x40862e42) return 0.5 * %math_exp(MathAbs(x));
   // |x| in [log(maxdouble), overflowthreshold]
   if (MathAbs(x) <= KCOSH_OVERFLOW) {
-    var w = MathExp(0.5 * MathAbs(x));
+    var w = %math_exp(0.5 * MathAbs(x));
     var t = 0.5 * w;
     return t * w;
   }
@@ -915,203 +192,12 @@
   return (x >= 0) ? z : -z;
 }
 
-// ES6 draft 09-27-13, section 20.2.2.21.
-// Return the base 10 logarithm of x
-//
-// Method :
-//      Let log10_2hi = leading 40 bits of log10(2) and
-//          log10_2lo = log10(2) - log10_2hi,
-//          ivln10   = 1/log(10) rounded.
-//      Then
-//              n = ilogb(x),
-//              if(n<0)  n = n+1;
-//              x = scalbn(x,-n);
-//              log10(x) := n*log10_2hi + (n*log10_2lo + ivln10*log(x))
-//
-// Note 1:
-//      To guarantee log10(10**n)=n, where 10**n is normal, the rounding
-//      mode must set to Round-to-Nearest.
-// Note 2:
-//      [1/log(10)] rounded to 53 bits has error .198 ulps;
-//      log10 is monotonic at all binary break points.
-//
-// Special cases:
-//      log10(x) is NaN if x < 0;
-//      log10(+INF) is +INF; log10(0) is -INF;
-//      log10(NaN) is that NaN;
-//      log10(10**N) = N  for N=0,1,...,22.
-//
-
-define IVLN10 = 4.34294481903251816668e-01;
-define LOG10_2HI = 3.01029995663611771306e-01;
-define LOG10_2LO = 3.69423907715893078616e-13;
-
-function MathLog10(x) {
-  x = x * 1;  // Convert to number.
-  var hx = %_DoubleHi(x);
-  var lx = %_DoubleLo(x);
-  var k = 0;
-
-  if (hx < 0x00100000) {
-    // x < 2^-1022
-    // log10(+/- 0) = -Infinity.
-    if (((hx & 0x7fffffff) | lx) === 0) return -INFINITY;
-    // log10 of negative number is NaN.
-    if (hx < 0) return NaN;
-    // Subnormal number. Scale up x.
-    k -= 54;
-    x *= TWO54;
-    hx = %_DoubleHi(x);
-    lx = %_DoubleLo(x);
-  }
-
-  // Infinity or NaN.
-  if (hx >= 0x7ff00000) return x;
-
-  k += (hx >> 20) - 1023;
-  var i = (k & 0x80000000) >>> 31;
-  hx = (hx & 0x000fffff) | ((0x3ff - i) << 20);
-  var y = k + i;
-  x = %_ConstructDouble(hx, lx);
-
-  var z = y * LOG10_2LO + IVLN10 * %_MathLogRT(x);
-  return z + y * LOG10_2HI;
-}
-
-
-// ES6 draft 09-27-13, section 20.2.2.22.
-// Return the base 2 logarithm of x
-//
-// fdlibm does not have an explicit log2 function, but fdlibm's pow
-// function does implement an accurate log2 function as part of the
-// pow implementation.  This extracts the core parts of that as a
-// separate log2 function.
-
-// Method:
-// Compute log2(x) in two pieces:
-// log2(x) = w1 + w2
-// where w1 has 53-24 = 29 bits of trailing zeroes.
-
-define DP_H = 5.84962487220764160156e-01;
-define DP_L = 1.35003920212974897128e-08;
-
-// Polynomial coefficients for (3/2)*(log2(x) - 2*s - 2/3*s^3)
-define LOG2_1 = 5.99999999999994648725e-01;
-define LOG2_2 = 4.28571428578550184252e-01;
-define LOG2_3 = 3.33333329818377432918e-01;
-define LOG2_4 = 2.72728123808534006489e-01;
-define LOG2_5 = 2.30660745775561754067e-01;
-define LOG2_6 = 2.06975017800338417784e-01;
-
-// cp = 2/(3*ln(2)). Note that cp_h + cp_l is cp, but with more accuracy.
-define CP = 9.61796693925975554329e-01;
-define CP_H = 9.61796700954437255859e-01;
-define CP_L = -7.02846165095275826516e-09;
-// 2^53
-define TWO53 = 9007199254740992; 
-
-function MathLog2(x) {
-  x = x * 1;  // Convert to number.
-  var ax = MathAbs(x);
-  var hx = %_DoubleHi(x);
-  var lx = %_DoubleLo(x);
-  var ix = hx & 0x7fffffff;
-
-  // Handle special cases.
-  // log2(+/- 0) = -Infinity
-  if ((ix | lx) == 0) return -INFINITY;
-
-  // log(x) = NaN, if x < 0
-  if (hx < 0) return NaN;
-
-  // log2(Infinity) = Infinity, log2(NaN) = NaN
-  if (ix >= 0x7ff00000) return x;
-
-  var n = 0;
-
-  // Take care of subnormal number.
-  if (ix < 0x00100000) {
-    ax *= TWO53;
-    n -= 53;
-    ix = %_DoubleHi(ax);
-  }
-
-  n += (ix >> 20) - 0x3ff;
-  var j = ix & 0x000fffff;
-
-  // Determine interval.
-  ix = j | 0x3ff00000;  // normalize ix.
-
-  var bp = 1;
-  var dp_h = 0;
-  var dp_l = 0;
-  if (j > 0x3988e) {  // |x| > sqrt(3/2)
-    if (j < 0xbb67a) {  // |x| < sqrt(3)
-      bp = 1.5;
-      dp_h = DP_H;
-      dp_l = DP_L;
-    } else {
-      n += 1;
-      ix -= 0x00100000;
-    }
-  }
- 
-  ax = %_ConstructDouble(ix, %_DoubleLo(ax));
-
-  // Compute ss = s_h + s_l = (x - 1)/(x+1) or (x - 1.5)/(x + 1.5)
-  var u = ax - bp;
-  var v = 1 / (ax + bp);
-  var ss = u * v;
-  var s_h = %_ConstructDouble(%_DoubleHi(ss), 0);
-
-  // t_h = ax + bp[k] High
-  var t_h = %_ConstructDouble(%_DoubleHi(ax + bp), 0)
-  var t_l = ax - (t_h - bp);
-  var s_l = v * ((u - s_h * t_h) - s_h * t_l);
-
-  // Compute log2(ax)
-  var s2 = ss * ss;
-  var r = s2 * s2 * (LOG2_1 + s2 * (LOG2_2 + s2 * (LOG2_3 + s2 * (
-                     LOG2_4 + s2 * (LOG2_5 + s2 * LOG2_6)))));
-  r += s_l * (s_h + ss);
-  s2  = s_h * s_h;
-  t_h = %_ConstructDouble(%_DoubleHi(3.0 + s2 + r), 0);
-  t_l = r - ((t_h - 3.0) - s2);
-  // u + v = ss * (1 + ...)
-  u = s_h * t_h;
-  v = s_l * t_h + t_l * ss;
-
-  // 2 / (3 * log(2)) * (ss + ...)
-  var p_h = %_ConstructDouble(%_DoubleHi(u + v), 0);
-  var p_l = v - (p_h - u);
-  var z_h = CP_H * p_h;
-  var z_l = CP_L * p_h + p_l * CP + dp_l;
-
-  // log2(ax) = (ss + ...) * 2 / (3 * log(2)) = n + dp_h + z_h + z_l
-  var t = n;
-  var t1 = %_ConstructDouble(%_DoubleHi(((z_h + z_l) + dp_h) + t), 0);
-  var t2 = z_l - (((t1 - t) - dp_h) - z_h);
-
-  // t1 + t2 = log2(ax), sum up because we do not care about extra precision.
-  return t1 + t2;
-}
-
 //-------------------------------------------------------------------
 
 utils.InstallFunctions(GlobalMath, DONT_ENUM, [
-  "cos", MathCos,
-  "sin", MathSin,
-  "tan", MathTan,
   "sinh", MathSinh,
   "cosh", MathCosh,
-  "tanh", MathTanh,
-  "log10", MathLog10,
-  "log2", MathLog2,
-  "log1p", MathLog1p,
-  "expm1", MathExpm1
+  "tanh", MathTanh
 ]);
 
-%SetForceInlineFlag(MathSin);
-%SetForceInlineFlag(MathCos);
-
 })
diff --git a/src/type-cache.h b/src/type-cache.h
index 2a95df9..2c13b39 100644
--- a/src/type-cache.h
+++ b/src/type-cache.h
@@ -48,19 +48,30 @@
   Type* const kZeroish =
       Type::Union(kSingletonZero, Type::MinusZeroOrNaN(), zone());
   Type* const kInteger = CreateRange(-V8_INFINITY, V8_INFINITY);
-  Type* const kPositiveInteger = CreateRange(0.0, V8_INFINITY);
   Type* const kIntegerOrMinusZero =
       Type::Union(kInteger, Type::MinusZero(), zone());
   Type* const kIntegerOrMinusZeroOrNaN =
       Type::Union(kIntegerOrMinusZero, Type::NaN(), zone());
+  Type* const kPositiveInteger = CreateRange(0.0, V8_INFINITY);
+  Type* const kPositiveIntegerOrMinusZero =
+      Type::Union(kPositiveInteger, Type::MinusZero(), zone());
+  Type* const kPositiveIntegerOrMinusZeroOrNaN =
+      Type::Union(kPositiveIntegerOrMinusZero, Type::NaN(), zone());
 
   Type* const kAdditiveSafeInteger =
       CreateRange(-4503599627370496.0, 4503599627370496.0);
   Type* const kSafeInteger = CreateRange(-kMaxSafeInteger, kMaxSafeInteger);
+  Type* const kAdditiveSafeIntegerOrMinusZero =
+      Type::Union(kAdditiveSafeInteger, Type::MinusZero(), zone());
+  Type* const kSafeIntegerOrMinusZero =
+      Type::Union(kSafeInteger, Type::MinusZero(), zone());
   Type* const kPositiveSafeInteger = CreateRange(0.0, kMaxSafeInteger);
+  Type* const kSafeSigned32 = CreateRange(-kMaxInt, kMaxInt);
 
   Type* const kUntaggedUndefined =
       Type::Intersect(Type::Undefined(), Type::Untagged(), zone());
+  Type* const kSigned32OrMinusZero =
+      Type::Union(Type::Signed32(), Type::MinusZero(), zone());
 
   // Asm.js related types.
   Type* const kAsmSigned = kInt32;
diff --git a/src/type-feedback-vector-inl.h b/src/type-feedback-vector-inl.h
index 015104e..771021f 100644
--- a/src/type-feedback-vector-inl.h
+++ b/src/type-feedback-vector-inl.h
@@ -14,13 +14,11 @@
 template <typename Derived>
 FeedbackVectorSlot FeedbackVectorSpecBase<Derived>::AddSlot(
     FeedbackVectorSlotKind kind) {
-  Derived* derived = static_cast<Derived*>(this);
-
-  int slot = derived->slots();
+  int slot = This()->slots();
   int entries_per_slot = TypeFeedbackMetadata::GetSlotSize(kind);
-  derived->append(kind);
+  This()->append(kind);
   for (int i = 1; i < entries_per_slot; i++) {
-    derived->append(FeedbackVectorSlotKind::INVALID);
+    This()->append(FeedbackVectorSlotKind::INVALID);
   }
   return FeedbackVectorSlot(slot);
 }
@@ -32,6 +30,10 @@
   return reinterpret_cast<TypeFeedbackMetadata*>(obj);
 }
 
+bool TypeFeedbackMetadata::is_empty() const {
+  if (length() == 0) return true;
+  return false;
+}
 
 int TypeFeedbackMetadata::slot_count() const {
   if (length() == 0) return 0;
@@ -53,6 +55,26 @@
   return kind == FeedbackVectorSlotKind::GENERAL ? 1 : 2;
 }
 
+bool TypeFeedbackMetadata::SlotRequiresName(FeedbackVectorSlotKind kind) {
+  switch (kind) {
+    case FeedbackVectorSlotKind::LOAD_GLOBAL_IC:
+      return true;
+
+    case FeedbackVectorSlotKind::CALL_IC:
+    case FeedbackVectorSlotKind::LOAD_IC:
+    case FeedbackVectorSlotKind::KEYED_LOAD_IC:
+    case FeedbackVectorSlotKind::STORE_IC:
+    case FeedbackVectorSlotKind::KEYED_STORE_IC:
+    case FeedbackVectorSlotKind::GENERAL:
+    case FeedbackVectorSlotKind::INVALID:
+      return false;
+
+    case FeedbackVectorSlotKind::KINDS_NUMBER:
+      break;
+  }
+  UNREACHABLE();
+  return false;
+}
 
 bool TypeFeedbackVector::is_empty() const {
   if (length() == 0) return true;
@@ -73,24 +95,10 @@
                     : TypeFeedbackMetadata::cast(get(kMetadataIndex));
 }
 
-
-FeedbackVectorSlotKind TypeFeedbackVector::GetKind(
-    FeedbackVectorSlot slot) const {
-  DCHECK(!is_empty());
-  return metadata()->GetKind(slot);
-}
-
-
-int TypeFeedbackVector::GetIndex(FeedbackVectorSlot slot) const {
-  DCHECK(slot.ToInt() < slot_count());
-  return kReservedIndexCount + slot.ToInt();
-}
-
-
-// Conversion from an integer index to either a slot or an ic slot. The caller
-// should know what kind she expects.
-FeedbackVectorSlot TypeFeedbackVector::ToSlot(int index) const {
-  DCHECK(index >= kReservedIndexCount && index < length());
+// Conversion from an integer index to either a slot or an ic slot.
+// static
+FeedbackVectorSlot TypeFeedbackVector::ToSlot(int index) {
+  DCHECK(index >= kReservedIndexCount);
   return FeedbackVectorSlot(index - kReservedIndexCount);
 }
 
@@ -149,6 +157,21 @@
   return isolate->heap()->uninitialized_symbol();
 }
 
+bool TypeFeedbackMetadataIterator::HasNext() const {
+  return next_slot_.ToInt() < metadata()->slot_count();
+}
+
+FeedbackVectorSlot TypeFeedbackMetadataIterator::Next() {
+  DCHECK(HasNext());
+  cur_slot_ = next_slot_;
+  slot_kind_ = metadata()->GetKind(cur_slot_);
+  next_slot_ = FeedbackVectorSlot(next_slot_.ToInt() + entry_size());
+  return cur_slot_;
+}
+
+int TypeFeedbackMetadataIterator::entry_size() const {
+  return TypeFeedbackMetadata::GetSlotSize(kind());
+}
 
 Object* FeedbackNexus::GetFeedback() const { return vector()->Get(slot()); }
 
diff --git a/src/type-feedback-vector.cc b/src/type-feedback-vector.cc
index 4519bd6..bc2f1c2 100644
--- a/src/type-feedback-vector.cc
+++ b/src/type-feedback-vector.cc
@@ -37,6 +37,23 @@
   return VectorICComputer::decode(data, slot.ToInt());
 }
 
+String* TypeFeedbackMetadata::GetName(FeedbackVectorSlot slot) const {
+  DCHECK(SlotRequiresName(GetKind(slot)));
+  FixedArray* names = FixedArray::cast(get(kNamesTableIndex));
+  // TODO(ishell): consider using binary search here or even Dictionary when we
+  // have more ICs with names.
+  Smi* key = Smi::FromInt(slot.ToInt());
+  for (int entry = 0; entry < names->length(); entry += kNameTableEntrySize) {
+    Object* current_key = names->get(entry + kNameTableSlotIndex);
+    if (current_key == key) {
+      Object* name = names->get(entry + kNameTableNameIndex);
+      DCHECK(name->IsString());
+      return String::cast(name);
+    }
+  }
+  UNREACHABLE();
+  return nullptr;
+}
 
 void TypeFeedbackMetadata::SetKind(FeedbackVectorSlot slot,
                                    FeedbackVectorSlotKind kind) {
@@ -57,12 +74,13 @@
 template <typename Spec>
 Handle<TypeFeedbackMetadata> TypeFeedbackMetadata::New(Isolate* isolate,
                                                        const Spec* spec) {
+  Factory* factory = isolate->factory();
+
   const int slot_count = spec->slots();
   const int slot_kinds_length = VectorICComputer::word_count(slot_count);
   const int length = slot_kinds_length + kReservedIndexCount;
   if (length == kReservedIndexCount) {
-    return Handle<TypeFeedbackMetadata>::cast(
-        isolate->factory()->empty_fixed_array());
+    return Handle<TypeFeedbackMetadata>::cast(factory->empty_fixed_array());
   }
 #ifdef DEBUG
   for (int i = 0; i < slot_count;) {
@@ -76,7 +94,7 @@
   }
 #endif
 
-  Handle<FixedArray> array = isolate->factory()->NewFixedArray(length, TENURED);
+  Handle<FixedArray> array = factory->NewFixedArray(length, TENURED);
   array->set(kSlotsCountIndex, Smi::FromInt(slot_count));
   // Fill the bit-vector part with zeros.
   for (int i = 0; i < slot_kinds_length; i++) {
@@ -85,9 +103,37 @@
 
   Handle<TypeFeedbackMetadata> metadata =
       Handle<TypeFeedbackMetadata>::cast(array);
+
+  // Add names to NamesTable.
+  const int name_count = spec->name_count();
+
+  Handle<FixedArray> names =
+      name_count == 0
+          ? factory->empty_fixed_array()
+          : factory->NewFixedArray(name_count * kNameTableEntrySize);
+  int name_index = 0;
   for (int i = 0; i < slot_count; i++) {
-    metadata->SetKind(FeedbackVectorSlot(i), spec->GetKind(i));
+    FeedbackVectorSlotKind kind = spec->GetKind(i);
+    metadata->SetKind(FeedbackVectorSlot(i), kind);
+    if (SlotRequiresName(kind)) {
+      Handle<String> name = spec->GetName(name_index);
+      DCHECK(!name.is_null());
+      int entry = name_index * kNameTableEntrySize;
+      names->set(entry + kNameTableSlotIndex, Smi::FromInt(i));
+      names->set(entry + kNameTableNameIndex, *name);
+      name_index++;
+    }
   }
+  DCHECK_EQ(name_count, name_index);
+  metadata->set(kNamesTableIndex, *names);
+
+  // It's important that the TypeFeedbackMetadata have a COW map, since it's
+  // pointed to by both a SharedFunctionInfo and indirectly by closures through
+  // the TypeFeedbackVector. The serializer uses the COW map type to decide
+  // this object belongs in the startup snapshot and not the partial
+  // snapshot(s).
+  metadata->set_map(isolate->heap()->fixed_cow_array_map());
+
   return metadata;
 }
 
@@ -99,14 +145,51 @@
   }
 
   int slots = slot_count();
-  for (int i = 0; i < slots; i++) {
-    if (GetKind(FeedbackVectorSlot(i)) != other_spec->GetKind(i)) {
+  int name_index = 0;
+  for (int i = 0; i < slots;) {
+    FeedbackVectorSlot slot(i);
+    FeedbackVectorSlotKind kind = GetKind(slot);
+    int entry_size = TypeFeedbackMetadata::GetSlotSize(kind);
+
+    if (kind != other_spec->GetKind(i)) {
       return true;
     }
+    if (SlotRequiresName(kind)) {
+      String* name = GetName(slot);
+      DCHECK(name != GetHeap()->empty_string());
+      String* other_name = *other_spec->GetName(name_index++);
+      if (name != other_name) {
+        return true;
+      }
+    }
+    i += entry_size;
   }
   return false;
 }
 
+bool TypeFeedbackMetadata::DiffersFrom(
+    const TypeFeedbackMetadata* other_metadata) const {
+  if (other_metadata->slot_count() != slot_count()) {
+    return true;
+  }
+
+  int slots = slot_count();
+  for (int i = 0; i < slots;) {
+    FeedbackVectorSlot slot(i);
+    FeedbackVectorSlotKind kind = GetKind(slot);
+    int entry_size = TypeFeedbackMetadata::GetSlotSize(kind);
+    if (GetKind(slot) != other_metadata->GetKind(slot)) {
+      return true;
+    }
+    if (SlotRequiresName(kind)) {
+      if (GetName(slot) != other_metadata->GetName(slot)) {
+        return true;
+      }
+    }
+    i += entry_size;
+  }
+  return false;
+}
 
 const char* TypeFeedbackMetadata::Kind2String(FeedbackVectorSlotKind kind) {
   switch (kind) {
@@ -116,6 +199,8 @@
       return "CALL_IC";
     case FeedbackVectorSlotKind::LOAD_IC:
       return "LOAD_IC";
+    case FeedbackVectorSlotKind::LOAD_GLOBAL_IC:
+      return "LOAD_GLOBAL_IC";
     case FeedbackVectorSlotKind::KEYED_LOAD_IC:
       return "KEYED_LOAD_IC";
     case FeedbackVectorSlotKind::STORE_IC:
@@ -131,6 +216,16 @@
   return "?";
 }
 
+FeedbackVectorSlotKind TypeFeedbackVector::GetKind(
+    FeedbackVectorSlot slot) const {
+  DCHECK(!is_empty());
+  return metadata()->GetKind(slot);
+}
+
+String* TypeFeedbackVector::GetName(FeedbackVectorSlot slot) const {
+  DCHECK(!is_empty());
+  return metadata()->GetName(slot);
+}
 
 // static
 Handle<TypeFeedbackVector> TypeFeedbackVector::New(
@@ -146,13 +241,29 @@
   Handle<FixedArray> array = factory->NewFixedArray(length, TENURED);
   array->set(kMetadataIndex, *metadata);
 
+  DisallowHeapAllocation no_gc;
+
   // Ensure we can skip the write barrier
   Handle<Object> uninitialized_sentinel = UninitializedSentinel(isolate);
   DCHECK_EQ(*factory->uninitialized_symbol(), *uninitialized_sentinel);
-  for (int i = kReservedIndexCount; i < length; i++) {
-    array->set(i, *uninitialized_sentinel, SKIP_WRITE_BARRIER);
-  }
+  for (int i = 0; i < slot_count;) {
+    FeedbackVectorSlot slot(i);
+    FeedbackVectorSlotKind kind = metadata->GetKind(slot);
+    int index = TypeFeedbackVector::GetIndex(slot);
+    int entry_size = TypeFeedbackMetadata::GetSlotSize(kind);
 
+    Object* value;
+    if (kind == FeedbackVectorSlotKind::LOAD_GLOBAL_IC) {
+      value = *factory->empty_weak_cell();
+    } else {
+      value = *uninitialized_sentinel;
+    }
+    array->set(index, value, SKIP_WRITE_BARRIER);
+    for (int j = 1; j < entry_size; j++) {
+      array->set(index + j, *uninitialized_sentinel, SKIP_WRITE_BARRIER);
+    }
+    i += entry_size;
+  }
   return Handle<TypeFeedbackVector>::cast(array);
 }
 
@@ -208,6 +319,11 @@
           nexus.Clear(shared->code());
           break;
         }
+        case FeedbackVectorSlotKind::LOAD_GLOBAL_IC: {
+          LoadGlobalICNexus nexus(this, slot);
+          nexus.Clear(shared->code());
+          break;
+        }
         case FeedbackVectorSlotKind::KEYED_LOAD_IC: {
           KeyedLoadICNexus nexus(this, slot);
           nexus.Clear(shared->code());
@@ -251,8 +367,28 @@
   SharedFunctionInfo::Iterator iterator(isolate);
   SharedFunctionInfo* shared;
   while ((shared = iterator.Next())) {
-    TypeFeedbackVector* vector = shared->feedback_vector();
-    vector->ClearKeyedStoreICs(shared);
+    if (!shared->OptimizedCodeMapIsCleared()) {
+      FixedArray* optimized_code_map = shared->optimized_code_map();
+      int length = optimized_code_map->length();
+      for (int i = SharedFunctionInfo::kEntriesStart; i < length;
+           i += SharedFunctionInfo::kEntryLength) {
+        Object* lits =
+            optimized_code_map->get(i + SharedFunctionInfo::kLiteralsOffset);
+        TypeFeedbackVector* vector = nullptr;
+        if (lits->IsWeakCell()) {
+          WeakCell* cell = WeakCell::cast(lits);
+          if (cell->value()->IsLiteralsArray()) {
+            vector = LiteralsArray::cast(cell->value())->feedback_vector();
+          }
+        } else {
+          DCHECK(lits->IsLiteralsArray());
+          vector = LiteralsArray::cast(lits)->feedback_vector();
+        }
+        if (vector != nullptr) {
+          vector->ClearKeyedStoreICs(shared);
+        }
+      }
+    }
   }
 }
 
@@ -389,6 +525,17 @@
   return UNINITIALIZED;
 }
 
+InlineCacheState LoadGlobalICNexus::StateFromFeedback() const {
+  Isolate* isolate = GetIsolate();
+  Object* feedback = GetFeedback();
+
+  Object* extra = GetFeedbackExtra();
+  if (!WeakCell::cast(feedback)->cleared() ||
+      extra != *TypeFeedbackVector::UninitializedSentinel(isolate)) {
+    return MONOMORPHIC;
+  }
+  return UNINITIALIZED;
+}
 
 InlineCacheState KeyedLoadICNexus::StateFromFeedback() const {
   Isolate* isolate = GetIsolate();
@@ -488,7 +635,7 @@
 int CallICNexus::ExtractCallCount() {
   Object* call_count = GetFeedbackExtra();
   if (call_count->IsSmi()) {
-    int value = Smi::cast(call_count)->value() / 2;
+    int value = Smi::cast(call_count)->value();
     return value;
   }
   return -1;
@@ -505,14 +652,14 @@
         GetIsolate()->factory()->NewAllocationSite();
     SetFeedback(*new_site);
   }
-  SetFeedbackExtra(Smi::FromInt(kCallCountIncrement), SKIP_WRITE_BARRIER);
+  SetFeedbackExtra(Smi::FromInt(1), SKIP_WRITE_BARRIER);
 }
 
 
 void CallICNexus::ConfigureMonomorphic(Handle<JSFunction> function) {
   Handle<WeakCell> new_cell = GetIsolate()->factory()->NewWeakCell(function);
   SetFeedback(*new_cell);
-  SetFeedbackExtra(Smi::FromInt(kCallCountIncrement), SKIP_WRITE_BARRIER);
+  SetFeedbackExtra(Smi::FromInt(1), SKIP_WRITE_BARRIER);
 }
 
 
@@ -524,8 +671,7 @@
 void CallICNexus::ConfigureMegamorphic(int call_count) {
   SetFeedback(*TypeFeedbackVector::MegamorphicSentinel(GetIsolate()),
               SKIP_WRITE_BARRIER);
-  SetFeedbackExtra(Smi::FromInt(call_count * kCallCountIncrement),
-                   SKIP_WRITE_BARRIER);
+  SetFeedbackExtra(Smi::FromInt(call_count), SKIP_WRITE_BARRIER);
 }
 
 
@@ -536,6 +682,24 @@
   SetFeedbackExtra(*handler);
 }
 
+void LoadGlobalICNexus::ConfigureUninitialized() {
+  Isolate* isolate = GetIsolate();
+  SetFeedback(isolate->heap()->empty_weak_cell(), SKIP_WRITE_BARRIER);
+  SetFeedbackExtra(*TypeFeedbackVector::UninitializedSentinel(isolate),
+                   SKIP_WRITE_BARRIER);
+}
+
+void LoadGlobalICNexus::ConfigurePropertyCellMode(Handle<PropertyCell> cell) {
+  Isolate* isolate = GetIsolate();
+  SetFeedback(*isolate->factory()->NewWeakCell(cell));
+  SetFeedbackExtra(*TypeFeedbackVector::UninitializedSentinel(isolate),
+                   SKIP_WRITE_BARRIER);
+}
+
+void LoadGlobalICNexus::ConfigureHandlerMode(Handle<Code> handler) {
+  SetFeedback(GetIsolate()->heap()->empty_weak_cell());
+  SetFeedbackExtra(*handler);
+}
 
 void KeyedLoadICNexus::ConfigureMonomorphic(Handle<Name> name,
                                             Handle<Map> receiver_map,
@@ -587,7 +751,6 @@
                    SKIP_WRITE_BARRIER);
 }
 
-
 void KeyedLoadICNexus::ConfigurePolymorphic(Handle<Name> name,
                                             MapHandleList* maps,
                                             CodeHandleList* handlers) {
@@ -781,6 +944,9 @@
 
 void LoadICNexus::Clear(Code* host) { LoadIC::Clear(GetIsolate(), host, this); }
 
+void LoadGlobalICNexus::Clear(Code* host) {
+  LoadGlobalIC::Clear(GetIsolate(), host, this);
+}
 
 void KeyedLoadICNexus::Clear(Code* host) {
   KeyedLoadIC::Clear(GetIsolate(), host, this);
diff --git a/src/type-feedback-vector.h b/src/type-feedback-vector.h
index 770b5e5..38d5695 100644
--- a/src/type-feedback-vector.h
+++ b/src/type-feedback-vector.h
@@ -15,7 +15,6 @@
 namespace v8 {
 namespace internal {
 
-
 enum class FeedbackVectorSlotKind {
   // This kind means that the slot points to the middle of other slot
   // which occupies more than one feedback vector element.
@@ -24,6 +23,7 @@
 
   CALL_IC,
   LOAD_IC,
+  LOAD_GLOBAL_IC,
   KEYED_LOAD_IC,
   STORE_IC,
   KEYED_STORE_IC,
@@ -34,7 +34,6 @@
   KINDS_NUMBER  // Last value indicating number of kinds.
 };
 
-
 std::ostream& operator<<(std::ostream& os, FeedbackVectorSlotKind kind);
 
 
@@ -51,6 +50,11 @@
     return AddSlot(FeedbackVectorSlotKind::LOAD_IC);
   }
 
+  FeedbackVectorSlot AddLoadGlobalICSlot(Handle<String> name) {
+    This()->append_name(name);
+    return AddSlot(FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
+  }
+
   FeedbackVectorSlot AddKeyedLoadICSlot() {
     return AddSlot(FeedbackVectorSlotKind::KEYED_LOAD_IC);
   }
@@ -66,40 +70,65 @@
   FeedbackVectorSlot AddGeneralSlot() {
     return AddSlot(FeedbackVectorSlotKind::GENERAL);
   }
+
+#ifdef OBJECT_PRINT
+  // For gdb debugging.
+  void Print();
+#endif  // OBJECT_PRINT
+
+  DECLARE_PRINTER(FeedbackVectorSpec)
+
+ private:
+  Derived* This() { return static_cast<Derived*>(this); }
 };
 
 
 class StaticFeedbackVectorSpec
     : public FeedbackVectorSpecBase<StaticFeedbackVectorSpec> {
  public:
-  StaticFeedbackVectorSpec() : slots_(0) {}
+  StaticFeedbackVectorSpec() : slot_count_(0), name_count_(0) {}
 
-  int slots() const { return slots_; }
+  int slots() const { return slot_count_; }
 
   FeedbackVectorSlotKind GetKind(int slot) const {
-    DCHECK(slot >= 0 && slot < slots_);
+    DCHECK(slot >= 0 && slot < slot_count_);
     return kinds_[slot];
   }
 
+  int name_count() const { return name_count_; }
+
+  Handle<String> GetName(int index) const {
+    DCHECK(index >= 0 && index < name_count_);
+    return names_[index];
+  }
+
  private:
   friend class FeedbackVectorSpecBase<StaticFeedbackVectorSpec>;
 
   void append(FeedbackVectorSlotKind kind) {
-    DCHECK(slots_ < kMaxLength);
-    kinds_[slots_++] = kind;
+    DCHECK(slot_count_ < kMaxLength);
+    kinds_[slot_count_++] = kind;
+  }
+
+  void append_name(Handle<String> name) {
+    DCHECK(name_count_ < kMaxLength);
+    names_[name_count_++] = name;
   }
 
   static const int kMaxLength = 12;
 
-  int slots_;
+  int slot_count_;
   FeedbackVectorSlotKind kinds_[kMaxLength];
+  int name_count_;
+  Handle<String> names_[kMaxLength];
 };
 
 
 class FeedbackVectorSpec : public FeedbackVectorSpecBase<FeedbackVectorSpec> {
  public:
-  explicit FeedbackVectorSpec(Zone* zone) : slot_kinds_(zone) {
+  explicit FeedbackVectorSpec(Zone* zone) : slot_kinds_(zone), names_(zone) {
     slot_kinds_.reserve(16);
+    names_.reserve(8);
   }
 
   int slots() const { return static_cast<int>(slot_kinds_.size()); }
@@ -108,6 +137,10 @@
     return static_cast<FeedbackVectorSlotKind>(slot_kinds_.at(slot));
   }
 
+  int name_count() const { return static_cast<int>(names_.size()); }
+
+  Handle<String> GetName(int index) const { return names_.at(index); }
+
  private:
   friend class FeedbackVectorSpecBase<FeedbackVectorSpec>;
 
@@ -115,13 +148,17 @@
     slot_kinds_.push_back(static_cast<unsigned char>(kind));
   }
 
+  void append_name(Handle<String> name) { names_.push_back(name); }
+
   ZoneVector<unsigned char> slot_kinds_;
+  ZoneVector<Handle<String>> names_;
 };
 
 
 // The shape of the TypeFeedbackMetadata is an array with:
 // 0: slot_count
-// 1..N: slot kinds packed into a bit vector
+// 1: names table
+// 2..N: slot kinds packed into a bit vector
 //
 class TypeFeedbackMetadata : public FixedArray {
  public:
@@ -129,19 +166,34 @@
   static inline TypeFeedbackMetadata* cast(Object* obj);
 
   static const int kSlotsCountIndex = 0;
-  static const int kReservedIndexCount = 1;
+  static const int kNamesTableIndex = 1;
+  static const int kReservedIndexCount = 2;
+
+  static const int kNameTableEntrySize = 2;
+  static const int kNameTableSlotIndex = 0;
+  static const int kNameTableNameIndex = 1;
 
   // Returns number of feedback vector elements used by given slot kind.
   static inline int GetSlotSize(FeedbackVectorSlotKind kind);
 
+  // Defines if slots of given kind require "name".
+  static inline bool SlotRequiresName(FeedbackVectorSlotKind kind);
+
   bool SpecDiffersFrom(const FeedbackVectorSpec* other_spec) const;
 
+  bool DiffersFrom(const TypeFeedbackMetadata* other_metadata) const;
+
+  inline bool is_empty() const;
+
   // Returns number of slots in the vector.
   inline int slot_count() const;
 
   // Returns slot kind for given slot.
   FeedbackVectorSlotKind GetKind(FeedbackVectorSlot slot) const;
 
+  // Returns name for given slot.
+  String* GetName(FeedbackVectorSlot slot) const;
+
   template <typename Spec>
   static Handle<TypeFeedbackMetadata> New(Isolate* isolate, const Spec* spec);
 
@@ -155,7 +207,7 @@
   static const char* Kind2String(FeedbackVectorSlotKind kind);
 
  private:
-  static const int kFeedbackVectorSlotKindBits = 3;
+  static const int kFeedbackVectorSlotKindBits = 4;
   STATIC_ASSERT(static_cast<int>(FeedbackVectorSlotKind::KINDS_NUMBER) <
                 (1 << kFeedbackVectorSlotKindBits));
 
@@ -172,9 +224,9 @@
 // 0: feedback metadata
 // 1: ics_with_types
 // 2: ics_with_generic_info
-// 3: feedback slot #0 (N >= 3)
+// 3: feedback slot #0
 // ...
-// N + slot_count - 1: feedback slot #(slot_count-1)
+// 3 + slot_count - 1: feedback slot #(slot_count-1)
 //
 class TypeFeedbackVector : public FixedArray {
  public:
@@ -194,18 +246,22 @@
   inline TypeFeedbackMetadata* metadata() const;
 
   // Conversion from a slot to an integer index to the underlying array.
-  inline int GetIndex(FeedbackVectorSlot slot) const;
+  static int GetIndex(FeedbackVectorSlot slot) {
+    return kReservedIndexCount + slot.ToInt();
+  }
   static int GetIndexFromSpec(const FeedbackVectorSpec* spec,
                               FeedbackVectorSlot slot);
 
   // Conversion from an integer index to the underlying array to a slot.
-  inline FeedbackVectorSlot ToSlot(int index) const;
+  static inline FeedbackVectorSlot ToSlot(int index);
   inline Object* Get(FeedbackVectorSlot slot) const;
   inline void Set(FeedbackVectorSlot slot, Object* value,
                   WriteBarrierMode mode = UPDATE_WRITE_BARRIER);
 
   // Returns slot kind for given slot.
-  inline FeedbackVectorSlotKind GetKind(FeedbackVectorSlot slot) const;
+  FeedbackVectorSlotKind GetKind(FeedbackVectorSlot slot) const;
+  // Returns name corresponding to given slot or an empty string.
+  String* GetName(FeedbackVectorSlot slot) const;
 
   static Handle<TypeFeedbackVector> New(Isolate* isolate,
                                         Handle<TypeFeedbackMetadata> metadata);
@@ -280,23 +336,17 @@
  public:
   explicit TypeFeedbackMetadataIterator(Handle<TypeFeedbackMetadata> metadata)
       : metadata_handle_(metadata),
-        slot_(FeedbackVectorSlot(0)),
+        next_slot_(FeedbackVectorSlot(0)),
         slot_kind_(FeedbackVectorSlotKind::INVALID) {}
 
   explicit TypeFeedbackMetadataIterator(TypeFeedbackMetadata* metadata)
       : metadata_(metadata),
-        slot_(FeedbackVectorSlot(0)),
+        next_slot_(FeedbackVectorSlot(0)),
         slot_kind_(FeedbackVectorSlotKind::INVALID) {}
 
-  bool HasNext() const { return slot_.ToInt() < metadata()->slot_count(); }
+  inline bool HasNext() const;
 
-  FeedbackVectorSlot Next() {
-    DCHECK(HasNext());
-    FeedbackVectorSlot slot = slot_;
-    slot_kind_ = metadata()->GetKind(slot);
-    slot_ = FeedbackVectorSlot(slot_.ToInt() + entry_size());
-    return slot;
-  }
+  inline FeedbackVectorSlot Next();
 
   // Returns slot kind of the last slot returned by Next().
   FeedbackVectorSlotKind kind() const {
@@ -306,7 +356,12 @@
   }
 
   // Returns entry size of the last slot returned by Next().
-  int entry_size() const { return TypeFeedbackMetadata::GetSlotSize(kind()); }
+  inline int entry_size() const;
+
+  String* name() const {
+    DCHECK(TypeFeedbackMetadata::SlotRequiresName(kind()));
+    return metadata()->GetName(cur_slot_);
+  }
 
  private:
   TypeFeedbackMetadata* metadata() const {
@@ -318,7 +373,8 @@
   // pointer use cases.
   Handle<TypeFeedbackMetadata> metadata_handle_;
   TypeFeedbackMetadata* metadata_;
-  FeedbackVectorSlot slot_;
+  FeedbackVectorSlot cur_slot_;
+  FeedbackVectorSlot next_slot_;
   FeedbackVectorSlotKind slot_kind_;
 };
 
@@ -393,10 +449,6 @@
 
 class CallICNexus final : public FeedbackNexus {
  public:
-  // Monomorphic call ics store call counts. Platform code needs to increment
-  // the count appropriately (ie, by 2).
-  static const int kCallCountIncrement = 2;
-
   CallICNexus(Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
       : FeedbackNexus(vector, slot) {
     DCHECK_EQ(FeedbackVectorSlotKind::CALL_IC, vector->GetKind(slot));
@@ -454,6 +506,37 @@
   InlineCacheState StateFromFeedback() const override;
 };
 
+class LoadGlobalICNexus : public FeedbackNexus {
+ public:
+  LoadGlobalICNexus(Handle<TypeFeedbackVector> vector, FeedbackVectorSlot slot)
+      : FeedbackNexus(vector, slot) {
+    DCHECK_EQ(FeedbackVectorSlotKind::LOAD_GLOBAL_IC, vector->GetKind(slot));
+  }
+  LoadGlobalICNexus(TypeFeedbackVector* vector, FeedbackVectorSlot slot)
+      : FeedbackNexus(vector, slot) {
+    DCHECK_EQ(FeedbackVectorSlotKind::LOAD_GLOBAL_IC, vector->GetKind(slot));
+  }
+
+  int ExtractMaps(MapHandleList* maps) const final {
+    // LoadGlobalICs don't record map feedback.
+    return 0;
+  }
+  MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const final {
+    return MaybeHandle<Code>();
+  }
+  bool FindHandlers(CodeHandleList* code_list, int length = -1) const final {
+    return length == 0;
+  }
+
+  void ConfigureMegamorphic() override { UNREACHABLE(); }
+  void Clear(Code* host);
+
+  void ConfigureUninitialized() override;
+  void ConfigurePropertyCellMode(Handle<PropertyCell> cell);
+  void ConfigureHandlerMode(Handle<Code> handler);
+
+  InlineCacheState StateFromFeedback() const override;
+};
 
 class KeyedLoadICNexus : public FeedbackNexus {
  public:
diff --git a/src/type-info.cc b/src/type-info.cc
index 87b727e..5f5c1e8 100644
--- a/src/type-info.cc
+++ b/src/type-info.cc
@@ -108,7 +108,7 @@
 
 bool TypeFeedbackOracle::CallIsUninitialized(FeedbackVectorSlot slot) {
   Handle<Object> value = GetInfo(slot);
-  return value->IsUndefined() ||
+  return value->IsUndefined(isolate()) ||
          value.is_identical_to(
              TypeFeedbackVector::UninitializedSentinel(isolate()));
 }
diff --git a/src/types.cc b/src/types.cc
index c222861..a48736b 100644
--- a/src/types.cc
+++ b/src/types.cc
@@ -201,6 +201,8 @@
     case SIMD128_VALUE_TYPE:
       return kSimd;
     case JS_OBJECT_TYPE:
+    case JS_ARGUMENTS_TYPE:
+    case JS_ERROR_TYPE:
     case JS_GLOBAL_OBJECT_TYPE:
     case JS_GLOBAL_PROXY_TYPE:
     case JS_API_OBJECT_TYPE:
diff --git a/src/types.h b/src/types.h
index 8061410..2541838 100644
--- a/src/types.h
+++ b/src/types.h
@@ -219,6 +219,8 @@
   V(BooleanOrNullOrUndefined, kBoolean | kNull | kUndefined) \
   V(NullOrUndefined,          kNull | kUndefined) \
   V(Undetectable,             kNullOrUndefined | kOtherUndetectable) \
+  V(NumberOrOddball,          kNumber | kNullOrUndefined | kBoolean) \
+  V(NumberOrSimdOrString,     kNumber | kSimd | kString) \
   V(NumberOrString,           kNumber | kString) \
   V(NumberOrUndefined,        kNumber | kUndefined) \
   V(PlainPrimitive,           kNumberOrString | kBoolean | kNullOrUndefined) \
@@ -229,6 +231,7 @@
   V(StringOrReceiver,         kString | kReceiver) \
   V(Unique,                   kBoolean | kUniqueName | kNull | kUndefined | \
                               kReceiver) \
+  V(NonInternal,              kPrimitive | kReceiver) \
   V(NonNumber,                kUnique | kString | kInternal) \
   V(Any,                      0xfffffffeu)
 
@@ -740,8 +743,8 @@
   SIMD128_TYPES(CONSTRUCT_SIMD_TYPE)
 #undef CONSTRUCT_SIMD_TYPE
 
-  static Type* Union(Type* type1, Type* type2, Zone* reg);
-  static Type* Intersect(Type* type1, Type* type2, Zone* reg);
+  static Type* Union(Type* type1, Type* type2, Zone* zone);
+  static Type* Intersect(Type* type1, Type* type2, Zone* zone);
 
   static Type* Of(double value, Zone* zone) {
     return BitsetType::New(BitsetType::ExpandInternals(BitsetType::Lub(value)));
diff --git a/src/typing-asm.cc b/src/typing-asm.cc
index e541539..2390e7e 100644
--- a/src/typing-asm.cc
+++ b/src/typing-asm.cc
@@ -53,10 +53,10 @@
   stdlib_simd_##name##_types_(zone),
       SIMD128_TYPES(V)
 #undef V
-          global_variable_type_(HashMap::PointersMatch,
+          global_variable_type_(base::HashMap::PointersMatch,
                                 ZoneHashMap::kDefaultHashMapCapacity,
                                 ZoneAllocationPolicy(zone)),
-      local_variable_type_(HashMap::PointersMatch,
+      local_variable_type_(base::HashMap::PointersMatch,
                            ZoneHashMap::kDefaultHashMapCapacity,
                            ZoneAllocationPolicy(zone)),
       in_function_(false),
@@ -166,6 +166,10 @@
   // Set function type so global references to functions have some type
   // (so they can give a more useful error).
   Variable* var = decl->proxy()->var();
+  if (GetVariableInfo(var)) {
+    // Detect previously-seen functions.
+    FAIL(decl->fun(), "function repeated in module");
+  }
   SetType(var, Type::Function());
 }
 
@@ -508,7 +512,7 @@
   RECURSE(VisitStatements(expr->body()));
   in_function_ = false;
   return_type_ = save_return_type;
-  IntersectResult(expr, type);
+  RECURSE(IntersectResult(expr, type));
 }
 
 
@@ -552,7 +556,7 @@
     FAIL(expr, "then and else expressions in ? must have the same type");
   }
 
-  IntersectResult(expr, then_type);
+  RECURSE(IntersectResult(expr, then_type));
 }
 
 
@@ -579,7 +583,7 @@
   Type* type = Type::Intersect(info->type, expected_type_, zone());
   if (type->Is(cache_.kAsmInt)) type = cache_.kAsmInt;
   intish_ = 0;
-  IntersectResult(expr, type);
+  RECURSE(IntersectResult(expr, type));
 }
 
 void AsmTyper::VisitLiteral(Literal* expr, bool is_return) {
@@ -589,22 +593,22 @@
     int32_t i;
     uint32_t u;
     if (expr->raw_value()->ContainsDot()) {
-      IntersectResult(expr, cache_.kAsmDouble);
+      RECURSE(IntersectResult(expr, cache_.kAsmDouble));
     } else if (!is_return && value->ToUint32(&u)) {
       if (u <= 0x7fffffff) {
-        IntersectResult(expr, cache_.kAsmFixnum);
+        RECURSE(IntersectResult(expr, cache_.kAsmFixnum));
       } else {
-        IntersectResult(expr, cache_.kAsmUnsigned);
+        RECURSE(IntersectResult(expr, cache_.kAsmUnsigned));
       }
     } else if (value->ToInt32(&i)) {
-      IntersectResult(expr, cache_.kAsmSigned);
+      RECURSE(IntersectResult(expr, cache_.kAsmSigned));
     } else {
       FAIL(expr, "illegal number");
     }
   } else if (!is_return && value->IsString()) {
-    IntersectResult(expr, Type::String());
-  } else if (value->IsUndefined()) {
-    IntersectResult(expr, Type::Undefined());
+    RECURSE(IntersectResult(expr, Type::String()));
+  } else if (value->IsUndefined(isolate_)) {
+    RECURSE(IntersectResult(expr, Type::Undefined()));
   } else {
     FAIL(expr, "illegal literal");
   }
@@ -633,7 +637,7 @@
       FAIL(prop->value(), "non-function in function table");
     }
   }
-  IntersectResult(expr, Type::Object());
+  RECURSE(IntersectResult(expr, Type::Object()));
 }
 
 
@@ -653,7 +657,7 @@
     elem_type = Type::Union(elem_type, computed_type_, zone());
   }
   array_size_ = values->length();
-  IntersectResult(expr, Type::Array(elem_type, zone()));
+  RECURSE(IntersectResult(expr, Type::Array(elem_type, zone())));
 }
 
 
@@ -682,6 +686,9 @@
     if (intish_ != 0) {
       FAIL(expr, "intish or floatish assignment");
     }
+    if (in_function_ && target_type->IsArray()) {
+      FAIL(expr, "assignment to array variable");
+    }
     expected_type_ = target_type;
     Variable* var = proxy->var();
     VariableInfo* info = GetVariableInfo(var);
@@ -701,7 +708,7 @@
     if (type->Is(cache_.kAsmInt)) type = cache_.kAsmInt;
     info->type = type;
     intish_ = 0;
-    IntersectResult(proxy, type);
+    RECURSE(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_;
@@ -716,7 +723,7 @@
     }
     VisitHeapAccess(property, true, target_type);
   }
-  IntersectResult(expr, target_type);
+  RECURSE(IntersectResult(expr, target_type));
 }
 
 
@@ -776,7 +783,7 @@
     // bin->set_bounds(Bounds(cache_.kAsmSigned));
     RECURSE(VisitWithExpectation(expr->key(), cache_.kAsmSigned,
                                  "must be integer"));
-    IntersectResult(expr, type);
+    RECURSE(IntersectResult(expr, type));
   } else {
     Literal* literal = expr->key()->AsLiteral();
     if (literal) {
@@ -835,8 +842,8 @@
         FAIL(expr, "illegal type in assignment");
       }
     } else {
-      IntersectResult(expr, expected_type_);
-      IntersectResult(expr, result_type);
+      RECURSE(IntersectResult(expr, expected_type_));
+      RECURSE(IntersectResult(expr, result_type));
     }
   }
 }
@@ -1034,7 +1041,7 @@
       intish_ = 0;
       bounds_.set(expr->expression(),
                   Bounds(Type::Function(Type::Any(), zone())));
-      IntersectResult(expr, expected_type);
+      RECURSE(IntersectResult(expr, expected_type));
     } else {
       if (fun_type->Arity() != args->length()) {
         FAIL(expr, "call with wrong arity");
@@ -1051,7 +1058,7 @@
       }
       RECURSE(CheckPolymorphicStdlibArguments(standard_member, args));
       intish_ = 0;
-      IntersectResult(expr, result_type);
+      RECURSE(IntersectResult(expr, result_type));
     }
   } else {
     FAIL(expr, "invalid callee");
@@ -1076,7 +1083,7 @@
           arg, fun_type->Parameter(i),
           "constructor argument expected to match callee parameter"));
     }
-    IntersectResult(expr, fun_type->Result());
+    RECURSE(IntersectResult(expr, fun_type->Result()));
     return;
   }
 
@@ -1097,7 +1104,7 @@
     case Token::NOT:  // Used to encode != and !==
       RECURSE(VisitWithExpectation(expr->expression(), cache_.kAsmInt,
                                    "operand expected to be integer"));
-      IntersectResult(expr, cache_.kAsmSigned);
+      RECURSE(IntersectResult(expr, cache_.kAsmSigned));
       return;
     case Token::DELETE:
       FAIL(expr, "delete operator encountered");
@@ -1156,7 +1163,7 @@
       FAIL(expr, "ill-typed bitwise operation");
     }
   }
-  IntersectResult(expr, result_type);
+  RECURSE(IntersectResult(expr, result_type));
 }
 
 
@@ -1188,7 +1195,7 @@
                                    "left comma operand expected to be any"));
       RECURSE(VisitWithExpectation(expr->right(), Type::Any(),
                                    "right comma operand expected to be any"));
-      IntersectResult(expr, computed_type_);
+      RECURSE(IntersectResult(expr, computed_type_));
       return;
     }
     case Token::OR:
@@ -1217,7 +1224,7 @@
           bounds_.set(left, Bounds(cache_.kSingletonOne));
           RECURSE(VisitWithExpectation(expr->right(), cache_.kAsmIntQ,
                                        "not operator expects an integer"));
-          IntersectResult(expr, cache_.kAsmSigned);
+          RECURSE(IntersectResult(expr, cache_.kAsmSigned));
           return;
         } else {
           FAIL(left, "unexpected false");
@@ -1279,7 +1286,7 @@
             FAIL(expr, "multiply must be by value in -2^20 < n < 2^20");
           }
           intish_ = i;
-          IntersectResult(expr, cache_.kAsmInt);
+          RECURSE(IntersectResult(expr, cache_.kAsmInt));
           return;
         } else {
           intish_ = left_intish + right_intish + 1;
@@ -1292,7 +1299,7 @@
               FAIL(expr, "too many consecutive multiplicative ops");
             }
           }
-          IntersectResult(expr, cache_.kAsmInt);
+          RECURSE(IntersectResult(expr, cache_.kAsmInt));
           return;
         }
       } else if (expr->op() == Token::MUL && expr->right()->IsLiteral() &&
@@ -1318,7 +1325,7 @@
                 "unary + only allowed on signed, unsigned, float?, or double?");
           }
         }
-        IntersectResult(expr, cache_.kAsmDouble);
+        RECURSE(IntersectResult(expr, cache_.kAsmDouble));
         return;
       } else if (expr->op() == Token::MUL && left_type->Is(cache_.kAsmDouble) &&
                  expr->right()->IsLiteral() &&
@@ -1326,17 +1333,17 @@
                  expr->right()->AsLiteral()->raw_value()->AsNumber() == -1.0) {
         // For unary -, expressed as x * -1
         bounds_.set(expr->right(), Bounds(cache_.kAsmDouble));
-        IntersectResult(expr, cache_.kAsmDouble);
+        RECURSE(IntersectResult(expr, cache_.kAsmDouble));
         return;
       } else if (type->Is(cache_.kAsmFloat) && expr->op() != Token::MOD) {
         if (left_intish != 0 || right_intish != 0) {
           FAIL(expr, "float operation before required fround");
         }
-        IntersectResult(expr, cache_.kAsmFloat);
+        RECURSE(IntersectResult(expr, cache_.kAsmFloat));
         intish_ = 1;
         return;
       } else if (type->Is(cache_.kAsmDouble)) {
-        IntersectResult(expr, cache_.kAsmDouble);
+        RECURSE(IntersectResult(expr, cache_.kAsmDouble));
         return;
       } else {
         FAIL(expr, "ill-typed arithmetic operation");
@@ -1378,7 +1385,7 @@
     FAIL(expr, "left and right side of comparison must match");
   }
 
-  IntersectResult(expr, cache_.kAsmSigned);
+  RECURSE(IntersectResult(expr, cache_.kAsmSigned));
 }
 
 
@@ -1598,6 +1605,15 @@
 void AsmTyper::IntersectResult(Expression* expr, Type* type) {
   computed_type_ = type;
   Type* bounded_type = Type::Intersect(computed_type_, expected_type_, zone());
+  if (Type::Representation(bounded_type, zone())->Is(Type::None())) {
+#ifdef DEBUG
+    PrintF("Computed type: ");
+    computed_type_->Print();
+    PrintF("Expected type: ");
+    expected_type_->Print();
+#endif
+    FAIL(expr, "type mismatch");
+  }
   bounds_.set(expr, Bounds(bounded_type));
 }
 
@@ -1608,7 +1624,7 @@
   expected_type_ = expected_type;
   RECURSE(Visit(expr));
   Type* bounded_type = Type::Intersect(computed_type_, expected_type_, zone());
-  if (bounded_type->Is(Type::None())) {
+  if (Type::Representation(bounded_type, zone())->Is(Type::None())) {
 #ifdef DEBUG
     PrintF("Computed type: ");
     computed_type_->Print();
diff --git a/src/uri.cc b/src/uri.cc
index c459be5..0107721 100644
--- a/src/uri.cc
+++ b/src/uri.cc
@@ -8,10 +8,197 @@
 #include "src/handles.h"
 #include "src/isolate-inl.h"
 #include "src/list.h"
+#include "src/string-search.h"
 
 namespace v8 {
 namespace internal {
 
+namespace {  // anonymous namespace for DecodeURI helper functions
+bool IsReservedPredicate(uc16 c) {
+  switch (c) {
+    case '#':
+    case '$':
+    case '&':
+    case '+':
+    case ',':
+    case '/':
+    case ':':
+    case ';':
+    case '=':
+    case '?':
+    case '@':
+      return true;
+    default:
+      return false;
+  }
+}
+
+bool IsReplacementCharacter(const uint8_t* octets, int length) {
+  // The replacement character is at codepoint U+FFFD in the Unicode Specials
+  // table. Its UTF-8 encoding is 0xEF 0xBF 0xBD.
+  if (length != 3 || octets[0] != 0xef || octets[1] != 0xbf ||
+      octets[2] != 0xbd) {
+    return false;
+  }
+  return true;
+}
+
+bool DecodeOctets(const uint8_t* octets, int length, List<uc16>* buffer) {
+  size_t cursor = 0;
+  uc32 value = unibrow::Utf8::ValueOf(octets, length, &cursor);
+  if (value == unibrow::Utf8::kBadChar &&
+      !IsReplacementCharacter(octets, length)) {
+    return false;
+  }
+
+  if (value <= unibrow::Utf16::kMaxNonSurrogateCharCode) {
+    buffer->Add(value);
+  } else {
+    buffer->Add(unibrow::Utf16::LeadSurrogate(value));
+    buffer->Add(unibrow::Utf16::TrailSurrogate(value));
+  }
+  return true;
+}
+
+int TwoDigitHex(uc16 character1, uc16 character2) {
+  if (character1 > 'f') return -1;
+  int high = HexValue(character1);
+  if (high == -1) return -1;
+  if (character2 > 'f') return -1;
+  int low = HexValue(character2);
+  if (low == -1) return -1;
+  return (high << 4) + low;
+}
+
+template <typename T>
+void AddToBuffer(uc16 decoded, String::FlatContent* uri_content, int index,
+                 bool is_uri, List<T>* buffer) {
+  if (is_uri && IsReservedPredicate(decoded)) {
+    buffer->Add('%');
+    uc16 first = uri_content->Get(index + 1);
+    uc16 second = uri_content->Get(index + 2);
+    DCHECK_GT(std::numeric_limits<T>::max(), first);
+    DCHECK_GT(std::numeric_limits<T>::max(), second);
+
+    buffer->Add(first);
+    buffer->Add(second);
+  } else {
+    buffer->Add(decoded);
+  }
+}
+
+bool IntoTwoByte(int index, bool is_uri, int uri_length,
+                 String::FlatContent* uri_content, List<uc16>* buffer) {
+  for (int k = index; k < uri_length; k++) {
+    uc16 code = uri_content->Get(k);
+    if (code == '%') {
+      uc16 decoded;
+      if (k + 2 >= uri_length ||
+          (decoded = TwoDigitHex(uri_content->Get(k + 1),
+                                 uri_content->Get(k + 2))) < 0) {
+        return false;
+      }
+      k += 2;
+      if (decoded > unibrow::Utf8::kMaxOneByteChar) {
+        uint8_t octets[unibrow::Utf8::kMaxEncodedSize];
+        octets[0] = decoded;
+
+        int number_of_continuation_bytes = 0;
+        while ((decoded << ++number_of_continuation_bytes) & 0x80) {
+          if (number_of_continuation_bytes > 3 || k + 3 >= uri_length) {
+            return false;
+          }
+
+          uc16 continuation_byte;
+
+          if (uri_content->Get(++k) != '%' ||
+              (continuation_byte = TwoDigitHex(uri_content->Get(k + 1),
+                                               uri_content->Get(k + 2))) < 0) {
+            return false;
+          }
+          k += 2;
+          octets[number_of_continuation_bytes] = continuation_byte;
+        }
+
+        if (!DecodeOctets(octets, number_of_continuation_bytes, buffer)) {
+          return false;
+        }
+      } else {
+        AddToBuffer(decoded, uri_content, k - 2, is_uri, buffer);
+      }
+    } else {
+      buffer->Add(code);
+    }
+  }
+  return true;
+}
+
+bool IntoOneAndTwoByte(Handle<String> uri, bool is_uri,
+                       List<uint8_t>* one_byte_buffer,
+                       List<uc16>* two_byte_buffer) {
+  DisallowHeapAllocation no_gc;
+  String::FlatContent uri_content = uri->GetFlatContent();
+
+  int uri_length = uri->length();
+  for (int k = 0; k < uri_length; k++) {
+    uc16 code = uri_content.Get(k);
+    if (code == '%') {
+      uc16 decoded;
+      if (k + 2 >= uri_length ||
+          (decoded = TwoDigitHex(uri_content.Get(k + 1),
+                                 uri_content.Get(k + 2))) < 0) {
+        return false;
+      }
+
+      if (decoded > unibrow::Utf8::kMaxOneByteChar) {
+        return IntoTwoByte(k, is_uri, uri_length, &uri_content,
+                           two_byte_buffer);
+      }
+
+      AddToBuffer(decoded, &uri_content, k, is_uri, one_byte_buffer);
+      k += 2;
+    } else {
+      if (code > unibrow::Utf8::kMaxOneByteChar) {
+        return IntoTwoByte(k, is_uri, uri_length, &uri_content,
+                           two_byte_buffer);
+      }
+      one_byte_buffer->Add(code);
+    }
+  }
+  return true;
+}
+
+}  // anonymous namespace
+
+MaybeHandle<String> Uri::Decode(Isolate* isolate, Handle<String> uri,
+                                bool is_uri) {
+  uri = String::Flatten(uri);
+  List<uint8_t> one_byte_buffer;
+  List<uc16> two_byte_buffer;
+
+  if (!IntoOneAndTwoByte(uri, is_uri, &one_byte_buffer, &two_byte_buffer)) {
+    THROW_NEW_ERROR(isolate, NewURIError(), String);
+  }
+
+  if (two_byte_buffer.is_empty()) {
+    return isolate->factory()->NewStringFromOneByte(
+        one_byte_buffer.ToConstVector());
+  }
+
+  Handle<SeqTwoByteString> result;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, result, isolate->factory()->NewRawTwoByteString(
+                           one_byte_buffer.length() + two_byte_buffer.length()),
+      String);
+
+  CopyChars(result->GetChars(), one_byte_buffer.ToConstVector().start(),
+            one_byte_buffer.length());
+  CopyChars(result->GetChars() + one_byte_buffer.length(),
+            two_byte_buffer.ToConstVector().start(), two_byte_buffer.length());
+
+  return result;
+}
+
 namespace {  // anonymous namespace for EncodeURI helper functions
 bool IsUnescapePredicateInUriComponent(uc16 c) {
   if (IsAlphaNumeric(c)) {
@@ -53,43 +240,36 @@
   }
 }
 
-void AddHexEncodedToBuffer(uint8_t octet, List<uint8_t>* buffer) {
+void AddEncodedOctetToBuffer(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);
+  char s[4] = {};
+  int number_of_bytes;
+  number_of_bytes =
+      unibrow::Utf8::Encode(s, c, unibrow::Utf16::kNoPreviousCharacter, false);
+  for (int k = 0; k < number_of_bytes; k++) {
+    AddEncodedOctetToBuffer(s[k], 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);
+  char s[4] = {};
+  int number_of_bytes =
+      unibrow::Utf8::Encode(s, unibrow::Utf16::CombineSurrogatePair(cc1, cc2),
+                            unibrow::Utf16::kNoPreviousCharacter, false);
+  for (int k = 0; k < number_of_bytes; k++) {
+    AddEncodedOctetToBuffer(s[k], buffer);
+  }
 }
 
 }  // anonymous namespace
 
-Object* Uri::Encode(Isolate* isolate, Handle<String> uri, bool is_uri) {
+MaybeHandle<String> 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);
@@ -120,15 +300,205 @@
       }
 
       AllowHeapAllocation allocate_error_and_return;
-      THROW_NEW_ERROR_RETURN_FAILURE(isolate, NewURIError());
+      THROW_NEW_ERROR(isolate, NewURIError(), String);
     }
   }
 
+  return isolate->factory()->NewStringFromOneByte(buffer.ToConstVector());
+}
+
+namespace {  // Anonymous namespace for Escape and Unescape
+
+template <typename Char>
+int UnescapeChar(Vector<const Char> vector, int i, int length, int* step) {
+  uint16_t character = vector[i];
+  int32_t hi = 0;
+  int32_t lo = 0;
+  if (character == '%' && i <= length - 6 && vector[i + 1] == 'u' &&
+      (hi = TwoDigitHex(vector[i + 2], vector[i + 3])) > -1 &&
+      (lo = TwoDigitHex(vector[i + 4], vector[i + 5])) > -1) {
+    *step = 6;
+    return (hi << 8) + lo;
+  } else if (character == '%' && i <= length - 3 &&
+             (lo = TwoDigitHex(vector[i + 1], vector[i + 2])) > -1) {
+    *step = 3;
+    return lo;
+  } else {
+    *step = 1;
+    return character;
+  }
+}
+
+template <typename Char>
+MaybeHandle<String> UnescapeSlow(Isolate* isolate, Handle<String> string,
+                                 int start_index) {
+  bool one_byte = true;
+  int length = string->length();
+
+  int unescaped_length = 0;
+  {
+    DisallowHeapAllocation no_allocation;
+    Vector<const Char> vector = string->GetCharVector<Char>();
+    for (int i = start_index; i < length; unescaped_length++) {
+      int step;
+      if (UnescapeChar(vector, i, length, &step) >
+          String::kMaxOneByteCharCode) {
+        one_byte = false;
+      }
+      i += step;
+    }
+  }
+
+  DCHECK(start_index < length);
+  Handle<String> first_part =
+      isolate->factory()->NewProperSubString(string, 0, start_index);
+
+  int dest_position = 0;
+  Handle<String> second_part;
+  DCHECK(unescaped_length <= String::kMaxLength);
+  if (one_byte) {
+    Handle<SeqOneByteString> dest = isolate->factory()
+                                        ->NewRawOneByteString(unescaped_length)
+                                        .ToHandleChecked();
+    DisallowHeapAllocation no_allocation;
+    Vector<const Char> vector = string->GetCharVector<Char>();
+    for (int i = start_index; i < length; dest_position++) {
+      int step;
+      dest->SeqOneByteStringSet(dest_position,
+                                UnescapeChar(vector, i, length, &step));
+      i += step;
+    }
+    second_part = dest;
+  } else {
+    Handle<SeqTwoByteString> dest = isolate->factory()
+                                        ->NewRawTwoByteString(unescaped_length)
+                                        .ToHandleChecked();
+    DisallowHeapAllocation no_allocation;
+    Vector<const Char> vector = string->GetCharVector<Char>();
+    for (int i = start_index; i < length; dest_position++) {
+      int step;
+      dest->SeqTwoByteStringSet(dest_position,
+                                UnescapeChar(vector, i, length, &step));
+      i += step;
+    }
+    second_part = dest;
+  }
+  return isolate->factory()->NewConsString(first_part, second_part);
+}
+
+bool IsNotEscaped(uint16_t c) {
+  if (IsAlphaNumeric(c)) {
+    return true;
+  }
+  //  @*_+-./
+  switch (c) {
+    case '@':
+    case '*':
+    case '_':
+    case '+':
+    case '-':
+    case '.':
+    case '/':
+      return true;
+    default:
+      return false;
+  }
+}
+
+template <typename Char>
+static MaybeHandle<String> UnescapePrivate(Isolate* isolate,
+                                           Handle<String> source) {
+  int index;
+  {
+    DisallowHeapAllocation no_allocation;
+    StringSearch<uint8_t, Char> search(isolate, STATIC_CHAR_VECTOR("%"));
+    index = search.Search(source->GetCharVector<Char>(), 0);
+    if (index < 0) return source;
+  }
+  return UnescapeSlow<Char>(isolate, source, index);
+}
+
+template <typename Char>
+static MaybeHandle<String> EscapePrivate(Isolate* isolate,
+                                         Handle<String> string) {
+  DCHECK(string->IsFlat());
+  int escaped_length = 0;
+  int length = string->length();
+
+  {
+    DisallowHeapAllocation no_allocation;
+    Vector<const Char> vector = string->GetCharVector<Char>();
+    for (int i = 0; i < length; i++) {
+      uint16_t c = vector[i];
+      if (c >= 256) {
+        escaped_length += 6;
+      } else if (IsNotEscaped(c)) {
+        escaped_length++;
+      } else {
+        escaped_length += 3;
+      }
+
+      // We don't allow strings that are longer than a maximal length.
+      DCHECK(String::kMaxLength < 0x7fffffff - 6);     // Cannot overflow.
+      if (escaped_length > String::kMaxLength) break;  // Provoke exception.
+    }
+  }
+
+  // No length change implies no change.  Return original string if no change.
+  if (escaped_length == length) return string;
+
+  Handle<SeqOneByteString> dest;
+  ASSIGN_RETURN_ON_EXCEPTION(
+      isolate, dest, isolate->factory()->NewRawOneByteString(escaped_length),
+      String);
+  int dest_position = 0;
+
+  {
+    DisallowHeapAllocation no_allocation;
+    Vector<const Char> vector = string->GetCharVector<Char>();
+    for (int i = 0; i < length; i++) {
+      uint16_t c = vector[i];
+      if (c >= 256) {
+        dest->SeqOneByteStringSet(dest_position, '%');
+        dest->SeqOneByteStringSet(dest_position + 1, 'u');
+        dest->SeqOneByteStringSet(dest_position + 2, HexCharOfValue(c >> 12));
+        dest->SeqOneByteStringSet(dest_position + 3,
+                                  HexCharOfValue((c >> 8) & 0xf));
+        dest->SeqOneByteStringSet(dest_position + 4,
+                                  HexCharOfValue((c >> 4) & 0xf));
+        dest->SeqOneByteStringSet(dest_position + 5, HexCharOfValue(c & 0xf));
+        dest_position += 6;
+      } else if (IsNotEscaped(c)) {
+        dest->SeqOneByteStringSet(dest_position, c);
+        dest_position++;
+      } else {
+        dest->SeqOneByteStringSet(dest_position, '%');
+        dest->SeqOneByteStringSet(dest_position + 1, HexCharOfValue(c >> 4));
+        dest->SeqOneByteStringSet(dest_position + 2, HexCharOfValue(c & 0xf));
+        dest_position += 3;
+      }
+    }
+  }
+
+  return dest;
+}
+
+}  // Anonymous namespace
+
+MaybeHandle<String> Uri::Escape(Isolate* isolate, Handle<String> string) {
   Handle<String> result;
-  ASSIGN_RETURN_FAILURE_ON_EXCEPTION(
-      isolate, result,
-      isolate->factory()->NewStringFromOneByte(buffer.ToConstVector()));
-  return *result;
+  string = String::Flatten(string);
+  return string->IsOneByteRepresentationUnderneath()
+             ? EscapePrivate<uint8_t>(isolate, string)
+             : EscapePrivate<uc16>(isolate, string);
+}
+
+MaybeHandle<String> Uri::Unescape(Isolate* isolate, Handle<String> string) {
+  Handle<String> result;
+  string = String::Flatten(string);
+  return string->IsOneByteRepresentationUnderneath()
+             ? UnescapePrivate<uint8_t>(isolate, string)
+             : UnescapePrivate<uc16>(isolate, string);
 }
 
 }  // namespace internal
diff --git a/src/uri.h b/src/uri.h
index e41e8a2..dfa057f 100644
--- a/src/uri.h
+++ b/src/uri.h
@@ -13,23 +13,39 @@
 
 class Uri : public AllStatic {
  public:
-  static Object* EncodeUri(Isolate* isolate, Handle<String> uri) {
+  // ES6 section 18.2.6.2 decodeURI (encodedURI)
+  static MaybeHandle<String> DecodeUri(Isolate* isolate, Handle<String> uri) {
+    return Decode(isolate, uri, true);
+  }
+
+  // ES6 section 18.2.6.3 decodeURIComponent (encodedURIComponent)
+  static MaybeHandle<String> DecodeUriComponent(Isolate* isolate,
+                                                Handle<String> component) {
+    return Decode(isolate, component, false);
+  }
+
+  // ES6 section 18.2.6.4 encodeURI (uri)
+  static MaybeHandle<String> EncodeUri(Isolate* isolate, Handle<String> uri) {
     return Encode(isolate, uri, true);
   }
 
-  static Object* EncodeUriComponent(Isolate* isolate,
-                                    Handle<String> component) {
+  // ES6 section 18.2.6.5 encodeURIComponenet (uriComponent)
+  static MaybeHandle<String> EncodeUriComponent(Isolate* isolate,
+                                                Handle<String> component) {
     return Encode(isolate, component, false);
   }
 
-  // DecodeUri
-  // DecodeUriComponent
-  // escape
-  // unescape
+  // ES6 section B.2.1.1 escape (string)
+  static MaybeHandle<String> Escape(Isolate* isolate, Handle<String> string);
+
+  // ES6 section B.2.1.2 unescape (string)
+  static MaybeHandle<String> Unescape(Isolate* isolate, Handle<String> string);
 
  private:
-  static Object* Encode(Isolate* isolate, Handle<String> uri, bool is_uri);
-  // decode
+  static MaybeHandle<String> Decode(Isolate* isolate, Handle<String> uri,
+                                    bool is_uri);
+  static MaybeHandle<String> Encode(Isolate* isolate, Handle<String> uri,
+                                    bool is_uri);
 };
 
 }  // namespace internal
diff --git a/src/utils.cc b/src/utils.cc
index c46028f..16b5b7c 100644
--- a/src/utils.cc
+++ b/src/utils.cc
@@ -430,11 +430,8 @@
 
 bool DoubleToBoolean(double d) {
   // NaN, +0, and -0 should return the false object
-#if V8_TARGET_LITTLE_ENDIAN
-  union IeeeDoubleLittleEndianArchType u;
-#else
-  union IeeeDoubleBigEndianArchType u;
-#endif
+  IeeeDoubleArchType u;
+
   u.d = d;
   if (u.bits.exp == 2047) {
     // Detect NaN for IEEE double precision floating point.
diff --git a/src/utils.h b/src/utils.h
index 9a60141..9b94a2f 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -1524,6 +1524,10 @@
 #endif  // V8_TARGET_ARCH_MIPS || V8_TARGET_ARCH_MIPS64
 }
 
+static inline double ReadFloatValue(const void* p) {
+  return ReadUnalignedValue<float>(p);
+}
+
 static inline double ReadDoubleValue(const void* p) {
   return ReadUnalignedValue<double>(p);
 }
diff --git a/src/v8.cc b/src/v8.cc
index 154cf62..d660b58 100644
--- a/src/v8.cc
+++ b/src/v8.cc
@@ -14,9 +14,9 @@
 #include "src/elements.h"
 #include "src/frames.h"
 #include "src/isolate.h"
+#include "src/libsampler/v8-sampler.h"
 #include "src/objects.h"
 #include "src/profiler/heap-profiler.h"
-#include "src/profiler/sampler.h"
 #include "src/runtime-profiler.h"
 #include "src/snapshot/natives.h"
 #include "src/snapshot/snapshot.h"
@@ -45,10 +45,9 @@
   Bootstrapper::TearDownExtensions();
   ElementsAccessor::TearDown();
   LOperand::TearDownCaches();
-  ExternalReference::TearDownMathExpData();
   RegisteredExtension::UnregisterAll();
   Isolate::GlobalTearDown();
-  Sampler::TearDown();
+  sampler::Sampler::TearDown();
   FlagList::ResetAllFlags();  // Frees memory held by string arguments.
 }
 
@@ -76,7 +75,7 @@
 
   Isolate::InitializeOncePerProcess();
 
-  Sampler::SetUp();
+  sampler::Sampler::SetUp();
   CpuFeatures::Probe(false);
   ElementsAccessor::InitializeOncePerProcess();
   LOperand::SetUpCaches();
diff --git a/src/v8.gyp b/src/v8.gyp
index ef0c562..84c361e 100644
--- a/src/v8.gyp
+++ b/src/v8.gyp
@@ -27,7 +27,6 @@
 
 {
   'variables': {
-    'icu_use_data_file_flag%': 0,
     'v8_code': 1,
     'v8_random_seed%': 314159265,
     'v8_vector_stores%': 0,
@@ -381,14 +380,14 @@
       'type': 'static_library',
       'dependencies': [
         'v8_libbase',
+        'v8_libsampler',
       ],
       'variables': {
         'optimize': 'max',
       },
       'include_dirs+': [
         '..',
-        # To be able to find base/trace_event/common/trace_event_common.h
-        '../..',
+        '<(DEPTH)',
       ],
       'sources': [  ### gcmole(all) ###
         '../include/v8-debug.h',
@@ -412,6 +411,7 @@
         'api-experimental.h',
         'api.cc',
         'api.h',
+        'api-arguments-inl.h',
         'api-arguments.cc',
         'api-arguments.h',
         'api-natives.cc',
@@ -469,6 +469,7 @@
         'char-predicates-inl.h',
         'char-predicates.h',
         'checks.h',
+        'code-events.h',
         'code-factory.cc',
         'code-factory.h',
         'code-stub-assembler.cc',
@@ -504,8 +505,8 @@
         '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/checkpoint-elimination.cc',
+        'compiler/checkpoint-elimination.h',
         'compiler/code-generator-impl.h',
         'compiler/code-generator.cc',
         'compiler/code-generator.h',
@@ -550,8 +551,6 @@
         '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',
@@ -625,6 +624,8 @@
         'compiler/node.h',
         'compiler/opcodes.cc',
         'compiler/opcodes.h',
+        'compiler/operation-typer.cc',
+        'compiler/operation-typer.h',
         'compiler/operator-properties.cc',
         'compiler/operator-properties.h',
         'compiler/operator.cc',
@@ -637,6 +638,8 @@
         'compiler/pipeline-statistics.h',
         'compiler/raw-machine-assembler.cc',
         'compiler/raw-machine-assembler.h',
+        'compiler/redundancy-elimination.cc',
+        'compiler/redundancy-elimination.h',
         'compiler/register-allocator.cc',
         'compiler/register-allocator.h',
         'compiler/register-allocator-verifier.cc',
@@ -659,6 +662,8 @@
         'compiler/source-position.h',
         'compiler/state-values-utils.cc',
         'compiler/state-values-utils.h',
+        'compiler/store-store-elimination.cc',
+        'compiler/store-store-elimination.h',
         'compiler/tail-call-optimization.cc',
         'compiler/tail-call-optimization.h',
         'compiler/type-hint-analyzer.cc',
@@ -778,6 +783,8 @@
         'dtoa.cc',
         'dtoa.h',
         'effects.h',
+        'eh-frame.cc',
+        'eh-frame.h',
         'elements-kind.cc',
         'elements-kind.h',
         'elements.cc',
@@ -828,8 +835,8 @@
         'handles-inl.h',
         'handles.cc',
         'handles.h',
-        'hashmap.h',
         'heap-symbols.h',
+        'heap/array-buffer-tracker-inl.h',
         'heap/array-buffer-tracker.cc',
         'heap/array-buffer-tracker.h',
         'heap/memory-reducer.cc',
@@ -897,14 +904,19 @@
         'interpreter/bytecode-array-iterator.h',
         'interpreter/bytecode-array-writer.cc',
         'interpreter/bytecode-array-writer.h',
+        'interpreter/bytecode-dead-code-optimizer.cc',
+        'interpreter/bytecode-dead-code-optimizer.h',
+        'interpreter/bytecode-label.h',
+        'interpreter/bytecode-generator.cc',
+        'interpreter/bytecode-generator.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-register-optimizer.cc',
+        'interpreter/bytecode-register-optimizer.h',
         'interpreter/bytecode-traits.h',
         'interpreter/constant-array-builder.cc',
         'interpreter/constant-array-builder.h',
@@ -923,7 +935,9 @@
         'isolate-inl.h',
         'isolate.cc',
         'isolate.h',
+        'json-parser.cc',
         'json-parser.h',
+        'json-stringifier.cc',
         'json-stringifier.h',
         'keys.h',
         'keys.cc',
@@ -996,11 +1010,11 @@
         'profiler/heap-snapshot-generator-inl.h',
         'profiler/heap-snapshot-generator.cc',
         'profiler/heap-snapshot-generator.h',
+        'profiler/profiler-listener.cc',
+        'profiler/profiler-listener.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',
@@ -1052,7 +1066,6 @@
         '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',
@@ -1067,7 +1080,6 @@
         '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',
@@ -1146,6 +1158,8 @@
         'version.h',
         'vm-state-inl.h',
         'vm-state.h',
+        'wasm/asm-types.cc',
+        'wasm/asm-types.h',
         'wasm/asm-wasm-builder.cc',
         'wasm/asm-wasm-builder.h',
         'wasm/ast-decoder.cc',
@@ -1158,6 +1172,8 @@
         'wasm/module-decoder.h',
         'wasm/switch-logic.h',
         'wasm/switch-logic.cc',
+        'wasm/wasm-debug.cc',
+        'wasm/wasm-debug.h',
         'wasm/wasm-external-refs.cc',
         'wasm/wasm-external-refs.h',
         'wasm/wasm-function-name-table.cc',
@@ -1167,6 +1183,8 @@
         'wasm/wasm-macro-gen.h',
         'wasm/wasm-module.cc',
         'wasm/wasm-module.h',
+        'wasm/wasm-interpreter.cc',
+        'wasm/wasm-interpreter.h',
         'wasm/wasm-opcodes.cc',
         'wasm/wasm-opcodes.h',
         'wasm/wasm-result.cc',
@@ -1175,8 +1193,6 @@
         'zone.h',
         'zone-allocator.h',
         'zone-containers.h',
-        'third_party/fdlibm/fdlibm.cc',
-        'third_party/fdlibm/fdlibm.h',
       ],
       'conditions': [
         ['want_separate_host_toolset==1', {
@@ -1666,10 +1682,15 @@
         'base/cpu.h',
         'base/division-by-constant.cc',
         'base/division-by-constant.h',
+        'base/file-utils.cc',
+        'base/file-utils.h',
         'base/flags.h',
         'base/format-macros.h',
         'base/functional.cc',
         'base/functional.h',
+        'base/hashmap.h',
+        'base/ieee754.cc',
+        'base/ieee754.h',
         'base/iterator.h',
         'base/lazy-instance.h',
         'base/logging.cc',
@@ -1936,6 +1957,36 @@
       },
     },
     {
+      'target_name': 'v8_libsampler',
+      'type': 'static_library',
+      'variables': {
+        'optimize': 'max',
+      },
+      'dependencies': [
+        'v8_libbase',
+      ],
+      'include_dirs+': [
+        '..',
+        '../include',
+      ],
+      'sources': [
+        'libsampler/v8-sampler.cc',
+        'libsampler/v8-sampler.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': [
@@ -2013,7 +2064,6 @@
           'js/symbol.js',
           'js/array.js',
           'js/string.js',
-          'js/uri.js',
           'js/math.js',
           'third_party/fdlibm/fdlibm.js',
           'js/regexp.js',
@@ -2025,7 +2075,6 @@
           'js/collection-iterator.js',
           'js/promise.js',
           'js/messages.js',
-          'js/json.js',
           'js/array-iterator.js',
           'js/string-iterator.js',
           'js/templates.js',
@@ -2039,11 +2088,8 @@
           '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'
diff --git a/src/v8memory.h b/src/v8memory.h
index b1ae939..d34bce7 100644
--- a/src/v8memory.h
+++ b/src/v8memory.h
@@ -64,6 +64,13 @@
   static Handle<Object>& Object_Handle_at(Address addr)  {
     return *reinterpret_cast<Handle<Object>*>(addr);
   }
+
+  static bool IsAddressInRange(Address base, Address address, uint32_t size) {
+    uintptr_t numeric_base = reinterpret_cast<uintptr_t>(base);
+    uintptr_t numeric_address = reinterpret_cast<uintptr_t>(address);
+    return numeric_base <= numeric_address &&
+           numeric_address < numeric_base + size;
+  }
 };
 
 }  // namespace internal
diff --git a/src/wasm/asm-types.cc b/src/wasm/asm-types.cc
new file mode 100644
index 0000000..e5588ae
--- /dev/null
+++ b/src/wasm/asm-types.cc
@@ -0,0 +1,319 @@
+// 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/wasm/asm-types.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+AsmCallableType* AsmType::AsCallableType() {
+  if (AsValueType() != nullptr) {
+    return nullptr;
+  }
+
+  DCHECK(this->AsFunctionType() != nullptr ||
+         this->AsOverloadedFunctionType() != nullptr ||
+         this->AsFFIType() != nullptr ||
+         this->AsFunctionTableType() != nullptr);
+  return reinterpret_cast<AsmCallableType*>(this);
+}
+
+std::string AsmType::Name() {
+  AsmValueType* avt = this->AsValueType();
+  if (avt != nullptr) {
+    switch (avt->Bitset()) {
+#define RETURN_TYPE_NAME(CamelName, string_name, number, parent_types) \
+  case AsmValueType::kAsm##CamelName:                                  \
+    return string_name;
+      FOR_EACH_ASM_VALUE_TYPE_LIST(RETURN_TYPE_NAME)
+#undef RETURN_TYPE_NAME
+      default:
+        UNREACHABLE();
+    }
+  }
+
+  return this->AsCallableType()->Name();
+}
+
+bool AsmType::IsExactly(AsmType* that) {
+  // TODO(jpp): maybe this can become this == that.
+  AsmValueType* avt = this->AsValueType();
+  if (avt != nullptr) {
+    AsmValueType* tavt = that->AsValueType();
+    if (tavt == nullptr) {
+      return false;
+    }
+    return avt->Bitset() == tavt->Bitset();
+  }
+
+  // TODO(jpp): is it useful to allow non-value types to be tested with
+  // IsExactly?
+  return that == this;
+}
+
+bool AsmType::IsA(AsmType* that) {
+  // IsA is used for querying inheritance relationships. Therefore it is only
+  // meaningful for basic types.
+  AsmValueType* tavt = that->AsValueType();
+  if (tavt != nullptr) {
+    AsmValueType* avt = this->AsValueType();
+    if (avt == nullptr) {
+      return false;
+    }
+    return (avt->Bitset() & tavt->Bitset()) == tavt->Bitset();
+  }
+
+  // TODO(jpp): is it useful to allow non-value types to be tested with IsA?
+  return that == this;
+}
+
+int32_t AsmType::ElementSizeInBytes() {
+  auto* value = AsValueType();
+  if (value == nullptr) {
+    return AsmType::kNotHeapType;
+  }
+  switch (value->Bitset()) {
+    case AsmValueType::kAsmInt8Array:
+    case AsmValueType::kAsmUint8Array:
+      return 1;
+    case AsmValueType::kAsmInt16Array:
+    case AsmValueType::kAsmUint16Array:
+      return 2;
+    case AsmValueType::kAsmInt32Array:
+    case AsmValueType::kAsmUint32Array:
+    case AsmValueType::kAsmFloat32Array:
+      return 4;
+    case AsmValueType::kAsmFloat64Array:
+      return 8;
+    default:
+      return AsmType::kNotHeapType;
+  }
+}
+
+AsmType* AsmType::LoadType() {
+  auto* value = AsValueType();
+  if (value == nullptr) {
+    return AsmType::None();
+  }
+  switch (value->Bitset()) {
+    case AsmValueType::kAsmInt8Array:
+    case AsmValueType::kAsmUint8Array:
+    case AsmValueType::kAsmInt16Array:
+    case AsmValueType::kAsmUint16Array:
+    case AsmValueType::kAsmInt32Array:
+    case AsmValueType::kAsmUint32Array:
+      return AsmType::Intish();
+    case AsmValueType::kAsmFloat32Array:
+      return AsmType::FloatQ();
+    case AsmValueType::kAsmFloat64Array:
+      return AsmType::DoubleQ();
+    default:
+      return AsmType::None();
+  }
+}
+
+AsmType* AsmType::StoreType() {
+  auto* value = AsValueType();
+  if (value == nullptr) {
+    return AsmType::None();
+  }
+  switch (value->Bitset()) {
+    case AsmValueType::kAsmInt8Array:
+    case AsmValueType::kAsmUint8Array:
+    case AsmValueType::kAsmInt16Array:
+    case AsmValueType::kAsmUint16Array:
+    case AsmValueType::kAsmInt32Array:
+    case AsmValueType::kAsmUint32Array:
+      return AsmType::Intish();
+    case AsmValueType::kAsmFloat32Array:
+      return AsmType::FloatishDoubleQ();
+    case AsmValueType::kAsmFloat64Array:
+      return AsmType::FloatQDoubleQ();
+    default:
+      return AsmType::None();
+  }
+}
+
+std::string AsmFunctionType::Name() {
+  if (IsFroundType()) {
+    return "fround";
+  }
+
+  std::string ret;
+  ret += "(";
+  for (size_t ii = 0; ii < args_.size(); ++ii) {
+    ret += args_[ii]->Name();
+    if (ii != args_.size() - 1) {
+      ret += ", ";
+    }
+  }
+  if (IsMinMaxType()) {
+    DCHECK_EQ(args_.size(), 2);
+    ret += "...";
+  }
+  ret += ") -> ";
+  ret += return_type_->Name();
+  return ret;
+}
+
+namespace {
+class AsmFroundType final : public AsmFunctionType {
+ public:
+  bool IsFroundType() const override { return true; }
+
+ private:
+  friend AsmType;
+
+  explicit AsmFroundType(Zone* zone)
+      : AsmFunctionType(zone, AsmType::Float()) {}
+
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override;
+};
+}  // namespace
+
+AsmType* AsmType::FroundType(Zone* zone) {
+  auto* Fround = new (zone) AsmFroundType(zone);
+  return reinterpret_cast<AsmType*>(Fround);
+}
+
+AsmType* AsmFroundType::ValidateCall(AsmType* return_type,
+                                     const ZoneVector<AsmType*>& args) {
+  if (args.size() != 1) {
+    return AsmType::None();
+  }
+
+  auto* arg = args[0];
+  if (!arg->IsA(AsmType::Floatish()) && !arg->IsA(AsmType::DoubleQ()) &&
+      !arg->IsA(AsmType::Signed()) && !arg->IsA(AsmType::Unsigned())) {
+    return AsmType::None();
+  }
+
+  return AsmType::Float();
+}
+
+namespace {
+class AsmMinMaxType final : public AsmFunctionType {
+ public:
+  bool IsMinMaxType() const override { return true; }
+
+ private:
+  friend AsmType;
+
+  AsmMinMaxType(Zone* zone, AsmType* dest, AsmType* src)
+      : AsmFunctionType(zone, dest) {
+    AddArgument(src);
+    AddArgument(src);
+  }
+
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override {
+    if (!ReturnType()->IsExactly(return_type)) {
+      return AsmType::None();
+    }
+
+    if (args.size() < 2) {
+      return AsmType::None();
+    }
+
+    for (size_t ii = 0; ii < Arguments().size(); ++ii) {
+      if (!Arguments()[0]->IsExactly(args[ii])) {
+        return AsmType::None();
+      }
+    }
+
+    return ReturnType();
+  }
+};
+}  // namespace
+
+AsmType* AsmType::MinMaxType(Zone* zone, AsmType* dest, AsmType* src) {
+  DCHECK(dest->AsValueType() != nullptr);
+  DCHECK(src->AsValueType() != nullptr);
+  auto* MinMax = new (zone) AsmMinMaxType(zone, dest, src);
+  return reinterpret_cast<AsmType*>(MinMax);
+}
+
+AsmType* AsmFFIType::ValidateCall(AsmType* return_type,
+                                  const ZoneVector<AsmType*>& args) {
+  for (size_t ii = 0; ii < args.size(); ++ii) {
+    if (!args[ii]->IsA(AsmType::Extern())) {
+      return AsmType::None();
+    }
+  }
+
+  return return_type;
+}
+
+AsmType* AsmFunctionType::ValidateCall(AsmType* return_type,
+                                       const ZoneVector<AsmType*>& args) {
+  if (!return_type_->IsExactly(return_type)) {
+    return AsmType::None();
+  }
+
+  if (args_.size() != args.size()) {
+    return AsmType::None();
+  }
+
+  for (size_t ii = 0; ii < args_.size(); ++ii) {
+    if (!args_[ii]->IsExactly(args[ii])) {
+      return AsmType::None();
+    }
+  }
+
+  return return_type_;
+}
+
+std::string AsmOverloadedFunctionType::Name() {
+  std::string ret;
+
+  for (size_t ii = 0; ii < overloads_.size(); ++ii) {
+    if (ii != 0) {
+      ret += " /\\ ";
+    }
+    ret += overloads_[ii]->Name();
+  }
+
+  return ret;
+}
+
+AsmType* AsmOverloadedFunctionType::ValidateCall(
+    AsmType* return_type, const ZoneVector<AsmType*>& args) {
+  for (size_t ii = 0; ii < overloads_.size(); ++ii) {
+    auto* validated_type =
+        overloads_[ii]->AsCallableType()->ValidateCall(return_type, args);
+    if (validated_type != AsmType::None()) {
+      return validated_type;
+    }
+  }
+
+  return AsmType::None();
+}
+
+void AsmOverloadedFunctionType::AddOverload(AsmType* overload) {
+  DCHECK(overload->AsFunctionType() != nullptr);
+  overloads_.push_back(overload);
+}
+
+AsmFunctionTableType::AsmFunctionTableType(size_t length, AsmType* signature)
+    : length_(length), signature_(signature) {
+  DCHECK(signature_ != nullptr);
+  DCHECK(signature_->AsFunctionType() != nullptr);
+}
+
+std::string AsmFunctionTableType::Name() {
+  return signature_->Name() + "[" + std::to_string(length_) + "]";
+}
+
+AsmType* AsmFunctionTableType::ValidateCall(AsmType* return_type,
+                                            const ZoneVector<AsmType*>& args) {
+  return signature_->AsCallableType()->ValidateCall(return_type, args);
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/src/wasm/asm-types.h b/src/wasm/asm-types.h
new file mode 100644
index 0000000..a102fc8
--- /dev/null
+++ b/src/wasm/asm-types.h
@@ -0,0 +1,344 @@
+// 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 SRC_WASM_ASM_TYPES_H_
+#define SRC_WASM_ASM_TYPES_H_
+
+#include <string>
+
+#include "src/base/macros.h"
+#include "src/zone-containers.h"
+#include "src/zone.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+class AsmType;
+class AsmFFIType;
+class AsmFunctionType;
+class AsmOverloadedFunctionType;
+class AsmFunctionTableType;
+
+// List of V(CamelName, string_name, number, parent_types)
+#define FOR_EACH_ASM_VALUE_TYPE_LIST(V)                                       \
+  /* These tags are not types that are expressable in the asm source. They */ \
+  /* are used to express semantic information about the types they tag.    */ \
+  V(Heap, "[]", 1, 0)                                                         \
+  /*The following are actual types that appear in the asm source. */          \
+  V(Void, "void", 2, 0)                                                       \
+  V(Extern, "extern", 3, 0)                                                   \
+  V(DoubleQ, "double?", 4, 0)                                                 \
+  V(Double, "double", 5, kAsmDoubleQ | kAsmExtern)                            \
+  V(Intish, "intish", 6, 0)                                                   \
+  V(Int, "int", 7, kAsmIntish)                                                \
+  V(Signed, "signed", 8, kAsmInt | kAsmExtern)                                \
+  V(Unsigned, "unsigned", 9, kAsmInt)                                         \
+  V(FixNum, "fixnum", 10, kAsmSigned | kAsmUnsigned)                          \
+  V(Floatish, "floatish", 11, 0)                                              \
+  V(FloatQ, "float?", 12, kAsmFloatish)                                       \
+  V(Float, "float", 13, kAsmFloatQ)                                           \
+  /* Types used for expressing the Heap accesses. */                          \
+  V(Uint8Array, "Uint8Array", 14, kAsmHeap)                                   \
+  V(Int8Array, "Int8Array", 15, kAsmHeap)                                     \
+  V(Uint16Array, "Uint16Array", 16, kAsmHeap)                                 \
+  V(Int16Array, "Int16Array", 17, kAsmHeap)                                   \
+  V(Uint32Array, "Uint32Array", 18, kAsmHeap)                                 \
+  V(Int32Array, "Int32Array", 19, kAsmHeap)                                   \
+  V(Float32Array, "Float32Array", 20, kAsmHeap)                               \
+  V(Float64Array, "Float64Array", 21, kAsmHeap)                               \
+  /* Pseudo-types used in representing heap access for fp types.*/            \
+  V(FloatishDoubleQ, "floatish|double?", 22, kAsmFloatish | kAsmDoubleQ)      \
+  V(FloatQDoubleQ, "float?|double?", 23, kAsmFloatQ | kAsmDoubleQ)            \
+  /* None is used to represent errors in the type checker. */                 \
+  V(None, "<none>", 31, 0)
+
+// List of V(CamelName)
+#define FOR_EACH_ASM_CALLABLE_TYPE_LIST(V) \
+  V(FunctionType)                          \
+  V(FFIType)                               \
+  V(OverloadedFunctionType)                \
+  V(FunctionTableType)
+
+class AsmValueType {
+ public:
+  typedef uint32_t bitset_t;
+
+  enum : uint32_t {
+#define DEFINE_TAG(CamelName, string_name, number, parent_types) \
+  kAsm##CamelName = ((1u << (number)) | (parent_types)),
+    FOR_EACH_ASM_VALUE_TYPE_LIST(DEFINE_TAG)
+#undef DEFINE_TAG
+        kAsmUnknown = 0,
+    kAsmValueTypeTag = 1u
+  };
+
+ private:
+  friend class AsmType;
+
+  static AsmValueType* AsValueType(AsmType* type) {
+    if ((reinterpret_cast<uintptr_t>(type) & kAsmValueTypeTag) ==
+        kAsmValueTypeTag) {
+      return reinterpret_cast<AsmValueType*>(type);
+    }
+    return nullptr;
+  }
+
+  bitset_t Bitset() const {
+    DCHECK((reinterpret_cast<uintptr_t>(this) & kAsmValueTypeTag) ==
+           kAsmValueTypeTag);
+    return static_cast<bitset_t>(reinterpret_cast<uintptr_t>(this) &
+                                 ~kAsmValueTypeTag);
+  }
+
+  static AsmType* New(bitset_t bits) {
+    DCHECK_EQ((bits & kAsmValueTypeTag), 0);
+    return reinterpret_cast<AsmType*>(
+        static_cast<uintptr_t>(bits | kAsmValueTypeTag));
+  }
+
+  // AsmValueTypes can't be created except through AsmValueType::New.
+  DISALLOW_IMPLICIT_CONSTRUCTORS(AsmValueType);
+};
+
+class AsmCallableType : public ZoneObject {
+ public:
+  virtual std::string Name() = 0;
+  virtual AsmType* ValidateCall(AsmType* return_type,
+                                const ZoneVector<AsmType*>& args) = 0;
+
+#define DECLARE_CAST(CamelName) \
+  virtual Asm##CamelName* As##CamelName() { return nullptr; }
+  FOR_EACH_ASM_CALLABLE_TYPE_LIST(DECLARE_CAST)
+#undef DECLARE_CAST
+
+ protected:
+  AsmCallableType() = default;
+  virtual ~AsmCallableType() = default;
+
+ private:
+  DISALLOW_COPY_AND_ASSIGN(AsmCallableType);
+};
+
+class AsmFunctionType : public AsmCallableType {
+ public:
+  AsmFunctionType* AsFunctionType() final { return this; }
+
+  void AddArgument(AsmType* type) { args_.push_back(type); }
+  const ZoneVector<AsmType*> Arguments() const { return args_; }
+  AsmType* ReturnType() const { return return_type_; }
+
+  virtual bool IsMinMaxType() const { return false; }
+  virtual bool IsFroundType() const { return false; }
+
+ protected:
+  AsmFunctionType(Zone* zone, AsmType* return_type)
+      : return_type_(return_type), args_(zone) {}
+
+ private:
+  friend AsmType;
+
+  std::string Name() override;
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override;
+
+  AsmType* return_type_;
+  ZoneVector<AsmType*> args_;
+
+  DISALLOW_COPY_AND_ASSIGN(AsmFunctionType);
+};
+
+class AsmOverloadedFunctionType final : public AsmCallableType {
+ public:
+  AsmOverloadedFunctionType* AsOverloadedFunctionType() override {
+    return this;
+  }
+
+  void AddOverload(AsmType* overload);
+
+ private:
+  friend AsmType;
+
+  explicit AsmOverloadedFunctionType(Zone* zone) : overloads_(zone) {}
+
+  std::string Name() override;
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override;
+
+  ZoneVector<AsmType*> overloads_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(AsmOverloadedFunctionType);
+};
+
+class AsmFFIType final : public AsmCallableType {
+ public:
+  AsmFFIType* AsFFIType() override { return this; }
+
+  std::string Name() override { return "Function"; }
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override;
+
+ private:
+  friend AsmType;
+
+  AsmFFIType() = default;
+
+  DISALLOW_COPY_AND_ASSIGN(AsmFFIType);
+};
+
+class AsmFunctionTableType : public AsmCallableType {
+ public:
+  AsmFunctionTableType* AsFunctionTableType() override { return this; }
+
+  std::string Name() override;
+
+  AsmType* ValidateCall(AsmType* return_type,
+                        const ZoneVector<AsmType*>& args) override;
+
+  size_t length() const { return length_; }
+
+ private:
+  friend class AsmType;
+
+  AsmFunctionTableType(size_t length, AsmType* signature);
+
+  size_t length_;
+  AsmType* signature_;
+
+  DISALLOW_IMPLICIT_CONSTRUCTORS(AsmFunctionTableType);
+};
+
+class AsmType {
+ public:
+#define DEFINE_CONSTRUCTOR(CamelName, string_name, number, parent_types) \
+  static AsmType* CamelName() {                                          \
+    return AsmValueType::New(AsmValueType::kAsm##CamelName);             \
+  }
+  FOR_EACH_ASM_VALUE_TYPE_LIST(DEFINE_CONSTRUCTOR)
+#undef DEFINE_CONSTRUCTOR
+
+#define DEFINE_CAST(CamelCase)                                        \
+  Asm##CamelCase* As##CamelCase() {                                   \
+    if (AsValueType() != nullptr) {                                   \
+      return nullptr;                                                 \
+    }                                                                 \
+    return reinterpret_cast<AsmCallableType*>(this)->As##CamelCase(); \
+  }
+  FOR_EACH_ASM_CALLABLE_TYPE_LIST(DEFINE_CAST)
+#undef DEFINE_CAST
+  AsmValueType* AsValueType() { return AsmValueType::AsValueType(this); }
+  AsmCallableType* AsCallableType();
+
+  // A function returning ret. Callers still need to invoke AddArgument with the
+  // returned type to fully create this type.
+  static AsmType* Function(Zone* zone, AsmType* ret) {
+    AsmFunctionType* f = new (zone) AsmFunctionType(zone, ret);
+    return reinterpret_cast<AsmType*>(f);
+  }
+
+  // Overloaded function types. Not creatable by asm source, but useful to
+  // represent the overloaded stdlib functions.
+  static AsmType* OverloadedFunction(Zone* zone) {
+    auto* f = new (zone) AsmOverloadedFunctionType(zone);
+    return reinterpret_cast<AsmType*>(f);
+  }
+
+  // The type for fround(src).
+  static AsmType* FroundType(Zone* zone);
+
+  // The (variadic) type for min and max.
+  static AsmType* MinMaxType(Zone* zone, AsmType* dest, AsmType* src);
+
+  // The type for foreign functions.
+  static AsmType* FFIType(Zone* zone) {
+    auto* f = new (zone) AsmFFIType();
+    return reinterpret_cast<AsmType*>(f);
+  }
+
+  // The type for function tables.
+  static AsmType* FunctionTableType(Zone* zone, size_t length,
+                                    AsmType* signature) {
+    auto* f = new (zone) AsmFunctionTableType(length, signature);
+    return reinterpret_cast<AsmType*>(f);
+  }
+
+  std::string Name();
+  // IsExactly returns true if this is the exact same type as that. For
+  // non-value types (e.g., callables), this returns this == that.
+  bool IsExactly(AsmType* that);
+  // IsA is used to query whether this is an instance of that (i.e., if this is
+  // a type derived from that.) For non-value types (e.g., callables), this
+  // returns this == that.
+  bool IsA(AsmType* that);
+
+  // Types allowed in return statements. void is the type for returns without
+  // an expression.
+  bool IsReturnType() {
+    return this == AsmType::Void() || this == AsmType::Double() ||
+           this == AsmType::Signed() || this == AsmType::Float();
+  }
+
+  // Converts this to the corresponding valid argument type.
+  AsmType* ToReturnType() {
+    if (this->IsA(AsmType::Signed())) {
+      return AsmType::Signed();
+    }
+    if (this->IsA(AsmType::Double())) {
+      return AsmType::Double();
+    }
+    if (this->IsA(AsmType::Float())) {
+      return AsmType::Float();
+    }
+    if (this->IsA(AsmType::Void())) {
+      return AsmType::Void();
+    }
+    return AsmType::None();
+  }
+
+  // Types allowed to be parameters in asm functions.
+  bool IsParameterType() {
+    return this == AsmType::Double() || this == AsmType::Int() ||
+           this == AsmType::Float();
+  }
+
+  // Converts this to the corresponding valid argument type.
+  AsmType* ToParameterType() {
+    if (this->IsA(AsmType::Int())) {
+      return AsmType::Int();
+    }
+    if (this->IsA(AsmType::Double())) {
+      return AsmType::Double();
+    }
+    if (this->IsA(AsmType::Float())) {
+      return AsmType::Float();
+    }
+    return AsmType::None();
+  }
+
+  // Types allowed to be compared using the comparison operators.
+  bool IsComparableType() {
+    return this == AsmType::Double() || this == AsmType::Signed() ||
+           this == AsmType::Unsigned() || this == AsmType::Float();
+  }
+
+  // The following methods are meant to be used for inspecting the traits of
+  // element types for the heap view types.
+  enum : int32_t { kNotHeapType = -1 };
+
+  // Returns the element size if this is a heap type. Otherwise returns
+  // kNotHeapType.
+  int32_t ElementSizeInBytes();
+  // Returns the load type if this is a heap type. AsmType::None is returned if
+  // this is not a heap type.
+  AsmType* LoadType();
+  // Returns the store type if this is a heap type. AsmType::None is returned if
+  // this is not a heap type.
+  AsmType* StoreType();
+};
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif  // SRC_WASM_ASM_TYPES_H_
diff --git a/src/wasm/asm-wasm-builder.cc b/src/wasm/asm-wasm-builder.cc
index 325058c..958fd0c 100644
--- a/src/wasm/asm-wasm-builder.cc
+++ b/src/wasm/asm-wasm-builder.cc
@@ -33,16 +33,23 @@
 
 enum AsmScope { kModuleScope, kInitScope, kFuncScope, kExportScope };
 
+struct ForeignVariable {
+  Handle<Name> name;
+  Variable* var;
+  LocalType type;
+};
+
 class AsmWasmBuilderImpl : public AstVisitor {
  public:
   AsmWasmBuilderImpl(Isolate* isolate, Zone* zone, FunctionLiteral* literal,
-                     Handle<Object> foreign, AsmTyper* typer)
-      : local_variables_(HashMap::PointersMatch,
+                     AsmTyper* typer)
+      : local_variables_(base::HashMap::PointersMatch,
                          ZoneHashMap::kDefaultHashMapCapacity,
                          ZoneAllocationPolicy(zone)),
-        functions_(HashMap::PointersMatch, ZoneHashMap::kDefaultHashMapCapacity,
+        functions_(base::HashMap::PointersMatch,
+                   ZoneHashMap::kDefaultHashMapCapacity,
                    ZoneAllocationPolicy(zone)),
-        global_variables_(HashMap::PointersMatch,
+        global_variables_(base::HashMap::PointersMatch,
                           ZoneHashMap::kDefaultHashMapCapacity,
                           ZoneAllocationPolicy(zone)),
         scope_(kModuleScope),
@@ -51,13 +58,14 @@
         literal_(literal),
         isolate_(isolate),
         zone_(zone),
-        foreign_(foreign),
         typer_(typer),
         cache_(TypeCache::Get()),
         breakable_blocks_(zone),
+        foreign_variables_(zone),
         init_function_index_(0),
+        foreign_init_function_index_(0),
         next_table_index_(0),
-        function_tables_(HashMap::PointersMatch,
+        function_tables_(base::HashMap::PointersMatch,
                          ZoneHashMap::kDefaultHashMapCapacity,
                          ZoneAllocationPolicy(zone)),
         imported_function_table_(this),
@@ -74,14 +82,48 @@
     current_function_builder_ = nullptr;
   }
 
-  void Compile() {
-    InitializeInitFunction();
-    RECURSE(VisitFunctionLiteral(literal_));
+  void BuildForeignInitFunction() {
+    foreign_init_function_index_ = builder_->AddFunction();
+    FunctionSig::Builder b(zone(), 0, foreign_variables_.size());
+    for (auto i = foreign_variables_.begin(); i != foreign_variables_.end();
+         ++i) {
+      b.AddParam(i->type);
+    }
+    current_function_builder_ =
+        builder_->FunctionAt(foreign_init_function_index_);
+    current_function_builder_->SetExported();
+    std::string raw_name = "__foreign_init__";
+    current_function_builder_->SetName(raw_name.data(),
+                                       static_cast<int>(raw_name.size()));
+    current_function_builder_->SetSignature(b.Build());
+    for (size_t pos = 0; pos < foreign_variables_.size(); ++pos) {
+      current_function_builder_->EmitGetLocal(static_cast<uint32_t>(pos));
+      ForeignVariable* fv = &foreign_variables_[pos];
+      uint32_t index = LookupOrInsertGlobal(fv->var, fv->type);
+      current_function_builder_->EmitWithVarInt(kExprStoreGlobal, index);
+    }
+    current_function_builder_ = nullptr;
   }
 
-  void VisitVariableDeclaration(VariableDeclaration* decl) {}
+  i::Handle<i::FixedArray> GetForeignArgs() {
+    i::Handle<FixedArray> ret = isolate_->factory()->NewFixedArray(
+        static_cast<int>(foreign_variables_.size()));
+    for (size_t i = 0; i < foreign_variables_.size(); ++i) {
+      ForeignVariable* fv = &foreign_variables_[i];
+      ret->set(static_cast<int>(i), *fv->name);
+    }
+    return ret;
+  }
 
-  void VisitFunctionDeclaration(FunctionDeclaration* decl) {
+  void Build() {
+    InitializeInitFunction();
+    RECURSE(VisitFunctionLiteral(literal_));
+    BuildForeignInitFunction();
+  }
+
+  void VisitVariableDeclaration(VariableDeclaration* decl) override {}
+
+  void VisitFunctionDeclaration(FunctionDeclaration* decl) override {
     DCHECK_EQ(kModuleScope, scope_);
     DCHECK_NULL(current_function_builder_);
     uint32_t index = LookupOrInsertFunction(decl->proxy()->var());
@@ -93,11 +135,11 @@
     local_variables_.Clear();
   }
 
-  void VisitImportDeclaration(ImportDeclaration* decl) {}
+  void VisitImportDeclaration(ImportDeclaration* decl) override {}
 
-  void VisitExportDeclaration(ExportDeclaration* decl) {}
+  void VisitExportDeclaration(ExportDeclaration* decl) override {}
 
-  void VisitStatements(ZoneList<Statement*>* stmts) {
+  void VisitStatements(ZoneList<Statement*>* stmts) override {
     for (int i = 0; i < stmts->length(); ++i) {
       Statement* stmt = stmts->at(i);
       ExpressionStatement* e = stmt->AsExpressionStatement();
@@ -109,7 +151,7 @@
     }
   }
 
-  void VisitBlock(Block* stmt) {
+  void VisitBlock(Block* stmt) override {
     if (stmt->statements()->length() == 1) {
       ExpressionStatement* expr =
           stmt->statements()->at(0)->AsExpressionStatement();
@@ -146,15 +188,17 @@
     }
   };
 
-  void VisitExpressionStatement(ExpressionStatement* stmt) {
+  void VisitExpressionStatement(ExpressionStatement* stmt) override {
     RECURSE(Visit(stmt->expression()));
   }
 
-  void VisitEmptyStatement(EmptyStatement* stmt) {}
+  void VisitEmptyStatement(EmptyStatement* stmt) override {}
 
-  void VisitEmptyParentheses(EmptyParentheses* paren) { UNREACHABLE(); }
+  void VisitEmptyParentheses(EmptyParentheses* paren) override {
+    UNREACHABLE();
+  }
 
-  void VisitIfStatement(IfStatement* stmt) {
+  void VisitIfStatement(IfStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     RECURSE(Visit(stmt->condition()));
     current_function_builder_->Emit(kExprIf);
@@ -171,7 +215,7 @@
     breakable_blocks_.pop_back();
   }
 
-  void VisitContinueStatement(ContinueStatement* stmt) {
+  void VisitContinueStatement(ContinueStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     DCHECK_NOT_NULL(stmt->target());
     int i = static_cast<int>(breakable_blocks_.size()) - 1;
@@ -192,7 +236,7 @@
     current_function_builder_->EmitVarInt(block_distance);
   }
 
-  void VisitBreakStatement(BreakStatement* stmt) {
+  void VisitBreakStatement(BreakStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     DCHECK_NOT_NULL(stmt->target());
     int i = static_cast<int>(breakable_blocks_.size()) - 1;
@@ -215,7 +259,7 @@
     current_function_builder_->EmitVarInt(block_distance);
   }
 
-  void VisitReturnStatement(ReturnStatement* stmt) {
+  void VisitReturnStatement(ReturnStatement* stmt) override {
     if (scope_ == kModuleScope) {
       scope_ = kExportScope;
       RECURSE(Visit(stmt->expression()));
@@ -230,7 +274,7 @@
     }
   }
 
-  void VisitWithStatement(WithStatement* stmt) { UNREACHABLE(); }
+  void VisitWithStatement(WithStatement* stmt) override { UNREACHABLE(); }
 
   void HandleCase(CaseNode* node,
                   const ZoneMap<int, unsigned int>& case_to_block,
@@ -298,7 +342,7 @@
     }
   }
 
-  void VisitSwitchStatement(SwitchStatement* stmt) {
+  void VisitSwitchStatement(SwitchStatement* stmt) override {
     VariableProxy* tag = stmt->tag()->AsVariableProxy();
     DCHECK_NOT_NULL(tag);
     ZoneList<CaseClause*>* clauses = stmt->cases();
@@ -341,7 +385,7 @@
         current_function_builder_->EmitVarInt(default_block);
       }
     }
-    for (int i = 0; i < case_count; i++) {
+    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);
@@ -350,9 +394,9 @@
     }
   }
 
-  void VisitCaseClause(CaseClause* clause) { UNREACHABLE(); }
+  void VisitCaseClause(CaseClause* clause) override { UNREACHABLE(); }
 
-  void VisitDoWhileStatement(DoWhileStatement* stmt) {
+  void VisitDoWhileStatement(DoWhileStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
     RECURSE(Visit(stmt->body()));
@@ -362,7 +406,7 @@
     current_function_builder_->Emit(kExprEnd);
   }
 
-  void VisitWhileStatement(WhileStatement* stmt) {
+  void VisitWhileStatement(WhileStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     BlockVisitor visitor(this, stmt->AsBreakableStatement(), kExprLoop, true);
     RECURSE(Visit(stmt->cond()));
@@ -374,7 +418,7 @@
     breakable_blocks_.pop_back();
   }
 
-  void VisitForStatement(ForStatement* stmt) {
+  void VisitForStatement(ForStatement* stmt) override {
     DCHECK_EQ(kFuncScope, scope_);
     if (stmt->init() != nullptr) {
       RECURSE(Visit(stmt->init()));
@@ -398,17 +442,23 @@
     current_function_builder_->EmitWithU8U8(kExprBr, ARITY_0, 0);
   }
 
-  void VisitForInStatement(ForInStatement* stmt) { UNREACHABLE(); }
+  void VisitForInStatement(ForInStatement* stmt) override { UNREACHABLE(); }
 
-  void VisitForOfStatement(ForOfStatement* stmt) { UNREACHABLE(); }
+  void VisitForOfStatement(ForOfStatement* stmt) override { UNREACHABLE(); }
 
-  void VisitTryCatchStatement(TryCatchStatement* stmt) { UNREACHABLE(); }
+  void VisitTryCatchStatement(TryCatchStatement* stmt) override {
+    UNREACHABLE();
+  }
 
-  void VisitTryFinallyStatement(TryFinallyStatement* stmt) { UNREACHABLE(); }
+  void VisitTryFinallyStatement(TryFinallyStatement* stmt) override {
+    UNREACHABLE();
+  }
 
-  void VisitDebuggerStatement(DebuggerStatement* stmt) { UNREACHABLE(); }
+  void VisitDebuggerStatement(DebuggerStatement* stmt) override {
+    UNREACHABLE();
+  }
 
-  void VisitFunctionLiteral(FunctionLiteral* expr) {
+  void VisitFunctionLiteral(FunctionLiteral* expr) override {
     Scope* scope = expr->scope();
     if (scope_ == kFuncScope) {
       if (bounds_->get(expr).lower->IsFunction()) {
@@ -418,7 +468,7 @@
         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++) {
+        for (int i = 0; i < expr->parameter_count(); ++i) {
           LocalType type = TypeFrom(func_type->Parameter(i));
           DCHECK_NE(kAstStmt, type);
           b.AddParam(type);
@@ -433,11 +483,11 @@
     RECURSE(VisitDeclarations(scope->declarations()));
   }
 
-  void VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) {
+  void VisitNativeFunctionLiteral(NativeFunctionLiteral* expr) override {
     UNREACHABLE();
   }
 
-  void VisitConditional(Conditional* expr) {
+  void VisitConditional(Conditional* expr) override {
     DCHECK_EQ(kFuncScope, scope_);
     RECURSE(Visit(expr->condition()));
     // WASM ifs come with implicit blocks for both arms.
@@ -502,7 +552,7 @@
     return true;
   }
 
-  void VisitVariableProxy(VariableProxy* expr) {
+  void VisitVariableProxy(VariableProxy* expr) override {
     if (scope_ == kFuncScope || scope_ == kInitScope) {
       Variable* var = expr->var();
       if (VisitStdlibConstant(var)) {
@@ -520,7 +570,7 @@
     }
   }
 
-  void VisitLiteral(Literal* expr) {
+  void VisitLiteral(Literal* expr) override {
     Handle<Object> value = expr->value();
     if (!value->IsNumber() || (scope_ != kFuncScope && scope_ != kInitScope)) {
       return;
@@ -550,9 +600,9 @@
     }
   }
 
-  void VisitRegExpLiteral(RegExpLiteral* expr) { UNREACHABLE(); }
+  void VisitRegExpLiteral(RegExpLiteral* expr) override { UNREACHABLE(); }
 
-  void VisitObjectLiteral(ObjectLiteral* expr) {
+  void VisitObjectLiteral(ObjectLiteral* expr) override {
     ZoneList<ObjectLiteralProperty*>* props = expr->properties();
     for (int i = 0; i < props->length(); ++i) {
       ObjectLiteralProperty* prop = props->at(i);
@@ -566,7 +616,7 @@
       const AstRawString* raw_name = name->AsRawPropertyName();
       if (var->is_function()) {
         uint32_t index = LookupOrInsertFunction(var);
-        builder_->FunctionAt(index)->Exported(1);
+        builder_->FunctionAt(index)->SetExported();
         builder_->FunctionAt(index)->SetName(
             reinterpret_cast<const char*>(raw_name->raw_data()),
             raw_name->length());
@@ -574,7 +624,7 @@
     }
   }
 
-  void VisitArrayLiteral(ArrayLiteral* expr) { UNREACHABLE(); }
+  void VisitArrayLiteral(ArrayLiteral* expr) override { UNREACHABLE(); }
 
   void LoadInitFunction() {
     current_function_builder_ = builder_->FunctionAt(init_function_index_);
@@ -595,13 +645,13 @@
     if (return_type != kAstStmt) {
       sig.AddReturn(static_cast<LocalType>(return_type));
     }
-    for (int i = 0; i < func_type->Arity(); i++) {
+    for (int i = 0; i < func_type->Arity(); ++i) {
       sig.AddParam(TypeFrom(func_type->Parameter(i)));
     }
     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++) {
+    for (int i = 0; i < funcs->values()->length(); ++i) {
       VariableProxy* func = funcs->values()->at(i)->AsVariableProxy();
       DCHECK_NOT_NULL(func);
       builder_->AddIndirectFunction(LookupOrInsertFunction(func->var()));
@@ -646,7 +696,8 @@
 
    public:
     explicit ImportedFunctionTable(AsmWasmBuilderImpl* builder)
-        : table_(HashMap::PointersMatch, ZoneHashMap::kDefaultHashMapCapacity,
+        : table_(base::HashMap::PointersMatch,
+                 ZoneHashMap::kDefaultHashMapCapacity,
                  ZoneAllocationPolicy(builder->zone())),
           builder_(builder) {}
 
@@ -706,13 +757,17 @@
           DCHECK(binop->right()->IsLiteral());
           DCHECK_EQ(1.0, binop->right()->AsLiteral()->raw_value()->AsNumber());
           DCHECK(binop->right()->AsLiteral()->raw_value()->ContainsDot());
-          VisitForeignVariable(true, prop);
+          DCHECK(target->IsVariableProxy());
+          VisitForeignVariable(true, target->AsVariableProxy()->var(), prop);
+          *is_nop = true;
           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);
+          DCHECK(target->IsVariableProxy());
+          VisitForeignVariable(false, target->AsVariableProxy()->var(), prop);
+          *is_nop = true;
           return;
         } else {
           UNREACHABLE();
@@ -784,7 +839,7 @@
     }
   }
 
-  void VisitAssignment(Assignment* expr) {
+  void VisitAssignment(Assignment* expr) override {
     bool as_init = false;
     if (scope_ == kModuleScope) {
       Property* prop = expr->value()->AsProperty();
@@ -831,55 +886,22 @@
     if (as_init) UnLoadInitFunction();
   }
 
-  void VisitYield(Yield* expr) { UNREACHABLE(); }
+  void VisitYield(Yield* expr) override { UNREACHABLE(); }
 
-  void VisitThrow(Throw* expr) { UNREACHABLE(); }
+  void VisitThrow(Throw* expr) override { UNREACHABLE(); }
 
-  void VisitForeignVariable(bool is_float, Property* expr) {
+  void VisitForeignVariable(bool is_float, Variable* var, Property* expr) {
     DCHECK(expr->obj()->AsVariableProxy());
     DCHECK(VariableLocation::PARAMETER ==
            expr->obj()->AsVariableProxy()->var()->location());
     DCHECK_EQ(1, expr->obj()->AsVariableProxy()->var()->index());
     Literal* key_literal = expr->key()->AsLiteral();
     DCHECK_NOT_NULL(key_literal);
-    if (!key_literal->value().is_null() && !foreign_.is_null() &&
-        foreign_->IsObject()) {
+    if (!key_literal->value().is_null()) {
       Handle<Name> name =
           i::Object::ToName(isolate_, key_literal->value()).ToHandleChecked();
-      MaybeHandle<Object> maybe_value = i::Object::GetProperty(foreign_, name);
-      if (!maybe_value.is_null()) {
-        Handle<Object> value = maybe_value.ToHandleChecked();
-        if (is_float) {
-          MaybeHandle<Object> maybe_nvalue = i::Object::ToNumber(value);
-          if (!maybe_nvalue.is_null()) {
-            Handle<Object> nvalue = maybe_nvalue.ToHandleChecked();
-            if (nvalue->IsNumber()) {
-              double val = nvalue->Number();
-              byte code[] = {WASM_F64(val)};
-              current_function_builder_->EmitCode(code, sizeof(code));
-              return;
-            }
-          }
-        } else {
-          MaybeHandle<Object> maybe_nvalue =
-              i::Object::ToInt32(isolate_, value);
-          if (!maybe_nvalue.is_null()) {
-            Handle<Object> nvalue = maybe_nvalue.ToHandleChecked();
-            if (nvalue->IsNumber()) {
-              int32_t val = static_cast<int32_t>(nvalue->Number());
-              current_function_builder_->EmitI32Const(val);
-              return;
-            }
-          }
-        }
-      }
-    }
-    if (is_float) {
-      byte code[] = {WASM_F64(std::numeric_limits<double>::quiet_NaN())};
-      current_function_builder_->EmitCode(code, sizeof(code));
-    } else {
-      byte code[] = {WASM_I32V_1(0)};
-      current_function_builder_->EmitCode(code, sizeof(code));
+      LocalType type = is_float ? kAstF64 : kAstI32;
+      foreign_variables_.push_back({name, var, type});
     }
   }
 
@@ -954,7 +976,7 @@
     UNREACHABLE();
   }
 
-  void VisitProperty(Property* expr) {
+  void VisitProperty(Property* expr) override {
     MachineType type;
     VisitPropertyAndEmitIndex(expr, &type);
     WasmOpcode opcode;
@@ -1242,7 +1264,7 @@
     }
   }
 
-  void VisitCall(Call* expr) {
+  void VisitCall(Call* expr) override {
     Call::CallType call_type = expr->GetCallType(isolate_);
     switch (call_type) {
       case Call::OTHER_CALL: {
@@ -1264,7 +1286,7 @@
           if (return_type != kAstStmt) {
             sig.AddReturn(return_type);
           }
-          for (int i = 0; i < args->length(); i++) {
+          for (int i = 0; i < args->length(); ++i) {
             sig.AddParam(TypeOf(args->at(i)));
           }
           index =
@@ -1303,11 +1325,11 @@
     }
   }
 
-  void VisitCallNew(CallNew* expr) { UNREACHABLE(); }
+  void VisitCallNew(CallNew* expr) override { UNREACHABLE(); }
 
-  void VisitCallRuntime(CallRuntime* expr) { UNREACHABLE(); }
+  void VisitCallRuntime(CallRuntime* expr) override { UNREACHABLE(); }
 
-  void VisitUnaryOperation(UnaryOperation* expr) {
+  void VisitUnaryOperation(UnaryOperation* expr) override {
     RECURSE(Visit(expr->expression()));
     switch (expr->op()) {
       case Token::NOT: {
@@ -1320,7 +1342,7 @@
     }
   }
 
-  void VisitCountOperation(CountOperation* expr) { UNREACHABLE(); }
+  void VisitCountOperation(CountOperation* expr) override { UNREACHABLE(); }
 
   bool MatchIntBinaryOperation(BinaryOperation* expr, Token::Value op,
                                int32_t val) {
@@ -1457,7 +1479,7 @@
     }
   }
 
-  void VisitBinaryOperation(BinaryOperation* expr) {
+  void VisitBinaryOperation(BinaryOperation* expr) override {
     ConvertOperation convertOperation = MatchBinaryOperation(expr);
     if (convertOperation == kToDouble) {
       RECURSE(Visit(expr->left()));
@@ -1535,7 +1557,7 @@
     }
   }
 
-  void VisitCompareOperation(CompareOperation* expr) {
+  void VisitCompareOperation(CompareOperation* expr) override {
     RECURSE(Visit(expr->left()));
     RECURSE(Visit(expr->right()));
     switch (expr->op()) {
@@ -1606,32 +1628,37 @@
 #undef SIGNED
 #undef NON_SIGNED
 
-  void VisitThisFunction(ThisFunction* expr) { UNREACHABLE(); }
+  void VisitThisFunction(ThisFunction* expr) override { UNREACHABLE(); }
 
-  void VisitDeclarations(ZoneList<Declaration*>* decls) {
+  void VisitDeclarations(ZoneList<Declaration*>* decls) override {
     for (int i = 0; i < decls->length(); ++i) {
       Declaration* decl = decls->at(i);
       RECURSE(Visit(decl));
     }
   }
 
-  void VisitClassLiteral(ClassLiteral* expr) { UNREACHABLE(); }
+  void VisitClassLiteral(ClassLiteral* expr) override { UNREACHABLE(); }
 
-  void VisitSpread(Spread* expr) { UNREACHABLE(); }
+  void VisitSpread(Spread* expr) override { UNREACHABLE(); }
 
-  void VisitSuperPropertyReference(SuperPropertyReference* expr) {
+  void VisitSuperPropertyReference(SuperPropertyReference* expr) override {
     UNREACHABLE();
   }
 
-  void VisitSuperCallReference(SuperCallReference* expr) { UNREACHABLE(); }
-
-  void VisitSloppyBlockFunctionStatement(SloppyBlockFunctionStatement* expr) {
+  void VisitSuperCallReference(SuperCallReference* expr) override {
     UNREACHABLE();
   }
 
-  void VisitDoExpression(DoExpression* expr) { UNREACHABLE(); }
+  void VisitSloppyBlockFunctionStatement(
+      SloppyBlockFunctionStatement* expr) override {
+    UNREACHABLE();
+  }
 
-  void VisitRewritableExpression(RewritableExpression* expr) { UNREACHABLE(); }
+  void VisitDoExpression(DoExpression* expr) override { UNREACHABLE(); }
+
+  void VisitRewritableExpression(RewritableExpression* expr) override {
+    UNREACHABLE();
+  }
 
   struct IndexContainer : public ZoneObject {
     uint32_t index;
@@ -1724,11 +1751,12 @@
   FunctionLiteral* literal_;
   Isolate* isolate_;
   Zone* zone_;
-  Handle<Object> foreign_;
   AsmTyper* typer_;
   TypeCache const& cache_;
   ZoneVector<std::pair<BreakableStatement*, bool>> breakable_blocks_;
+  ZoneVector<ForeignVariable> foreign_variables_;
   uint32_t init_function_index_;
+  uint32_t foreign_init_function_index_;
   uint32_t next_table_index_;
   ZoneHashMap function_tables_;
   ImportedFunctionTable imported_function_table_;
@@ -1741,21 +1769,18 @@
 };
 
 AsmWasmBuilder::AsmWasmBuilder(Isolate* isolate, Zone* zone,
-                               FunctionLiteral* literal, Handle<Object> foreign,
-                               AsmTyper* typer)
-    : isolate_(isolate),
-      zone_(zone),
-      literal_(literal),
-      foreign_(foreign),
-      typer_(typer) {}
+                               FunctionLiteral* literal, AsmTyper* typer)
+    : isolate_(isolate), zone_(zone), literal_(literal), typer_(typer) {}
 
 // TODO(aseemgarg): probably should take zone (to write wasm to) as input so
 // that zone in constructor may be thrown away once wasm module is written.
-WasmModuleIndex* AsmWasmBuilder::Run() {
-  AsmWasmBuilderImpl impl(isolate_, zone_, literal_, foreign_, typer_);
-  impl.Compile();
-  WasmModuleWriter* writer = impl.builder_->Build(zone_);
-  return writer->WriteTo(zone_);
+ZoneBuffer* AsmWasmBuilder::Run(i::Handle<i::FixedArray>* foreign_args) {
+  AsmWasmBuilderImpl impl(isolate_, zone_, literal_, typer_);
+  impl.Build();
+  *foreign_args = impl.GetForeignArgs();
+  ZoneBuffer* buffer = new (zone_) ZoneBuffer(zone_);
+  impl.builder_->WriteTo(*buffer);
+  return buffer;
 }
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/asm-wasm-builder.h b/src/wasm/asm-wasm-builder.h
index 09645ee..b99c3ef 100644
--- a/src/wasm/asm-wasm-builder.h
+++ b/src/wasm/asm-wasm-builder.h
@@ -21,14 +21,13 @@
 class AsmWasmBuilder {
  public:
   explicit AsmWasmBuilder(Isolate* isolate, Zone* zone, FunctionLiteral* root,
-                          Handle<Object> foreign, AsmTyper* typer);
-  WasmModuleIndex* Run();
+                          AsmTyper* typer);
+  ZoneBuffer* Run(Handle<FixedArray>* foreign_args);
 
  private:
   Isolate* isolate_;
   Zone* zone_;
   FunctionLiteral* literal_;
-  Handle<Object> foreign_;
   AsmTyper* typer_;
 };
 }  // namespace wasm
diff --git a/src/wasm/ast-decoder.cc b/src/wasm/ast-decoder.cc
index b8a86c3..ef83c67 100644
--- a/src/wasm/ast-decoder.cc
+++ b/src/wasm/ast-decoder.cc
@@ -157,10 +157,17 @@
     return false;
   }
 
-  inline bool Validate(const byte* pc, CallFunctionOperand& operand) {
+  inline bool Complete(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;
+      return true;
+    }
+    return false;
+  }
+
+  inline bool Validate(const byte* pc, CallFunctionOperand& operand) {
+    if (Complete(pc, operand)) {
       uint32_t expected = static_cast<uint32_t>(operand.sig->parameter_count());
       if (operand.arity != expected) {
         error(pc, pc + 1,
@@ -174,10 +181,17 @@
     return false;
   }
 
-  inline bool Validate(const byte* pc, CallIndirectOperand& operand) {
+  inline bool Complete(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];
+      return true;
+    }
+    return false;
+  }
+
+  inline bool Validate(const byte* pc, CallIndirectOperand& operand) {
+    if (Complete(pc, operand)) {
       uint32_t expected = static_cast<uint32_t>(operand.sig->parameter_count());
       if (operand.arity != expected) {
         error(pc, pc + 1,
@@ -191,10 +205,17 @@
     return false;
   }
 
-  inline bool Validate(const byte* pc, CallImportOperand& operand) {
+  inline bool Complete(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;
+      return true;
+    }
+    return false;
+  }
+
+  inline bool Validate(const byte* pc, CallImportOperand& operand) {
+    if (Complete(pc, operand)) {
       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)",
@@ -228,7 +249,7 @@
       return false;
     }
     // Verify table.
-    for (uint32_t i = 0; i < operand.table_count + 1; i++) {
+    for (uint32_t i = 0; i < operand.table_count + 1; ++i) {
       uint32_t target = operand.read_entry(this, i);
       if (target >= block_depth) {
         error(operand.table + i * 2, "improper branch in br_table");
@@ -238,7 +259,7 @@
     return true;
   }
 
-  int OpcodeArity(const byte* pc) {
+  unsigned OpcodeArity(const byte* pc) {
 #define DECLARE_ARITY(name, ...)                          \
   static const LocalType kTypes_##name[] = {__VA_ARGS__}; \
   static const int kArity_##name =                        \
@@ -311,6 +332,7 @@
         FOREACH_MISC_MEM_OPCODE(DECLARE_OPCODE_CASE)
         FOREACH_SIMPLE_OPCODE(DECLARE_OPCODE_CASE)
         FOREACH_ASMJS_COMPAT_OPCODE(DECLARE_OPCODE_CASE)
+        FOREACH_SIMD_OPCODE(DECLARE_OPCODE_CASE)
 #undef DECLARE_OPCODE_CASE
       default:
         UNREACHABLE();
@@ -318,7 +340,7 @@
     }
   }
 
-  int OpcodeLength(const byte* pc) {
+  unsigned OpcodeLength(const byte* pc) {
     switch (static_cast<WasmOpcode>(*pc)) {
 #define DECLARE_OPCODE_CASE(name, opcode, sig) case kExpr##name:
       FOREACH_LOAD_MEM_OPCODE(DECLARE_OPCODE_CASE)
@@ -390,7 +412,7 @@
 // shift-reduce strategy with multiple internal stacks.
 class SR_WasmDecoder : public WasmDecoder {
  public:
-  SR_WasmDecoder(Zone* zone, TFBuilder* builder, FunctionBody& body)
+  SR_WasmDecoder(Zone* zone, TFBuilder* builder, const FunctionBody& body)
       : WasmDecoder(body.module, body.sig, body.start, body.end),
         zone_(zone),
         builder_(builder),
@@ -543,7 +565,7 @@
   char* indentation() {
     static const int kMaxIndent = 64;
     static char bytes[kMaxIndent + 1];
-    for (int i = 0; i < kMaxIndent; i++) bytes[i] = ' ';
+    for (int i = 0; i < kMaxIndent; ++i) bytes[i] = ' ';
     bytes[kMaxIndent] = 0;
     if (stack_.size() < kMaxIndent / 2) {
       bytes[stack_.size() * 2] = 0;
@@ -557,15 +579,14 @@
     // Initialize {local_type_vec} from signature.
     if (sig_) {
       local_type_vec_.reserve(sig_->parameter_count());
-      for (size_t i = 0; i < sig_->parameter_count(); i++) {
+      for (size_t i = 0; i < sig_->parameter_count(); ++i) {
         local_type_vec_.push_back(sig_->GetParam(i));
       }
     }
     // Decode local declarations, if any.
-    int length;
-    uint32_t entries = consume_u32v(&length, "local decls count");
+    uint32_t entries = consume_u32v("local decls count");
     while (entries-- > 0 && pc_ < limit_) {
-      uint32_t count = consume_u32v(&length, "local count");
+      uint32_t count = consume_u32v("local count");
       byte code = consume_u8("local type");
       LocalType type;
       switch (code) {
@@ -600,7 +621,7 @@
     if (pc_ >= limit_) return;  // Nothing to do.
 
     while (true) {  // decoding loop.
-      int len = 1;
+      unsigned len = 1;
       WasmOpcode opcode = static_cast<WasmOpcode>(*pc_);
       TRACE("  @%-6d #%02x:%-20s|", startrel(pc_), opcode,
             WasmOpcodes::ShortOpcodeName(opcode));
@@ -792,7 +813,7 @@
 
                 SsaEnv* copy = Steal(break_env);
                 ssa_env_ = copy;
-                for (uint32_t i = 0; i < operand.table_count + 1; i++) {
+                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)
@@ -1023,7 +1044,7 @@
 
 #if DEBUG
       if (FLAG_trace_wasm_decoder) {
-        for (size_t i = 0; i < stack_.size(); i++) {
+        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),
@@ -1104,8 +1125,8 @@
   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());
+    TFNode* node = BUILD(LoadMem, type, mem_type, index.node, operand.offset,
+                         operand.alignment, position());
     Push(type, node);
     return 1 + operand.length;
   }
@@ -1114,7 +1135,8 @@
     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());
+    BUILD(StoreMem, mem_type, index.node, operand.offset, operand.alignment,
+          val.node, position());
     Push(type, val.node);
     return 1 + operand.length;
   }
@@ -1433,9 +1455,9 @@
         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_) {
+    while (pc < limit_ && ok()) {
       WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
-      int length = 1;
+      unsigned length = 1;
       switch (opcode) {
         case kExprLoop:
         case kExprIf:
@@ -1463,7 +1485,7 @@
       if (depth <= 0) break;
       pc += length;
     }
-    return assigned;
+    return ok() ? assigned : nullptr;
   }
 
   inline wasm::WasmCodePosition position() {
@@ -1505,7 +1527,7 @@
   }
   PrintF("%s", WasmOpcodes::OpcodeName(tree.opcode()));
   if (tree.count > 0) os << "(";
-  for (uint32_t i = 0; i < tree.count; i++) {
+  for (uint32_t i = 0; i < tree.count; ++i) {
     if (i > 0) os << ", ";
     os << *tree.children[i];
   }
@@ -1513,31 +1535,33 @@
   return os;
 }
 
-int OpcodeLength(const byte* pc, const byte* end) {
+unsigned OpcodeLength(const byte* pc, const byte* end) {
   WasmDecoder decoder(nullptr, nullptr, pc, end);
   return decoder.OpcodeLength(pc);
 }
 
-int OpcodeArity(const byte* pc, const byte* end) {
+unsigned 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);
+  OFStream os(stdout);
+  PrintAst(&allocator, FunctionBodyForTesting(start, end), os, nullptr);
 }
 
-void PrintAst(base::AccountingAllocator* allocator, FunctionBody& body) {
+bool PrintAst(base::AccountingAllocator* allocator, const FunctionBody& body,
+              std::ostream& os,
+              std::vector<std::tuple<uint32_t, int, int>>* offset_table) {
   Zone zone(allocator);
   SR_WasmDecoder decoder(&zone, nullptr, body);
-
-  OFStream os(stdout);
+  int line_nr = 0;
 
   // Print the function signature.
   if (body.sig) {
     os << "// signature: " << *body.sig << std::endl;
+    ++line_nr;
   }
 
   // Print the local declarations.
@@ -1554,24 +1578,35 @@
     os << std::endl;
 
     for (const byte* locals = body.start; locals < pc; locals++) {
-      printf(" 0x%02x,", *locals);
+      os << (locals == body.start ? "0x" : " 0x") << AsHex(*locals, 2) << ",";
     }
     os << std::endl;
+    ++line_nr;
   }
 
-  os << "// body: \n";
-  int control_depth = 0;
+  os << "// body: " << std::endl;
+  ++line_nr;
+  unsigned control_depth = 0;
   while (pc < body.end) {
-    size_t length = decoder.OpcodeLength(pc);
+    unsigned length = decoder.OpcodeLength(pc);
 
     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));
+    int num_whitespaces = control_depth < 32 ? 2 * control_depth : 64;
+    if (offset_table) {
+      offset_table->push_back(
+          std::make_tuple(pc - body.start, line_nr, num_whitespaces));
+    }
 
-    for (size_t i = 1; i < length; i++) {
-      printf(" 0x%02x,", pc[i]);
+    // 64 whitespaces
+    const char* padding =
+        "                                                                ";
+    os.write(padding, num_whitespaces);
+    os << "k" << WasmOpcodes::OpcodeName(opcode) << ",";
+
+    for (size_t i = 1; i < length; ++i) {
+      os << " " << AsHex(pc[i], 2) << ",";
     }
 
     switch (opcode) {
@@ -1604,7 +1639,7 @@
       }
       case kExprCallIndirect: {
         CallIndirectOperand operand(&decoder, pc);
-        if (decoder.Validate(pc, operand)) {
+        if (decoder.Complete(pc, operand)) {
           os << "   // sig #" << operand.index << ": " << *operand.sig;
         } else {
           os << " // arity=" << operand.arity << " sig #" << operand.index;
@@ -1613,7 +1648,7 @@
       }
       case kExprCallImport: {
         CallImportOperand operand(&decoder, pc);
-        if (decoder.Validate(pc, operand)) {
+        if (decoder.Complete(pc, operand)) {
           os << "   // import #" << operand.index << ": " << *operand.sig;
         } else {
           os << " // arity=" << operand.arity << " import #" << operand.index;
@@ -1622,7 +1657,7 @@
       }
       case kExprCallFunction: {
         CallFunctionOperand operand(&decoder, pc);
-        if (decoder.Validate(pc, operand)) {
+        if (decoder.Complete(pc, operand)) {
           os << "   // function #" << operand.index << ": " << *operand.sig;
         } else {
           os << " // arity=" << operand.arity << " function #" << operand.index;
@@ -1640,7 +1675,10 @@
 
     pc += length;
     os << std::endl;
+    ++line_nr;
   }
+
+  return decoder.ok();
 }
 
 BitVector* AnalyzeLoopAssignmentForTesting(Zone* zone, size_t num_locals,
diff --git a/src/wasm/ast-decoder.h b/src/wasm/ast-decoder.h
index 9e96053..27170dd 100644
--- a/src/wasm/ast-decoder.h
+++ b/src/wasm/ast-decoder.h
@@ -25,7 +25,7 @@
 struct LocalIndexOperand {
   uint32_t index;
   LocalType type;
-  int length;
+  unsigned length;
 
   inline LocalIndexOperand(Decoder* decoder, const byte* pc) {
     index = decoder->checked_read_u32v(pc, 1, &length, "local index");
@@ -35,7 +35,7 @@
 
 struct ImmI8Operand {
   int8_t value;
-  int length;
+  unsigned length;
   inline ImmI8Operand(Decoder* decoder, const byte* pc) {
     value = bit_cast<int8_t>(decoder->checked_read_u8(pc, 1, "immi8"));
     length = 1;
@@ -44,7 +44,7 @@
 
 struct ImmI32Operand {
   int32_t value;
-  int length;
+  unsigned length;
   inline ImmI32Operand(Decoder* decoder, const byte* pc) {
     value = decoder->checked_read_i32v(pc, 1, &length, "immi32");
   }
@@ -52,7 +52,7 @@
 
 struct ImmI64Operand {
   int64_t value;
-  int length;
+  unsigned length;
   inline ImmI64Operand(Decoder* decoder, const byte* pc) {
     value = decoder->checked_read_i64v(pc, 1, &length, "immi64");
   }
@@ -60,7 +60,7 @@
 
 struct ImmF32Operand {
   float value;
-  int length;
+  unsigned length;
   inline ImmF32Operand(Decoder* decoder, const byte* pc) {
     value = bit_cast<float>(decoder->checked_read_u32(pc, 1, "immf32"));
     length = 4;
@@ -69,7 +69,7 @@
 
 struct ImmF64Operand {
   double value;
-  int length;
+  unsigned length;
   inline ImmF64Operand(Decoder* decoder, const byte* pc) {
     value = bit_cast<double>(decoder->checked_read_u64(pc, 1, "immf64"));
     length = 8;
@@ -80,7 +80,7 @@
   uint32_t index;
   LocalType type;
   MachineType machine_type;
-  int length;
+  unsigned length;
 
   inline GlobalIndexOperand(Decoder* decoder, const byte* pc) {
     index = decoder->checked_read_u32v(pc, 1, &length, "global index");
@@ -94,10 +94,10 @@
   uint32_t arity;
   uint32_t depth;
   Control* target;
-  int length;
+  unsigned length;
   inline BreakDepthOperand(Decoder* decoder, const byte* pc) {
-    int len1 = 0;
-    int len2 = 0;
+    unsigned len1 = 0;
+    unsigned 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;
@@ -109,10 +109,10 @@
   uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
-  int length;
+  unsigned length;
   inline CallIndirectOperand(Decoder* decoder, const byte* pc) {
-    int len1 = 0;
-    int len2 = 0;
+    unsigned len1 = 0;
+    unsigned 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;
@@ -124,10 +124,10 @@
   uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
-  int length;
+  unsigned length;
   inline CallFunctionOperand(Decoder* decoder, const byte* pc) {
-    int len1 = 0;
-    int len2 = 0;
+    unsigned len1 = 0;
+    unsigned 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;
@@ -139,10 +139,10 @@
   uint32_t arity;
   uint32_t index;
   FunctionSig* sig;
-  int length;
+  unsigned length;
   inline CallImportOperand(Decoder* decoder, const byte* pc) {
-    int len1 = 0;
-    int len2 = 0;
+    unsigned len1 = 0;
+    unsigned 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;
@@ -154,13 +154,17 @@
   uint32_t arity;
   uint32_t table_count;
   const byte* table;
-  int length;
+  unsigned length;
   inline BranchTableOperand(Decoder* decoder, const byte* pc) {
-    int len1 = 0;
-    int len2 = 0;
+    unsigned len1 = 0;
+    unsigned len2 = 0;
     arity = decoder->checked_read_u32v(pc, 1, &len1, "argument count");
     table_count =
         decoder->checked_read_u32v(pc, 1 + len1, &len2, "table count");
+    if (table_count > (UINT_MAX / sizeof(uint32_t)) - 1 ||
+        len1 + len2 > UINT_MAX - (table_count + 1) * sizeof(uint32_t)) {
+      decoder->error(pc, "branch table size overflow");
+    }
     length = len1 + len2 + (table_count + 1) * sizeof(uint32_t);
 
     uint32_t table_start = 1 + len1 + len2;
@@ -171,8 +175,8 @@
       table = nullptr;
     }
   }
-  inline uint32_t read_entry(Decoder* decoder, int i) {
-    DCHECK(i >= 0 && static_cast<uint32_t>(i) <= table_count);
+  inline uint32_t read_entry(Decoder* decoder, unsigned i) {
+    DCHECK(i <= table_count);
     return table ? decoder->read_u32(table + i * sizeof(uint32_t)) : 0;
   }
 };
@@ -180,12 +184,12 @@
 struct MemoryAccessOperand {
   uint32_t alignment;
   uint32_t offset;
-  int length;
+  unsigned length;
   inline MemoryAccessOperand(Decoder* decoder, const byte* pc) {
-    int alignment_length;
+    unsigned alignment_length;
     alignment =
         decoder->checked_read_u32v(pc, 1, &alignment_length, "alignment");
-    int offset_length;
+    unsigned offset_length;
     offset = decoder->checked_read_u32v(pc, 1 + alignment_length,
                                         &offset_length, "offset");
     length = alignment_length + offset_length;
@@ -194,7 +198,7 @@
 
 struct ReturnArityOperand {
   uint32_t arity;
-  int length;
+  unsigned length;
 
   inline ReturnArityOperand(Decoder* decoder, const byte* pc) {
     arity = decoder->checked_read_u32v(pc, 1, &length, "return count");
@@ -213,6 +217,11 @@
   const byte* end;    // end of the function body
 };
 
+static inline FunctionBody FunctionBodyForTesting(const byte* start,
+                                                  const byte* end) {
+  return {nullptr, nullptr, start, start, end};
+}
+
 struct Tree;
 typedef Result<Tree*> TreeResult;
 
@@ -222,7 +231,9 @@
                           FunctionBody& body);
 TreeResult BuildTFGraph(base::AccountingAllocator* allocator,
                         TFBuilder* builder, FunctionBody& body);
-void PrintAst(base::AccountingAllocator* allocator, FunctionBody& body);
+bool PrintAst(base::AccountingAllocator* allocator, const FunctionBody& body,
+              std::ostream& os,
+              std::vector<std::tuple<uint32_t, int, int>>* offset_table);
 
 // A simplified form of AST printing, e.g. from a debugger.
 void PrintAstForDebugging(const byte* start, const byte* end);
@@ -262,10 +273,10 @@
                                            const byte* start, const byte* end);
 
 // Computes the length of the opcode at the given address.
-int OpcodeLength(const byte* pc, const byte* end);
+unsigned OpcodeLength(const byte* pc, const byte* end);
 
 // Computes the arity (number of sub-nodes) of the opcode at the given address.
-int OpcodeArity(const byte* pc, const byte* end);
+unsigned OpcodeArity(const byte* pc, const byte* end);
 
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/decoder.h b/src/wasm/decoder.h
index 685f5d0..c1090a8 100644
--- a/src/wasm/decoder.h
+++ b/src/wasm/decoder.h
@@ -46,7 +46,8 @@
 
   virtual ~Decoder() {}
 
-  inline bool check(const byte* base, int offset, int length, const char* msg) {
+  inline bool check(const byte* base, unsigned offset, unsigned length,
+                    const char* msg) {
     DCHECK_GE(base, start_);
     if ((base + offset + length) > limit_) {
       error(base, base + offset, "%s", msg);
@@ -56,37 +57,38 @@
   }
 
   // Reads a single 8-bit byte, reporting an error if out of bounds.
-  inline uint8_t checked_read_u8(const byte* base, int offset,
+  inline uint8_t checked_read_u8(const byte* base, unsigned offset,
                                  const char* msg = "expected 1 byte") {
     return check(base, offset, 1, msg) ? base[offset] : 0;
   }
 
   // Reads 16-bit word, reporting an error if out of bounds.
-  inline uint16_t checked_read_u16(const byte* base, int offset,
+  inline uint16_t checked_read_u16(const byte* base, unsigned offset,
                                    const char* msg = "expected 2 bytes") {
     return check(base, offset, 2, msg) ? read_u16(base + offset) : 0;
   }
 
   // Reads 32-bit word, reporting an error if out of bounds.
-  inline uint32_t checked_read_u32(const byte* base, int offset,
+  inline uint32_t checked_read_u32(const byte* base, unsigned offset,
                                    const char* msg = "expected 4 bytes") {
     return check(base, offset, 4, msg) ? read_u32(base + offset) : 0;
   }
 
   // Reads 64-bit word, reporting an error if out of bounds.
-  inline uint64_t checked_read_u64(const byte* base, int offset,
+  inline uint64_t checked_read_u64(const byte* base, unsigned offset,
                                    const char* msg = "expected 8 bytes") {
     return check(base, offset, 8, msg) ? read_u64(base + offset) : 0;
   }
 
   // Reads a variable-length unsigned integer (little endian).
-  uint32_t checked_read_u32v(const byte* base, int offset, int* length,
+  uint32_t checked_read_u32v(const byte* base, unsigned offset,
+                             unsigned* length,
                              const char* msg = "expected LEB32") {
     return checked_read_leb<uint32_t, false>(base, offset, length, msg);
   }
 
   // Reads a variable-length signed integer (little endian).
-  int32_t checked_read_i32v(const byte* base, int offset, int* length,
+  int32_t checked_read_i32v(const byte* base, unsigned offset, unsigned* length,
                             const char* msg = "expected SLEB32") {
     uint32_t result =
         checked_read_leb<uint32_t, true>(base, offset, length, msg);
@@ -100,13 +102,14 @@
   }
 
   // Reads a variable-length unsigned integer (little endian).
-  uint64_t checked_read_u64v(const byte* base, int offset, int* length,
+  uint64_t checked_read_u64v(const byte* base, unsigned offset,
+                             unsigned* length,
                              const char* msg = "expected LEB64") {
     return checked_read_leb<uint64_t, false>(base, offset, length, msg);
   }
 
   // Reads a variable-length signed integer (little endian).
-  int64_t checked_read_i64v(const byte* base, int offset, int* length,
+  int64_t checked_read_i64v(const byte* base, unsigned offset, unsigned* length,
                             const char* msg = "expected SLEB64") {
     uint64_t result =
         checked_read_leb<uint64_t, true>(base, offset, length, msg);
@@ -204,10 +207,9 @@
   }
 
   // Reads a LEB128 variable-length 32-bit integer and advances {pc_}.
-  uint32_t consume_u32v(int* length, const char* name = nullptr) {
+  uint32_t consume_u32v(const char* name = nullptr) {
     TRACE("  +%d  %-20s: ", static_cast<int>(pc_ - start_),
           name ? name : "varint");
-
     if (checkAvailable(1)) {
       const byte* pos = pc_;
       const byte* end = pc_ + 5;
@@ -224,10 +226,10 @@
         shift += 7;
       }
 
-      *length = static_cast<int>(pc_ - pos);
+      int length = static_cast<int>(pc_ - pos);
       if (pc_ == end && (b & 0x80)) {
         error(pc_ - 1, "varint too large");
-      } else if (*length == 0) {
+      } else if (length == 0) {
         error(pc_, "varint of length 0");
       } else {
         TRACE("= %u\n", result);
@@ -316,7 +318,7 @@
     } else {
       result.error_code = kSuccess;
     }
-    result.val = val;
+    result.val = std::move(val);
     return result;
   }
 
@@ -350,7 +352,7 @@
 
  private:
   template <typename IntType, bool is_signed>
-  IntType checked_read_leb(const byte* base, int offset, int* length,
+  IntType checked_read_leb(const byte* base, unsigned offset, unsigned* length,
                            const char* msg) {
     if (!check(base, offset, 1, msg)) {
       *length = 0;
@@ -371,7 +373,7 @@
       shift += 7;
     }
     DCHECK_LE(ptr - (base + offset), kMaxLength);
-    *length = static_cast<int>(ptr - (base + offset));
+    *length = static_cast<unsigned>(ptr - (base + offset));
     if (ptr == end) {
       // Check there are no bits set beyond the bitwidth of {IntType}.
       const int kExtraBits = (1 + kMaxLength * 7) - (sizeof(IntType) * 8);
diff --git a/src/wasm/encoder.cc b/src/wasm/encoder.cc
index 39a2f5a..ffd0294 100644
--- a/src/wasm/encoder.cc
+++ b/src/wasm/encoder.cc
@@ -30,73 +30,33 @@
 namespace internal {
 namespace wasm {
 
-/*TODO: add error cases for adding too many locals, too many functions and bad
-  indices in body */
-
-namespace {
-void EmitUint8(byte** b, uint8_t x) {
-  Memory::uint8_at(*b) = x;
-  *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 kPaddedVarintSize = 5;
-
-void FixupSection(byte* start, byte* end) {
-  // 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 != kPaddedVarintSize; ++pos) {
-    size_t next = val >> 7;
-    byte out = static_cast<byte>(val & 0x7f);
-    if (pos != kPaddedVarintSize - 1) {
-      *(start++) = 0x80 | out;
-      val = next;
-    } else {
-      *(start++) = out;
-      // TODO(jfb) check that the pre-allocated fixup size isn't overflowed.
-    }
-  }
-}
-
-// Returns the start of the section, where the section VarInt size is.
-byte* EmitSection(WasmSection::Code code, byte** b) {
+// Emit a section name and the size as a padded varint that can be patched
+// later.
+size_t EmitSection(WasmSection::Code code, ZoneBuffer& buffer) {
   // Emit the section name.
   const char* name = WasmSection::getName(code);
   TRACE("emit section: %s\n", name);
   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]);
+  buffer.write_size(length);  // Section name string size.
+  buffer.write(reinterpret_cast<const byte*>(name), length);
 
   // 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;
+  return buffer.reserve_u32v();
 }
-}  // namespace
 
-WasmFunctionBuilder::WasmFunctionBuilder(Zone* zone)
-    : locals_(zone), exported_(0), body_(zone), name_(zone) {}
+// Patch the size of a section after it's finished.
+void FixupSection(ZoneBuffer& buffer, size_t start) {
+  buffer.patch_u32v(start, static_cast<uint32_t>(buffer.offset() - start -
+                                                 kPaddedVarInt32Size));
+}
+
+WasmFunctionBuilder::WasmFunctionBuilder(WasmModuleBuilder* builder)
+    : builder_(builder),
+      locals_(builder->zone()),
+      signature_index_(0),
+      exported_(0),
+      body_(builder->zone()),
+      name_(builder->zone()) {}
 
 void WasmFunctionBuilder::EmitVarInt(uint32_t val) {
   byte buffer[8];
@@ -110,6 +70,7 @@
 void WasmFunctionBuilder::SetSignature(FunctionSig* sig) {
   DCHECK(!locals_.has_sig());
   locals_.set_sig(sig);
+  signature_index_ = builder_->AddSignature(sig);
 }
 
 uint32_t WasmFunctionBuilder::AddLocal(LocalType type) {
@@ -126,7 +87,7 @@
 }
 
 void WasmFunctionBuilder::EmitCode(const byte* code, uint32_t code_size) {
-  for (size_t i = 0; i < code_size; i++) {
+  for (size_t i = 0; i < code_size; ++i) {
     body_.push_back(code[i]);
   }
 }
@@ -163,98 +124,56 @@
   }
 }
 
-void WasmFunctionBuilder::Exported(uint8_t flag) { exported_ = flag; }
+void WasmFunctionBuilder::SetExported() { exported_ = true; }
 
 void WasmFunctionBuilder::SetName(const char* name, int name_length) {
   name_.clear();
   if (name_length > 0) {
-    for (int i = 0; i < name_length; i++) {
+    for (int i = 0; i < name_length; ++i) {
       name_.push_back(*(name + i));
     }
   }
 }
 
-WasmFunctionEncoder* WasmFunctionBuilder::Build(Zone* zone,
-                                                WasmModuleBuilder* mb) const {
-  WasmFunctionEncoder* e =
-      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::WriteSignature(ZoneBuffer& buffer) const {
+  buffer.write_u32v(signature_index_);
 }
 
-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;
-  size += 2;
-  if (HasName()) {
-    uint32_t name_size = NameSize();
-    size +=
-        static_cast<uint32_t>(LEBHelper::sizeof_u32v(name_size)) + name_size;
-  }
-  return size;
-}
-
-uint32_t WasmFunctionEncoder::BodySize(void) const {
-  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) |
-                      (HasName() ? kDeclFunctionName : 0);
-
-  EmitUint8(header, decl_bits);
-  EmitUint16(header, signature_index_);
-
-  if (HasName()) {
-    EmitVarInt(header, NameSize());
-    for (size_t i = 0; i < name_.size(); ++i) {
-      EmitUint8(header, name_[i]);
+void WasmFunctionBuilder::WriteExport(ZoneBuffer& buffer,
+                                      uint32_t func_index) const {
+  if (exported_) {
+    buffer.write_u32v(func_index);
+    buffer.write_size(name_.size());
+    if (name_.size() > 0) {
+      buffer.write(reinterpret_cast<const byte*>(&name_[0]), name_.size());
     }
   }
+}
 
-  EmitUint16(header, static_cast<uint16_t>(body_.size() + locals_.Size()));
-  (*header) += locals_.Emit(*header);
+void WasmFunctionBuilder::WriteBody(ZoneBuffer& buffer) const {
+  size_t locals_size = locals_.Size();
+  buffer.write_size(locals_size + body_.size());
+  buffer.EnsureSpace(locals_size);
+  byte** ptr = buffer.pos_ptr();
+  locals_.Emit(*ptr);
+  (*ptr) += locals_size;  // UGLY: manual bump of position pointer
   if (body_.size() > 0) {
-    std::memcpy(*header, &body_[0], body_.size());
-    (*header) += body_.size();
+    buffer.write(&body_[0], body_.size());
   }
 }
 
 WasmDataSegmentEncoder::WasmDataSegmentEncoder(Zone* zone, const byte* data,
                                                uint32_t size, uint32_t dest)
     : data_(zone), dest_(dest) {
-  for (size_t i = 0; i < size; i++) {
+  for (size_t i = 0; i < size; ++i) {
     data_.push_back(data[i]);
   }
 }
 
-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_);
-  EmitVarInt(header, static_cast<uint32_t>(data_.size()));
-
-  std::memcpy(*header, &data_[0], data_.size());
-  (*header) += data_.size();
+void WasmDataSegmentEncoder::Write(ZoneBuffer& buffer) const {
+  buffer.write_u32v(dest_);
+  buffer.write_u32v(static_cast<uint32_t>(data_.size()));
+  buffer.write(&data_[0], data_.size());
 }
 
 WasmModuleBuilder::WasmModuleBuilder(Zone* zone)
@@ -269,7 +188,7 @@
       start_function_index_(-1) {}
 
 uint32_t WasmModuleBuilder::AddFunction() {
-  functions_.push_back(new (zone_) WasmFunctionBuilder(zone_));
+  functions_.push_back(new (zone_) WasmFunctionBuilder(this));
   return static_cast<uint32_t>(functions_.size() - 1);
 }
 
@@ -328,260 +247,135 @@
   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));
-  }
-  for (auto segment : data_segments_) {
-    writer->data_segments_.push_back(segment);
-  }
-  for (auto sig : signatures_) {
-    writer->signatures_.push_back(sig);
-  }
-  for (auto index : indirect_functions_) {
-    writer->indirect_functions_.push_back(index);
-  }
-  for (auto global : globals_) {
-    writer->globals_.push_back(global);
-  }
-  writer->start_function_index_ = start_function_index_;
-  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)
-    : imports_(zone),
-      functions_(zone),
-      data_segments_(zone),
-      signatures_(zone),
-      indirect_functions_(zone),
-      globals_(zone) {}
+void WasmModuleBuilder::WriteTo(ZoneBuffer& buffer) const {
+  uint32_t exports = 0;
 
-struct Sizes {
-  size_t header_size;
-  size_t body_size;
-
-  size_t total() { return header_size + body_size; }
-
-  void Add(size_t header, size_t body) {
-    header_size += header;
-    body_size += body;
-  }
-
-  void AddSection(WasmSection::Code code, size_t other_size) {
-    Add(kPaddedVarintSize +
-            LEBHelper::sizeof_u32v(WasmSection::getNameLength(code)) +
-            WasmSection::getNameLength(code),
-        0);
-    if (other_size) Add(LEBHelper::sizeof_u32v(other_size), 0);
-  }
-};
-
-WasmModuleIndex* WasmModuleWriter::WriteTo(Zone* zone) const {
-  Sizes sizes = {0, 0};
-
-  sizes.Add(2 * sizeof(uint32_t), 0);  // header
-
-  if (globals_.size() > 0) {
-    sizes.AddSection(WasmSection::Code::Globals, globals_.size());
-    /* These globals never have names, so are always 3 bytes. */
-    sizes.Add(3 * globals_.size(), 0);
-    TRACE("Size after globals: %u, %u\n", (unsigned)sizes.header_size,
-          (unsigned)sizes.body_size);
-  }
-
-  if (signatures_.size() > 0) {
-    sizes.AddSection(WasmSection::Code::Signatures, signatures_.size());
-    for (auto sig : signatures_) {
-      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::OldFunctions, functions_.size());
-    for (auto function : functions_) {
-      sizes.Add(function->HeaderSize() + function->BodySize(),
-                function->NameSize());
-    }
-    TRACE("Size after functions: %u, %u\n", (unsigned)sizes.header_size,
-          (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(LEBHelper::sizeof_u32v(start_function_index_), 0);
-    TRACE("Size after start: %u, %u\n", (unsigned)sizes.header_size,
-          (unsigned)sizes.body_size);
-  }
-
-  if (data_segments_.size() > 0) {
-    sizes.AddSection(WasmSection::Code::DataSegments, data_segments_.size());
-    for (auto segment : data_segments_) {
-      sizes.Add(segment->HeaderSize(), segment->BodySize());
-    }
-    TRACE("Size after data segments: %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,
-          (unsigned)sizes.body_size);
-  }
-
-  ZoneVector<uint8_t> buffer_vector(sizes.total(), zone);
-  byte* buffer = &buffer_vector[0];
-  byte* header = buffer;
-  byte* body = buffer + sizes.header_size;
-
-  // -- emit magic -------------------------------------------------------------
+  // == Emit magic =============================================================
   TRACE("emit magic\n");
-  EmitUint32(&header, kWasmMagic);
-  EmitUint32(&header, kWasmVersion);
+  buffer.write_u32(kWasmMagic);
+  buffer.write_u32(kWasmVersion);
 
-  // -- emit globals -----------------------------------------------------------
-  if (globals_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::Globals, &header);
-    EmitVarInt(&header, globals_.size());
-
-    for (auto global : globals_) {
-      EmitVarInt(&header, 0);  // Length of the global name.
-      EmitUint8(&header, WasmOpcodes::MemTypeCodeFor(global.first));
-      EmitUint8(&header, global.second);
-    }
-    FixupSection(section, header);
-  }
-
-  // -- emit signatures --------------------------------------------------------
+  // == Emit signatures ========================================================
   if (signatures_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::Signatures, &header);
-    EmitVarInt(&header, signatures_.size());
+    size_t start = EmitSection(WasmSection::Code::Signatures, buffer);
+    buffer.write_size(signatures_.size());
 
     for (FunctionSig* sig : signatures_) {
-      EmitUint8(&header, kWasmFunctionTypeForm);
-      EmitVarInt(&header, sig->parameter_count());
+      buffer.write_u8(kWasmFunctionTypeForm);
+      buffer.write_size(sig->parameter_count());
       for (size_t j = 0; j < sig->parameter_count(); j++) {
-        EmitUint8(&header, WasmOpcodes::LocalTypeCodeFor(sig->GetParam(j)));
+        buffer.write_u8(WasmOpcodes::LocalTypeCodeFor(sig->GetParam(j)));
       }
-      EmitVarInt(&header, sig->return_count());
+      buffer.write_size(sig->return_count());
       for (size_t j = 0; j < sig->return_count(); j++) {
-        EmitUint8(&header, WasmOpcodes::LocalTypeCodeFor(sig->GetReturn(j)));
+        buffer.write_u8(WasmOpcodes::LocalTypeCodeFor(sig->GetReturn(j)));
       }
     }
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
 
-  // -- emit imports -----------------------------------------------------------
+  // == Emit globals ===========================================================
+  if (globals_.size() > 0) {
+    size_t start = EmitSection(WasmSection::Code::Globals, buffer);
+    buffer.write_size(globals_.size());
+
+    for (auto global : globals_) {
+      buffer.write_u32v(0);  // Length of the global name.
+      buffer.write_u8(WasmOpcodes::MemTypeCodeFor(global.first));
+      buffer.write_u8(global.second);
+    }
+    FixupSection(buffer, start);
+  }
+
+  // == Emit imports ===========================================================
   if (imports_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::ImportTable, &header);
-    EmitVarInt(&header, imports_.size());
+    size_t start = EmitSection(WasmSection::Code::ImportTable, buffer);
+    buffer.write_size(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);
+      buffer.write_u32v(import.sig_index);
+      buffer.write_u32v(import.name_length);
+      buffer.write(reinterpret_cast<const byte*>(import.name),
+                   import.name_length);
+      buffer.write_u32v(0);
     }
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
 
-  // -- emit functions ---------------------------------------------------------
+  // == Emit function signatures ===============================================
   if (functions_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::OldFunctions, &header);
-    EmitVarInt(&header, functions_.size());
-
-    for (auto func : functions_) {
-      func->Serialize(buffer, &header, &body);
+    size_t start = EmitSection(WasmSection::Code::FunctionSignatures, buffer);
+    buffer.write_size(functions_.size());
+    for (auto function : functions_) {
+      function->WriteSignature(buffer);
+      if (function->exported()) exports++;
     }
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
 
-  // -- emit function table ----------------------------------------------------
+  // == emit function table ====================================================
   if (indirect_functions_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::FunctionTable, &header);
-    EmitVarInt(&header, indirect_functions_.size());
+    size_t start = EmitSection(WasmSection::Code::FunctionTable, buffer);
+    buffer.write_size(indirect_functions_.size());
 
     for (auto index : indirect_functions_) {
-      EmitVarInt(&header, index);
+      buffer.write_u32v(index);
     }
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
 
-  // -- emit memory declaration ------------------------------------------------
+  // == 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
+    size_t start = EmitSection(WasmSection::Code::Memory, buffer);
+    buffer.write_u32v(16);  // min memory size
+    buffer.write_u32v(16);  // max memory size
+    buffer.write_u8(0);     // memory export
     static_assert(kDeclMemorySize == 3, "memory size must match emit above");
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
 
-  // -- emit start function index ----------------------------------------------
+  // == emit exports ===========================================================
+  if (exports > 0) {
+    size_t start = EmitSection(WasmSection::Code::ExportTable, buffer);
+    buffer.write_u32v(exports);
+    uint32_t index = 0;
+    for (auto function : functions_) {
+      function->WriteExport(buffer, index++);
+    }
+    FixupSection(buffer, start);
+  }
+
+  // == emit start function index ==============================================
   if (start_function_index_ >= 0) {
-    byte* section = EmitSection(WasmSection::Code::StartFunction, &header);
-    EmitVarInt(&header, start_function_index_);
-    FixupSection(section, header);
+    size_t start = EmitSection(WasmSection::Code::StartFunction, buffer);
+    buffer.write_u32v(start_function_index_);
+    FixupSection(buffer, start);
   }
 
-  // -- emit data segments -----------------------------------------------------
+  // == emit code ==============================================================
+  if (functions_.size() > 0) {
+    size_t start = EmitSection(WasmSection::Code::FunctionBodies, buffer);
+    buffer.write_size(functions_.size());
+    for (auto function : functions_) {
+      function->WriteBody(buffer);
+    }
+    FixupSection(buffer, start);
+  }
+
+  // == emit data segments =====================================================
   if (data_segments_.size() > 0) {
-    byte* section = EmitSection(WasmSection::Code::DataSegments, &header);
-    EmitVarInt(&header, data_segments_.size());
+    size_t start = EmitSection(WasmSection::Code::DataSegments, buffer);
+    buffer.write_size(data_segments_.size());
 
     for (auto segment : data_segments_) {
-      segment->Serialize(buffer, &header, &body);
+      segment->Write(buffer);
     }
-    FixupSection(section, header);
+    FixupSection(buffer, start);
   }
-
-  if (sizes.body_size > 0) {
-    byte* section = EmitSection(WasmSection::Code::End, &header);
-    FixupSection(section, header);
-  }
-
-  return new (zone) WasmModuleIndex(buffer, buffer + sizes.total());
 }
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/encoder.h b/src/wasm/encoder.h
index 0f2118d..19fc397 100644
--- a/src/wasm/encoder.h
+++ b/src/wasm/encoder.h
@@ -10,6 +10,7 @@
 
 #include "src/base/smart-pointers.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"
@@ -19,29 +20,113 @@
 namespace internal {
 namespace wasm {
 
-class WasmModuleBuilder;
-
-class WasmFunctionEncoder : public ZoneObject {
+class ZoneBuffer : public ZoneObject {
  public:
-  uint32_t HeaderSize() const;
-  uint32_t BodySize() const;
-  uint32_t NameSize() const;
-  void Serialize(byte* buffer, byte** header, byte** body) const;
+  static const uint32_t kInitialSize = 4096;
+  explicit ZoneBuffer(Zone* zone, size_t initial = kInitialSize)
+      : zone_(zone), buffer_(reinterpret_cast<byte*>(zone->New(initial))) {
+    pos_ = buffer_;
+    end_ = buffer_ + initial;
+  }
+
+  void write_u8(uint8_t x) {
+    EnsureSpace(1);
+    *(pos_++) = x;
+  }
+
+  void write_u16(uint16_t x) {
+    EnsureSpace(2);
+#if V8_TARGET_LITTLE_ENDIAN
+    WriteUnalignedUInt16(pos_, x);
+#else
+    pos_[0] = x & 0xff;
+    pos_[1] = (x >> 8) & 0xff;
+#endif
+    pos_ += 2;
+  }
+
+  void write_u32(uint32_t x) {
+    EnsureSpace(4);
+#if V8_TARGET_LITTLE_ENDIAN
+    WriteUnalignedUInt32(pos_, x);
+#else
+    pos_[0] = x & 0xff;
+    pos_[1] = (x >> 8) & 0xff;
+    pos_[2] = (x >> 16) & 0xff;
+    pos_[3] = (x >> 24) & 0xff;
+#endif
+    pos_ += 4;
+  }
+
+  void write_u32v(uint32_t val) {
+    EnsureSpace(kMaxVarInt32Size);
+    LEBHelper::write_u32v(&pos_, val);
+  }
+
+  void write_size(size_t val) {
+    EnsureSpace(kMaxVarInt32Size);
+    DCHECK_EQ(val, static_cast<uint32_t>(val));
+    LEBHelper::write_u32v(&pos_, static_cast<uint32_t>(val));
+  }
+
+  void write(const byte* data, size_t size) {
+    EnsureSpace(size);
+    memcpy(pos_, data, size);
+    pos_ += size;
+  }
+
+  size_t reserve_u32v() {
+    size_t off = offset();
+    EnsureSpace(kMaxVarInt32Size);
+    pos_ += kMaxVarInt32Size;
+    return off;
+  }
+
+  // Patch a (padded) u32v at the given offset to be the given value.
+  void patch_u32v(size_t offset, uint32_t val) {
+    byte* ptr = buffer_ + offset;
+    for (size_t pos = 0; pos != kPaddedVarInt32Size; ++pos) {
+      uint32_t next = val >> 7;
+      byte out = static_cast<byte>(val & 0x7f);
+      if (pos != kPaddedVarInt32Size - 1) {
+        *(ptr++) = 0x80 | out;
+        val = next;
+      } else {
+        *(ptr++) = out;
+      }
+    }
+  }
+
+  size_t offset() { return static_cast<size_t>(pos_ - buffer_); }
+  size_t size() { return static_cast<size_t>(pos_ - buffer_); }
+  const byte* begin() { return buffer_; }
+  const byte* end() { return pos_; }
+
+  void EnsureSpace(size_t size) {
+    if ((pos_ + size) > end_) {
+      size_t new_size = 4096 + (end_ - buffer_) * 3;
+      byte* new_buffer = reinterpret_cast<byte*>(zone_->New(new_size));
+      memcpy(new_buffer, buffer_, (pos_ - buffer_));
+      pos_ = new_buffer + (pos_ - buffer_);
+      buffer_ = new_buffer;
+      end_ = new_buffer + new_size;
+    }
+  }
+
+  byte** pos_ptr() { return &pos_; }
 
  private:
-  WasmFunctionEncoder(Zone* zone, LocalDeclEncoder locals, bool exported);
-  friend class WasmFunctionBuilder;
-  uint32_t signature_index_;
-  LocalDeclEncoder locals_;
-  bool exported_;
-  ZoneVector<uint8_t> body_;
-  ZoneVector<char> name_;
-
-  bool HasName() const { return exported_ && name_.size() > 0; }
+  Zone* zone_;
+  byte* buffer_;
+  byte* pos_;
+  byte* end_;
 };
 
+class WasmModuleBuilder;
+
 class WasmFunctionBuilder : public ZoneObject {
  public:
+  // Building methods.
   void SetSignature(FunctionSig* sig);
   uint32_t AddLocal(LocalType type);
   void EmitVarInt(uint32_t val);
@@ -53,71 +138,49 @@
   void EmitWithU8(WasmOpcode opcode, const byte immediate);
   void EmitWithU8U8(WasmOpcode opcode, const byte imm1, const byte imm2);
   void EmitWithVarInt(WasmOpcode opcode, uint32_t immediate);
-  void Exported(uint8_t flag);
+  void SetExported();
   void SetName(const char* name, int name_length);
-  WasmFunctionEncoder* Build(Zone* zone, WasmModuleBuilder* mb) const;
+  bool exported() { return exported_; }
+
+  // Writing methods.
+  void WriteSignature(ZoneBuffer& buffer) const;
+  void WriteExport(ZoneBuffer& buffer, uint32_t func_index) const;
+  void WriteBody(ZoneBuffer& buffer) const;
 
  private:
-  explicit WasmFunctionBuilder(Zone* zone);
+  explicit WasmFunctionBuilder(WasmModuleBuilder* builder);
   friend class WasmModuleBuilder;
+  WasmModuleBuilder* builder_;
   LocalDeclEncoder locals_;
-  uint8_t exported_;
+  uint32_t signature_index_;
+  bool exported_;
   ZoneVector<uint8_t> body_;
   ZoneVector<char> name_;
-  void IndexVars(WasmFunctionEncoder* e, uint32_t* var_index) const;
 };
 
+// TODO(titzer): kill!
 class WasmDataSegmentEncoder : public ZoneObject {
  public:
   WasmDataSegmentEncoder(Zone* zone, const byte* data, uint32_t size,
                          uint32_t dest);
-  uint32_t HeaderSize() const;
-  uint32_t BodySize() const;
-  void Serialize(byte* buffer, byte** header, byte** body) const;
+  void Write(ZoneBuffer& buffer) const;
 
  private:
   ZoneVector<byte> data_;
   uint32_t dest_;
 };
 
-class WasmModuleIndex : public ZoneObject {
- public:
-  const byte* Begin() const { return begin_; }
-  const byte* End() const { return end_; }
-
- private:
-  friend class WasmModuleWriter;
-  WasmModuleIndex(const byte* begin, const byte* end)
-      : begin_(begin), end_(end) {}
-  const byte* begin_;
-  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;
-
- private:
-  friend class WasmModuleBuilder;
-  explicit WasmModuleWriter(Zone* zone);
-  ZoneVector<WasmFunctionImport> imports_;
-  ZoneVector<WasmFunctionEncoder*> functions_;
-  ZoneVector<WasmDataSegmentEncoder*> data_segments_;
-  ZoneVector<FunctionSig*> signatures_;
-  ZoneVector<uint32_t> indirect_functions_;
-  ZoneVector<std::pair<MachineType, bool>> globals_;
-  int start_function_index_;
-};
-
 class WasmModuleBuilder : public ZoneObject {
  public:
   explicit WasmModuleBuilder(Zone* zone);
+
+  // Building methods.
   uint32_t AddFunction();
   uint32_t AddGlobal(MachineType type, bool exported);
   WasmFunctionBuilder* FunctionAt(size_t index);
@@ -126,13 +189,17 @@
   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);
+
+  // Writing methods.
+  void WriteTo(ZoneBuffer& buffer) const;
 
   struct CompareFunctionSigs {
     bool operator()(FunctionSig* a, FunctionSig* b) const;
   };
   typedef ZoneMap<FunctionSig*, uint32_t, CompareFunctionSigs> SignatureMap;
 
+  Zone* zone() { return zone_; }
+
  private:
   Zone* zone_;
   ZoneVector<FunctionSig*> signatures_;
diff --git a/src/wasm/leb-helper.h b/src/wasm/leb-helper.h
index 7ba244d..0e4ba34 100644
--- a/src/wasm/leb-helper.h
+++ b/src/wasm/leb-helper.h
@@ -9,6 +9,9 @@
 namespace internal {
 namespace wasm {
 
+static const size_t kPaddedVarInt32Size = 5;
+static const size_t kMaxVarInt32Size = 5;
+
 class LEBHelper {
  public:
   // Write a 32-bit unsigned LEB to {dest}, updating {dest} to point after
diff --git a/src/wasm/module-decoder.cc b/src/wasm/module-decoder.cc
index f7d26a5..c356eb8 100644
--- a/src/wasm/module-decoder.cc
+++ b/src/wasm/module-decoder.cc
@@ -25,6 +25,8 @@
 #define TRACE(...)
 #endif
 
+namespace {
+
 // The main logic for decoding the bytes of a module.
 class ModuleDecoder : public Decoder {
  public:
@@ -108,9 +110,7 @@
       pos = pc_;
 
       // Read the section name.
-      int string_leb_length = 0;
-      uint32_t string_length =
-          consume_u32v(&string_leb_length, "section name length");
+      uint32_t string_length = consume_u32v("section name length");
       const byte* section_name_start = pc_;
       consume_bytes(string_length);
       if (failed()) {
@@ -118,13 +118,15 @@
         break;
       }
 
+      TRACE("  +%d  section name        : \"%.*s\"\n",
+            static_cast<int>(section_name_start - start_),
+            string_length < 20 ? string_length : 20, section_name_start);
+
       WasmSection::Code section =
           WasmSection::lookup(section_name_start, string_length);
 
       // Read and check the section size.
-      int section_leb_length = 0;
-      uint32_t section_length =
-          consume_u32v(&section_leb_length, "section length");
+      uint32_t section_length = consume_u32v("section length");
       if (!checkAvailable(section_length)) {
         // The section would extend beyond the end of the module.
         break;
@@ -140,18 +142,16 @@
           limit_ = pc_;
           break;
         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->min_mem_pages = consume_u32v("min memory");
+          module->max_mem_pages = consume_u32v("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");
+          uint32_t signatures_count = consume_u32v("signatures count");
           module->signatures.reserve(SafeReserve(signatures_count));
           // Decode signatures.
-          for (uint32_t i = 0; i < signatures_count; i++) {
+          for (uint32_t i = 0; i < signatures_count; ++i) {
             if (failed()) break;
             TRACE("DecodeSignature[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
@@ -161,37 +161,33 @@
           break;
         }
         case WasmSection::Code::FunctionSignatures: {
-          int length;
-          uint32_t functions_count = consume_u32v(&length, "functions count");
+          uint32_t functions_count = consume_u32v("functions count");
           module->functions.reserve(SafeReserve(functions_count));
-          for (uint32_t i = 0; i < functions_count; i++) {
+          for (uint32_t i = 0; i < functions_count; ++i) {
             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
+                                         0});      // code_end_offset
             WasmFunction* function = &module->functions.back();
             function->sig_index = consume_sig_index(module, &function->sig);
           }
           break;
         }
         case WasmSection::Code::FunctionBodies: {
-          int length;
           const byte* pos = pc_;
-          uint32_t functions_count = consume_u32v(&length, "functions count");
+          uint32_t functions_count = consume_u32v("functions count");
           if (functions_count != module->functions.size()) {
             error(pos, pos, "function body count %u mismatch (%u expected)",
                   functions_count,
                   static_cast<uint32_t>(module->functions.size()));
             break;
           }
-          for (uint32_t i = 0; i < functions_count; i++) {
+          for (uint32_t i = 0; i < functions_count; ++i) {
             WasmFunction* function = &module->functions[i];
-            int length;
-            uint32_t size = consume_u32v(&length, "body size");
+            uint32_t size = consume_u32v("body size");
             function->code_start_offset = pc_offset();
             function->code_end_offset = pc_offset() + size;
 
@@ -204,48 +200,9 @@
           }
           break;
         }
-        case WasmSection::Code::OldFunctions: {
-          int length;
-          uint32_t functions_count = consume_u32v(&length, "functions count");
-          module->functions.reserve(SafeReserve(functions_count));
-          // Set up module environment for verification.
-          ModuleEnv menv;
-          menv.module = module;
-          menv.instance = nullptr;
-          menv.origin = origin_;
-          // Decode functions.
-          for (uint32_t i = 0; i < functions_count; i++) {
-            if (failed()) break;
-            TRACE("DecodeFunction[%d] module+%d\n", i,
-                  static_cast<int>(pc_ - start_));
-
-            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);
-          }
-          if (ok() && verify_functions) {
-            for (uint32_t i = 0; i < functions_count; i++) {
-              if (failed()) break;
-              WasmFunction* function = &module->functions[i];
-              VerifyFunctionBody(i, &menv, function);
-              if (result_.failed()) {
-                error(result_.error_pc, result_.error_msg.get());
-              }
-            }
-          }
-          break;
-        }
         case WasmSection::Code::Names: {
-          int length;
           const byte* pos = pc_;
-          uint32_t functions_count = consume_u32v(&length, "functions count");
+          uint32_t functions_count = consume_u32v("functions count");
           if (functions_count != module->functions.size()) {
             error(pos, pos, "function name count %u mismatch (%u expected)",
                   functions_count,
@@ -253,13 +210,12 @@
             break;
           }
 
-          for (uint32_t i = 0; i < functions_count; i++) {
+          for (uint32_t i = 0; i < functions_count; ++i) {
             WasmFunction* function = &module->functions[i];
             function->name_offset =
                 consume_string(&function->name_length, false);
 
-            uint32_t local_names_count =
-                consume_u32v(&length, "local names count");
+            uint32_t local_names_count = consume_u32v("local names count");
             for (uint32_t j = 0; j < local_names_count; j++) {
               uint32_t unused = 0;
               uint32_t offset = consume_string(&unused, false);
@@ -270,11 +226,10 @@
           break;
         }
         case WasmSection::Code::Globals: {
-          int length;
-          uint32_t globals_count = consume_u32v(&length, "globals count");
+          uint32_t globals_count = consume_u32v("globals count");
           module->globals.reserve(SafeReserve(globals_count));
           // Decode globals.
-          for (uint32_t i = 0; i < globals_count; i++) {
+          for (uint32_t i = 0; i < globals_count; ++i) {
             if (failed()) break;
             TRACE("DecodeGlobal[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
@@ -285,12 +240,10 @@
           break;
         }
         case WasmSection::Code::DataSegments: {
-          int length;
-          uint32_t data_segments_count =
-              consume_u32v(&length, "data segments count");
+          uint32_t data_segments_count = consume_u32v("data segments count");
           module->data_segments.reserve(SafeReserve(data_segments_count));
           // Decode data segments.
-          for (uint32_t i = 0; i < data_segments_count; i++) {
+          for (uint32_t i = 0; i < data_segments_count; ++i) {
             if (failed()) break;
             TRACE("DecodeDataSegment[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
@@ -303,25 +256,39 @@
           }
           break;
         }
+        case WasmSection::Code::FunctionTablePad: {
+          if (!FLAG_wasm_jit_prototype) {
+            error("FunctionTablePad section without jiting enabled");
+          }
+          // An indirect function table requires functions first.
+          module->indirect_table_size = consume_u32v("indirect entry count");
+          if (module->indirect_table_size > 0 &&
+              module->indirect_table_size < module->function_table.size()) {
+            error("more predefined indirect entries than table can hold");
+          }
+          break;
+        }
         case WasmSection::Code::FunctionTable: {
           // An indirect function table requires functions first.
           CheckForFunctions(module, section);
-          int length;
-          uint32_t function_table_count =
-              consume_u32v(&length, "function table count");
+          uint32_t function_table_count = consume_u32v("function table count");
           module->function_table.reserve(SafeReserve(function_table_count));
           // Decode function table.
-          for (uint32_t i = 0; i < function_table_count; i++) {
+          for (uint32_t i = 0; i < function_table_count; ++i) {
             if (failed()) break;
             TRACE("DecodeFunctionTable[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
-            uint16_t index = consume_u32v(&length);
+            uint16_t index = consume_u32v();
             if (index >= module->functions.size()) {
               error(pc_ - 2, "invalid function index");
               break;
             }
             module->function_table.push_back(index);
           }
+          if (module->indirect_table_size > 0 &&
+              module->indirect_table_size < module->function_table.size()) {
+            error("more predefined indirect entries than table can hold");
+          }
           break;
         }
         case WasmSection::Code::StartFunction: {
@@ -341,12 +308,10 @@
           break;
         }
         case WasmSection::Code::ImportTable: {
-          int length;
-          uint32_t import_table_count =
-              consume_u32v(&length, "import table count");
+          uint32_t import_table_count = consume_u32v("import table count");
           module->import_table.reserve(SafeReserve(import_table_count));
           // Decode import table.
-          for (uint32_t i = 0; i < import_table_count; i++) {
+          for (uint32_t i = 0; i < import_table_count; ++i) {
             if (failed()) break;
             TRACE("DecodeImportTable[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
@@ -374,12 +339,10 @@
         case WasmSection::Code::ExportTable: {
           // Declares an export table.
           CheckForFunctions(module, section);
-          int length;
-          uint32_t export_table_count =
-              consume_u32v(&length, "export table count");
+          uint32_t export_table_count = consume_u32v("export table count");
           module->export_table.reserve(SafeReserve(export_table_count));
           // Decode export table.
-          for (uint32_t i = 0; i < export_table_count; i++) {
+          for (uint32_t i = 0; i < export_table_count; ++i) {
             if (failed()) break;
             TRACE("DecodeExportTable[%d] module+%d\n", i,
                   static_cast<int>(pc_ - start_));
@@ -393,6 +356,32 @@
             exp->func_index = consume_func_index(module, &func);
             exp->name_offset = consume_string(&exp->name_length, true);
           }
+          // Check for duplicate exports.
+          if (ok() && module->export_table.size() > 1) {
+            std::vector<WasmExport> sorted_exports(module->export_table);
+            const byte* base = start_;
+            auto cmp_less = [base](const WasmExport& a, const WasmExport& b) {
+              // Return true if a < b.
+              uint32_t len = a.name_length;
+              if (len != b.name_length) return len < b.name_length;
+              return memcmp(base + a.name_offset, base + b.name_offset, len) <
+                     0;
+            };
+            std::stable_sort(sorted_exports.begin(), sorted_exports.end(),
+                             cmp_less);
+            auto it = sorted_exports.begin();
+            WasmExport* last = &*it++;
+            for (auto end = sorted_exports.end(); it != end; last = &*it++) {
+              DCHECK(!cmp_less(*it, *last));  // Vector must be sorted.
+              if (!cmp_less(*last, *it)) {
+                const byte* pc = start_ + it->name_offset;
+                error(pc, pc,
+                      "Duplicate export name '%.*s' for functions %d and %d",
+                      it->name_length, pc, last->func_index, it->func_index);
+                break;
+              }
+            }
+          }
           break;
         }
         case WasmSection::Code::Max:
@@ -419,7 +408,9 @@
     }
 
   done:
-    ModuleResult result = toResult(module);
+    if (ok()) CalculateGlobalsOffsets(module);
+    const WasmModule* finished_module = module;
+    ModuleResult result = toResult(finished_module);
     if (FLAG_dump_wasm_module) {
       DumpModule(module, result);
     }
@@ -462,7 +453,6 @@
     function->name_length = 0;                // ---- name length
     function->code_start_offset = off(pc_);   // ---- code start
     function->code_end_offset = off(limit_);  // ---- code end
-    function->exported = false;               // ---- exported
 
     if (ok()) VerifyFunctionBody(0, module_env, function);
 
@@ -489,53 +479,15 @@
   // Decodes a single global entry inside a module starting at {pc_}.
   void DecodeGlobalInModule(WasmGlobal* global) {
     global->name_offset = consume_string(&global->name_length, false);
-    DCHECK(unibrow::Utf8::Validate(start_ + global->name_offset,
-                                   global->name_length));
+    if (!unibrow::Utf8::Validate(start_ + global->name_offset,
+                                 global->name_length)) {
+      error("global name is not valid utf8");
+    }
     global->type = mem_type();
     global->offset = 0;
     global->exported = consume_u8("exported") != 0;
   }
 
-  // Decodes a single function entry inside a module starting at {pc_}.
-  // TODO(titzer): legacy function body; remove
-  void DecodeFunctionInModule(WasmModule* module, WasmFunction* function,
-                              bool verify_body = true) {
-    byte decl_bits = consume_u8("function decl");
-
-    const byte* sigpos = pc_;
-    function->sig_index = consume_u16("signature index");
-
-    if (function->sig_index >= module->signatures.size()) {
-      return error(sigpos, "invalid signature index");
-    } else {
-      function->sig = module->signatures[function->sig_index];
-    }
-
-    TRACE("  +%d  <function attributes:%s%s>\n", static_cast<int>(pc_ - start_),
-          decl_bits & kDeclFunctionName ? " name" : "",
-          decl_bits & kDeclFunctionExport ? " exported" : "");
-
-    function->exported = decl_bits & kDeclFunctionExport;
-
-    if (decl_bits & kDeclFunctionName) {
-      function->name_offset =
-          consume_string(&function->name_length, function->exported);
-    }
-
-    uint16_t size = consume_u16("body size");
-    if (ok()) {
-      if ((pc_ + size) > limit_) {
-        return error(pc_, limit_,
-                     "expected %d bytes for function body, fell off end", size);
-      }
-      function->code_start_offset = static_cast<uint32_t>(pc_ - start_);
-      function->code_end_offset = function->code_start_offset + size;
-      TRACE("  +%d  %-20s: (%d bytes)\n", static_cast<int>(pc_ - start_),
-            "function body", size);
-      pc_ += size;
-    }
-  }
-
   bool IsWithinLimit(uint32_t limit, uint32_t offset, uint32_t size) {
     if (offset > limit) return false;
     if ((offset + size) < offset) return false;  // overflow
@@ -545,9 +497,8 @@
   // Decodes a single data segment entry inside a module starting at {pc_}.
   void DecodeDataSegmentInModule(WasmModule* module, WasmDataSegment* segment) {
     const byte* start = pc_;
-    int length;
-    segment->dest_addr = consume_u32v(&length, "destination");
-    segment->source_size = consume_u32v(&length, "source size");
+    segment->dest_addr = consume_u32v("destination");
+    segment->source_size = consume_u32v("source size");
     segment->source_offset = static_cast<uint32_t>(pc_ - start_);
     segment->init = true;
 
@@ -570,6 +521,22 @@
     consume_bytes(segment->source_size);
   }
 
+  // Calculate individual global offsets and total size of globals table.
+  void CalculateGlobalsOffsets(WasmModule* module) {
+    uint32_t offset = 0;
+    if (module->globals.size() == 0) {
+      module->globals_size = 0;
+      return;
+    }
+    for (WasmGlobal& global : module->globals) {
+      byte size = WasmOpcodes::MemSize(global.type);
+      offset = (offset + size - 1) & ~(size - 1);  // align
+      global.offset = offset;
+      offset += size;
+    }
+    module->globals_size = offset;
+  }
+
   // Verifies the body (code) of a given function.
   void VerifyFunctionBody(uint32_t func_num, ModuleEnv* menv,
                           WasmFunction* function) {
@@ -613,8 +580,7 @@
   // 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, bool validate_utf8) {
-    int varint_length;
-    *length = consume_u32v(&varint_length, "string length");
+    *length = consume_u32v("string length");
     uint32_t offset = pc_offset();
     TRACE("  +%u  %-20s: (%u bytes)\n", offset, "string", *length);
     if (validate_utf8 && !unibrow::Utf8::Validate(pc_, *length)) {
@@ -626,8 +592,7 @@
 
   uint32_t consume_sig_index(WasmModule* module, FunctionSig** sig) {
     const byte* pos = pc_;
-    int length;
-    uint32_t sig_index = consume_u32v(&length, "signature index");
+    uint32_t sig_index = consume_u32v("signature index");
     if (sig_index >= module->signatures.size()) {
       error(pos, pos, "signature index %u out of bounds (%d signatures)",
             sig_index, static_cast<int>(module->signatures.size()));
@@ -640,8 +605,7 @@
 
   uint32_t consume_func_index(WasmModule* module, WasmFunction** func) {
     const byte* pos = pc_;
-    int length;
-    uint32_t func_index = consume_u32v(&length, "function index");
+    uint32_t func_index = consume_u32v("function index");
     if (func_index >= module->functions.size()) {
       error(pos, pos, "function index %u out of bounds (%d functions)",
             func_index, static_cast<int>(module->functions.size()));
@@ -698,6 +662,8 @@
         return MachineType::Float32();
       case kMemF64:
         return MachineType::Float64();
+      case kMemS128:
+        return MachineType::Simd128();
       default:
         error(pc_ - 1, "invalid memory type");
         return MachineType::None();
@@ -713,11 +679,10 @@
             kWasmFunctionTypeForm, form);
       return nullptr;
     }
-    int length;
     // parse parameter types
-    uint32_t param_count = consume_u32v(&length, "param count");
+    uint32_t param_count = consume_u32v("param count");
     std::vector<LocalType> params;
-    for (uint32_t i = 0; i < param_count; i++) {
+    for (uint32_t i = 0; i < param_count; ++i) {
       LocalType param = consume_local_type();
       if (param == kAstStmt) error(pc_ - 1, "invalid void parameter type");
       params.push_back(param);
@@ -725,14 +690,14 @@
 
     // parse return types
     const byte* pt = pc_;
-    uint32_t return_count = consume_u32v(&length, "return count");
+    uint32_t return_count = consume_u32v("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++) {
+    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);
@@ -742,8 +707,8 @@
     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];
+    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);
   }
@@ -775,6 +740,41 @@
   }
 };
 
+Vector<const byte> FindSection(const byte* module_start, const byte* module_end,
+                               WasmSection::Code code) {
+  Decoder decoder(module_start, module_end);
+
+  uint32_t magic_word = decoder.consume_u32("wasm magic");
+  if (magic_word != kWasmMagic) decoder.error("wrong magic word");
+
+  uint32_t magic_version = decoder.consume_u32("wasm version");
+  if (magic_version != kWasmVersion) decoder.error("wrong wasm version");
+
+  while (decoder.more() && decoder.ok()) {
+    // Read the section name.
+    uint32_t string_length = decoder.consume_u32v("section name length");
+    const byte* section_name_start = decoder.pc();
+    decoder.consume_bytes(string_length);
+    if (decoder.failed()) break;
+
+    WasmSection::Code section =
+        WasmSection::lookup(section_name_start, string_length);
+
+    // Read and check the section size.
+    uint32_t section_length = decoder.consume_u32v("section length");
+
+    const byte* section_start = decoder.pc();
+    decoder.consume_bytes(section_length);
+    if (section == code && decoder.ok()) {
+      return Vector<const uint8_t>(section_start, section_length);
+    }
+  }
+
+  return Vector<const uint8_t>();
+}
+
+}  // namespace
+
 ModuleResult DecodeWasmModule(Isolate* isolate, Zone* zone,
                               const byte* module_start, const byte* module_end,
                               bool verify_functions, ModuleOrigin origin) {
@@ -818,6 +818,33 @@
   ModuleDecoder decoder(zone, function_start, function_end, kWasmOrigin);
   return decoder.DecodeSingleFunction(module_env, function);
 }
+
+FunctionOffsetsResult DecodeWasmFunctionOffsets(const byte* module_start,
+                                                const byte* module_end) {
+  Vector<const byte> code_section =
+      FindSection(module_start, module_end, WasmSection::Code::FunctionBodies);
+  Decoder decoder(code_section.start(), code_section.end());
+  if (!code_section.start()) decoder.error("no code section");
+
+  uint32_t functions_count = decoder.consume_u32v("functions count");
+  FunctionOffsets table;
+  // Take care of invalid input here.
+  if (functions_count < static_cast<unsigned>(code_section.length()) / 2)
+    table.reserve(functions_count);
+  int section_offset = static_cast<int>(code_section.start() - module_start);
+  DCHECK_LE(0, section_offset);
+  for (uint32_t i = 0; i < functions_count && decoder.ok(); ++i) {
+    uint32_t size = decoder.consume_u32v("body size");
+    int offset = static_cast<int>(section_offset + decoder.pc_offset());
+    table.push_back(std::make_pair(offset, static_cast<int>(size)));
+    DCHECK(table.back().first >= 0 && table.back().second >= 0);
+    decoder.consume_bytes(size);
+  }
+  if (decoder.more()) decoder.error("unexpected additional bytes");
+
+  return decoder.toResult(std::move(table));
+}
+
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/module-decoder.h b/src/wasm/module-decoder.h
index 00a9b87..dd6bd3b 100644
--- a/src/wasm/module-decoder.h
+++ b/src/wasm/module-decoder.h
@@ -26,6 +26,13 @@
 FunctionResult DecodeWasmFunction(Isolate* isolate, Zone* zone, ModuleEnv* env,
                                   const byte* function_start,
                                   const byte* function_end);
+
+// Extracts the function offset table from the wasm module bytes.
+// Returns a vector with <offset, length> entries, or failure if the wasm bytes
+// are detected as invalid. Note that this validation is not complete.
+FunctionOffsetsResult DecodeWasmFunctionOffsets(const byte* module_start,
+                                                const byte* module_end);
+
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/switch-logic.cc b/src/wasm/switch-logic.cc
index f8e3f0d..9ebc0b3 100644
--- a/src/wasm/switch-logic.cc
+++ b/src/wasm/switch-logic.cc
@@ -34,7 +34,7 @@
   }
   std::sort(cases->begin(), cases->end());
   ZoneVector<size_t> table_breaks(zone);
-  for (size_t i = 1; i < cases->size(); i++) {
+  for (size_t i = 1; i < cases->size(); ++i) {
     if (cases->at(i) - cases->at(i - 1) > max_distance) {
       table_breaks.push_back(i);
     }
@@ -42,7 +42,7 @@
   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++) {
+  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);
diff --git a/src/wasm/wasm-debug.cc b/src/wasm/wasm-debug.cc
new file mode 100644
index 0000000..5b9c2cb
--- /dev/null
+++ b/src/wasm/wasm-debug.cc
@@ -0,0 +1,185 @@
+// 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-debug.h"
+
+#include "src/assert-scope.h"
+#include "src/debug/debug.h"
+#include "src/factory.h"
+#include "src/isolate.h"
+#include "src/wasm/module-decoder.h"
+#include "src/wasm/wasm-module.h"
+
+using namespace v8::internal;
+using namespace v8::internal::wasm;
+
+namespace {
+
+enum {
+  kWasmDebugInfoWasmObj,
+  kWasmDebugInfoWasmBytesHash,
+  kWasmDebugInfoFunctionByteOffsets,
+  kWasmDebugInfoNumEntries
+};
+
+ByteArray *GetOrCreateFunctionOffsetTable(Handle<WasmDebugInfo> debug_info) {
+  Object *offset_table = debug_info->get(kWasmDebugInfoFunctionByteOffsets);
+  Isolate *isolate = debug_info->GetIsolate();
+  if (!offset_table->IsUndefined(isolate)) return ByteArray::cast(offset_table);
+
+  FunctionOffsetsResult function_offsets;
+  {
+    DisallowHeapAllocation no_gc;
+    SeqOneByteString *wasm_bytes =
+        wasm::GetWasmBytes(debug_info->wasm_object());
+    const byte *bytes_start = wasm_bytes->GetChars();
+    const byte *bytes_end = bytes_start + wasm_bytes->length();
+    function_offsets = wasm::DecodeWasmFunctionOffsets(bytes_start, bytes_end);
+  }
+  DCHECK(function_offsets.ok());
+  size_t array_size = 2 * kIntSize * function_offsets.val.size();
+  CHECK_LE(array_size, static_cast<size_t>(kMaxInt));
+  ByteArray *arr =
+      *isolate->factory()->NewByteArray(static_cast<int>(array_size));
+  int idx = 0;
+  for (std::pair<int, int> p : function_offsets.val) {
+    arr->set_int(idx++, p.first);
+    arr->set_int(idx++, p.second);
+  }
+  DCHECK_EQ(arr->length(), idx * kIntSize);
+  debug_info->set(kWasmDebugInfoFunctionByteOffsets, arr);
+
+  return arr;
+}
+
+std::pair<int, int> GetFunctionOffsetAndLength(Handle<WasmDebugInfo> debug_info,
+                                               int func_index) {
+  ByteArray *arr = GetOrCreateFunctionOffsetTable(debug_info);
+  DCHECK(func_index >= 0 && func_index < arr->length() / kIntSize / 2);
+
+  int offset = arr->get_int(2 * func_index);
+  int length = arr->get_int(2 * func_index + 1);
+  // Assert that it's distinguishable from the "illegal function index" return.
+  DCHECK(offset > 0 && length > 0);
+  return {offset, length};
+}
+
+Vector<const uint8_t> GetFunctionBytes(Handle<WasmDebugInfo> debug_info,
+                                       int func_index) {
+  SeqOneByteString *module_bytes =
+      wasm::GetWasmBytes(debug_info->wasm_object());
+  std::pair<int, int> offset_and_length =
+      GetFunctionOffsetAndLength(debug_info, func_index);
+  return Vector<const uint8_t>(
+      module_bytes->GetChars() + offset_and_length.first,
+      offset_and_length.second);
+}
+
+}  // namespace
+
+Handle<WasmDebugInfo> WasmDebugInfo::New(Handle<JSObject> wasm) {
+  Isolate *isolate = wasm->GetIsolate();
+  Factory *factory = isolate->factory();
+  Handle<FixedArray> arr =
+      factory->NewFixedArray(kWasmDebugInfoNumEntries, TENURED);
+  arr->set(kWasmDebugInfoWasmObj, *wasm);
+  int hash = 0;
+  Handle<SeqOneByteString> wasm_bytes(GetWasmBytes(*wasm), isolate);
+  {
+    DisallowHeapAllocation no_gc;
+    hash = StringHasher::HashSequentialString(
+        wasm_bytes->GetChars(), wasm_bytes->length(), kZeroHashSeed);
+  }
+  Handle<Object> hash_obj = factory->NewNumberFromInt(hash, TENURED);
+  arr->set(kWasmDebugInfoWasmBytesHash, *hash_obj);
+
+  return Handle<WasmDebugInfo>::cast(arr);
+}
+
+bool WasmDebugInfo::IsDebugInfo(Object *object) {
+  if (!object->IsFixedArray()) return false;
+  FixedArray *arr = FixedArray::cast(object);
+  Isolate *isolate = arr->GetIsolate();
+  return arr->length() == kWasmDebugInfoNumEntries &&
+         IsWasmObject(arr->get(kWasmDebugInfoWasmObj)) &&
+         arr->get(kWasmDebugInfoWasmBytesHash)->IsNumber() &&
+         (arr->get(kWasmDebugInfoFunctionByteOffsets)->IsUndefined(isolate) ||
+          arr->get(kWasmDebugInfoFunctionByteOffsets)->IsByteArray());
+}
+
+WasmDebugInfo *WasmDebugInfo::cast(Object *object) {
+  DCHECK(IsDebugInfo(object));
+  return reinterpret_cast<WasmDebugInfo *>(object);
+}
+
+JSObject *WasmDebugInfo::wasm_object() {
+  return JSObject::cast(get(kWasmDebugInfoWasmObj));
+}
+
+bool WasmDebugInfo::SetBreakPoint(int byte_offset) {
+  // TODO(clemensh): Implement this.
+  return false;
+}
+
+Handle<String> WasmDebugInfo::DisassembleFunction(
+    Handle<WasmDebugInfo> debug_info, int func_index) {
+  std::ostringstream disassembly_os;
+
+  {
+    Vector<const uint8_t> bytes_vec = GetFunctionBytes(debug_info, func_index);
+    DisallowHeapAllocation no_gc;
+
+    base::AccountingAllocator allocator;
+    bool ok = PrintAst(
+        &allocator, FunctionBodyForTesting(bytes_vec.start(), bytes_vec.end()),
+        disassembly_os, nullptr);
+    DCHECK(ok);
+    USE(ok);
+  }
+
+  // Unfortunately, we have to copy the string here.
+  std::string code_str = disassembly_os.str();
+  CHECK_LE(code_str.length(), static_cast<size_t>(kMaxInt));
+  Factory *factory = debug_info->GetIsolate()->factory();
+  Vector<const char> code_vec(code_str.data(),
+                              static_cast<int>(code_str.length()));
+  return factory->NewStringFromAscii(code_vec).ToHandleChecked();
+}
+
+Handle<FixedArray> WasmDebugInfo::GetFunctionOffsetTable(
+    Handle<WasmDebugInfo> debug_info, int func_index) {
+  class NullBuf : public std::streambuf {};
+  NullBuf null_buf;
+  std::ostream null_stream(&null_buf);
+
+  std::vector<std::tuple<uint32_t, int, int>> offset_table_vec;
+
+  {
+    Vector<const uint8_t> bytes_vec = GetFunctionBytes(debug_info, func_index);
+    DisallowHeapAllocation no_gc;
+
+    v8::base::AccountingAllocator allocator;
+    bool ok = PrintAst(
+        &allocator, FunctionBodyForTesting(bytes_vec.start(), bytes_vec.end()),
+        null_stream, &offset_table_vec);
+    DCHECK(ok);
+    USE(ok);
+  }
+
+  size_t arr_size = 3 * offset_table_vec.size();
+  CHECK_LE(arr_size, static_cast<size_t>(kMaxInt));
+  Factory *factory = debug_info->GetIsolate()->factory();
+  Handle<FixedArray> offset_table =
+      factory->NewFixedArray(static_cast<int>(arr_size), TENURED);
+
+  int idx = 0;
+  for (std::tuple<uint32_t, int, int> elem : offset_table_vec) {
+    offset_table->set(idx++, Smi::FromInt(std::get<0>(elem)));
+    offset_table->set(idx++, Smi::FromInt(std::get<1>(elem)));
+    offset_table->set(idx++, Smi::FromInt(std::get<2>(elem)));
+  }
+  DCHECK_EQ(idx, offset_table->length());
+
+  return offset_table;
+}
diff --git a/src/wasm/wasm-debug.h b/src/wasm/wasm-debug.h
new file mode 100644
index 0000000..48dc4be
--- /dev/null
+++ b/src/wasm/wasm-debug.h
@@ -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.
+
+#ifndef V8_WASM_DEBUG_H_
+#define V8_WASM_DEBUG_H_
+
+#include "src/handles.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+class WasmDebugInfo : public FixedArray {
+ public:
+  static Handle<WasmDebugInfo> New(Handle<JSObject> wasm);
+
+  static bool IsDebugInfo(Object* object);
+  static WasmDebugInfo* cast(Object* object);
+
+  JSObject* wasm_object();
+
+  bool SetBreakPoint(int byte_offset);
+
+  // Disassemble the specified function from this module.
+  static Handle<String> DisassembleFunction(Handle<WasmDebugInfo> debug_info,
+                                            int func_index);
+
+  // Get the offset table for the specified function.
+  // Returns an array with three entries per instruction: byte offset, line and
+  // column.
+  static Handle<FixedArray> GetFunctionOffsetTable(
+      Handle<WasmDebugInfo> debug_info, int func_index);
+};
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_WASM_DEBUG_H_
diff --git a/src/wasm/wasm-function-name-table.cc b/src/wasm/wasm-function-name-table.cc
index f082704..32c302d 100644
--- a/src/wasm/wasm-function-name-table.cc
+++ b/src/wasm/wasm-function-name-table.cc
@@ -14,59 +14,56 @@
 // 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.
+// If a function is unnamed (not to be confused with an empty name), then the
+// integer entry is the negative offset of the next function name.
 // 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) {
+Handle<ByteArray> BuildFunctionNamesTable(Isolate* isolate,
+                                          const 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();
+  // Check for overflow.
+  CHECK(total_array_length_int == total_array_length && num_funcs_int >= 0 &&
+        num_funcs_int == module->functions.size());
   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) {
+  for (const 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();
+    if (name.start() == nullptr) {
+      func_names_array->set_int(func_index + 1, -current_offset);
+    } else {
+      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) {
+MaybeHandle<String> 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();
+  Factory* factory = func_names_array->GetIsolate()->factory();
+  if (func_index >= num_funcs) return {};
   int offset = func_names_array->get_int(func_index + 1);
+  if (offset < 0) return {};
   int next_offset = func_index == num_funcs - 1
                         ? func_names_array->length()
-                        : func_names_array->get_int(func_index + 2);
+                        : abs(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();
+  if (!unibrow::Utf8::Validate(buffer.start(), buffer.length())) return {};
+  return factory->NewStringFromUtf8(Vector<const char>::cast(buffer));
 }
 
 }  // namespace wasm
diff --git a/src/wasm/wasm-function-name-table.h b/src/wasm/wasm-function-name-table.h
index 1a71372..ffee782 100644
--- a/src/wasm/wasm-function-name-table.h
+++ b/src/wasm/wasm-function-name-table.h
@@ -16,12 +16,15 @@
 struct WasmModule;
 
 // Encode all function names of the WasmModule into one ByteArray.
-Handle<Object> BuildFunctionNamesTable(Isolate* isolate, WasmModule* module);
+Handle<ByteArray> BuildFunctionNamesTable(Isolate* isolate,
+                                          const 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);
+// Extract the function name for the given func_index from the function name
+// table.
+// Returns a null handle if the respective function is unnamed (not to be
+// confused with empty names) or the function name is not a valid UTF-8 string.
+MaybeHandle<String> GetWasmFunctionNameFromTable(
+    Handle<ByteArray> wasm_names_table, uint32_t func_index);
 
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/wasm-interpreter.cc b/src/wasm/wasm-interpreter.cc
new file mode 100644
index 0000000..a88fa93
--- /dev/null
+++ b/src/wasm/wasm-interpreter.cc
@@ -0,0 +1,1830 @@
+// 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-interpreter.h"
+#include "src/wasm/ast-decoder.h"
+#include "src/wasm/decoder.h"
+#include "src/wasm/wasm-external-refs.h"
+#include "src/wasm/wasm-module.h"
+
+#include "src/base/accounting-allocator.h"
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+#if DEBUG
+#define TRACE(...)                                        \
+  do {                                                    \
+    if (FLAG_trace_wasm_interpreter) PrintF(__VA_ARGS__); \
+  } while (false)
+#else
+#define TRACE(...)
+#endif
+
+#define FOREACH_INTERNAL_OPCODE(V) V(Breakpoint, 0xFF)
+
+#define FOREACH_SIMPLE_BINOP(V) \
+  V(I32Add, uint32_t, +)        \
+  V(I32Sub, uint32_t, -)        \
+  V(I32Mul, uint32_t, *)        \
+  V(I32And, uint32_t, &)        \
+  V(I32Ior, uint32_t, |)        \
+  V(I32Xor, uint32_t, ^)        \
+  V(I32Eq, uint32_t, ==)        \
+  V(I32Ne, uint32_t, !=)        \
+  V(I32LtU, uint32_t, <)        \
+  V(I32LeU, uint32_t, <=)       \
+  V(I32GtU, uint32_t, >)        \
+  V(I32GeU, uint32_t, >=)       \
+  V(I32LtS, int32_t, <)         \
+  V(I32LeS, int32_t, <=)        \
+  V(I32GtS, int32_t, >)         \
+  V(I32GeS, int32_t, >=)        \
+  V(I64Add, uint64_t, +)        \
+  V(I64Sub, uint64_t, -)        \
+  V(I64Mul, uint64_t, *)        \
+  V(I64And, uint64_t, &)        \
+  V(I64Ior, uint64_t, |)        \
+  V(I64Xor, uint64_t, ^)        \
+  V(I64Eq, uint64_t, ==)        \
+  V(I64Ne, uint64_t, !=)        \
+  V(I64LtU, uint64_t, <)        \
+  V(I64LeU, uint64_t, <=)       \
+  V(I64GtU, uint64_t, >)        \
+  V(I64GeU, uint64_t, >=)       \
+  V(I64LtS, int64_t, <)         \
+  V(I64LeS, int64_t, <=)        \
+  V(I64GtS, int64_t, >)         \
+  V(I64GeS, int64_t, >=)        \
+  V(F32Add, float, +)           \
+  V(F32Mul, float, *)           \
+  V(F32Div, float, /)           \
+  V(F32Eq, float, ==)           \
+  V(F32Ne, float, !=)           \
+  V(F32Lt, float, <)            \
+  V(F32Le, float, <=)           \
+  V(F32Gt, float, >)            \
+  V(F32Ge, float, >=)           \
+  V(F64Add, double, +)          \
+  V(F64Mul, double, *)          \
+  V(F64Div, double, /)          \
+  V(F64Eq, double, ==)          \
+  V(F64Ne, double, !=)          \
+  V(F64Lt, double, <)           \
+  V(F64Le, double, <=)          \
+  V(F64Gt, double, >)           \
+  V(F64Ge, double, >=)
+
+#define FOREACH_OTHER_BINOP(V) \
+  V(I32DivS, int32_t)          \
+  V(I32DivU, uint32_t)         \
+  V(I32RemS, int32_t)          \
+  V(I32RemU, uint32_t)         \
+  V(I32Shl, uint32_t)          \
+  V(I32ShrU, uint32_t)         \
+  V(I32ShrS, int32_t)          \
+  V(I64DivS, int64_t)          \
+  V(I64DivU, uint64_t)         \
+  V(I64RemS, int64_t)          \
+  V(I64RemU, uint64_t)         \
+  V(I64Shl, uint64_t)          \
+  V(I64ShrU, uint64_t)         \
+  V(I64ShrS, int64_t)          \
+  V(I32Ror, int32_t)           \
+  V(I32Rol, int32_t)           \
+  V(I64Ror, int64_t)           \
+  V(I64Rol, int64_t)           \
+  V(F32Sub, float)             \
+  V(F32Min, float)             \
+  V(F32Max, float)             \
+  V(F32CopySign, float)        \
+  V(F64Min, double)            \
+  V(F64Max, double)            \
+  V(F64Sub, double)            \
+  V(F64CopySign, double)       \
+  V(I32AsmjsDivS, int32_t)     \
+  V(I32AsmjsDivU, uint32_t)    \
+  V(I32AsmjsRemS, int32_t)     \
+  V(I32AsmjsRemU, uint32_t)
+
+#define FOREACH_OTHER_UNOP(V)    \
+  V(I32Clz, uint32_t)            \
+  V(I32Ctz, uint32_t)            \
+  V(I32Popcnt, uint32_t)         \
+  V(I32Eqz, uint32_t)            \
+  V(I64Clz, uint64_t)            \
+  V(I64Ctz, uint64_t)            \
+  V(I64Popcnt, uint64_t)         \
+  V(I64Eqz, uint64_t)            \
+  V(F32Abs, float)               \
+  V(F32Neg, float)               \
+  V(F32Ceil, float)              \
+  V(F32Floor, float)             \
+  V(F32Trunc, float)             \
+  V(F32NearestInt, float)        \
+  V(F32Sqrt, float)              \
+  V(F64Abs, double)              \
+  V(F64Neg, double)              \
+  V(F64Ceil, double)             \
+  V(F64Floor, double)            \
+  V(F64Trunc, double)            \
+  V(F64NearestInt, double)       \
+  V(F64Sqrt, double)             \
+  V(I32SConvertF32, float)       \
+  V(I32SConvertF64, double)      \
+  V(I32UConvertF32, float)       \
+  V(I32UConvertF64, double)      \
+  V(I32ConvertI64, int64_t)      \
+  V(I64SConvertF32, float)       \
+  V(I64SConvertF64, double)      \
+  V(I64UConvertF32, float)       \
+  V(I64UConvertF64, double)      \
+  V(I64SConvertI32, int32_t)     \
+  V(I64UConvertI32, uint32_t)    \
+  V(F32SConvertI32, int32_t)     \
+  V(F32UConvertI32, uint32_t)    \
+  V(F32SConvertI64, int64_t)     \
+  V(F32UConvertI64, uint64_t)    \
+  V(F32ConvertF64, double)       \
+  V(F32ReinterpretI32, int32_t)  \
+  V(F64SConvertI32, int32_t)     \
+  V(F64UConvertI32, uint32_t)    \
+  V(F64SConvertI64, int64_t)     \
+  V(F64UConvertI64, uint64_t)    \
+  V(F64ConvertF32, float)        \
+  V(F64ReinterpretI64, int64_t)  \
+  V(I32ReinterpretF32, float)    \
+  V(I64ReinterpretF64, double)   \
+  V(I32AsmjsSConvertF32, float)  \
+  V(I32AsmjsUConvertF32, float)  \
+  V(I32AsmjsSConvertF64, double) \
+  V(I32AsmjsUConvertF64, double)
+
+static inline int32_t ExecuteI32DivS(int32_t a, int32_t b, TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapDivByZero;
+    return 0;
+  }
+  if (b == -1 && a == std::numeric_limits<int32_t>::min()) {
+    *trap = kTrapDivUnrepresentable;
+    return 0;
+  }
+  return a / b;
+}
+
+static inline uint32_t ExecuteI32DivU(uint32_t a, uint32_t b,
+                                      TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapDivByZero;
+    return 0;
+  }
+  return a / b;
+}
+
+static inline int32_t ExecuteI32RemS(int32_t a, int32_t b, TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapRemByZero;
+    return 0;
+  }
+  if (b == -1) return 0;
+  return a % b;
+}
+
+static inline uint32_t ExecuteI32RemU(uint32_t a, uint32_t b,
+                                      TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapRemByZero;
+    return 0;
+  }
+  return a % b;
+}
+
+static inline uint32_t ExecuteI32Shl(uint32_t a, uint32_t b, TrapReason* trap) {
+  return a << (b & 0x1f);
+}
+
+static inline uint32_t ExecuteI32ShrU(uint32_t a, uint32_t b,
+                                      TrapReason* trap) {
+  return a >> (b & 0x1f);
+}
+
+static inline int32_t ExecuteI32ShrS(int32_t a, int32_t b, TrapReason* trap) {
+  return a >> (b & 0x1f);
+}
+
+static inline int64_t ExecuteI64DivS(int64_t a, int64_t b, TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapDivByZero;
+    return 0;
+  }
+  if (b == -1 && a == std::numeric_limits<int64_t>::min()) {
+    *trap = kTrapDivUnrepresentable;
+    return 0;
+  }
+  return a / b;
+}
+
+static inline uint64_t ExecuteI64DivU(uint64_t a, uint64_t b,
+                                      TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapDivByZero;
+    return 0;
+  }
+  return a / b;
+}
+
+static inline int64_t ExecuteI64RemS(int64_t a, int64_t b, TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapRemByZero;
+    return 0;
+  }
+  if (b == -1) return 0;
+  return a % b;
+}
+
+static inline uint64_t ExecuteI64RemU(uint64_t a, uint64_t b,
+                                      TrapReason* trap) {
+  if (b == 0) {
+    *trap = kTrapRemByZero;
+    return 0;
+  }
+  return a % b;
+}
+
+static inline uint64_t ExecuteI64Shl(uint64_t a, uint64_t b, TrapReason* trap) {
+  return a << (b & 0x3f);
+}
+
+static inline uint64_t ExecuteI64ShrU(uint64_t a, uint64_t b,
+                                      TrapReason* trap) {
+  return a >> (b & 0x3f);
+}
+
+static inline int64_t ExecuteI64ShrS(int64_t a, int64_t b, TrapReason* trap) {
+  return a >> (b & 0x3f);
+}
+
+static inline uint32_t ExecuteI32Ror(uint32_t a, uint32_t b, TrapReason* trap) {
+  uint32_t shift = (b & 0x1f);
+  return (a >> shift) | (a << (32 - shift));
+}
+
+static inline uint32_t ExecuteI32Rol(uint32_t a, uint32_t b, TrapReason* trap) {
+  uint32_t shift = (b & 0x1f);
+  return (a << shift) | (a >> (32 - shift));
+}
+
+static inline uint64_t ExecuteI64Ror(uint64_t a, uint64_t b, TrapReason* trap) {
+  uint32_t shift = (b & 0x3f);
+  return (a >> shift) | (a << (64 - shift));
+}
+
+static inline uint64_t ExecuteI64Rol(uint64_t a, uint64_t b, TrapReason* trap) {
+  uint32_t shift = (b & 0x3f);
+  return (a << shift) | (a >> (64 - shift));
+}
+
+static float quiet(float a) {
+  static const uint32_t kSignalingBit = 1 << 22;
+  uint32_t q = bit_cast<uint32_t>(std::numeric_limits<float>::quiet_NaN());
+  if ((q & kSignalingBit) != 0) {
+    // On some machines, the signaling bit set indicates it's a quiet NaN.
+    return bit_cast<float>(bit_cast<uint32_t>(a) | kSignalingBit);
+  } else {
+    // On others, the signaling bit set indicates it's a signaling NaN.
+    return bit_cast<float>(bit_cast<uint32_t>(a) & ~kSignalingBit);
+  }
+}
+
+static double quiet(double a) {
+  static const uint64_t kSignalingBit = 1ULL << 51;
+  uint64_t q = bit_cast<uint64_t>(std::numeric_limits<double>::quiet_NaN());
+  if ((q & kSignalingBit) != 0) {
+    // On some machines, the signaling bit set indicates it's a quiet NaN.
+    return bit_cast<double>(bit_cast<uint64_t>(a) | kSignalingBit);
+  } else {
+    // On others, the signaling bit set indicates it's a signaling NaN.
+    return bit_cast<double>(bit_cast<uint64_t>(a) & ~kSignalingBit);
+  }
+}
+
+static inline float ExecuteF32Sub(float a, float b, TrapReason* trap) {
+  float result = a - b;
+  // Some architectures (e.g. MIPS) need extra checking to preserve the payload
+  // of a NaN operand.
+  if (result - result != 0) {
+    if (std::isnan(a)) return quiet(a);
+    if (std::isnan(b)) return quiet(b);
+  }
+  return result;
+}
+
+static inline float ExecuteF32Min(float a, float b, TrapReason* trap) {
+  if (std::isnan(a)) return quiet(a);
+  if (std::isnan(b)) return quiet(b);
+  return std::min(a, b);
+}
+
+static inline float ExecuteF32Max(float a, float b, TrapReason* trap) {
+  if (std::isnan(a)) return quiet(a);
+  if (std::isnan(b)) return quiet(b);
+  return std::max(a, b);
+}
+
+static inline float ExecuteF32CopySign(float a, float b, TrapReason* trap) {
+  return copysignf(a, b);
+}
+
+static inline double ExecuteF64Sub(double a, double b, TrapReason* trap) {
+  double result = a - b;
+  // Some architectures (e.g. MIPS) need extra checking to preserve the payload
+  // of a NaN operand.
+  if (result - result != 0) {
+    if (std::isnan(a)) return quiet(a);
+    if (std::isnan(b)) return quiet(b);
+  }
+  return result;
+}
+
+static inline double ExecuteF64Min(double a, double b, TrapReason* trap) {
+  if (std::isnan(a)) return quiet(a);
+  if (std::isnan(b)) return quiet(b);
+  return std::min(a, b);
+}
+
+static inline double ExecuteF64Max(double a, double b, TrapReason* trap) {
+  if (std::isnan(a)) return quiet(a);
+  if (std::isnan(b)) return quiet(b);
+  return std::max(a, b);
+}
+
+static inline double ExecuteF64CopySign(double a, double b, TrapReason* trap) {
+  return copysign(a, b);
+}
+
+static inline int32_t ExecuteI32AsmjsDivS(int32_t a, int32_t b,
+                                          TrapReason* trap) {
+  if (b == 0) return 0;
+  if (b == -1 && a == std::numeric_limits<int32_t>::min()) {
+    return std::numeric_limits<int32_t>::min();
+  }
+  return a / b;
+}
+
+static inline uint32_t ExecuteI32AsmjsDivU(uint32_t a, uint32_t b,
+                                           TrapReason* trap) {
+  if (b == 0) return 0;
+  return a / b;
+}
+
+static inline int32_t ExecuteI32AsmjsRemS(int32_t a, int32_t b,
+                                          TrapReason* trap) {
+  if (b == 0) return 0;
+  if (b == -1) return 0;
+  return a % b;
+}
+
+static inline uint32_t ExecuteI32AsmjsRemU(uint32_t a, uint32_t b,
+                                           TrapReason* trap) {
+  if (b == 0) return 0;
+  return a % b;
+}
+
+static inline int32_t ExecuteI32AsmjsSConvertF32(float a, TrapReason* trap) {
+  return DoubleToInt32(a);
+}
+
+static inline uint32_t ExecuteI32AsmjsUConvertF32(float a, TrapReason* trap) {
+  return DoubleToUint32(a);
+}
+
+static inline int32_t ExecuteI32AsmjsSConvertF64(double a, TrapReason* trap) {
+  return DoubleToInt32(a);
+}
+
+static inline uint32_t ExecuteI32AsmjsUConvertF64(double a, TrapReason* trap) {
+  return DoubleToUint32(a);
+}
+
+static int32_t ExecuteI32Clz(uint32_t val, TrapReason* trap) {
+  return base::bits::CountLeadingZeros32(val);
+}
+
+static uint32_t ExecuteI32Ctz(uint32_t val, TrapReason* trap) {
+  return base::bits::CountTrailingZeros32(val);
+}
+
+static uint32_t ExecuteI32Popcnt(uint32_t val, TrapReason* trap) {
+  return word32_popcnt_wrapper(&val);
+}
+
+static inline uint32_t ExecuteI32Eqz(uint32_t val, TrapReason* trap) {
+  return val == 0 ? 1 : 0;
+}
+
+static int64_t ExecuteI64Clz(uint64_t val, TrapReason* trap) {
+  return base::bits::CountLeadingZeros64(val);
+}
+
+static inline uint64_t ExecuteI64Ctz(uint64_t val, TrapReason* trap) {
+  return base::bits::CountTrailingZeros64(val);
+}
+
+static inline int64_t ExecuteI64Popcnt(uint64_t val, TrapReason* trap) {
+  return word64_popcnt_wrapper(&val);
+}
+
+static inline int32_t ExecuteI64Eqz(uint64_t val, TrapReason* trap) {
+  return val == 0 ? 1 : 0;
+}
+
+static inline float ExecuteF32Abs(float a, TrapReason* trap) {
+  return bit_cast<float>(bit_cast<uint32_t>(a) & 0x7fffffff);
+}
+
+static inline float ExecuteF32Neg(float a, TrapReason* trap) {
+  return bit_cast<float>(bit_cast<uint32_t>(a) ^ 0x80000000);
+}
+
+static inline float ExecuteF32Ceil(float a, TrapReason* trap) {
+  return ceilf(a);
+}
+
+static inline float ExecuteF32Floor(float a, TrapReason* trap) {
+  return floorf(a);
+}
+
+static inline float ExecuteF32Trunc(float a, TrapReason* trap) {
+  return truncf(a);
+}
+
+static inline float ExecuteF32NearestInt(float a, TrapReason* trap) {
+  return nearbyintf(a);
+}
+
+static inline float ExecuteF32Sqrt(float a, TrapReason* trap) {
+  return sqrtf(a);
+}
+
+static inline double ExecuteF64Abs(double a, TrapReason* trap) {
+  return bit_cast<double>(bit_cast<uint64_t>(a) & 0x7fffffffffffffff);
+}
+
+static inline double ExecuteF64Neg(double a, TrapReason* trap) {
+  return bit_cast<double>(bit_cast<uint64_t>(a) ^ 0x8000000000000000);
+}
+
+static inline double ExecuteF64Ceil(double a, TrapReason* trap) {
+  return ceil(a);
+}
+
+static inline double ExecuteF64Floor(double a, TrapReason* trap) {
+  return floor(a);
+}
+
+static inline double ExecuteF64Trunc(double a, TrapReason* trap) {
+  return trunc(a);
+}
+
+static inline double ExecuteF64NearestInt(double a, TrapReason* trap) {
+  return nearbyint(a);
+}
+
+static inline double ExecuteF64Sqrt(double a, TrapReason* trap) {
+  return sqrt(a);
+}
+
+static int32_t ExecuteI32SConvertF32(float a, TrapReason* trap) {
+  if (a < static_cast<float>(INT32_MAX) && a >= static_cast<float>(INT32_MIN)) {
+    return static_cast<int32_t>(a);
+  }
+  *trap = kTrapFloatUnrepresentable;
+  return 0;
+}
+
+static int32_t ExecuteI32SConvertF64(double a, TrapReason* trap) {
+  if (a < (static_cast<double>(INT32_MAX) + 1.0) &&
+      a > (static_cast<double>(INT32_MIN) - 1.0)) {
+    return static_cast<int32_t>(a);
+  }
+  *trap = kTrapFloatUnrepresentable;
+  return 0;
+}
+
+static uint32_t ExecuteI32UConvertF32(float a, TrapReason* trap) {
+  if (a < (static_cast<float>(UINT32_MAX) + 1.0) && a > -1) {
+    return static_cast<uint32_t>(a);
+  }
+  *trap = kTrapFloatUnrepresentable;
+  return 0;
+}
+
+static uint32_t ExecuteI32UConvertF64(double a, TrapReason* trap) {
+  if (a < (static_cast<float>(UINT32_MAX) + 1.0) && a > -1) {
+    return static_cast<uint32_t>(a);
+  }
+  *trap = kTrapFloatUnrepresentable;
+  return 0;
+}
+
+static inline uint32_t ExecuteI32ConvertI64(int64_t a, TrapReason* trap) {
+  return static_cast<uint32_t>(a & 0xFFFFFFFF);
+}
+
+static int64_t ExecuteI64SConvertF32(float a, TrapReason* trap) {
+  int64_t output;
+  if (!float32_to_int64_wrapper(&a, &output)) {
+    *trap = kTrapFloatUnrepresentable;
+  }
+  return output;
+}
+
+static int64_t ExecuteI64SConvertF64(double a, TrapReason* trap) {
+  int64_t output;
+  if (!float64_to_int64_wrapper(&a, &output)) {
+    *trap = kTrapFloatUnrepresentable;
+  }
+  return output;
+}
+
+static uint64_t ExecuteI64UConvertF32(float a, TrapReason* trap) {
+  uint64_t output;
+  if (!float32_to_uint64_wrapper(&a, &output)) {
+    *trap = kTrapFloatUnrepresentable;
+  }
+  return output;
+}
+
+static uint64_t ExecuteI64UConvertF64(double a, TrapReason* trap) {
+  uint64_t output;
+  if (!float64_to_uint64_wrapper(&a, &output)) {
+    *trap = kTrapFloatUnrepresentable;
+  }
+  return output;
+}
+
+static inline int64_t ExecuteI64SConvertI32(int32_t a, TrapReason* trap) {
+  return static_cast<int64_t>(a);
+}
+
+static inline int64_t ExecuteI64UConvertI32(uint32_t a, TrapReason* trap) {
+  return static_cast<uint64_t>(a);
+}
+
+static inline float ExecuteF32SConvertI32(int32_t a, TrapReason* trap) {
+  return static_cast<float>(a);
+}
+
+static inline float ExecuteF32UConvertI32(uint32_t a, TrapReason* trap) {
+  return static_cast<float>(a);
+}
+
+static inline float ExecuteF32SConvertI64(int64_t a, TrapReason* trap) {
+  float output;
+  int64_to_float32_wrapper(&a, &output);
+  return output;
+}
+
+static inline float ExecuteF32UConvertI64(uint64_t a, TrapReason* trap) {
+  float output;
+  uint64_to_float32_wrapper(&a, &output);
+  return output;
+}
+
+static inline float ExecuteF32ConvertF64(double a, TrapReason* trap) {
+  return static_cast<float>(a);
+}
+
+static inline float ExecuteF32ReinterpretI32(int32_t a, TrapReason* trap) {
+  return bit_cast<float>(a);
+}
+
+static inline double ExecuteF64SConvertI32(int32_t a, TrapReason* trap) {
+  return static_cast<double>(a);
+}
+
+static inline double ExecuteF64UConvertI32(uint32_t a, TrapReason* trap) {
+  return static_cast<double>(a);
+}
+
+static inline double ExecuteF64SConvertI64(int64_t a, TrapReason* trap) {
+  double output;
+  int64_to_float64_wrapper(&a, &output);
+  return output;
+}
+
+static inline double ExecuteF64UConvertI64(uint64_t a, TrapReason* trap) {
+  double output;
+  uint64_to_float64_wrapper(&a, &output);
+  return output;
+}
+
+static inline double ExecuteF64ConvertF32(float a, TrapReason* trap) {
+  return static_cast<double>(a);
+}
+
+static inline double ExecuteF64ReinterpretI64(int64_t a, TrapReason* trap) {
+  return bit_cast<double>(a);
+}
+
+static inline int32_t ExecuteI32ReinterpretF32(float a, TrapReason* trap) {
+  return bit_cast<int32_t>(a);
+}
+
+static inline int64_t ExecuteI64ReinterpretF64(double a, TrapReason* trap) {
+  return bit_cast<int64_t>(a);
+}
+
+enum InternalOpcode {
+#define DECL_INTERNAL_ENUM(name, value) kInternal##name = value,
+  FOREACH_INTERNAL_OPCODE(DECL_INTERNAL_ENUM)
+#undef DECL_INTERNAL_ENUM
+};
+
+static const char* OpcodeName(uint32_t val) {
+  switch (val) {
+#define DECL_INTERNAL_CASE(name, value) \
+  case kInternal##name:                 \
+    return "Internal" #name;
+    FOREACH_INTERNAL_OPCODE(DECL_INTERNAL_CASE)
+#undef DECL_INTERNAL_CASE
+  }
+  return WasmOpcodes::OpcodeName(static_cast<WasmOpcode>(val));
+}
+
+static const int kRunSteps = 1000;
+
+// A helper class to compute the control transfers for each bytecode offset.
+// Control transfers allow Br, BrIf, BrTable, If, Else, and End bytecodes to
+// be directly executed without the need to dynamically track blocks.
+class ControlTransfers : public ZoneObject {
+ public:
+  ControlTransferMap map_;
+
+  ControlTransfers(Zone* zone, size_t locals_encoded_size, const byte* start,
+                   const byte* end)
+      : map_(zone) {
+    // A control reference including from PC, from value depth, and whether
+    // a value is explicitly passed (e.g. br/br_if/br_table with value).
+    struct CRef {
+      const byte* pc;
+      sp_t value_depth;
+      bool explicit_value;
+    };
+
+    // Represents a control flow label.
+    struct CLabel : public ZoneObject {
+      const byte* target;
+      size_t value_depth;
+      ZoneVector<CRef> refs;
+
+      CLabel(Zone* zone, size_t v)
+          : target(nullptr), value_depth(v), refs(zone) {}
+
+      // Bind this label to the given PC.
+      void Bind(ControlTransferMap* map, const byte* start, const byte* pc,
+                bool expect_value) {
+        DCHECK_NULL(target);
+        target = pc;
+        for (auto from : refs) {
+          auto pcdiff = static_cast<pcdiff_t>(target - from.pc);
+          auto spdiff = static_cast<spdiff_t>(from.value_depth - value_depth);
+          ControlTransfer::StackAction action = ControlTransfer::kNoAction;
+          if (expect_value && !from.explicit_value) {
+            action = spdiff == 0 ? ControlTransfer::kPushVoid
+                                 : ControlTransfer::kPopAndRepush;
+          }
+          pc_t offset = static_cast<size_t>(from.pc - start);
+          (*map)[offset] = {pcdiff, spdiff, action};
+        }
+      }
+
+      // Reference this label from the given location.
+      void Ref(ControlTransferMap* map, const byte* start, CRef from) {
+        DCHECK_GE(from.value_depth, value_depth);
+        if (target) {
+          auto pcdiff = static_cast<pcdiff_t>(target - from.pc);
+          auto spdiff = static_cast<spdiff_t>(from.value_depth - value_depth);
+          pc_t offset = static_cast<size_t>(from.pc - start);
+          (*map)[offset] = {pcdiff, spdiff, ControlTransfer::kNoAction};
+        } else {
+          refs.push_back(from);
+        }
+      }
+    };
+
+    // An entry in the control stack.
+    struct Control {
+      const byte* pc;
+      CLabel* end_label;
+      CLabel* else_label;
+
+      void Ref(ControlTransferMap* map, const byte* start, const byte* from_pc,
+               size_t from_value_depth, bool explicit_value) {
+        end_label->Ref(map, start, {from_pc, from_value_depth, explicit_value});
+      }
+    };
+
+    // Compute the ControlTransfer map.
+    // This works by maintaining a stack of control constructs similar to the
+    // AST decoder. The {control_stack} allows matching {br,br_if,br_table}
+    // bytecodes with their target, as well as determining whether the current
+    // bytecodes are within the true or false block of an else.
+    // The value stack depth is tracked as {value_depth} and is needed to
+    // determine how many values to pop off the stack for explicit and
+    // implicit control flow.
+
+    std::vector<Control> control_stack;
+    size_t value_depth = 0;
+    Decoder decoder(start, end);  // for reading operands.
+    const byte* pc = start + locals_encoded_size;
+
+    while (pc < end) {
+      WasmOpcode opcode = static_cast<WasmOpcode>(*pc);
+      TRACE("@%td: control %s (depth = %zu)\n", (pc - start),
+            WasmOpcodes::OpcodeName(opcode), value_depth);
+      switch (opcode) {
+        case kExprBlock: {
+          TRACE("control @%td $%zu: Block\n", (pc - start), value_depth);
+          CLabel* label = new (zone) CLabel(zone, value_depth);
+          control_stack.push_back({pc, label, nullptr});
+          break;
+        }
+        case kExprLoop: {
+          TRACE("control @%td $%zu: Loop\n", (pc - start), value_depth);
+          CLabel* label1 = new (zone) CLabel(zone, value_depth);
+          CLabel* label2 = new (zone) CLabel(zone, value_depth);
+          control_stack.push_back({pc, label1, nullptr});
+          control_stack.push_back({pc, label2, nullptr});
+          label2->Bind(&map_, start, pc, false);
+          break;
+        }
+        case kExprIf: {
+          TRACE("control @%td $%zu: If\n", (pc - start), value_depth);
+          value_depth--;
+          CLabel* end_label = new (zone) CLabel(zone, value_depth);
+          CLabel* else_label = new (zone) CLabel(zone, value_depth);
+          control_stack.push_back({pc, end_label, else_label});
+          else_label->Ref(&map_, start, {pc, value_depth, false});
+          break;
+        }
+        case kExprElse: {
+          Control* c = &control_stack.back();
+          TRACE("control @%td $%zu: Else\n", (pc - start), value_depth);
+          c->end_label->Ref(&map_, start, {pc, value_depth, false});
+          value_depth = c->end_label->value_depth;
+          DCHECK_NOT_NULL(c->else_label);
+          c->else_label->Bind(&map_, start, pc + 1, false);
+          c->else_label = nullptr;
+          break;
+        }
+        case kExprEnd: {
+          Control* c = &control_stack.back();
+          TRACE("control @%td $%zu: End\n", (pc - start), value_depth);
+          if (c->end_label->target) {
+            // only loops have bound labels.
+            DCHECK_EQ(kExprLoop, *c->pc);
+            control_stack.pop_back();
+            c = &control_stack.back();
+          }
+          if (c->else_label) c->else_label->Bind(&map_, start, pc + 1, true);
+          c->end_label->Ref(&map_, start, {pc, value_depth, false});
+          c->end_label->Bind(&map_, start, pc + 1, true);
+          value_depth = c->end_label->value_depth + 1;
+          control_stack.pop_back();
+          break;
+        }
+        case kExprBr: {
+          BreakDepthOperand operand(&decoder, pc);
+          TRACE("control @%td $%zu: Br[arity=%u, depth=%u]\n", (pc - start),
+                value_depth, operand.arity, operand.depth);
+          value_depth -= operand.arity;
+          control_stack[control_stack.size() - operand.depth - 1].Ref(
+              &map_, start, pc, value_depth, operand.arity > 0);
+          value_depth++;
+          break;
+        }
+        case kExprBrIf: {
+          BreakDepthOperand operand(&decoder, pc);
+          TRACE("control @%td $%zu: BrIf[arity=%u, depth=%u]\n", (pc - start),
+                value_depth, operand.arity, operand.depth);
+          value_depth -= (operand.arity + 1);
+          control_stack[control_stack.size() - operand.depth - 1].Ref(
+              &map_, start, pc, value_depth, operand.arity > 0);
+          value_depth++;
+          break;
+        }
+        case kExprBrTable: {
+          BranchTableOperand operand(&decoder, pc);
+          TRACE("control @%td $%zu: BrTable[arity=%u count=%u]\n", (pc - start),
+                value_depth, operand.arity, operand.table_count);
+          value_depth -= (operand.arity + 1);
+          for (uint32_t i = 0; i < operand.table_count + 1; ++i) {
+            uint32_t target = operand.read_entry(&decoder, i);
+            control_stack[control_stack.size() - target - 1].Ref(
+                &map_, start, pc + i, value_depth, operand.arity > 0);
+          }
+          value_depth++;
+          break;
+        }
+        default: {
+          value_depth = value_depth - OpcodeArity(pc, end) + 1;
+          break;
+        }
+      }
+
+      pc += OpcodeLength(pc, end);
+    }
+  }
+
+  ControlTransfer Lookup(pc_t from) {
+    auto result = map_.find(from);
+    if (result == map_.end()) {
+      V8_Fatal(__FILE__, __LINE__, "no control target for pc %zu", from);
+    }
+    return result->second;
+  }
+};
+
+// Code and metadata needed to execute a function.
+struct InterpreterCode {
+  const WasmFunction* function;  // wasm function
+  AstLocalDecls locals;          // local declarations
+  const byte* orig_start;        // start of original code
+  const byte* orig_end;          // end of original code
+  byte* start;                   // start of (maybe altered) code
+  byte* end;                     // end of (maybe altered) code
+  ControlTransfers* targets;     // helper for control flow.
+
+  const byte* at(pc_t pc) { return start + pc; }
+};
+
+// The main storage for interpreter code. It maps {WasmFunction} to the
+// metadata needed to execute each function.
+class CodeMap {
+ public:
+  Zone* zone_;
+  const WasmModule* module_;
+  ZoneVector<InterpreterCode> interpreter_code_;
+
+  CodeMap(const WasmModule* module, Zone* zone)
+      : zone_(zone), module_(module), interpreter_code_(zone) {
+    if (module == nullptr) return;
+    for (size_t i = 0; i < module->functions.size(); ++i) {
+      const WasmFunction* function = &module->functions[i];
+      const byte* code_start =
+          module->module_start + function->code_start_offset;
+      const byte* code_end = module->module_start + function->code_end_offset;
+      AddFunction(function, code_start, code_end);
+    }
+  }
+
+  InterpreterCode* FindCode(const WasmFunction* function) {
+    if (function->func_index < interpreter_code_.size()) {
+      InterpreterCode* code = &interpreter_code_[function->func_index];
+      DCHECK_EQ(function, code->function);
+      return code;
+    }
+    return nullptr;
+  }
+
+  InterpreterCode* GetCode(uint32_t function_index) {
+    CHECK_LT(function_index, interpreter_code_.size());
+    return Preprocess(&interpreter_code_[function_index]);
+  }
+
+  InterpreterCode* GetIndirectCode(uint32_t indirect_index) {
+    if (indirect_index >= module_->function_table.size()) return nullptr;
+    uint32_t index = module_->function_table[indirect_index];
+    if (index >= interpreter_code_.size()) return nullptr;
+    return GetCode(index);
+  }
+
+  InterpreterCode* Preprocess(InterpreterCode* code) {
+    if (code->targets == nullptr && code->start) {
+      // Compute the control targets map and the local declarations.
+      CHECK(DecodeLocalDecls(code->locals, code->start, code->end));
+      code->targets =
+          new (zone_) ControlTransfers(zone_, code->locals.decls_encoded_size,
+                                       code->orig_start, code->orig_end);
+    }
+    return code;
+  }
+
+  int AddFunction(const WasmFunction* function, const byte* code_start,
+                  const byte* code_end) {
+    InterpreterCode code = {
+        function, AstLocalDecls(zone_),          code_start,
+        code_end, const_cast<byte*>(code_start), const_cast<byte*>(code_end),
+        nullptr};
+
+    DCHECK_EQ(interpreter_code_.size(), function->func_index);
+    interpreter_code_.push_back(code);
+    return static_cast<int>(interpreter_code_.size()) - 1;
+  }
+
+  bool SetFunctionCode(const WasmFunction* function, const byte* start,
+                       const byte* end) {
+    InterpreterCode* code = FindCode(function);
+    if (code == nullptr) return false;
+    code->targets = nullptr;
+    code->orig_start = start;
+    code->orig_end = end;
+    code->start = const_cast<byte*>(start);
+    code->end = const_cast<byte*>(end);
+    Preprocess(code);
+    return true;
+  }
+};
+
+// Responsible for executing code directly.
+class ThreadImpl : public WasmInterpreter::Thread {
+ public:
+  ThreadImpl(Zone* zone, CodeMap* codemap, WasmModuleInstance* instance)
+      : codemap_(codemap),
+        instance_(instance),
+        stack_(zone),
+        frames_(zone),
+        state_(WasmInterpreter::STOPPED),
+        break_pc_(kInvalidPc),
+        trap_reason_(kTrapCount) {}
+
+  virtual ~ThreadImpl() {}
+
+  //==========================================================================
+  // Implementation of public interface for WasmInterpreter::Thread.
+  //==========================================================================
+
+  virtual WasmInterpreter::State state() { return state_; }
+
+  virtual void PushFrame(const WasmFunction* function, WasmVal* args) {
+    InterpreterCode* code = codemap()->FindCode(function);
+    CHECK_NOT_NULL(code);
+    frames_.push_back({code, 0, 0, stack_.size()});
+    for (size_t i = 0; i < function->sig->parameter_count(); ++i) {
+      stack_.push_back(args[i]);
+    }
+    frames_.back().ret_pc = InitLocals(code);
+    TRACE("  => PushFrame(#%u @%zu)\n", code->function->func_index,
+          frames_.back().ret_pc);
+  }
+
+  virtual WasmInterpreter::State Run() {
+    do {
+      TRACE("  => Run()\n");
+      if (state_ == WasmInterpreter::STOPPED ||
+          state_ == WasmInterpreter::PAUSED) {
+        state_ = WasmInterpreter::RUNNING;
+        Execute(frames_.back().code, frames_.back().ret_pc, kRunSteps);
+      }
+    } while (state_ == WasmInterpreter::STOPPED);
+    return state_;
+  }
+
+  virtual WasmInterpreter::State Step() {
+    TRACE("  => Step()\n");
+    if (state_ == WasmInterpreter::STOPPED ||
+        state_ == WasmInterpreter::PAUSED) {
+      state_ = WasmInterpreter::RUNNING;
+      Execute(frames_.back().code, frames_.back().ret_pc, 1);
+    }
+    return state_;
+  }
+
+  virtual void Pause() { UNIMPLEMENTED(); }
+
+  virtual void Reset() {
+    TRACE("----- RESET -----\n");
+    stack_.clear();
+    frames_.clear();
+    state_ = WasmInterpreter::STOPPED;
+    trap_reason_ = kTrapCount;
+  }
+
+  virtual int GetFrameCount() { return static_cast<int>(frames_.size()); }
+
+  virtual const WasmFrame* GetFrame(int index) {
+    UNIMPLEMENTED();
+    return nullptr;
+  }
+
+  virtual WasmFrame* GetMutableFrame(int index) {
+    UNIMPLEMENTED();
+    return nullptr;
+  }
+
+  virtual WasmVal GetReturnValue() {
+    if (state_ == WasmInterpreter::TRAPPED) return WasmVal(0xdeadbeef);
+    CHECK_EQ(WasmInterpreter::FINISHED, state_);
+    CHECK_EQ(1, stack_.size());
+    return stack_[0];
+  }
+
+  virtual pc_t GetBreakpointPc() { return break_pc_; }
+
+  bool Terminated() {
+    return state_ == WasmInterpreter::TRAPPED ||
+           state_ == WasmInterpreter::FINISHED;
+  }
+
+ private:
+  // Entries on the stack of functions being evaluated.
+  struct Frame {
+    InterpreterCode* code;
+    pc_t call_pc;
+    pc_t ret_pc;
+    sp_t sp;
+
+    // Limit of parameters.
+    sp_t plimit() { return sp + code->function->sig->parameter_count(); }
+    // Limit of locals.
+    sp_t llimit() { return plimit() + code->locals.total_local_count; }
+  };
+
+  CodeMap* codemap_;
+  WasmModuleInstance* instance_;
+  ZoneVector<WasmVal> stack_;
+  ZoneVector<Frame> frames_;
+  WasmInterpreter::State state_;
+  pc_t break_pc_;
+  TrapReason trap_reason_;
+
+  CodeMap* codemap() { return codemap_; }
+  WasmModuleInstance* instance() { return instance_; }
+  const WasmModule* module() { return instance_->module; }
+
+  void DoTrap(TrapReason trap, pc_t pc) {
+    state_ = WasmInterpreter::TRAPPED;
+    trap_reason_ = trap;
+    CommitPc(pc);
+  }
+
+  // Push a frame with arguments already on the stack.
+  void PushFrame(InterpreterCode* code, pc_t call_pc, pc_t ret_pc) {
+    CHECK_NOT_NULL(code);
+    DCHECK(!frames_.empty());
+    frames_.back().call_pc = call_pc;
+    frames_.back().ret_pc = ret_pc;
+    size_t arity = code->function->sig->parameter_count();
+    DCHECK_GE(stack_.size(), arity);
+    // The parameters will overlap the arguments already on the stack.
+    frames_.push_back({code, 0, 0, stack_.size() - arity});
+    frames_.back().ret_pc = InitLocals(code);
+    TRACE("  => push func#%u @%zu\n", code->function->func_index,
+          frames_.back().ret_pc);
+  }
+
+  pc_t InitLocals(InterpreterCode* code) {
+    for (auto p : code->locals.local_types) {
+      WasmVal val;
+      switch (p.first) {
+        case kAstI32:
+          val = WasmVal(static_cast<int32_t>(0));
+          break;
+        case kAstI64:
+          val = WasmVal(static_cast<int64_t>(0));
+          break;
+        case kAstF32:
+          val = WasmVal(static_cast<float>(0));
+          break;
+        case kAstF64:
+          val = WasmVal(static_cast<double>(0));
+          break;
+        default:
+          UNREACHABLE();
+          break;
+      }
+      stack_.insert(stack_.end(), p.second, val);
+    }
+    return code->locals.decls_encoded_size;
+  }
+
+  void CommitPc(pc_t pc) {
+    if (!frames_.empty()) {
+      frames_.back().ret_pc = pc;
+    }
+  }
+
+  bool SkipBreakpoint(InterpreterCode* code, pc_t pc) {
+    if (pc == break_pc_) {
+      break_pc_ = kInvalidPc;
+      return true;
+    }
+    return false;
+  }
+
+  bool DoReturn(InterpreterCode** code, pc_t* pc, pc_t* limit, WasmVal val) {
+    DCHECK_GT(frames_.size(), 0u);
+    stack_.resize(frames_.back().sp);
+    frames_.pop_back();
+    if (frames_.size() == 0) {
+      // A return from the top frame terminates the execution.
+      state_ = WasmInterpreter::FINISHED;
+      stack_.clear();
+      stack_.push_back(val);
+      TRACE("  => finish\n");
+      return false;
+    } else {
+      // Return to caller frame.
+      Frame* top = &frames_.back();
+      *code = top->code;
+      *pc = top->ret_pc;
+      *limit = top->code->end - top->code->start;
+      if (top->code->start[top->call_pc] == kExprCallIndirect ||
+          (top->code->orig_start &&
+           top->code->orig_start[top->call_pc] == kExprCallIndirect)) {
+        // UGLY: An indirect call has the additional function index on the
+        // stack.
+        stack_.pop_back();
+      }
+      TRACE("  => pop func#%u @%zu\n", (*code)->function->func_index, *pc);
+
+      stack_.push_back(val);
+      return true;
+    }
+  }
+
+  void DoCall(InterpreterCode* target, pc_t* pc, pc_t ret_pc, pc_t* limit) {
+    PushFrame(target, *pc, ret_pc);
+    *pc = frames_.back().ret_pc;
+    *limit = target->end - target->start;
+  }
+
+  // Adjust the program counter {pc} and the stack contents according to the
+  // code's precomputed control transfer map. Returns the different between
+  // the new pc and the old pc.
+  int DoControlTransfer(InterpreterCode* code, pc_t pc) {
+    auto target = code->targets->Lookup(pc);
+    switch (target.action) {
+      case ControlTransfer::kNoAction:
+        TRACE("  action [sp-%u]\n", target.spdiff);
+        PopN(target.spdiff);
+        break;
+      case ControlTransfer::kPopAndRepush: {
+        WasmVal val = Pop();
+        TRACE("  action [pop x, sp-%u, push x]\n", target.spdiff - 1);
+        DCHECK_GE(target.spdiff, 1u);
+        PopN(target.spdiff - 1);
+        Push(pc, val);
+        break;
+      }
+      case ControlTransfer::kPushVoid:
+        TRACE("  action [sp-%u, push void]\n", target.spdiff);
+        PopN(target.spdiff);
+        Push(pc, WasmVal());
+        break;
+    }
+    return target.pcdiff;
+  }
+
+  void Execute(InterpreterCode* code, pc_t pc, int max) {
+    Decoder decoder(code->start, code->end);
+    pc_t limit = code->end - code->start;
+    while (true) {
+      if (max-- <= 0) {
+        // Maximum number of instructions reached.
+        state_ = WasmInterpreter::PAUSED;
+        return CommitPc(pc);
+      }
+
+      if (pc >= limit) {
+        // Fell off end of code; do an implicit return.
+        TRACE("@%-3zu: ImplicitReturn\n", pc);
+        WasmVal val = PopArity(code->function->sig->return_count());
+        if (!DoReturn(&code, &pc, &limit, val)) return;
+        decoder.Reset(code->start, code->end);
+        continue;
+      }
+
+      const char* skip = "        ";
+      int len = 1;
+      byte opcode = code->start[pc];
+      byte orig = opcode;
+      if (opcode == kInternalBreakpoint) {
+        orig = code->orig_start[pc];
+        if (SkipBreakpoint(code, pc)) {
+          // skip breakpoint by switching on original code.
+          skip = "[skip]  ";
+        } else {
+          state_ = WasmInterpreter::PAUSED;
+          TRACE("@%-3zu: [break] %-24s:", pc,
+                WasmOpcodes::OpcodeName(static_cast<WasmOpcode>(orig)));
+          TraceValueStack();
+          TRACE("\n");
+          break_pc_ = pc;
+          return CommitPc(pc);
+        }
+      }
+
+      USE(skip);
+      TRACE("@%-3zu: %s%-24s:", pc, skip,
+            WasmOpcodes::OpcodeName(static_cast<WasmOpcode>(orig)));
+      TraceValueStack();
+      TRACE("\n");
+
+      switch (orig) {
+        case kExprNop:
+          Push(pc, WasmVal());
+          break;
+        case kExprBlock:
+        case kExprLoop: {
+          // Do nothing.
+          break;
+        }
+        case kExprIf: {
+          WasmVal cond = Pop();
+          bool is_true = cond.to<uint32_t>() != 0;
+          if (is_true) {
+            // fall through to the true block.
+            TRACE("  true => fallthrough\n");
+          } else {
+            len = DoControlTransfer(code, pc);
+            TRACE("  false => @%zu\n", pc + len);
+          }
+          break;
+        }
+        case kExprElse: {
+          len = DoControlTransfer(code, pc);
+          TRACE("  end => @%zu\n", pc + len);
+          break;
+        }
+        case kExprSelect: {
+          WasmVal cond = Pop();
+          WasmVal fval = Pop();
+          WasmVal tval = Pop();
+          Push(pc, cond.to<int32_t>() != 0 ? tval : fval);
+          break;
+        }
+        case kExprBr: {
+          BreakDepthOperand operand(&decoder, code->at(pc));
+          WasmVal val = PopArity(operand.arity);
+          len = DoControlTransfer(code, pc);
+          TRACE("  br => @%zu\n", pc + len);
+          if (operand.arity > 0) Push(pc, val);
+          break;
+        }
+        case kExprBrIf: {
+          BreakDepthOperand operand(&decoder, code->at(pc));
+          WasmVal cond = Pop();
+          WasmVal val = PopArity(operand.arity);
+          bool is_true = cond.to<uint32_t>() != 0;
+          if (is_true) {
+            len = DoControlTransfer(code, pc);
+            TRACE("  br_if => @%zu\n", pc + len);
+            if (operand.arity > 0) Push(pc, val);
+          } else {
+            TRACE("  false => fallthrough\n");
+            len = 1 + operand.length;
+            Push(pc, WasmVal());
+          }
+          break;
+        }
+        case kExprBrTable: {
+          BranchTableOperand operand(&decoder, code->at(pc));
+          uint32_t key = Pop().to<uint32_t>();
+          WasmVal val = PopArity(operand.arity);
+          if (key >= operand.table_count) key = operand.table_count;
+          len = DoControlTransfer(code, pc + key) + key;
+          TRACE("  br[%u] => @%zu\n", key, pc + len);
+          if (operand.arity > 0) Push(pc, val);
+          break;
+        }
+        case kExprReturn: {
+          ReturnArityOperand operand(&decoder, code->at(pc));
+          WasmVal val = PopArity(operand.arity);
+          if (!DoReturn(&code, &pc, &limit, val)) return;
+          decoder.Reset(code->start, code->end);
+          continue;
+        }
+        case kExprUnreachable: {
+          DoTrap(kTrapUnreachable, pc);
+          return CommitPc(pc);
+        }
+        case kExprEnd: {
+          len = DoControlTransfer(code, pc);
+          DCHECK_EQ(1, len);
+          break;
+        }
+        case kExprI8Const: {
+          ImmI8Operand operand(&decoder, code->at(pc));
+          Push(pc, WasmVal(operand.value));
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprI32Const: {
+          ImmI32Operand operand(&decoder, code->at(pc));
+          Push(pc, WasmVal(operand.value));
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprI64Const: {
+          ImmI64Operand operand(&decoder, code->at(pc));
+          Push(pc, WasmVal(operand.value));
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprF32Const: {
+          ImmF32Operand operand(&decoder, code->at(pc));
+          Push(pc, WasmVal(operand.value));
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprF64Const: {
+          ImmF64Operand operand(&decoder, code->at(pc));
+          Push(pc, WasmVal(operand.value));
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprGetLocal: {
+          LocalIndexOperand operand(&decoder, code->at(pc));
+          Push(pc, stack_[frames_.back().sp + operand.index]);
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprSetLocal: {
+          LocalIndexOperand operand(&decoder, code->at(pc));
+          WasmVal val = Pop();
+          stack_[frames_.back().sp + operand.index] = val;
+          Push(pc, val);
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprCallFunction: {
+          CallFunctionOperand operand(&decoder, code->at(pc));
+          InterpreterCode* target = codemap()->GetCode(operand.index);
+          DoCall(target, &pc, pc + 1 + operand.length, &limit);
+          code = target;
+          decoder.Reset(code->start, code->end);
+          continue;
+        }
+        case kExprCallIndirect: {
+          CallIndirectOperand operand(&decoder, code->at(pc));
+          size_t index = stack_.size() - operand.arity - 1;
+          DCHECK_LT(index, stack_.size());
+          uint32_t table_index = stack_[index].to<uint32_t>();
+          if (table_index >= module()->function_table.size()) {
+            return DoTrap(kTrapFuncInvalid, pc);
+          }
+          uint16_t function_index = module()->function_table[table_index];
+          InterpreterCode* target = codemap()->GetCode(function_index);
+          DCHECK(target);
+          if (target->function->sig_index != operand.index) {
+            return DoTrap(kTrapFuncSigMismatch, pc);
+          }
+
+          DoCall(target, &pc, pc + 1 + operand.length, &limit);
+          code = target;
+          decoder.Reset(code->start, code->end);
+          continue;
+        }
+        case kExprCallImport: {
+          UNIMPLEMENTED();
+          break;
+        }
+        case kExprLoadGlobal: {
+          GlobalIndexOperand operand(&decoder, code->at(pc));
+          const WasmGlobal* global = &module()->globals[operand.index];
+          byte* ptr = instance()->globals_start + global->offset;
+          MachineType type = global->type;
+          WasmVal val;
+          if (type == MachineType::Int8()) {
+            val =
+                WasmVal(static_cast<int32_t>(*reinterpret_cast<int8_t*>(ptr)));
+          } else if (type == MachineType::Uint8()) {
+            val =
+                WasmVal(static_cast<int32_t>(*reinterpret_cast<uint8_t*>(ptr)));
+          } else if (type == MachineType::Int16()) {
+            val =
+                WasmVal(static_cast<int32_t>(*reinterpret_cast<int16_t*>(ptr)));
+          } else if (type == MachineType::Uint16()) {
+            val = WasmVal(
+                static_cast<int32_t>(*reinterpret_cast<uint16_t*>(ptr)));
+          } else if (type == MachineType::Int32()) {
+            val = WasmVal(*reinterpret_cast<int32_t*>(ptr));
+          } else if (type == MachineType::Uint32()) {
+            val = WasmVal(*reinterpret_cast<uint32_t*>(ptr));
+          } else if (type == MachineType::Int64()) {
+            val = WasmVal(*reinterpret_cast<int64_t*>(ptr));
+          } else if (type == MachineType::Uint64()) {
+            val = WasmVal(*reinterpret_cast<uint64_t*>(ptr));
+          } else if (type == MachineType::Float32()) {
+            val = WasmVal(*reinterpret_cast<float*>(ptr));
+          } else if (type == MachineType::Float64()) {
+            val = WasmVal(*reinterpret_cast<double*>(ptr));
+          } else {
+            UNREACHABLE();
+          }
+          Push(pc, val);
+          len = 1 + operand.length;
+          break;
+        }
+        case kExprStoreGlobal: {
+          GlobalIndexOperand operand(&decoder, code->at(pc));
+          const WasmGlobal* global = &module()->globals[operand.index];
+          byte* ptr = instance()->globals_start + global->offset;
+          MachineType type = global->type;
+          WasmVal val = Pop();
+          if (type == MachineType::Int8()) {
+            *reinterpret_cast<int8_t*>(ptr) =
+                static_cast<int8_t>(val.to<int32_t>());
+          } else if (type == MachineType::Uint8()) {
+            *reinterpret_cast<uint8_t*>(ptr) =
+                static_cast<uint8_t>(val.to<uint32_t>());
+          } else if (type == MachineType::Int16()) {
+            *reinterpret_cast<int16_t*>(ptr) =
+                static_cast<int16_t>(val.to<int32_t>());
+          } else if (type == MachineType::Uint16()) {
+            *reinterpret_cast<uint16_t*>(ptr) =
+                static_cast<uint16_t>(val.to<uint32_t>());
+          } else if (type == MachineType::Int32()) {
+            *reinterpret_cast<int32_t*>(ptr) = val.to<int32_t>();
+          } else if (type == MachineType::Uint32()) {
+            *reinterpret_cast<uint32_t*>(ptr) = val.to<uint32_t>();
+          } else if (type == MachineType::Int64()) {
+            *reinterpret_cast<int64_t*>(ptr) = val.to<int64_t>();
+          } else if (type == MachineType::Uint64()) {
+            *reinterpret_cast<uint64_t*>(ptr) = val.to<uint64_t>();
+          } else if (type == MachineType::Float32()) {
+            *reinterpret_cast<float*>(ptr) = val.to<float>();
+          } else if (type == MachineType::Float64()) {
+            *reinterpret_cast<double*>(ptr) = val.to<double>();
+          } else {
+            UNREACHABLE();
+          }
+          Push(pc, val);
+          len = 1 + operand.length;
+          break;
+        }
+
+#define LOAD_CASE(name, ctype, mtype)                                    \
+  case kExpr##name: {                                                    \
+    MemoryAccessOperand operand(&decoder, code->at(pc));                 \
+    uint32_t index = Pop().to<uint32_t>();                               \
+    size_t effective_mem_size = instance()->mem_size - sizeof(mtype);    \
+    if (operand.offset > effective_mem_size ||                           \
+        index > (effective_mem_size - operand.offset)) {                 \
+      return DoTrap(kTrapMemOutOfBounds, pc);                            \
+    }                                                                    \
+    byte* addr = instance()->mem_start + operand.offset + index;         \
+    WasmVal result(static_cast<ctype>(ReadUnalignedValue<mtype>(addr))); \
+    Push(pc, result);                                                    \
+    len = 1 + operand.length;                                            \
+    break;                                                               \
+  }
+
+          LOAD_CASE(I32LoadMem8S, int32_t, int8_t);
+          LOAD_CASE(I32LoadMem8U, int32_t, uint8_t);
+          LOAD_CASE(I32LoadMem16S, int32_t, int16_t);
+          LOAD_CASE(I32LoadMem16U, int32_t, uint16_t);
+          LOAD_CASE(I64LoadMem8S, int64_t, int8_t);
+          LOAD_CASE(I64LoadMem8U, int64_t, uint8_t);
+          LOAD_CASE(I64LoadMem16S, int64_t, int16_t);
+          LOAD_CASE(I64LoadMem16U, int64_t, uint16_t);
+          LOAD_CASE(I64LoadMem32S, int64_t, int32_t);
+          LOAD_CASE(I64LoadMem32U, int64_t, uint32_t);
+          LOAD_CASE(I32LoadMem, int32_t, int32_t);
+          LOAD_CASE(I64LoadMem, int64_t, int64_t);
+          LOAD_CASE(F32LoadMem, float, float);
+          LOAD_CASE(F64LoadMem, double, double);
+#undef LOAD_CASE
+
+#define STORE_CASE(name, ctype, mtype)                                     \
+  case kExpr##name: {                                                      \
+    MemoryAccessOperand operand(&decoder, code->at(pc));                   \
+    WasmVal val = Pop();                                                   \
+    uint32_t index = Pop().to<uint32_t>();                                 \
+    size_t effective_mem_size = instance()->mem_size - sizeof(mtype);      \
+    if (operand.offset > effective_mem_size ||                             \
+        index > (effective_mem_size - operand.offset)) {                   \
+      return DoTrap(kTrapMemOutOfBounds, pc);                              \
+    }                                                                      \
+    byte* addr = instance()->mem_start + operand.offset + index;           \
+    WriteUnalignedValue<mtype>(addr, static_cast<mtype>(val.to<ctype>())); \
+    Push(pc, val);                                                         \
+    len = 1 + operand.length;                                              \
+    break;                                                                 \
+  }
+
+          STORE_CASE(I32StoreMem8, int32_t, int8_t);
+          STORE_CASE(I32StoreMem16, int32_t, int16_t);
+          STORE_CASE(I64StoreMem8, int64_t, int8_t);
+          STORE_CASE(I64StoreMem16, int64_t, int16_t);
+          STORE_CASE(I64StoreMem32, int64_t, int32_t);
+          STORE_CASE(I32StoreMem, int32_t, int32_t);
+          STORE_CASE(I64StoreMem, int64_t, int64_t);
+          STORE_CASE(F32StoreMem, float, float);
+          STORE_CASE(F64StoreMem, double, double);
+#undef STORE_CASE
+
+#define ASMJS_LOAD_CASE(name, ctype, mtype, defval)                 \
+  case kExpr##name: {                                               \
+    uint32_t index = Pop().to<uint32_t>();                          \
+    ctype result;                                                   \
+    if (index >= (instance()->mem_size - sizeof(mtype))) {          \
+      result = defval;                                              \
+    } else {                                                        \
+      byte* addr = instance()->mem_start + index;                   \
+      /* TODO(titzer): alignment for asmjs load mem? */             \
+      result = static_cast<ctype>(*reinterpret_cast<mtype*>(addr)); \
+    }                                                               \
+    Push(pc, WasmVal(result));                                      \
+    break;                                                          \
+  }
+          ASMJS_LOAD_CASE(I32AsmjsLoadMem8S, int32_t, int8_t, 0);
+          ASMJS_LOAD_CASE(I32AsmjsLoadMem8U, int32_t, uint8_t, 0);
+          ASMJS_LOAD_CASE(I32AsmjsLoadMem16S, int32_t, int16_t, 0);
+          ASMJS_LOAD_CASE(I32AsmjsLoadMem16U, int32_t, uint16_t, 0);
+          ASMJS_LOAD_CASE(I32AsmjsLoadMem, int32_t, int32_t, 0);
+          ASMJS_LOAD_CASE(F32AsmjsLoadMem, float, float,
+                          std::numeric_limits<float>::quiet_NaN());
+          ASMJS_LOAD_CASE(F64AsmjsLoadMem, double, double,
+                          std::numeric_limits<double>::quiet_NaN());
+#undef ASMJS_LOAD_CASE
+
+#define ASMJS_STORE_CASE(name, ctype, mtype)                                   \
+  case kExpr##name: {                                                          \
+    WasmVal val = Pop();                                                       \
+    uint32_t index = Pop().to<uint32_t>();                                     \
+    if (index < (instance()->mem_size - sizeof(mtype))) {                      \
+      byte* addr = instance()->mem_start + index;                              \
+      /* TODO(titzer): alignment for asmjs store mem? */                       \
+      *(reinterpret_cast<mtype*>(addr)) = static_cast<mtype>(val.to<ctype>()); \
+    }                                                                          \
+    Push(pc, val);                                                             \
+    break;                                                                     \
+  }
+
+          ASMJS_STORE_CASE(I32AsmjsStoreMem8, int32_t, int8_t);
+          ASMJS_STORE_CASE(I32AsmjsStoreMem16, int32_t, int16_t);
+          ASMJS_STORE_CASE(I32AsmjsStoreMem, int32_t, int32_t);
+          ASMJS_STORE_CASE(F32AsmjsStoreMem, float, float);
+          ASMJS_STORE_CASE(F64AsmjsStoreMem, double, double);
+#undef ASMJS_STORE_CASE
+
+        case kExprMemorySize: {
+          Push(pc, WasmVal(static_cast<uint32_t>(instance()->mem_size)));
+          break;
+        }
+#define EXECUTE_SIMPLE_BINOP(name, ctype, op)             \
+  case kExpr##name: {                                     \
+    WasmVal rval = Pop();                                 \
+    WasmVal lval = Pop();                                 \
+    WasmVal result(lval.to<ctype>() op rval.to<ctype>()); \
+    Push(pc, result);                                     \
+    break;                                                \
+  }
+          FOREACH_SIMPLE_BINOP(EXECUTE_SIMPLE_BINOP)
+#undef EXECUTE_SIMPLE_BINOP
+
+#define EXECUTE_OTHER_BINOP(name, ctype)              \
+  case kExpr##name: {                                 \
+    TrapReason trap = kTrapCount;                     \
+    volatile ctype rval = Pop().to<ctype>();          \
+    volatile ctype lval = Pop().to<ctype>();          \
+    WasmVal result(Execute##name(lval, rval, &trap)); \
+    if (trap != kTrapCount) return DoTrap(trap, pc);  \
+    Push(pc, result);                                 \
+    break;                                            \
+  }
+          FOREACH_OTHER_BINOP(EXECUTE_OTHER_BINOP)
+#undef EXECUTE_OTHER_BINOP
+
+#define EXECUTE_OTHER_UNOP(name, ctype)              \
+  case kExpr##name: {                                \
+    TrapReason trap = kTrapCount;                    \
+    volatile ctype val = Pop().to<ctype>();          \
+    WasmVal result(Execute##name(val, &trap));       \
+    if (trap != kTrapCount) return DoTrap(trap, pc); \
+    Push(pc, result);                                \
+    break;                                           \
+  }
+          FOREACH_OTHER_UNOP(EXECUTE_OTHER_UNOP)
+#undef EXECUTE_OTHER_UNOP
+
+        default:
+          V8_Fatal(__FILE__, __LINE__, "Unknown or unimplemented opcode #%d:%s",
+                   code->start[pc], OpcodeName(code->start[pc]));
+          UNREACHABLE();
+      }
+
+      pc += len;
+    }
+    UNREACHABLE();  // above decoding loop should run forever.
+  }
+
+  WasmVal Pop() {
+    DCHECK_GT(stack_.size(), 0u);
+    DCHECK_GT(frames_.size(), 0u);
+    DCHECK_GT(stack_.size(), frames_.back().llimit());  // can't pop into locals
+    WasmVal val = stack_.back();
+    stack_.pop_back();
+    return val;
+  }
+
+  void PopN(int n) {
+    DCHECK_GE(stack_.size(), static_cast<size_t>(n));
+    DCHECK_GT(frames_.size(), 0u);
+    size_t nsize = stack_.size() - n;
+    DCHECK_GE(nsize, frames_.back().llimit());  // can't pop into locals
+    stack_.resize(nsize);
+  }
+
+  WasmVal PopArity(size_t arity) {
+    if (arity == 0) return WasmVal();
+    CHECK_EQ(1, arity);
+    return Pop();
+  }
+
+  void Push(pc_t pc, WasmVal val) {
+    // TODO(titzer): store PC as well?
+    stack_.push_back(val);
+  }
+
+  void TraceStack(const char* phase, pc_t pc) {
+    if (FLAG_trace_wasm_interpreter) {
+      PrintF("%s @%zu", phase, pc);
+      UNIMPLEMENTED();
+      PrintF("\n");
+    }
+  }
+
+  void TraceValueStack() {
+    Frame* top = frames_.size() > 0 ? &frames_.back() : nullptr;
+    sp_t sp = top ? top->sp : 0;
+    sp_t plimit = top ? top->plimit() : 0;
+    sp_t llimit = top ? top->llimit() : 0;
+    if (FLAG_trace_wasm_interpreter) {
+      for (size_t i = sp; i < stack_.size(); ++i) {
+        if (i < plimit)
+          PrintF(" p%zu:", i);
+        else if (i < llimit)
+          PrintF(" l%zu:", i);
+        else
+          PrintF(" s%zu:", i);
+        WasmVal val = stack_[i];
+        switch (val.type) {
+          case kAstI32:
+            PrintF("i32:%d", val.to<int32_t>());
+            break;
+          case kAstI64:
+            PrintF("i64:%" PRId64 "", val.to<int64_t>());
+            break;
+          case kAstF32:
+            PrintF("f32:%f", val.to<float>());
+            break;
+          case kAstF64:
+            PrintF("f64:%lf", val.to<double>());
+            break;
+          case kAstStmt:
+            PrintF("void");
+            break;
+          default:
+            UNREACHABLE();
+            break;
+        }
+      }
+    }
+  }
+};
+
+//============================================================================
+// The implementation details of the interpreter.
+//============================================================================
+class WasmInterpreterInternals : public ZoneObject {
+ public:
+  WasmModuleInstance* instance_;
+  CodeMap codemap_;
+  ZoneVector<ThreadImpl*> threads_;
+
+  WasmInterpreterInternals(Zone* zone, WasmModuleInstance* instance)
+      : instance_(instance),
+        codemap_(instance_ ? instance_->module : nullptr, zone),
+        threads_(zone) {
+    threads_.push_back(new ThreadImpl(zone, &codemap_, instance));
+  }
+
+  void Delete() {
+    // TODO(titzer): CFI doesn't like threads in the ZoneVector.
+    for (auto t : threads_) delete t;
+    threads_.resize(0);
+  }
+};
+
+//============================================================================
+// Implementation of the public interface of the interpreter.
+//============================================================================
+WasmInterpreter::WasmInterpreter(WasmModuleInstance* instance,
+                                 base::AccountingAllocator* allocator)
+    : zone_(allocator),
+      internals_(new (&zone_) WasmInterpreterInternals(&zone_, instance)) {}
+
+WasmInterpreter::~WasmInterpreter() { internals_->Delete(); }
+
+void WasmInterpreter::Run() { internals_->threads_[0]->Run(); }
+
+void WasmInterpreter::Pause() { internals_->threads_[0]->Pause(); }
+
+bool WasmInterpreter::SetBreakpoint(const WasmFunction* function, pc_t pc,
+                                    bool enabled) {
+  InterpreterCode* code = internals_->codemap_.FindCode(function);
+  if (!code) return false;
+  size_t size = static_cast<size_t>(code->end - code->start);
+  // Check bounds for {pc}.
+  if (pc < code->locals.decls_encoded_size || pc >= size) return false;
+  // Make a copy of the code before enabling a breakpoint.
+  if (enabled && code->orig_start == code->start) {
+    code->start = reinterpret_cast<byte*>(zone_.New(size));
+    memcpy(code->start, code->orig_start, size);
+    code->end = code->start + size;
+  }
+  bool prev = code->start[pc] == kInternalBreakpoint;
+  if (enabled) {
+    code->start[pc] = kInternalBreakpoint;
+  } else {
+    code->start[pc] = code->orig_start[pc];
+  }
+  return prev;
+}
+
+bool WasmInterpreter::GetBreakpoint(const WasmFunction* function, pc_t pc) {
+  InterpreterCode* code = internals_->codemap_.FindCode(function);
+  if (!code) return false;
+  size_t size = static_cast<size_t>(code->end - code->start);
+  // Check bounds for {pc}.
+  if (pc < code->locals.decls_encoded_size || pc >= size) return false;
+  // Check if a breakpoint is present at that place in the code.
+  return code->start[pc] == kInternalBreakpoint;
+}
+
+bool WasmInterpreter::SetTracing(const WasmFunction* function, bool enabled) {
+  UNIMPLEMENTED();
+  return false;
+}
+
+int WasmInterpreter::GetThreadCount() {
+  return 1;  // only one thread for now.
+}
+
+WasmInterpreter::Thread* WasmInterpreter::GetThread(int id) {
+  CHECK_EQ(0, id);  // only one thread for now.
+  return internals_->threads_[id];
+}
+
+WasmVal WasmInterpreter::GetLocalVal(const WasmFrame* frame, int index) {
+  CHECK_GE(index, 0);
+  UNIMPLEMENTED();
+  WasmVal none;
+  none.type = kAstStmt;
+  return none;
+}
+
+WasmVal WasmInterpreter::GetExprVal(const WasmFrame* frame, int pc) {
+  UNIMPLEMENTED();
+  WasmVal none;
+  none.type = kAstStmt;
+  return none;
+}
+
+void WasmInterpreter::SetLocalVal(WasmFrame* frame, int index, WasmVal val) {
+  UNIMPLEMENTED();
+}
+
+void WasmInterpreter::SetExprVal(WasmFrame* frame, int pc, WasmVal val) {
+  UNIMPLEMENTED();
+}
+
+size_t WasmInterpreter::GetMemorySize() {
+  return internals_->instance_->mem_size;
+}
+
+WasmVal WasmInterpreter::ReadMemory(size_t offset) {
+  UNIMPLEMENTED();
+  return WasmVal();
+}
+
+void WasmInterpreter::WriteMemory(size_t offset, WasmVal val) {
+  UNIMPLEMENTED();
+}
+
+int WasmInterpreter::AddFunctionForTesting(const WasmFunction* function) {
+  return internals_->codemap_.AddFunction(function, nullptr, nullptr);
+}
+
+bool WasmInterpreter::SetFunctionCodeForTesting(const WasmFunction* function,
+                                                const byte* start,
+                                                const byte* end) {
+  return internals_->codemap_.SetFunctionCode(function, start, end);
+}
+
+ControlTransferMap WasmInterpreter::ComputeControlTransfersForTesting(
+    Zone* zone, const byte* start, const byte* end) {
+  ControlTransfers targets(zone, 0, start, end);
+  return targets.map_;
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/src/wasm/wasm-interpreter.h b/src/wasm/wasm-interpreter.h
new file mode 100644
index 0000000..b106a20
--- /dev/null
+++ b/src/wasm/wasm-interpreter.h
@@ -0,0 +1,209 @@
+// 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_INTERPRETER_H_
+#define V8_WASM_INTERPRETER_H_
+
+#include "src/wasm/wasm-opcodes.h"
+#include "src/zone-containers.h"
+
+namespace v8 {
+namespace base {
+class AccountingAllocator;
+}
+
+namespace internal {
+namespace wasm {
+
+// forward declarations.
+struct WasmFunction;
+struct WasmModuleInstance;
+class WasmInterpreterInternals;
+
+typedef size_t pc_t;
+typedef size_t sp_t;
+typedef int32_t pcdiff_t;
+typedef uint32_t spdiff_t;
+
+const pc_t kInvalidPc = 0x80000000;
+
+// Visible for testing. A {ControlTransfer} helps the interpreter figure out
+// the target program counter and stack manipulations for a branch.
+struct ControlTransfer {
+  enum StackAction { kNoAction, kPopAndRepush, kPushVoid };
+  pcdiff_t pcdiff;  // adjustment to the program counter (positive or negative).
+  spdiff_t spdiff;  // number of elements to pop off the stack.
+  StackAction action;  // action to perform on the stack.
+};
+typedef ZoneMap<pc_t, ControlTransfer> ControlTransferMap;
+
+// Macro for defining union members.
+#define FOREACH_UNION_MEMBER(V) \
+  V(i32, kAstI32, int32_t)      \
+  V(u32, kAstI32, uint32_t)     \
+  V(i64, kAstI64, int64_t)      \
+  V(u64, kAstI64, uint64_t)     \
+  V(f32, kAstF32, float)        \
+  V(f64, kAstF64, double)
+
+// Representation of values within the interpreter.
+struct WasmVal {
+  LocalType type;
+  union {
+#define DECLARE_FIELD(field, localtype, ctype) ctype field;
+    FOREACH_UNION_MEMBER(DECLARE_FIELD)
+#undef DECLARE_FIELD
+  } val;
+
+  WasmVal() : type(kAstStmt) {}
+
+#define DECLARE_CONSTRUCTOR(field, localtype, ctype) \
+  explicit WasmVal(ctype v) : type(localtype) { val.field = v; }
+  FOREACH_UNION_MEMBER(DECLARE_CONSTRUCTOR)
+#undef DECLARE_CONSTRUCTOR
+
+  template <typename T>
+  T to() {
+    UNREACHABLE();
+  }
+};
+
+#define DECLARE_CAST(field, localtype, ctype) \
+  template <>                                 \
+  inline ctype WasmVal::to() {                \
+    CHECK_EQ(localtype, type);                \
+    return val.field;                         \
+  }
+FOREACH_UNION_MEMBER(DECLARE_CAST)
+#undef DECLARE_CAST
+
+template <>
+inline void WasmVal::to() {
+  CHECK_EQ(kAstStmt, type);
+}
+
+// Representation of frames within the interpreter.
+class WasmFrame {
+ public:
+  const WasmFunction* function() const { return function_; }
+  int pc() const { return pc_; }
+
+ private:
+  friend class WasmInterpreter;
+
+  WasmFrame(const WasmFunction* function, int pc, int fp, int sp)
+      : function_(function), pc_(pc), fp_(fp), sp_(sp) {}
+
+  const WasmFunction* function_;
+  int pc_;
+  int fp_;
+  int sp_;
+};
+
+// An interpreter capable of executing WASM.
+class WasmInterpreter {
+ public:
+  // State machine for a Thread:
+  //                       +---------------Run()-----------+
+  //                       V                               |
+  // STOPPED ---Run()-->  RUNNING  ------Pause()-----+-> PAUSED  <------+
+  //                       | | |                    /      |            |
+  //                       | | +---- Breakpoint ---+       +-- Step() --+
+  //                       | |
+  //                       | +------------ Trap --------------> TRAPPED
+  //                       +------------- Finish -------------> FINISHED
+  enum State { STOPPED, RUNNING, PAUSED, FINISHED, TRAPPED };
+
+  // Representation of a thread in the interpreter.
+  class Thread {
+   public:
+    // Execution control.
+    virtual State state() = 0;
+    virtual void PushFrame(const WasmFunction* function, WasmVal* args) = 0;
+    virtual State Run() = 0;
+    virtual State Step() = 0;
+    virtual void Pause() = 0;
+    virtual void Reset() = 0;
+    virtual ~Thread() {}
+
+    // Stack inspection and modification.
+    virtual pc_t GetBreakpointPc() = 0;
+    virtual int GetFrameCount() = 0;
+    virtual const WasmFrame* GetFrame(int index) = 0;
+    virtual WasmFrame* GetMutableFrame(int index) = 0;
+    virtual WasmVal GetReturnValue() = 0;
+
+    // Thread-specific breakpoints.
+    bool SetBreakpoint(const WasmFunction* function, int pc, bool enabled);
+    bool GetBreakpoint(const WasmFunction* function, int pc);
+  };
+
+  WasmInterpreter(WasmModuleInstance* instance,
+                  base::AccountingAllocator* allocator);
+  ~WasmInterpreter();
+
+  //==========================================================================
+  // Execution controls.
+  //==========================================================================
+  void Run();
+  void Pause();
+
+  // Set a breakpoint at {pc} in {function} to be {enabled}. Returns the
+  // previous state of the breakpoint at {pc}.
+  bool SetBreakpoint(const WasmFunction* function, pc_t pc, bool enabled);
+
+  // Gets the current state of the breakpoint at {function}.
+  bool GetBreakpoint(const WasmFunction* function, pc_t pc);
+
+  // Enable or disable tracing for {function}. Return the previous state.
+  bool SetTracing(const WasmFunction* function, bool enabled);
+
+  //==========================================================================
+  // Thread iteration and inspection.
+  //==========================================================================
+  int GetThreadCount();
+  Thread* GetThread(int id);
+
+  //==========================================================================
+  // Stack frame inspection.
+  //==========================================================================
+  WasmVal GetLocalVal(const WasmFrame* frame, int index);
+  WasmVal GetExprVal(const WasmFrame* frame, int pc);
+  void SetLocalVal(WasmFrame* frame, int index, WasmVal val);
+  void SetExprVal(WasmFrame* frame, int pc, WasmVal val);
+
+  //==========================================================================
+  // Memory access.
+  //==========================================================================
+  size_t GetMemorySize();
+  WasmVal ReadMemory(size_t offset);
+  void WriteMemory(size_t offset, WasmVal val);
+
+  //==========================================================================
+  // Testing functionality.
+  //==========================================================================
+  // Manually adds a function to this interpreter, returning the index of the
+  // function.
+  int AddFunctionForTesting(const WasmFunction* function);
+  // Manually adds code to the interpreter for the given function.
+  bool SetFunctionCodeForTesting(const WasmFunction* function,
+                                 const byte* start, const byte* end);
+
+  // Computes the control targets for the given bytecode as {pc offset, sp
+  // offset}
+  // pairs. Used internally in the interpreter, but exposed for testing.
+  static ControlTransferMap ComputeControlTransfersForTesting(Zone* zone,
+                                                              const byte* start,
+                                                              const byte* end);
+
+ private:
+  Zone zone_;
+  WasmInterpreterInternals* internals_;
+};
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
+
+#endif  // V8_WASM_INTERPRETER_H_
diff --git a/src/wasm/wasm-js.cc b/src/wasm/wasm-js.cc
index 8a4b2ff..6dc1495 100644
--- a/src/wasm/wasm-js.cc
+++ b/src/wasm/wasm-js.cc
@@ -2,11 +2,12 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "src/api.h"
 #include "src/api-natives.h"
+#include "src/api.h"
 #include "src/assert-scope.h"
 #include "src/ast/ast.h"
 #include "src/ast/scopes.h"
+#include "src/execution.h"
 #include "src/factory.h"
 #include "src/handles.h"
 #include "src/isolate.h"
@@ -34,30 +35,25 @@
   size_t size() { return static_cast<size_t>(end - start); }
 };
 
-RawBuffer GetRawBufferArgument(
-    ErrorThrower& thrower, const v8::FunctionCallbackInfo<v8::Value>& args) {
-  if (args.Length() < 1) {
-    thrower.Error("Argument 0 must be an array buffer");
-    return {nullptr, nullptr};
-  }
-
+RawBuffer GetRawBufferSource(
+    v8::Local<v8::Value> source, ErrorThrower* thrower) {
   const byte* start = nullptr;
   const byte* end = nullptr;
 
-  if (args[0]->IsArrayBuffer()) {
+  if (source->IsArrayBuffer()) {
     // A raw array buffer was passed.
-    Local<ArrayBuffer> buffer = Local<ArrayBuffer>::Cast(args[0]);
+    Local<ArrayBuffer> buffer = Local<ArrayBuffer>::Cast(source);
     ArrayBuffer::Contents contents = buffer->GetContents();
 
     start = reinterpret_cast<const byte*>(contents.Data());
     end = start + contents.ByteLength();
 
     if (start == nullptr || end == start) {
-      thrower.Error("ArrayBuffer argument is empty");
+      thrower->Error("ArrayBuffer argument is empty");
     }
-  } else if (args[0]->IsTypedArray()) {
+  } else if (source->IsTypedArray()) {
     // A TypedArray was passed.
-    Local<TypedArray> array = Local<TypedArray>::Cast(args[0]);
+    Local<TypedArray> array = Local<TypedArray>::Cast(source);
     Local<ArrayBuffer> buffer = array->Buffer();
 
     ArrayBuffer::Contents contents = buffer->GetContents();
@@ -67,10 +63,10 @@
     end = start + array->ByteLength();
 
     if (start == nullptr || end == start) {
-      thrower.Error("ArrayBuffer argument is empty");
+      thrower->Error("ArrayBuffer argument is empty");
     }
   } else {
-    thrower.Error("Argument 0 must be an ArrayBuffer or Uint8Array");
+    thrower->Error("Argument 0 must be an ArrayBuffer or Uint8Array");
   }
 
   return {start, end};
@@ -79,9 +75,13 @@
 void VerifyModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
-  ErrorThrower thrower(isolate, "WASM.verifyModule()");
+  ErrorThrower thrower(isolate, "Wasm.verifyModule()");
 
-  RawBuffer buffer = GetRawBufferArgument(thrower, args);
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a buffer source");
+    return;
+  }
+  RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
   if (thrower.error()) return;
 
   i::Zone zone(isolate->allocator());
@@ -99,9 +99,13 @@
 void VerifyFunction(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
-  ErrorThrower thrower(isolate, "WASM.verifyFunction()");
+  ErrorThrower thrower(isolate, "Wasm.verifyFunction()");
 
-  RawBuffer buffer = GetRawBufferArgument(thrower, args);
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a buffer source");
+    return;
+  }
+  RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
   if (thrower.error()) return;
 
   internal::wasm::FunctionResult result;
@@ -120,8 +124,9 @@
   if (result.val) delete result.val;
 }
 
-v8::internal::wasm::WasmModuleIndex* TranslateAsmModule(
-    i::ParseInfo* info, i::Handle<i::Object> foreign, ErrorThrower* thrower) {
+v8::internal::wasm::ZoneBuffer* TranslateAsmModule(
+    i::ParseInfo* info, ErrorThrower* thrower,
+    i::Handle<i::FixedArray>* foreign_args) {
   info->set_global();
   info->set_lazy(false);
   info->set_allow_lazy_parsing(false);
@@ -149,33 +154,25 @@
     return nullptr;
   }
 
-  auto module =
-      v8::internal::wasm::AsmWasmBuilder(info->isolate(), info->zone(),
-                                         info->literal(), foreign, &typer)
-          .Run();
+  v8::internal::wasm::AsmWasmBuilder builder(info->isolate(), info->zone(),
+                                             info->literal(), &typer);
 
-  return module;
+  return builder.Run(foreign_args);
 }
 
-void InstantiateModuleCommon(const v8::FunctionCallbackInfo<v8::Value>& args,
-                             const byte* start, const byte* end,
-                             ErrorThrower* thrower,
-                             internal::wasm::ModuleOrigin origin) {
+i::MaybeHandle<i::JSObject> InstantiateModuleCommon(
+    const v8::FunctionCallbackInfo<v8::Value>& args, const byte* start,
+    const byte* end, ErrorThrower* thrower,
+    internal::wasm::ModuleOrigin origin = i::wasm::kWasmOrigin) {
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
 
-  i::Handle<i::JSArrayBuffer> memory = i::Handle<i::JSArrayBuffer>::null();
-  if (args.Length() > 2 && args[2]->IsArrayBuffer()) {
-    Local<Object> obj = Local<Object>::Cast(args[2]);
-    i::Handle<i::Object> mem_obj = v8::Utils::OpenHandle(*obj);
-    memory = i::Handle<i::JSArrayBuffer>(i::JSArrayBuffer::cast(*mem_obj));
-  }
-
   // Decode but avoid a redundant pass over function bodies for verification.
   // Verification will happen during compilation.
   i::Zone zone(isolate->allocator());
   internal::wasm::ModuleResult result = internal::wasm::DecodeWasmModule(
       isolate, &zone, start, end, false, origin);
 
+  i::MaybeHandle<i::JSObject> object;
   if (result.failed() && origin == internal::wasm::kAsmJsOrigin) {
     thrower->Error("Asm.js converted module failed to decode");
   } else if (result.failed()) {
@@ -188,21 +185,27 @@
       ffi = i::Handle<i::JSReceiver>::cast(v8::Utils::OpenHandle(*obj));
     }
 
-    i::MaybeHandle<i::JSObject> object =
-        result.val->Instantiate(isolate, ffi, memory);
+    i::Handle<i::JSArrayBuffer> memory = i::Handle<i::JSArrayBuffer>::null();
+    if (args.Length() > 2 && args[2]->IsArrayBuffer()) {
+      Local<Object> obj = Local<Object>::Cast(args[2]);
+      i::Handle<i::Object> mem_obj = v8::Utils::OpenHandle(*obj);
+      memory = i::Handle<i::JSArrayBuffer>(i::JSArrayBuffer::cast(*mem_obj));
+    }
 
+    object = result.val->Instantiate(isolate, ffi, memory);
     if (!object.is_null()) {
       args.GetReturnValue().Set(v8::Utils::ToLocal(object.ToHandleChecked()));
     }
   }
 
   if (result.val) delete result.val;
+  return object;
 }
 
 void InstantiateModuleFromAsm(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
-  ErrorThrower thrower(isolate, "WASM.instantiateModuleFromAsm()");
+  ErrorThrower thrower(isolate, "Wasm.instantiateModuleFromAsm()");
 
   if (!args[0]->IsString()) {
     thrower.Error("Asm module text should be a string");
@@ -221,25 +224,157 @@
     foreign = v8::Utils::OpenHandle(*local_foreign);
   }
 
-  auto module = TranslateAsmModule(&info, foreign, &thrower);
+  i::Handle<i::FixedArray> foreign_args;
+  auto module = TranslateAsmModule(&info, &thrower, &foreign_args);
   if (module == nullptr) {
     return;
   }
 
-  InstantiateModuleCommon(args, module->Begin(), module->End(), &thrower,
-                          internal::wasm::kAsmJsOrigin);
+  i::MaybeHandle<i::Object> maybe_module_object =
+      InstantiateModuleCommon(args, module->begin(), module->end(), &thrower,
+                              internal::wasm::kAsmJsOrigin);
+  if (maybe_module_object.is_null()) {
+    return;
+  }
+
+  i::Handle<i::Name> name =
+      factory->NewStringFromStaticChars("__foreign_init__");
+
+  i::Handle<i::Object> module_object = maybe_module_object.ToHandleChecked();
+  i::MaybeHandle<i::Object> maybe_init =
+      i::Object::GetProperty(module_object, name);
+  DCHECK(!maybe_init.is_null());
+
+  i::Handle<i::Object> init = maybe_init.ToHandleChecked();
+  i::Handle<i::Object> undefined = isolate->factory()->undefined_value();
+  i::Handle<i::Object>* foreign_args_array =
+      new i::Handle<i::Object>[foreign_args->length()];
+  for (int j = 0; j < foreign_args->length(); j++) {
+    if (!foreign.is_null()) {
+      i::MaybeHandle<i::Name> name = i::Object::ToName(
+          isolate, i::Handle<i::Object>(foreign_args->get(j), isolate));
+      if (!name.is_null()) {
+        i::MaybeHandle<i::Object> val =
+            i::Object::GetProperty(foreign, name.ToHandleChecked());
+        if (!val.is_null()) {
+          foreign_args_array[j] = val.ToHandleChecked();
+          continue;
+        }
+      }
+    }
+    foreign_args_array[j] = undefined;
+  }
+  i::MaybeHandle<i::Object> retval = i::Execution::Call(
+      isolate, init, undefined, foreign_args->length(), foreign_args_array);
+  delete[] foreign_args_array;
+
+  if (retval.is_null()) {
+    thrower.Error(
+        "WASM.instantiateModuleFromAsm(): foreign init function failed");
+  }
 }
 
 void InstantiateModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
   HandleScope scope(args.GetIsolate());
   i::Isolate* isolate = reinterpret_cast<i::Isolate*>(args.GetIsolate());
-  ErrorThrower thrower(isolate, "WASM.instantiateModule()");
+  ErrorThrower thrower(isolate, "Wasm.instantiateModule()");
 
-  RawBuffer buffer = GetRawBufferArgument(thrower, args);
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a buffer source");
+    return;
+  }
+  RawBuffer buffer = GetRawBufferSource(args[0], &thrower);
   if (buffer.start == nullptr) return;
 
-  InstantiateModuleCommon(args, buffer.start, buffer.end, &thrower,
-                          internal::wasm::kWasmOrigin);
+  InstantiateModuleCommon(args, buffer.start, buffer.end, &thrower);
+}
+
+
+static i::MaybeHandle<i::JSObject> CreateModuleObject(
+    v8::Isolate* isolate, const v8::Local<v8::Value> source,
+    ErrorThrower* thrower) {
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+
+  RawBuffer buffer = GetRawBufferSource(source, thrower);
+  if (buffer.start == nullptr) return i::MaybeHandle<i::JSObject>();
+
+  // TODO(rossberg): Once we can, do compilation here.
+  DCHECK(source->IsArrayBuffer() || source->IsTypedArray());
+  Local<Context> context = isolate->GetCurrentContext();
+  i::Handle<i::Context> i_context = Utils::OpenHandle(*context);
+  i::Handle<i::JSFunction> module_cons(i_context->wasm_module_constructor());
+  i::Handle<i::JSObject> module_obj =
+      i_isolate->factory()->NewJSObject(module_cons);
+  i::Handle<i::Object> module_ref = Utils::OpenHandle(*source);
+  i::Handle<i::Symbol> module_sym(i_context->wasm_module_sym());
+  i::Object::SetProperty(module_obj, module_sym, module_ref, i::STRICT).Check();
+
+  return module_obj;
+}
+
+void WebAssemblyCompile(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  v8::Isolate* isolate = args.GetIsolate();
+  HandleScope scope(isolate);
+  ErrorThrower thrower(reinterpret_cast<i::Isolate*>(isolate),
+                       "WebAssembly.compile()");
+
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a buffer source");
+    return;
+  }
+  i::MaybeHandle<i::JSObject> module_obj =
+      CreateModuleObject(isolate, args[0], &thrower);
+  if (module_obj.is_null()) return;
+
+  Local<Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Promise::Resolver> resolver;
+  if (!v8::Promise::Resolver::New(context).ToLocal(&resolver)) return;
+  resolver->Resolve(context, Utils::ToLocal(module_obj.ToHandleChecked()));
+
+  v8::ReturnValue<v8::Value> return_value = args.GetReturnValue();
+  return_value.Set(resolver->GetPromise());
+}
+
+void WebAssemblyModule(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  v8::Isolate* isolate = args.GetIsolate();
+  HandleScope scope(isolate);
+  ErrorThrower thrower(reinterpret_cast<i::Isolate*>(isolate),
+                       "WebAssembly.Module()");
+
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a buffer source");
+    return;
+  }
+  i::MaybeHandle<i::JSObject> module_obj =
+      CreateModuleObject(isolate, args[0], &thrower);
+  if (module_obj.is_null()) return;
+
+  v8::ReturnValue<v8::Value> return_value = args.GetReturnValue();
+  return_value.Set(Utils::ToLocal(module_obj.ToHandleChecked()));
+}
+
+void WebAssemblyInstance(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  HandleScope scope(args.GetIsolate());
+  v8::Isolate* isolate = args.GetIsolate();
+  ErrorThrower thrower(reinterpret_cast<i::Isolate*>(isolate),
+                       "WebAssembly.Instance()");
+
+  if (args.Length() < 1) {
+    thrower.Error("Argument 0 must be a WebAssembly.Module");
+    return;
+  }
+  Local<Context> context = isolate->GetCurrentContext();
+  i::Handle<i::Context> i_context = Utils::OpenHandle(*context);
+  i::Handle<i::Symbol> module_sym(i_context->wasm_module_sym());
+  i::MaybeHandle<i::Object> source =
+      i::Object::GetProperty(Utils::OpenHandle(*args[0]), module_sym);
+  if (source.is_null()) return;
+
+  RawBuffer buffer =
+      GetRawBufferSource(Utils::ToLocal(source.ToHandleChecked()), &thrower);
+  if (buffer.start == nullptr) return;
+
+  InstantiateModuleCommon(args, buffer.start, buffer.end, &thrower);
 }
 }  // namespace
 
@@ -257,8 +392,8 @@
   return isolate->factory()->NewStringFromAsciiChecked(str);
 }
 
-static void InstallFunc(Isolate* isolate, Handle<JSObject> object,
-                        const char* str, FunctionCallback func) {
+static Handle<JSFunction> InstallFunc(Isolate* isolate, Handle<JSObject> object,
+                                      const char* str, FunctionCallback func) {
   Handle<String> name = v8_str(isolate, str);
   Handle<FunctionTemplateInfo> temp = NewTemplate(isolate, func);
   Handle<JSFunction> function =
@@ -266,16 +401,54 @@
   PropertyAttributes attributes =
       static_cast<PropertyAttributes>(DONT_DELETE | READ_ONLY);
   JSObject::AddProperty(object, name, function, attributes);
+  return function;
 }
 
 void WasmJs::Install(Isolate* isolate, Handle<JSGlobalObject> global) {
+  Factory* factory = isolate->factory();
+
   // Setup wasm function map.
   Handle<Context> context(global->native_context(), isolate);
   InstallWasmFunctionMap(isolate, context);
 
-  // Bind the WASM object.
-  Factory* factory = isolate->factory();
-  Handle<String> name = v8_str(isolate, "Wasm");
+  // Bind the experimental WASM object.
+  // TODO(rossberg, titzer): remove once it's no longer needed.
+  {
+    Handle<String> name = v8_str(isolate, "Wasm");
+    Handle<JSFunction> cons = factory->NewFunction(name);
+    JSFunction::SetInstancePrototype(
+        cons, Handle<Object>(context->initial_object_prototype(), isolate));
+    cons->shared()->set_instance_class_name(*name);
+    Handle<JSObject> wasm_object = factory->NewJSObject(cons, TENURED);
+    PropertyAttributes attributes = static_cast<PropertyAttributes>(DONT_ENUM);
+    JSObject::AddProperty(global, name, wasm_object, attributes);
+
+    // Install functions on the WASM object.
+    InstallFunc(isolate, wasm_object, "verifyModule", VerifyModule);
+    InstallFunc(isolate, wasm_object, "verifyFunction", VerifyFunction);
+    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);
+    }
+  }
+
+  // Create private symbols.
+  Handle<Symbol> module_sym = isolate->factory()->NewPrivateSymbol();
+  Handle<Symbol> instance_sym = isolate->factory()->NewPrivateSymbol();
+  context->set_wasm_module_sym(*module_sym);
+  context->set_wasm_instance_sym(*instance_sym);
+
+  // Bind the WebAssembly object.
+  Handle<String> name = v8_str(isolate, "WebAssembly");
   Handle<JSFunction> cons = factory->NewFunction(name);
   JSFunction::SetInstancePrototype(
       cons, Handle<Object>(context->initial_object_prototype(), isolate));
@@ -284,21 +457,14 @@
   PropertyAttributes attributes = static_cast<PropertyAttributes>(DONT_ENUM);
   JSObject::AddProperty(global, name, wasm_object, attributes);
 
-  // Install functions on the WASM object.
-  InstallFunc(isolate, wasm_object, "verifyModule", VerifyModule);
-  InstallFunc(isolate, wasm_object, "verifyFunction", VerifyFunction);
-  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);
-  }
+  // Install static methods on WebAssembly object.
+  InstallFunc(isolate, wasm_object, "compile", WebAssemblyCompile);
+  Handle<JSFunction> module_constructor =
+      InstallFunc(isolate, wasm_object, "Module", WebAssemblyModule);
+  Handle<JSFunction> instance_constructor =
+      InstallFunc(isolate, wasm_object, "Instance", WebAssemblyInstance);
+  context->set_wasm_module_constructor(*module_constructor);
+  context->set_wasm_instance_constructor(*instance_constructor);
 }
 
 void WasmJs::InstallWasmFunctionMap(Isolate* isolate, Handle<Context> context) {
diff --git a/src/wasm/wasm-js.h b/src/wasm/wasm-js.h
index e7305aa..ded9a1a 100644
--- a/src/wasm/wasm-js.h
+++ b/src/wasm/wasm-js.h
@@ -7,7 +7,7 @@
 
 #ifndef V8_SHARED
 #include "src/allocation.h"
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 #else
 #include "include/v8.h"
 #include "src/base/compiler-specific.h"
diff --git a/src/wasm/wasm-macro-gen.h b/src/wasm/wasm-macro-gen.h
index 83ac86a..d08d709 100644
--- a/src/wasm/wasm-macro-gen.h
+++ b/src/wasm/wasm-macro-gen.h
@@ -140,9 +140,9 @@
 
   // 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 {
+  void Prepend(Zone* zone, const byte** start, const byte** end) const {
     size_t size = (*end - *start);
-    byte* buffer = new byte[Size() + size];
+    byte* buffer = reinterpret_cast<byte*>(zone->New(Size() + size));
     size_t pos = Emit(buffer);
     memcpy(buffer + pos, *start, size);
     pos += size;
@@ -153,7 +153,7 @@
   size_t Emit(byte* buffer) const {
     size_t pos = 0;
     pos = WriteUint32v(buffer, pos, static_cast<uint32_t>(local_decls.size()));
-    for (size_t i = 0; i < local_decls.size(); i++) {
+    for (size_t i = 0; i < local_decls.size(); ++i) {
       pos = WriteUint32v(buffer, pos, local_decls[i].first);
       buffer[pos++] = WasmOpcodes::LocalTypeCodeFor(local_decls[i].second);
     }
@@ -364,6 +364,15 @@
       static_cast<byte>(                                                   \
           v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
       ZERO_ALIGNMENT, static_cast<byte>(offset)
+#define WASM_LOAD_MEM_ALIGNMENT(type, index, alignment)                        \
+  index, static_cast<byte>(                                                    \
+             v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, false)), \
+      alignment, ZERO_OFFSET
+#define WASM_STORE_MEM_ALIGNMENT(type, index, alignment, val)              \
+  index, val,                                                              \
+      static_cast<byte>(                                                   \
+          v8::internal::wasm::WasmOpcodes::LoadStoreOpcodeOf(type, true)), \
+      alignment, ZERO_OFFSET
 
 #define WASM_CALL_FUNCTION0(index) \
   kExprCallFunction, 0, static_cast<byte>(index)
diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc
index c9a4279..ca0a9b9 100644
--- a/src/wasm/wasm-module.cc
+++ b/src/wasm/wasm-module.cc
@@ -12,6 +12,7 @@
 
 #include "src/wasm/ast-decoder.h"
 #include "src/wasm/module-decoder.h"
+#include "src/wasm/wasm-debug.h"
 #include "src/wasm/wasm-function-name-table.h"
 #include "src/wasm/wasm-module.h"
 #include "src/wasm/wasm-result.h"
@@ -22,6 +23,8 @@
 namespace internal {
 namespace wasm {
 
+static const int kPlaceholderMarker = 1000000000;
+
 static const char* wasmSections[] = {
 #define F(enumerator, order, string) string,
     FOR_EACH_WASM_SECTION_TYPE(F)
@@ -109,113 +112,24 @@
   return os;
 }
 
-// A helper class for compiling multiple wasm functions that offers
-// placeholder code objects for calling functions that are not yet compiled.
-class WasmLinker {
- public:
-  WasmLinker(Isolate* isolate, size_t size)
-      : isolate_(isolate), placeholder_code_(size), function_code_(size) {}
-
-  // Get the code object for a function, allocating a placeholder if it has
-  // not yet been compiled.
-  Handle<Code> GetFunctionCode(uint32_t index) {
-    DCHECK(index < function_code_.size());
-    if (function_code_[index].is_null()) {
-      // 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.
-      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),
-          Handle<Object>::null());
-      code->set_constant_pool_offset(index + kPlaceholderMarker);
-      placeholder_code_[index] = code;
-      function_code_[index] = code;
-    }
-    return function_code_[index];
-  }
-
-  void Finish(uint32_t index, Handle<Code> code) {
-    DCHECK(index < function_code_.size());
-    function_code_[index] = code;
-  }
-
-  void Link(Handle<FixedArray> function_table,
-            std::vector<uint16_t>& functions) {
-    for (size_t i = 0; i < function_code_.size(); i++) {
-      LinkFunction(function_code_[i]);
-    }
-    if (!function_table.is_null()) {
-      int table_size = static_cast<int>(functions.size());
-      DCHECK_EQ(function_table->length(), table_size * 2);
-      for (int i = 0; i < table_size; i++) {
-        function_table->set(i + table_size, *function_code_[functions[i]]);
-      }
-    }
-  }
-
- private:
-  static const int kPlaceholderMarker = 1000000000;
-
-  Isolate* isolate_;
-  std::vector<Handle<Code>> placeholder_code_;
-  std::vector<Handle<Code>> function_code_;
-
-  void LinkFunction(Handle<Code> code) {
-    bool modified = false;
-    int mode_mask = RelocInfo::kCodeTargetMask;
-    AllowDeferredHandleDereference embedding_raw_address;
-    for (RelocIterator it(*code, mode_mask); !it.done(); it.next()) {
-      RelocInfo::Mode mode = it.rinfo()->rmode();
-      if (RelocInfo::IsCodeTarget(mode)) {
-        Code* target =
-            Code::GetCodeFromTargetAddress(it.rinfo()->target_address());
-        if (target->kind() == Code::WASM_FUNCTION &&
-            target->constant_pool_offset() >= kPlaceholderMarker) {
-          // Patch direct calls to placeholder code objects.
-          uint32_t index = target->constant_pool_offset() - kPlaceholderMarker;
-          CHECK(index < function_code_.size());
-          Handle<Code> new_target = function_code_[index];
-          if (target != *new_target) {
-            CHECK_EQ(*placeholder_code_[index], target);
-            it.rinfo()->set_target_address(new_target->instruction_start(),
-                                           SKIP_WRITE_BARRIER,
-                                           SKIP_ICACHE_FLUSH);
-            modified = true;
-          }
-        }
-      }
-    }
-    if (modified) {
-      Assembler::FlushICache(isolate_, code->instruction_start(),
-                             code->instruction_size());
-    }
-  }
-};
-
 namespace {
 // Internal constants for the layout of the module object.
-const int kWasmModuleInternalFieldCount = 5;
 const int kWasmModuleFunctionTable = 0;
 const int kWasmModuleCodeTable = 1;
 const int kWasmMemArrayBuffer = 2;
 const int kWasmGlobalsArrayBuffer = 3;
+// TODO(clemensh): Remove function name array, extract names from module bytes.
 const int kWasmFunctionNamesArray = 4;
+const int kWasmModuleBytesString = 5;
+const int kWasmDebugInfo = 6;
+const int kWasmModuleInternalFieldCount = 7;
 
-size_t AllocateGlobalsOffsets(std::vector<WasmGlobal>& globals) {
-  uint32_t offset = 0;
-  if (globals.size() == 0) return 0;
-  for (WasmGlobal& global : globals) {
-    byte size = WasmOpcodes::MemSize(global.type);
-    offset = (offset + size - 1) & ~(size - 1);  // align
-    global.offset = offset;
-    offset += size;
-  }
-  return offset;
+uint32_t GetMinModuleMemSize(const WasmModule* module) {
+  return WasmModule::kPageSize * module->min_mem_pages;
 }
 
-void LoadDataSegments(WasmModule* module, byte* mem_addr, size_t mem_size) {
+void LoadDataSegments(const WasmModule* module, byte* mem_addr,
+                      size_t mem_size) {
   for (const WasmDataSegment& segment : module->data_segments) {
     if (!segment.init) continue;
     if (!segment.source_size) continue;
@@ -228,14 +142,20 @@
   }
 }
 
-Handle<FixedArray> BuildFunctionTable(Isolate* isolate, WasmModule* module) {
-  if (module->function_table.size() == 0) {
+Handle<FixedArray> BuildFunctionTable(Isolate* isolate,
+                                      const WasmModule* module) {
+  // Compute the size of the indirect function table
+  uint32_t table_size = module->FunctionTableSize();
+  if (table_size == 0) {
     return Handle<FixedArray>::null();
   }
-  int table_size = static_cast<int>(module->function_table.size());
+
   Handle<FixedArray> fixed = isolate->factory()->NewFixedArray(2 * table_size);
-  for (int i = 0; i < table_size; i++) {
-    WasmFunction* function = &module->functions[module->function_table[i]];
+  for (uint32_t i = 0;
+       i < static_cast<uint32_t>(module->function_table.size());
+       ++i) {
+    const WasmFunction* function =
+        &module->functions[module->function_table[i]];
     fixed->set(i, Smi::FromInt(function->sig_index));
   }
   return fixed;
@@ -243,15 +163,13 @@
 
 Handle<JSArrayBuffer> NewArrayBuffer(Isolate* isolate, size_t size,
                                      byte** backing_store) {
+  *backing_store = nullptr;
   if (size > (WasmModule::kMaxMemPages * WasmModule::kPageSize)) {
     // TODO(titzer): lift restriction on maximum memory allocated here.
-    *backing_store = nullptr;
     return Handle<JSArrayBuffer>::null();
   }
-  void* memory =
-      isolate->array_buffer_allocator()->Allocate(static_cast<int>(size));
-  if (!memory) {
-    *backing_store = nullptr;
+  void* memory = isolate->array_buffer_allocator()->Allocate(size);
+  if (memory == nullptr) {
     return Handle<JSArrayBuffer>::null();
   }
 
@@ -260,7 +178,7 @@
 #if DEBUG
   // Double check the API allocator actually zero-initialized the memory.
   byte* bytes = reinterpret_cast<byte*>(*backing_store);
-  for (size_t i = 0; i < size; i++) {
+  for (size_t i = 0; i < size; ++i) {
     DCHECK_EQ(0, bytes[i]);
   }
 #endif
@@ -271,12 +189,27 @@
   return buffer;
 }
 
+void RelocateInstanceCode(WasmModuleInstance* instance) {
+  for (uint32_t i = 0; i < instance->function_code.size(); ++i) {
+    Handle<Code> function = instance->function_code[i];
+    AllowDeferredHandleDereference embedding_raw_address;
+    int mask = (1 << RelocInfo::WASM_MEMORY_REFERENCE) |
+               (1 << RelocInfo::WASM_MEMORY_SIZE_REFERENCE);
+    for (RelocIterator it(*function, mask); !it.done(); it.next()) {
+      it.rinfo()->update_wasm_memory_reference(
+          nullptr, instance->mem_start, GetMinModuleMemSize(instance->module),
+          static_cast<uint32_t>(instance->mem_size));
+    }
+  }
+}
+
 // Set the memory for a module instance to be the {memory} array buffer.
 void SetMemory(WasmModuleInstance* instance, Handle<JSArrayBuffer> memory) {
   memory->set_is_neuterable(false);
   instance->mem_start = reinterpret_cast<byte*>(memory->backing_store());
   instance->mem_size = memory->byte_length()->Number();
   instance->mem_buffer = memory;
+  RelocateInstanceCode(instance);
 }
 
 // Allocate memory for a module instance as a new JSArrayBuffer.
@@ -289,50 +222,140 @@
     thrower->Error("Out of memory: wasm memory too large");
     return false;
   }
-  instance->mem_size = WasmModule::kPageSize * instance->module->min_mem_pages;
+  instance->mem_size = GetMinModuleMemSize(instance->module);
   instance->mem_buffer =
       NewArrayBuffer(isolate, instance->mem_size, &instance->mem_start);
-  if (!instance->mem_start) {
+  if (instance->mem_start == nullptr) {
     thrower->Error("Out of memory: wasm memory");
     instance->mem_size = 0;
     return false;
   }
+  RelocateInstanceCode(instance);
   return true;
 }
 
 bool AllocateGlobals(ErrorThrower* thrower, Isolate* isolate,
                      WasmModuleInstance* instance) {
-  instance->globals_size = AllocateGlobalsOffsets(instance->module->globals);
-
-  if (instance->globals_size > 0) {
-    instance->globals_buffer = NewArrayBuffer(isolate, instance->globals_size,
-                                              &instance->globals_start);
+  uint32_t globals_size = instance->module->globals_size;
+  if (globals_size > 0) {
+    instance->globals_buffer =
+        NewArrayBuffer(isolate, globals_size, &instance->globals_start);
     if (!instance->globals_start) {
       // Not enough space for backing store of globals.
       thrower->Error("Out of memory: wasm globals");
       return false;
     }
+
+    for (uint32_t i = 0; i < instance->function_code.size(); ++i) {
+      Handle<Code> function = instance->function_code[i];
+      AllowDeferredHandleDereference embedding_raw_address;
+      int mask = 1 << RelocInfo::WASM_GLOBAL_REFERENCE;
+      for (RelocIterator it(*function, mask); !it.done(); it.next()) {
+        it.rinfo()->update_wasm_global_reference(nullptr,
+                                                 instance->globals_start);
+      }
+    }
   }
   return true;
 }
+
+Handle<Code> CreatePlaceholder(Factory* factory, uint32_t index,
+                               Code::Kind kind) {
+  // 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.
+  static byte buffer[] = {0, 0, 0, 0, 0, 0, 0, 0};  // fake instructions.
+  static CodeDesc desc = {buffer, 8, 8, 0, 0, nullptr, 0, nullptr};
+  Handle<Code> code = factory->NewCode(desc, Code::KindField::encode(kind),
+                                       Handle<Object>::null());
+  code->set_constant_pool_offset(static_cast<int>(index) + kPlaceholderMarker);
+  return code;
+}
+
+// TODO(mtrofin): remove when we stop relying on placeholders.
+void InitializePlaceholders(Factory* factory,
+                            std::vector<Handle<Code>>* placeholders,
+                            size_t size) {
+  DCHECK(placeholders->empty());
+  placeholders->reserve(size);
+
+  for (uint32_t i = 0; i < size; ++i) {
+    placeholders->push_back(CreatePlaceholder(factory, i, Code::WASM_FUNCTION));
+  }
+}
+
+bool LinkFunction(Handle<Code> unlinked,
+                  const std::vector<Handle<Code>>& code_targets,
+                  Code::Kind kind) {
+  bool modified = false;
+  int mode_mask = RelocInfo::kCodeTargetMask;
+  AllowDeferredHandleDereference embedding_raw_address;
+  for (RelocIterator it(*unlinked, mode_mask); !it.done(); it.next()) {
+    RelocInfo::Mode mode = it.rinfo()->rmode();
+    if (RelocInfo::IsCodeTarget(mode)) {
+      Code* target =
+          Code::GetCodeFromTargetAddress(it.rinfo()->target_address());
+      if (target->kind() == kind &&
+          target->constant_pool_offset() >= kPlaceholderMarker) {
+        // Patch direct calls to placeholder code objects.
+        uint32_t index = target->constant_pool_offset() - kPlaceholderMarker;
+        CHECK(index < code_targets.size());
+        Handle<Code> new_target = code_targets[index];
+        if (target != *new_target) {
+          it.rinfo()->set_target_address(new_target->instruction_start(),
+                                         SKIP_WRITE_BARRIER, SKIP_ICACHE_FLUSH);
+          modified = true;
+        }
+      }
+    }
+  }
+  return modified;
+}
+
+void LinkModuleFunctions(Isolate* isolate,
+                         std::vector<Handle<Code>>& functions) {
+  for (size_t i = 0; i < functions.size(); ++i) {
+    Handle<Code> code = functions[i];
+    bool modified = LinkFunction(code, functions, Code::WASM_FUNCTION);
+    if (modified) {
+      Assembler::FlushICache(isolate, code->instruction_start(),
+                             code->instruction_size());
+    }
+  }
+}
+
+void LinkImports(Isolate* isolate, std::vector<Handle<Code>>& functions,
+                 const std::vector<Handle<Code>>& imports) {
+  for (uint32_t i = 0; i < functions.size(); ++i) {
+    Handle<Code> code = functions[i];
+    bool modified = LinkFunction(code, imports, Code::WASM_TO_JS_FUNCTION);
+    if (modified) {
+      Assembler::FlushICache(isolate, code->instruction_start(),
+                             code->instruction_size());
+    }
+  }
+}
+
 }  // namespace
 
 WasmModule::WasmModule()
-    : shared_isolate(nullptr),
-      module_start(nullptr),
+    : module_start(nullptr),
       module_end(nullptr),
       min_mem_pages(0),
       max_mem_pages(0),
       mem_export(false),
       mem_external(false),
       start_function_index(-1),
-      origin(kWasmOrigin) {}
+      origin(kWasmOrigin),
+      globals_size(0),
+      indirect_table_size(0),
+      pending_tasks(new base::Semaphore(0)) {}
 
 static MaybeHandle<JSFunction> ReportFFIError(ErrorThrower& thrower,
                                               const char* error, uint32_t index,
                                               wasm::WasmName module_name,
                                               wasm::WasmName function_name) {
-  if (function_name.start()) {
+  if (!function_name.is_empty()) {
     thrower.Error("Import #%d module=\"%.*s\" function=\"%.*s\" error: %s",
                   index, module_name.length(), module_name.start(),
                   function_name.length(), function_name.start(), error);
@@ -368,7 +391,7 @@
   }
 
   Handle<Object> function;
-  if (function_name.start()) {
+  if (!function_name.is_empty()) {
     // Look up the function in the module.
     Handle<String> name = factory->InternalizeUtf8String(function_name);
     MaybeHandle<Object> result = Object::GetProperty(module, name);
@@ -411,7 +434,7 @@
 
   compiler::WasmCompilationUnit* unit = compilation_units->at(index);
   if (unit != nullptr) {
-    compiler::ExecuteCompilation(unit);
+    unit->ExecuteCompilation();
     {
       base::LockGuard<base::Mutex> guard(result_mutex);
       executed_units->push(unit);
@@ -452,22 +475,31 @@
   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();
-  }
-}
+// Records statistics on the code generated by compiling WASM functions.
+struct CodeStats {
+  size_t code_size;
+  size_t reloc_size;
 
-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;
+  inline CodeStats() : code_size(0), reloc_size(0) {}
+
+  inline void Record(Code* code) {
+    code_size += code->body_size();
+    reloc_size += code->relocation_info()->length();
+  }
+
+  inline void Report() {
+    PrintF("Total generated wasm code: %zu bytes\n", code_size);
+    PrintF("Total generated wasm reloc: %zu bytes\n", reloc_size);
+  }
+};
+
+bool CompileWrappersToImportedFunctions(
+    Isolate* isolate, const WasmModule* module, const Handle<JSReceiver> ffi,
+    WasmModuleInstance* instance, ErrorThrower* thrower, Factory* factory) {
   if (module->import_table.size() > 0) {
     instance->import_code.reserve(module->import_table.size());
-    for (const WasmImport& import : module->import_table) {
+    for (uint32_t index = 0; index < module->import_table.size(); ++index) {
+      const WasmImport& import = module->import_table[index];
       WasmName module_name = module->GetNameOrNull(import.module_name_offset,
                                                    import.module_name_length);
       WasmName function_name = module->GetNameOrNull(
@@ -477,28 +509,20 @@
       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++;
+          isolate, function.ToHandleChecked(), import.sig, module_name,
+          function_name);
+      instance->import_code[index] = code;
     }
   }
   return true;
 }
 
 void InitializeParallelCompilation(
-    Isolate* isolate, std::vector<WasmFunction>& functions,
+    Isolate* isolate, const 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(
+  for (uint32_t i = FLAG_skip_compiling_wasm_funcs; i < functions.size(); ++i) {
+    compilation_units[i] = new compiler::WasmCompilationUnit(
         &thrower, isolate, &module_env, &functions[i], i);
   }
 }
@@ -507,16 +531,16 @@
     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) {
+    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++) {
+  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);
+                                pending_tasks, &result_mutex, &next_unit);
     task_ids[i] = task->id();
     V8::GetCurrentPlatform()->CallOnBackgroundThread(
         task, v8::Platform::kShortRunningTask);
@@ -524,13 +548,12 @@
   return task_ids;
 }
 
-void WaitForCompilationTasks(
-    Isolate* isolate, uint32_t* task_ids,
-    const base::SmartPointer<base::Semaphore>& pending_tasks) {
+void WaitForCompilationTasks(Isolate* isolate, uint32_t* task_ids,
+                             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++) {
+  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])) {
@@ -540,7 +563,6 @@
 }
 
 void FinishCompilationUnits(
-    WasmModule* module,
     std::queue<compiler::WasmCompilationUnit*>& executed_units,
     std::vector<Handle<Code>>& results, base::Mutex& result_mutex) {
   while (true) {
@@ -553,90 +575,201 @@
       unit = executed_units.front();
       executed_units.pop();
     }
-    int j = compiler::GetIndexOfWasmCompilationUnit(unit);
-    results[j] = compiler::FinishCompilation(unit);
+    int j = unit->index();
+    results[j] = unit->FinishCompilation();
+    delete 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) {
+void CompileInParallel(Isolate* isolate, const WasmModule* module,
+                       std::vector<Handle<Code>>& functions,
+                       ErrorThrower* thrower, ModuleEnv* module_env) {
+  // Data structures for the parallel compilation.
+  std::vector<compiler::WasmCompilationUnit*> compilation_units(
+      module->functions.size());
+  std::queue<compiler::WasmCompilationUnit*> executed_units;
+
+  //-----------------------------------------------------------------------
+  // 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, module->functions, compilation_units,
+                                *module_env, *thrower);
+
+  // Objects for the synchronization with the background threads.
+  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, module->pending_tasks.get(),
+      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(executed_units, functions, result_mutex);
+  }
+  // 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(), module->pending_tasks.get());
+  // Finish the compilation of the remaining compilation units.
+  FinishCompilationUnits(executed_units, functions, result_mutex);
+}
+
+void CompileSequentially(Isolate* isolate, const WasmModule* module,
+                         std::vector<Handle<Code>>& functions,
+                         ErrorThrower* thrower, ModuleEnv* module_env) {
+  DCHECK(!thrower->error());
+
   for (uint32_t i = FLAG_skip_compiling_wasm_funcs;
-       i < module->functions.size(); i++) {
+       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);
-    }
+    // Compile the function.
+    code = compiler::WasmCompilationUnit::CompileWasmFunction(
+        thrower, isolate, module_env, &func);
     if (code.is_null()) {
-      thrower.Error("Compilation of #%d:%.*s failed.", i, str.length(),
-                    str.start());
-      return false;
+      thrower->Error("Compilation of #%d:%.*s failed.", i, str.length(),
+                     str.start());
+      break;
     }
-    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());
+    functions[i] = code;
+  }
+}
+
+void PopulateFunctionTable(WasmModuleInstance* instance) {
+  if (!instance->function_table.is_null()) {
+    uint32_t table_size = instance->module->FunctionTableSize();
+    DCHECK_EQ(table_size * 2, instance->function_table->length());
+    uint32_t populated_table_size =
+        static_cast<uint32_t>(instance->module->function_table.size());
+    for (uint32_t i = 0; i < populated_table_size; ++i) {
+    instance->function_table->set(
+        i + table_size,
+        *instance->function_code[instance->module->function_table[i]]);
     }
   }
-  return true;
 }
 }  // namespace
 
+void SetDeoptimizationData(Factory* factory, Handle<JSObject> js_object,
+                           std::vector<Handle<Code>>& functions) {
+  for (size_t i = FLAG_skip_compiling_wasm_funcs; i < functions.size(); ++i) {
+    Handle<Code> code = functions[i];
+    DCHECK(code->deoptimization_data() == nullptr ||
+           code->deoptimization_data()->length() == 0);
+    Handle<FixedArray> deopt_data = factory->NewFixedArray(2, TENURED);
+    if (!js_object.is_null()) {
+      deopt_data->set(0, *js_object);
+    }
+    deopt_data->set(1, Smi::FromInt(static_cast<int>(i)));
+    deopt_data->set_length(2);
+    code->set_deoptimization_data(*deopt_data);
+  }
+}
+
+Handle<FixedArray> WasmModule::CompileFunctions(Isolate* isolate) const {
+  Factory* factory = isolate->factory();
+  ErrorThrower thrower(isolate, "WasmModule::CompileFunctions()");
+
+  WasmModuleInstance temp_instance_for_compilation(this);
+  temp_instance_for_compilation.function_table =
+      BuildFunctionTable(isolate, this);
+  temp_instance_for_compilation.context = isolate->native_context();
+  temp_instance_for_compilation.mem_size = GetMinModuleMemSize(this);
+  temp_instance_for_compilation.mem_start = nullptr;
+  temp_instance_for_compilation.globals_start = nullptr;
+
+  ModuleEnv module_env;
+  module_env.module = this;
+  module_env.instance = &temp_instance_for_compilation;
+  module_env.origin = origin;
+  InitializePlaceholders(factory, &module_env.placeholders, functions.size());
+
+  Handle<FixedArray> ret =
+      factory->NewFixedArray(static_cast<int>(functions.size()), TENURED);
+
+  temp_instance_for_compilation.import_code.resize(import_table.size());
+  for (uint32_t i = 0; i < import_table.size(); ++i) {
+    temp_instance_for_compilation.import_code[i] =
+        CreatePlaceholder(factory, i, Code::WASM_TO_JS_FUNCTION);
+  }
+  isolate->counters()->wasm_functions_per_module()->AddSample(
+      static_cast<int>(functions.size()));
+  if (FLAG_wasm_num_compilation_tasks != 0) {
+    CompileInParallel(isolate, this,
+                      temp_instance_for_compilation.function_code, &thrower,
+                      &module_env);
+  } else {
+    CompileSequentially(isolate, this,
+                        temp_instance_for_compilation.function_code, &thrower,
+                        &module_env);
+  }
+  if (thrower.error()) {
+    return Handle<FixedArray>::null();
+  }
+
+  LinkModuleFunctions(isolate, temp_instance_for_compilation.function_code);
+
+  // At this point, compilation has completed. Update the code table
+  // and record sizes.
+  for (size_t i = FLAG_skip_compiling_wasm_funcs;
+       i < temp_instance_for_compilation.function_code.size(); ++i) {
+    Code* code = *temp_instance_for_compilation.function_code[i];
+    ret->set(static_cast<int>(i), code);
+  }
+
+  PopulateFunctionTable(&temp_instance_for_compilation);
+
+  return ret;
+}
+
 // 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<JSReceiver> ffi,
-                                              Handle<JSArrayBuffer> memory) {
+MaybeHandle<JSObject> WasmModule::Instantiate(
+    Isolate* isolate, Handle<JSReceiver> ffi,
+    Handle<JSArrayBuffer> memory) const {
   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.
   //-------------------------------------------------------------------------
@@ -646,9 +779,26 @@
   WasmModuleInstance instance(this);
   instance.context = isolate->native_context();
   instance.js_object = factory->NewJSObjectFromMap(map, TENURED);
-  Handle<FixedArray> code_table =
-      factory->NewFixedArray(static_cast<int>(functions.size()), TENURED);
+
+  Handle<FixedArray> code_table = CompileFunctions(isolate);
+  if (code_table.is_null()) return Handle<JSObject>::null();
+
   instance.js_object->SetInternalField(kWasmModuleCodeTable, *code_table);
+  size_t module_bytes_len =
+      instance.module->module_end - instance.module->module_start;
+  DCHECK_LE(module_bytes_len, static_cast<size_t>(kMaxInt));
+  Vector<const uint8_t> module_bytes_vec(instance.module->module_start,
+                                         static_cast<int>(module_bytes_len));
+  Handle<String> module_bytes_string =
+      factory->NewStringFromOneByte(module_bytes_vec, TENURED)
+          .ToHandleChecked();
+  instance.js_object->SetInternalField(kWasmModuleBytesString,
+                                       *module_bytes_string);
+
+  for (uint32_t i = 0; i < functions.size(); ++i) {
+    Handle<Code> code = Handle<Code>(Code::cast(code_table->get(i)));
+    instance.function_code[i] = code;
+  }
 
   //-------------------------------------------------------------------------
   // Allocate and initialize the linear memory.
@@ -682,132 +832,75 @@
   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;
   module_env.module = this;
   module_env.instance = &instance;
-  module_env.linker = &linker;
   module_env.origin = origin;
 
   //-------------------------------------------------------------------------
   // Compile wrappers to imported functions.
   //-------------------------------------------------------------------------
   if (!CompileWrappersToImportedFunctions(isolate, this, ffi, &instance,
-                                          &thrower, factory, &module_env,
-                                          total_code_size)) {
+                                          &thrower, factory)) {
     return MaybeHandle<JSObject>();
   }
-  //-------------------------------------------------------------------------
-  // Compile all functions in the module.
-  //-------------------------------------------------------------------------
+
+  // 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
+  CodeStats code_stats;
+  if (FLAG_print_wasm_code_size) {
+    for (Handle<Code> c : instance.function_code) code_stats.Record(*c);
+    for (Handle<Code> c : instance.import_code) code_stats.Record(*c);
+  }
+
   {
-    isolate->counters()->wasm_functions_per_module()->AddSample(
-        static_cast<int>(functions.size()));
-
-    // 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());
-
-    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);
-      }
-      // 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);
-    }
-    // 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>();
-    }
-
-    // Patch all direct call sites.
-    linker.Link(instance.function_table, this->function_table);
     instance.js_object->SetInternalField(kWasmModuleFunctionTable,
                                          Smi::FromInt(0));
+    LinkImports(isolate, instance.function_code, instance.import_code);
+
+    SetDeoptimizationData(factory, instance.js_object, instance.function_code);
 
     //-------------------------------------------------------------------------
     // 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);
+      Handle<JSObject> exports_object;
+      if (origin == kWasmOrigin) {
+        // Create the "exports" object.
+        Handle<JSFunction> object_function = Handle<JSFunction>(
+            isolate->native_context()->object_function(), isolate);
+        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);
+      } else {
+        // Just export the functions directly on the object returned.
+        exports_object = instance.js_object;
+      }
+
+      PropertyDescriptor desc;
+      desc.set_writable(false);
 
       // 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<Code> code = instance.function_code[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());
+        if (FLAG_print_wasm_code_size) {
+          code_stats.Record(function->code());
+        }
         desc.set_value(function);
         Maybe<bool> status = JSReceiver::DefineOwnProperty(
             isolate, exports_object, name, &desc, Object::THROW_ON_ERROR);
-        if (!status.IsJust())
+        if (!status.IsJust()) {
           thrower.Error("export of %.*s failed.", str.length(), str.start());
+          break;
+        }
       }
 
       if (mem_export) {
@@ -819,29 +912,28 @@
     }
   }
 
-  //-------------------------------------------------------------------------
-  // 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) {
+    code_stats.Report();
   }
-
-  if (FLAG_print_wasm_code_size)
-    printf("Total generated wasm code: %u bytes\n", total_code_size);
+  //-------------------------------------------------------------------------
+  // Attach the function name table.
+  //-------------------------------------------------------------------------
+  Handle<ByteArray> function_name_table =
+      BuildFunctionNamesTable(isolate, module_env.module);
+  instance.js_object->SetInternalField(kWasmFunctionNamesArray,
+                                       *function_name_table);
 
   // Run the start function if one was specified.
   if (this->start_function_index >= 0) {
     HandleScope scope(isolate);
     uint32_t index = static_cast<uint32_t>(this->start_function_index);
     Handle<String> name = isolate->factory()->NewStringFromStaticChars("start");
-    Handle<Code> code = linker.GetFunctionCode(index);
+    Handle<Code> code = instance.function_code[index];
     Handle<JSFunction> jsfunc = compiler::CompileJSToWasmWrapper(
         isolate, &module_env, name, code, instance.js_object, index);
 
     // Call the JS function.
-    Handle<Object> undefined(isolate->heap()->undefined_value(), isolate);
+    Handle<Object> undefined = isolate->factory()->undefined_value();
     MaybeHandle<Object> retval =
         Execution::Call(isolate, jsfunc, undefined, 0, nullptr);
 
@@ -852,10 +944,12 @@
   return instance.js_object;
 }
 
-Handle<Code> ModuleEnv::GetFunctionCode(uint32_t index) {
+// TODO(mtrofin): remove this once we move to WASM_DIRECT_CALL
+Handle<Code> ModuleEnv::GetCodeOrPlaceholder(uint32_t index) const {
   DCHECK(IsValidFunction(index));
-  if (linker) return linker->GetFunctionCode(index);
-  return instance ? instance->function_code[index] : Handle<Code>::null();
+  if (!placeholders.empty()) return placeholders[index];
+  DCHECK_NOT_NULL(instance);
+  return instance->function_code[index];
 }
 
 Handle<Code> ModuleEnv::GetImportCode(uint32_t index) {
@@ -868,98 +962,122 @@
   DCHECK(IsValidFunction(index));
   // Always make a direct call to whatever is in the table at that location.
   // A wrapper will be generated for FFI calls.
-  WasmFunction* function = &module->functions[index];
+  const WasmFunction* function = &module->functions[index];
   return GetWasmCallDescriptor(zone, function->sig);
 }
 
+Handle<Object> GetWasmFunctionNameOrNull(Isolate* isolate, Handle<Object> wasm,
+                                         uint32_t func_index) {
+  if (!wasm->IsUndefined(isolate)) {
+    Handle<ByteArray> func_names_arr_obj(
+        ByteArray::cast(Handle<JSObject>::cast(wasm)->GetInternalField(
+            kWasmFunctionNamesArray)),
+        isolate);
+    // TODO(clemens): Extract this from the module bytes; skip whole function
+    // name table.
+    Handle<Object> name;
+    if (GetWasmFunctionNameFromTable(func_names_arr_obj, func_index)
+            .ToHandle(&name)) {
+      return name;
+    }
+  }
+  return isolate->factory()->null_value();
+}
+
+Handle<String> GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
+                                   uint32_t func_index) {
+  Handle<Object> name_or_null =
+      GetWasmFunctionNameOrNull(isolate, wasm, func_index);
+  if (!name_or_null->IsNull(isolate)) {
+    return Handle<String>::cast(name_or_null);
+  }
+  return isolate->factory()->NewStringFromStaticChars("<WASM UNNAMED>");
+}
+
+bool IsWasmObject(Object* object) {
+  if (!object->IsJSObject()) return false;
+  JSObject* obj = JSObject::cast(object);
+  if (obj->GetInternalFieldCount() != kWasmModuleInternalFieldCount ||
+      !obj->GetInternalField(kWasmModuleCodeTable)->IsFixedArray() ||
+      !obj->GetInternalField(kWasmMemArrayBuffer)->IsJSArrayBuffer() ||
+      !obj->GetInternalField(kWasmFunctionNamesArray)->IsByteArray() ||
+      !obj->GetInternalField(kWasmModuleBytesString)->IsSeqOneByteString()) {
+    return false;
+  }
+  DisallowHeapAllocation no_gc;
+  SeqOneByteString* bytes =
+      SeqOneByteString::cast(obj->GetInternalField(kWasmModuleBytesString));
+  if (bytes->length() < 4) return false;
+  if (memcmp(bytes->GetChars(), "\0asm", 4)) return false;
+
+  // All checks passed.
+  return true;
+}
+
+SeqOneByteString* GetWasmBytes(JSObject* wasm) {
+  return SeqOneByteString::cast(wasm->GetInternalField(kWasmModuleBytesString));
+}
+
+WasmDebugInfo* GetDebugInfo(JSObject* wasm) {
+  Object* info = wasm->GetInternalField(kWasmDebugInfo);
+  if (!info->IsUndefined(wasm->GetIsolate())) return WasmDebugInfo::cast(info);
+  Handle<WasmDebugInfo> new_info = WasmDebugInfo::New(handle(wasm));
+  wasm->SetInternalField(kWasmDebugInfo, *new_info);
+  return *new_info;
+}
+
+namespace testing {
+
 int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start,
                                 const byte* module_end, bool asm_js) {
   HandleScope scope(isolate);
   Zone zone(isolate->allocator());
+  ErrorThrower thrower(isolate, "CompileAndRunWasmModule");
+
   // Decode the module, but don't verify function bodies, since we'll
   // be compiling them anyway.
-  ModuleResult result = DecodeWasmModule(isolate, &zone, module_start,
-                                         module_end, false, kWasmOrigin);
-  if (result.failed()) {
-    if (result.val) {
-      delete result.val;
-    }
+  ModuleResult decoding_result =
+      DecodeWasmModule(isolate, &zone, module_start, module_end, false,
+                       asm_js ? kAsmJsOrigin : kWasmOrigin);
+
+  std::unique_ptr<const WasmModule> module(decoding_result.val);
+  if (decoding_result.failed()) {
     // Module verification failed. throw.
-    std::ostringstream str;
-    str << "WASM.compileRun() failed: " << result;
-    isolate->Throw(
-        *isolate->factory()->NewStringFromAsciiChecked(str.str().c_str()));
+    thrower.Error("WASM.compileRun() failed: %s",
+                  decoding_result.error_msg.get());
     return -1;
   }
 
-  int32_t retval = CompileAndRunWasmModule(isolate, result.val);
-  delete result.val;
-  return retval;
-}
-
-int32_t CompileAndRunWasmModule(Isolate* isolate, WasmModule* module) {
-  ErrorThrower thrower(isolate, "CompileAndRunWasmModule");
-  WasmModuleInstance instance(module);
-
-  // Allocate and initialize the linear memory.
-  if (!AllocateMemory(&thrower, isolate, &instance)) {
-    return -1;
+  if (module->import_table.size() > 0) {
+    thrower.Error("Not supported: module has imports.");
   }
-  LoadDataSegments(module, instance.mem_start, instance.mem_size);
-
-  // Allocate the globals area if necessary.
-  if (!AllocateGlobals(&thrower, isolate, &instance)) {
-    return -1;
+  if (module->export_table.size() == 0) {
+    thrower.Error("Not supported: module has no exports.");
   }
 
-  // Build the function table.
-  instance.function_table = BuildFunctionTable(isolate, module);
+  if (thrower.error()) return -1;
 
-  // Create module environment.
-  WasmLinker linker(isolate, module->functions.size());
-  ModuleEnv module_env;
-  module_env.module = module;
-  module_env.instance = &instance;
-  module_env.linker = &linker;
-  module_env.origin = module->origin;
+  Handle<JSObject> instance =
+      module
+          ->Instantiate(isolate, Handle<JSReceiver>::null(),
+                        Handle<JSArrayBuffer>::null())
+          .ToHandleChecked();
 
-  // Compile all functions.
-  Handle<Code> main_code = Handle<Code>::null();  // record last code.
-  uint32_t index = 0;
-  int main_index = 0;
-  for (const WasmFunction& func : module->functions) {
-    DCHECK_EQ(index, func.func_index);
-    // 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);
-    }
-    if (thrower.error()) return -1;
-    index++;
-  }
+  Handle<Name> exports = isolate->factory()->InternalizeUtf8String("exports");
+  Handle<JSObject> exports_object = Handle<JSObject>::cast(
+      JSObject::GetProperty(instance, exports).ToHandleChecked());
+  Handle<Name> main_name = isolate->factory()->NewStringFromStaticChars("main");
+  PropertyDescriptor desc;
+  Maybe<bool> property_found = JSReceiver::GetOwnPropertyDescriptor(
+      isolate, exports_object, main_name, &desc);
+  if (!property_found.FromMaybe(false)) return -1;
 
-  if (main_code.is_null()) {
-    thrower.Error("WASM.compileRun() failed: no main code found");
-    return -1;
-  }
-
-  linker.Link(instance.function_table, instance.module->function_table);
-
-  // Wrap the main 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<JSFunction> jsfunc = compiler::CompileJSToWasmWrapper(
-      isolate, &module_env, name, main_code, module_object, main_index);
+  Handle<JSFunction> main_export = Handle<JSFunction>::cast(desc.value());
 
   // Call the JS function.
-  Handle<Object> undefined(isolate->heap()->undefined_value(), isolate);
+  Handle<Object> undefined = isolate->factory()->undefined_value();
   MaybeHandle<Object> retval =
-      Execution::Call(isolate, jsfunc, undefined, 0, nullptr);
+      Execution::Call(isolate, main_export, undefined, 0, nullptr);
 
   // The result should be a number.
   if (retval.is_null()) {
@@ -977,15 +1095,7 @@
   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 testing
 }  // namespace wasm
 }  // namespace internal
 }  // namespace v8
diff --git a/src/wasm/wasm-module.h b/src/wasm/wasm-module.h
index 2ac0425..019dc56 100644
--- a/src/wasm/wasm-module.h
+++ b/src/wasm/wasm-module.h
@@ -5,11 +5,10 @@
 #ifndef V8_WASM_MODULE_H_
 #define V8_WASM_MODULE_H_
 
-#include "src/wasm/wasm-opcodes.h"
-#include "src/wasm/wasm-result.h"
-
 #include "src/api.h"
 #include "src/handles.h"
+#include "src/wasm/wasm-opcodes.h"
+#include "src/wasm/wasm-result.h"
 
 namespace v8 {
 namespace internal {
@@ -42,15 +41,13 @@
   F(FunctionBodies, 8, "code")         \
   F(DataSegments, 9, "data")           \
   F(Names, 10, "name")                 \
-  F(OldFunctions, 0, "old_function")   \
+  F(FunctionTablePad, 11, "table_pad") \
   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 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'
@@ -62,11 +59,12 @@
   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'
+#define WASM_SECTION_FUNCTION_TABLE_PAD \
+  9, 't', 'a', 'b', 'l', 'e', '_', 'p', 'a', 'd'
 
 // Constants for the above section headers' size (LEB128 + characters).
 #define WASM_SECTION_MEMORY_SIZE ((size_t)7)
 #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)
@@ -77,6 +75,9 @@
 #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)
+#define WASM_SECTION_FUNCTION_TABLE_PAD_SIZE ((size_t)10)
+
+class WasmDebugInfo;
 
 struct WasmSection {
   enum class Code : uint32_t {
@@ -114,7 +115,6 @@
   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.
-  bool exported;                 // true if this function is exported.
 };
 
 // Static representation of an imported WASM function.
@@ -159,7 +159,6 @@
   static const uint32_t kMinMemPages = 1;       // Minimum memory size = 64kb
   static const uint32_t kMaxMemPages = 16384;   // Maximum memory size =  1gb
 
-  Isolate* shared_isolate;    // isolate for storing shared code.
   const byte* module_start;   // starting address for the module bytes.
   const byte* module_end;     // end address for the module bytes.
   uint32_t min_mem_pages;     // minimum size of the memory in 64k pages.
@@ -170,12 +169,23 @@
   ModuleOrigin origin;        // origin of the module
 
   std::vector<WasmGlobal> globals;             // globals in this module.
+  uint32_t globals_size;                       // size of globals table.
+  uint32_t indirect_table_size;                // size of indirect function
+                                               //     table (includes padding).
   std::vector<FunctionSig*> signatures;        // signatures in this module.
   std::vector<WasmFunction> functions;         // functions in this module.
   std::vector<WasmDataSegment> data_segments;  // data segments in this module.
   std::vector<uint16_t> function_table;        // function table.
   std::vector<WasmImport> import_table;        // import table.
   std::vector<WasmExport> export_table;        // export table.
+  // We store the semaphore here to extend its lifetime. In <libc-2.21, which we
+  // use on the try bots, semaphore::Wait() can return while some compilation
+  // tasks are still executing semaphore::Signal(). If the semaphore is cleaned
+  // up right after semaphore::Wait() returns, then this can cause an
+  // invalid-semaphore error in the compilation tasks.
+  // TODO(wasm): Move this semaphore back to CompileInParallel when the try bots
+  // switch to libc-2.21 or higher.
+  base::SmartPointer<base::Semaphore> pending_tasks;
 
   WasmModule();
 
@@ -195,7 +205,7 @@
 
   // 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.
+    if (offset == 0 && length == 0) return {NULL, 0};  // no name.
     CHECK(BoundsCheck(offset, offset + length));
     DCHECK_GE(static_cast<int>(length), 0);
     return {reinterpret_cast<const char*>(module_start + offset),
@@ -203,7 +213,7 @@
   }
 
   // Get a string stored in the module bytes representing a function name.
-  WasmName GetNameOrNull(WasmFunction* function) const {
+  WasmName GetNameOrNull(const WasmFunction* function) const {
     return GetNameOrNull(function->name_offset, function->name_length);
   }
 
@@ -215,12 +225,22 @@
 
   // Creates a new instantiation of the module in the given isolate.
   MaybeHandle<JSObject> Instantiate(Isolate* isolate, Handle<JSReceiver> ffi,
-                                    Handle<JSArrayBuffer> memory);
+                                    Handle<JSArrayBuffer> memory) const;
+
+  Handle<FixedArray> CompileFunctions(Isolate* isolate) const;
+
+  uint32_t FunctionTableSize() const {
+    if (indirect_table_size > 0) {
+      return indirect_table_size;
+    }
+    DCHECK_LE(function_table.size(), UINT32_MAX);
+    return static_cast<uint32_t>(function_table.size());
+  }
 };
 
 // An instantiated WASM module, including memory, function table, etc.
 struct WasmModuleInstance {
-  WasmModule* module;  // static representation of the module.
+  const WasmModule* module;  // static representation of the module.
   // -- Heap allocated --------------------------------------------------------
   Handle<JSObject> js_object;            // JavaScript module object.
   Handle<Context> context;               // JavaScript native context.
@@ -231,34 +251,33 @@
   std::vector<Handle<Code>> import_code;    // code objects for each import.
   // -- raw memory ------------------------------------------------------------
   byte* mem_start;  // start of linear memory.
-  size_t mem_size;  // size of the linear memory.
+  uint32_t mem_size;  // size of the linear memory.
   // -- raw globals -----------------------------------------------------------
   byte* globals_start;  // start of the globals area.
-  size_t globals_size;  // size of the globals area.
 
-  explicit WasmModuleInstance(WasmModule* m)
+  explicit WasmModuleInstance(const WasmModule* m)
       : module(m),
+        function_code(m->functions.size()),
+        import_code(m->import_table.size()),
         mem_start(nullptr),
         mem_size(0),
-        globals_start(nullptr),
-        globals_size(0) {}
+        globals_start(nullptr) {}
 };
 
-// forward declaration.
-class WasmLinker;
-
 // Interface provided to the decoder/graph builder which contains only
 // minimal information about the globals, functions, and function tables.
 struct ModuleEnv {
-  WasmModule* module;
+  const WasmModule* module;
   WasmModuleInstance* instance;
-  WasmLinker* linker;
   ModuleOrigin origin;
+  // TODO(mtrofin): remove this once we introduce WASM_DIRECT_CALL
+  // reloc infos.
+  std::vector<Handle<Code>> placeholders;
 
   bool IsValidGlobal(uint32_t index) {
     return module && index < module->globals.size();
   }
-  bool IsValidFunction(uint32_t index) {
+  bool IsValidFunction(uint32_t index) const {
     return module && index < module->functions.size();
   }
   bool IsValidSignature(uint32_t index) {
@@ -283,15 +302,14 @@
     DCHECK(IsValidSignature(index));
     return module->signatures[index];
   }
-  size_t FunctionTableSize() {
-    return module ? module->function_table.size() : 0;
+  uint32_t FunctionTableSize() const {
+    return module->FunctionTableSize();
   }
 
   bool asm_js() { return origin == kAsmJsOrigin; }
 
-  Handle<Code> GetFunctionCode(uint32_t index);
+  Handle<Code> GetCodeOrPlaceholder(uint32_t index) const;
   Handle<Code> GetImportCode(uint32_t index);
-  Handle<FixedArray> GetFunctionTable();
 
   static compiler::CallDescriptor* GetWasmCallDescriptor(Zone* zone,
                                                          FunctionSig* sig);
@@ -312,22 +330,45 @@
 std::ostream& operator<<(std::ostream& os, const WasmFunction& function);
 std::ostream& operator<<(std::ostream& os, const WasmFunctionName& name);
 
-typedef Result<WasmModule*> ModuleResult;
+typedef Result<const WasmModule*> ModuleResult;
 typedef Result<WasmFunction*> FunctionResult;
+typedef std::vector<std::pair<int, int>> FunctionOffsets;
+typedef Result<FunctionOffsets> FunctionOffsetsResult;
 
-// For testing. Decode, verify, and run the last exported function in the
-// given encoded module.
+// Extract a function name from the given wasm object.
+// Returns "<WASM UNNAMED>" if the function is unnamed or the name is not a
+// valid UTF-8 string.
+Handle<String> GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
+                                   uint32_t func_index);
+
+// Extract a function name from the given wasm object.
+// Returns a null handle if the function is unnamed or the name is not a valid
+// UTF-8 string.
+Handle<Object> GetWasmFunctionNameOrNull(Isolate* isolate, Handle<Object> wasm,
+                                         uint32_t func_index);
+
+// Return the binary source bytes of a wasm module.
+SeqOneByteString* GetWasmBytes(JSObject* wasm);
+
+// Get the debug info associated with the given wasm object.
+// If no debug info exists yet, it is created automatically.
+WasmDebugInfo* GetDebugInfo(JSObject* wasm);
+
+// Check whether the given object is a wasm object.
+// This checks the number and type of internal fields, so it's not 100 percent
+// secure. If it turns out that we need more complete checks, we could add a
+// special marker as internal field, which will definitely never occur anywhere
+// else.
+bool IsWasmObject(Object* object);
+
+namespace testing {
+
+// Decode, verify, and run the function labeled "main" in the
+// given encoded module. The module should have no imports.
 int32_t CompileAndRunWasmModule(Isolate* isolate, const byte* module_start,
                                 const byte* module_end, bool asm_js = false);
 
-// For testing. Decode, verify, and run the last exported function in the
-// 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 testing
 
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/wasm-opcodes.cc b/src/wasm/wasm-opcodes.cc
index a08fa8d..da6c161 100644
--- a/src/wasm/wasm-opcodes.cc
+++ b/src/wasm/wasm-opcodes.cc
@@ -40,12 +40,12 @@
 
 std::ostream& operator<<(std::ostream& os, const FunctionSig& sig) {
   if (sig.return_count() == 0) os << "v";
-  for (size_t i = 0; i < sig.return_count(); i++) {
+  for (size_t i = 0; i < sig.return_count(); ++i) {
     os << WasmOpcodes::ShortNameOf(sig.GetReturn(i));
   }
   os << "_";
   if (sig.parameter_count() == 0) os << "v";
-  for (size_t i = 0; i < sig.parameter_count(); i++) {
+  for (size_t i = 0; i < sig.parameter_count(); ++i) {
     os << WasmOpcodes::ShortNameOf(sig.GetParam(i));
   }
   return os;
diff --git a/src/wasm/wasm-opcodes.h b/src/wasm/wasm-opcodes.h
index 764c503..b29e4a0 100644
--- a/src/wasm/wasm-opcodes.h
+++ b/src/wasm/wasm-opcodes.h
@@ -18,7 +18,8 @@
   kLocalI32 = 1,
   kLocalI64 = 2,
   kLocalF32 = 3,
-  kLocalF64 = 4
+  kLocalF64 = 4,
+  kLocalS128 = 5
 };
 
 // Binary encoding of memory types.
@@ -32,7 +33,8 @@
   kMemI64 = 6,
   kMemU64 = 7,
   kMemF32 = 8,
-  kMemF64 = 9
+  kMemF64 = 9,
+  kMemS128 = 10
 };
 
 // We reuse the internal machine type to represent WebAssembly AST types.
@@ -43,6 +45,7 @@
 const LocalType kAstI64 = MachineRepresentation::kWord64;
 const LocalType kAstF32 = MachineRepresentation::kFloat32;
 const LocalType kAstF64 = MachineRepresentation::kFloat64;
+const LocalType kAstS128 = MachineRepresentation::kSimd128;
 // We use kTagged here because kNone is already used by kAstStmt.
 const LocalType kAstEnd = MachineRepresentation::kTagged;
 
@@ -115,8 +118,8 @@
 
 // Load memory expressions.
 #define FOREACH_MISC_MEM_OPCODE(V) \
-  V(MemorySize, 0x3b, i_v)         \
-  V(GrowMemory, 0x39, i_i)
+  V(GrowMemory, 0x39, i_i)         \
+  V(MemorySize, 0x3b, i_v)
 
 // Expressions with signatures.
 #define FOREACH_SIMPLE_OPCODE(V)  \
@@ -278,18 +281,144 @@
   V(I32AsmjsSConvertF64, 0xe2, i_d)    \
   V(I32AsmjsUConvertF64, 0xe3, i_d)
 
+#define FOREACH_SIMD_OPCODE(V)         \
+  V(F32x4Splat, 0xe500, s_f)           \
+  V(F32x4ExtractLane, 0xe501, f_si)    \
+  V(F32x4ReplaceLane, 0xe502, s_sif)   \
+  V(F32x4Abs, 0xe503, s_s)             \
+  V(F32x4Neg, 0xe504, s_s)             \
+  V(F32x4Sqrt, 0xe505, s_s)            \
+  V(F32x4RecipApprox, 0xe506, s_s)     \
+  V(F32x4SqrtApprox, 0xe507, s_s)      \
+  V(F32x4Add, 0xe508, s_ss)            \
+  V(F32x4Sub, 0xe509, s_ss)            \
+  V(F32x4Mul, 0xe50a, s_ss)            \
+  V(F32x4Div, 0xe50b, s_ss)            \
+  V(F32x4Min, 0xe50c, s_ss)            \
+  V(F32x4Max, 0xe50d, s_ss)            \
+  V(F32x4MinNum, 0xe50e, s_ss)         \
+  V(F32x4MaxNum, 0xe50f, s_ss)         \
+  V(F32x4Eq, 0xe510, s_ss)             \
+  V(F32x4Ne, 0xe511, s_ss)             \
+  V(F32x4Lt, 0xe512, s_ss)             \
+  V(F32x4Le, 0xe513, s_ss)             \
+  V(F32x4Gt, 0xe514, s_ss)             \
+  V(F32x4Ge, 0xe515, s_ss)             \
+  V(F32x4Select, 0xe516, s_sss)        \
+  V(F32x4Swizzle, 0xe517, s_s)         \
+  V(F32x4Shuffle, 0xe518, s_ss)        \
+  V(F32x4FromInt32x4, 0xe519, s_s)     \
+  V(F32x4FromUint32x4, 0xe51a, s_s)    \
+  V(I32x4Splat, 0xe51b, s_i)           \
+  V(I32x4ExtractLane, 0xe51c, i_si)    \
+  V(I32x4ReplaceLane, 0xe51d, s_sii)   \
+  V(I32x4Neg, 0xe51e, s_s)             \
+  V(I32x4Add, 0xe51f, s_ss)            \
+  V(I32x4Sub, 0xe520, s_ss)            \
+  V(I32x4Mul, 0xe521, s_ss)            \
+  V(I32x4Min_s, 0xe522, s_ss)          \
+  V(I32x4Max_s, 0xe523, s_ss)          \
+  V(I32x4Shl, 0xe524, s_si)            \
+  V(I32x4Shr_s, 0xe525, s_si)          \
+  V(I32x4Eq, 0xe526, s_ss)             \
+  V(I32x4Ne, 0xe527, s_ss)             \
+  V(I32x4Lt_s, 0xe528, s_ss)           \
+  V(I32x4Le_s, 0xe529, s_ss)           \
+  V(I32x4Gt_s, 0xe52a, s_ss)           \
+  V(I32x4Ge_s, 0xe52b, s_ss)           \
+  V(I32x4Select, 0xe52c, s_sss)        \
+  V(I32x4Swizzle, 0xe52d, s_s)         \
+  V(I32x4Shuffle, 0xe52e, s_ss)        \
+  V(I32x4FromFloat32x4, 0xe52f, s_s)   \
+  V(I32x4Min_u, 0xe530, s_ss)          \
+  V(I32x4Max_u, 0xe531, s_ss)          \
+  V(I32x4Shr_u, 0xe532, s_ss)          \
+  V(I32x4Lt_u, 0xe533, s_ss)           \
+  V(I32x4Le_u, 0xe534, s_ss)           \
+  V(I32x4Gt_u, 0xe535, s_ss)           \
+  V(I32x4Ge_u, 0xe536, s_ss)           \
+  V(Ui32x4FromFloat32x4, 0xe537, s_s)  \
+  V(I16x8Splat, 0xe538, s_i)           \
+  V(I16x8ExtractLane, 0xe539, i_si)    \
+  V(I16x8ReplaceLane, 0xe53a, s_sii)   \
+  V(I16x8Neg, 0xe53b, s_s)             \
+  V(I16x8Add, 0xe53c, s_ss)            \
+  V(I16x8AddSaturate_s, 0xe53d, s_ss)  \
+  V(I16x8Sub, 0xe53e, s_ss)            \
+  V(I16x8SubSaturate_s, 0xe53f, s_ss)  \
+  V(I16x8Mul, 0xe540, s_ss)            \
+  V(I16x8Min_s, 0xe541, s_ss)          \
+  V(I16x8Max_s, 0xe542, s_ss)          \
+  V(I16x8Shl, 0xe543, s_si)            \
+  V(I16x8Shr_s, 0xe544, s_si)          \
+  V(I16x8Eq, 0xe545, s_ss)             \
+  V(I16x8Ne, 0xe546, s_ss)             \
+  V(I16x8Lt_s, 0xe547, s_ss)           \
+  V(I16x8Le_s, 0xe548, s_ss)           \
+  V(I16x8Gt_s, 0xe549, s_ss)           \
+  V(I16x8Ge_s, 0xe54a, s_ss)           \
+  V(I16x8Select, 0xe54b, s_sss)        \
+  V(I16x8Swizzle, 0xe54c, s_s)         \
+  V(I16x8Shuffle, 0xe54d, s_ss)        \
+  V(I16x8AddSaturate_u, 0xe54e, s_ss)  \
+  V(I16x8SubSaturate_u, 0xe54f, s_ss)  \
+  V(I16x8Min_u, 0xe550, s_ss)          \
+  V(I16x8Max_u, 0xe551, s_ss)          \
+  V(I16x8Shr_u, 0xe552, s_si)          \
+  V(I16x8Lt_u, 0xe553, s_ss)           \
+  V(I16x8Le_u, 0xe554, s_ss)           \
+  V(I16x8Gt_u, 0xe555, s_ss)           \
+  V(I16x8Ge_u, 0xe556, s_ss)           \
+  V(I8x16Splat, 0xe557, s_i)           \
+  V(I8x16ExtractLane, 0xe558, i_si)    \
+  V(I8x16ReplaceLane, 0xe559, s_sii)   \
+  V(I8x16Neg, 0xe55a, s_s)             \
+  V(I8x16Add, 0xe55b, s_ss)            \
+  V(I8x16AddSaturate_s, 0xe55c, s_ss)  \
+  V(I8x16Sub, 0xe55d, s_ss)            \
+  V(I8x16SubSaturate_s, 0xe55e, s_ss)  \
+  V(I8x16Mul, 0xe55f, s_ss)            \
+  V(I8x16Min_s, 0xe560, s_ss)          \
+  V(I8x16Max_s, 0xe561, s_ss)          \
+  V(I8x16Shl, 0xe562, s_si)            \
+  V(I8x16Shr_s, 0xe563, s_si)          \
+  V(I8x16Eq, 0xe564, s_ss)             \
+  V(I8x16Neq, 0xe565, s_ss)            \
+  V(I8x16Lt_s, 0xe566, s_ss)           \
+  V(I8x16Le_s, 0xe567, s_ss)           \
+  V(I8x16Gt_s, 0xe568, s_ss)           \
+  V(I8x16Ge_s, 0xe569, s_ss)           \
+  V(I8x16Select, 0xe56a, s_sss)        \
+  V(I8x16Swizzle, 0xe56b, s_s)         \
+  V(I8x16Shuffle, 0xe56c, s_ss)        \
+  V(I8x16AddSaturate_u, 0xe56d, s_ss)  \
+  V(I8x16Sub_saturate_u, 0xe56e, s_ss) \
+  V(I8x16Min_u, 0xe56f, s_ss)          \
+  V(I8x16Max_u, 0xe570, s_ss)          \
+  V(I8x16Shr_u, 0xe571, s_ss)          \
+  V(I8x16Lt_u, 0xe572, s_ss)           \
+  V(I8x16Le_u, 0xe573, s_ss)           \
+  V(I8x16Gt_u, 0xe574, s_ss)           \
+  V(I8x16Ge_u, 0xe575, s_ss)           \
+  V(S128And, 0xe576, s_ss)             \
+  V(S128Ior, 0xe577, s_ss)             \
+  V(S128Xor, 0xe578, s_ss)             \
+  V(S128Not, 0xe579, s_s)
+
 // All opcodes.
-#define FOREACH_OPCODE(V)     \
-  FOREACH_CONTROL_OPCODE(V)   \
-  FOREACH_MISC_OPCODE(V)      \
-  FOREACH_SIMPLE_OPCODE(V)    \
-  FOREACH_STORE_MEM_OPCODE(V) \
-  FOREACH_LOAD_MEM_OPCODE(V)  \
-  FOREACH_MISC_MEM_OPCODE(V)  \
-  FOREACH_ASMJS_COMPAT_OPCODE(V)
+#define FOREACH_OPCODE(V)        \
+  FOREACH_CONTROL_OPCODE(V)      \
+  FOREACH_MISC_OPCODE(V)         \
+  FOREACH_SIMPLE_OPCODE(V)       \
+  FOREACH_STORE_MEM_OPCODE(V)    \
+  FOREACH_LOAD_MEM_OPCODE(V)     \
+  FOREACH_MISC_MEM_OPCODE(V)     \
+  FOREACH_ASMJS_COMPAT_OPCODE(V) \
+  FOREACH_SIMD_OPCODE(V)
 
 // All signatures.
 #define FOREACH_SIGNATURE(V)         \
+  FOREACH_SIMD_SIGNATURE(V)          \
   V(i_ii, kAstI32, kAstI32, kAstI32) \
   V(i_i, kAstI32, kAstI32)           \
   V(i_v, kAstI32)                    \
@@ -318,6 +447,18 @@
   V(f_if, kAstF32, kAstI32, kAstF32) \
   V(l_il, kAstI64, kAstI32, kAstI64)
 
+#define FOREACH_SIMD_SIGNATURE(V)                  \
+  V(s_s, kAstS128, kAstS128)                       \
+  V(s_f, kAstS128, kAstF32)                        \
+  V(f_si, kAstF32, kAstS128, kAstI32)              \
+  V(s_sif, kAstS128, kAstS128, kAstI32, kAstF32)   \
+  V(s_ss, kAstS128, kAstS128, kAstS128)            \
+  V(s_sss, kAstS128, kAstS128, kAstS128, kAstS128) \
+  V(s_i, kAstS128, kAstI32)                        \
+  V(i_si, kAstI32, kAstS128, kAstI32)              \
+  V(s_sii, kAstS128, kAstS128, kAstI32, kAstI32)   \
+  V(s_si, kAstS128, kAstS128, kAstI32)
+
 enum WasmOpcode {
 // Declare expression opcodes.
 #define DECLARE_NAMED_ENUM(name, opcode, sig) kExpr##name = opcode,
@@ -369,6 +510,8 @@
         return kLocalF64;
       case kAstStmt:
         return kLocalVoid;
+      case kAstS128:
+        return kLocalS128;
       default:
         UNREACHABLE();
         return kLocalVoid;
@@ -396,6 +539,8 @@
       return kMemF32;
     } else if (type == MachineType::Float64()) {
       return kMemF64;
+    } else if (type == MachineType::Simd128()) {
+      return kMemS128;
     } else {
       UNREACHABLE();
       return kMemI32;
@@ -412,6 +557,8 @@
         return MachineType::Float32();
       case kAstF64:
         return MachineType::Float64();
+      case kAstS128:
+        return MachineType::Simd128();
       case kAstStmt:
         return MachineType::None();
       default:
@@ -441,6 +588,8 @@
       return kAstF32;
     } else if (type == MachineType::Float64()) {
       return kAstF64;
+    } else if (type == MachineType::Simd128()) {
+      return kAstS128;
     } else {
       UNREACHABLE();
       return kAstI32;
@@ -484,6 +633,8 @@
         return 'f';
       case kAstF64:
         return 'd';
+      case kAstS128:
+        return 's';
       case kAstStmt:
         return 'v';
       case kAstEnd:
@@ -504,6 +655,8 @@
         return "f32";
       case kAstF64:
         return "f64";
+      case kAstS128:
+        return "s128";
       case kAstStmt:
         return "<stmt>";
       case kAstEnd:
diff --git a/src/wasm/wasm-result.cc b/src/wasm/wasm-result.cc
index 3de5812..30268ac 100644
--- a/src/wasm/wasm-result.cc
+++ b/src/wasm/wasm-result.cc
@@ -6,8 +6,7 @@
 
 #include "src/factory.h"
 #include "src/heap/heap.h"
-#include "src/isolate.h"
-#include "src/objects-inl.h"  // TODO(mstarzinger): Temporary cycle breaker!
+#include "src/isolate-inl.h"
 #include "src/objects.h"
 
 #include "src/base/platform/platform.h"
@@ -29,10 +28,10 @@
 }
 
 void ErrorThrower::Error(const char* format, ...) {
-  if (error_) return;  // only report the first error.
-  error_ = true;
-  char buffer[256];
+  // Only report the first error.
+  if (error()) return;
 
+  char buffer[256];
   va_list arguments;
   va_start(arguments, format);
   base::OS::VSNPrintF(buffer, 255, format, arguments);
@@ -44,8 +43,13 @@
   }
   str << buffer;
 
-  isolate_->ScheduleThrow(
-      *isolate_->factory()->NewStringFromAsciiChecked(str.str().c_str()));
+  message_ = isolate_->factory()->NewStringFromAsciiChecked(str.str().c_str());
+}
+
+ErrorThrower::~ErrorThrower() {
+  if (error() && !isolate_->has_pending_exception()) {
+    isolate_->ScheduleThrow(*message_);
+  }
 }
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/wasm/wasm-result.h b/src/wasm/wasm-result.h
index b650c33..e741de8 100644
--- a/src/wasm/wasm-result.h
+++ b/src/wasm/wasm-result.h
@@ -8,6 +8,7 @@
 #include "src/base/compiler-specific.h"
 #include "src/base/smart-pointers.h"
 
+#include "src/handles.h"
 #include "src/globals.h"
 
 namespace v8 {
@@ -38,8 +39,7 @@
 // The overall result of decoding a function or a module.
 template <typename T>
 struct Result {
-  Result()
-      : val(nullptr), error_code(kSuccess), start(nullptr), error_pc(nullptr) {
+  Result() : val(), error_code(kSuccess), start(nullptr), error_pc(nullptr) {
     error_msg.Reset(nullptr);
   }
 
@@ -92,7 +92,8 @@
 class ErrorThrower {
  public:
   ErrorThrower(Isolate* isolate, const char* context)
-      : isolate_(isolate), context_(context), error_(false) {}
+      : isolate_(isolate), context_(context) {}
+  ~ErrorThrower();
 
   PRINTF_FORMAT(2, 3) void Error(const char* fmt, ...);
 
@@ -103,12 +104,18 @@
     return Error("%s", str.str().c_str());
   }
 
-  bool error() const { return error_; }
+  i::Handle<i::String> Reify() {
+    auto result = message_;
+    message_ = i::Handle<i::String>();
+    return result;
+  }
+
+  bool error() const { return !message_.is_null(); }
 
  private:
   Isolate* isolate_;
   const char* context_;
-  bool error_;
+  i::Handle<i::String> message_;
 };
 }  // namespace wasm
 }  // namespace internal
diff --git a/src/x64/assembler-x64-inl.h b/src/x64/assembler-x64-inl.h
index 0af8f93..60acacd 100644
--- a/src/x64/assembler-x64-inl.h
+++ b/src/x64/assembler-x64-inl.h
@@ -179,12 +179,10 @@
   if (rm_reg.high_bit()) emit(0x41);
 }
 
-
 void Assembler::emit_optional_rex_32(XMMRegister rm_reg) {
   if (rm_reg.high_bit()) emit(0x41);
 }
 
-
 void Assembler::emit_optional_rex_32(const Operand& op) {
   if (op.rex_ != 0) emit(0x40 | op.rex_);
 }
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index 5f8fb68..3345e30 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -122,36 +122,24 @@
   return Memory::Address_at(pc_);
 }
 
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(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));
-  }
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Memory::Address_at(pc_) = address;
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Memory::uint32_at(pc_) = size;
 }
 
 // -----------------------------------------------------------------------------
@@ -332,6 +320,8 @@
       static_cast<int>((buffer_ + buffer_size_) - reloc_info_writer.pos());
   desc->origin = this;
   desc->constant_pool_size = 0;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -599,12 +589,9 @@
                                         int size) {
   EnsureSpace ensure_space(this);
   emit_rex(dst, size);
-  if (is_int8(src.value_)) {
+  if (is_int8(src.value_) && RelocInfo::IsNone(src.rmode_)) {
     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));
@@ -848,7 +835,6 @@
 
 
 void Assembler::call(Label* L) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // 1110 1000 #32-bit disp.
   emit(0xE8);
@@ -870,7 +856,6 @@
 
 void Assembler::call(Address entry, RelocInfo::Mode rmode) {
   DCHECK(RelocInfo::IsRuntimeEntry(rmode));
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // 1110 1000 #32-bit disp.
   emit(0xE8);
@@ -881,7 +866,6 @@
 void Assembler::call(Handle<Code> target,
                      RelocInfo::Mode rmode,
                      TypeFeedbackId ast_id) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // 1110 1000 #32-bit disp.
   emit(0xE8);
@@ -890,7 +874,6 @@
 
 
 void Assembler::call(Register adr) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // Opcode: FF /2 r64.
   emit_optional_rex_32(adr);
@@ -900,7 +883,6 @@
 
 
 void Assembler::call(const Operand& op) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // Opcode: FF /2 m64.
   emit_optional_rex_32(op);
@@ -914,7 +896,6 @@
 // same Code object. Should not be used when generating new code (use labels),
 // but only when patching existing code.
 void Assembler::call(Address target) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   // 1110 1000 #32-bit disp.
   emit(0xE8);
@@ -1016,6 +997,40 @@
   emit(imm8.value_);
 }
 
+void Assembler::lock() {
+  EnsureSpace ensure_space(this);
+  emit(0xf0);
+}
+
+void Assembler::cmpxchgb(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  if (!src.is_byte_register()) {
+    // Register is not one of al, bl, cl, dl.  Its encoding needs REX.
+    emit_rex_32(src, dst);
+  } else {
+    emit_optional_rex_32(src, dst);
+  }
+  emit(0x0f);
+  emit(0xb0);
+  emit_operand(src, dst);
+}
+
+void Assembler::cmpxchgw(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(src, dst);
+  emit(0x0f);
+  emit(0xb1);
+  emit_operand(src, dst);
+}
+
+void Assembler::emit_cmpxchg(const Operand& dst, Register src, int size) {
+  EnsureSpace ensure_space(this);
+  emit_rex(src, dst, size);
+  emit(0x0f);
+  emit(0xb1);
+  emit_operand(src, dst);
+}
 
 void Assembler::cpuid() {
   EnsureSpace ensure_space(this);
@@ -2856,6 +2871,18 @@
   emit(imm8);
 }
 
+void Assembler::insertps(XMMRegister dst, XMMRegister src, byte imm8) {
+  DCHECK(CpuFeatures::IsSupported(SSE4_1));
+  DCHECK(is_uint8(imm8));
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x3A);
+  emit(0x21);
+  emit_sse_operand(dst, src);
+  emit(imm8);
+}
 
 void Assembler::movsd(const Operand& dst, XMMRegister src) {
   DCHECK(!IsEnabled(AVX));
@@ -3177,6 +3204,38 @@
   emit(imm8);
 }
 
+void Assembler::cmpps(XMMRegister dst, XMMRegister src, int8_t cmp) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xC2);
+  emit_sse_operand(dst, src);
+  emit(cmp);
+}
+
+void Assembler::cmpeqps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x0);
+}
+
+void Assembler::cmpltps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x1);
+}
+
+void Assembler::cmpleps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x2);
+}
+
+void Assembler::cmpneqps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x4);
+}
+
+void Assembler::cmpnltps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x5);
+}
+
+void Assembler::cmpnleps(XMMRegister dst, XMMRegister src) {
+  cmpps(dst, src, 0x6);
+}
 
 void Assembler::cvttss2si(Register dst, const Operand& src) {
   DCHECK(!IsEnabled(AVX));
@@ -3694,6 +3753,14 @@
   emit_sse_operand(dst, src);
 }
 
+void Assembler::punpckldq(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x62);
+  emit_sse_operand(dst, src);
+}
 
 void Assembler::punpckhdq(XMMRegister dst, XMMRegister src) {
   EnsureSpace ensure_space(this);
@@ -4158,6 +4225,246 @@
   emit(imm8);
 }
 
+void Assembler::minps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5D);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::minps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5D);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::maxps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5F);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::maxps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5F);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::rcpps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x53);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::rcpps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x53);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::rsqrtps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x52);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::rsqrtps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x52);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::sqrtps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x51);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::sqrtps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x51);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::cvtdq2ps(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5B);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::cvtdq2ps(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5B);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::movups(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  if (src.low_bits() == 4) {
+    // Try to avoid an unnecessary SIB byte.
+    emit_optional_rex_32(src, dst);
+    emit(0x0F);
+    emit(0x11);
+    emit_sse_operand(src, dst);
+  } else {
+    emit_optional_rex_32(dst, src);
+    emit(0x0F);
+    emit(0x10);
+    emit_sse_operand(dst, src);
+  }
+}
+
+void Assembler::movups(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x10);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::movups(const Operand& dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit_optional_rex_32(src, dst);
+  emit(0x0F);
+  emit(0x11);
+  emit_sse_operand(src, dst);
+}
+
+void Assembler::paddd(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xFE);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::paddd(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xFE);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::psubd(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xFA);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::psubd(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xFA);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::pmulld(XMMRegister dst, XMMRegister src) {
+  DCHECK(IsEnabled(SSE4_1));
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x38);
+  emit(0x40);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::pmulld(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x38);
+  emit(0x40);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::pmuludq(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xF4);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::pmuludq(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0xF4);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::psrldq(XMMRegister dst, uint8_t shift) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst);
+  emit(0x0F);
+  emit(0x73);
+  emit_sse_operand(dst);
+  emit(shift);
+}
+
+void Assembler::cvtps2dq(XMMRegister dst, XMMRegister src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5B);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::cvtps2dq(XMMRegister dst, const Operand& src) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x5B);
+  emit_sse_operand(dst, src);
+}
+
+void Assembler::pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle) {
+  EnsureSpace ensure_space(this);
+  emit(0x66);
+  emit_optional_rex_32(dst, src);
+  emit(0x0F);
+  emit(0x70);
+  emit_sse_operand(dst, src);
+  emit(shuffle);
+}
 
 void Assembler::emit_sse_operand(XMMRegister reg, const Operand& adr) {
   Register ireg = { reg.code() };
@@ -4185,6 +4492,10 @@
   emit(0xC0 | (dst.low_bits() << 3) | src.low_bits());
 }
 
+void Assembler::emit_sse_operand(XMMRegister dst) {
+  emit(0xD8 | dst.low_bits());
+}
+
 
 void Assembler::db(uint8_t data) {
   EnsureSpace ensure_space(this);
diff --git a/src/x64/assembler-x64.h b/src/x64/assembler-x64.h
index 77a1a57..a7759c3 100644
--- a/src/x64/assembler-x64.h
+++ b/src/x64/assembler-x64.h
@@ -117,8 +117,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -186,6 +184,7 @@
 #define FLOAT_REGISTERS DOUBLE_REGISTERS
 
 #define ALLOCATABLE_DOUBLE_REGISTERS(V) \
+  V(xmm0)                               \
   V(xmm1)                               \
   V(xmm2)                               \
   V(xmm3)                               \
@@ -199,8 +198,9 @@
   V(xmm11)                              \
   V(xmm12)                              \
   V(xmm13)                              \
-  V(xmm14)                              \
-  V(xmm15)
+  V(xmm14)
+
+static const bool kSimpleFPAliasing = true;
 
 struct XMMRegister {
   enum Code {
@@ -218,8 +218,6 @@
     return result;
   }
 
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
   bool is(XMMRegister reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -421,11 +419,11 @@
   friend class Assembler;
 };
 
-
 #define ASSEMBLER_INSTRUCTION_LIST(V) \
   V(add)                              \
   V(and)                              \
   V(cmp)                              \
+  V(cmpxchg)                          \
   V(dec)                              \
   V(idiv)                             \
   V(div)                              \
@@ -445,7 +443,6 @@
   V(xchg)                             \
   V(xor)
 
-
 // Shift instructions on operands/registers with kPointerSize, kInt32Size and
 // kInt64Size.
 #define SHIFT_INSTRUCTION_LIST(V)       \
@@ -788,9 +785,15 @@
   void decb(Register dst);
   void decb(const Operand& dst);
 
+  // Lock prefix.
+  void lock();
+
   void xchgb(Register reg, const Operand& op);
   void xchgw(Register reg, const Operand& op);
 
+  void cmpxchgb(const Operand& dst, Register src);
+  void cmpxchgw(const Operand& dst, Register src);
+
   // Sign-extends rax into rdx:rax.
   void cqo();
   // Sign-extends eax into edx:eax.
@@ -1149,19 +1152,55 @@
   void movmskpd(Register dst, XMMRegister src);
 
   void punpckldq(XMMRegister dst, XMMRegister src);
+  void punpckldq(XMMRegister dst, const Operand& src);
   void punpckhdq(XMMRegister dst, XMMRegister src);
 
   // SSE 4.1 instruction
+  void insertps(XMMRegister dst, XMMRegister src, byte imm8);
   void extractps(Register dst, XMMRegister src, byte imm8);
-
   void pextrd(Register dst, XMMRegister src, int8_t imm8);
-
   void pinsrd(XMMRegister dst, Register src, int8_t imm8);
   void pinsrd(XMMRegister dst, const Operand& src, int8_t imm8);
 
   void roundss(XMMRegister dst, XMMRegister src, RoundingMode mode);
   void roundsd(XMMRegister dst, XMMRegister src, RoundingMode mode);
 
+  void cmpps(XMMRegister dst, XMMRegister src, int8_t cmp);
+  void cmpeqps(XMMRegister dst, XMMRegister src);
+  void cmpltps(XMMRegister dst, XMMRegister src);
+  void cmpleps(XMMRegister dst, XMMRegister src);
+  void cmpneqps(XMMRegister dst, XMMRegister src);
+  void cmpnltps(XMMRegister dst, XMMRegister src);
+  void cmpnleps(XMMRegister dst, XMMRegister src);
+
+  void minps(XMMRegister dst, XMMRegister src);
+  void minps(XMMRegister dst, const Operand& src);
+  void maxps(XMMRegister dst, XMMRegister src);
+  void maxps(XMMRegister dst, const Operand& src);
+  void rcpps(XMMRegister dst, XMMRegister src);
+  void rcpps(XMMRegister dst, const Operand& src);
+  void rsqrtps(XMMRegister dst, XMMRegister src);
+  void rsqrtps(XMMRegister dst, const Operand& src);
+  void sqrtps(XMMRegister dst, XMMRegister src);
+  void sqrtps(XMMRegister dst, const Operand& src);
+  void movups(XMMRegister dst, XMMRegister src);
+  void movups(XMMRegister dst, const Operand& src);
+  void movups(const Operand& dst, XMMRegister src);
+  void paddd(XMMRegister dst, XMMRegister src);
+  void paddd(XMMRegister dst, const Operand& src);
+  void psubd(XMMRegister dst, XMMRegister src);
+  void psubd(XMMRegister dst, const Operand& src);
+  void pmulld(XMMRegister dst, XMMRegister src);
+  void pmulld(XMMRegister dst, const Operand& src);
+  void pmuludq(XMMRegister dst, XMMRegister src);
+  void pmuludq(XMMRegister dst, const Operand& src);
+  void psrldq(XMMRegister dst, uint8_t shift);
+  void pshufd(XMMRegister dst, XMMRegister src, uint8_t shuffle);
+  void cvtps2dq(XMMRegister dst, XMMRegister src);
+  void cvtps2dq(XMMRegister dst, const Operand& src);
+  void cvtdq2ps(XMMRegister dst, XMMRegister src);
+  void cvtdq2ps(XMMRegister dst, const Operand& src);
+
   // AVX instruction
   void vfmadd132sd(XMMRegister dst, XMMRegister src1, XMMRegister src2) {
     vfmasd(0x99, dst, src1, src2);
@@ -1938,6 +1977,7 @@
   void emit_sse_operand(Register reg, const Operand& adr);
   void emit_sse_operand(XMMRegister dst, Register src);
   void emit_sse_operand(Register dst, XMMRegister src);
+  void emit_sse_operand(XMMRegister dst);
 
   // Emit machine code for one of the operations ADD, ADC, SUB, SBC,
   // AND, OR, XOR, or CMP.  The encodings of these operations are all
@@ -2054,6 +2094,11 @@
     immediate_arithmetic_op(0x7, dst, src, size);
   }
 
+  // Compare {al,ax,eax,rax} with src.  If equal, set ZF and write dst into
+  // src. Otherwise clear ZF and write src into {al,ax,eax,rax}.  This
+  // operation is only atomic if prefixed by the lock instruction.
+  void emit_cmpxchg(const Operand& dst, Register src, int size);
+
   void emit_dec(Register dst, int size);
   void emit_dec(const Operand& dst, int size);
 
diff --git a/src/x64/builtins-x64.cc b/src/x64/builtins-x64.cc
index 419ee0f..fb43324 100644
--- a/src/x64/builtins-x64.cc
+++ b/src/x64/builtins-x64.cc
@@ -15,10 +15,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- rax                 : number of arguments excluding receiver
   //  -- rdi                 : target
@@ -37,20 +34,13 @@
   // ordinary functions).
   __ movp(rsi, FieldOperand(rdi, JSFunction::kContextOffset));
 
-  // Insert extra arguments.
-  int num_extra_args = 0;
-  if (extra_args != BuiltinExtraArguments::kNone) {
-    __ PopReturnAddressTo(kScratchRegister);
-    if (extra_args & BuiltinExtraArguments::kTarget) {
-      ++num_extra_args;
-      __ Push(rdi);
-    }
-    if (extra_args & BuiltinExtraArguments::kNewTarget) {
-      ++num_extra_args;
-      __ Push(rdx);
-    }
-    __ PushReturnAddressFrom(kScratchRegister);
-  }
+  // Unconditionally insert the target and new target as extra arguments. They
+  // will be used by stack frame iterators when constructing the stack trace.
+  const int num_extra_args = 2;
+  __ PopReturnAddressTo(kScratchRegister);
+  __ Push(rdi);
+  __ Push(rdx);
+  __ PushReturnAddressFrom(kScratchRegister);
 
   // JumpToExternalReference expects rax to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -468,8 +458,8 @@
   __ AssertGeneratorObject(rbx);
 
   // Store input value into generator object.
-  __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOffset), rax);
-  __ RecordWriteField(rbx, JSGeneratorObject::kInputOffset, rax, rcx,
+  __ movp(FieldOperand(rbx, JSGeneratorObject::kInputOrDebugPosOffset), rax);
+  __ RecordWriteField(rbx, JSGeneratorObject::kInputOrDebugPosOffset, rax, rcx,
                       kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -480,23 +470,23 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  Operand last_step_action_operand = masm->ExternalOperand(last_step_action);
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ cmpb(last_step_action_operand, Immediate(StepIn));
+  __ j(greater_equal, &prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  Operand debug_suspended_generator_operand =
+      masm->ExternalOperand(debug_suspended_generator);
+  __ cmpp(rbx, debug_suspended_generator_operand);
+  __ j(equal, &prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Pop return address.
   __ PopReturnAddressTo(rax);
@@ -596,6 +586,51 @@
     __ movp(rax, rbx);  // Continuation expects generator object in rax.
     __ jmp(rdx);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(rbx);
+    __ Push(rdx);
+    __ Push(rdi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(rdx);
+    __ Pop(rbx);
+    __ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(rbx);
+    __ Push(rdx);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(rdx);
+    __ Pop(rbx);
+    __ movp(rdi, FieldOperand(rbx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+}
+
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
+                                  Register scratch2) {
+  Register args_count = scratch1;
+  Register return_pc = scratch2;
+
+  // Get the arguments + receiver count.
+  __ movp(args_count,
+          Operand(rbp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ movl(args_count,
+          FieldOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments.
+  __ PopReturnAddressTo(return_pc);
+  __ addp(rsp, args_count);
+  __ PushReturnAddressFrom(return_pc);
 }
 
 // Generate code for entering a JS function with the interpreter.
@@ -702,18 +737,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, rbx, rcx);
   __ ret(0);
 
   // Load debug copy of the bytecode array.
@@ -737,6 +761,31 @@
   __ jmp(rcx);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ movp(rdi, Operand(rbp, StandardFrameConstants::kFunctionOffset));
+  __ movp(kContextRegister,
+          Operand(rbp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, rbx, rcx);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ Push(rax);
+
+    // Push function as argument and compile for baseline.
+    __ Push(rdi);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ Pop(rax);
+  }
+  __ ret(0);
+}
+
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          bool push_receiver) {
   // ----------- S t a t e -------------
@@ -904,13 +953,30 @@
   const int bailout_id = BailoutId::None().ToInt();
   __ cmpl(temp, Immediate(bailout_id));
   __ j(not_equal, &loop_bottom);
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ movp(temp, FieldOperand(map, index, times_pointer_size,
                              SharedFunctionInfo::kOffsetToPreviousLiterals));
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ movp(r15, FieldOperand(temp, WeakCell::kValueOffset));
+  __ JumpIfSmi(r15, &maybe_cleared_weakcell);
+  // r15 is a pointer, therefore temp is a WeakCell pointing to a literals
+  // array.
   __ movp(temp, FieldOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // r15 is a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ cmpp(r15, Immediate(0));
+  __ j(equal, &gotta_call_runtime);
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ movp(FieldOperand(closure, JSFunction::kLiteralsOffset), temp);
   __ movp(r15, index);
   __ RecordWriteField(closure, JSFunction::kLiteralsOffset, temp, r15,
@@ -1169,6 +1235,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- rax    : number of arguments
+  //  -- rdi    : function
+  //  -- rsi    : context
   //  -- rsp[0] : return address
   //  -- rsp[8] : receiver
   // -----------------------------------
@@ -1210,7 +1279,11 @@
   __ bind(&receiver_not_date);
   {
     FrameScope scope(masm, StackFrame::MANUAL);
-    __ EnterFrame(StackFrame::INTERNAL);
+    __ Push(rbp);
+    __ Move(rbp, rsp);
+    __ Push(rsi);
+    __ Push(rdi);
+    __ Push(Immediate(0));
     __ CallRuntime(Runtime::kThrowNotDateError);
   }
 }
@@ -1561,6 +1634,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- rax                 : number of arguments
+  //  -- rdi                 : function
+  //  -- rsi                 : context
   //  -- rsp[0]              : return address
   //  -- rsp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- rsp[(argc + 1) * 8] : receiver
@@ -1588,27 +1663,32 @@
     __ movp(rbx, Operand(rsp, rcx, times_pointer_size, 0));
 
     // Load the double value of the parameter into xmm1, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(rbx, &convert_smi);
     __ JumpIfRoot(FieldOperand(rbx, HeapObject::kMapOffset),
                   Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(rbp);
+      __ Move(rbp, rsp);
+      __ Push(rsi);
+      __ Push(rdi);
       __ Integer32ToSmi(rax, rax);
       __ Integer32ToSmi(rcx, rcx);
       __ Push(rax);
       __ Push(rcx);
       __ Push(rdx);
       __ movp(rax, rbx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ movp(rbx, rax);
       __ Pop(rdx);
       __ Pop(rcx);
       __ Pop(rax);
+      __ Pop(rdi);
+      __ Pop(rsi);
       {
         // Restore the double accumulator value (xmm0).
         Label restore_smi, done_restore;
@@ -1621,6 +1701,7 @@
       }
       __ SmiToInteger32(rcx, rcx);
       __ SmiToInteger32(rax, rax);
+      __ leave();
     }
     __ jmp(&convert);
     __ bind(&convert_number);
@@ -1694,8 +1775,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0 (already in rax).
   __ bind(&no_arguments);
@@ -1746,8 +1826,7 @@
       __ Push(rdx);
       __ Push(rdi);
       __ Move(rax, rbx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(rbx, rax);
       __ Pop(rdi);
       __ Pop(rdx);
@@ -2001,6 +2080,81 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in rax.
+  __ AssertString(rax);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ testl(FieldOperand(rax, String::kHashFieldOffset),
+           Immediate(String::kContainsCachedArrayIndexMask));
+  __ j(not_zero, &runtime, Label::kNear);
+  __ movl(rax, FieldOperand(rax, String::kHashFieldOffset));
+  __ IndexFromHash(rax, rax);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(rax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in rax.
+  Label not_smi;
+  __ JumpIfNotSmi(rax, &not_smi, Label::kNear);
+  __ Ret();
+  __ bind(&not_smi);
+
+  Label not_heap_number;
+  __ CompareRoot(FieldOperand(rax, HeapObject::kMapOffset),
+                 Heap::kHeapNumberMapRootIndex);
+  __ j(not_equal, &not_heap_number, Label::kNear);
+  __ Ret();
+  __ bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in rax.
+  __ AssertNotNumber(rax);
+
+  Label not_string;
+  __ CmpObjectType(rax, FIRST_NONSTRING_TYPE, rdi);
+  // rax: object
+  // rdi: object map
+  __ j(above_equal, &not_string, Label::kNear);
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ bind(&not_string);
+
+  Label not_oddball;
+  __ CmpInstanceType(rdi, ODDBALL_TYPE);
+  __ j(not_equal, &not_oddball, Label::kNear);
+  __ movp(rax, FieldOperand(rax, Oddball::kToNumberOffset));
+  __ Ret();
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ Push(rax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- rax : actual number of arguments
diff --git a/src/x64/code-stubs-x64.cc b/src/x64/code-stubs-x64.cc
index 602d3a0..b89438f 100644
--- a/src/x64/code-stubs-x64.cc
+++ b/src/x64/code-stubs-x64.cc
@@ -20,71 +20,29 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(rax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ popq(rcx);
+  __ movq(MemOperand(rsp, rax, times_8, 0), rdi);
+  __ pushq(rdi);
+  __ pushq(rbx);
+  __ pushq(rcx);
+  __ addq(rax, Immediate(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(rax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(rax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(rax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
-
 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
                                                ExternalReference miss) {
   // Update the static counter each time a new code stub is generated.
@@ -174,7 +132,7 @@
 
     bool stash_exponent_copy = !input_reg.is(rsp);
     __ movl(scratch1, mantissa_operand);
-    __ Movsd(xmm0, mantissa_operand);
+    __ Movsd(kScratchDoubleReg, mantissa_operand);
     __ movl(rcx, exponent_operand);
     if (stash_exponent_copy) __ pushq(rcx);
 
@@ -194,7 +152,7 @@
     __ jmp(&check_negative);
 
     __ bind(&process_64_bits);
-    __ Cvttsd2siq(result_reg, xmm0);
+    __ Cvttsd2siq(result_reg, kScratchDoubleReg);
     __ jmp(&done, Label::kNear);
 
     // If the double was negative, negate the integer result.
@@ -547,7 +505,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ ret(0);
@@ -1343,8 +1300,8 @@
   // rdx : slot in feedback vector (Smi)
   // rdi : the function to call
   Isolate* isolate = masm->isolate();
-  Label initialize, done, miss, megamorphic, not_array_function,
-      done_no_smi_convert;
+  Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_initialize_count, done_increment_count;
 
   // Load the cache state into r11.
   __ SmiToInteger32(rdx, rdx);
@@ -1358,7 +1315,7 @@
   // type-feedback-vector.h).
   Label check_allocation_site;
   __ cmpp(rdi, FieldOperand(r11, WeakCell::kValueOffset));
-  __ j(equal, &done, Label::kFar);
+  __ j(equal, &done_increment_count, Label::kFar);
   __ CompareRoot(r11, Heap::kmegamorphic_symbolRootIndex);
   __ j(equal, &done, Label::kFar);
   __ CompareRoot(FieldOperand(r11, HeapObject::kMapOffset),
@@ -1382,7 +1339,7 @@
   __ LoadNativeContextSlot(Context::ARRAY_FUNCTION_INDEX, r11);
   __ cmpp(rdi, r11);
   __ j(not_equal, &megamorphic);
-  __ jmp(&done);
+  __ jmp(&done_increment_count);
 
   __ bind(&miss);
 
@@ -1408,17 +1365,29 @@
 
   CreateAllocationSiteStub create_stub(isolate);
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ jmp(&done_no_smi_convert);
+  __ jmp(&done_initialize_count);
 
   __ bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(isolate);
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
-  __ jmp(&done_no_smi_convert);
+
+  __ bind(&done_initialize_count);
+  // Initialize the call counter.
+  __ SmiToInteger32(rdx, rdx);
+  __ Move(FieldOperand(rbx, rdx, times_pointer_size,
+                       FixedArray::kHeaderSize + kPointerSize),
+          Smi::FromInt(1));
+  __ jmp(&done);
+
+  __ bind(&done_increment_count);
+
+  // Increment the call count for monomorphic function calls.
+  __ SmiAddConstant(FieldOperand(rbx, rdx, times_pointer_size,
+                                 FixedArray::kHeaderSize + kPointerSize),
+                    Smi::FromInt(1));
 
   __ bind(&done);
   __ Integer32ToSmi(rdx, rdx);
-
-  __ bind(&done_no_smi_convert);
 }
 
 
@@ -1479,7 +1448,7 @@
   // Increment the call count for monomorphic function calls.
   __ SmiAddConstant(FieldOperand(rbx, rdx, times_pointer_size,
                                  FixedArray::kHeaderSize + kPointerSize),
-                    Smi::FromInt(CallICNexus::kCallCountIncrement));
+                    Smi::FromInt(1));
 
   __ movp(rbx, rcx);
   __ movp(rdx, rdi);
@@ -1529,7 +1498,7 @@
   // Increment the call count for monomorphic function calls.
   __ SmiAddConstant(FieldOperand(rbx, rdx, times_pointer_size,
                                  FixedArray::kHeaderSize + kPointerSize),
-                    Smi::FromInt(CallICNexus::kCallCountIncrement));
+                    Smi::FromInt(1));
 
   __ bind(&call_function);
   __ Set(rax, argc);
@@ -1599,7 +1568,7 @@
   // Initialize the call counter.
   __ Move(FieldOperand(rbx, rdx, times_pointer_size,
                        FixedArray::kHeaderSize + kPointerSize),
-          Smi::FromInt(CallICNexus::kCallCountIncrement));
+          Smi::FromInt(1));
 
   // Store the function. Use a stub since we need a frame for allocation.
   // rbx - vector
@@ -1656,7 +1625,7 @@
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
   // It is important that the store buffer overflow stubs are generated first.
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -2056,13 +2025,7 @@
   }
   __ Push(object_);
   __ Push(index_);  // Consumed by runtime conversion function.
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   if (!index_.is(rax)) {
     // Save the conversion result before the pop instructions below
     // have a chance to overwrite it.
@@ -2383,78 +2346,12 @@
   // rcx: sub string length (smi)
   // rdx: from index (smi)
   StringCharAtGenerator generator(rax, rdx, rcx, rax, &runtime, &runtime,
-                                  &runtime, STRING_INDEX_IS_NUMBER,
-                                  RECEIVER_IS_STRING);
+                                  &runtime, RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ ret(SUB_STRING_ARGUMENT_COUNT * kPointerSize);
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in rax.
-  Label not_smi;
-  __ JumpIfNotSmi(rax, &not_smi, Label::kNear);
-  __ Ret();
-  __ bind(&not_smi);
-
-  Label not_heap_number;
-  __ CompareRoot(FieldOperand(rax, HeapObject::kMapOffset),
-                 Heap::kHeapNumberMapRootIndex);
-  __ j(not_equal, &not_heap_number, Label::kNear);
-  __ Ret();
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in rax.
-  __ AssertNotNumber(rax);
-
-  Label not_string;
-  __ CmpObjectType(rax, FIRST_NONSTRING_TYPE, rdi);
-  // rax: object
-  // rdi: object map
-  __ j(above_equal, &not_string, Label::kNear);
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ bind(&not_string);
-
-  Label not_oddball;
-  __ CmpInstanceType(rdi, ODDBALL_TYPE);
-  __ j(not_equal, &not_oddball, Label::kNear);
-  __ movp(rax, FieldOperand(rax, Oddball::kToNumberOffset));
-  __ Ret();
-  __ bind(&not_oddball);
-
-  __ PopReturnAddressTo(rcx);     // Pop return address.
-  __ Push(rax);                   // Push argument.
-  __ PushReturnAddressFrom(rcx);  // Push return address.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in rax.
-  __ AssertString(rax);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ testl(FieldOperand(rax, String::kHashFieldOffset),
-           Immediate(String::kContainsCachedArrayIndexMask));
-  __ j(not_zero, &runtime, Label::kNear);
-  __ movl(rax, FieldOperand(rax, String::kHashFieldOffset));
-  __ IndexFromHash(rax, rax);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ PopReturnAddressTo(rcx);     // Pop return address.
-  __ Push(rax);                   // Push argument.
-  __ PushReturnAddressFrom(rcx);  // Push return address.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in rax.
   Label is_number;
@@ -2489,7 +2386,6 @@
   __ TailCallRuntime(Runtime::kToString);
 }
 
-
 void ToNameStub::Generate(MacroAssembler* masm) {
   // The ToName stub takes one argument in rax.
   Label is_number;
@@ -2672,7 +2568,7 @@
   // Load rcx with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ Move(rcx, handle(isolate()->heap()->undefined_value()));
+  __ Move(rcx, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3482,14 +3378,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -3970,9 +3866,6 @@
   // rdi - constructor?
   // rsp[0] - return address
   // rsp[8] - last argument
-  Handle<Object> undefined_sentinel(
-      masm->isolate()->heap()->undefined_value(),
-      masm->isolate());
 
   Label normal_sequence;
   if (mode == DONT_OVERRIDE) {
@@ -4063,19 +3956,14 @@
   }
 }
 
-
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
 
-
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
   ElementsKind kinds[2] = { FAST_ELEMENTS, FAST_HOLEY_ELEMENTS };
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4083,8 +3971,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4104,13 +3990,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4229,7 +4117,7 @@
   __ TailCallStub(&stub1);
 
   __ bind(&not_one_case);
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN);
 }
 
@@ -4494,6 +4382,7 @@
                              1 * kPointerSize));
 
     // ----------- S t a t e -------------
+    //  -- rdi    : function
     //  -- rsi    : context
     //  -- rax    : number of rest parameters
     //  -- rbx    : pointer to first rest parameters
@@ -4504,7 +4393,7 @@
     Label allocate, done_allocate;
     __ leal(rcx, Operand(rax, times_pointer_size,
                          JSArray::kSize + FixedArray::kHeaderSize));
-    __ Allocate(rcx, rdx, rdi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
+    __ Allocate(rcx, rdx, r8, no_reg, &allocate, NO_ALLOCATION_FLAGS);
     __ bind(&done_allocate);
 
     // Compute the arguments.length in rdi.
@@ -4542,8 +4431,11 @@
     STATIC_ASSERT(JSArray::kSize == 4 * kPointerSize);
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ cmpl(rcx, Immediate(Page::kMaxRegularHeapObjectSize));
+    __ j(greater, &too_big_for_new_space);
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ Integer32ToSmi(rax, rax);
@@ -4558,6 +4450,13 @@
       __ SmiToInteger32(rax, rax);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ PopReturnAddressTo(kScratchRegister);
+    __ Push(rdi);
+    __ PushReturnAddressFrom(kScratchRegister);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -4848,6 +4747,7 @@
   // ----------- S t a t e -------------
   //  -- rax    : number of arguments
   //  -- rbx    : pointer to the first argument
+  //  -- rdi    : function
   //  -- rsi    : context
   //  -- rsp[0] : return address
   // -----------------------------------
@@ -4856,7 +4756,7 @@
   Label allocate, done_allocate;
   __ leal(rcx, Operand(rax, times_pointer_size, JSStrictArgumentsObject::kSize +
                                                     FixedArray::kHeaderSize));
-  __ Allocate(rcx, rdx, rdi, no_reg, &allocate, NO_ALLOCATION_FLAGS);
+  __ Allocate(rcx, rdx, r8, no_reg, &allocate, NO_ALLOCATION_FLAGS);
   __ bind(&done_allocate);
 
   // Compute the arguments.length in rdi.
@@ -4894,8 +4794,11 @@
   STATIC_ASSERT(JSStrictArgumentsObject::kSize == 4 * kPointerSize);
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ cmpl(rcx, Immediate(Page::kMaxRegularHeapObjectSize));
+  __ j(greater, &too_big_for_new_space);
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
     __ Integer32ToSmi(rax, rax);
@@ -4910,37 +4813,13 @@
     __ SmiToInteger32(rax, rax);
   }
   __ jmp(&done_allocate);
-}
 
-
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context_reg = rsi;
-  Register slot_reg = rbx;
-  Register result_reg = rax;
-  Label slow_case;
-
-  // Go up context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ movp(rdi, ContextOperand(context_reg, Context::PREVIOUS_INDEX));
-    context_reg = rdi;
-  }
-
-  // Load the PropertyCell value at the specified slot.
-  __ movp(result_reg, ContextOperand(context_reg, slot_reg));
-  __ movp(result_reg, FieldOperand(result_reg, PropertyCell::kValueOffset));
-
-  // Check that value is not the_hole.
-  __ CompareRoot(result_reg, Heap::kTheHoleValueRootIndex);
-  __ j(equal, &slow_case, Label::kNear);
-  __ Ret();
-
-  // Fallback to the runtime.
-  __ bind(&slow_case);
-  __ Integer32ToSmi(slot_reg, slot_reg);
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
   __ PopReturnAddressTo(kScratchRegister);
-  __ Push(slot_reg);
-  __ Push(kScratchRegister);
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  __ Push(rdi);
+  __ PushReturnAddressFrom(kScratchRegister);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
 
diff --git a/src/x64/code-stubs-x64.h b/src/x64/code-stubs-x64.h
index d4f8b29..a181377 100644
--- a/src/x64/code-stubs-x64.h
+++ b/src/x64/code-stubs-x64.h
@@ -295,8 +295,8 @@
                                   Register r2,
                                   Register r3) {
       for (int i = 0; i < Register::kNumRegisters; i++) {
-        Register candidate = Register::from_code(i);
-        if (candidate.IsAllocatable()) {
+        if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(i)) {
+          Register candidate = Register::from_code(i);
           if (candidate.is(rcx)) continue;
           if (candidate.is(r1)) continue;
           if (candidate.is(r2)) continue;
diff --git a/src/x64/codegen-x64.cc b/src/x64/codegen-x64.cc
index 114cbdc..911f3cb 100644
--- a/src/x64/codegen-x64.cc
+++ b/src/x64/codegen-x64.cc
@@ -32,38 +32,6 @@
 #define __ masm.
 
 
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  size_t actual_size;
-  byte* buffer =
-      static_cast<byte*>(base::OS::Allocate(1 * KB, &actual_size, true));
-  if (buffer == nullptr) return nullptr;
-  ExternalReference::InitializeMathExpData();
-
-  MacroAssembler masm(isolate, buffer, static_cast<int>(actual_size),
-                      CodeObjectRequired::kNo);
-  // xmm0: raw double input.
-  XMMRegister input = xmm0;
-  XMMRegister result = xmm1;
-  __ pushq(rax);
-  __ pushq(rbx);
-
-  MathExpGenerator::EmitMathExp(&masm, input, result, xmm2, rax, rbx);
-
-  __ popq(rbx);
-  __ popq(rax);
-  __ Movsd(xmm0, result);
-  __ Ret();
-
-  CodeDesc desc;
-  masm.GetCode(&desc);
-  DCHECK(!RelocInfo::RequiresRelocation(desc));
-
-  Assembler::FlushICache(isolate, buffer, actual_size);
-  base::OS::ProtectCode(buffer, actual_size);
-  return FUNCTION_CAST<UnaryMathFunctionWithIsolate>(buffer);
-}
-
-
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
   size_t actual_size;
   // Allocate buffer in executable space.
@@ -243,8 +211,9 @@
   // rbx: current element (smi-tagged)
   __ JumpIfNotSmi(rbx, &convert_hole);
   __ SmiToInteger32(rbx, rbx);
-  __ Cvtlsi2sd(xmm0, rbx);
-  __ Movsd(FieldOperand(r14, r9, times_8, FixedDoubleArray::kHeaderSize), xmm0);
+  __ Cvtlsi2sd(kScratchDoubleReg, rbx);
+  __ Movsd(FieldOperand(r14, r9, times_8, FixedDoubleArray::kHeaderSize),
+           kScratchDoubleReg);
   __ jmp(&entry);
   __ bind(&convert_hole);
 
@@ -498,59 +467,6 @@
   __ bind(&done);
 }
 
-
-void MathExpGenerator::EmitMathExp(MacroAssembler* masm,
-                                   XMMRegister input,
-                                   XMMRegister result,
-                                   XMMRegister double_scratch,
-                                   Register temp1,
-                                   Register temp2) {
-  DCHECK(!input.is(result));
-  DCHECK(!input.is(double_scratch));
-  DCHECK(!result.is(double_scratch));
-  DCHECK(!temp1.is(temp2));
-  DCHECK(ExternalReference::math_exp_constants(0).address() != NULL);
-  DCHECK(!masm->serializer_enabled());  // External references not serializable.
-
-  Label done;
-
-  __ Move(kScratchRegister, ExternalReference::math_exp_constants(0));
-  __ Movsd(double_scratch, Operand(kScratchRegister, 0 * kDoubleSize));
-  __ Xorpd(result, result);
-  __ Ucomisd(double_scratch, input);
-  __ j(above_equal, &done);
-  __ Ucomisd(input, Operand(kScratchRegister, 1 * kDoubleSize));
-  __ Movsd(result, Operand(kScratchRegister, 2 * kDoubleSize));
-  __ j(above_equal, &done);
-  __ Movsd(double_scratch, Operand(kScratchRegister, 3 * kDoubleSize));
-  __ Movsd(result, Operand(kScratchRegister, 4 * kDoubleSize));
-  __ Mulsd(double_scratch, input);
-  __ Addsd(double_scratch, result);
-  __ Movq(temp2, double_scratch);
-  __ Subsd(double_scratch, result);
-  __ Movsd(result, Operand(kScratchRegister, 6 * kDoubleSize));
-  __ leaq(temp1, Operand(temp2, 0x1ff800));
-  __ andq(temp2, Immediate(0x7ff));
-  __ shrq(temp1, Immediate(11));
-  __ Mulsd(double_scratch, Operand(kScratchRegister, 5 * kDoubleSize));
-  __ Move(kScratchRegister, ExternalReference::math_exp_log_table());
-  __ shlq(temp1, Immediate(52));
-  __ orq(temp1, Operand(kScratchRegister, temp2, times_8, 0));
-  __ Move(kScratchRegister, ExternalReference::math_exp_constants(0));
-  __ Subsd(double_scratch, input);
-  __ Movsd(input, double_scratch);
-  __ Subsd(result, double_scratch);
-  __ Mulsd(input, double_scratch);
-  __ Mulsd(result, input);
-  __ Movq(input, temp1);
-  __ Mulsd(result, Operand(kScratchRegister, 7 * kDoubleSize));
-  __ Subsd(result, double_scratch);
-  __ Addsd(result, Operand(kScratchRegister, 8 * kDoubleSize));
-  __ Mulsd(result, input);
-
-  __ bind(&done);
-}
-
 #undef __
 
 
diff --git a/src/x64/codegen-x64.h b/src/x64/codegen-x64.h
index 1403781..62945f7 100644
--- a/src/x64/codegen-x64.h
+++ b/src/x64/codegen-x64.h
@@ -28,20 +28,6 @@
 };
 
 
-class MathExpGenerator : public AllStatic {
- public:
-  static void EmitMathExp(MacroAssembler* masm,
-                          XMMRegister input,
-                          XMMRegister result,
-                          XMMRegister double_scratch,
-                          Register temp1,
-                          Register temp2);
-
- private:
-  DISALLOW_COPY_AND_ASSIGN(MathExpGenerator);
-};
-
-
 enum StackArgumentsAccessorReceiverMode {
   ARGUMENTS_CONTAIN_RECEIVER,
   ARGUMENTS_DONT_CONTAIN_RECEIVER
diff --git a/src/x64/deoptimizer-x64.cc b/src/x64/deoptimizer-x64.cc
index 9d70c32..35da7a2 100644
--- a/src/x64/deoptimizer-x64.cc
+++ b/src/x64/deoptimizer-x64.cc
@@ -116,8 +116,7 @@
   const int kDoubleRegsSize = kDoubleSize * XMMRegister::kMaxNumRegisters;
   __ subp(rsp, Immediate(kDoubleRegsSize));
 
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
     int code = config->GetAllocatableDoubleCode(i);
     XMMRegister xmm_reg = XMMRegister::from_code(code);
diff --git a/src/x64/disasm-x64.cc b/src/x64/disasm-x64.cc
index 7126b89..d679898 100644
--- a/src/x64/disasm-x64.cc
+++ b/src/x64/disasm-x64.cc
@@ -142,19 +142,18 @@
   SHORT_IMMEDIATE_INSTR
 };
 
-
 enum Prefixes {
   ESCAPE_PREFIX = 0x0F,
   OPERAND_SIZE_OVERRIDE_PREFIX = 0x66,
   ADDRESS_SIZE_OVERRIDE_PREFIX = 0x67,
   VEX3_PREFIX = 0xC4,
   VEX2_PREFIX = 0xC5,
+  LOCK_PREFIX = 0xF0,
   REPNE_PREFIX = 0xF2,
   REP_PREFIX = 0xF3,
   REPEQ_PREFIX = REP_PREFIX
 };
 
-
 struct InstructionDesc {
   const char* mnem;
   InstructionType type;
@@ -1514,7 +1513,16 @@
   if (operand_size_ == 0x66) {
     // 0x66 0x0F prefix.
     int mod, regop, rm;
-    if (opcode == 0x3A) {
+    if (opcode == 0x38) {
+      byte third_byte = *current;
+      current = data + 3;
+      if (third_byte == 0x40) {
+        // pmulld xmm, xmm/m128
+        get_modrm(*current, &mod, &regop, &rm);
+        AppendToBuffer("pmulld %s,", NameOfXMMRegister(regop));
+        current += PrintRightXMMOperand(current);
+      }
+    } else if (opcode == 0x3A) {
       byte third_byte = *current;
       current = data + 3;
       if (third_byte == 0x17) {
@@ -1537,11 +1545,18 @@
         AppendToBuffer(",0x%x", (*current) & 3);
         current += 1;
       } else if (third_byte == 0x16) {
-        get_modrm(*current, &mod, &rm, &regop);
+        get_modrm(*current, &mod, &regop, &rm);
         AppendToBuffer("pextrd ");  // reg/m32, xmm, imm8
         current += PrintRightOperand(current);
         AppendToBuffer(",%s,%d", NameOfXMMRegister(regop), (*current) & 3);
         current += 1;
+      } else if (third_byte == 0x21) {
+        get_modrm(*current, &mod, &regop, &rm);
+        // insertps xmm, xmm/m32, imm8
+        AppendToBuffer("insertps %s,", NameOfXMMRegister(regop));
+        current += PrintRightXMMOperand(current);
+        AppendToBuffer(",0x%x", (*current) & 3);
+        current += 1;
       } else if (third_byte == 0x22) {
         get_modrm(*current, &mod, &regop, &rm);
         AppendToBuffer("pinsrd ");  // xmm, reg/m32, imm8
@@ -1597,6 +1612,11 @@
       } else if (opcode == 0x50) {
         AppendToBuffer("movmskpd %s,", NameOfCPURegister(regop));
         current += PrintRightXMMOperand(current);
+      } else if (opcode == 0x70) {
+        AppendToBuffer("pshufd %s,", NameOfXMMRegister(regop));
+        current += PrintRightXMMOperand(current);
+        AppendToBuffer(",0x%x", *current);
+        current += 1;
       } else if (opcode == 0x72) {
         current += 1;
         AppendToBuffer("%s %s,%d", (regop == 6) ? "pslld" : "psrld",
@@ -1607,6 +1627,8 @@
         AppendToBuffer("%s %s,%d", (regop == 6) ? "psllq" : "psrlq",
                        NameOfXMMRegister(rm), *current & 0x7f);
         current += 1;
+      } else if (opcode == 0xB1) {
+        current += PrintOperands("cmpxchg", OPER_REG_OP_ORDER, current);
       } else {
         const char* mnemonic = "?";
         if (opcode == 0x54) {
@@ -1615,6 +1637,8 @@
           mnemonic = "orpd";
         } else  if (opcode == 0x57) {
           mnemonic = "xorpd";
+        } else if (opcode == 0x5B) {
+          mnemonic = "cvtps2dq";
         } else if (opcode == 0x2E) {
           mnemonic = "ucomisd";
         } else if (opcode == 0x2F) {
@@ -1625,6 +1649,12 @@
           mnemonic = "punpckldq";
         } else if (opcode == 0x6A) {
           mnemonic = "punpckhdq";
+        } else if (opcode == 0xF4) {
+          mnemonic = "pmuludq";
+        } else if (opcode == 0xFA) {
+          mnemonic = "psubd";
+        } else if (opcode == 0xFE) {
+          mnemonic = "paddd";
         } else {
           UnimplementedInstruction();
         }
@@ -1766,6 +1796,19 @@
     } else {
       UnimplementedInstruction();
     }
+  } else if (opcode == 0x10 || opcode == 0x11) {
+    // movups xmm, xmm/m128
+    // movups xmm/m128, xmm
+    int mod, regop, rm;
+    get_modrm(*current, &mod, &regop, &rm);
+    AppendToBuffer("movups ");
+    if (opcode == 0x11) {
+      current += PrintRightXMMOperand(current);
+      AppendToBuffer(",%s", NameOfXMMRegister(regop));
+    } else {
+      AppendToBuffer("%s,", NameOfXMMRegister(regop));
+      current += PrintRightXMMOperand(current);
+    }
   } else if (opcode == 0x1F) {
     // NOP
     int mod, regop, rm;
@@ -1812,29 +1855,28 @@
     byte_size_operand_ = idesc.byte_size_operation;
     current += PrintOperands(idesc.mnem, idesc.op_order_, current);
 
-  } else if (opcode >= 0x53 && opcode <= 0x5F) {
+  } else if (opcode >= 0x51 && opcode <= 0x5F) {
     const char* const pseudo_op[] = {
-      "rcpps",
-      "andps",
-      "andnps",
-      "orps",
-      "xorps",
-      "addps",
-      "mulps",
-      "cvtps2pd",
-      "cvtdq2ps",
-      "subps",
-      "minps",
-      "divps",
-      "maxps",
+        "sqrtps",   "rsqrtps", "rcpps", "andps", "andnps",
+        "orps",     "xorps",   "addps", "mulps", "cvtps2pd",
+        "cvtdq2ps", "subps",   "minps", "divps", "maxps",
     };
     int mod, regop, rm;
     get_modrm(*current, &mod, &regop, &rm);
-    AppendToBuffer("%s %s,",
-                   pseudo_op[opcode - 0x53],
+    AppendToBuffer("%s %s,", pseudo_op[opcode - 0x51],
                    NameOfXMMRegister(regop));
     current += PrintRightXMMOperand(current);
 
+  } else if (opcode == 0xC2) {
+    // cmpps xmm, xmm/m128, imm8
+    int mod, regop, rm;
+    get_modrm(*current, &mod, &regop, &rm);
+    const char* const pseudo_op[] = {"cmpeqps",    "cmpltps",  "cmpleps",
+                                     "cmpunordps", "cmpneqps", "cmpnltps",
+                                     "cmpnleps",   "cmpordps"};
+    AppendToBuffer("%s %s,%s", pseudo_op[current[1]], NameOfXMMRegister(regop),
+                   NameOfXMMRegister(rm));
+    current += 2;
   } else if (opcode == 0xC6) {
     // shufps xmm, xmm/m128, imm8
     int mod, regop, rm;
@@ -1843,7 +1885,6 @@
     current += PrintRightXMMOperand(current);
     AppendToBuffer(", %d", (*current) & 3);
     current += 1;
-
   } else if (opcode == 0x50) {
     // movmskps reg, xmm
     int mod, regop, rm;
@@ -1884,6 +1925,12 @@
     current += PrintRightOperand(current);
   } else if (opcode == 0x0B) {
     AppendToBuffer("ud2");
+  } else if (opcode == 0xB0 || opcode == 0xB1) {
+    // CMPXCHG.
+    if (opcode == 0xB0) {
+      byte_size_operand_ = true;
+    }
+    current += PrintOperands(mnemonic, OPER_REG_OP_ORDER, current);
   } else {
     UnimplementedInstruction();
   }
@@ -1926,6 +1973,9 @@
       return "shrd";
     case 0xAF:
       return "imul";
+    case 0xB0:
+    case 0xB1:
+      return "cmpxchg";
     case 0xB6:
       return "movzxb";
     case 0xB7:
@@ -1963,6 +2013,8 @@
       if (rex_w()) AppendToBuffer("REX.W ");
     } else if ((current & 0xFE) == 0xF2) {  // Group 1 prefix (0xF2 or 0xF3).
       group_1_prefix_ = current;
+    } else if (current == LOCK_PREFIX) {
+      AppendToBuffer("lock ");
     } else if (current == VEX3_PREFIX) {
       vex_byte0_ = current;
       vex_byte1_ = *(data + 1);
@@ -2427,7 +2479,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -2494,7 +2546,7 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    fprintf(f, "%p", prev_pc);
+    fprintf(f, "%p", static_cast<void*>(prev_pc));
     fprintf(f, "    ");
 
     for (byte* bp = prev_pc; bp < pc; bp++) {
diff --git a/src/x64/interface-descriptors-x64.cc b/src/x64/interface-descriptors-x64.cc
index e1e7f9c..a7cf120 100644
--- a/src/x64/interface-descriptors-x64.cc
+++ b/src/x64/interface-descriptors-x64.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return rsi; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {rax, rbx, rcx, rdx, rdi};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return rdx; }
 const Register LoadDescriptor::NameRegister() { return rcx; }
@@ -39,9 +47,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return rbx; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return rbx; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return rbx; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return rax; }
 
@@ -63,8 +68,6 @@
 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) {
@@ -250,43 +253,27 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // rax -- number of arguments
   // rdi -- function
   // rbx -- allocation site with elements kind
-  Register registers[] = {rdi, rbx};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
   Register registers[] = {rdi, rbx, rax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
+    CallInterfaceDescriptorData* data) {
   // register state
   // rax -- number of arguments
-  // rdi -- constructor function
-  Register registers[] = {rdi};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
+  // rdi -- function
+  // rbx -- allocation site with elements kind
+  Register registers[] = {rdi, rbx, rax};
+  data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {rdi, rax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {rax};
diff --git a/src/x64/macro-assembler-x64.cc b/src/x64/macro-assembler-x64.cc
index 2efb529..cd6b90c 100644
--- a/src/x64/macro-assembler-x64.cc
+++ b/src/x64/macro-assembler-x64.cc
@@ -3259,12 +3259,12 @@
     pinsrd(dst, src, imm8);
     return;
   }
-  Movd(xmm0, src);
+  Movd(kScratchDoubleReg, src);
   if (imm8 == 1) {
-    punpckldq(dst, xmm0);
+    punpckldq(dst, kScratchDoubleReg);
   } else {
     DCHECK_EQ(0, imm8);
-    Movss(dst, xmm0);
+    Movss(dst, kScratchDoubleReg);
   }
 }
 
@@ -3276,12 +3276,12 @@
     pinsrd(dst, src, imm8);
     return;
   }
-  Movd(xmm0, src);
+  Movd(kScratchDoubleReg, src);
   if (imm8 == 1) {
-    punpckldq(dst, xmm0);
+    punpckldq(dst, kScratchDoubleReg);
   } else {
     DCHECK_EQ(0, imm8);
-    Movss(dst, xmm0);
+    Movss(dst, kScratchDoubleReg);
   }
 }
 
@@ -3743,15 +3743,15 @@
 void MacroAssembler::TruncateHeapNumberToI(Register result_reg,
                                            Register input_reg) {
   Label done;
-  Movsd(xmm0, FieldOperand(input_reg, HeapNumber::kValueOffset));
-  Cvttsd2siq(result_reg, xmm0);
+  Movsd(kScratchDoubleReg, FieldOperand(input_reg, HeapNumber::kValueOffset));
+  Cvttsd2siq(result_reg, kScratchDoubleReg);
   cmpq(result_reg, Immediate(1));
   j(no_overflow, &done, Label::kNear);
 
   // Slow case.
   if (input_reg.is(result_reg)) {
     subp(rsp, Immediate(kDoubleSize));
-    Movsd(MemOperand(rsp, 0), xmm0);
+    Movsd(MemOperand(rsp, 0), kScratchDoubleReg);
     SlowTruncateToI(result_reg, rsp, 0);
     addp(rsp, Immediate(kDoubleSize));
   } else {
@@ -3788,8 +3788,8 @@
                                Label* lost_precision, Label* is_nan,
                                Label* minus_zero, Label::Distance dst) {
   Cvttsd2si(result_reg, input_reg);
-  Cvtlsi2sd(xmm0, result_reg);
-  Ucomisd(xmm0, input_reg);
+  Cvtlsi2sd(kScratchDoubleReg, result_reg);
+  Ucomisd(kScratchDoubleReg, input_reg);
   j(not_equal, lost_precision, dst);
   j(parity_even, is_nan, dst);  // NaN.
   if (minus_zero_mode == FAIL_ON_MINUS_ZERO) {
@@ -4338,11 +4338,12 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  Operand step_in_enabled_operand = ExternalOperand(step_in_enabled);
-  cmpb(step_in_enabled_operand, Immediate(0));
-  j(equal, &skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  Operand last_step_action_operand = ExternalOperand(last_step_action);
+  STATIC_ASSERT(StepFrame > StepIn);
+  cmpb(last_step_action_operand, Immediate(StepIn));
+  j(less, &skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -4401,8 +4402,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   movp(vector, Operand(rbp, JavaScriptFrameConstants::kFunctionOffset));
-  movp(vector, FieldOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  movp(vector, FieldOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  movp(vector, FieldOperand(vector, JSFunction::kLiteralsOffset));
+  movp(vector, FieldOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -4483,8 +4484,7 @@
                 arg_stack_space * kRegisterSize;
     subp(rsp, Immediate(space));
     int offset = -ExitFrameConstants::kFixedFrameSizeFromFp;
-    const RegisterConfiguration* config =
-        RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+    const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
     for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
       DoubleRegister reg =
           DoubleRegister::from_code(config->GetAllocatableDoubleCode(i));
@@ -4530,8 +4530,7 @@
   // r15 : argv
   if (save_doubles) {
     int offset = -ExitFrameConstants::kFixedFrameSizeFromFp;
-    const RegisterConfiguration* config =
-        RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+    const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
     for (int i = 0; i < config->num_allocatable_double_registers(); ++i) {
       DoubleRegister reg =
           DoubleRegister::from_code(config->GetAllocatableDoubleCode(i));
diff --git a/src/x64/macro-assembler-x64.h b/src/x64/macro-assembler-x64.h
index 013d0f1..b088c7d 100644
--- a/src/x64/macro-assembler-x64.h
+++ b/src/x64/macro-assembler-x64.h
@@ -34,8 +34,9 @@
 // Default scratch register used by MacroAssembler (and other code that needs
 // a spare register). The register isn't callee save, and not used by the
 // function calling convention.
-const Register kScratchRegister = { 10 };      // r10.
-const Register kRootRegister = { 13 };         // r13 (callee save).
+const Register kScratchRegister = {10};      // r10.
+const XMMRegister kScratchDoubleReg = {15};  // xmm15.
+const Register kRootRegister = {13};         // r13 (callee save).
 // Actual value of root register is offset from the root array's start
 // to take advantage of negitive 8-bit displacement values.
 const int kRootRegisterBias = 128;
diff --git a/src/x87/assembler-x87.cc b/src/x87/assembler-x87.cc
index 5cc783c..e7e4abe 100644
--- a/src/x87/assembler-x87.cc
+++ b/src/x87/assembler-x87.cc
@@ -106,36 +106,24 @@
   return Memory::Address_at(pc_);
 }
 
+Address RelocInfo::wasm_global_reference() {
+  DCHECK(IsWasmGlobalReference(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));
-  }
+void RelocInfo::unchecked_update_wasm_memory_reference(
+    Address address, ICacheFlushMode flush_mode) {
+  Memory::Address_at(pc_) = address;
+}
+
+void RelocInfo::unchecked_update_wasm_memory_size(uint32_t size,
+                                                  ICacheFlushMode flush_mode) {
+  Memory::uint32_at(pc_) = size;
 }
 
 // -----------------------------------------------------------------------------
@@ -259,6 +247,8 @@
   desc->reloc_size = (buffer_ + buffer_size_) - reloc_info_writer.pos();
   desc->origin = this;
   desc->constant_pool_size = 0;
+  desc->unwinding_info_size = 0;
+  desc->unwinding_info = nullptr;
 }
 
 
@@ -601,6 +591,33 @@
   emit_operand(reg, op);
 }
 
+void Assembler::lock() {
+  EnsureSpace ensure_space(this);
+  EMIT(0xF0);
+}
+
+void Assembler::cmpxchg(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x0F);
+  EMIT(0xB1);
+  emit_operand(src, dst);
+}
+
+void Assembler::cmpxchg_b(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x0F);
+  EMIT(0xB0);
+  emit_operand(src, dst);
+}
+
+void Assembler::cmpxchg_w(const Operand& dst, Register src) {
+  EnsureSpace ensure_space(this);
+  EMIT(0x66);
+  EMIT(0x0F);
+  EMIT(0xB1);
+  emit_operand(src, dst);
+}
+
 void Assembler::adc(Register dst, int32_t imm32) {
   EnsureSpace ensure_space(this);
   emit_arith(2, Operand(dst), Immediate(imm32));
@@ -1387,7 +1404,6 @@
 
 
 void Assembler::call(Label* L) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   if (L->is_bound()) {
     const int long_size = 5;
@@ -1405,7 +1421,6 @@
 
 
 void Assembler::call(byte* entry, RelocInfo::Mode rmode) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   DCHECK(!RelocInfo::IsCodeTarget(rmode));
   EMIT(0xE8);
@@ -1424,7 +1439,6 @@
 
 
 void Assembler::call(const Operand& adr) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   EMIT(0xFF);
   emit_operand(edx, adr);
@@ -1439,7 +1453,6 @@
 void Assembler::call(Handle<Code> code,
                      RelocInfo::Mode rmode,
                      TypeFeedbackId ast_id) {
-  positions_recorder()->WriteRecordedPositions();
   EnsureSpace ensure_space(this);
   DCHECK(RelocInfo::IsCodeTarget(rmode)
       || rmode == RelocInfo::CODE_AGE_SEQUENCE);
diff --git a/src/x87/assembler-x87.h b/src/x87/assembler-x87.h
index eaf28e9..d4cde52 100644
--- a/src/x87/assembler-x87.h
+++ b/src/x87/assembler-x87.h
@@ -122,8 +122,6 @@
     Register r = {code};
     return r;
   }
-  const char* ToString();
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kNumRegisters; }
   bool is(Register reg) const { return reg_code == reg.reg_code; }
   int code() const {
@@ -147,6 +145,8 @@
 #undef DECLARE_REGISTER
 const Register no_reg = {Register::kCode_no_reg};
 
+static const bool kSimpleFPAliasing = true;
+
 struct X87Register {
   enum Code {
 #define REGISTER_CODE(R) kCode_##R,
@@ -164,7 +164,6 @@
     return result;
   }
 
-  bool IsAllocatable() const;
   bool is_valid() const { return 0 <= reg_code && reg_code < kMaxNumRegisters; }
 
   int code() const {
@@ -174,8 +173,6 @@
 
   bool is(X87Register reg) const { return reg_code == reg.reg_code; }
 
-  const char* ToString();
-
   int reg_code;
 };
 
@@ -654,6 +651,14 @@
   void xchg_b(Register reg, const Operand& op);
   void xchg_w(Register reg, const Operand& op);
 
+  // Lock prefix
+  void lock();
+
+  // CompareExchange
+  void cmpxchg(const Operand& dst, Register src);
+  void cmpxchg_b(const Operand& dst, Register src);
+  void cmpxchg_w(const Operand& dst, Register src);
+
   // Arithmetics
   void adc(Register dst, int32_t imm32);
   void adc(Register dst, const Operand& src);
diff --git a/src/x87/builtins-x87.cc b/src/x87/builtins-x87.cc
index 7018802..0600f0d 100644
--- a/src/x87/builtins-x87.cc
+++ b/src/x87/builtins-x87.cc
@@ -16,10 +16,7 @@
 
 #define __ ACCESS_MASM(masm)
 
-
-void Builtins::Generate_Adaptor(MacroAssembler* masm,
-                                CFunctionId id,
-                                BuiltinExtraArguments extra_args) {
+void Builtins::Generate_Adaptor(MacroAssembler* masm, CFunctionId id) {
   // ----------- S t a t e -------------
   //  -- eax                : number of arguments excluding receiver
   //  -- edi                : target
@@ -39,19 +36,11 @@
   __ mov(esi, FieldOperand(edi, JSFunction::kContextOffset));
 
   // Insert extra arguments.
-  int num_extra_args = 0;
-  if (extra_args != BuiltinExtraArguments::kNone) {
-    __ PopReturnAddressTo(ecx);
-    if (extra_args & BuiltinExtraArguments::kTarget) {
-      ++num_extra_args;
-      __ Push(edi);
-    }
-    if (extra_args & BuiltinExtraArguments::kNewTarget) {
-      ++num_extra_args;
-      __ Push(edx);
-    }
-    __ PushReturnAddressFrom(ecx);
-  }
+  const int num_extra_args = 2;
+  __ PopReturnAddressTo(ecx);
+  __ Push(edi);
+  __ Push(edx);
+  __ PushReturnAddressFrom(ecx);
 
   // JumpToExternalReference expects eax to contain the number of arguments
   // including the receiver and the extra arguments.
@@ -396,8 +385,8 @@
   __ AssertGeneratorObject(ebx);
 
   // Store input value into generator object.
-  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOffset), eax);
-  __ RecordWriteField(ebx, JSGeneratorObject::kInputOffset, eax, ecx,
+  __ mov(FieldOperand(ebx, JSGeneratorObject::kInputOrDebugPosOffset), eax);
+  __ RecordWriteField(ebx, JSGeneratorObject::kInputOrDebugPosOffset, eax, ecx,
                       kDontSaveFPRegs);
 
   // Store resume mode into generator object.
@@ -408,22 +397,20 @@
   __ 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);
+  Label prepare_step_in_if_stepping, prepare_step_in_suspended_generator;
+  Label stepping_prepared;
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(masm->isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  __ cmpb(Operand::StaticVariable(last_step_action), Immediate(StepIn));
+  __ j(greater_equal, &prepare_step_in_if_stepping);
+
+  // Flood function if we need to continue stepping in the suspended generator.
+  ExternalReference debug_suspended_generator =
+      ExternalReference::debug_suspended_generator_address(masm->isolate());
+  __ cmp(ebx, Operand::StaticVariable(debug_suspended_generator));
+  __ j(equal, &prepare_step_in_suspended_generator);
+  __ bind(&stepping_prepared);
 
   // Pop return address.
   __ PopReturnAddressTo(eax);
@@ -519,6 +506,51 @@
     __ mov(eax, ebx);  // Continuation expects generator object in eax.
     __ jmp(edx);
   }
+
+  __ bind(&prepare_step_in_if_stepping);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ Push(edi);
+    __ CallRuntime(Runtime::kDebugPrepareStepInIfStepping);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+
+  __ bind(&prepare_step_in_suspended_generator);
+  {
+    FrameScope scope(masm, StackFrame::INTERNAL);
+    __ Push(ebx);
+    __ Push(edx);
+    __ CallRuntime(Runtime::kDebugPrepareStepInSuspendedGenerator);
+    __ Pop(edx);
+    __ Pop(ebx);
+    __ mov(edi, FieldOperand(ebx, JSGeneratorObject::kFunctionOffset));
+  }
+  __ jmp(&stepping_prepared);
+}
+
+static void LeaveInterpreterFrame(MacroAssembler* masm, Register scratch1,
+                                  Register scratch2) {
+  Register args_count = scratch1;
+  Register return_pc = scratch2;
+
+  // Get the arguments + reciever count.
+  __ mov(args_count,
+         Operand(ebp, InterpreterFrameConstants::kBytecodeArrayFromFp));
+  __ mov(args_count,
+         FieldOperand(args_count, BytecodeArray::kParameterSizeOffset));
+
+  // Leave the frame (also dropping the register file).
+  __ leave();
+
+  // Drop receiver + arguments.
+  __ pop(return_pc);
+  __ add(esp, args_count);
+  __ push(return_pc);
 }
 
 // Generate code for entering a JS function with the interpreter.
@@ -624,18 +656,7 @@
   masm->isolate()->heap()->SetInterpreterEntryReturnPCOffset(masm->pc_offset());
 
   // 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);
+  LeaveInterpreterFrame(masm, ebx, ecx);
   __ ret(0);
 
   // Load debug copy of the bytecode array.
@@ -662,6 +683,31 @@
   __ jmp(ecx);
 }
 
+void Builtins::Generate_InterpreterMarkBaselineOnReturn(MacroAssembler* masm) {
+  // Save the function and context for call to CompileBaseline.
+  __ mov(edi, Operand(ebp, StandardFrameConstants::kFunctionOffset));
+  __ mov(kContextRegister,
+         Operand(ebp, StandardFrameConstants::kContextOffset));
+
+  // Leave the frame before recompiling for baseline so that we don't count as
+  // an activation on the stack.
+  LeaveInterpreterFrame(masm, ebx, ecx);
+
+  {
+    FrameScope frame_scope(masm, StackFrame::INTERNAL);
+    // Push return value.
+    __ push(eax);
+
+    // Push function as argument and compile for baseline.
+    __ push(edi);
+    __ CallRuntime(Runtime::kCompileBaseline);
+
+    // Restore return value.
+    __ pop(eax);
+  }
+  __ ret(0);
+}
+
 static void Generate_InterpreterPushArgs(MacroAssembler* masm,
                                          Register array_limit) {
   // ----------- S t a t e -------------
@@ -841,13 +887,30 @@
   const int bailout_id = BailoutId::None().ToInt();
   __ cmp(temp, Immediate(Smi::FromInt(bailout_id)));
   __ j(not_equal, &loop_bottom);
+
   // Literals available?
+  Label got_literals, maybe_cleared_weakcell;
   __ mov(temp, FieldOperand(map, index, times_half_pointer_size,
                             SharedFunctionInfo::kOffsetToPreviousLiterals));
+
+  // temp contains either a WeakCell pointing to the literals array or the
+  // literals array directly.
+  STATIC_ASSERT(WeakCell::kValueOffset == FixedArray::kLengthOffset);
+  __ JumpIfSmi(FieldOperand(temp, WeakCell::kValueOffset),
+               &maybe_cleared_weakcell);
+  // The WeakCell value is a pointer, therefore it's a valid literals array.
   __ mov(temp, FieldOperand(temp, WeakCell::kValueOffset));
-  __ JumpIfSmi(temp, &gotta_call_runtime);
+  __ jmp(&got_literals);
+
+  // We have a smi. If it's 0, then we are looking at a cleared WeakCell
+  // around the literals array, and we should visit the runtime. If it's > 0,
+  // then temp already contains the literals array.
+  __ bind(&maybe_cleared_weakcell);
+  __ cmp(FieldOperand(temp, WeakCell::kValueOffset), Immediate(0));
+  __ j(equal, &gotta_call_runtime);
 
   // Save the literals in the closure.
+  __ bind(&got_literals);
   __ mov(ecx, Operand(esp, 0));
   __ mov(FieldOperand(ecx, JSFunction::kLiteralsOffset), temp);
   __ push(index);
@@ -1120,6 +1183,9 @@
 void Builtins::Generate_DatePrototype_GetField(MacroAssembler* masm,
                                                int field_index) {
   // ----------- S t a t e -------------
+  //  -- eax    : number of arguments
+  //  -- edi    : function
+  //  -- esi    : context
   //  -- esp[0] : return address
   //  -- esp[4] : receiver
   // -----------------------------------
@@ -1162,7 +1228,11 @@
   __ bind(&receiver_not_date);
   {
     FrameScope scope(masm, StackFrame::MANUAL);
-    __ EnterFrame(StackFrame::INTERNAL);
+    __ Push(ebp);
+    __ Move(ebp, esp);
+    __ Push(esi);
+    __ Push(edi);
+    __ Push(Immediate(0));
     __ CallRuntime(Runtime::kThrowNotDateError);
   }
 }
@@ -1496,6 +1566,8 @@
 void Builtins::Generate_MathMaxMin(MacroAssembler* masm, MathMaxMinKind kind) {
   // ----------- S t a t e -------------
   //  -- eax                 : number of arguments
+  //  -- edi                 : function
+  //  -- esi                 : context
   //  -- esp[0]              : return address
   //  -- esp[(argc - n) * 8] : arg[n] (zero-based)
   //  -- esp[(argc + 1) * 8] : receiver
@@ -1523,27 +1595,32 @@
     __ mov(ebx, Operand(esp, ecx, times_pointer_size, 0));
 
     // Load the double value of the parameter into stx_1, maybe converting the
-    // parameter to a number first using the ToNumberStub if necessary.
+    // parameter to a number first using the ToNumber builtin if necessary.
     Label convert, convert_smi, convert_number, done_convert;
     __ bind(&convert);
     __ JumpIfSmi(ebx, &convert_smi);
     __ JumpIfRoot(FieldOperand(ebx, HeapObject::kMapOffset),
                   Heap::kHeapNumberMapRootIndex, &convert_number);
     {
-      // Parameter is not a Number, use the ToNumberStub to convert it.
-      FrameScope scope(masm, StackFrame::INTERNAL);
+      // Parameter is not a Number, use the ToNumber builtin to convert it.
+      FrameScope scope(masm, StackFrame::MANUAL);
+      __ Push(ebp);
+      __ Move(ebp, esp);
+      __ Push(esi);
+      __ Push(edi);
       __ SmiTag(eax);
       __ SmiTag(ecx);
       __ Push(eax);
       __ Push(ecx);
       __ Push(edx);
       __ mov(eax, ebx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ mov(ebx, eax);
       __ Pop(edx);
       __ Pop(ecx);
       __ Pop(eax);
+      __ Pop(edi);
+      __ Pop(esi);
       {
         // Restore the double accumulator value (stX_0).
         Label restore_smi, done_restore;
@@ -1560,6 +1637,7 @@
       }
       __ SmiUntag(ecx);
       __ SmiUntag(eax);
+      __ leave();
     }
     __ jmp(&convert);
     __ bind(&convert_number);
@@ -1650,8 +1728,7 @@
   }
 
   // 2a. Convert the first argument to a number.
-  ToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
+  __ Jump(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
 
   // 2b. No arguments, return +0 (already in eax).
   __ bind(&no_arguments);
@@ -1701,8 +1778,7 @@
       __ Push(edi);
       __ Push(edx);
       __ Move(eax, ebx);
-      ToNumberStub stub(masm->isolate());
-      __ CallStub(&stub);
+      __ Call(masm->isolate()->builtins()->ToNumber(), RelocInfo::CODE_TARGET);
       __ Move(ebx, eax);
       __ Pop(edx);
       __ Pop(edi);
@@ -2601,6 +2677,81 @@
   __ TailCallRuntime(Runtime::kAllocateInTargetSpace);
 }
 
+// static
+void Builtins::Generate_StringToNumber(MacroAssembler* masm) {
+  // The StringToNumber stub takes one argument in eax.
+  __ AssertString(eax);
+
+  // Check if string has a cached array index.
+  Label runtime;
+  __ test(FieldOperand(eax, String::kHashFieldOffset),
+          Immediate(String::kContainsCachedArrayIndexMask));
+  __ j(not_zero, &runtime, Label::kNear);
+  __ mov(eax, FieldOperand(eax, String::kHashFieldOffset));
+  __ IndexFromHash(eax, eax);
+  __ Ret();
+
+  __ bind(&runtime);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(eax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kStringToNumber);
+  }
+  __ Ret();
+}
+
+// static
+void Builtins::Generate_ToNumber(MacroAssembler* masm) {
+  // The ToNumber stub takes one argument in eax.
+  Label not_smi;
+  __ JumpIfNotSmi(eax, &not_smi, Label::kNear);
+  __ Ret();
+  __ bind(&not_smi);
+
+  Label not_heap_number;
+  __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
+  __ j(not_equal, &not_heap_number, Label::kNear);
+  __ Ret();
+  __ bind(&not_heap_number);
+
+  __ Jump(masm->isolate()->builtins()->NonNumberToNumber(),
+          RelocInfo::CODE_TARGET);
+}
+
+// static
+void Builtins::Generate_NonNumberToNumber(MacroAssembler* masm) {
+  // The NonNumberToNumber stub takes one argument in eax.
+  __ AssertNotNumber(eax);
+
+  Label not_string;
+  __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edi);
+  // eax: object
+  // edi: object map
+  __ j(above_equal, &not_string, Label::kNear);
+  __ Jump(masm->isolate()->builtins()->StringToNumber(),
+          RelocInfo::CODE_TARGET);
+  __ bind(&not_string);
+
+  Label not_oddball;
+  __ CmpInstanceType(edi, ODDBALL_TYPE);
+  __ j(not_equal, &not_oddball, Label::kNear);
+  __ mov(eax, FieldOperand(eax, Oddball::kToNumberOffset));
+  __ Ret();
+  __ bind(&not_oddball);
+  {
+    FrameScope frame(masm, StackFrame::INTERNAL);
+    // Push argument.
+    __ push(eax);
+    // We cannot use a tail call here because this builtin can also be called
+    // from wasm.
+    __ CallRuntime(Runtime::kToNumber);
+  }
+  __ Ret();
+}
+
 void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
   // ----------- S t a t e -------------
   //  -- eax : actual number of arguments
diff --git a/src/x87/code-stubs-x87.cc b/src/x87/code-stubs-x87.cc
index fdb97ee..7b069ac 100644
--- a/src/x87/code-stubs-x87.cc
+++ b/src/x87/code-stubs-x87.cc
@@ -22,78 +22,29 @@
 namespace v8 {
 namespace internal {
 
+#define __ ACCESS_MASM(masm)
 
-static void InitializeArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  // register state
-  // eax -- number of arguments
-  // edi -- function
-  // ebx -- allocation site with elements kind
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(eax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
+void ArrayNArgumentsConstructorStub::Generate(MacroAssembler* masm) {
+  __ pop(ecx);
+  __ mov(MemOperand(esp, eax, times_4, 0), edi);
+  __ push(edi);
+  __ push(ebx);
+  __ push(ecx);
+  __ add(eax, Immediate(3));
+  __ TailCallRuntime(Runtime::kNewArray);
 }
 
-
-static void InitializeInternalArrayConstructorDescriptor(
-    Isolate* isolate, CodeStubDescriptor* descriptor,
-    int constant_stack_parameter_count) {
-  // register state
-  // eax -- number of arguments
-  // edi -- constructor function
-  Address deopt_handler = Runtime::FunctionForId(
-      Runtime::kInternalArrayConstructor)->entry;
-
-  if (constant_stack_parameter_count == 0) {
-    descriptor->Initialize(deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  } else {
-    descriptor->Initialize(eax, deopt_handler, constant_stack_parameter_count,
-                           JS_FUNCTION_STUB_MODE);
-  }
-}
-
-
-void ArraySingleArgumentConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, 1);
-}
-
-
-void ArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
 void FastArrayPushStub::InitializeDescriptor(CodeStubDescriptor* descriptor) {
   Address deopt_handler = Runtime::FunctionForId(Runtime::kArrayPush)->entry;
   descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-void InternalArraySingleArgumentConstructorStub::InitializeDescriptor(
+void FastFunctionBindStub::InitializeDescriptor(
     CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, 1);
+  Address deopt_handler = Runtime::FunctionForId(Runtime::kFunctionBind)->entry;
+  descriptor->Initialize(eax, deopt_handler, -1, JS_FUNCTION_STUB_MODE);
 }
 
-
-void InternalArrayNArgumentsConstructorStub::InitializeDescriptor(
-    CodeStubDescriptor* descriptor) {
-  InitializeInternalArrayConstructorDescriptor(isolate(), descriptor, -1);
-}
-
-
-#define __ ACCESS_MASM(masm)
-
-
 void HydrogenCodeStub::GenerateLightweightMiss(MacroAssembler* masm,
                                                ExternalReference miss) {
   // Update the static counter each time a new code stub is generated.
@@ -381,7 +332,6 @@
                                           &miss,  // When not a string.
                                           &miss,  // When not a number.
                                           &miss,  // When index out of range.
-                                          STRING_INDEX_IS_ARRAY_INDEX,
                                           RECEIVER_IS_STRING);
   char_at_generator.GenerateFast(masm);
   __ ret(0);
@@ -1178,6 +1128,7 @@
   // edi : the function to call
   Isolate* isolate = masm->isolate();
   Label initialize, done, miss, megamorphic, not_array_function;
+  Label done_increment_count, done_initialize_count;
 
   // Load the cache state into ecx.
   __ mov(ecx, FieldOperand(ebx, edx, times_half_pointer_size,
@@ -1190,7 +1141,7 @@
   // type-feedback-vector.h).
   Label check_allocation_site;
   __ cmp(edi, FieldOperand(ecx, WeakCell::kValueOffset));
-  __ j(equal, &done, Label::kFar);
+  __ j(equal, &done_increment_count, Label::kFar);
   __ CompareRoot(ecx, Heap::kmegamorphic_symbolRootIndex);
   __ j(equal, &done, Label::kFar);
   __ CompareRoot(FieldOperand(ecx, HeapObject::kMapOffset),
@@ -1213,7 +1164,7 @@
   __ LoadGlobalFunction(Context::ARRAY_FUNCTION_INDEX, ecx);
   __ cmp(edi, ecx);
   __ j(not_equal, &megamorphic);
-  __ jmp(&done, Label::kFar);
+  __ jmp(&done_increment_count, Label::kFar);
 
   __ bind(&miss);
 
@@ -1242,11 +1193,25 @@
   // slot.
   CreateAllocationSiteStub create_stub(isolate);
   CallStubInRecordCallTarget(masm, &create_stub);
-  __ jmp(&done);
+  __ jmp(&done_initialize_count);
 
   __ bind(&not_array_function);
   CreateWeakCellStub weak_cell_stub(isolate);
   CallStubInRecordCallTarget(masm, &weak_cell_stub);
+  __ bind(&done_initialize_count);
+
+  // Initialize the call counter.
+  __ mov(FieldOperand(ebx, edx, times_half_pointer_size,
+                      FixedArray::kHeaderSize + kPointerSize),
+         Immediate(Smi::FromInt(1)));
+  __ jmp(&done);
+
+  __ bind(&done_increment_count);
+  // Increment the call count for monomorphic function calls.
+  __ add(FieldOperand(ebx, edx, times_half_pointer_size,
+                      FixedArray::kHeaderSize + kPointerSize),
+         Immediate(Smi::FromInt(1)));
+
   __ bind(&done);
 }
 
@@ -1310,7 +1275,7 @@
   // Increment the call count for monomorphic function calls.
   __ add(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   __ mov(ebx, ecx);
   __ mov(edx, edi);
@@ -1358,7 +1323,7 @@
   // Increment the call count for monomorphic function calls.
   __ add(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   __ bind(&call_function);
   __ Set(eax, argc);
@@ -1429,7 +1394,7 @@
   // Initialize the call counter.
   __ mov(FieldOperand(ebx, edx, times_half_pointer_size,
                       FixedArray::kHeaderSize + kPointerSize),
-         Immediate(Smi::FromInt(CallICNexus::kCallCountIncrement)));
+         Immediate(Smi::FromInt(1)));
 
   // Store the function. Use a stub since we need a frame for allocation.
   // ebx - vector
@@ -1483,7 +1448,7 @@
   StoreBufferOverflowStub::GenerateFixedRegStubsAheadOfTime(isolate);
   StubFailureTrampolineStub::GenerateAheadOfTime(isolate);
   // It is important that the store buffer overflow stubs are generated first.
-  ArrayConstructorStubBase::GenerateStubsAheadOfTime(isolate);
+  CommonArrayConstructorStub::GenerateStubsAheadOfTime(isolate);
   CreateAllocationSiteStub::GenerateAheadOfTime(isolate);
   CreateWeakCellStub::GenerateAheadOfTime(isolate);
   BinaryOpICStub::GenerateAheadOfTime(isolate);
@@ -1824,13 +1789,7 @@
   }
   __ push(object_);
   __ push(index_);  // Consumed by runtime conversion function.
-  if (index_flags_ == STRING_INDEX_IS_NUMBER) {
-    __ CallRuntime(Runtime::kNumberToIntegerMapMinusZero);
-  } else {
-    DCHECK(index_flags_ == STRING_INDEX_IS_ARRAY_INDEX);
-    // NumberToSmi discards numbers that are not exact integers.
-    __ CallRuntime(Runtime::kNumberToSmi);
-  }
+  __ CallRuntime(Runtime::kNumberToSmi);
   if (!index_.is(eax)) {
     // Save the conversion result before the pop instructions below
     // have a chance to overwrite it.
@@ -2163,77 +2122,12 @@
   // ecx: sub string length (smi)
   // edx: from index (smi)
   StringCharAtGenerator generator(eax, edx, ecx, eax, &runtime, &runtime,
-                                  &runtime, STRING_INDEX_IS_NUMBER,
-                                  RECEIVER_IS_STRING);
+                                  &runtime, RECEIVER_IS_STRING);
   generator.GenerateFast(masm);
   __ ret(3 * kPointerSize);
   generator.SkipSlow(masm, &runtime);
 }
 
-
-void ToNumberStub::Generate(MacroAssembler* masm) {
-  // The ToNumber stub takes one argument in eax.
-  Label not_smi;
-  __ JumpIfNotSmi(eax, &not_smi, Label::kNear);
-  __ Ret();
-  __ bind(&not_smi);
-
-  Label not_heap_number;
-  __ CompareMap(eax, masm->isolate()->factory()->heap_number_map());
-  __ j(not_equal, &not_heap_number, Label::kNear);
-  __ Ret();
-  __ bind(&not_heap_number);
-
-  NonNumberToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-}
-
-void NonNumberToNumberStub::Generate(MacroAssembler* masm) {
-  // The NonNumberToNumber stub takes one argument in eax.
-  __ AssertNotNumber(eax);
-
-  Label not_string;
-  __ CmpObjectType(eax, FIRST_NONSTRING_TYPE, edi);
-  // eax: object
-  // edi: object map
-  __ j(above_equal, &not_string, Label::kNear);
-  StringToNumberStub stub(masm->isolate());
-  __ TailCallStub(&stub);
-  __ bind(&not_string);
-
-  Label not_oddball;
-  __ CmpInstanceType(edi, ODDBALL_TYPE);
-  __ j(not_equal, &not_oddball, Label::kNear);
-  __ mov(eax, FieldOperand(eax, Oddball::kToNumberOffset));
-  __ Ret();
-  __ bind(&not_oddball);
-
-  __ pop(ecx);   // Pop return address.
-  __ push(eax);  // Push argument.
-  __ push(ecx);  // Push return address.
-  __ TailCallRuntime(Runtime::kToNumber);
-}
-
-void StringToNumberStub::Generate(MacroAssembler* masm) {
-  // The StringToNumber stub takes one argument in eax.
-  __ AssertString(eax);
-
-  // Check if string has a cached array index.
-  Label runtime;
-  __ test(FieldOperand(eax, String::kHashFieldOffset),
-          Immediate(String::kContainsCachedArrayIndexMask));
-  __ j(not_zero, &runtime, Label::kNear);
-  __ mov(eax, FieldOperand(eax, String::kHashFieldOffset));
-  __ IndexFromHash(eax, eax);
-  __ Ret();
-
-  __ bind(&runtime);
-  __ PopReturnAddressTo(ecx);     // Pop return address.
-  __ Push(eax);                   // Push argument.
-  __ PushReturnAddressFrom(ecx);  // Push return address.
-  __ TailCallRuntime(Runtime::kStringToNumber);
-}
-
 void ToStringStub::Generate(MacroAssembler* masm) {
   // The ToString stub takes one argument in eax.
   Label is_number;
@@ -2440,7 +2334,7 @@
   // Load ecx with the allocation site.  We stick an undefined dummy value here
   // and replace it with the real allocation site later when we instantiate this
   // stub in BinaryOpICWithAllocationSiteStub::GetCodeCopyFromTemplate().
-  __ mov(ecx, handle(isolate()->heap()->undefined_value()));
+  __ mov(ecx, isolate()->factory()->undefined_value());
 
   // Make sure that we actually patched the allocation site.
   if (FLAG_debug_code) {
@@ -3241,14 +3135,14 @@
 
 void LoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  LoadICStub stub(isolate(), state());
+  LoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
 
 void KeyedLoadICTrampolineStub::Generate(MacroAssembler* masm) {
   __ EmitLoadTypeFeedbackVector(LoadWithVectorDescriptor::VectorRegister());
-  KeyedLoadICStub stub(isolate(), state());
+  KeyedLoadICStub stub(isolate());
   stub.GenerateForTrampoline(masm);
 }
 
@@ -4013,17 +3907,14 @@
   }
 }
 
-void ArrayConstructorStubBase::GenerateStubsAheadOfTime(Isolate* isolate) {
+void CommonArrayConstructorStub::GenerateStubsAheadOfTime(Isolate* isolate) {
   ArrayConstructorStubAheadOfTimeHelper<ArrayNoArgumentConstructorStub>(
       isolate);
   ArrayConstructorStubAheadOfTimeHelper<ArraySingleArgumentConstructorStub>(
       isolate);
-  ArrayConstructorStubAheadOfTimeHelper<ArrayNArgumentsConstructorStub>(
-      isolate);
-}
+  ArrayNArgumentsConstructorStub stub(isolate);
+  stub.GetCode();
 
-void InternalArrayConstructorStubBase::GenerateStubsAheadOfTime(
-    Isolate* isolate) {
   ElementsKind kinds[2] = {FAST_ELEMENTS, FAST_HOLEY_ELEMENTS};
   for (int i = 0; i < 2; i++) {
     // For internal arrays we only need a few things
@@ -4031,8 +3922,6 @@
     stubh1.GetCode();
     InternalArraySingleArgumentConstructorStub stubh2(isolate, kinds[i]);
     stubh2.GetCode();
-    InternalArrayNArgumentsConstructorStub stubh3(isolate, kinds[i]);
-    stubh3.GetCode();
   }
 }
 
@@ -4050,13 +3939,15 @@
     CreateArrayDispatchOneArgument(masm, mode);
 
     __ bind(&not_one_case);
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else if (argument_count() == NONE) {
     CreateArrayDispatch<ArrayNoArgumentConstructorStub>(masm, mode);
   } else if (argument_count() == ONE) {
     CreateArrayDispatchOneArgument(masm, mode);
   } else if (argument_count() == MORE_THAN_ONE) {
-    CreateArrayDispatch<ArrayNArgumentsConstructorStub>(masm, mode);
+    ArrayNArgumentsConstructorStub stub(masm->isolate());
+    __ TailCallStub(&stub);
   } else {
     UNREACHABLE();
   }
@@ -4166,7 +4057,7 @@
   __ TailCallStub(&stub1);
 
   __ bind(&not_one_case);
-  InternalArrayNArgumentsConstructorStub stubN(isolate(), kind);
+  ArrayNArgumentsConstructorStub stubN(isolate());
   __ TailCallStub(&stubN);
 }
 
@@ -4475,8 +4366,11 @@
     __ mov(eax, edi);
     __ Ret();
 
-    // Fall back to %AllocateInNewSpace.
+    // Fall back to %AllocateInNewSpace (if not too big).
+    Label too_big_for_new_space;
     __ bind(&allocate);
+    __ cmp(ecx, Immediate(Page::kMaxRegularHeapObjectSize));
+    __ j(greater, &too_big_for_new_space);
     {
       FrameScope scope(masm, StackFrame::INTERNAL);
       __ SmiTag(ecx);
@@ -4489,6 +4383,22 @@
       __ Pop(eax);
     }
     __ jmp(&done_allocate);
+
+    // Fall back to %NewRestParameter.
+    __ bind(&too_big_for_new_space);
+    __ PopReturnAddressTo(ecx);
+    // We reload the function from the caller frame due to register pressure
+    // within this stub. This is the slow path, hence reloading is preferable.
+    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(ebp, StandardFrameConstants::kCallerFPOffset));
+      __ Push(Operand(edx, StandardFrameConstants::kFunctionOffset));
+    } else {
+      __ Push(Operand(ebp, StandardFrameConstants::kFunctionOffset));
+    }
+    __ PushReturnAddressFrom(ecx);
+    __ TailCallRuntime(Runtime::kNewRestParameter);
   }
 }
 
@@ -4843,8 +4753,11 @@
   __ mov(eax, edi);
   __ Ret();
 
-  // Fall back to %AllocateInNewSpace.
+  // Fall back to %AllocateInNewSpace (if not too big).
+  Label too_big_for_new_space;
   __ bind(&allocate);
+  __ cmp(ecx, Immediate(Page::kMaxRegularHeapObjectSize));
+  __ j(greater, &too_big_for_new_space);
   {
     FrameScope scope(masm, StackFrame::INTERNAL);
     __ SmiTag(ecx);
@@ -4857,39 +4770,24 @@
     __ Pop(eax);
   }
   __ jmp(&done_allocate);
-}
 
-void LoadGlobalViaContextStub::Generate(MacroAssembler* masm) {
-  Register context_reg = esi;
-  Register slot_reg = ebx;
-  Register result_reg = eax;
-  Label slow_case;
-
-  // Go up context chain to the script context.
-  for (int i = 0; i < depth(); ++i) {
-    __ mov(result_reg, ContextOperand(context_reg, Context::PREVIOUS_INDEX));
-    context_reg = result_reg;
+  // Fall back to %NewStrictArguments.
+  __ bind(&too_big_for_new_space);
+  __ PopReturnAddressTo(ecx);
+  // We reload the function from the caller frame due to register pressure
+  // within this stub. This is the slow path, hence reloading is preferable.
+  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(ebp, StandardFrameConstants::kCallerFPOffset));
+    __ Push(Operand(edx, StandardFrameConstants::kFunctionOffset));
+  } else {
+    __ Push(Operand(ebp, StandardFrameConstants::kFunctionOffset));
   }
-
-  // Load the PropertyCell value at the specified slot.
-  __ mov(result_reg, ContextOperand(context_reg, slot_reg));
-  __ mov(result_reg, FieldOperand(result_reg, PropertyCell::kValueOffset));
-
-  // Check that value is not the_hole.
-  __ CompareRoot(result_reg, Heap::kTheHoleValueRootIndex);
-  __ j(equal, &slow_case, Label::kNear);
-  __ Ret();
-
-  // Fallback to the runtime.
-  __ bind(&slow_case);
-  __ SmiTag(slot_reg);
-  __ Pop(result_reg);  // Pop return address.
-  __ Push(slot_reg);
-  __ Push(result_reg);  // Push return address.
-  __ TailCallRuntime(Runtime::kLoadGlobalViaContext);
+  __ PushReturnAddressFrom(ecx);
+  __ TailCallRuntime(Runtime::kNewStrictArguments);
 }
 
-
 void StoreGlobalViaContextStub::Generate(MacroAssembler* masm) {
   Register context_reg = esi;
   Register slot_reg = ebx;
diff --git a/src/x87/code-stubs-x87.h b/src/x87/code-stubs-x87.h
index 39a4603..6290cfe 100644
--- a/src/x87/code-stubs-x87.h
+++ b/src/x87/code-stubs-x87.h
@@ -298,8 +298,8 @@
                                   Register r2,
                                   Register r3) {
       for (int i = 0; i < Register::kNumRegisters; i++) {
-        Register candidate = Register::from_code(i);
-        if (candidate.IsAllocatable()) {
+        if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(i)) {
+          Register candidate = Register::from_code(i);
           if (candidate.is(ecx)) continue;
           if (candidate.is(r1)) continue;
           if (candidate.is(r2)) continue;
diff --git a/src/x87/codegen-x87.cc b/src/x87/codegen-x87.cc
index 8112d11..5cda23d 100644
--- a/src/x87/codegen-x87.cc
+++ b/src/x87/codegen-x87.cc
@@ -33,10 +33,6 @@
 
 #define __ masm.
 
-UnaryMathFunctionWithIsolate CreateExpFunction(Isolate* isolate) {
-  return nullptr;
-}
-
 
 UnaryMathFunctionWithIsolate CreateSqrtFunction(Isolate* isolate) {
   size_t actual_size;
@@ -269,6 +265,7 @@
 
   __ push(eax);
   __ push(ebx);
+  __ push(esi);
 
   __ mov(edi, FieldOperand(edi, FixedArray::kLengthOffset));
 
@@ -301,8 +298,9 @@
 
   // Call into runtime if GC is required.
   __ bind(&gc_required);
+
   // Restore registers before jumping into runtime.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
+  __ pop(esi);
   __ pop(ebx);
   __ pop(eax);
   __ jmp(fail);
@@ -338,12 +336,11 @@
   __ sub(edi, Immediate(Smi::FromInt(1)));
   __ j(not_sign, &loop);
 
+  // Restore registers.
+  __ pop(esi);
   __ pop(ebx);
   __ pop(eax);
 
-  // Restore esi.
-  __ mov(esi, Operand(ebp, StandardFrameConstants::kContextOffset));
-
   __ bind(&only_change_map);
   // eax: value
   // ebx: target map
diff --git a/src/x87/deoptimizer-x87.cc b/src/x87/deoptimizer-x87.cc
index 9d4645e..15dabb9 100644
--- a/src/x87/deoptimizer-x87.cc
+++ b/src/x87/deoptimizer-x87.cc
@@ -277,8 +277,7 @@
   }
 
   int double_regs_offset = FrameDescription::double_registers_offset();
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   // Fill in the double input registers.
   for (int i = 0; i < X87Register::kMaxNumAllocatableRegisters; ++i) {
     int code = config->GetAllocatableDoubleCode(i);
diff --git a/src/x87/disasm-x87.cc b/src/x87/disasm-x87.cc
index 2a90df9..be9167b 100644
--- a/src/x87/disasm-x87.cc
+++ b/src/x87/disasm-x87.cc
@@ -920,6 +920,10 @@
       return "shrd";  // 3-operand version.
     case 0xAB:
       return "bts";
+    case 0xB0:
+      return "cmpxchg_b";
+    case 0xB1:
+      return "cmpxchg";
     case 0xBC:
       return "bsf";
     case 0xBD:
@@ -943,7 +947,11 @@
   } else if (*data == 0x2E /*cs*/) {
     branch_hint = "predicted not taken";
     data++;
+  } else if (*data == 0xF0 /*lock*/) {
+    AppendToBuffer("lock ");
+    data++;
   }
+
   bool processed = true;  // Will be set to false if the current instruction
                           // is not in 'instructions' table.
   const InstructionDesc& idesc = instruction_table_->Get(*data);
@@ -1162,6 +1170,24 @@
             } else {
               AppendToBuffer(",%s,cl", NameOfCPURegister(regop));
             }
+          } else if (f0byte == 0xB0) {
+            // cmpxchg_b
+            data += 2;
+            AppendToBuffer("%s ", f0mnem);
+            int mod, regop, rm;
+            get_modrm(*data, &mod, &regop, &rm);
+            data += PrintRightOperand(data);
+            AppendToBuffer(",%s", NameOfByteCPURegister(regop));
+          } else if (f0byte == 0xB1) {
+            // cmpxchg
+            data += 2;
+            data += PrintOperands(f0mnem, OPER_REG_OP_ORDER, data);
+          } else if (f0byte == 0xBC) {
+            data += 2;
+            int mod, regop, rm;
+            get_modrm(*data, &mod, &regop, &rm);
+            AppendToBuffer("%s %s,", f0mnem, NameOfCPURegister(regop));
+            data += PrintRightOperand(data);
           } else if (f0byte == 0xBD) {
             data += 2;
             int mod, regop, rm;
@@ -1272,9 +1298,8 @@
           data++;
           int mod, regop, rm;
           get_modrm(*data, &mod, &regop, &rm);
-          AppendToBuffer("xchg_w ");
+          AppendToBuffer("xchg_w %s,", NameOfCPURegister(regop));
           data += PrintRightOperand(data);
-          AppendToBuffer(",%s", NameOfCPURegister(regop));
         } else if (*data == 0x89) {
           data++;
           int mod, regop, rm;
@@ -1513,6 +1538,9 @@
                            NameOfXMMRegister(regop),
                            NameOfXMMRegister(rm));
             data++;
+          } else if (*data == 0xB1) {
+            data++;
+            data += PrintOperands("cmpxchg_w", OPER_REG_OP_ORDER, data);
           } else {
             UnimplementedInstruction();
           }
@@ -1752,7 +1780,7 @@
 
 
 const char* NameConverter::NameOfAddress(byte* addr) const {
-  v8::internal::SNPrintF(tmp_buffer_, "%p", addr);
+  v8::internal::SNPrintF(tmp_buffer_, "%p", static_cast<void*>(addr));
   return tmp_buffer_.start();
 }
 
@@ -1815,7 +1843,7 @@
     buffer[0] = '\0';
     byte* prev_pc = pc;
     pc += d.InstructionDecode(buffer, pc);
-    fprintf(f, "%p", prev_pc);
+    fprintf(f, "%p", static_cast<void*>(prev_pc));
     fprintf(f, "    ");
 
     for (byte* bp = prev_pc; bp < pc; bp++) {
diff --git a/src/x87/interface-descriptors-x87.cc b/src/x87/interface-descriptors-x87.cc
index 260d871..99664dc 100644
--- a/src/x87/interface-descriptors-x87.cc
+++ b/src/x87/interface-descriptors-x87.cc
@@ -11,6 +11,14 @@
 
 const Register CallInterfaceDescriptor::ContextRegister() { return esi; }
 
+void CallInterfaceDescriptor::DefaultInitializePlatformSpecific(
+    CallInterfaceDescriptorData* data, int register_parameter_count) {
+  const Register default_stub_registers[] = {eax, ebx, ecx, edx, edi};
+  CHECK_LE(static_cast<size_t>(register_parameter_count),
+           arraysize(default_stub_registers));
+  data->InitializePlatformSpecific(register_parameter_count,
+                                   default_stub_registers);
+}
 
 const Register LoadDescriptor::ReceiverRegister() { return edx; }
 const Register LoadDescriptor::NameRegister() { return ecx; }
@@ -44,9 +52,6 @@
 const Register StoreTransitionDescriptor::MapRegister() { return ebx; }
 
 
-const Register LoadGlobalViaContextDescriptor::SlotRegister() { return ebx; }
-
-
 const Register StoreGlobalViaContextDescriptor::SlotRegister() { return ebx; }
 const Register StoreGlobalViaContextDescriptor::ValueRegister() { return eax; }
 
@@ -68,8 +73,6 @@
 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) {
@@ -257,43 +260,27 @@
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-void ArrayConstructorConstantArgCountDescriptor::InitializePlatformSpecific(
+void ArraySingleArgumentConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // register state
   // eax -- number of arguments
   // edi -- function
   // ebx -- allocation site with elements kind
-  Register registers[] = {edi, ebx};
+  Register registers[] = {edi, ebx, eax};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void ArrayConstructorDescriptor::InitializePlatformSpecific(
+void ArrayNArgumentsConstructorDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {edi, ebx, eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-
-void InternalArrayConstructorConstantArgCountDescriptor::
-    InitializePlatformSpecific(CallInterfaceDescriptorData* data) {
   // register state
   // eax -- number of arguments
   // edi -- function
-  Register registers[] = {edi};
+  // ebx -- allocation site with elements kind
+  Register registers[] = {edi, ebx, eax};
   data->InitializePlatformSpecific(arraysize(registers), registers, NULL);
 }
 
-
-void InternalArrayConstructorDescriptor::InitializePlatformSpecific(
-    CallInterfaceDescriptorData* data) {
-  // stack param count needs (constructor pointer, and single argument)
-  Register registers[] = {edi, eax};
-  data->InitializePlatformSpecific(arraysize(registers), registers);
-}
-
-void FastArrayPushDescriptor::InitializePlatformSpecific(
+void VarArgFunctionDescriptor::InitializePlatformSpecific(
     CallInterfaceDescriptorData* data) {
   // stack param count needs (arg count)
   Register registers[] = {eax};
diff --git a/src/x87/macro-assembler-x87.cc b/src/x87/macro-assembler-x87.cc
index 3cee0ea..ef96912 100644
--- a/src/x87/macro-assembler-x87.cc
+++ b/src/x87/macro-assembler-x87.cc
@@ -1043,8 +1043,8 @@
 
 void MacroAssembler::EmitLoadTypeFeedbackVector(Register vector) {
   mov(vector, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
-  mov(vector, FieldOperand(vector, JSFunction::kSharedFunctionInfoOffset));
-  mov(vector, FieldOperand(vector, SharedFunctionInfo::kFeedbackVectorOffset));
+  mov(vector, FieldOperand(vector, JSFunction::kLiteralsOffset));
+  mov(vector, FieldOperand(vector, LiteralsArray::kFeedbackVectorOffset));
 }
 
 
@@ -2302,10 +2302,11 @@
                                              const ParameterCount& expected,
                                              const ParameterCount& actual) {
   Label skip_flooding;
-  ExternalReference step_in_enabled =
-      ExternalReference::debug_step_in_enabled_address(isolate());
-  cmpb(Operand::StaticVariable(step_in_enabled), Immediate(0));
-  j(equal, &skip_flooding);
+  ExternalReference last_step_action =
+      ExternalReference::debug_last_step_action_address(isolate());
+  STATIC_ASSERT(StepFrame > StepIn);
+  cmpb(Operand::StaticVariable(last_step_action), Immediate(StepIn));
+  j(less, &skip_flooding);
   {
     FrameScope frame(this,
                      has_frame() ? StackFrame::NONE : StackFrame::INTERNAL);
@@ -2641,7 +2642,7 @@
 
 
 void MacroAssembler::Move(Register dst, const Immediate& x) {
-  if (x.is_zero()) {
+  if (x.is_zero() && RelocInfo::IsNone(x.rmode_)) {
     xor_(dst, dst);  // Shorter than mov of 32-bit immediate 0.
   } else {
     mov(dst, x);
diff --git a/src/zone.h b/src/zone.h
index fa21155..29055cb 100644
--- a/src/zone.h
+++ b/src/zone.h
@@ -8,9 +8,9 @@
 #include <limits>
 
 #include "src/base/accounting-allocator.h"
+#include "src/base/hashmap.h"
 #include "src/base/logging.h"
 #include "src/globals.h"
-#include "src/hashmap.h"
 #include "src/list.h"
 #include "src/splay-tree.h"
 
@@ -244,8 +244,7 @@
   void operator delete(void* pointer, Zone* zone) { UNREACHABLE(); }
 };
 
-
-typedef TemplateHashMapImpl<ZoneAllocationPolicy> ZoneHashMap;
+typedef base::TemplateHashMapImpl<ZoneAllocationPolicy> ZoneHashMap;
 
 }  // namespace internal
 }  // namespace v8
diff --git a/test/BUILD.gn b/test/BUILD.gn
new file mode 100644
index 0000000..271df0d
--- /dev/null
+++ b/test/BUILD.gn
@@ -0,0 +1,203 @@
+# 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("../gni/isolate.gni")
+
+group("gn_all") {
+  testonly = true
+
+  deps = [
+    ":default_tests",
+  ]
+
+  if (host_os != "mac" || !is_android) {
+    # These items don't compile for Android on Mac.
+    deps += [
+      "cctest:cctest",
+      "cctest:generate-bytecode-expectations",
+      "unittests:unittests",
+    ]
+  }
+
+  if (v8_test_isolation_mode != "noop") {
+    deps += [
+      ":bot_default_run",
+      ":benchmarks_run",
+      ":default_run",
+      ":mozilla_run",
+      ":simdjs_run",
+      "test262:test262_run",
+    ]
+  }
+}
+
+###############################################################################
+# Test groups
+#
+
+group("default_tests") {
+  testonly = true
+
+  if (v8_test_isolation_mode != "noop") {
+    deps = [
+      ":cctest_run",
+      ":fuzzer_run",
+      ":intl_run",
+      ":message_run",
+      ":mjsunit_run",
+      ":preparser_run",
+      ":unittests_run",
+    ]
+  }
+}
+
+v8_isolate_run("bot_default") {
+  deps = [
+    ":default_tests", 
+    ":webkit_run",
+  ]
+
+  isolate = "bot_default.isolate"
+}
+
+v8_isolate_run("default") {
+  deps = [
+    ":default_tests",
+  ]
+
+  isolate = "default.isolate"
+}
+
+v8_isolate_run("ignition") {
+  deps = [
+    ":cctest_run",
+    ":mjsunit_run",
+  ]
+
+  isolate = "ignition.isolate"
+}
+
+v8_isolate_run("optimize_for_size") {
+  deps = [
+    ":cctest_run",
+    ":intl_run",
+    ":mjsunit_run",
+    ":webkit_run",
+  ]
+
+  isolate = "optimize_for_size.isolate"
+}
+
+v8_isolate_run("perf") {
+  deps = [
+    ":cctest_exe_run",
+    "..:d8_run",
+  ]
+
+  isolate = "perf.isolate"
+}
+
+###############################################################################
+# Subtests
+#
+
+v8_isolate_run("benchmarks") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "benchmarks/benchmarks.isolate"
+}
+
+v8_isolate_run("cctest") {
+  deps = [
+    ":cctest_exe_run",
+  ]
+
+  isolate = "cctest/cctest.isolate"
+}
+
+v8_isolate_run("cctest_exe") {
+  deps = [
+    "cctest:cctest",
+  ]
+
+  isolate = "cctest/cctest_exe.isolate"
+}
+
+v8_isolate_run("fuzzer") {
+  deps = [
+    "..:v8_simple_json_fuzzer",
+    "..:v8_simple_parser_fuzzer",
+    "..:v8_simple_regexp_fuzzer",
+    "..:v8_simple_wasm_fuzzer",
+    "..:v8_simple_wasm_asmjs_fuzzer",
+  ]
+
+  isolate = "fuzzer/fuzzer.isolate"
+}
+
+v8_isolate_run("intl") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "intl/intl.isolate"
+}
+
+v8_isolate_run("message") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "message/message.isolate"
+}
+
+v8_isolate_run("mjsunit") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "mjsunit/mjsunit.isolate"
+}
+
+v8_isolate_run("mozilla") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "mozilla/mozilla.isolate"
+}
+
+v8_isolate_run("preparser") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "preparser/preparser.isolate"
+}
+
+v8_isolate_run("simdjs") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "simdjs/simdjs.isolate"
+}
+
+v8_isolate_run("unittests") {
+  deps = [
+    "unittests:unittests",
+  ]
+
+  isolate = "unittests/unittests.isolate"
+}
+
+v8_isolate_run("webkit") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "webkit/webkit.isolate"
+}
diff --git a/test/cctest/BUILD.gn b/test/cctest/BUILD.gn
new file mode 100644
index 0000000..38738b7
--- /dev/null
+++ b/test/cctest/BUILD.gn
@@ -0,0 +1,402 @@
+# 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.
+
+# Please keep this file in sync with cctest.gyp.
+
+import("../../gni/v8.gni")
+
+v8_executable("cctest") {
+  testonly = true
+
+  sources = [
+    "$target_gen_dir/resources.cc",
+    "cctest.cc",
+    "compiler/c-signature.h",
+    "compiler/code-assembler-tester.h",
+    "compiler/codegen-tester.cc",
+    "compiler/codegen-tester.h",
+    "compiler/function-tester.h",
+    "compiler/graph-builder-tester.h",
+    "compiler/test-basic-block-profiler.cc",
+    "compiler/test-branch-combine.cc",
+    "compiler/test-code-assembler.cc",
+    "compiler/test-gap-resolver.cc",
+    "compiler/test-graph-visualizer.cc",
+    "compiler/test-instruction.cc",
+    "compiler/test-js-constant-cache.cc",
+    "compiler/test-js-context-specialization.cc",
+    "compiler/test-js-typed-lowering.cc",
+    "compiler/test-jump-threading.cc",
+    "compiler/test-linkage.cc",
+    "compiler/test-loop-analysis.cc",
+    "compiler/test-loop-assignment-analysis.cc",
+    "compiler/test-machine-operator-reducer.cc",
+    "compiler/test-multiple-return.cc",
+    "compiler/test-node.cc",
+    "compiler/test-operator.cc",
+    "compiler/test-osr.cc",
+    "compiler/test-representation-change.cc",
+    "compiler/test-run-bytecode-graph-builder.cc",
+    "compiler/test-run-calls-to-external-references.cc",
+    "compiler/test-run-deopt.cc",
+    "compiler/test-run-inlining.cc",
+    "compiler/test-run-intrinsics.cc",
+    "compiler/test-run-jsbranches.cc",
+    "compiler/test-run-jscalls.cc",
+    "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",
+    "expression-type-collector.cc",
+    "expression-type-collector.h",
+    "gay-fixed.cc",
+    "gay-precision.cc",
+    "gay-shortest.cc",
+    "heap/heap-tester.h",
+    "heap/heap-utils.cc",
+    "heap/heap-utils.h",
+    "heap/test-alloc.cc",
+    "heap/test-array-buffer-tracker.cc",
+    "heap/test-compaction.cc",
+    "heap/test-heap.cc",
+    "heap/test-incremental-marking.cc",
+    "heap/test-lab.cc",
+    "heap/test-mark-compact.cc",
+    "heap/test-page-promotion.cc",
+    "heap/test-spaces.cc",
+    "interpreter/bytecode-expectations-printer.cc",
+    "interpreter/bytecode-expectations-printer.h",
+    "interpreter/interpreter-tester.cc",
+    "interpreter/source-position-matcher.cc",
+    "interpreter/source-position-matcher.h",
+    "interpreter/test-bytecode-generator.cc",
+    "interpreter/test-interpreter-intrinsics.cc",
+    "interpreter/test-interpreter.cc",
+    "interpreter/test-source-positions.cc",
+    "libsampler/test-sampler.cc",
+    "print-extension.cc",
+    "profiler-extension.cc",
+    "test-access-checks.cc",
+    "test-accessors.cc",
+    "test-api-accessors.cc",
+    "test-api-fast-accessor-builder.cc",
+    "test-api-interceptors.cc",
+    "test-api.cc",
+    "test-api.h",
+    "test-array-list.cc",
+    "test-asm-validator.cc",
+    "test-ast-expression-visitor.cc",
+    "test-ast.cc",
+    "test-atomicops.cc",
+    "test-bignum-dtoa.cc",
+    "test-bignum.cc",
+    "test-bit-vector.cc",
+    "test-circular-queue.cc",
+    "test-code-cache.cc",
+    "test-code-layout.cc",
+    "test-code-stub-assembler.cc",
+    "test-compiler.cc",
+    "test-constantpool.cc",
+    "test-conversions.cc",
+    "test-cpu-profiler.cc",
+    "test-date.cc",
+    "test-debug.cc",
+    "test-decls.cc",
+    "test-deoptimization.cc",
+    "test-dictionary.cc",
+    "test-diy-fp.cc",
+    "test-double.cc",
+    "test-dtoa.cc",
+    "test-eh-frame-hdr.cc",
+    "test-elements-kind.cc",
+    "test-fast-dtoa.cc",
+    "test-feedback-vector.cc",
+    "test-field-type-tracking.cc",
+    "test-fixed-dtoa.cc",
+    "test-flags.cc",
+    "test-func-name-inference.cc",
+    "test-global-handles.cc",
+    "test-global-object.cc",
+    "test-hashing.cc",
+    "test-hashmap.cc",
+    "test-heap-profiler.cc",
+    "test-hydrogen-types.cc",
+    "test-identity-map.cc",
+    "test-inobject-slack-tracking.cc",
+    "test-list.cc",
+    "test-liveedit.cc",
+    "test-lockers.cc",
+    "test-log.cc",
+    "test-mementos.cc",
+    "test-parsing.cc",
+    "test-platform.cc",
+    "test-profile-generator.cc",
+    "test-random-number-generator.cc",
+    "test-receiver-check-hidden-prototype.cc",
+    "test-regexp.cc",
+    "test-reloc-info.cc",
+    "test-representation.cc",
+    "test-sampler-api.cc",
+    "test-serialize.cc",
+    "test-simd.cc",
+    "test-strings.cc",
+    "test-strtod.cc",
+    "test-symbols.cc",
+    "test-thread-termination.cc",
+    "test-threads.cc",
+    "test-trace-event.cc",
+    "test-transitions.cc",
+    "test-typedarrays.cc",
+    "test-types.cc",
+    "test-unbound-queue.cc",
+    "test-unboxed-doubles.cc",
+    "test-unique.cc",
+    "test-unscopables-hidden-prototype.cc",
+    "test-usecounters.cc",
+    "test-utils.cc",
+    "test-version.cc",
+    "test-weakmaps.cc",
+    "test-weaksets.cc",
+    "trace-extension.cc",
+    "wasm/test-run-wasm-64.cc",
+    "wasm/test-run-wasm-asmjs.cc",
+    "wasm/test-run-wasm-interpreter.cc",
+    "wasm/test-run-wasm-js.cc",
+    "wasm/test-run-wasm-module.cc",
+    "wasm/test-run-wasm-relocation.cc",
+    "wasm/test-run-wasm.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",
+  ]
+
+  if (v8_target_cpu == "arm") {
+    sources += [
+      "test-assembler-arm.cc",
+      "test-code-stubs-arm.cc",
+      "test-code-stubs.cc",
+      "test-disasm-arm.cc",
+      "test-macro-assembler-arm.cc",
+      "test-run-wasm-relocation-arm.cc",
+    ]
+  } else if (v8_target_cpu == "arm64") {
+    sources += [
+      "test-assembler-arm64.cc",
+      "test-code-stubs-arm64.cc",
+      "test-code-stubs.cc",
+      "test-disasm-arm64.cc",
+      "test-fuzz-arm64.cc",
+      "test-javascript-arm64.cc",
+      "test-js-arm64-variables.cc",
+      "test-run-wasm-relocation-arm64.cc",
+      "test-utils-arm64.cc",
+    ]
+  } else if (v8_target_cpu == "x86") {
+    sources += [
+      "test-assembler-ia32.cc",
+      "test-code-stubs-ia32.cc",
+      "test-code-stubs.cc",
+      "test-disasm-ia32.cc",
+      "test-log-stack-tracer.cc",
+      "test-macro-assembler-ia32.cc",
+      "test-run-wasm-relocation-ia32.cc",
+    ]
+  } else if (v8_target_cpu == "mips") {
+    sources += [
+      "test-assembler-mips.cc",
+      "test-code-stubs-mips.cc",
+      "test-code-stubs.cc",
+      "test-disasm-mips.cc",
+      "test-macro-assembler-mips.cc",
+    ]
+  } else if (v8_target_cpu == "mipsel") {
+    sources += [
+      "test-assembler-mips.cc",
+      "test-code-stubs-mips.cc",
+      "test-code-stubs.cc",
+      "test-disasm-mips.cc",
+      "test-macro-assembler-mips.cc",
+    ]
+  } else if (v8_target_cpu == "mips64") {
+    sources += [
+      "test-assembler-mips64.cc",
+      "test-code-stubs-mips64.cc",
+      "test-code-stubs.cc",
+      "test-disasm-mips64.cc",
+      "test-macro-assembler-mips64.cc",
+    ]
+  } else if (v8_target_cpu == "mips64el") {
+    sources += [
+      "test-assembler-mips64.cc",
+      "test-code-stubs-mips64.cc",
+      "test-code-stubs.cc",
+      "test-disasm-mips64.cc",
+      "test-macro-assembler-mips64.cc",
+    ]
+  } else if (v8_target_cpu == "x64") {
+    sources += [
+      "test-assembler-x64.cc",
+      "test-code-stubs-x64.cc",
+      "test-code-stubs.cc",
+      "test-disasm-x64.cc",
+      "test-log-stack-tracer.cc",
+      "test-macro-assembler-x64.cc",
+      "test-run-wasm-relocation-x64.cc",
+    ]
+  } else if (v8_target_cpu == "x87") {
+    sources += [
+      "test-assembler-x87.cc",
+      "test-code-stubs-x87.cc",
+      "test-code-stubs.cc",
+      "test-disasm-x87.cc",
+      "test-log-stack-tracer.cc",
+      "test-macro-assembler-x87.cc",
+      "test-run-wasm-relocation-x87.cc",
+    ]
+  } else if (v8_target_cpu == "ppc" || v8_target_cpu == "ppc64") {
+    sources += [
+      "test-assembler-ppc.cc",
+      "test-code-stubs.cc",
+      "test-disasm-ppc.cc",
+    ]
+  } else if (v8_target_cpu == "s390" || v8_target_cpu == "s390x") {
+    sources += [
+      "test-assembler-s390.cc",
+      "test-code-stubs.cc",
+      "test-disasm-s390.cc",
+    ]
+  }
+
+  if (is_linux) {
+    # TODO(machenbach): Translate 'or OS=="qnx"' from gyp.
+    sources += [ "test-platform-linux.cc" ]
+  } else if (is_win) {
+    sources += [ "test-platform-win32.cc" ]
+    # TODO(machenbach): Translate from gyp.
+    # "msvs_settings": {
+    #   "VCCLCompilerTool": {
+    #     # MSVS wants this for gay-{precision,shortest}.cc.
+    #     "AdditionalOptions": ["/bigobj"],
+    #   },
+    # },
+  }
+
+  configs = [
+    "../..:external_config",
+    "../..:internal_config_base",
+  ]
+
+  # TODO(machenbach): Translate from gyp.
+  #['v8_target_cpu=="ppc" or v8_target_cpu=="ppc64" \
+  #  or v8_target_cpu=="arm" or v8_target_cpu=="arm64" \
+  #  or v8_target_cpu=="s390" or v8_target_cpu=="s390x"', {
+  #  # disable fmadd/fmsub so that expected results match generated code in
+  #  # RunFloat64MulAndFloat64Add1 and friends.
+  #  'cflags': ['-ffp-contract=off'],
+  #}],
+
+  # TODO(machenbach): Translate from gyp.
+  #["OS=="aix"", {
+  #  "ldflags": [ "-Wl,-bbigtoc" ],
+  #}],
+
+  deps = [
+    ":resources",
+    "../..:v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  if (is_component_build) {
+    # cctest can't be built against a shared library, so we
+    # need to depend on the underlying static target in that case.
+    deps += [ "../..:v8_maybe_snapshot" ]
+  } else {
+    deps += [ "../..:v8" ]
+  }
+
+  if (is_win) {
+    # This warning is benignly triggered by the U16 and U32 macros in
+    # bytecode-utils.h.
+    # C4309: 'static_cast': truncation of constant value
+    cflags = [ "/wd4309" ]
+
+    # Suppress warnings about importing locally defined symbols.
+    if (is_component_build) {
+      ldflags = [
+        "/ignore:4049",
+        "/ignore:4217",
+      ]
+    }
+  }
+}
+
+action("resources") {
+  visibility = [ ":*" ]  # Only targets in this file can depend on this.
+
+  script = "../../tools/js2c.py"
+
+  # The script depends on this other script, this rule causes a rebuild if it
+  # changes.
+  inputs = [
+    "../../tools/jsmin.py",
+  ]
+
+  # NOSORT
+  sources = [
+    "../../tools/splaytree.js",
+    "../../tools/codemap.js",
+    "../../tools/csvparser.js",
+    "../../tools/consarray.js",
+    "../../tools/profile.js",
+    "../../tools/profile_view.js",
+    "../../tools/logreader.js",
+    "log-eq-of-logging-and-traversal.js",
+  ]
+
+  outputs = [
+    "$target_gen_dir/resources.cc",
+  ]
+
+  args = [
+    rebase_path("$target_gen_dir/resources.cc", root_build_dir),
+    "TEST",
+  ]
+  args += rebase_path(sources, root_build_dir)
+}
+
+v8_executable("generate-bytecode-expectations") {
+  sources = [
+    "interpreter/bytecode-expectations-printer.cc",
+    "interpreter/bytecode-expectations-printer.h",
+    "interpreter/generate-bytecode-expectations.cc",
+  ]
+
+  configs = [
+    "../..:external_config",
+    "../..:internal_config_base",
+  ]
+
+  deps = [
+    "../..:v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+  ]
+
+  if (is_component_build) {
+    # Same as cctest, we need to depend on the underlying static target.
+    deps += [ "../..:v8_maybe_snapshot" ]
+  } else {
+    deps += [ "../..:v8" ]
+  }
+}
diff --git a/test/cctest/cctest.cc b/test/cctest/cctest.cc
index 5681f70..312001a 100644
--- a/test/cctest/cctest.cc
+++ b/test/cctest/cctest.cc
@@ -186,7 +186,7 @@
     }
   }
 
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation(argv[0]);
   v8::Platform* platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform);
   v8::internal::FlagList::SetFlagsFromCommandLine(&argc, argv, true);
diff --git a/test/cctest/cctest.gyp b/test/cctest/cctest.gyp
index e33ee81..c71bc9f 100644
--- a/test/cctest/cctest.gyp
+++ b/test/cctest/cctest.gyp
@@ -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.
 
+# Please keep this file in sync with BUILD.gn.
+
 {
   'variables': {
     'v8_code': 1,
@@ -47,13 +49,14 @@
         'compiler/c-signature.h',
         'compiler/codegen-tester.cc',
         'compiler/codegen-tester.h',
+        'compiler/code-assembler-tester.h',
         'compiler/function-tester.h',
         'compiler/graph-builder-tester.h',
         'compiler/test-basic-block-profiler.cc',
         'compiler/test-branch-combine.cc',
-        'compiler/test-code-stub-assembler.cc',
         'compiler/test-gap-resolver.cc',
         'compiler/test-graph-visualizer.cc',
+        'compiler/test-code-assembler.cc',
         'compiler/test-instruction.cc',
         'compiler/test-js-context-specialization.cc',
         'compiler/test-js-constant-cache.cc',
@@ -90,25 +93,33 @@
         'expression-type-collector.cc',
         'expression-type-collector.h',
         'interpreter/interpreter-tester.cc',
+        'interpreter/source-position-matcher.cc',
+        'interpreter/source-position-matcher.h',
         'interpreter/test-bytecode-generator.cc',
         'interpreter/test-interpreter.cc',
         'interpreter/test-interpreter-intrinsics.cc',
+        'interpreter/test-source-positions.cc',
         'interpreter/bytecode-expectations-printer.cc',
         'interpreter/bytecode-expectations-printer.h',
         'gay-fixed.cc',
         'gay-precision.cc',
         'gay-shortest.cc',
         'heap/heap-tester.h',
+        'heap/heap-utils.cc',
+        'heap/heap-utils.h',
         'heap/test-alloc.cc',
+        'heap/test-array-buffer-tracker.cc',
         'heap/test-compaction.cc',
         'heap/test-heap.cc',
         'heap/test-incremental-marking.cc',
         'heap/test-lab.cc',
         'heap/test-mark-compact.cc',
+        'heap/test-page-promotion.cc',
         'heap/test-spaces.cc',
-        'heap/utils-inl.h',
+        'libsampler/test-sampler.cc',
         'print-extension.cc',
         'profiler-extension.cc',
+        'test-access-checks.cc',
         'test-accessors.cc',
         'test-api.cc',
         'test-api.h',
@@ -124,6 +135,9 @@
         'test-bignum-dtoa.cc',
         'test-bit-vector.cc',
         'test-circular-queue.cc',
+        'test-code-cache.cc',
+        'test-code-layout.cc',
+        'test-code-stub-assembler.cc',
         'test-compiler.cc',
         'test-constantpool.cc',
         'test-conversions.cc',
@@ -137,6 +151,7 @@
         'test-double.cc',
         'test-dtoa.cc',
         'test-elements-kind.cc',
+        'test-eh-frame-hdr.cc',
         'test-fast-dtoa.cc',
         'test-feedback-vector.cc',
         'test-field-type-tracking.cc',
@@ -180,6 +195,7 @@
         'test-unboxed-doubles.cc',
         'test-unique.cc',
         'test-unscopables-hidden-prototype.cc',
+        'test-usecounters.cc',
         'test-utils.cc',
         'test-version.cc',
         'test-weakmaps.cc',
@@ -188,10 +204,12 @@
         'wasm/test-run-wasm.cc',
         'wasm/test-run-wasm-64.cc',
         'wasm/test-run-wasm-asmjs.cc',
+        'wasm/test-run-wasm-interpreter.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-run-wasm-relocation.cc',
         'wasm/test-wasm-stack.cc',
         'wasm/test-wasm-trap-position.cc',
         'wasm/wasm-run-utils.h',
diff --git a/test/cctest/cctest.status b/test/cctest/cctest.status
index e1da00d..a669a83 100644
--- a/test/cctest/cctest.status
+++ b/test/cctest/cctest.status
@@ -150,6 +150,7 @@
 
   # TODO(mythria,4780): Related to type feedback support for calls.
   'test-feedback-vector/VectorCallICStates': [PASS, NO_IGNITION],
+  'test-feedback-vector/VectorCallCounts': [PASS, NO_IGNITION],
   'test-compiler/FeedbackVectorPreservedAcrossRecompiles': [PASS, NO_IGNITION],
   'test-heap/WeakFunctionInConstructor': [PASS, NO_IGNITION],
   'test-heap/IncrementalMarkingClearsMonomorphicConstructor': [PASS, NO_IGNITION],
@@ -176,8 +177,8 @@
   '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]],
+  # BUG(4751). Flaky with ignition.
+  'test-cpu-profiler/JsNativeJsSample': [PASS, NO_IGNITION],
 }],  # ALWAYS
 
 ##############################################################################
@@ -303,10 +304,14 @@
   'test-run-wasm-module/Run_WasmModule_CheckMemoryIsZero': [SKIP],
   'test-run-wasm-module/Run_WasmModule_Global': [SKIP],
   'test-run-wasm/RunWasmCompiled_Int32LoadInt16_signext': [SKIP],
+  'test-run-wasm/RunWasmInterpreted_Int32LoadInt16_signext': [SKIP],
   'test-run-wasm/RunWasmCompiled_Int32LoadInt16_zeroext': [SKIP],
+  'test-run-wasm/RunWasmInterpreted_Int32LoadInt16_zeroext': [SKIP],
   'test-run-wasm/RunWasmCompiled_MixedGlobals': [SKIP],
+  'test-run-wasm/RunWasmInterpreted_MixedGlobals': [SKIP],
   'test-run-wasm-64/RunWasmCompiled_I64*': [SKIP],
   'test-run-wasm-64/RunWasmCompiled_LoadStoreI64_sx': [SKIP],
+  'test-run-wasm-64/RunWasmInterpreted_LoadStoreI64_sx': [SKIP],
   'test-run-wasm-64/Run_TestI64WasmRunner': [SKIP],
   'test-run-wasm-64/RunWasmCompiled_Call_Int64Sub': [SKIP],
   'test-run-wasm-64/RunWasmCompiled_MemI64_Sum': [SKIP],
@@ -386,7 +391,12 @@
   'test-run-machops/RunFloat64MulAndFloat64Add2': [SKIP],
   'test-run-machops/RunFloat64MulAndFloat64Sub1': [SKIP],
   'test-run-machops/RunFloat64MulAndFloat64Sub2': [SKIP],
+  'test-run-machops/RunFloat64Sin': [SKIP],
+  'test-run-machops/RunFloat64Cos': [SKIP],
+  'test-run-machops/RunFloat64Expm1': [SKIP],
+  'test-run-machops/RunFloat64Tan': [SKIP],
   'test-cpu-profiler/Inlining': [SKIP],
+  'test-gap-resolver/FuzzResolver': [SKIP],
 }],  # 'arch == x87'
 
 ##############################################################################
@@ -541,10 +551,6 @@
   'test-heap/TestCodeFlushingIncremental': [FAIL],
   'test-heap/TestCodeFlushingIncrementalAbort': [PASS, ['mode == debug or dcheck_always_on == True', FAIL]],
 
-  # TODO(rmcilroy,4766): Requires BytecodeGraphBuilder to track source position
-  # on nodes (behind --turbo_source_positions flag).
-  'test-cpu-profiler/TickLinesOptimized': [FAIL],
-
   # 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.
@@ -552,6 +558,7 @@
 
   # TODO(mythria,4780): Related to type feedback support for calls.
   'test-feedback-vector/VectorCallICStates': [FAIL],
+  'test-feedback-vector/VectorCallCounts': [FAIL],
   'test-compiler/FeedbackVectorPreservedAcrossRecompiles': [FAIL],
   'test-heap/WeakFunctionInConstructor': [FAIL],
   'test-heap/IncrementalMarkingClearsMonomorphicConstructor': [FAIL],
@@ -574,34 +581,8 @@
   # 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],
-  'test-run-inlining/InlineSurplusArgumentsDeopt': [FAIL],
-  'test-run-inlining/InlineTwice': [FAIL],
-  'test-run-inlining/InlineSurplusArgumentsObject': [FAIL],
-  'test-run-inlining/InlineTwiceDependentDiamond': [FAIL],
-  'test-run-inlining/InlineWithArguments': [FAIL],
-  'test-run-inlining/InlineLoopUnguardedTwice': [FAIL],
-  'test-run-inlining/InlineOmitArgumentsObject': [FAIL],
-  'test-run-inlining/InlineLoopUnguardedOnce': [FAIL],
-  'test-run-inlining/InlineOmitArgumentsDeopt': [FAIL],
-  'test-run-inlining/InlineTwiceDependentDiamondDifferent': [FAIL],
-  'test-run-inlining/SimpleInliningContext': [FAIL],
-  'test-run-inlining/InlineMutuallyRecursive': [FAIL],
-  'test-run-inlining/InlineLoopGuardedEmpty': [FAIL],
-  'test-run-inlining/InlineLoopGuardedOnce': [FAIL],
-  'test-run-inlining/InlineOmitArguments': [FAIL],
-  'test-run-inlining/SimpleInlining': [FAIL],
-  'test-run-inlining/InlineLoopUnguardedEmpty': [FAIL],
-  'test-run-inlining/InlineNestedBuiltin': [FAIL],
-  'test-run-inlining/InlineSurplusArguments': [FAIL],
-  'test-run-inlining/InlineBuiltin': [FAIL],
-  'test-run-inlining/InlineTwiceDependent': [FAIL],
-  'test-run-inlining/SimpleInliningContextDeopt': [FAIL],
-
-  # BUG(4751). Flaky with ignition and tsan.
-  'test-cpu-profiler/JsNativeJsSample': [PASS, ['tsan', SKIP]],
+  # BUG(4751). Flaky with Ignition.
+  'test-cpu-profiler/JsNativeJsSample': [SKIP],
 }],  # ignition or ignition_turbofan
 
 ]
diff --git a/test/cctest/compiler/code-assembler-tester.h b/test/cctest/compiler/code-assembler-tester.h
new file mode 100644
index 0000000..609a137
--- /dev/null
+++ b/test/cctest/compiler/code-assembler-tester.h
@@ -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.
+
+#include "src/handles.h"
+#include "src/interface-descriptors.h"
+#include "src/isolate.h"
+#include "test/cctest/compiler/function-tester.h"
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+class ZoneHolder {
+ public:
+  explicit ZoneHolder(Isolate* isolate) : zone_(isolate->allocator()) {}
+  Zone* zone() { return &zone_; }
+
+ private:
+  Zone zone_;
+};
+
+// Inherit from ZoneHolder in order to create a zone that can be passed to
+// CodeAssembler base class constructor.
+template <typename CodeAssemblerT>
+class CodeAssemblerTesterImpl : private ZoneHolder, public CodeAssemblerT {
+ public:
+  // Test generating code for a stub.
+  CodeAssemblerTesterImpl(Isolate* isolate,
+                          const CallInterfaceDescriptor& descriptor)
+      : ZoneHolder(isolate),
+        CodeAssemblerT(isolate, ZoneHolder::zone(), descriptor,
+                       Code::ComputeFlags(Code::STUB), "test"),
+        scope_(isolate) {}
+
+  // Test generating code for a JS function (e.g. builtins).
+  CodeAssemblerTesterImpl(Isolate* isolate, int parameter_count)
+      : ZoneHolder(isolate),
+        CodeAssemblerT(isolate, ZoneHolder::zone(), parameter_count,
+                       Code::ComputeFlags(Code::FUNCTION), "test"),
+        scope_(isolate) {}
+
+  // This constructor is intended to be used for creating code objects with
+  // specific flags.
+  CodeAssemblerTesterImpl(Isolate* isolate, Code::Flags flags)
+      : ZoneHolder(isolate),
+        CodeAssemblerT(isolate, ZoneHolder::zone(), 0, flags, "test"),
+        scope_(isolate) {}
+
+  Handle<Code> GenerateCodeCloseAndEscape() {
+    return scope_.CloseAndEscape(CodeAssemblerT::GenerateCode());
+  }
+
+  // Expose some internal methods.
+
+  Node* SmiShiftBitsConstant() {
+    return CodeAssemblerT::SmiShiftBitsConstant();
+  }
+
+ private:
+  HandleScope scope_;
+  LocalContext context_;
+};
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/compiler/codegen-tester.h b/test/cctest/compiler/codegen-tester.h
index dbb9a72..3450c3a 100644
--- a/test/cctest/compiler/codegen-tester.h
+++ b/test/cctest/compiler/codegen-tester.h
@@ -256,7 +256,7 @@
   // parameters from memory. Thereby it is possible to pass 64 bit parameters
   // to the IR graph.
   Node* Parameter(size_t index) {
-    CHECK(index >= 0 && index < 4);
+    CHECK(index < 4);
     return parameter_nodes_[index];
   }
 
diff --git a/test/cctest/compiler/function-tester.h b/test/cctest/compiler/function-tester.h
index 555e049..c7304f1 100644
--- a/test/cctest/compiler/function-tester.h
+++ b/test/cctest/compiler/function-tester.h
@@ -42,16 +42,18 @@
     CompileGraph(graph);
   }
 
-  FunctionTester(const CallInterfaceDescriptor& descriptor, Handle<Code> code)
+  FunctionTester(Handle<Code> code, int param_count)
       : isolate(main_isolate()),
-        function(
-            (FLAG_allow_natives_syntax = true,
-             NewFunction(BuildFunctionFromDescriptor(descriptor).c_str()))),
+        function((FLAG_allow_natives_syntax = true,
+                  NewFunction(BuildFunction(param_count).c_str()))),
         flags_(0) {
     Compile(function);
     function->ReplaceCode(*code);
   }
 
+  FunctionTester(const CallInterfaceDescriptor& descriptor, Handle<Code> code)
+      : FunctionTester(code, descriptor.GetParameterCount()) {}
+
   Isolate* isolate;
   Handle<JSFunction> function;
 
@@ -59,11 +61,22 @@
     return Execution::Call(isolate, function, undefined(), 0, nullptr);
   }
 
+  MaybeHandle<Object> Call(Handle<Object> a) {
+    Handle<Object> args[] = {a};
+    return Execution::Call(isolate, function, undefined(), 1, args);
+  }
+
   MaybeHandle<Object> Call(Handle<Object> a, Handle<Object> b) {
     Handle<Object> args[] = {a, b};
     return Execution::Call(isolate, function, undefined(), 2, args);
   }
 
+  MaybeHandle<Object> Call(Handle<Object> a, Handle<Object> b,
+                           Handle<Object> c) {
+    Handle<Object> args[] = {a, b, c};
+    return Execution::Call(isolate, function, undefined(), 3, args);
+  }
+
   MaybeHandle<Object> Call(Handle<Object> a, Handle<Object> b, Handle<Object> c,
                            Handle<Object> d) {
     Handle<Object> args[] = {a, b, c, d};
@@ -91,41 +104,56 @@
     return try_catch.Message();
   }
 
-  void CheckCall(Handle<Object> expected, Handle<Object> a, Handle<Object> b) {
-    Handle<Object> result = Call(a, b).ToHandleChecked();
+  void CheckCall(Handle<Object> expected, Handle<Object> a, Handle<Object> b,
+                 Handle<Object> c, Handle<Object> d) {
+    Handle<Object> result = Call(a, b, c, d).ToHandleChecked();
     CHECK(expected->SameValue(*result));
   }
 
+  void CheckCall(Handle<Object> expected, Handle<Object> a, Handle<Object> b,
+                 Handle<Object> c) {
+    return CheckCall(expected, a, b, c, undefined());
+  }
+
+  void CheckCall(Handle<Object> expected, Handle<Object> a, Handle<Object> b) {
+    return CheckCall(expected, a, b, undefined());
+  }
+
   void CheckCall(Handle<Object> expected, Handle<Object> a) {
     CheckCall(expected, a, undefined());
   }
 
-  void CheckCall(Handle<Object> expected) {
-    CheckCall(expected, undefined(), undefined());
-  }
+  void CheckCall(Handle<Object> expected) { CheckCall(expected, undefined()); }
 
   void CheckCall(double expected, double a, double b) {
     CheckCall(Val(expected), Val(a), Val(b));
   }
 
+  void CheckTrue(Handle<Object> a) { CheckCall(true_value(), a); }
+
   void CheckTrue(Handle<Object> a, Handle<Object> b) {
     CheckCall(true_value(), a, b);
   }
 
-  void CheckTrue(Handle<Object> a) { CheckCall(true_value(), a, undefined()); }
+  void CheckTrue(Handle<Object> a, Handle<Object> b, Handle<Object> c) {
+    CheckCall(true_value(), a, b, c);
+  }
+
+  void CheckTrue(Handle<Object> a, Handle<Object> b, Handle<Object> c,
+                 Handle<Object> d) {
+    CheckCall(true_value(), a, b, c, d);
+  }
 
   void CheckTrue(double a, double b) {
     CheckCall(true_value(), Val(a), Val(b));
   }
 
+  void CheckFalse(Handle<Object> a) { CheckCall(false_value(), a); }
+
   void CheckFalse(Handle<Object> a, Handle<Object> b) {
     CheckCall(false_value(), a, b);
   }
 
-  void CheckFalse(Handle<Object> a) {
-    CheckCall(false_value(), a, undefined());
-  }
-
   void CheckFalse(double a, double b) {
     CheckCall(false_value(), Val(a), Val(b));
   }
@@ -194,6 +222,7 @@
       CHECK(Compiler::Analyze(info.parse_info()));
       CHECK(Compiler::EnsureDeoptimizationSupport(&info));
     }
+    JSFunction::EnsureLiterals(function);
 
     Handle<Code> code = Pipeline::GenerateCodeForTesting(&info);
     CHECK(!code.is_null());
@@ -216,11 +245,6 @@
     return function_string;
   }
 
-  std::string BuildFunctionFromDescriptor(
-      const CallInterfaceDescriptor& descriptor) {
-    return BuildFunction(descriptor.GetParameterCount());
-  }
-
   // Compile the given machine graph instead of the source of the function
   // and replace the JSFunction's code with the result.
   Handle<JSFunction> CompileGraph(Graph* graph) {
diff --git a/test/cctest/compiler/test-code-stub-assembler.cc b/test/cctest/compiler/test-code-assembler.cc
similarity index 60%
rename from test/cctest/compiler/test-code-stub-assembler.cc
rename to test/cctest/compiler/test-code-assembler.cc
index 37ba9e9..7f27a6f 100644
--- a/test/cctest/compiler/test-code-stub-assembler.cc
+++ b/test/cctest/compiler/test-code-assembler.cc
@@ -2,52 +2,54 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "src/interface-descriptors.h"
+#include "src/compiler/code-assembler.h"
 #include "src/isolate.h"
+#include "test/cctest/compiler/code-assembler-tester.h"
 #include "test/cctest/compiler/function-tester.h"
 
 namespace v8 {
 namespace internal {
 namespace compiler {
 
+typedef CodeAssemblerTesterImpl<CodeAssembler> CodeAssemblerTester;
 
-class CodeStubAssemblerTester : public CodeStubAssembler {
- public:
-  // Test generating code for a stub.
-  CodeStubAssemblerTester(Isolate* isolate,
-                          const CallInterfaceDescriptor& descriptor)
-      : CodeStubAssembler(isolate, isolate->runtime_zone(), descriptor,
-                          Code::ComputeFlags(Code::STUB), "test"),
-        scope_(isolate) {}
+namespace {
 
-  // Test generating code for a JS function (e.g. builtins).
-  CodeStubAssemblerTester(Isolate* isolate, int parameter_count)
-      : CodeStubAssembler(isolate, isolate->runtime_zone(), parameter_count,
-                          Code::ComputeFlags(Code::FUNCTION), "test"),
-        scope_(isolate) {}
+Node* SmiTag(CodeAssemblerTester& m, Node* value) {
+  int32_t constant_value;
+  if (m.ToInt32Constant(value, constant_value) &&
+      Smi::IsValid(constant_value)) {
+    return m.SmiConstant(Smi::FromInt(constant_value));
+  }
+  return m.WordShl(value, m.SmiShiftBitsConstant());
+}
 
- private:
-  HandleScope scope_;
-  LocalContext context_;
-};
+Node* UndefinedConstant(CodeAssemblerTester& m) {
+  return m.LoadRoot(Heap::kUndefinedValueRootIndex);
+}
 
+Node* LoadObjectField(CodeAssemblerTester& m, Node* object, int offset,
+                      MachineType rep = MachineType::AnyTagged()) {
+  return m.Load(rep, object, m.IntPtrConstant(offset - kHeapObjectTag));
+}
+
+}  // namespace
 
 TEST(SimpleSmiReturn) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
-  m.Return(m.SmiTag(m.Int32Constant(37)));
+  CodeAssemblerTester m(isolate, descriptor);
+  m.Return(SmiTag(m, m.Int32Constant(37)));
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
   MaybeHandle<Object> result = ft.Call();
   CHECK_EQ(37, Handle<Smi>::cast(result.ToHandleChecked())->value());
 }
 
-
 TEST(SimpleIntPtrReturn) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   int test;
   m.Return(m.IntPtrConstant(reinterpret_cast<intptr_t>(&test)));
   Handle<Code> code = m.GenerateCode();
@@ -57,11 +59,10 @@
            reinterpret_cast<intptr_t>(*result.ToHandleChecked()));
 }
 
-
 TEST(SimpleDoubleReturn) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   m.Return(m.NumberConstant(0.5));
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
@@ -69,13 +70,12 @@
   CHECK_EQ(0.5, Handle<HeapNumber>::cast(result.ToHandleChecked())->value());
 }
 
-
 TEST(SimpleCallRuntime1Arg) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
-  Node* b = m.SmiTag(m.Int32Constant(0));
+  Node* b = SmiTag(m, m.Int32Constant(0));
   m.Return(m.CallRuntime(Runtime::kNumberToSmi, context, b));
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
@@ -83,13 +83,12 @@
   CHECK_EQ(0, Handle<Smi>::cast(result.ToHandleChecked())->value());
 }
 
-
 TEST(SimpleTailCallRuntime1Arg) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
-  Node* b = m.SmiTag(m.Int32Constant(0));
+  Node* b = SmiTag(m, m.Int32Constant(0));
   m.TailCallRuntime(Runtime::kNumberToSmi, context, b);
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
@@ -97,14 +96,13 @@
   CHECK_EQ(0, Handle<Smi>::cast(result.ToHandleChecked())->value());
 }
 
-
 TEST(SimpleCallRuntime2Arg) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
-  Node* a = m.SmiTag(m.Int32Constant(2));
-  Node* b = m.SmiTag(m.Int32Constant(4));
+  Node* a = SmiTag(m, m.Int32Constant(2));
+  Node* b = SmiTag(m, m.Int32Constant(4));
   m.Return(m.CallRuntime(Runtime::kMathPow, context, a, b));
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
@@ -112,14 +110,13 @@
   CHECK_EQ(16, Handle<Smi>::cast(result.ToHandleChecked())->value());
 }
 
-
 TEST(SimpleTailCallRuntime2Arg) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   Node* context = m.HeapConstant(Handle<Context>(isolate->native_context()));
-  Node* a = m.SmiTag(m.Int32Constant(2));
-  Node* b = m.SmiTag(m.Int32Constant(4));
+  Node* a = SmiTag(m, m.Int32Constant(2));
+  Node* b = SmiTag(m, m.Int32Constant(4));
   m.TailCallRuntime(Runtime::kMathPow, context, a, b);
   Handle<Code> code = m.GenerateCode();
   FunctionTester ft(descriptor, code);
@@ -127,10 +124,95 @@
   CHECK_EQ(16, Handle<Smi>::cast(result.ToHandleChecked())->value());
 }
 
+namespace {
+
+Handle<JSFunction> CreateSumAllArgumentsFunction(FunctionTester& ft) {
+  const char* source =
+      "(function() {\n"
+      "  var sum = 0 + this;\n"
+      "  for (var i = 0; i < arguments.length; i++) {\n"
+      "    sum += arguments[i];\n"
+      "  }\n"
+      "  return sum;\n"
+      "})";
+  return ft.NewFunction(source);
+}
+
+}  // namespace
+
+TEST(SimpleCallJSFunction0Arg) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 1;
+  CodeAssemblerTester m(isolate, kNumParams);
+  {
+    Node* function = m.Parameter(0);
+    Node* context = m.Parameter(kNumParams + 2);
+
+    Node* receiver = SmiTag(m, m.Int32Constant(42));
+
+    Callable callable = CodeFactory::Call(isolate);
+    Node* result = m.CallJS(callable, context, function, receiver);
+    m.Return(result);
+  }
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+  MaybeHandle<Object> result = ft.Call(sum);
+  CHECK_EQ(Smi::FromInt(42), *result.ToHandleChecked());
+}
+
+TEST(SimpleCallJSFunction1Arg) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 2;
+  CodeAssemblerTester m(isolate, kNumParams);
+  {
+    Node* function = m.Parameter(0);
+    Node* context = m.Parameter(1);
+
+    Node* receiver = SmiTag(m, m.Int32Constant(42));
+    Node* a = SmiTag(m, m.Int32Constant(13));
+
+    Callable callable = CodeFactory::Call(isolate);
+    Node* result = m.CallJS(callable, context, function, receiver, a);
+    m.Return(result);
+  }
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+  MaybeHandle<Object> result = ft.Call(sum);
+  CHECK_EQ(Smi::FromInt(55), *result.ToHandleChecked());
+}
+
+TEST(SimpleCallJSFunction2Arg) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 2;
+  CodeAssemblerTester m(isolate, kNumParams);
+  {
+    Node* function = m.Parameter(0);
+    Node* context = m.Parameter(1);
+
+    Node* receiver = SmiTag(m, m.Int32Constant(42));
+    Node* a = SmiTag(m, m.Int32Constant(13));
+    Node* b = SmiTag(m, m.Int32Constant(153));
+
+    Callable callable = CodeFactory::Call(isolate);
+    Node* result = m.CallJS(callable, context, function, receiver, a, b);
+    m.Return(result);
+  }
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<JSFunction> sum = CreateSumAllArgumentsFunction(ft);
+  MaybeHandle<Object> result = ft.Call(sum);
+  CHECK_EQ(Smi::FromInt(208), *result.ToHandleChecked());
+}
+
 TEST(VariableMerge1) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
   Node* temp = m.Int32Constant(0);
@@ -149,7 +231,7 @@
 TEST(VariableMerge2) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
   Node* temp = m.Int32Constant(0);
@@ -170,7 +252,7 @@
 TEST(VariableMerge3) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Variable var2(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Label l1(&m), l2(&m), merge(&m);
@@ -195,7 +277,7 @@
 TEST(VariableMergeBindFirst) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Label l1(&m), l2(&m), merge(&m, &var1), end(&m);
   Node* temp = m.Int32Constant(0);
@@ -221,7 +303,7 @@
 TEST(VariableMergeSwitch) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Variable var1(&m, MachineRepresentation::kTagged);
   CodeStubAssembler::Label l1(&m), l2(&m), default_label(&m);
   CodeStubAssembler::Label* labels[] = {&l1, &l2};
@@ -240,102 +322,10 @@
   m.Return(temp);
 }
 
-TEST(FixedArrayAccessSmiIndex) {
-  Isolate* isolate(CcTest::InitIsolateOnce());
-  VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
-  Handle<FixedArray> array = isolate->factory()->NewFixedArray(5);
-  array->set(4, Smi::FromInt(733));
-  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();
-  CHECK_EQ(733, Handle<Smi>::cast(result.ToHandleChecked())->value());
-}
-
-TEST(LoadHeapNumberValue) {
-  Isolate* isolate(CcTest::InitIsolateOnce());
-  VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
-  Handle<HeapNumber> number = isolate->factory()->NewHeapNumber(1234);
-  m.Return(m.SmiTag(
-      m.ChangeFloat64ToUint32(m.LoadHeapNumberValue(m.HeapConstant(number)))));
-  Handle<Code> code = m.GenerateCode();
-  FunctionTester ft(descriptor, code);
-  MaybeHandle<Object> result = ft.Call();
-  CHECK_EQ(1234, Handle<Smi>::cast(result.ToHandleChecked())->value());
-}
-
-TEST(LoadInstanceType) {
-  Isolate* isolate(CcTest::InitIsolateOnce());
-  VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
-  Handle<HeapObject> undefined = isolate->factory()->undefined_value();
-  m.Return(m.SmiTag(m.LoadInstanceType(m.HeapConstant(undefined))));
-  Handle<Code> code = m.GenerateCode();
-  FunctionTester ft(descriptor, code);
-  MaybeHandle<Object> result = ft.Call();
-  CHECK_EQ(InstanceType::ODDBALL_TYPE,
-           Handle<Smi>::cast(result.ToHandleChecked())->value());
-}
-
-namespace {
-
-class TestBitField : public BitField<unsigned, 3, 3> {};
-
-}  // namespace
-
-TEST(BitFieldDecode) {
-  Isolate* isolate(CcTest::InitIsolateOnce());
-  VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
-  m.Return(m.SmiTag(m.BitFieldDecode<TestBitField>(m.Int32Constant(0x2f))));
-  Handle<Code> code = m.GenerateCode();
-  FunctionTester ft(descriptor, code);
-  MaybeHandle<Object> result = ft.Call();
-  // value  = 00101111
-  // mask   = 00111000
-  // result = 101
-  CHECK_EQ(5, Handle<Smi>::cast(result.ToHandleChecked())->value());
-}
-
-namespace {
-
-Handle<JSFunction> CreateFunctionFromCode(int parameter_count_with_receiver,
-                                          Handle<Code> code) {
-  Isolate* isolate = code->GetIsolate();
-  Handle<String> name = isolate->factory()->InternalizeUtf8String("test");
-  Handle<JSFunction> function =
-      isolate->factory()->NewFunctionWithoutPrototype(name, code);
-  function->shared()->set_internal_formal_parameter_count(
-      parameter_count_with_receiver - 1);  // Implicit undefined receiver.
-  return function;
-}
-
-}  // namespace
-
-TEST(JSFunction) {
-  const int kNumParams = 3;  // Receiver, left, right.
-  Isolate* isolate(CcTest::InitIsolateOnce());
-  CodeStubAssemblerTester m(isolate, kNumParams);
-  m.Return(m.SmiTag(m.Int32Add(m.SmiToWord32(m.Parameter(1)),
-                               m.SmiToWord32(m.Parameter(2)))));
-  Handle<Code> code = m.GenerateCode();
-  Handle<JSFunction> function = CreateFunctionFromCode(kNumParams, code);
-  Handle<Object> args[] = {Handle<Smi>(Smi::FromInt(23), isolate),
-                           Handle<Smi>(Smi::FromInt(34), isolate)};
-  MaybeHandle<Object> result =
-      Execution::Call(isolate, function, isolate->factory()->undefined_value(),
-                      arraysize(args), args);
-  CHECK_EQ(57, Handle<Smi>::cast(result.ToHandleChecked())->value());
-}
-
 TEST(SplitEdgeBranchMerge) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Label l1(&m), merge(&m);
   m.Branch(m.Int32Constant(1), &l1, &merge);
   m.Bind(&l1);
@@ -347,7 +337,7 @@
 TEST(SplitEdgeSwitchMerge) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   CodeStubAssembler::Label l1(&m), l2(&m), l3(&m), default_label(&m);
   CodeStubAssembler::Label* labels[] = {&l1, &l2};
   int32_t values[] = {1, 2};
@@ -365,7 +355,7 @@
 TEST(TestToConstant) {
   Isolate* isolate(CcTest::InitIsolateOnce());
   VoidDescriptor descriptor(isolate);
-  CodeStubAssemblerTester m(isolate, descriptor);
+  CodeAssemblerTester m(isolate, descriptor);
   int32_t value32;
   int64_t value64;
   Node* a = m.Int32Constant(5);
@@ -380,15 +370,69 @@
   CHECK(m.ToInt32Constant(a, value32));
   CHECK(m.ToInt64Constant(a, value64));
 
-  a = m.UndefinedConstant();
+  a = UndefinedConstant(m);
   CHECK(!m.ToInt32Constant(a, value32));
   CHECK(!m.ToInt64Constant(a, value64));
 
-  a = m.UndefinedConstant();
+  a = UndefinedConstant(m);
   CHECK(!m.ToInt32Constant(a, value32));
   CHECK(!m.ToInt64Constant(a, value64));
 }
 
+TEST(DeferredCodePhiHints) {
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeAssemblerTester m(isolate, descriptor);
+  Label block1(&m, Label::kDeferred);
+  m.Goto(&block1);
+  m.Bind(&block1);
+  {
+    Variable var_object(&m, MachineRepresentation::kTagged);
+    Label loop(&m, &var_object);
+    var_object.Bind(m.IntPtrConstant(0));
+    m.Goto(&loop);
+    m.Bind(&loop);
+    {
+      Node* map = LoadObjectField(m, var_object.value(), JSObject::kMapOffset);
+      var_object.Bind(map);
+      m.Goto(&loop);
+    }
+  }
+  CHECK(!m.GenerateCode().is_null());
+}
+
+TEST(TestOutOfScopeVariable) {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeAssemblerTester m(isolate, descriptor);
+  Label block1(&m);
+  Label block2(&m);
+  Label block3(&m);
+  Label block4(&m);
+  m.Branch(m.WordEqual(m.Parameter(0), m.IntPtrConstant(0)), &block1, &block4);
+  m.Bind(&block4);
+  {
+    Variable var_object(&m, MachineRepresentation::kTagged);
+    m.Branch(m.WordEqual(m.Parameter(0), m.IntPtrConstant(0)), &block2,
+             &block3);
+
+    m.Bind(&block2);
+    var_object.Bind(m.IntPtrConstant(55));
+    m.Goto(&block1);
+
+    m.Bind(&block3);
+    var_object.Bind(m.IntPtrConstant(66));
+    m.Goto(&block1);
+  }
+  m.Bind(&block1);
+  CHECK(!m.GenerateCode().is_null());
+}
+
 }  // 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 9781aeb..8d0ca8b 100644
--- a/test/cctest/compiler/test-gap-resolver.cc
+++ b/test/cctest/compiler/test-gap-resolver.cc
@@ -116,9 +116,7 @@
       InstructionOperand source = FromKey(it->first);
       InstructionOperand destination = FromKey(it->second);
       MoveOperands mo(source, destination);
-      PrintableMoveOperands pmo = {
-          RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN),
-          &mo};
+      PrintableMoveOperands pmo = {RegisterConfiguration::Turbofan(), &mo};
       os << pmo;
     }
     return os;
@@ -167,8 +165,10 @@
   ParallelMove* Create(int size) {
     ParallelMove* parallel_move = new (main_zone()) ParallelMove(main_zone());
     std::set<InstructionOperand, CompareOperandModuloType> seen;
+    MachineRepresentation rep = RandomRepresentation();
     for (int i = 0; i < size; ++i) {
-      MoveOperands mo(CreateRandomOperand(true), CreateRandomOperand(false));
+      MoveOperands mo(CreateRandomOperand(true, rep),
+                      CreateRandomOperand(false, rep));
       if (!mo.IsRedundant() && seen.find(mo.destination()) == seen.end()) {
         parallel_move->AddMove(mo.source(), mo.destination());
         seen.insert(mo.destination());
@@ -179,52 +179,54 @@
 
  private:
   MachineRepresentation RandomRepresentation() {
-    int index = rng_->NextInt(3);
+    int index = rng_->NextInt(5);
     switch (index) {
       case 0:
         return MachineRepresentation::kWord32;
       case 1:
         return MachineRepresentation::kWord64;
       case 2:
+        return MachineRepresentation::kFloat32;
+      case 3:
+        return MachineRepresentation::kFloat64;
+      case 4:
         return MachineRepresentation::kTagged;
     }
     UNREACHABLE();
     return MachineRepresentation::kNone;
   }
 
-  MachineRepresentation RandomDoubleRepresentation() {
-    int index = rng_->NextInt(2);
-    if (index == 0) return MachineRepresentation::kFloat64;
-    return MachineRepresentation::kFloat32;
-  }
+  InstructionOperand CreateRandomOperand(bool is_source,
+                                         MachineRepresentation rep) {
+    auto conf = RegisterConfiguration::Turbofan();
+    auto GetRegisterCode = [&conf](MachineRepresentation rep, int index) {
+      switch (rep) {
+        case MachineRepresentation::kFloat32:
+        case MachineRepresentation::kFloat64:
+          return conf->RegisterConfiguration::GetAllocatableDoubleCode(index);
+          break;
 
-  InstructionOperand CreateRandomOperand(bool is_source) {
+        default:
+          return conf->RegisterConfiguration::GetAllocatableGeneralCode(index);
+          break;
+      }
+      UNREACHABLE();
+      return static_cast<int>(Register::kCode_no_reg);
+    };
     int index = rng_->NextInt(7);
     // destination can't be Constant.
-    switch (rng_->NextInt(is_source ? 7 : 6)) {
+    switch (rng_->NextInt(is_source ? 5 : 4)) {
       case 0:
-        return AllocatedOperand(LocationOperand::STACK_SLOT,
-                                RandomRepresentation(), index);
+        return AllocatedOperand(LocationOperand::STACK_SLOT, rep, index);
       case 1:
-        return AllocatedOperand(LocationOperand::STACK_SLOT,
-                                RandomDoubleRepresentation(), index);
+        return AllocatedOperand(LocationOperand::REGISTER, rep, index);
       case 2:
-        return AllocatedOperand(LocationOperand::REGISTER,
-                                RandomRepresentation(), index);
+        return ExplicitOperand(LocationOperand::REGISTER, rep,
+                               GetRegisterCode(rep, 1));
       case 3:
-        return AllocatedOperand(LocationOperand::REGISTER,
-                                RandomDoubleRepresentation(), index);
+        return ExplicitOperand(LocationOperand::STACK_SLOT, rep,
+                               GetRegisterCode(rep, index));
       case 4:
-        return ExplicitOperand(
-            LocationOperand::REGISTER, RandomRepresentation(),
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->GetAllocatableGeneralCode(1));
-      case 5:
-        return ExplicitOperand(
-            LocationOperand::STACK_SLOT, RandomRepresentation(),
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->GetAllocatableGeneralCode(index));
-      case 6:
         return ConstantOperand(index);
     }
     UNREACHABLE();
diff --git a/test/cctest/compiler/test-js-context-specialization.cc b/test/cctest/compiler/test-js-context-specialization.cc
index c7cd47a..e9bf064 100644
--- a/test/cctest/compiler/test-js-context-specialization.cc
+++ b/test/cctest/compiler/test-js-context-specialization.cc
@@ -186,81 +186,6 @@
 }
 
 
-// TODO(titzer): factor out common code with effects checking in typed lowering.
-static void CheckEffectInput(Node* effect, Node* use) {
-  CHECK_EQ(effect, NodeProperties::GetEffectInput(use));
-}
-
-
-TEST(SpecializeToContext) {
-  ContextSpecializationTester t;
-
-  Node* start = t.graph()->NewNode(t.common()->Start(0));
-  t.graph()->SetStart(start);
-
-  // Make a context and initialize it a bit for this test.
-  Handle<Context> native = t.factory()->NewNativeContext();
-  Handle<Object> expected = t.factory()->InternalizeUtf8String("gboy!");
-  const int slot = Context::NATIVE_CONTEXT_INDEX;
-  native->set(slot, *expected);
-
-  Node* const_context = t.jsgraph()->Constant(native);
-  Node* param_context = t.graph()->NewNode(t.common()->Parameter(0), start);
-
-  {
-    // Check that specialization replaces values and forwards effects
-    // correctly, and folds values from constant and non-constant contexts
-    Node* effect_in = start;
-    Node* load = t.graph()->NewNode(t.javascript()->LoadContext(0, slot, true),
-                                    const_context, const_context, effect_in);
-
-
-    Node* value_use =
-        t.graph()->NewNode(t.simplified()->ChangeTaggedToInt32(), load);
-    Node* other_load =
-        t.graph()->NewNode(t.javascript()->LoadContext(0, slot, true),
-                           param_context, param_context, load);
-    Node* effect_use = other_load;
-    Node* other_use =
-        t.graph()->NewNode(t.simplified()->ChangeTaggedToInt32(), other_load);
-
-    Node* add = t.graph()->NewNode(
-        t.javascript()->Add(BinaryOperationHints::Any()), value_use, other_use,
-        param_context, t.jsgraph()->EmptyFrameState(),
-        t.jsgraph()->EmptyFrameState(), other_load, start);
-
-    Node* ret =
-        t.graph()->NewNode(t.common()->Return(), add, effect_use, start);
-    Node* end = t.graph()->NewNode(t.common()->End(1), ret);
-    USE(end);
-    t.graph()->SetEnd(end);
-
-    // Double check the above graph is what we expect, or the test is broken.
-    CheckEffectInput(effect_in, load);
-    CheckEffectInput(load, effect_use);
-
-    // Perform the reduction on the entire graph.
-    GraphReducer graph_reducer(t.main_zone(), t.graph());
-    JSContextSpecialization spec(&graph_reducer, t.jsgraph(),
-                                 MaybeHandle<Context>());
-    graph_reducer.AddReducer(&spec);
-    graph_reducer.ReduceGraph();
-
-    // Effects should have been forwarded (not replaced with a value).
-    CheckEffectInput(effect_in, effect_use);
-
-    // Use of {other_load} should not have been replaced.
-    CHECK_EQ(other_load, other_use->InputAt(0));
-
-    Node* replacement = value_use->InputAt(0);
-    HeapObjectMatcher match(replacement);
-    CHECK(match.HasValue());
-    CHECK_EQ(*expected, *match.Value());
-  }
-  // TODO(titzer): clean up above test and test more complicated effects.
-}
-
-
 TEST(SpecializeJSFunction_ToConstant1) {
   FunctionTester T(
       "(function() { var x = 1; function inc(a)"
@@ -300,10 +225,14 @@
     FunctionTester T(
         "(function() { if (false) { var x = 1; } function inc(a)"
         " { return x; } return inc; })()");  // x is undefined!
-
-    CHECK(T.Call(T.Val(0.0), T.Val(0.0)).ToHandleChecked()->IsUndefined());
-    CHECK(T.Call(T.Val(2.0), T.Val(0.0)).ToHandleChecked()->IsUndefined());
-    CHECK(T.Call(T.Val(-2.1), T.Val(0.0)).ToHandleChecked()->IsUndefined());
+    i::Isolate* isolate = CcTest::i_isolate();
+    CHECK(
+        T.Call(T.Val(0.0), T.Val(0.0)).ToHandleChecked()->IsUndefined(isolate));
+    CHECK(
+        T.Call(T.Val(2.0), T.Val(0.0)).ToHandleChecked()->IsUndefined(isolate));
+    CHECK(T.Call(T.Val(-2.1), T.Val(0.0))
+              .ToHandleChecked()
+              ->IsUndefined(isolate));
   }
 
   {
diff --git a/test/cctest/compiler/test-js-typed-lowering.cc b/test/cctest/compiler/test-js-typed-lowering.cc
index 0075de5..0dac0da 100644
--- a/test/cctest/compiler/test-js-typed-lowering.cc
+++ b/test/cctest/compiler/test-js-typed-lowering.cc
@@ -47,7 +47,8 @@
   Graph graph;
   Typer typer;
   Node* context_node;
-  BinaryOperationHints const hints = BinaryOperationHints::Any();
+  BinaryOperationHints const binop_hints = BinaryOperationHints::Any();
+  CompareOperationHints const compare_hints = CompareOperationHints::Any();
 
   Node* Parameter(Type* t, int32_t index = 0) {
     Node* n = graph.NewNode(common.Parameter(index), graph.start());
@@ -255,11 +256,11 @@
 TEST(NumberBinops) {
   JSTypedLoweringTester R;
   const Operator* ops[] = {
-      R.javascript.Add(R.hints),      R.simplified.NumberAdd(),
-      R.javascript.Subtract(R.hints), R.simplified.NumberSubtract(),
-      R.javascript.Multiply(R.hints), R.simplified.NumberMultiply(),
-      R.javascript.Divide(R.hints),   R.simplified.NumberDivide(),
-      R.javascript.Modulus(R.hints),  R.simplified.NumberModulus(),
+      R.javascript.Add(R.binop_hints),      R.simplified.NumberAdd(),
+      R.javascript.Subtract(R.binop_hints), R.simplified.NumberSubtract(),
+      R.javascript.Multiply(R.binop_hints), R.simplified.NumberMultiply(),
+      R.javascript.Divide(R.binop_hints),   R.simplified.NumberDivide(),
+      R.javascript.Modulus(R.binop_hints),  R.simplified.NumberModulus(),
   };
 
   for (size_t i = 0; i < arraysize(kNumberTypes); ++i) {
@@ -301,11 +302,11 @@
  public:
   JSBitwiseShiftTypedLoweringTester() : JSTypedLoweringTester() {
     int i = 0;
-    set(i++, javascript.ShiftLeft(hints), true);
+    set(i++, javascript.ShiftLeft(binop_hints), true);
     set(i++, simplified.NumberShiftLeft(), false);
-    set(i++, javascript.ShiftRight(hints), true);
+    set(i++, javascript.ShiftRight(binop_hints), true);
     set(i++, simplified.NumberShiftRight(), false);
-    set(i++, javascript.ShiftRightLogical(hints), false);
+    set(i++, javascript.ShiftRightLogical(binop_hints), false);
     set(i++, simplified.NumberShiftRightLogical(), false);
   }
   static const int kNumberOps = 6;
@@ -357,11 +358,11 @@
  public:
   JSBitwiseTypedLoweringTester() : JSTypedLoweringTester() {
     int i = 0;
-    set(i++, javascript.BitwiseOr(hints), true);
+    set(i++, javascript.BitwiseOr(binop_hints), true);
     set(i++, simplified.NumberBitwiseOr(), true);
-    set(i++, javascript.BitwiseXor(hints), true);
+    set(i++, javascript.BitwiseXor(binop_hints), true);
     set(i++, simplified.NumberBitwiseXor(), true);
-    set(i++, javascript.BitwiseAnd(hints), true);
+    set(i++, javascript.BitwiseAnd(binop_hints), true);
     set(i++, simplified.NumberBitwiseAnd(), true);
   }
   static const int kNumberOps = 6;
@@ -492,7 +493,7 @@
   for (size_t i = 0; i < arraysize(others); i++) {
     Type* t = Type::Union(Type::Number(), others[i], R.main_zone());
     Node* r = R.ReduceUnop(R.javascript.ToNumber(), t);
-    CHECK_EQ(IrOpcode::kJSToNumber, r->opcode());
+    CHECK_EQ(IrOpcode::kPlainPrimitiveToNumber, r->opcode());
   }
 }
 
@@ -571,10 +572,14 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.LessThan(),           R.simplified.StringLessThan(),
-      R.javascript.LessThanOrEqual(),    R.simplified.StringLessThanOrEqual(),
-      R.javascript.GreaterThan(),        R.simplified.StringLessThan(),
-      R.javascript.GreaterThanOrEqual(), R.simplified.StringLessThanOrEqual()};
+      R.javascript.LessThan(CompareOperationHints::Any()),
+      R.simplified.StringLessThan(),
+      R.javascript.LessThanOrEqual(CompareOperationHints::Any()),
+      R.simplified.StringLessThanOrEqual(),
+      R.javascript.GreaterThan(CompareOperationHints::Any()),
+      R.simplified.StringLessThan(),
+      R.javascript.GreaterThanOrEqual(CompareOperationHints::Any()),
+      R.simplified.StringLessThanOrEqual()};
 
   for (size_t i = 0; i < arraysize(kStringTypes); i++) {
     Node* p0 = R.Parameter(kStringTypes[i], 0);
@@ -618,10 +623,14 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.LessThan(),           R.simplified.NumberLessThan(),
-      R.javascript.LessThanOrEqual(),    R.simplified.NumberLessThanOrEqual(),
-      R.javascript.GreaterThan(),        R.simplified.NumberLessThan(),
-      R.javascript.GreaterThanOrEqual(), R.simplified.NumberLessThanOrEqual()};
+      R.javascript.LessThan(CompareOperationHints::Any()),
+      R.simplified.NumberLessThan(),
+      R.javascript.LessThanOrEqual(CompareOperationHints::Any()),
+      R.simplified.NumberLessThanOrEqual(),
+      R.javascript.GreaterThan(CompareOperationHints::Any()),
+      R.simplified.NumberLessThan(),
+      R.javascript.GreaterThanOrEqual(CompareOperationHints::Any()),
+      R.simplified.NumberLessThanOrEqual()};
 
   Node* const p0 = R.Parameter(Type::Number(), 0);
   Node* const p1 = R.Parameter(Type::Number(), 1);
@@ -655,7 +664,8 @@
     for (size_t j = 0; j < arraysize(types); j++) {
       Node* p1 = R.Parameter(types[j], 1);
       {
-        const Operator* less_than = R.javascript.LessThan();
+        const Operator* less_than =
+            R.javascript.LessThan(CompareOperationHints::Any());
         Node* cmp = R.Binop(less_than, p0, p1);
         Node* r = R.reduce(cmp);
         if (types[i]->Is(Type::String()) && types[j]->Is(Type::String())) {
@@ -700,14 +710,14 @@
       case 2:
         effect_use = R.graph.NewNode(R.common.EffectPhi(1), ton, R.start());
       case 3:
-        effect_use =
-            R.graph.NewNode(R.javascript.Add(R.hints), ton, ton, R.context(),
-                            frame_state, frame_state, ton, R.start());
+        effect_use = R.graph.NewNode(R.javascript.Add(R.binop_hints), ton, ton,
+                                     R.context(), frame_state, frame_state, ton,
+                                     R.start());
         break;
       case 4:
-        effect_use =
-            R.graph.NewNode(R.javascript.Add(R.hints), p0, p0, R.context(),
-                            frame_state, frame_state, ton, R.start());
+        effect_use = R.graph.NewNode(R.javascript.Add(R.binop_hints), p0, p0,
+                                     R.context(), frame_state, frame_state, ton,
+                                     R.start());
         break;
       case 5:
         effect_use = R.graph.NewNode(R.common.Return(), p0, ton, R.start());
@@ -801,7 +811,8 @@
 
     {
       const Operator* op =
-          strict ? R->javascript.StrictEqual() : R->javascript.Equal();
+          strict ? R->javascript.StrictEqual(CompareOperationHints::Any())
+                 : R->javascript.Equal(CompareOperationHints::Any());
       Node* eq = R->Binop(op, p0, p1);
       Node* r = R->reduce(eq);
       R->CheckBinop(expected, r);
@@ -809,7 +820,8 @@
 
     {
       const Operator* op =
-          strict ? R->javascript.StrictNotEqual() : R->javascript.NotEqual();
+          strict ? R->javascript.StrictNotEqual(CompareOperationHints::Any())
+                 : R->javascript.NotEqual(CompareOperationHints::Any());
       Node* ne = R->Binop(op, p0, p1);
       Node* n = R->reduce(ne);
       CHECK_EQ(IrOpcode::kBooleanNot, n->opcode());
@@ -876,14 +888,22 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.Equal(),           R.simplified.NumberEqual(),
-      R.javascript.Add(R.hints),      R.simplified.NumberAdd(),
-      R.javascript.Subtract(R.hints), R.simplified.NumberSubtract(),
-      R.javascript.Multiply(R.hints), R.simplified.NumberMultiply(),
-      R.javascript.Divide(R.hints),   R.simplified.NumberDivide(),
-      R.javascript.Modulus(R.hints),  R.simplified.NumberModulus(),
-      R.javascript.LessThan(),        R.simplified.NumberLessThan(),
-      R.javascript.LessThanOrEqual(), R.simplified.NumberLessThanOrEqual(),
+      R.javascript.Equal(R.compare_hints),
+      R.simplified.NumberEqual(),
+      R.javascript.Add(R.binop_hints),
+      R.simplified.NumberAdd(),
+      R.javascript.Subtract(R.binop_hints),
+      R.simplified.NumberSubtract(),
+      R.javascript.Multiply(R.binop_hints),
+      R.simplified.NumberMultiply(),
+      R.javascript.Divide(R.binop_hints),
+      R.simplified.NumberDivide(),
+      R.javascript.Modulus(R.binop_hints),
+      R.simplified.NumberModulus(),
+      R.javascript.LessThan(R.compare_hints),
+      R.simplified.NumberLessThan(),
+      R.javascript.LessThanOrEqual(R.compare_hints),
+      R.simplified.NumberLessThanOrEqual(),
   };
 
   for (size_t j = 0; j < arraysize(ops); j += 2) {
@@ -904,9 +924,9 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.Subtract(R.hints), R.simplified.NumberSubtract(),
-      R.javascript.Multiply(R.hints), R.simplified.NumberMultiply(),
-      R.javascript.Divide(R.hints),   R.simplified.NumberDivide(),
+      R.javascript.Subtract(R.binop_hints), R.simplified.NumberSubtract(),
+      R.javascript.Multiply(R.binop_hints), R.simplified.NumberMultiply(),
+      R.javascript.Divide(R.binop_hints),   R.simplified.NumberDivide(),
   };
 
   for (size_t j = 0; j < arraysize(ops); j += 2) {
@@ -929,10 +949,10 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.Add(R.hints),      R.simplified.NumberAdd(),
-      R.javascript.Subtract(R.hints), R.simplified.NumberSubtract(),
-      R.javascript.Multiply(R.hints), R.simplified.NumberMultiply(),
-      R.javascript.Divide(R.hints),   R.simplified.NumberDivide(),
+      R.javascript.Add(R.binop_hints),      R.simplified.NumberAdd(),
+      R.javascript.Subtract(R.binop_hints), R.simplified.NumberSubtract(),
+      R.javascript.Multiply(R.binop_hints), R.simplified.NumberMultiply(),
+      R.javascript.Divide(R.binop_hints),   R.simplified.NumberDivide(),
   };
 
   for (size_t j = 0; j < arraysize(ops); j += 2) {
@@ -967,8 +987,9 @@
   JSTypedLoweringTester R;
 
   const Operator* ops[] = {
-      R.javascript.GreaterThan(), R.simplified.NumberLessThan(),
-      R.javascript.GreaterThanOrEqual(), R.simplified.NumberLessThanOrEqual(),
+      R.javascript.GreaterThan(R.compare_hints), R.simplified.NumberLessThan(),
+      R.javascript.GreaterThanOrEqual(R.compare_hints),
+      R.simplified.NumberLessThanOrEqual(),
   };
 
   for (size_t j = 0; j < arraysize(ops); j += 2) {
@@ -1178,16 +1199,16 @@
   };
 
   Entry ops[] = {
-      {R.javascript.LessThan(), R.machine.Uint32LessThan(),
+      {R.javascript.LessThan(R.compare_hints), R.machine.Uint32LessThan(),
        R.machine.Int32LessThan(), R.simplified.NumberLessThan(), false},
-      {R.javascript.LessThanOrEqual(), R.machine.Uint32LessThanOrEqual(),
-       R.machine.Int32LessThanOrEqual(), R.simplified.NumberLessThanOrEqual(),
-       false},
-      {R.javascript.GreaterThan(), R.machine.Uint32LessThan(),
+      {R.javascript.LessThanOrEqual(R.compare_hints),
+       R.machine.Uint32LessThanOrEqual(), R.machine.Int32LessThanOrEqual(),
+       R.simplified.NumberLessThanOrEqual(), false},
+      {R.javascript.GreaterThan(R.compare_hints), R.machine.Uint32LessThan(),
        R.machine.Int32LessThan(), R.simplified.NumberLessThan(), true},
-      {R.javascript.GreaterThanOrEqual(), R.machine.Uint32LessThanOrEqual(),
-       R.machine.Int32LessThanOrEqual(), R.simplified.NumberLessThanOrEqual(),
-       true}};
+      {R.javascript.GreaterThanOrEqual(R.compare_hints),
+       R.machine.Uint32LessThanOrEqual(), R.machine.Int32LessThanOrEqual(),
+       R.simplified.NumberLessThanOrEqual(), true}};
 
   for (size_t o = 0; o < arraysize(ops); o++) {
     for (size_t i = 0; i < arraysize(kNumberTypes); i++) {
diff --git a/test/cctest/compiler/test-linkage.cc b/test/cctest/compiler/test-linkage.cc
index dc83f4d..436b0f3 100644
--- a/test/cctest/compiler/test-linkage.cc
+++ b/test/cctest/compiler/test-linkage.cc
@@ -7,6 +7,7 @@
 #include "src/parsing/parser.h"
 #include "src/zone.h"
 
+#include "src/code-factory.h"
 #include "src/compiler/common-operator.h"
 #include "src/compiler/graph.h"
 #include "src/compiler/linkage.h"
@@ -97,14 +98,12 @@
 TEST(TestLinkageStubCall) {
   Isolate* isolate = CcTest::InitIsolateOnce();
   Zone zone(isolate->allocator());
-  ToNumberStub stub(isolate);
+  Callable callable = CodeFactory::ToNumber(isolate);
   CompilationInfo info(ArrayVector("test"), isolate, &zone,
                        Code::ComputeFlags(Code::STUB));
-  CallInterfaceDescriptor interface_descriptor =
-      stub.GetCallInterfaceDescriptor();
   CallDescriptor* descriptor = Linkage::GetStubCallDescriptor(
-      isolate, &zone, interface_descriptor, stub.GetStackParameterCount(),
-      CallDescriptor::kNoFlags, Operator::kNoProperties);
+      isolate, &zone, callable.descriptor(), 0, CallDescriptor::kNoFlags,
+      Operator::kNoProperties);
   CHECK(descriptor);
   CHECK_EQ(0, static_cast<int>(descriptor->StackParameterCount()));
   CHECK_EQ(1, static_cast<int>(descriptor->ReturnCount()));
diff --git a/test/cctest/compiler/test-machine-operator-reducer.cc b/test/cctest/compiler/test-machine-operator-reducer.cc
index 86888e9..799a804 100644
--- a/test/cctest/compiler/test-machine-operator-reducer.cc
+++ b/test/cctest/compiler/test-machine-operator-reducer.cc
@@ -616,13 +616,8 @@
   R.CheckDontPutConstantOnRight(-440197);
 
   Node* x = R.Parameter(0);
-  Node* y = R.Parameter(1);
-  Node* zero = R.Constant<int32_t>(0);
-  Node* sub = R.graph.NewNode(R.machine.Int32Sub(), x, y);
 
   R.CheckFoldBinop<int32_t>(0, x, x);  // x < x  => 0
-  R.CheckFoldBinop(x, y, sub, zero);   // x - y < 0 => x < y
-  R.CheckFoldBinop(y, x, zero, sub);   // 0 < x - y => y < x
 }
 
 
@@ -640,13 +635,8 @@
   FOR_INT32_INPUTS(i) { R.CheckDontPutConstantOnRight<int32_t>(*i); }
 
   Node* x = R.Parameter(0);
-  Node* y = R.Parameter(1);
-  Node* zero = R.Constant<int32_t>(0);
-  Node* sub = R.graph.NewNode(R.machine.Int32Sub(), x, y);
 
   R.CheckFoldBinop<int32_t>(1, x, x);  // x <= x => 1
-  R.CheckFoldBinop(x, y, sub, zero);   // x - y <= 0 => x <= y
-  R.CheckFoldBinop(y, x, zero, sub);   // 0 <= x - y => y <= x
 }
 
 
diff --git a/test/cctest/compiler/test-multiple-return.cc b/test/cctest/compiler/test-multiple-return.cc
index 53bae5e..aa7ec02 100644
--- a/test/cctest/compiler/test-multiple-return.cc
+++ b/test/cctest/compiler/test-multiple-return.cc
@@ -27,8 +27,7 @@
                                   int param_count) {
   MachineSignature::Builder msig(zone, return_count, param_count);
   LocationSignature::Builder locations(zone, return_count, param_count);
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN);
+  const RegisterConfiguration* config = RegisterConfiguration::Turbofan();
 
   // Add return location(s).
   CHECK(return_count <= config->num_allocatable_general_registers());
diff --git a/test/cctest/compiler/test-representation-change.cc b/test/cctest/compiler/test-representation-change.cc
index 76aa390..0d6b5b2 100644
--- a/test/cctest/compiler/test-representation-change.cc
+++ b/test/cctest/compiler/test-representation-change.cc
@@ -83,12 +83,20 @@
     return n;
   }
 
+  Node* Return(Node* input) {
+    Node* n = graph()->NewNode(common()->Return(), input, graph()->start(),
+                               graph()->start());
+    return n;
+  }
+
   void CheckTypeError(MachineRepresentation from, Type* from_type,
                       MachineRepresentation to) {
     changer()->testing_type_errors_ = true;
     changer()->type_error_ = false;
     Node* n = Parameter(0);
-    Node* c = changer()->GetRepresentationFor(n, from, from_type, to);
+    Node* use = Return(n);
+    Node* c = changer()->GetRepresentationFor(n, from, from_type, use,
+                                              UseInfo(to, Truncation::None()));
     CHECK(changer()->type_error_);
     CHECK_EQ(n, c);
   }
@@ -96,7 +104,9 @@
   void CheckNop(MachineRepresentation from, Type* from_type,
                 MachineRepresentation to) {
     Node* n = Parameter(0);
-    Node* c = changer()->GetRepresentationFor(n, from, from_type, to);
+    Node* use = Return(n);
+    Node* c = changer()->GetRepresentationFor(n, from, from_type, use,
+                                              UseInfo(to, Truncation::None()));
     CHECK_EQ(n, c);
   }
 };
@@ -113,15 +123,17 @@
   RepresentationChangerTester r;
 
   Node* true_node = r.jsgraph()->TrueConstant();
+  Node* true_use = r.Return(true_node);
   Node* true_bit = r.changer()->GetRepresentationFor(
-      true_node, MachineRepresentation::kTagged, Type::None(),
-      MachineRepresentation::kBit);
+      true_node, MachineRepresentation::kTagged, Type::None(), true_use,
+      UseInfo(MachineRepresentation::kBit, Truncation::None()));
   r.CheckInt32Constant(true_bit, 1);
 
   Node* false_node = r.jsgraph()->FalseConstant();
+  Node* false_use = r.Return(false_node);
   Node* false_bit = r.changer()->GetRepresentationFor(
-      false_node, MachineRepresentation::kTagged, Type::None(),
-      MachineRepresentation::kBit);
+      false_node, MachineRepresentation::kTagged, Type::None(), false_use,
+      UseInfo(MachineRepresentation::kBit, Truncation::None()));
   r.CheckInt32Constant(false_bit, 0);
 }
 
@@ -131,9 +143,10 @@
 
   for (int i = -5; i < 5; i++) {
     Node* node = r.jsgraph()->Int32Constant(i);
+    Node* use = r.Return(node);
     Node* val = r.changer()->GetRepresentationFor(
-        node, MachineRepresentation::kBit, Type::Boolean(),
-        MachineRepresentation::kTagged);
+        node, MachineRepresentation::kBit, Type::Boolean(), use,
+        UseInfo(MachineRepresentation::kTagged, Truncation::None()));
     r.CheckHeapConstant(val, i == 0 ? r.isolate()->heap()->false_value()
                                     : r.isolate()->heap()->true_value());
   }
@@ -146,49 +159,54 @@
   {
     FOR_FLOAT64_INPUTS(i) {
       Node* n = r.jsgraph()->Float64Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::None(),
-          MachineRepresentation::kTagged);
-      r.CheckNumberConstant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::None(), use,
+      UseInfo(MachineRepresentation::kTagged, Truncation::None()));
+  r.CheckNumberConstant(c, *i);
     }
   }
 
   {
     FOR_FLOAT64_INPUTS(i) {
       Node* n = r.jsgraph()->Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::None(),
-          MachineRepresentation::kTagged);
-      r.CheckNumberConstant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::None(), use,
+      UseInfo(MachineRepresentation::kTagged, Truncation::None()));
+  r.CheckNumberConstant(c, *i);
     }
   }
 
   {
     FOR_FLOAT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat32, Type::None(),
-          MachineRepresentation::kTagged);
-      r.CheckNumberConstant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat32, Type::None(), use,
+      UseInfo(MachineRepresentation::kTagged, Truncation::None()));
+  r.CheckNumberConstant(c, *i);
     }
   }
 
   {
     FOR_INT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Signed32(),
-          MachineRepresentation::kTagged);
-      r.CheckNumberConstant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kWord32, Type::Signed32(), use,
+      UseInfo(MachineRepresentation::kTagged, Truncation::None()));
+  r.CheckNumberConstant(c, *i);
     }
   }
 
   {
     FOR_UINT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Unsigned32(),
-          MachineRepresentation::kTagged);
+          n, MachineRepresentation::kWord32, Type::Unsigned32(), use,
+          UseInfo(MachineRepresentation::kTagged, Truncation::None()));
       r.CheckNumberConstant(c, *i);
     }
   }
@@ -201,49 +219,54 @@
   {
     FOR_FLOAT64_INPUTS(i) {
       Node* n = r.jsgraph()->Float64Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::None(),
-          MachineRepresentation::kFloat64);
-      CHECK_EQ(n, c);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat64, Truncation::None()));
+  CHECK_EQ(n, c);
     }
   }
 
   {
     FOR_FLOAT64_INPUTS(i) {
       Node* n = r.jsgraph()->Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kTagged, Type::None(),
-          MachineRepresentation::kFloat64);
-      r.CheckFloat64Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kTagged, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat64, Truncation::None()));
+  r.CheckFloat64Constant(c, *i);
     }
   }
 
   {
     FOR_FLOAT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat32, Type::None(),
-          MachineRepresentation::kFloat64);
-      r.CheckFloat64Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat32, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat64, Truncation::None()));
+  r.CheckFloat64Constant(c, *i);
     }
   }
 
   {
     FOR_INT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Signed32(),
-          MachineRepresentation::kFloat64);
-      r.CheckFloat64Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kWord32, Type::Signed32(), use,
+      UseInfo(MachineRepresentation::kFloat64, Truncation::None()));
+  r.CheckFloat64Constant(c, *i);
     }
   }
 
   {
     FOR_UINT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Unsigned32(),
-          MachineRepresentation::kFloat64);
+          n, MachineRepresentation::kWord32, Type::Unsigned32(), use,
+          UseInfo(MachineRepresentation::kFloat64, Truncation::None()));
       r.CheckFloat64Constant(c, *i);
     }
   }
@@ -264,30 +287,33 @@
   {
     FOR_FLOAT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat32, Type::None(),
-          MachineRepresentation::kFloat32);
-      CHECK_EQ(n, c);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat32, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat32, Truncation::None()));
+  CHECK_EQ(n, c);
     }
   }
 
   {
     FOR_FLOAT32_INPUTS(i) {
       Node* n = r.jsgraph()->Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kTagged, Type::None(),
-          MachineRepresentation::kFloat32);
-      r.CheckFloat32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kTagged, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat32, Truncation::None()));
+  r.CheckFloat32Constant(c, *i);
     }
   }
 
   {
     FOR_FLOAT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float64Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::None(),
-          MachineRepresentation::kFloat32);
-      r.CheckFloat32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::None(), use,
+      UseInfo(MachineRepresentation::kFloat32, Truncation::None()));
+  r.CheckFloat32Constant(c, *i);
     }
   }
 
@@ -295,9 +321,10 @@
     FOR_INT32_INPUTS(i) {
       if (!IsFloat32Int32(*i)) continue;
       Node* n = r.jsgraph()->Int32Constant(*i);
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Signed32(),
-          MachineRepresentation::kFloat32);
+          n, MachineRepresentation::kWord32, Type::Signed32(), use,
+          UseInfo(MachineRepresentation::kFloat32, Truncation::None()));
       r.CheckFloat32Constant(c, static_cast<float>(*i));
     }
   }
@@ -306,9 +333,10 @@
     FOR_UINT32_INPUTS(i) {
       if (!IsFloat32Uint32(*i)) continue;
       Node* n = r.jsgraph()->Int32Constant(*i);
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Unsigned32(),
-          MachineRepresentation::kFloat32);
+          n, MachineRepresentation::kWord32, Type::Unsigned32(), use,
+          UseInfo(MachineRepresentation::kFloat32, Truncation::None()));
       r.CheckFloat32Constant(c, static_cast<float>(*i));
     }
   }
@@ -321,10 +349,11 @@
   {
     FOR_INT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Signed32(),
-          MachineRepresentation::kWord32);
-      r.CheckInt32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kWord32, Type::Signed32(), use,
+      UseInfo(MachineRepresentation::kWord32, Truncation::None()));
+  r.CheckInt32Constant(c, *i);
     }
   }
 
@@ -332,9 +361,10 @@
     FOR_INT32_INPUTS(i) {
       if (!IsFloat32Int32(*i)) continue;
       Node* n = r.jsgraph()->Float32Constant(static_cast<float>(*i));
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat32, Type::Signed32(),
-          MachineRepresentation::kWord32);
+          n, MachineRepresentation::kFloat32, Type::Signed32(), use,
+          UseInfo(MachineRepresentation::kWord32, Truncation::None()));
       r.CheckInt32Constant(c, *i);
     }
   }
@@ -342,19 +372,21 @@
   {
     FOR_INT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float64Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::Signed32(),
-          MachineRepresentation::kWord32);
-      r.CheckInt32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::Signed32(), use,
+      UseInfo(MachineRepresentation::kWord32, Truncation::None()));
+  r.CheckInt32Constant(c, *i);
     }
   }
 
   {
     FOR_INT32_INPUTS(i) {
       Node* n = r.jsgraph()->Constant(*i);
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kTagged, Type::Signed32(),
-          MachineRepresentation::kWord32);
+          n, MachineRepresentation::kTagged, Type::Signed32(), use,
+          UseInfo(MachineRepresentation::kWord32, Truncation::None()));
       r.CheckInt32Constant(c, *i);
     }
   }
@@ -367,10 +399,11 @@
   {
     FOR_UINT32_INPUTS(i) {
       Node* n = r.jsgraph()->Int32Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kWord32, Type::Unsigned32(),
-          MachineRepresentation::kWord32);
-      r.CheckUint32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kWord32, Type::Unsigned32(), use,
+      UseInfo(MachineRepresentation::kWord32, Truncation::None()));
+  r.CheckUint32Constant(c, *i);
     }
   }
 
@@ -378,9 +411,10 @@
     FOR_UINT32_INPUTS(i) {
       if (!IsFloat32Uint32(*i)) continue;
       Node* n = r.jsgraph()->Float32Constant(static_cast<float>(*i));
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat32, Type::Unsigned32(),
-          MachineRepresentation::kWord32);
+          n, MachineRepresentation::kFloat32, Type::Unsigned32(), use,
+          UseInfo(MachineRepresentation::kWord32, Truncation::None()));
       r.CheckUint32Constant(c, *i);
     }
   }
@@ -388,19 +422,21 @@
   {
     FOR_UINT32_INPUTS(i) {
       Node* n = r.jsgraph()->Float64Constant(*i);
-      Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kFloat64, Type::Unsigned32(),
-          MachineRepresentation::kWord32);
-      r.CheckUint32Constant(c, *i);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(
+      n, MachineRepresentation::kFloat64, Type::Unsigned32(), use,
+      UseInfo(MachineRepresentation::kWord32, Truncation::None()));
+  r.CheckUint32Constant(c, *i);
     }
   }
 
   {
     FOR_UINT32_INPUTS(i) {
       Node* n = r.jsgraph()->Constant(static_cast<double>(*i));
+      Node* use = r.Return(n);
       Node* c = r.changer()->GetRepresentationFor(
-          n, MachineRepresentation::kTagged, Type::Unsigned32(),
-          MachineRepresentation::kWord32);
+          n, MachineRepresentation::kTagged, Type::Unsigned32(), use,
+          UseInfo(MachineRepresentation::kWord32, Truncation::None()));
       r.CheckUint32Constant(c, *i);
     }
   }
@@ -412,7 +448,9 @@
   RepresentationChangerTester r;
 
   Node* n = r.Parameter();
-  Node* c = r.changer()->GetRepresentationFor(n, from, from_type, to);
+  Node* use = r.Return(n);
+  Node* c = r.changer()->GetRepresentationFor(n, from, from_type, use,
+                                              UseInfo(to, Truncation::None()));
 
   CHECK_NE(c, n);
   CHECK_EQ(expected, c->opcode());
@@ -427,7 +465,9 @@
   RepresentationChangerTester r;
 
   Node* n = r.Parameter();
-  Node* c1 = r.changer()->GetRepresentationFor(n, from, from_type, to);
+  Node* use = r.Return(n);
+  Node* c1 = r.changer()->GetRepresentationFor(n, from, from_type, use,
+                                               UseInfo(to, Truncation::None()));
 
   CHECK_NE(c1, n);
   CHECK_EQ(expected1, c1->opcode());
@@ -473,7 +513,10 @@
   CheckChange(IrOpcode::kChangeTaggedToFloat64, MachineRepresentation::kTagged,
               Type::Number(), MachineRepresentation::kFloat64);
   CheckChange(IrOpcode::kChangeTaggedToFloat64, MachineRepresentation::kTagged,
-              Type::NumberOrUndefined(), MachineRepresentation::kFloat64);
+              Type::Number(), MachineRepresentation::kFloat64);
+  CheckChange(IrOpcode::kTruncateTaggedToFloat64,
+              MachineRepresentation::kTagged, Type::NumberOrUndefined(),
+              MachineRepresentation::kFloat64);
   CheckTwoChanges(IrOpcode::kChangeTaggedSignedToInt32,
                   IrOpcode::kChangeInt32ToFloat64,
                   MachineRepresentation::kTagged, Type::TaggedSigned(),
diff --git a/test/cctest/compiler/test-run-intrinsics.cc b/test/cctest/compiler/test-run-intrinsics.cc
index 6aa5f39..0ea611b 100644
--- a/test/cctest/compiler/test-run-intrinsics.cc
+++ b/test/cctest/compiler/test-run-intrinsics.cc
@@ -111,37 +111,6 @@
 }
 
 
-TEST(OneByteSeqStringGetChar) {
-  FunctionTester T("(function(a,b) { return %_OneByteSeqStringGetChar(a,b); })",
-                   flags);
-
-  Handle<SeqOneByteString> string =
-      T.main_isolate()->factory()->NewRawOneByteString(3).ToHandleChecked();
-  string->SeqOneByteStringSet(0, 'b');
-  string->SeqOneByteStringSet(1, 'a');
-  string->SeqOneByteStringSet(2, 'r');
-  T.CheckCall(T.Val('b'), string, T.Val(0.0));
-  T.CheckCall(T.Val('a'), string, T.Val(1));
-  T.CheckCall(T.Val('r'), string, T.Val(2));
-}
-
-
-TEST(OneByteSeqStringSetChar) {
-  FunctionTester T("(function(a,b) { %_OneByteSeqStringSetChar(a,88,b); })",
-                   flags);
-
-  Handle<SeqOneByteString> string =
-      T.main_isolate()->factory()->NewRawOneByteString(3).ToHandleChecked();
-  string->SeqOneByteStringSet(0, 'b');
-  string->SeqOneByteStringSet(1, 'a');
-  string->SeqOneByteStringSet(2, 'r');
-  T.Call(T.Val(1), string);
-  CHECK_EQ('b', string->SeqOneByteStringGet(0));
-  CHECK_EQ('X', string->SeqOneByteStringGet(1));
-  CHECK_EQ('r', string->SeqOneByteStringGet(2));
-}
-
-
 TEST(StringAdd) {
   FunctionTester T("(function(a,b) { return %_StringAdd(a,b); })", flags);
 
@@ -151,15 +120,6 @@
 }
 
 
-TEST(StringCharAt) {
-  FunctionTester T("(function(a,b) { return %_StringCharAt(a,b); })", flags);
-
-  T.CheckCall(T.Val("e"), T.Val("huge fan!"), T.Val(3));
-  T.CheckCall(T.Val("f"), T.Val("\xE2\x9D\x8A fan!"), T.Val(2));
-  T.CheckCall(T.Val(""), T.Val("not a fan!"), T.Val(23));
-}
-
-
 TEST(StringCharCodeAt) {
   FunctionTester T("(function(a,b) { return %_StringCharCodeAt(a,b); })",
                    flags);
@@ -197,37 +157,6 @@
 }
 
 
-TEST(TwoByteSeqStringGetChar) {
-  FunctionTester T("(function(a,b) { return %_TwoByteSeqStringGetChar(a,b); })",
-                   flags);
-
-  Handle<SeqTwoByteString> string =
-      T.main_isolate()->factory()->NewRawTwoByteString(3).ToHandleChecked();
-  string->SeqTwoByteStringSet(0, 'b');
-  string->SeqTwoByteStringSet(1, 'a');
-  string->SeqTwoByteStringSet(2, 'r');
-  T.CheckCall(T.Val('b'), string, T.Val(0.0));
-  T.CheckCall(T.Val('a'), string, T.Val(1));
-  T.CheckCall(T.Val('r'), string, T.Val(2));
-}
-
-
-TEST(TwoByteSeqStringSetChar) {
-  FunctionTester T("(function(a,b) { %_TwoByteSeqStringSetChar(a,88,b); })",
-                   flags);
-
-  Handle<SeqTwoByteString> string =
-      T.main_isolate()->factory()->NewRawTwoByteString(3).ToHandleChecked();
-  string->SeqTwoByteStringSet(0, 'b');
-  string->SeqTwoByteStringSet(1, 'a');
-  string->SeqTwoByteStringSet(2, 'r');
-  T.Call(T.Val(1), string);
-  CHECK_EQ('b', string->SeqTwoByteStringGet(0));
-  CHECK_EQ('X', string->SeqTwoByteStringGet(1));
-  CHECK_EQ('r', string->SeqTwoByteStringGet(2));
-}
-
-
 TEST(ValueOf) {
   FunctionTester T("(function(a) { return %_ValueOf(a); })", flags);
 
diff --git a/test/cctest/compiler/test-run-jscalls.cc b/test/cctest/compiler/test-run-jscalls.cc
index 12566c2..06cfcd2 100644
--- a/test/cctest/compiler/test-run-jscalls.cc
+++ b/test/cctest/compiler/test-run-jscalls.cc
@@ -218,6 +218,7 @@
   i::Handle<i::JSFunction> jsfun = Handle<JSFunction>::cast(ofun);
   jsfun->set_code(T.function->code());
   jsfun->set_shared(T.function->shared());
+  jsfun->set_literals(T.function->literals());
   CHECK(context->Global()
             ->Set(context, v8_str("foo"), v8::Utils::CallableToLocal(jsfun))
             .FromJust());
@@ -242,6 +243,7 @@
   i::Handle<i::JSFunction> jsfun = Handle<JSFunction>::cast(ofun);
   jsfun->set_code(T.function->code());
   jsfun->set_shared(T.function->shared());
+  jsfun->set_literals(T.function->literals());
   CHECK(context->Global()
             ->Set(context, v8_str("foo"), v8::Utils::CallableToLocal(jsfun))
             .FromJust());
diff --git a/test/cctest/compiler/test-run-machops.cc b/test/cctest/compiler/test-run-machops.cc
index 6d681bc..685918a 100644
--- a/test/cctest/compiler/test-run-machops.cc
+++ b/test/cctest/compiler/test-run-machops.cc
@@ -7,6 +7,7 @@
 #include <limits>
 
 #include "src/base/bits.h"
+#include "src/base/ieee754.h"
 #include "src/base/utils/random-number-generator.h"
 #include "src/codegen.h"
 #include "test/cctest/cctest.h"
@@ -3568,6 +3569,12 @@
   }
 }
 
+TEST(RunFloat32Neg) {
+  BufferedRawMachineAssemblerTester<float> m(MachineType::Float32());
+  if (!m.machine()->Float32Neg().IsSupported()) return;
+  m.Return(m.AddNode(m.machine()->Float32Neg().op(), m.Parameter(0)));
+  FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(-0.0f - *i, m.Call(*i)); }
+}
 
 TEST(RunFloat32Mul) {
   BufferedRawMachineAssemblerTester<float> m(MachineType::Float32(),
@@ -3612,6 +3619,12 @@
   }
 }
 
+TEST(RunFloat64Neg) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  if (!m.machine()->Float64Neg().IsSupported()) return;
+  m.Return(m.AddNode(m.machine()->Float64Neg().op(), m.Parameter(0)));
+  FOR_FLOAT64_INPUTS(i) { CHECK_FLOAT_EQ(-0.0 - *i, m.Call(*i)); }
+}
 
 TEST(RunFloat64Mul) {
   BufferedRawMachineAssemblerTester<double> m(MachineType::Float64(),
@@ -5483,6 +5496,156 @@
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(std::abs(*i), m.Call(*i)); }
 }
 
+TEST(RunFloat64Atan) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Atan(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK_DOUBLE_EQ(-0.0, m.Call(-0.0));
+  CHECK_DOUBLE_EQ(0.0, m.Call(0.0));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::atan(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Atan2) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64(),
+                                              MachineType::Float64());
+  m.Return(m.Float64Atan2(m.Parameter(0), m.Parameter(1)));
+  FOR_FLOAT64_INPUTS(i) {
+    FOR_FLOAT64_INPUTS(j) {
+      CHECK_DOUBLE_EQ(ieee754::atan2(*i, *j), m.Call(*i, *j));
+    }
+  }
+}
+
+TEST(RunFloat64Atanh) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Atanh(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(), m.Call(1.0));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(-1.0));
+  CHECK_DOUBLE_EQ(-0.0, m.Call(-0.0));
+  CHECK_DOUBLE_EQ(0.0, m.Call(0.0));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::atanh(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Cos) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Cos(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::cos(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Exp) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Exp(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK_EQ(0.0, m.Call(-std::numeric_limits<double>::infinity()));
+  CHECK_DOUBLE_EQ(1.0, m.Call(-0.0));
+  CHECK_DOUBLE_EQ(1.0, m.Call(0.0));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::exp(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Expm1) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Expm1(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK_EQ(-1.0, m.Call(-std::numeric_limits<double>::infinity()));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::expm1(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Log) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Log(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK(std::isnan(m.Call(-std::numeric_limits<double>::infinity())));
+  CHECK(std::isnan(m.Call(-1.0)));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(-0.0));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(0.0));
+  CHECK_DOUBLE_EQ(0.0, m.Call(1.0));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::log(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Log1p) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Log1p(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK(std::isnan(m.Call(-std::numeric_limits<double>::infinity())));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(-1.0));
+  CHECK_DOUBLE_EQ(0.0, m.Call(0.0));
+  CHECK_DOUBLE_EQ(-0.0, m.Call(-0.0));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::log1p(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Log2) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Log2(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK(std::isnan(m.Call(-std::numeric_limits<double>::infinity())));
+  CHECK(std::isnan(m.Call(-1.0)));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(-0.0));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(0.0));
+  CHECK_DOUBLE_EQ(0.0, m.Call(1.0));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::log2(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Log10) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Log10(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK(std::isnan(m.Call(-std::numeric_limits<double>::infinity())));
+  CHECK(std::isnan(m.Call(-1.0)));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(-0.0));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(), m.Call(0.0));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::log10(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Cbrt) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Cbrt(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  CHECK_DOUBLE_EQ(std::numeric_limits<double>::infinity(),
+                  m.Call(std::numeric_limits<double>::infinity()));
+  CHECK_DOUBLE_EQ(-std::numeric_limits<double>::infinity(),
+                  m.Call(-std::numeric_limits<double>::infinity()));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::cbrt(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Sin) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Sin(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::sin(*i), m.Call(*i)); }
+}
+
+TEST(RunFloat64Tan) {
+  BufferedRawMachineAssemblerTester<double> m(MachineType::Float64());
+  m.Return(m.Float64Tan(m.Parameter(0)));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::quiet_NaN())));
+  CHECK(std::isnan(m.Call(std::numeric_limits<double>::signaling_NaN())));
+  FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ieee754::tan(*i), m.Call(*i)); }
+}
 
 static double two_30 = 1 << 30;             // 2^30 is a smi boundary.
 static double two_52 = two_30 * (1 << 22);  // 2^52 is a precision boundary.
diff --git a/test/cctest/compiler/test-run-native-calls.cc b/test/cctest/compiler/test-run-native-calls.cc
index a63cc8a..9c67fd5 100644
--- a/test/cctest/compiler/test-run-native-calls.cc
+++ b/test/cctest/compiler/test-run-native-calls.cc
@@ -18,6 +18,8 @@
 namespace internal {
 namespace compiler {
 
+const auto GetRegConfig = RegisterConfiguration::Turbofan;
+
 namespace {
 typedef float float32;
 typedef double float64;
@@ -76,12 +78,8 @@
 class RegisterPairs : public Pairs {
  public:
   RegisterPairs()
-      : Pairs(
-            100,
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->num_allocatable_general_registers(),
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->allocatable_general_codes()) {}
+      : Pairs(100, GetRegConfig()->num_allocatable_general_registers(),
+              GetRegConfig()->allocatable_general_codes()) {}
 };
 
 
@@ -91,10 +89,14 @@
   Float32RegisterPairs()
       : Pairs(
             100,
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->num_allocatable_aliased_double_registers(),
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->allocatable_double_codes()) {}
+#if V8_TARGET_ARCH_ARM
+            // TODO(bbudge) Modify wasm linkage to allow use of all float regs.
+            GetRegConfig()->num_allocatable_double_registers() / 2 - 2,
+#else
+            GetRegConfig()->num_allocatable_double_registers(),
+#endif
+            GetRegConfig()->allocatable_double_codes()) {
+  }
 };
 
 
@@ -102,12 +104,8 @@
 class Float64RegisterPairs : public Pairs {
  public:
   Float64RegisterPairs()
-      : Pairs(
-            100,
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->num_allocatable_aliased_double_registers(),
-            RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-                ->allocatable_double_codes()) {}
+      : Pairs(100, GetRegConfig()->num_allocatable_double_registers(),
+              GetRegConfig()->allocatable_double_codes()) {}
 };
 
 
@@ -136,7 +134,12 @@
     if (IsFloatingPoint(type.representation())) {
       // Allocate a floating point register/stack location.
       if (fp_offset < fp_count) {
-        return LinkageLocation::ForRegister(fp_regs[fp_offset++]);
+        int code = fp_regs[fp_offset++];
+#if V8_TARGET_ARCH_ARM
+        // TODO(bbudge) Modify wasm linkage to allow use of all float regs.
+        if (type.representation() == MachineRepresentation::kFloat32) code *= 2;
+#endif
+        return LinkageLocation::ForRegister(code);
       } else {
         int offset = -1 - stack_offset;
         stack_offset += StackWords(type);
@@ -154,10 +157,7 @@
     }
   }
   int StackWords(MachineType type) {
-    // TODO(titzer): hack. float32 occupies 8 bytes on stack.
-    int size = IsFloatingPoint(type.representation())
-                   ? kDoubleSize
-                   : (1 << ElementSizeLog2Of(type.representation()));
+    int size = 1 << ElementSizeLog2Of(type.representation());
     return size <= kPointerSize ? 1 : size / kPointerSize;
   }
   void Reset() {
@@ -636,15 +636,14 @@
 
 
 // Separate tests for parallelization.
-#define TEST_INT32_SUB_WITH_RET(x)                \
-  TEST(Run_Int32Sub_all_allocatable_pairs_##x) {  \
-    if (x < Register::kNumRegisters &&            \
-        Register::from_code(x).IsAllocatable()) { \
-      Test_RunInt32SubWithRet(x);                 \
-    }                                             \
+#define TEST_INT32_SUB_WITH_RET(x)                     \
+  TEST(Run_Int32Sub_all_allocatable_pairs_##x) {       \
+    if (x < Register::kNumRegisters &&                 \
+        GetRegConfig()->IsAllocatableGeneralCode(x)) { \
+      Test_RunInt32SubWithRet(x);                      \
+    }                                                  \
   }
 
-
 TEST_INT32_SUB_WITH_RET(0)
 TEST_INT32_SUB_WITH_RET(1)
 TEST_INT32_SUB_WITH_RET(2)
@@ -692,9 +691,7 @@
     base::AccountingAllocator allocator;
     Zone zone(&allocator);
     int parray[2];
-    int rarray[] = {
-        RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-            ->GetAllocatableGeneralCode(0)};
+    int rarray[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
     pairs.Next(&parray[0], &parray[1], false);
     Allocator params(parray, 2, nullptr, 0);
     Allocator rets(rarray, 1, nullptr, 0);
@@ -741,14 +738,12 @@
 static void Test_Int32_WeightedSum_of_size(int count) {
   Int32Signature sig(count);
   for (int p0 = 0; p0 < Register::kNumRegisters; p0++) {
-    if (Register::from_code(p0).IsAllocatable()) {
+    if (GetRegConfig()->IsAllocatableGeneralCode(p0)) {
       base::AccountingAllocator allocator;
       Zone zone(&allocator);
 
       int parray[] = {p0};
-      int rarray[] = {
-          RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-              ->GetAllocatableGeneralCode(0)};
+      int rarray[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
       Allocator params(parray, 1, nullptr, 0);
       Allocator rets(rarray, 1, nullptr, 0);
       RegisterConfig config(params, rets);
@@ -801,12 +796,8 @@
 
 template <int which>
 void Test_Int32_Select() {
-  int parray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0)};
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0)};
+  int parray[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
   Allocator params(parray, 1, nullptr, 0);
   Allocator rets(rarray, 1, nullptr, 0);
   RegisterConfig config(params, rets);
@@ -843,14 +834,10 @@
 
 
 TEST(Int64Select_registers) {
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_allocatable_general_registers() < 2)
-    return;
+  if (GetRegConfig()->num_allocatable_general_registers() < 2) return;
   if (kPointerSize < 8) return;  // TODO(titzer): int64 on 32-bit platforms
 
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
   ArgsBuffer<int64_t>::Sig sig(2);
 
   RegisterPairs pairs;
@@ -871,14 +858,11 @@
 
 
 TEST(Float32Select_registers) {
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_allocatable_double_registers() < 2) {
+  if (GetRegConfig()->num_allocatable_double_registers() < 2) {
     return;
   }
 
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   ArgsBuffer<float32>::Sig sig(2);
 
   Float32RegisterPairs pairs;
@@ -899,15 +883,9 @@
 
 
 TEST(Float64Select_registers) {
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_allocatable_double_registers() < 2)
-    return;
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_allocatable_general_registers() < 2)
-    return;
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  if (GetRegConfig()->num_allocatable_double_registers() < 2) return;
+  if (GetRegConfig()->num_allocatable_general_registers() < 2) return;
+  int rarray[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   ArgsBuffer<float64>::Sig sig(2);
 
   Float64RegisterPairs pairs;
@@ -928,9 +906,7 @@
 
 
 TEST(Float32Select_stack_params_return_reg) {
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   Allocator params(nullptr, 0, nullptr, 0);
   Allocator rets(nullptr, 0, rarray, 1);
   RegisterConfig config(params, rets);
@@ -951,9 +927,7 @@
 
 
 TEST(Float64Select_stack_params_return_reg) {
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   Allocator params(nullptr, 0, nullptr, 0);
   Allocator rets(nullptr, 0, rarray, 1);
   RegisterConfig config(params, rets);
@@ -1006,9 +980,7 @@
 
 
 TEST(Float64StackParamsToStackParams) {
-  int rarray[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int rarray[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   Allocator params(nullptr, 0, nullptr, 0);
   Allocator rets(nullptr, 0, rarray, 1);
 
@@ -1027,9 +999,7 @@
 
 
 void MixedParamTest(int start) {
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_double_registers() < 2)
-    return;
+  if (GetRegConfig()->num_double_registers() < 2) return;
 
 // TODO(titzer): mix in 64-bit types on all platforms when supported.
 #if V8_TARGET_ARCH_32_BIT
@@ -1058,22 +1028,12 @@
   const int num_params = static_cast<int>(arraysize(types) - start);
 
   // Build call descriptor
-  int parray_gp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0),
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(1)};
-  int rarray_gp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0)};
-  int parray_fp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0),
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(1)};
-  int rarray_fp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int parray_gp[] = {GetRegConfig()->GetAllocatableGeneralCode(0),
+                     GetRegConfig()->GetAllocatableGeneralCode(1)};
+  int rarray_gp[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
+  int parray_fp[] = {GetRegConfig()->GetAllocatableDoubleCode(0),
+                     GetRegConfig()->GetAllocatableDoubleCode(1)};
+  int rarray_fp[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   Allocator palloc(parray_gp, 2, parray_fp, 2);
   Allocator ralloc(rarray_gp, 1, rarray_fp, 1);
   RegisterConfig config(palloc, ralloc);
@@ -1174,29 +1134,17 @@
   // Test: Generate with a function f which reserves a stack slot, call an inner
   // function g from f which writes into the stack slot of f.
 
-  if (RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->num_allocatable_double_registers() < 2)
-    return;
+  if (GetRegConfig()->num_allocatable_double_registers() < 2) return;
 
   Isolate* isolate = CcTest::InitIsolateOnce();
 
   // Lots of code to generate the build descriptor for the inner function.
-  int parray_gp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0),
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(1)};
-  int rarray_gp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0)};
-  int parray_fp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0),
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(1)};
-  int rarray_fp[] = {
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableDoubleCode(0)};
+  int parray_gp[] = {GetRegConfig()->GetAllocatableGeneralCode(0),
+                     GetRegConfig()->GetAllocatableGeneralCode(1)};
+  int rarray_gp[] = {GetRegConfig()->GetAllocatableGeneralCode(0)};
+  int parray_fp[] = {GetRegConfig()->GetAllocatableDoubleCode(0),
+                     GetRegConfig()->GetAllocatableDoubleCode(1)};
+  int rarray_fp[] = {GetRegConfig()->GetAllocatableDoubleCode(0)};
   Allocator palloc(parray_gp, 2, parray_fp, 2);
   Allocator ralloc(rarray_gp, 1, rarray_fp, 1);
   RegisterConfig config(palloc, ralloc);
diff --git a/test/cctest/compiler/test-simplified-lowering.cc b/test/cctest/compiler/test-simplified-lowering.cc
index 4efb149..b56721e 100644
--- a/test/cctest/compiler/test-simplified-lowering.cc
+++ b/test/cctest/compiler/test-simplified-lowering.cc
@@ -1167,7 +1167,7 @@
                        Type::Unsigned32());
 
   CheckChangeInsertion(IrOpcode::kChangeFloat64ToTagged, MachineType::Float64(),
-                       MachineType::AnyTagged());
+                       MachineType::AnyTagged(), Type::Number());
   CheckChangeInsertion(IrOpcode::kChangeTaggedToFloat64,
                        MachineType::AnyTagged(), MachineType::Float64(),
                        Type::Number());
@@ -1258,7 +1258,7 @@
 
   for (size_t i = 0; i < arraysize(ops); i++) {
     CheckChangesAroundBinop(&t, ops[i], IrOpcode::kChangeTaggedToFloat64,
-                            IrOpcode::kChangeFloat64ToTagged);
+                            IrOpcode::kChangeFloat64ToTagged, Type::Number());
   }
 }
 
@@ -1488,8 +1488,9 @@
 TEST(InsertChangeForLoadElement) {
   // 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(), kNoWriteBarrier};
+  ElementAccess access = {kTaggedBase, FixedArrayBase::kHeaderSize,
+                          Type::Number(), MachineType::Float64(),
+                          kNoWriteBarrier};
 
   Node* load = t.graph()->NewNode(t.simplified()->LoadElement(access), t.p0,
                                   t.p1, t.start, t.start);
@@ -1505,8 +1506,8 @@
   // 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(),      kNoWriteBarrier};
+      kTaggedBase,    FixedArrayBase::kHeaderSize, Handle<Name>::null(),
+      Type::Number(), MachineType::Float64(),      kNoWriteBarrier};
 
   Node* load = t.graph()->NewNode(t.simplified()->LoadField(access), t.p0,
                                   t.start, t.start);
diff --git a/test/cctest/compiler/value-helper.h b/test/cctest/compiler/value-helper.h
index 7d26dba..75d22b4 100644
--- a/test/cctest/compiler/value-helper.h
+++ b/test/cctest/compiler/value-helper.h
@@ -110,7 +110,9 @@
         -3.63759e-10f,
         -4.30175e-14f,
         -5.27385e-15f,
+        -1.5707963267948966f,
         -1.48084e-15f,
+        -2.220446049250313e-16f,
         -1.05755e-19f,
         -3.2995e-21f,
         -1.67354e-23f,
@@ -129,6 +131,7 @@
         6.25073e-22f,
         4.1723e-13f,
         1.44343e-09f,
+        1.5707963267948966f,
         5.27004e-08f,
         9.48298e-08f,
         5.57888e-07f,
@@ -177,6 +180,7 @@
   static std::vector<double> float64_vector() {
     static const double nan = std::numeric_limits<double>::quiet_NaN();
     static const double values[] = {-2e66,
+                                    -2.220446049250313e-16,
                                     -9223373136366403584.0,
                                     -9223372036854775808.0,  // INT64_MIN
                                     -2147483649.5,
@@ -188,6 +192,7 @@
                                     -999.75,
                                     -2e66,
                                     -1.75,
+                                    -1.5707963267948966,
                                     -1.0,
                                     -0.5,
                                     -0.0,
@@ -198,7 +203,11 @@
                                     0.375,
                                     0.5,
                                     1.0,
+                                    1.17549e-38,
+                                    1.56657e-37,
+                                    1.0000001,
                                     1.25,
+                                    1.5707963267948966,
                                     2,
                                     3.1e7,
                                     5.125,
diff --git a/test/cctest/heap/heap-utils.cc b/test/cctest/heap/heap-utils.cc
new file mode 100644
index 0000000..7d4d4bf
--- /dev/null
+++ b/test/cctest/heap/heap-utils.cc
@@ -0,0 +1,158 @@
+// 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/cctest/heap/heap-utils.h"
+
+#include "src/factory.h"
+#include "src/heap/heap-inl.h"
+#include "src/heap/incremental-marking.h"
+#include "src/heap/mark-compact.h"
+#include "src/isolate.h"
+
+namespace v8 {
+namespace internal {
+namespace heap {
+
+void SealCurrentObjects(Heap* heap) {
+  heap->CollectAllGarbage();
+  heap->CollectAllGarbage();
+  heap->mark_compact_collector()->EnsureSweepingCompleted();
+  heap->old_space()->EmptyAllocationInfo();
+  for (Page* page : *heap->old_space()) {
+    page->MarkNeverAllocateForTesting();
+  }
+}
+
+int FixedArrayLenFromSize(int size) {
+  return (size - FixedArray::kHeaderSize) / kPointerSize;
+}
+
+std::vector<Handle<FixedArray>> CreatePadding(Heap* heap, int padding_size,
+                                              PretenureFlag tenure,
+                                              int object_size) {
+  std::vector<Handle<FixedArray>> handles;
+  Isolate* isolate = heap->isolate();
+  int allocate_memory;
+  int length;
+  int free_memory = padding_size;
+  if (tenure == i::TENURED) {
+    heap->old_space()->EmptyAllocationInfo();
+    int overall_free_memory = static_cast<int>(heap->old_space()->Available());
+    CHECK(padding_size <= overall_free_memory || overall_free_memory == 0);
+  } else {
+    heap->new_space()->DisableInlineAllocationSteps();
+    int overall_free_memory =
+        static_cast<int>(*heap->new_space()->allocation_limit_address() -
+                         *heap->new_space()->allocation_top_address());
+    CHECK(padding_size <= overall_free_memory || overall_free_memory == 0);
+  }
+  while (free_memory > 0) {
+    if (free_memory > object_size) {
+      allocate_memory = object_size;
+      length = FixedArrayLenFromSize(allocate_memory);
+    } else {
+      allocate_memory = free_memory;
+      length = FixedArrayLenFromSize(allocate_memory);
+      if (length <= 0) {
+        // Not enough room to create another fixed array. Let's create a filler.
+        if (free_memory > (2 * kPointerSize)) {
+          heap->CreateFillerObjectAt(
+              *heap->old_space()->allocation_top_address(), free_memory,
+              ClearRecordedSlots::kNo);
+        }
+        break;
+      }
+    }
+    handles.push_back(isolate->factory()->NewFixedArray(length, tenure));
+    CHECK((tenure == NOT_TENURED && heap->InNewSpace(*handles.back())) ||
+          (tenure == TENURED && heap->InOldSpace(*handles.back())));
+    free_memory -= allocate_memory;
+  }
+  return handles;
+}
+
+void AllocateAllButNBytes(v8::internal::NewSpace* space, int extra_bytes,
+                          std::vector<Handle<FixedArray>>* out_handles) {
+  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;
+  std::vector<Handle<FixedArray>> handles =
+      heap::CreatePadding(space->heap(), new_linear_size, i::NOT_TENURED);
+  if (out_handles != nullptr)
+    out_handles->insert(out_handles->end(), handles.begin(), handles.end());
+}
+
+void FillCurrentPage(v8::internal::NewSpace* space,
+                     std::vector<Handle<FixedArray>>* out_handles) {
+  heap::AllocateAllButNBytes(space, 0, out_handles);
+}
+
+bool FillUpOnePage(v8::internal::NewSpace* space,
+                   std::vector<Handle<FixedArray>>* out_handles) {
+  space->DisableInlineAllocationSteps();
+  int space_remaining = static_cast<int>(*space->allocation_limit_address() -
+                                         *space->allocation_top_address());
+  if (space_remaining == 0) return false;
+  std::vector<Handle<FixedArray>> handles =
+      heap::CreatePadding(space->heap(), space_remaining, i::NOT_TENURED);
+  if (out_handles != nullptr)
+    out_handles->insert(out_handles->end(), handles.begin(), handles.end());
+  return true;
+}
+
+void SimulateFullSpace(v8::internal::NewSpace* space,
+                       std::vector<Handle<FixedArray>>* out_handles) {
+  heap::FillCurrentPage(space, out_handles);
+  while (heap::FillUpOnePage(space, out_handles) || space->AddFreshPage()) {
+  }
+}
+
+void SimulateIncrementalMarking(i::Heap* heap, bool force_completion) {
+  i::MarkCompactCollector* collector = heap->mark_compact_collector();
+  i::IncrementalMarking* marking = heap->incremental_marking();
+  if (collector->sweeping_in_progress()) {
+    collector->EnsureSweepingCompleted();
+  }
+  CHECK(marking->IsMarking() || marking->IsStopped());
+  if (marking->IsStopped()) {
+    heap->StartIncrementalMarking();
+  }
+  CHECK(marking->IsMarking());
+  if (!force_completion) return;
+
+  while (!marking->IsComplete()) {
+    marking->Step(i::MB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
+    if (marking->IsReadyToOverApproximateWeakClosure()) {
+      marking->FinalizeIncrementally();
+    }
+  }
+  CHECK(marking->IsComplete());
+}
+
+void SimulateFullSpace(v8::internal::PagedSpace* space) {
+  space->EmptyAllocationInfo();
+  space->ResetFreeList();
+  space->ClearStats();
+}
+
+void AbandonCurrentlyFreeMemory(PagedSpace* space) {
+  space->EmptyAllocationInfo();
+  for (Page* page : *space) {
+    page->MarkNeverAllocateForTesting();
+  }
+}
+
+void GcAndSweep(Heap* heap, AllocationSpace space) {
+  heap->CollectGarbage(space);
+  if (heap->mark_compact_collector()->sweeping_in_progress()) {
+    heap->mark_compact_collector()->EnsureSweepingCompleted();
+  }
+}
+
+}  // namespace heap
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/heap/heap-utils.h b/test/cctest/heap/heap-utils.h
new file mode 100644
index 0000000..e03e6fa
--- /dev/null
+++ b/test/cctest/heap/heap-utils.h
@@ -0,0 +1,51 @@
+// 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 HEAP_HEAP_UTILS_H_
+#define HEAP_HEAP_UTILS_H_
+
+#include "src/heap/heap.h"
+
+namespace v8 {
+namespace internal {
+namespace heap {
+
+void SealCurrentObjects(Heap* heap);
+
+int FixedArrayLenFromSize(int size);
+
+std::vector<Handle<FixedArray>> CreatePadding(
+    Heap* heap, int padding_size, PretenureFlag tenure,
+    int object_size = Page::kMaxRegularHeapObjectSize);
+
+void AllocateAllButNBytes(
+    v8::internal::NewSpace* space, int extra_bytes,
+    std::vector<Handle<FixedArray>>* out_handles = nullptr);
+
+void FillCurrentPage(v8::internal::NewSpace* space,
+                     std::vector<Handle<FixedArray>>* out_handles = nullptr);
+
+// Helper function that simulates a full new-space in the heap.
+bool FillUpOnePage(v8::internal::NewSpace* space,
+                   std::vector<Handle<FixedArray>>* out_handles = nullptr);
+
+void SimulateFullSpace(v8::internal::NewSpace* space,
+                       std::vector<Handle<FixedArray>>* out_handles = nullptr);
+
+// Helper function that simulates many incremental marking steps until
+// marking is completed.
+void SimulateIncrementalMarking(i::Heap* heap, bool force_completion = true);
+
+// Helper function that simulates a full old-space in the heap.
+void SimulateFullSpace(v8::internal::PagedSpace* space);
+
+void AbandonCurrentlyFreeMemory(PagedSpace* space);
+
+void GcAndSweep(Heap* heap, AllocationSpace space);
+
+}  // namespace heap
+}  // namespace internal
+}  // namespace v8
+
+#endif  // HEAP_HEAP_UTILS_H_
diff --git a/test/cctest/heap/test-alloc.cc b/test/cctest/heap/test-alloc.cc
index 1b969b2..348ba19 100644
--- a/test/cctest/heap/test-alloc.cc
+++ b/test/cctest/heap/test-alloc.cc
@@ -31,7 +31,7 @@
 #include "src/accessors.h"
 #include "src/api.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 
@@ -52,11 +52,11 @@
   heap->CopyJSObject(JSObject::cast(object)).ToObjectChecked();
 
   // Old data space.
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   heap->AllocateByteArray(100, TENURED).ToObjectChecked();
 
   // Old pointer space.
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   heap->AllocateFixedArray(10000, TENURED).ToObjectChecked();
 
   // Large object space.
@@ -72,12 +72,12 @@
       kLargeObjectSpaceFillerLength, TENURED).ToObjectChecked();
 
   // Map space.
-  SimulateFullSpace(heap->map_space());
+  heap::SimulateFullSpace(heap->map_space());
   int instance_size = JSObject::kHeaderSize;
   heap->AllocateMap(JS_OBJECT_TYPE, instance_size).ToObjectChecked();
 
   // Test that we can allocate in old pointer space and code space.
-  SimulateFullSpace(heap->code_space());
+  heap::SimulateFullSpace(heap->code_space());
   heap->AllocateFixedArray(100, TENURED).ToObjectChecked();
   heap->CopyCode(CcTest::i_isolate()->builtins()->builtin(
       Builtins::kIllegal)).ToObjectChecked();
@@ -102,7 +102,7 @@
   v8::Local<v8::Context> env = v8::Context::New(CcTest::isolate());
   env->Enter();
   Handle<Object> o = TestAllocateAfterFailures();
-  CHECK(o->IsTrue());
+  CHECK(o->IsTrue(CcTest::i_isolate()));
   env->Exit();
 }
 
@@ -211,8 +211,7 @@
   const size_t code_range_size = 32*MB;
   CcTest::InitializeVM();
   CodeRange code_range(reinterpret_cast<Isolate*>(CcTest::isolate()));
-  code_range.SetUp(code_range_size +
-                   kReservedCodeRangePages * v8::base::OS::CommitPageSize());
+  code_range.SetUp(code_range_size);
   size_t current_allocated = 0;
   size_t total_allocated = 0;
   List< ::Block> blocks(1000);
diff --git a/test/cctest/heap/test-array-buffer-tracker.cc b/test/cctest/heap/test-array-buffer-tracker.cc
new file mode 100644
index 0000000..b331f6b
--- /dev/null
+++ b/test/cctest/heap/test-array-buffer-tracker.cc
@@ -0,0 +1,318 @@
+// 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/heap/array-buffer-tracker.h"
+#include "test/cctest/cctest.h"
+#include "test/cctest/heap/heap-utils.h"
+
+namespace {
+
+typedef i::LocalArrayBufferTracker LocalTracker;
+
+bool IsTracked(i::JSArrayBuffer* buf) {
+  return i::ArrayBufferTracker::IsTracked(buf);
+}
+
+}  // namespace
+
+namespace v8 {
+namespace internal {
+
+// The following tests make sure that JSArrayBuffer tracking works expected when
+// moving the objects through various spaces during GC phases.
+
+TEST(ArrayBuffer_OnlyMC) {
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  JSArrayBuffer* raw_ab = nullptr;
+  {
+    v8::HandleScope handle_scope(isolate);
+    Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(IsTracked(*buf));
+    raw_ab = *buf;
+    // Prohibit page from being released.
+    Page::FromAddress(buf->address())->MarkNeverEvacuate();
+  }
+  // 2 GCs are needed because we promote to old space as live, meaning that
+  // we will survive one GC.
+  heap::GcAndSweep(heap, OLD_SPACE);
+  heap::GcAndSweep(heap, OLD_SPACE);
+  CHECK(!IsTracked(raw_ab));
+}
+
+TEST(ArrayBuffer_OnlyScavenge) {
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  JSArrayBuffer* raw_ab = nullptr;
+  {
+    v8::HandleScope handle_scope(isolate);
+    Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    raw_ab = *buf;
+    // Prohibit page from being released.
+    Page::FromAddress(buf->address())->MarkNeverEvacuate();
+  }
+  // 2 GCs are needed because we promote to old space as live, meaning that
+  // we will survive one GC.
+  heap::GcAndSweep(heap, OLD_SPACE);
+  heap::GcAndSweep(heap, OLD_SPACE);
+  CHECK(!IsTracked(raw_ab));
+}
+
+TEST(ArrayBuffer_ScavengeAndMC) {
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  JSArrayBuffer* raw_ab = nullptr;
+  {
+    v8::HandleScope handle_scope(isolate);
+    Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(IsTracked(*buf));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(*buf));
+    raw_ab = *buf;
+    // Prohibit page from being released.
+    Page::FromAddress(buf->address())->MarkNeverEvacuate();
+  }
+  // 2 GCs are needed because we promote to old space as live, meaning that
+  // we will survive one GC.
+  heap::GcAndSweep(heap, OLD_SPACE);
+  heap::GcAndSweep(heap, OLD_SPACE);
+  CHECK(!IsTracked(raw_ab));
+}
+
+TEST(ArrayBuffer_Compaction) {
+  FLAG_manual_evacuation_candidates_selection = true;
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+  heap::AbandonCurrentlyFreeMemory(heap->old_space());
+
+  v8::HandleScope handle_scope(isolate);
+  Local<v8::ArrayBuffer> ab1 = v8::ArrayBuffer::New(isolate, 100);
+  Handle<JSArrayBuffer> buf1 = v8::Utils::OpenHandle(*ab1);
+  CHECK(IsTracked(*buf1));
+  heap::GcAndSweep(heap, NEW_SPACE);
+  heap::GcAndSweep(heap, NEW_SPACE);
+
+  Page* page_before_gc = Page::FromAddress(buf1->address());
+  page_before_gc->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
+  CHECK(IsTracked(*buf1));
+
+  heap->CollectAllGarbage();
+
+  Page* page_after_gc = Page::FromAddress(buf1->address());
+  CHECK(IsTracked(*buf1));
+
+  CHECK_NE(page_before_gc, page_after_gc);
+}
+
+TEST(ArrayBuffer_UnregisterDuringSweep) {
+// Regular pages in old space (without compaction) are processed concurrently
+// in the sweeper. If we happen to unregister a buffer (either explicitly, or
+// implicitly through e.g. |Externalize|) we need to sync with the sweeper
+// task.
+//
+// Note: This test will will only fail on TSAN configurations.
+
+// Disable verify-heap since it forces sweeping to be completed in the
+// epilogue of the GC.
+#ifdef VERIFY_HEAP
+  i::FLAG_verify_heap = false;
+#endif  // VERIFY_HEAP
+
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+  {
+    v8::HandleScope handle_scope(isolate);
+    Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+
+    {
+      v8::HandleScope handle_scope(isolate);
+      // Allocate another buffer on the same page to force processing a
+      // non-empty set of buffers in the last GC.
+      Local<v8::ArrayBuffer> ab2 = v8::ArrayBuffer::New(isolate, 100);
+      Handle<JSArrayBuffer> buf2 = v8::Utils::OpenHandle(*ab2);
+      CHECK(IsTracked(*buf));
+      CHECK(IsTracked(*buf));
+      heap::GcAndSweep(heap, NEW_SPACE);
+      CHECK(IsTracked(*buf));
+      CHECK(IsTracked(*buf));
+      heap::GcAndSweep(heap, NEW_SPACE);
+      CHECK(IsTracked(*buf));
+      CHECK(IsTracked(*buf2));
+    }
+
+    heap->CollectGarbage(OLD_SPACE);
+    // |Externalize| will cause the buffer to be |Unregister|ed. Without
+    // barriers and proper synchronization this will trigger a data race on
+    // TSAN.
+    v8::ArrayBuffer::Contents contents = ab->Externalize();
+    heap->isolate()->array_buffer_allocator()->Free(contents.Data(),
+                                                    contents.ByteLength());
+  }
+}
+
+TEST(ArrayBuffer_NonLivePromotion) {
+  // The test verifies that the marking state is preserved when promoting
+  // a buffer to old space.
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  JSArrayBuffer* raw_ab = nullptr;
+  {
+    v8::HandleScope handle_scope(isolate);
+    Handle<FixedArray> root =
+        heap->isolate()->factory()->NewFixedArray(1, TENURED);
+    {
+      v8::HandleScope handle_scope(isolate);
+      Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+      Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+      root->set(0, *buf);  // Buffer that should not be promoted as live.
+    }
+    heap::SimulateIncrementalMarking(heap, false);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    raw_ab = JSArrayBuffer::cast(root->get(0));
+    root->set(0, heap->undefined_value());
+    heap::SimulateIncrementalMarking(heap, true);
+    // Prohibit page from being released.
+    Page::FromAddress(raw_ab->address())->MarkNeverEvacuate();
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(!IsTracked(raw_ab));
+  }
+}
+
+TEST(ArrayBuffer_LivePromotion) {
+  // The test verifies that the marking state is preserved when promoting
+  // a buffer to old space.
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  JSArrayBuffer* raw_ab = nullptr;
+  {
+    v8::HandleScope handle_scope(isolate);
+    Handle<FixedArray> root =
+        heap->isolate()->factory()->NewFixedArray(1, TENURED);
+    {
+      v8::HandleScope handle_scope(isolate);
+      Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+      Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+      root->set(0, *buf);  // Buffer that should be promoted as live.
+    }
+    heap::SimulateIncrementalMarking(heap, true);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    raw_ab = JSArrayBuffer::cast(root->get(0));
+    root->set(0, heap->undefined_value());
+    // Prohibit page from being released.
+    Page::FromAddress(raw_ab->address())->MarkNeverEvacuate();
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(IsTracked(raw_ab));
+  }
+}
+
+TEST(ArrayBuffer_SemiSpaceCopyThenPagePromotion) {
+  // The test verifies that the marking state is preserved across semispace
+  // copy.
+  CcTest::InitializeVM();
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  Heap* heap = reinterpret_cast<Isolate*>(isolate)->heap();
+
+  heap::SealCurrentObjects(heap);
+  {
+    v8::HandleScope handle_scope(isolate);
+    Handle<FixedArray> root =
+        heap->isolate()->factory()->NewFixedArray(1, TENURED);
+    {
+      v8::HandleScope handle_scope(isolate);
+      Local<v8::ArrayBuffer> ab = v8::ArrayBuffer::New(isolate, 100);
+      Handle<JSArrayBuffer> buf = v8::Utils::OpenHandle(*ab);
+      root->set(0, *buf);  // Buffer that should be promoted as live.
+      Page::FromAddress(buf->address())->MarkNeverEvacuate();
+    }
+    std::vector<Handle<FixedArray>> handles;
+    // Make the whole page transition from new->old, getting the buffers
+    // processed in the sweeper (relying on marking information) instead of
+    // processing during newspace evacuation.
+    heap::FillCurrentPage(heap->new_space(), &handles);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+    heap::GcAndSweep(heap, NEW_SPACE);
+    heap::SimulateIncrementalMarking(heap, true);
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(IsTracked(JSArrayBuffer::cast(root->get(0))));
+  }
+}
+
+UNINITIALIZED_TEST(ArrayBuffer_SemiSpaceCopyMultipleTasks) {
+  if (FLAG_optimize_for_size) return;
+  // Test allocates JSArrayBuffer on different pages before triggering a
+  // full GC that performs the semispace copy. If parallelized, this test
+  // ensures proper synchronization in TSAN configurations.
+  FLAG_min_semi_space_size = 2 * Page::kPageSize / MB;
+  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();
+
+    Local<v8::ArrayBuffer> ab1 = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf1 = v8::Utils::OpenHandle(*ab1);
+    heap::FillCurrentPage(heap->new_space());
+    Local<v8::ArrayBuffer> ab2 = v8::ArrayBuffer::New(isolate, 100);
+    Handle<JSArrayBuffer> buf2 = v8::Utils::OpenHandle(*ab2);
+    CHECK_NE(Page::FromAddress(buf1->address()),
+             Page::FromAddress(buf2->address()));
+    heap::GcAndSweep(heap, OLD_SPACE);
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/heap/test-compaction.cc b/test/cctest/heap/test-compaction.cc
index b787780..f61f7e1 100644
--- a/test/cctest/heap/test-compaction.cc
+++ b/test/cctest/heap/test-compaction.cc
@@ -4,12 +4,14 @@
 
 #include "test/cctest/cctest.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 namespace v8 {
 namespace internal {
 
-static void CheckInvariantsOfAbortedPage(Page* page) {
+namespace {
+
+void CheckInvariantsOfAbortedPage(Page* page) {
   // Check invariants:
   // 1) Markbits are cleared
   // 2) The page is not marked as evacuation candidate anymore
@@ -19,6 +21,14 @@
   CHECK(!page->IsFlagSet(Page::COMPACTION_WAS_ABORTED));
 }
 
+void CheckAllObjectsOnPage(std::vector<Handle<FixedArray>>& handles,
+                           Page* page) {
+  for (auto& fixed_array : handles) {
+    CHECK(Page::FromAddress(fixed_array->address()) == page);
+  }
+}
+
+}  // namespace
 
 HEAP_TEST(CompactionFullAbortedPage) {
   // Test the scenario where we reach OOM during compaction and the whole page
@@ -33,20 +43,19 @@
   Heap* heap = isolate->heap();
   {
     HandleScope scope1(isolate);
-    PageIterator it(heap->old_space());
-    while (it.has_next()) {
-      it.next()->MarkNeverAllocateForTesting();
-    }
+
+    heap::SealCurrentObjects(heap);
 
     {
       HandleScope scope2(isolate);
       CHECK(heap->old_space()->Expand());
       auto compaction_page_handles =
-          CreatePadding(heap, Page::kAllocatableMemory, TENURED);
+          heap::CreatePadding(heap, Page::kAllocatableMemory, TENURED);
       Page* to_be_aborted_page =
           Page::FromAddress(compaction_page_handles.front()->address());
       to_be_aborted_page->SetFlag(
           MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
+      CheckAllObjectsOnPage(compaction_page_handles, to_be_aborted_page);
 
       heap->set_force_oom(true);
       heap->CollectAllGarbage();
@@ -72,29 +81,29 @@
   FLAG_concurrent_sweeping = false;
   FLAG_manual_evacuation_candidates_selection = true;
 
-  const int object_size = 128 * KB;
+  const int objects_per_page = 10;
+  const int object_size = Page::kAllocatableMemory / objects_per_page;
 
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   {
     HandleScope scope1(isolate);
-    PageIterator it(heap->old_space());
-    while (it.has_next()) {
-      it.next()->MarkNeverAllocateForTesting();
-    }
+
+    heap::SealCurrentObjects(heap);
 
     {
       HandleScope scope2(isolate);
       // Fill another page with objects of size {object_size} (last one is
       // properly adjusted).
       CHECK(heap->old_space()->Expand());
-      auto compaction_page_handles =
-          CreatePadding(heap, Page::kAllocatableMemory, TENURED, object_size);
+      auto compaction_page_handles = heap::CreatePadding(
+          heap, Page::kAllocatableMemory, TENURED, object_size);
       Page* to_be_aborted_page =
           Page::FromAddress(compaction_page_handles.front()->address());
       to_be_aborted_page->SetFlag(
           MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
+      CheckAllObjectsOnPage(compaction_page_handles, to_be_aborted_page);
 
       {
         // Add another page that is filled with {num_objects} objects of size
@@ -102,8 +111,9 @@
         HandleScope scope3(isolate);
         CHECK(heap->old_space()->Expand());
         const int num_objects = 3;
-        std::vector<Handle<FixedArray>> page_to_fill_handles = CreatePadding(
-            heap, object_size * num_objects, TENURED, object_size);
+        std::vector<Handle<FixedArray>> page_to_fill_handles =
+            heap::CreatePadding(heap, object_size * num_objects, TENURED,
+                                object_size);
         Page* page_to_fill =
             Page::FromAddress(page_to_fill_handles.front()->address());
 
@@ -145,7 +155,8 @@
   FLAG_concurrent_sweeping = false;
   FLAG_manual_evacuation_candidates_selection = true;
 
-  const int object_size = 128 * KB;
+  const int objects_per_page = 10;
+  const int object_size = Page::kAllocatableMemory / objects_per_page;
 
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
@@ -155,10 +166,7 @@
     Handle<FixedArray> root_array =
         isolate->factory()->NewFixedArray(10, TENURED);
 
-    PageIterator it(heap->old_space());
-    while (it.has_next()) {
-      it.next()->MarkNeverAllocateForTesting();
-    }
+    heap::SealCurrentObjects(heap);
 
     Page* to_be_aborted_page = nullptr;
     {
@@ -167,7 +175,8 @@
       // properly adjusted).
       CHECK(heap->old_space()->Expand());
       std::vector<Handle<FixedArray>> compaction_page_handles =
-          CreatePadding(heap, Page::kAllocatableMemory, TENURED, object_size);
+          heap::CreatePadding(heap, Page::kAllocatableMemory, TENURED,
+                              object_size);
       to_be_aborted_page =
           Page::FromAddress(compaction_page_handles.front()->address());
       to_be_aborted_page->SetFlag(
@@ -176,8 +185,8 @@
         compaction_page_handles[i]->set(0, *compaction_page_handles[i - 1]);
       }
       root_array->set(0, *compaction_page_handles.back());
+      CheckAllObjectsOnPage(compaction_page_handles, to_be_aborted_page);
     }
-
     {
       // Add another page that is filled with {num_objects} objects of size
       // {object_size}.
@@ -186,7 +195,7 @@
       const int num_objects = 2;
       int used_memory = object_size * num_objects;
       std::vector<Handle<FixedArray>> page_to_fill_handles =
-          CreatePadding(heap, used_memory, TENURED, object_size);
+          heap::CreatePadding(heap, used_memory, TENURED, object_size);
       Page* page_to_fill =
           Page::FromAddress(page_to_fill_handles.front()->address());
 
@@ -233,7 +242,8 @@
   FLAG_concurrent_sweeping = false;
   FLAG_manual_evacuation_candidates_selection = true;
 
-  const int object_size = 128 * KB;
+  const int objects_per_page = 10;
+  const int object_size = Page::kAllocatableMemory / objects_per_page;
 
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
@@ -242,10 +252,7 @@
     HandleScope scope1(isolate);
     Handle<FixedArray> root_array =
         isolate->factory()->NewFixedArray(10, TENURED);
-    PageIterator it(heap->old_space());
-    while (it.has_next()) {
-      it.next()->MarkNeverAllocateForTesting();
-    }
+    heap::SealCurrentObjects(heap);
 
     Page* to_be_aborted_page = nullptr;
     {
@@ -253,8 +260,8 @@
       // Fill another page with objects of size {object_size} (last one is
       // properly adjusted).
       CHECK(heap->old_space()->Expand());
-      auto compaction_page_handles =
-          CreatePadding(heap, Page::kAllocatableMemory, TENURED, object_size);
+      auto compaction_page_handles = heap::CreatePadding(
+          heap, Page::kAllocatableMemory, TENURED, object_size);
       // Sanity check that we have enough space for linking up arrays.
       CHECK_GE(compaction_page_handles.front()->length(), 2);
       to_be_aborted_page =
@@ -270,6 +277,7 @@
           isolate->factory()->NewFixedArray(1, NOT_TENURED);
       CHECK(heap->InNewSpace(*new_space_array));
       compaction_page_handles.front()->set(1, *new_space_array);
+      CheckAllObjectsOnPage(compaction_page_handles, to_be_aborted_page);
     }
 
     {
@@ -280,7 +288,7 @@
       const int num_objects = 2;
       int used_memory = object_size * num_objects;
       std::vector<Handle<FixedArray>> page_to_fill_handles =
-          CreatePadding(heap, used_memory, TENURED, object_size);
+          heap::CreatePadding(heap, used_memory, TENURED, object_size);
       Page* page_to_fill =
           Page::FromAddress(page_to_fill_handles.front()->address());
 
diff --git a/test/cctest/heap/test-heap.cc b/test/cctest/heap/test-heap.cc
index ef4b217..524a553 100644
--- a/test/cctest/heap/test-heap.cc
+++ b/test/cctest/heap/test-heap.cc
@@ -44,7 +44,7 @@
 #include "src/snapshot/snapshot.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 #include "test/cctest/test-feedback-vector.h"
 
 
@@ -711,6 +711,44 @@
   CHECK(WeakPointerCleared);
 }
 
+TEST(DoNotPromoteWhiteObjectsOnScavenge) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  Heap* heap = isolate->heap();
+  Factory* factory = isolate->factory();
+
+  HandleScope scope(isolate);
+  Handle<Object> white = factory->NewStringFromStaticChars("white");
+
+  CHECK(Marking::IsWhite(Marking::MarkBitFrom(HeapObject::cast(*white))));
+
+  heap->CollectGarbage(NEW_SPACE);
+
+  CHECK(heap->InNewSpace(*white));
+}
+
+TEST(PromoteGreyOrBlackObjectsOnScavenge) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  Heap* heap = isolate->heap();
+  Factory* factory = isolate->factory();
+
+  HandleScope scope(isolate);
+  Handle<Object> marked = factory->NewStringFromStaticChars("marked");
+
+  IncrementalMarking* marking = heap->incremental_marking();
+  marking->Stop();
+  heap->StartIncrementalMarking();
+  while (Marking::IsWhite(Marking::MarkBitFrom(HeapObject::cast(*marked)))) {
+    marking->Step(MB, IncrementalMarking::NO_GC_VIA_STACK_GUARD,
+                  IncrementalMarking::FORCE_MARKING,
+                  IncrementalMarking::DO_NOT_FORCE_COMPLETION);
+  }
+
+  heap->CollectGarbage(NEW_SPACE);
+
+  CHECK(!heap->InNewSpace(*marked));
+}
 
 TEST(BytecodeArray) {
   static const uint8_t kRawBytes[] = {0xc3, 0x7e, 0xa5, 0x5a};
@@ -725,7 +763,7 @@
   Factory* factory = isolate->factory();
   HandleScope scope(isolate);
 
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   Handle<FixedArray> constant_pool = factory->NewFixedArray(5, TENURED);
   for (int i = 0; i < 5; i++) {
     Handle<Object> number = factory->NewHeapNumber(i);
@@ -1350,7 +1388,7 @@
   // Simulate several GCs that use incremental marking.
   const int kAgingThreshold = 6;
   for (int i = 0; i < kAgingThreshold; i++) {
-    SimulateIncrementalMarking(CcTest::heap());
+    heap::SimulateIncrementalMarking(CcTest::heap());
     CcTest::heap()->CollectAllGarbage();
   }
   CHECK(!function->shared()->is_compiled() || function->IsOptimized());
@@ -1364,8 +1402,9 @@
   // Simulate several GCs that use incremental marking but make sure
   // the loop breaks once the function is enqueued as a candidate.
   for (int i = 0; i < kAgingThreshold; i++) {
-    SimulateIncrementalMarking(CcTest::heap());
-    if (!function->next_function_link()->IsUndefined()) break;
+    heap::SimulateIncrementalMarking(CcTest::heap());
+    if (!function->next_function_link()->IsUndefined(CcTest::i_isolate()))
+      break;
     CcTest::heap()->CollectAllGarbage();
   }
 
@@ -1440,7 +1479,7 @@
   // Simulate incremental marking so that the functions are enqueued as
   // code flushing candidates. Then kill one of the functions. Finally
   // perform a scavenge while incremental marking is still running.
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   *function2.location() = NULL;
   CcTest::heap()->CollectGarbage(NEW_SPACE, "test scavenge while marking");
 
@@ -1494,7 +1533,7 @@
 
   // Simulate incremental marking so that the function is enqueued as
   // code flushing candidate.
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
 
   // Enable the debugger and add a breakpoint while incremental marking
   // is running so that incremental marking aborts and code flushing is
@@ -1549,7 +1588,7 @@
   Handle<JSFunction> g_function = Handle<JSFunction>::cast(g_value);
   CHECK(!g_function->is_compiled());
 
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   CompileRun("%OptimizeFunctionOnNextCall(f); f();");
 
   // g should now have available an optimized function, unmarked by gc. The
@@ -1644,7 +1683,7 @@
 int CountNativeContexts() {
   int count = 0;
   Object* object = CcTest::heap()->native_contexts_list();
-  while (!object->IsUndefined()) {
+  while (!object->IsUndefined(CcTest::i_isolate())) {
     count++;
     object = Context::cast(object)->next_context_link();
   }
@@ -1780,7 +1819,7 @@
   Heap* heap = isolate->heap();
   int count = 0;
   Handle<Object> object(heap->native_contexts_list(), isolate);
-  while (!object->IsUndefined()) {
+  while (!object->IsUndefined(isolate)) {
     count++;
     if (count == n) heap->CollectAllGarbage();
     object =
@@ -2658,7 +2697,7 @@
   CcTest::heap()->StartIncrementalMarking();
   // The following calls will increment CcTest::heap()->global_ic_age().
   CcTest::isolate()->ContextDisposedNotification();
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   CHECK_EQ(CcTest::heap()->global_ic_age(), f->shared()->ic_age());
@@ -2743,12 +2782,13 @@
 TEST(IdleNotificationFinishMarking) {
   i::FLAG_allow_natives_syntax = true;
   CcTest::InitializeVM();
-  SimulateFullSpace(CcTest::heap()->old_space());
+  const int initial_gc_count = CcTest::heap()->gc_count();
+  heap::SimulateFullSpace(CcTest::heap()->old_space());
   IncrementalMarking* marking = CcTest::heap()->incremental_marking();
   marking->Stop();
   CcTest::heap()->StartIncrementalMarking();
 
-  CHECK_EQ(CcTest::heap()->gc_count(), 0);
+  CHECK_EQ(CcTest::heap()->gc_count(), initial_gc_count);
 
   // TODO(hpayer): We cannot write proper unit test right now for heap.
   // The ideal test would call kMaxIdleMarkingDelayCounter to test the
@@ -2783,7 +2823,7 @@
       (v8::base::TimeTicks::HighResolutionNow().ToInternalValue() /
        static_cast<double>(v8::base::Time::kMicrosecondsPerSecond)) +
       kLongIdleTime);
-  CHECK_EQ(CcTest::heap()->gc_count(), 1);
+  CHECK_EQ(CcTest::heap()->gc_count(), initial_gc_count + 1);
 }
 
 
@@ -2795,7 +2835,7 @@
   if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
   v8::HandleScope scope(CcTest::isolate());
   v8::Local<v8::Context> ctx = CcTest::isolate()->GetCurrentContext();
-  SimulateFullSpace(CcTest::heap()->new_space());
+  heap::SimulateFullSpace(CcTest::heap()->new_space());
   AlwaysAllocateScope always_allocate(CcTest::i_isolate());
   v8::Local<v8::Value> res = CompileRun(
       "function c(x) {"
@@ -3270,7 +3310,7 @@
   CompileRun("%DebugPrint(root);");
   CHECK_EQ(transitions_count, transitions_before);
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   // Count number of live transitions after marking.  Note that one transition
@@ -3440,7 +3480,7 @@
              "root.foo = 0;"
              "root = new Object;");
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
 
   // Compile a StoreIC that performs the prepared map transition. This
   // will restart incremental marking and should make sure the root is
@@ -3480,7 +3520,7 @@
              "root.foo = 0;"
              "root = new Object;");
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
 
   // Compile an optimized LStoreNamedField that performs the prepared
   // map transition. This will restart incremental marking and should
@@ -3535,28 +3575,29 @@
 
   // Prepare many pages with low live-bytes count.
   PagedSpace* old_space = heap->old_space();
-  CHECK_EQ(1, old_space->CountTotalPages());
+  const int initial_page_count = old_space->CountTotalPages();
+  const int overall_page_count = number_of_test_pages + initial_page_count;
   for (int i = 0; i < number_of_test_pages; i++) {
     AlwaysAllocateScope always_allocate(isolate);
-    SimulateFullSpace(old_space);
+    heap::SimulateFullSpace(old_space);
     factory->NewFixedArray(1, TENURED);
   }
-  CHECK_EQ(number_of_test_pages + 1, old_space->CountTotalPages());
+  CHECK_EQ(overall_page_count, old_space->CountTotalPages());
 
   // Triggering one GC will cause a lot of garbage to be discovered but
   // even spread across all allocated pages.
   heap->CollectAllGarbage(Heap::kFinalizeIncrementalMarkingMask,
                           "triggered for preparation");
-  CHECK_GE(number_of_test_pages + 1, old_space->CountTotalPages());
+  CHECK_GE(overall_page_count, old_space->CountTotalPages());
 
   // Triggering subsequent GCs should cause at least half of the pages
   // to be released to the OS after at most two cycles.
   heap->CollectAllGarbage(Heap::kFinalizeIncrementalMarkingMask,
                           "triggered by test 1");
-  CHECK_GE(number_of_test_pages + 1, old_space->CountTotalPages());
+  CHECK_GE(overall_page_count, old_space->CountTotalPages());
   heap->CollectAllGarbage(Heap::kFinalizeIncrementalMarkingMask,
                           "triggered by test 2");
-  CHECK_GE(number_of_test_pages + 1, old_space->CountTotalPages() * 2);
+  CHECK_GE(overall_page_count, old_space->CountTotalPages() * 2);
 
   // Triggering a last-resort GC should cause all pages to be released to the
   // OS so that other processes can seize the memory.  If we get a failure here
@@ -3566,7 +3607,7 @@
   // boots, but if the 20 small arrays don't fit on the first page then that's
   // an indication that it is too small.
   heap->CollectAllAvailableGarbage("triggered really hard");
-  CHECK_EQ(1, old_space->CountTotalPages());
+  CHECK_EQ(initial_page_count, old_space->CountTotalPages());
 }
 
 static int forced_gc_counter = 0;
@@ -3639,7 +3680,7 @@
       v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
           CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
 
-  Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+  Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
   FeedbackVectorHelper feedback_helper(feedback_vector);
 
   int expected_slots = 2;
@@ -3649,7 +3690,7 @@
   CHECK(feedback_vector->Get(feedback_helper.slot(slot1))->IsWeakCell());
   CHECK(feedback_vector->Get(feedback_helper.slot(slot2))->IsWeakCell());
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   CHECK(!WeakCell::cast(feedback_vector->Get(feedback_helper.slot(slot1)))
@@ -3676,7 +3717,7 @@
 static void CheckVectorIC(Handle<JSFunction> f, int slot_index,
                           InlineCacheState desired_state) {
   Handle<TypeFeedbackVector> vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector());
+      Handle<TypeFeedbackVector>(f->feedback_vector());
   FeedbackVectorHelper helper(vector);
   FeedbackVectorSlot slot = helper.slot(slot_index);
   if (vector->GetKind(slot) == FeedbackVectorSlotKind::LOAD_IC) {
@@ -3689,16 +3730,6 @@
   }
 }
 
-
-static void CheckVectorICCleared(Handle<JSFunction> f, int slot_index) {
-  Handle<TypeFeedbackVector> vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector());
-  FeedbackVectorSlot slot(slot_index);
-  LoadICNexus nexus(vector, slot);
-  CHECK(IC::IsCleared(&nexus));
-}
-
-
 TEST(IncrementalMarkingPreservesMonomorphicConstructor) {
   if (i::FLAG_always_opt) return;
   CcTest::InitializeVM();
@@ -3713,54 +3744,15 @@
       v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
           CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
 
-  Handle<TypeFeedbackVector> vector(f->shared()->feedback_vector());
+  Handle<TypeFeedbackVector> vector(f->feedback_vector());
   CHECK(vector->Get(FeedbackVectorSlot(0))->IsWeakCell());
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   CHECK(vector->Get(FeedbackVectorSlot(0))->IsWeakCell());
 }
 
-
-TEST(IncrementalMarkingClearsMonomorphicConstructor) {
-  if (i::FLAG_always_opt) return;
-  CcTest::InitializeVM();
-  Isolate* isolate = CcTest::i_isolate();
-  v8::HandleScope scope(CcTest::isolate());
-  v8::Local<v8::Value> fun1;
-  v8::Local<v8::Context> ctx = CcTest::isolate()->GetCurrentContext();
-
-  {
-    LocalContext env;
-    CompileRun("function fun() { this.x = 1; };");
-    fun1 = env->Global()->Get(env.local(), v8_str("fun")).ToLocalChecked();
-  }
-
-  // Prepare function f that contains a monomorphic constructor for object
-  // originating from a different native context.
-  CHECK(CcTest::global()->Set(ctx, v8_str("fun1"), fun1).FromJust());
-  CompileRun(
-      "function fun() { this.x = 1; };"
-      "function f(o) { return new o(); } f(fun1); f(fun1);");
-  Handle<JSFunction> f = Handle<JSFunction>::cast(
-      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
-          CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
-
-
-  Handle<TypeFeedbackVector> vector(f->shared()->feedback_vector());
-  CHECK(vector->Get(FeedbackVectorSlot(0))->IsWeakCell());
-
-  // Fire context dispose notification.
-  CcTest::isolate()->ContextDisposedNotification();
-  SimulateIncrementalMarking(CcTest::heap());
-  CcTest::heap()->CollectAllGarbage();
-
-  CHECK_EQ(*TypeFeedbackVector::UninitializedSentinel(isolate),
-           vector->Get(FeedbackVectorSlot(0)));
-}
-
-
 TEST(IncrementalMarkingPreservesMonomorphicIC) {
   if (i::FLAG_always_opt) return;
   CcTest::InitializeVM();
@@ -3776,45 +3768,12 @@
 
   CheckVectorIC(f, 0, MONOMORPHIC);
 
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   CheckVectorIC(f, 0, MONOMORPHIC);
 }
 
-
-TEST(IncrementalMarkingClearsMonomorphicIC) {
-  if (i::FLAG_always_opt) return;
-  CcTest::InitializeVM();
-  v8::HandleScope scope(CcTest::isolate());
-  v8::Local<v8::Value> obj1;
-  v8::Local<v8::Context> ctx = CcTest::isolate()->GetCurrentContext();
-
-  {
-    LocalContext env;
-    CompileRun("function fun() { this.x = 1; }; var obj = new fun();");
-    obj1 = env->Global()->Get(env.local(), v8_str("obj")).ToLocalChecked();
-  }
-
-  // Prepare function f that contains a monomorphic IC for object
-  // originating from a different native context.
-  CHECK(CcTest::global()->Set(ctx, v8_str("obj1"), obj1).FromJust());
-  CompileRun("function f(o) { return o.x; } f(obj1); f(obj1);");
-  Handle<JSFunction> f = Handle<JSFunction>::cast(
-      v8::Utils::OpenHandle(*v8::Local<v8::Function>::Cast(
-          CcTest::global()->Get(ctx, v8_str("f")).ToLocalChecked())));
-
-  CheckVectorIC(f, 0, MONOMORPHIC);
-
-  // Fire context dispose notification.
-  CcTest::isolate()->ContextDisposedNotification();
-  SimulateIncrementalMarking(CcTest::heap());
-  CcTest::heap()->CollectAllGarbage();
-
-  CheckVectorICCleared(f, 0);
-}
-
-
 TEST(IncrementalMarkingPreservesPolymorphicIC) {
   if (i::FLAG_always_opt) return;
   CcTest::InitializeVM();
@@ -3846,14 +3805,13 @@
   CheckVectorIC(f, 0, POLYMORPHIC);
 
   // Fire context dispose notification.
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
   CheckVectorIC(f, 0, POLYMORPHIC);
 }
 
-
-TEST(IncrementalMarkingClearsPolymorphicIC) {
+TEST(ContextDisposeDoesntClearPolymorphicIC) {
   if (i::FLAG_always_opt) return;
   CcTest::InitializeVM();
   v8::HandleScope scope(CcTest::isolate());
@@ -3885,10 +3843,10 @@
 
   // Fire context dispose notification.
   CcTest::isolate()->ContextDisposedNotification();
-  SimulateIncrementalMarking(CcTest::heap());
+  heap::SimulateIncrementalMarking(CcTest::heap());
   CcTest::heap()->CollectAllGarbage();
 
-  CheckVectorICCleared(f, 0);
+  CheckVectorIC(f, 0, POLYMORPHIC);
 }
 
 
@@ -4057,7 +4015,7 @@
   // Simulate incremental marking so that the functions are enqueued as
   // code flushing candidates. Then optimize one function. Finally
   // finish the GC to complete code flushing.
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   CompileRun("%OptimizeFunctionOnNextCall(g); g(3);");
   heap->CollectAllGarbage();
 
@@ -4103,7 +4061,7 @@
 
   // Simulate incremental marking so that unoptimized code is flushed
   // even though it still is cached in the optimized code map.
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   heap->CollectAllGarbage();
 
   // Make a new closure that will get code installed from the code map.
@@ -4171,7 +4129,7 @@
   }
 
   // Simulate incremental marking and collect code flushing candidates.
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   CHECK(shared1->code()->gc_metadata() != NULL);
 
   // Optimize function and make sure the unoptimized code is replaced.
@@ -4227,9 +4185,9 @@
   array_data->set(0, Smi::FromInt(1));
   array_data->set(1, Smi::FromInt(2));
 
-  AllocateAllButNBytes(CcTest::heap()->new_space(),
-                       JSArray::kSize + AllocationMemento::kSize +
-                       kPointerSize);
+  heap::AllocateAllButNBytes(
+      CcTest::heap()->new_space(),
+      JSArray::kSize + AllocationMemento::kSize + kPointerSize);
 
   Handle<JSArray> array =
       factory->NewJSArrayWithElements(array_data, FAST_SMI_ELEMENTS);
@@ -4302,7 +4260,8 @@
     if (!code->is_optimized_code()) return;
   }
 
-  Handle<TypeFeedbackVector> vector = handle(shared->feedback_vector());
+  Handle<TypeFeedbackVector> vector =
+      TypeFeedbackVector::New(isolate, handle(shared->feedback_metadata()));
   Handle<LiteralsArray> lit =
       LiteralsArray::New(isolate, vector, shared->num_literals(), TENURED);
   Handle<Context> context(isolate->context());
@@ -4359,7 +4318,8 @@
     if (!code->is_optimized_code()) return;
   }
 
-  Handle<TypeFeedbackVector> vector = handle(shared->feedback_vector());
+  Handle<TypeFeedbackVector> vector =
+      TypeFeedbackVector::New(isolate, handle(shared->feedback_metadata()));
   Handle<LiteralsArray> lit =
       LiteralsArray::New(isolate, vector, shared->num_literals(), TENURED);
   Handle<Context> context(isolate->context());
@@ -4378,7 +4338,7 @@
     HandleScope inner_scope(isolate);
     AlwaysAllocateScope always_allocate(isolate);
     // Make sure literal is placed on an old-space evacuation candidate.
-    SimulateFullSpace(heap->old_space());
+    heap::SimulateFullSpace(heap->old_space());
 
     // Make sure there the number of literals is > 0.
     Handle<LiteralsArray> lit =
@@ -4393,7 +4353,7 @@
   // simulate incremental marking to enqueue optimized code map.
   FLAG_manual_evacuation_candidates_selection = true;
   evac_page->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
 
   // No matter whether reachable or not, {boomer} is doomed.
   Handle<Object> boomer(shared->optimized_code_map(), isolate);
@@ -4590,7 +4550,7 @@
   HandleScope scope(isolate);
 
   // Create an object on an evacuation candidate.
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   Handle<FixedArray> lit = isolate->factory()->NewFixedArray(4, TENURED);
   Page* evac_page = Page::FromAddress(lit->address());
   evac_page->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
@@ -4603,7 +4563,7 @@
   CHECK(heap->lo_space()->Contains(*lo));
 
   // Start incremental marking to active write barrier.
-  SimulateIncrementalMarking(heap, false);
+  heap::SimulateIncrementalMarking(heap, false);
   heap->incremental_marking()->AdvanceIncrementalMarking(
       10000000, IncrementalMarking::IdleStepActions());
 
@@ -4704,7 +4664,7 @@
 static int AllocationSitesCount(Heap* heap) {
   int count = 0;
   for (Object* site = heap->allocation_sites_list();
-       !(site->IsUndefined());
+       !(site->IsUndefined(heap->isolate()));
        site = AllocationSite::cast(site)->weak_next()) {
     count++;
   }
@@ -4880,7 +4840,7 @@
   if (!isolate->use_crankshaft()) return;
   HandleScope outer_scope(heap->isolate());
   for (int i = 0; i < 3; i++) {
-    SimulateIncrementalMarking(heap);
+    heap::SimulateIncrementalMarking(heap);
     {
       LocalContext context;
       HandleScope scope(heap->isolate());
@@ -5064,7 +5024,7 @@
   // cleared. Now, verify that one additional call with a new function
   // allows monomorphicity.
   Handle<TypeFeedbackVector> feedback_vector = Handle<TypeFeedbackVector>(
-      createObj->shared()->feedback_vector(), CcTest::i_isolate());
+      createObj->feedback_vector(), CcTest::i_isolate());
   for (int i = 0; i < 20; i++) {
     Object* slot_value = feedback_vector->Get(FeedbackVectorSlot(0));
     CHECK(slot_value->IsWeakCell());
@@ -5265,12 +5225,11 @@
   return Handle<JSFunction>::cast(obj);
 }
 
-
-void CheckIC(Code* code, Code::Kind kind, SharedFunctionInfo* shared,
-             int slot_index, InlineCacheState state) {
+void CheckIC(Handle<JSFunction> function, Code::Kind kind, int slot_index,
+             InlineCacheState state) {
   if (kind == Code::LOAD_IC || kind == Code::KEYED_LOAD_IC ||
       kind == Code::CALL_IC) {
-    TypeFeedbackVector* vector = shared->feedback_vector();
+    TypeFeedbackVector* vector = function->feedback_vector();
     FeedbackVectorSlot slot(slot_index);
     if (kind == Code::LOAD_IC) {
       LoadICNexus nexus(vector, slot);
@@ -5283,9 +5242,10 @@
       CHECK_EQ(nexus.StateFromFeedback(), state);
     }
   } else {
-    Code* ic = FindFirstIC(code, kind);
+    Code* ic = FindFirstIC(function->code(), kind);
     CHECK(ic->is_inline_cache_stub());
-    CHECK(ic->ic_state() == state);
+    CHECK(!IC::ICUseVector(kind));
+    CHECK_EQ(state, IC::StateFromCode(ic));
   }
 }
 
@@ -5314,12 +5274,12 @@
     CompileRun("(testIC())");
   }
   heap->CollectAllGarbage();
-  CheckIC(loadIC->code(), Code::LOAD_IC, loadIC->shared(), 0, MONOMORPHIC);
+  CheckIC(loadIC, Code::LOAD_IC, 0, MONOMORPHIC);
   {
     v8::HandleScope scope(CcTest::isolate());
     CompileRun("(testIC())");
   }
-  CheckIC(loadIC->code(), Code::LOAD_IC, loadIC->shared(), 0, MONOMORPHIC);
+  CheckIC(loadIC, Code::LOAD_IC, 0, MONOMORPHIC);
 }
 
 
@@ -5350,12 +5310,12 @@
     CompileRun("(testIC())");
   }
   heap->CollectAllGarbage();
-  CheckIC(loadIC->code(), Code::LOAD_IC, loadIC->shared(), 0, POLYMORPHIC);
+  CheckIC(loadIC, Code::LOAD_IC, 0, POLYMORPHIC);
   {
     v8::HandleScope scope(CcTest::isolate());
     CompileRun("(testIC())");
   }
-  CheckIC(loadIC->code(), Code::LOAD_IC, loadIC->shared(), 0, POLYMORPHIC);
+  CheckIC(loadIC, Code::LOAD_IC, 0, POLYMORPHIC);
 }
 
 
@@ -5529,7 +5489,7 @@
       Page::FromAddress(objects[i]->address())
           ->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
     }
-    SimulateFullSpace(old_space);
+    heap::SimulateFullSpace(old_space);
     heap->CollectGarbage(OLD_SPACE);
     // If we get this far, we've successfully aborted compaction. Any further
     // allocations might trigger OOM.
@@ -5589,7 +5549,7 @@
 
 UNINITIALIZED_TEST(PromotionQueue) {
   i::FLAG_expose_gc = true;
-  i::FLAG_max_semi_space_size = 2 * (Page::kPageSize / MB);
+  i::FLAG_max_semi_space_size = 2 * Page::kPageSize / MB;
   i::FLAG_min_semi_space_size = i::FLAG_max_semi_space_size;
   v8::Isolate::CreateParams create_params;
   create_params.array_buffer_allocator = CcTest::array_buffer_allocator();
@@ -5642,7 +5602,7 @@
     CHECK(i::FLAG_min_semi_space_size * MB == new_space->TotalCapacity());
 
     // Fill-up the first semi-space page.
-    FillUpOnePage(new_space);
+    heap::FillUpOnePage(new_space);
 
     // Create a small object to initialize the bump pointer on the second
     // semi-space page.
@@ -5651,7 +5611,7 @@
     CHECK(heap->InNewSpace(*small));
 
     // Fill-up the second semi-space page.
-    FillUpOnePage(new_space);
+    heap::FillUpOnePage(new_space);
 
     // This scavenge will corrupt memory if the promotion queue is not
     // evacuated.
@@ -5681,9 +5641,9 @@
 
   // Allocate padding objects in old pointer space so, that object allocated
   // afterwards would end at the end of the page.
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   int padding_size = desired_offset - Page::kObjectStartOffset;
-  CreatePadding(heap, padding_size, TENURED);
+  heap::CreatePadding(heap, padding_size, TENURED);
 
   Handle<JSObject> o = factory->NewJSObjectFromMap(map1, TENURED);
   o->set_properties(*factory->empty_fixed_array());
@@ -5830,11 +5790,11 @@
   Handle<WeakCell> weak_cell = AddRetainedMap(isolate, heap);
   CHECK(!weak_cell->cleared());
   for (int i = 0; i < n; i++) {
-    SimulateIncrementalMarking(heap);
+    heap::SimulateIncrementalMarking(heap);
     heap->CollectGarbage(OLD_SPACE);
   }
   CHECK(!weak_cell->cleared());
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   heap->CollectGarbage(OLD_SPACE);
   CHECK(weak_cell->cleared());
 }
@@ -5863,7 +5823,7 @@
   heap->CollectGarbage(OLD_SPACE);
   // Force GC in old space on next addition of retained map.
   Map::WeakCellForMap(map);
-  SimulateFullSpace(CcTest::heap()->new_space());
+  heap::SimulateFullSpace(CcTest::heap()->new_space());
   for (int i = 0; i < 10; i++) {
     heap->AddRetainedMap(map);
   }
@@ -6146,6 +6106,7 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   GCTracer* tracer = heap->tracer();
+  tracer->ResetForTesting();
   int time1 = 100;
   size_t counter1 = 1000;
   tracer->SampleAllocation(time1, counter1, 0);
@@ -6169,6 +6130,7 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   GCTracer* tracer = heap->tracer();
+  tracer->ResetForTesting();
   int time1 = 100;
   size_t counter1 = 1000;
   tracer->SampleAllocation(time1, counter1, 0);
@@ -6190,7 +6152,7 @@
   Isolate* isolate = CcTest::i_isolate();
   Object* message =
       *reinterpret_cast<Object**>(isolate->pending_message_obj_address());
-  CHECK(message->IsTheHole());
+  CHECK(message->IsTheHole(isolate));
 }
 
 
@@ -6304,6 +6266,7 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   GCTracer* tracer = heap->tracer();
+  tracer->ResetForTesting();
   int time1 = 100;
   size_t counter1 = 1000;
   tracer->SampleAllocation(time1, 0, counter1);
@@ -6328,6 +6291,7 @@
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
   GCTracer* tracer = heap->tracer();
+  tracer->ResetForTesting();
   int time1 = 100;
   size_t counter1 = 1000;
   tracer->SampleAllocation(time1, counter1, counter1);
@@ -6445,7 +6409,7 @@
   parent.Reset(isolate, v8::Object::New(isolate));
   child.Reset(isolate, v8::Object::New(isolate));
 
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   heap->CollectGarbage(OLD_SPACE);
   {
     UniqueId id = MakeUniqueId(parent);
@@ -6504,7 +6468,7 @@
     array->set(i, *number);
   }
   heap->CollectGarbage(OLD_SPACE);
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   heap->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(*array, N - 1);
   heap->mark_compact_collector()->EnsureSweepingCompleted();
   ByteArray* byte_array;
@@ -6587,7 +6551,7 @@
         }
       }
     }
-    SimulateIncrementalMarking(heap);
+    heap::SimulateIncrementalMarking(heap);
     for (size_t j = 0; j < arrays.size(); j++) {
       heap->RightTrimFixedArray<Heap::CONCURRENT_TO_SWEEPER>(arrays[j], N - 1);
     }
@@ -6597,51 +6561,6 @@
   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
@@ -6755,5 +6674,61 @@
   CHECK_EQ(size_after, size_before + array->Size());
 }
 
+TEST(Regress615489) {
+  FLAG_black_allocation = true;
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Heap* heap = CcTest::heap();
+  Isolate* isolate = heap->isolate();
+  heap->CollectAllGarbage();
+
+  i::MarkCompactCollector* collector = heap->mark_compact_collector();
+  i::IncrementalMarking* marking = heap->incremental_marking();
+  if (collector->sweeping_in_progress()) {
+    collector->EnsureSweepingCompleted();
+  }
+  CHECK(marking->IsMarking() || marking->IsStopped());
+  if (marking->IsStopped()) {
+    heap->StartIncrementalMarking();
+  }
+  CHECK(marking->IsMarking());
+  marking->StartBlackAllocationForTesting();
+  {
+    AlwaysAllocateScope always_allocate(CcTest::i_isolate());
+    v8::HandleScope inner(CcTest::isolate());
+    isolate->factory()->NewFixedArray(500, TENURED)->Size();
+  }
+  while (!marking->IsComplete()) {
+    marking->Step(i::MB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
+    if (marking->IsReadyToOverApproximateWeakClosure()) {
+      marking->FinalizeIncrementally();
+    }
+  }
+  CHECK(marking->IsComplete());
+  intptr_t size_before = heap->SizeOfObjects();
+  CcTest::heap()->CollectAllGarbage();
+  intptr_t size_after = heap->SizeOfObjects();
+  // Live size does not increase after garbage collection.
+  CHECK_LE(size_after, size_before);
+}
+
+TEST(Regress618958) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  Heap* heap = CcTest::heap();
+  bool isolate_is_locked = true;
+  heap->update_external_memory(100 * MB);
+  int mark_sweep_count_before = heap->ms_count();
+  heap->MemoryPressureNotification(MemoryPressureLevel::kCritical,
+                                   isolate_is_locked);
+  int mark_sweep_count_after = heap->ms_count();
+  int mark_sweeps_performed = mark_sweep_count_after - mark_sweep_count_before;
+  // The memory pressuer handler either performed two GCs or performed one and
+  // started incremental marking.
+  CHECK(mark_sweeps_performed == 2 ||
+        (mark_sweeps_performed == 1 &&
+         !heap->incremental_marking()->IsStopped()));
+}
+
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/heap/test-incremental-marking.cc b/test/cctest/heap/test-incremental-marking.cc
index 74cbf2c..59697a9 100644
--- a/test/cctest/heap/test-incremental-marking.cc
+++ b/test/cctest/heap/test-incremental-marking.cc
@@ -19,8 +19,7 @@
 #include "src/full-codegen/full-codegen.h"
 #include "src/global-handles.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
-
+#include "test/cctest/heap/heap-utils.h"
 
 using v8::IdleTask;
 using v8::Task;
@@ -120,7 +119,7 @@
   v8::Platform* old_platform = i::V8::GetCurrentPlatform();
   MockPlatform platform(old_platform);
   i::V8::SetPlatformForTesting(&platform);
-  SimulateFullSpace(CcTest::heap()->old_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->old_space());
   i::IncrementalMarking* marking = CcTest::heap()->incremental_marking();
   marking->Stop();
   marking->Start();
@@ -145,7 +144,7 @@
   v8::Platform* old_platform = i::V8::GetCurrentPlatform();
   MockPlatform platform(old_platform);
   i::V8::SetPlatformForTesting(&platform);
-  SimulateFullSpace(CcTest::heap()->old_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->old_space());
   CcTest::heap()->CollectAllGarbage();
   i::IncrementalMarking* marking = CcTest::heap()->incremental_marking();
   marking->Stop();
@@ -171,7 +170,7 @@
   v8::Platform* old_platform = i::V8::GetCurrentPlatform();
   MockPlatform platform(old_platform);
   i::V8::SetPlatformForTesting(&platform);
-  SimulateFullSpace(CcTest::heap()->old_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->old_space());
   i::IncrementalMarking* marking = CcTest::heap()->incremental_marking();
   marking->Stop();
   marking->Start();
diff --git a/test/cctest/heap/test-mark-compact.cc b/test/cctest/heap/test-mark-compact.cc
index 2115f1c..1e5d30d 100644
--- a/test/cctest/heap/test-mark-compact.cc
+++ b/test/cctest/heap/test-mark-compact.cc
@@ -43,8 +43,7 @@
 #include "src/global-handles.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
-
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 using v8::Just;
@@ -76,58 +75,49 @@
   DeleteArray(mem);
 }
 
-
-HEAP_TEST(Promotion) {
+TEST(Promotion) {
   CcTest::InitializeVM();
-  Heap* heap = CcTest::heap();
-  heap->ConfigureHeap(1, 1, 1, 0);
+  Isolate* isolate = CcTest::i_isolate();
+  {
+    v8::HandleScope sc(CcTest::isolate());
+    Heap* heap = isolate->heap();
 
-  v8::HandleScope sc(CcTest::isolate());
+    heap::SealCurrentObjects(heap);
 
-  // Allocate a fixed array in the new space.
-  int array_length =
-      (Page::kMaxRegularHeapObjectSize - FixedArray::kHeaderSize) /
-      (4 * kPointerSize);
-  Object* obj = heap->AllocateFixedArray(array_length).ToObjectChecked();
-  Handle<FixedArray> array(FixedArray::cast(obj));
+    int array_length =
+        heap::FixedArrayLenFromSize(Page::kMaxRegularHeapObjectSize);
+    Handle<FixedArray> array = isolate->factory()->NewFixedArray(array_length);
 
-  // Array should be in the new space.
-  CHECK(heap->InSpace(*array, NEW_SPACE));
-
-  // Call mark compact GC, so array becomes an old object.
-  heap->CollectAllGarbage();
-  heap->CollectAllGarbage();
-
-  // Array now sits in the old space
-  CHECK(heap->InSpace(*array, OLD_SPACE));
+    // Array should be in the new space.
+    CHECK(heap->InSpace(*array, NEW_SPACE));
+    heap->CollectAllGarbage();
+    heap->CollectAllGarbage();
+    CHECK(heap->InSpace(*array, OLD_SPACE));
+  }
 }
 
-
 HEAP_TEST(NoPromotion) {
   CcTest::InitializeVM();
-  Heap* heap = CcTest::heap();
-  heap->ConfigureHeap(1, 1, 1, 0);
+  Isolate* isolate = CcTest::i_isolate();
+  {
+    v8::HandleScope sc(CcTest::isolate());
+    Heap* heap = isolate->heap();
 
-  v8::HandleScope sc(CcTest::isolate());
+    heap::SealCurrentObjects(heap);
 
-  // Allocate a big fixed array in the new space.
-  int array_length =
-      (Page::kMaxRegularHeapObjectSize - FixedArray::kHeaderSize) /
-      (2 * kPointerSize);
-  Object* obj = heap->AllocateFixedArray(array_length).ToObjectChecked();
-  Handle<FixedArray> array(FixedArray::cast(obj));
+    int array_length =
+        heap::FixedArrayLenFromSize(Page::kMaxRegularHeapObjectSize);
+    Handle<FixedArray> array = isolate->factory()->NewFixedArray(array_length);
 
-  // Array should be in the new space.
-  CHECK(heap->InSpace(*array, NEW_SPACE));
-
-  // Simulate a full old space to make promotion fail.
-  SimulateFullSpace(heap->old_space());
-
-  // Call mark compact GC, and it should pass.
-  heap->CollectGarbage(OLD_SPACE);
+    heap->set_force_oom(true);
+    // Array should be in the new space.
+    CHECK(heap->InSpace(*array, NEW_SPACE));
+    heap->CollectAllGarbage();
+    heap->CollectAllGarbage();
+    CHECK(heap->InSpace(*array, NEW_SPACE));
+  }
 }
 
-
 HEAP_TEST(MarkCompactCollector) {
   FLAG_incremental_marking = false;
   FLAG_retain_maps_for_n_gc = 0;
diff --git a/test/cctest/heap/test-page-promotion.cc b/test/cctest/heap/test-page-promotion.cc
new file mode 100644
index 0000000..4ec2e2a
--- /dev/null
+++ b/test/cctest/heap/test-page-promotion.cc
@@ -0,0 +1,129 @@
+// 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/heap/array-buffer-tracker.h"
+#include "test/cctest/cctest.h"
+#include "test/cctest/heap/heap-utils.h"
+
+namespace {
+
+v8::Isolate* NewIsolateForPagePromotion() {
+  i::FLAG_page_promotion = true;
+  i::FLAG_page_promotion_threshold = 0;  // %
+  i::FLAG_min_semi_space_size = 8 * (i::Page::kPageSize / i::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);
+  return isolate;
+}
+
+}  // namespace
+
+namespace v8 {
+namespace internal {
+
+UNINITIALIZED_TEST(PagePromotion_NewToOld) {
+  v8::Isolate* isolate = NewIsolateForPagePromotion();
+  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;
+    heap::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());
+    // To perform a sanity check on live bytes we need to mark the heap.
+    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::GcAndSweep(heap, OLD_SPACE);
+    CHECK(!heap->new_space()->ContainsSlow(first_page->address()));
+    CHECK(heap->old_space()->ContainsSlow(first_page->address()));
+  }
+}
+
+UNINITIALIZED_TEST(PagePromotion_NewToNew) {
+  v8::Isolate* isolate = NewIsolateForPagePromotion();
+  Isolate* i_isolate = reinterpret_cast<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;
+    heap::SimulateFullSpace(heap->new_space(), &handles);
+    CHECK_GT(handles.size(), 0u);
+    // Last object in handles should definitely be on the last page which does
+    // not contain the age mark.
+    Handle<FixedArray> last_object = handles.back();
+    Page* to_be_promoted_page = Page::FromAddress(last_object->address());
+    CHECK(to_be_promoted_page->Contains(last_object->address()));
+    CHECK(heap->new_space()->ToSpaceContainsSlow(last_object->address()));
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(heap->new_space()->ToSpaceContainsSlow(last_object->address()));
+    CHECK(to_be_promoted_page->Contains(last_object->address()));
+  }
+}
+
+UNINITIALIZED_TEST(PagePromotion_NewToNewJSArrayBuffer) {
+  // Test makes sure JSArrayBuffer backing stores are still tracked after
+  // new-to-new promotion.
+  v8::Isolate* isolate = NewIsolateForPagePromotion();
+  Isolate* i_isolate = reinterpret_cast<Isolate*>(isolate);
+  {
+    v8::Isolate::Scope isolate_scope(isolate);
+    v8::HandleScope handle_scope(isolate);
+    v8::Context::New(isolate)->Enter();
+    Heap* heap = i_isolate->heap();
+
+    // Fill the current page which potentially contains the age mark.
+    heap::FillCurrentPage(heap->new_space());
+
+    // Allocate a buffer we would like to check against.
+    Handle<JSArrayBuffer> buffer =
+        i_isolate->factory()->NewJSArrayBuffer(SharedFlag::kNotShared);
+    JSArrayBuffer::SetupAllocatingData(buffer, i_isolate, 100);
+    std::vector<Handle<FixedArray>> handles;
+    // Simulate a full space, filling the interesting page with live objects.
+    heap::SimulateFullSpace(heap->new_space(), &handles);
+    CHECK_GT(handles.size(), 0u);
+    // Last object in handles should definitely be on the last page which does
+    // not contain the age mark.
+    Handle<FixedArray> first_object = handles.front();
+    Page* to_be_promoted_page = Page::FromAddress(first_object->address());
+    CHECK(to_be_promoted_page->Contains(first_object->address()));
+    CHECK(to_be_promoted_page->Contains(buffer->address()));
+    CHECK(heap->new_space()->ToSpaceContainsSlow(first_object->address()));
+    CHECK(heap->new_space()->ToSpaceContainsSlow(buffer->address()));
+    heap::GcAndSweep(heap, OLD_SPACE);
+    CHECK(heap->new_space()->ToSpaceContainsSlow(first_object->address()));
+    CHECK(heap->new_space()->ToSpaceContainsSlow(buffer->address()));
+    CHECK(to_be_promoted_page->Contains(first_object->address()));
+    CHECK(to_be_promoted_page->Contains(buffer->address()));
+    CHECK(ArrayBufferTracker::IsTracked(*buffer));
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/heap/test-spaces.cc b/test/cctest/heap/test-spaces.cc
index da364c5..2328518 100644
--- a/test/cctest/heap/test-spaces.cc
+++ b/test/cctest/heap/test-spaces.cc
@@ -32,7 +32,6 @@
 #include "src/v8.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
 
 namespace v8 {
 namespace internal {
@@ -203,36 +202,32 @@
 TEST(Regress3540) {
   Isolate* isolate = CcTest::i_isolate();
   Heap* heap = isolate->heap();
-  const int pageSize = Page::kPageSize;
   MemoryAllocator* memory_allocator = new MemoryAllocator(isolate);
   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;
-  if (!code_range->SetUp(
-          code_range_size +
-          RoundUp(v8::base::OS::CommitPageSize() * kReservedCodeRangePages,
-                  MemoryChunk::kAlignment) +
-          v8::internal::MemoryAllocator::CodePageAreaSize())) {
+  size_t code_range_size =
+      kMinimumCodeRangeSize > 0 ? kMinimumCodeRangeSize : 3 * Page::kPageSize;
+  if (!code_range->SetUp(code_range_size)) {
     return;
   }
 
   Address address;
   size_t size;
-  size_t request_size = code_range_size - 2 * pageSize;
+  size_t request_size = code_range_size - Page::kPageSize;
   address = code_range->AllocateRawMemory(
       request_size, request_size - (2 * MemoryAllocator::CodePageGuardSize()),
       &size);
-  CHECK(address != NULL);
+  CHECK_NOT_NULL(address);
 
   Address null_address;
   size_t null_size;
-  request_size = code_range_size - pageSize;
+  request_size = code_range_size - Page::kPageSize;
   null_address = code_range->AllocateRawMemory(
       request_size, request_size - (2 * MemoryAllocator::CodePageGuardSize()),
       &null_size);
-  CHECK(null_address == NULL);
+  CHECK_NULL(null_address);
 
   code_range->FreeRawMemory(address, size);
   delete code_range;
@@ -281,8 +276,8 @@
                       NOT_EXECUTABLE);
     delete code_range;
 
-    // Without CodeRange.
-    code_range = NULL;
+    // Without a valid CodeRange, i.e., omitting SetUp.
+    code_range = new CodeRange(isolate);
     VerifyMemoryChunk(isolate,
                       heap,
                       code_range,
@@ -298,6 +293,7 @@
                       initial_commit_area_size,
                       second_commit_area_size,
                       NOT_EXECUTABLE);
+    delete code_range;
   }
 }
 
@@ -489,7 +485,15 @@
   CcTest::InitializeVM();
   Isolate* isolate = CcTest::i_isolate();
   if (!isolate->snapshot_available()) return;
-  if (Snapshot::EmbedsScript(isolate)) return;
+  HandleScope scope(isolate);
+  v8::Local<v8::Context> context = CcTest::isolate()->GetCurrentContext();
+  // Skip this test on the custom snapshot builder.
+  if (!CcTest::global()
+           ->Get(context, v8_str("assertEquals"))
+           .ToLocalChecked()
+           ->IsUndefined()) {
+    return;
+  }
 
   // If this test fails due to enabling experimental natives that are not part
   // of the snapshot, we may need to adjust CalculateFirstPageSizes.
@@ -502,7 +506,6 @@
   }
 
   // Executing the empty script gets by with one page per space.
-  HandleScope scope(isolate);
   CompileRun("/*empty*/");
   for (int i = FIRST_PAGED_SPACE; i <= LAST_PAGED_SPACE; i++) {
     // Debug code can be very large, so skip CODE_SPACE if we are generating it.
diff --git a/test/cctest/heap/utils-inl.h b/test/cctest/heap/utils-inl.h
deleted file mode 100644
index 0e943b4..0000000
--- a/test/cctest/heap/utils-inl.h
+++ /dev/null
@@ -1,148 +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 HEAP_UTILS_H_
-#define HEAP_UTILS_H_
-
-#include "src/factory.h"
-#include "src/heap/heap-inl.h"
-#include "src/heap/incremental-marking.h"
-#include "src/heap/mark-compact.h"
-#include "src/isolate.h"
-
-
-namespace v8 {
-namespace internal {
-
-static int LenFromSize(int size) {
-  return (size - FixedArray::kHeaderSize) / kPointerSize;
-}
-
-
-static inline std::vector<Handle<FixedArray>> CreatePadding(
-    Heap* heap, int padding_size, PretenureFlag tenure,
-    int object_size = Page::kMaxRegularHeapObjectSize) {
-  std::vector<Handle<FixedArray>> handles;
-  Isolate* isolate = heap->isolate();
-  int allocate_memory;
-  int length;
-  int free_memory = padding_size;
-  if (tenure == i::TENURED) {
-    heap->old_space()->EmptyAllocationInfo();
-    int overall_free_memory = static_cast<int>(heap->old_space()->Available());
-    CHECK(padding_size <= overall_free_memory || overall_free_memory == 0);
-  } else {
-    heap->new_space()->DisableInlineAllocationSteps();
-    int overall_free_memory =
-        static_cast<int>(*heap->new_space()->allocation_limit_address() -
-                         *heap->new_space()->allocation_top_address());
-    CHECK(padding_size <= overall_free_memory || overall_free_memory == 0);
-  }
-  while (free_memory > 0) {
-    if (free_memory > object_size) {
-      allocate_memory = object_size;
-      length = LenFromSize(allocate_memory);
-    } else {
-      allocate_memory = free_memory;
-      length = LenFromSize(allocate_memory);
-      if (length <= 0) {
-        // Not enough room to create another fixed array. Let's create a filler.
-        heap->CreateFillerObjectAt(*heap->old_space()->allocation_top_address(),
-                                   free_memory, ClearRecordedSlots::kNo);
-        break;
-      }
-    }
-    handles.push_back(isolate->factory()->NewFixedArray(length, tenure));
-    CHECK((tenure == NOT_TENURED && heap->InNewSpace(*handles.back())) ||
-          (tenure == TENURED && heap->InOldSpace(*handles.back())));
-    free_memory -= allocate_memory;
-  }
-  return handles;
-}
-
-
-// Helper function that simulates a full new-space in the heap.
-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;
-  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,
-    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;
-  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,
-    std::vector<Handle<FixedArray>>* out_handles = nullptr) {
-  AllocateAllButNBytes(space, 0, out_handles);
-}
-
-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()) {
-  }
-}
-
-
-// Helper function that simulates a full old-space in the heap.
-static inline void SimulateFullSpace(v8::internal::PagedSpace* space) {
-  space->EmptyAllocationInfo();
-  space->ResetFreeList();
-  space->ClearStats();
-}
-
-
-// Helper function that simulates many incremental marking steps until
-// marking is completed.
-static inline void SimulateIncrementalMarking(i::Heap* heap,
-                                              bool force_completion = true) {
-  i::MarkCompactCollector* collector = heap->mark_compact_collector();
-  i::IncrementalMarking* marking = heap->incremental_marking();
-  if (collector->sweeping_in_progress()) {
-    collector->EnsureSweepingCompleted();
-  }
-  CHECK(marking->IsMarking() || marking->IsStopped());
-  if (marking->IsStopped()) {
-    heap->StartIncrementalMarking();
-  }
-  CHECK(marking->IsMarking());
-  if (!force_completion) return;
-
-  while (!marking->IsComplete()) {
-    marking->Step(i::MB, i::IncrementalMarking::NO_GC_VIA_STACK_GUARD);
-    if (marking->IsReadyToOverApproximateWeakClosure()) {
-      marking->FinalizeIncrementally();
-    }
-  }
-  CHECK(marking->IsComplete());
-}
-
-}  // namespace internal
-}  // namespace v8
-
-#endif  // HEAP_UTILS_H_
diff --git a/test/cctest/interpreter/bytecode-expectations-printer.cc b/test/cctest/interpreter/bytecode-expectations-printer.cc
index b0f6236..83f11c6 100644
--- a/test/cctest/interpreter/bytecode-expectations-printer.cc
+++ b/test/cctest/interpreter/bytecode-expectations-printer.cc
@@ -19,6 +19,7 @@
 #include "src/interpreter/bytecode-array-iterator.h"
 #include "src/interpreter/bytecode-generator.h"
 #include "src/interpreter/bytecodes.h"
+#include "src/interpreter/interpreter-intrinsics.h"
 #include "src/interpreter/interpreter.h"
 #include "src/interpreter/source-position-table.h"
 
@@ -98,12 +99,6 @@
   }
 }
 
-namespace {
-i::Runtime::FunctionId IndexToFunctionId(uint32_t index) {
-  return static_cast<i::Runtime::FunctionId>(index);
-}
-}  // namespace
-
 void BytecodeExpectationsPrinter::PrintBytecodeOperand(
     std::ostream& stream, const BytecodeArrayIterator& bytecode_iterator,
     const Bytecode& bytecode, int op_index, int parameter_count) const {
@@ -164,9 +159,15 @@
         stream << bytecode_iterator.GetRegisterCountOperand(op_index);
         break;
       case OperandType::kRuntimeId: {
-        uint32_t operand = bytecode_iterator.GetRuntimeIdOperand(op_index);
-        stream << "Runtime::k"
-               << i::Runtime::FunctionForId(IndexToFunctionId(operand))->name;
+        Runtime::FunctionId id =
+            bytecode_iterator.GetRuntimeIdOperand(op_index);
+        stream << "Runtime::k" << i::Runtime::FunctionForId(id)->name;
+        break;
+      }
+      case OperandType::kIntrinsicId: {
+        Runtime::FunctionId id =
+            bytecode_iterator.GetIntrinsicIdOperand(op_index);
+        stream << "Runtime::k" << i::Runtime::FunctionForId(id)->name;
         break;
       }
       default:
diff --git a/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden b/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
index 5dcb46b..6bde246 100644
--- a/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ArrayLiterals.golden
@@ -29,26 +29,24 @@
 snippet: "
   var a = 1; return [ a, a + 1 ];
 "
-frame size: 4
+frame size: 3
 parameter count: 1
-bytecode array length: 39
+bytecode array length: 35
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   54 E> */ B(StaKeyedPropertySloppy), 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),
+  /*   57 E> */ B(Add), R(0),
+                B(StaKeyedPropertySloppy), R(2), R(1), U8(1),
                 B(Ldar), R(2),
   /*   66 S> */ B(Return),
 ]
@@ -80,13 +78,13 @@
 snippet: "
   var a = 1; return [ [ a, 2 ], [ a + 2 ] ];
 "
-frame size: 6
+frame size: 5
 parameter count: 1
-bytecode array length: 69
+bytecode array length: 65
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(CreateArrayLiteral), U8(0), U8(2), U8(2),
                 B(Star), R(2),
                 B(LdaZero),
@@ -95,23 +93,21 @@
                 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(0),
+  /*   56 E> */ B(StaKeyedPropertySloppy), R(4), R(3), U8(1),
                 B(Ldar), R(4),
-                B(KeyedStoreICSloppy), R(2), R(1), U8(5),
+                B(StaKeyedPropertySloppy), 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),
+  /*   66 E> */ B(Add), R(0),
+                B(StaKeyedPropertySloppy), R(4), R(3), U8(3),
                 B(Ldar), R(4),
-                B(KeyedStoreICSloppy), R(2), R(1), U8(5),
+                B(StaKeyedPropertySloppy), R(2), R(1), U8(5),
                 B(Ldar), R(2),
   /*   77 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
index a852ad4..9f9a251 100644
--- a/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ArrayLiteralsWide.golden
@@ -274,517 +274,517 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   41 S> */ B(LdaConstant), U8(0),
-  /*   43 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   51 S> */ B(LdaConstant), U8(1),
-  /*   53 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   61 S> */ B(LdaConstant), U8(2),
-  /*   63 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   71 S> */ B(LdaConstant), U8(3),
-  /*   73 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   81 S> */ B(LdaConstant), U8(4),
-  /*   83 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   91 S> */ B(LdaConstant), U8(5),
-  /*   93 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  101 S> */ B(LdaConstant), U8(6),
-  /*  103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  111 S> */ B(LdaConstant), U8(7),
-  /*  113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  121 S> */ B(LdaConstant), U8(8),
-  /*  123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  131 S> */ B(LdaConstant), U8(9),
-  /*  133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  141 S> */ B(LdaConstant), U8(10),
-  /*  143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  151 S> */ B(LdaConstant), U8(11),
-  /*  153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  161 S> */ B(LdaConstant), U8(12),
-  /*  163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  171 S> */ B(LdaConstant), U8(13),
-  /*  173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  181 S> */ B(LdaConstant), U8(14),
-  /*  183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  191 S> */ B(LdaConstant), U8(15),
-  /*  193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  201 S> */ B(LdaConstant), U8(16),
-  /*  203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  211 S> */ B(LdaConstant), U8(17),
-  /*  213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  221 S> */ B(LdaConstant), U8(18),
-  /*  223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  231 S> */ B(LdaConstant), U8(19),
-  /*  233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  241 S> */ B(LdaConstant), U8(20),
-  /*  243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  251 S> */ B(LdaConstant), U8(21),
-  /*  253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  261 S> */ B(LdaConstant), U8(22),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  271 S> */ B(LdaConstant), U8(23),
-  /*  273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  281 S> */ B(LdaConstant), U8(24),
-  /*  283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  291 S> */ B(LdaConstant), U8(25),
-  /*  293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  301 S> */ B(LdaConstant), U8(26),
-  /*  303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  311 S> */ B(LdaConstant), U8(27),
-  /*  313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  321 S> */ B(LdaConstant), U8(28),
-  /*  323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  331 S> */ B(LdaConstant), U8(29),
-  /*  333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  341 S> */ B(LdaConstant), U8(30),
-  /*  343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  351 S> */ B(LdaConstant), U8(31),
-  /*  353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  361 S> */ B(LdaConstant), U8(32),
-  /*  363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  371 S> */ B(LdaConstant), U8(33),
-  /*  373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  381 S> */ B(LdaConstant), U8(34),
-  /*  383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  391 S> */ B(LdaConstant), U8(35),
-  /*  393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  401 S> */ B(LdaConstant), U8(36),
-  /*  403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  411 S> */ B(LdaConstant), U8(37),
-  /*  413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  421 S> */ B(LdaConstant), U8(38),
-  /*  423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  431 S> */ B(LdaConstant), U8(39),
-  /*  433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  441 S> */ B(LdaConstant), U8(40),
-  /*  443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  451 S> */ B(LdaConstant), U8(41),
-  /*  453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  461 S> */ B(LdaConstant), U8(42),
-  /*  463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  471 S> */ B(LdaConstant), U8(43),
-  /*  473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  481 S> */ B(LdaConstant), U8(44),
-  /*  483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  491 S> */ B(LdaConstant), U8(45),
-  /*  493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  501 S> */ B(LdaConstant), U8(46),
-  /*  503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  511 S> */ B(LdaConstant), U8(47),
-  /*  513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  521 S> */ B(LdaConstant), U8(48),
-  /*  523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  531 S> */ B(LdaConstant), U8(49),
-  /*  533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  541 S> */ B(LdaConstant), U8(50),
-  /*  543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  551 S> */ B(LdaConstant), U8(51),
-  /*  553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  561 S> */ B(LdaConstant), U8(52),
-  /*  563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  571 S> */ B(LdaConstant), U8(53),
-  /*  573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  581 S> */ B(LdaConstant), U8(54),
-  /*  583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  591 S> */ B(LdaConstant), U8(55),
-  /*  593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  601 S> */ B(LdaConstant), U8(56),
-  /*  603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  611 S> */ B(LdaConstant), U8(57),
-  /*  613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  621 S> */ B(LdaConstant), U8(58),
-  /*  623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  631 S> */ B(LdaConstant), U8(59),
-  /*  633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  641 S> */ B(LdaConstant), U8(60),
-  /*  643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  651 S> */ B(LdaConstant), U8(61),
-  /*  653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  661 S> */ B(LdaConstant), U8(62),
-  /*  663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  671 S> */ B(LdaConstant), U8(63),
-  /*  673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  681 S> */ B(LdaConstant), U8(64),
-  /*  683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  691 S> */ B(LdaConstant), U8(65),
-  /*  693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  701 S> */ B(LdaConstant), U8(66),
-  /*  703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  711 S> */ B(LdaConstant), U8(67),
-  /*  713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  721 S> */ B(LdaConstant), U8(68),
-  /*  723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  731 S> */ B(LdaConstant), U8(69),
-  /*  733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  741 S> */ B(LdaConstant), U8(70),
-  /*  743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  751 S> */ B(LdaConstant), U8(71),
-  /*  753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  761 S> */ B(LdaConstant), U8(72),
-  /*  763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  771 S> */ B(LdaConstant), U8(73),
-  /*  773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  781 S> */ B(LdaConstant), U8(74),
-  /*  783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  791 S> */ B(LdaConstant), U8(75),
-  /*  793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  801 S> */ B(LdaConstant), U8(76),
-  /*  803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  811 S> */ B(LdaConstant), U8(77),
-  /*  813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  821 S> */ B(LdaConstant), U8(78),
-  /*  823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  831 S> */ B(LdaConstant), U8(79),
-  /*  833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  841 S> */ B(LdaConstant), U8(80),
-  /*  843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  851 S> */ B(LdaConstant), U8(81),
-  /*  853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  861 S> */ B(LdaConstant), U8(82),
-  /*  863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  871 S> */ B(LdaConstant), U8(83),
-  /*  873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  881 S> */ B(LdaConstant), U8(84),
-  /*  883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  891 S> */ B(LdaConstant), U8(85),
-  /*  893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  901 S> */ B(LdaConstant), U8(86),
-  /*  903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  911 S> */ B(LdaConstant), U8(87),
-  /*  913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  921 S> */ B(LdaConstant), U8(88),
-  /*  923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  931 S> */ B(LdaConstant), U8(89),
-  /*  933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  941 S> */ B(LdaConstant), U8(90),
-  /*  943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  951 S> */ B(LdaConstant), U8(91),
-  /*  953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  961 S> */ B(LdaConstant), U8(92),
-  /*  963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  971 S> */ B(LdaConstant), U8(93),
-  /*  973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  981 S> */ B(LdaConstant), U8(94),
-  /*  983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  991 S> */ B(LdaConstant), U8(95),
-  /*  993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1001 S> */ B(LdaConstant), U8(96),
-  /* 1003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1011 S> */ B(LdaConstant), U8(97),
-  /* 1013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1021 S> */ B(LdaConstant), U8(98),
-  /* 1023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1031 S> */ B(LdaConstant), U8(99),
-  /* 1033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1041 S> */ B(LdaConstant), U8(100),
-  /* 1043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1051 S> */ B(LdaConstant), U8(101),
-  /* 1053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1061 S> */ B(LdaConstant), U8(102),
-  /* 1063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1071 S> */ B(LdaConstant), U8(103),
-  /* 1073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1081 S> */ B(LdaConstant), U8(104),
-  /* 1083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1091 S> */ B(LdaConstant), U8(105),
-  /* 1093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1101 S> */ B(LdaConstant), U8(106),
-  /* 1103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1111 S> */ B(LdaConstant), U8(107),
-  /* 1113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1121 S> */ B(LdaConstant), U8(108),
-  /* 1123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1131 S> */ B(LdaConstant), U8(109),
-  /* 1133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1141 S> */ B(LdaConstant), U8(110),
-  /* 1143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1151 S> */ B(LdaConstant), U8(111),
-  /* 1153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1161 S> */ B(LdaConstant), U8(112),
-  /* 1163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1171 S> */ B(LdaConstant), U8(113),
-  /* 1173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1181 S> */ B(LdaConstant), U8(114),
-  /* 1183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1191 S> */ B(LdaConstant), U8(115),
-  /* 1193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1201 S> */ B(LdaConstant), U8(116),
-  /* 1203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1211 S> */ B(LdaConstant), U8(117),
-  /* 1213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1221 S> */ B(LdaConstant), U8(118),
-  /* 1223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1231 S> */ B(LdaConstant), U8(119),
-  /* 1233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1241 S> */ B(LdaConstant), U8(120),
-  /* 1243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1251 S> */ B(LdaConstant), U8(121),
-  /* 1253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1261 S> */ B(LdaConstant), U8(122),
-  /* 1263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1271 S> */ B(LdaConstant), U8(123),
-  /* 1273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1281 S> */ B(LdaConstant), U8(124),
-  /* 1283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1291 S> */ B(LdaConstant), U8(125),
-  /* 1293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1301 S> */ B(LdaConstant), U8(126),
-  /* 1303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1311 S> */ B(LdaConstant), U8(127),
-  /* 1313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1321 S> */ B(LdaConstant), U8(128),
-  /* 1323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1331 S> */ B(LdaConstant), U8(129),
-  /* 1333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1341 S> */ B(LdaConstant), U8(130),
-  /* 1343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1351 S> */ B(LdaConstant), U8(131),
-  /* 1353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1361 S> */ B(LdaConstant), U8(132),
-  /* 1363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1371 S> */ B(LdaConstant), U8(133),
-  /* 1373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1381 S> */ B(LdaConstant), U8(134),
-  /* 1383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1391 S> */ B(LdaConstant), U8(135),
-  /* 1393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1401 S> */ B(LdaConstant), U8(136),
-  /* 1403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1411 S> */ B(LdaConstant), U8(137),
-  /* 1413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1421 S> */ B(LdaConstant), U8(138),
-  /* 1423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1431 S> */ B(LdaConstant), U8(139),
-  /* 1433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1441 S> */ B(LdaConstant), U8(140),
-  /* 1443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1451 S> */ B(LdaConstant), U8(141),
-  /* 1453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1461 S> */ B(LdaConstant), U8(142),
-  /* 1463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1471 S> */ B(LdaConstant), U8(143),
-  /* 1473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1481 S> */ B(LdaConstant), U8(144),
-  /* 1483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1491 S> */ B(LdaConstant), U8(145),
-  /* 1493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1501 S> */ B(LdaConstant), U8(146),
-  /* 1503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1511 S> */ B(LdaConstant), U8(147),
-  /* 1513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1521 S> */ B(LdaConstant), U8(148),
-  /* 1523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1531 S> */ B(LdaConstant), U8(149),
-  /* 1533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1541 S> */ B(LdaConstant), U8(150),
-  /* 1543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1551 S> */ B(LdaConstant), U8(151),
-  /* 1553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1561 S> */ B(LdaConstant), U8(152),
-  /* 1563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1571 S> */ B(LdaConstant), U8(153),
-  /* 1573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1581 S> */ B(LdaConstant), U8(154),
-  /* 1583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1591 S> */ B(LdaConstant), U8(155),
-  /* 1593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1601 S> */ B(LdaConstant), U8(156),
-  /* 1603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1611 S> */ B(LdaConstant), U8(157),
-  /* 1613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1621 S> */ B(LdaConstant), U8(158),
-  /* 1623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1631 S> */ B(LdaConstant), U8(159),
-  /* 1633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1641 S> */ B(LdaConstant), U8(160),
-  /* 1643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1651 S> */ B(LdaConstant), U8(161),
-  /* 1653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1661 S> */ B(LdaConstant), U8(162),
-  /* 1663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1671 S> */ B(LdaConstant), U8(163),
-  /* 1673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1681 S> */ B(LdaConstant), U8(164),
-  /* 1683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1691 S> */ B(LdaConstant), U8(165),
-  /* 1693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1701 S> */ B(LdaConstant), U8(166),
-  /* 1703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1711 S> */ B(LdaConstant), U8(167),
-  /* 1713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1721 S> */ B(LdaConstant), U8(168),
-  /* 1723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1731 S> */ B(LdaConstant), U8(169),
-  /* 1733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1741 S> */ B(LdaConstant), U8(170),
-  /* 1743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1751 S> */ B(LdaConstant), U8(171),
-  /* 1753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1761 S> */ B(LdaConstant), U8(172),
-  /* 1763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1771 S> */ B(LdaConstant), U8(173),
-  /* 1773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1781 S> */ B(LdaConstant), U8(174),
-  /* 1783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1791 S> */ B(LdaConstant), U8(175),
-  /* 1793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1801 S> */ B(LdaConstant), U8(176),
-  /* 1803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1811 S> */ B(LdaConstant), U8(177),
-  /* 1813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1821 S> */ B(LdaConstant), U8(178),
-  /* 1823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1831 S> */ B(LdaConstant), U8(179),
-  /* 1833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1841 S> */ B(LdaConstant), U8(180),
-  /* 1843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1851 S> */ B(LdaConstant), U8(181),
-  /* 1853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1861 S> */ B(LdaConstant), U8(182),
-  /* 1863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1871 S> */ B(LdaConstant), U8(183),
-  /* 1873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1881 S> */ B(LdaConstant), U8(184),
-  /* 1883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1891 S> */ B(LdaConstant), U8(185),
-  /* 1893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1901 S> */ B(LdaConstant), U8(186),
-  /* 1903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1911 S> */ B(LdaConstant), U8(187),
-  /* 1913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1921 S> */ B(LdaConstant), U8(188),
-  /* 1923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1931 S> */ B(LdaConstant), U8(189),
-  /* 1933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1941 S> */ B(LdaConstant), U8(190),
-  /* 1943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1951 S> */ B(LdaConstant), U8(191),
-  /* 1953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1961 S> */ B(LdaConstant), U8(192),
-  /* 1963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1971 S> */ B(LdaConstant), U8(193),
-  /* 1973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1981 S> */ B(LdaConstant), U8(194),
-  /* 1983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1991 S> */ B(LdaConstant), U8(195),
-  /* 1993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2001 S> */ B(LdaConstant), U8(196),
-  /* 2003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2011 S> */ B(LdaConstant), U8(197),
-  /* 2013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2021 S> */ B(LdaConstant), U8(198),
-  /* 2023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2031 S> */ B(LdaConstant), U8(199),
-  /* 2033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2041 S> */ B(LdaConstant), U8(200),
-  /* 2043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2051 S> */ B(LdaConstant), U8(201),
-  /* 2053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2061 S> */ B(LdaConstant), U8(202),
-  /* 2063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2071 S> */ B(LdaConstant), U8(203),
-  /* 2073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2081 S> */ B(LdaConstant), U8(204),
-  /* 2083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2091 S> */ B(LdaConstant), U8(205),
-  /* 2093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2101 S> */ B(LdaConstant), U8(206),
-  /* 2103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2111 S> */ B(LdaConstant), U8(207),
-  /* 2113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2121 S> */ B(LdaConstant), U8(208),
-  /* 2123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2131 S> */ B(LdaConstant), U8(209),
-  /* 2133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2141 S> */ B(LdaConstant), U8(210),
-  /* 2143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2151 S> */ B(LdaConstant), U8(211),
-  /* 2153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2161 S> */ B(LdaConstant), U8(212),
-  /* 2163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2171 S> */ B(LdaConstant), U8(213),
-  /* 2173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2181 S> */ B(LdaConstant), U8(214),
-  /* 2183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2191 S> */ B(LdaConstant), U8(215),
-  /* 2193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2201 S> */ B(LdaConstant), U8(216),
-  /* 2203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2211 S> */ B(LdaConstant), U8(217),
-  /* 2213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2221 S> */ B(LdaConstant), U8(218),
-  /* 2223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2231 S> */ B(LdaConstant), U8(219),
-  /* 2233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2241 S> */ B(LdaConstant), U8(220),
-  /* 2243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2251 S> */ B(LdaConstant), U8(221),
-  /* 2253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2261 S> */ B(LdaConstant), U8(222),
-  /* 2263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2271 S> */ B(LdaConstant), U8(223),
-  /* 2273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2281 S> */ B(LdaConstant), U8(224),
-  /* 2283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2291 S> */ B(LdaConstant), U8(225),
-  /* 2293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2301 S> */ B(LdaConstant), U8(226),
-  /* 2303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2311 S> */ B(LdaConstant), U8(227),
-  /* 2313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2321 S> */ B(LdaConstant), U8(228),
-  /* 2323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2331 S> */ B(LdaConstant), U8(229),
-  /* 2333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2341 S> */ B(LdaConstant), U8(230),
-  /* 2343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2351 S> */ B(LdaConstant), U8(231),
-  /* 2353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2361 S> */ B(LdaConstant), U8(232),
-  /* 2363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2371 S> */ B(LdaConstant), U8(233),
-  /* 2373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2381 S> */ B(LdaConstant), U8(234),
-  /* 2383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2391 S> */ B(LdaConstant), U8(235),
-  /* 2393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2401 S> */ B(LdaConstant), U8(236),
-  /* 2403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2411 S> */ B(LdaConstant), U8(237),
-  /* 2413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2421 S> */ B(LdaConstant), U8(238),
-  /* 2423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2431 S> */ B(LdaConstant), U8(239),
-  /* 2433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2441 S> */ B(LdaConstant), U8(240),
-  /* 2443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2451 S> */ B(LdaConstant), U8(241),
-  /* 2453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2461 S> */ B(LdaConstant), U8(242),
-  /* 2463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2471 S> */ B(LdaConstant), U8(243),
-  /* 2473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2481 S> */ B(LdaConstant), U8(244),
-  /* 2483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2491 S> */ B(LdaConstant), U8(245),
-  /* 2493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2501 S> */ B(LdaConstant), U8(246),
-  /* 2503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2511 S> */ B(LdaConstant), U8(247),
-  /* 2513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2521 S> */ B(LdaConstant), U8(248),
-  /* 2523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2531 S> */ B(LdaConstant), U8(249),
-  /* 2533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2541 S> */ B(LdaConstant), U8(250),
-  /* 2543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2551 S> */ B(LdaConstant), U8(251),
-  /* 2553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2561 S> */ B(LdaConstant), U8(252),
-  /* 2563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2571 S> */ B(LdaConstant), U8(253),
-  /* 2573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2581 S> */ B(LdaConstant), U8(254),
-  /* 2583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2591 S> */ B(LdaConstant), U8(255),
-  /* 2593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2601 S> */ B(Wide), B(CreateArrayLiteral), U16(256), U16(0), U8(3),
   /* 2619 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden b/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
index c80469b..cdda7f2 100644
--- a/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
+++ b/test/cctest/interpreter/bytecode_expectations/AssignmentsInBinaryExpression.golden
@@ -18,17 +18,17 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   49 S> */ B(LdaSmi), U8(1),
-  /*   49 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   52 S> */ B(LdaSmi), U8(2),
-  /*   62 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaSmi), U8(3),
-  /*   69 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(4),
-  /*   76 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaSmi), U8(5),
-  /*   83 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   89 S> */ B(Return),
 ]
 constant pool: [
@@ -44,14 +44,15 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 13
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(55),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   57 S> */ B(LdaSmi), U8(100),
-  /*   57 E> */ B(Star), R(0),
-  /*   57 E> */ B(Star), R(1),
+                B(Star), R(0),
+                B(Star), R(1),
+  /*   65 S> */ B(Nop),
   /*   75 S> */ B(Return),
 ]
 constant pool: [
@@ -67,20 +68,21 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 24
+bytecode array length: 26
 bytecodes: [
   /*   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(0),
+  /*   46 S> */ B(LdaSmi), U8(100),
+                B(Mov), R(0), R(1),
+                B(Star), R(0),
+  /*   57 E> */ 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),
+                B(Star), R(0),
+  /*   69 E> */ B(Add), R(2),
+                B(Star), R(0),
+  /*   77 S> */ B(Nop),
   /*   87 S> */ B(Return),
 ]
 constant pool: [
@@ -97,25 +99,24 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 29
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(55),
-  /*   42 E> */ B(Star), R(0),
+                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(0),
+  /*   61 E> */ B(Sub), R(0),
                 B(Star), R(2),
                 B(LdaSmi), U8(57),
-  /*   68 E> */ B(Star), R(0),
-                B(Add), R(2),
-  /*   48 E> */ B(Star), R(0),
+                B(Star), R(0),
+  /*   68 E> */ B(Add), R(2),
+                B(Star), R(0),
   /*   75 S> */ B(ToNumber),
                 B(Star), R(1),
                 B(Inc),
-  /*   76 E> */ B(Star), R(0),
+                B(Star), R(0),
+  /*   80 S> */ B(Nop),
   /*   90 S> */ B(Return),
 ]
 constant pool: [
@@ -131,24 +132,25 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 34
 bytecodes: [
   /*   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(0),
+  /*   76 S> */ B(LdaSmi), U8(1),
+                B(Mov), R(0), R(2),
+                B(Star), R(0),
+  /*   61 E> */ 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(0),
+  /*   71 E> */ 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),
+                B(Star), R(0),
+  /*   81 E> */ B(Add), R(2),
+                B(Star), R(1),
+  /*   87 S> */ B(Nop),
   /*   97 S> */ B(Return),
 ]
 constant pool: [
@@ -164,24 +166,25 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 34
 bytecodes: [
   /*   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(0),
+  /*   76 S> */ B(LdaSmi), U8(1),
+                B(Mov), R(0), R(1),
+                B(Star), R(0),
+  /*   61 E> */ 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(0),
+  /*   71 E> */ 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),
+                B(Star), R(0),
+  /*   81 E> */ B(Add), R(1),
+                B(Star), R(0),
+  /*   87 S> */ B(Nop),
   /*   97 S> */ B(Return),
 ]
 constant pool: [
@@ -196,43 +199,40 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 70
+bytecode array length: 65
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                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(1),
+  /*   54 S> */ B(LdaSmi), U8(1),
+                B(Mov), R(0), R(2),
+                B(Star), R(0),
+  /*   68 E> */ 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),
+  /*   76 E> */ B(Add), R(0),
                 B(Star), R(4),
                 B(LdaSmi), U8(2),
-  /*   88 E> */ B(Star), R(1),
-                B(Mul), R(4),
+                B(Star), R(1),
+  /*   88 E> */ 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(1),
+  /*   98 E> */ 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(0),
+  /*  108 E> */ 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(1),
+  /*  118 E> */ B(Add), R(2),
                 B(Star), R(3),
-  /*  125 E> */ B(Ldar), R(1),
-                B(Add), R(3),
+                B(Ldar), R(1),
+  /*  125 E> */ B(Add), R(3),
   /*  128 S> */ B(Return),
 ]
 constant pool: [
@@ -251,24 +251,24 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(17),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   57 E> */ 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(Star), R(0),
                 B(Ldar), R(1),
-                B(Add), R(2),
+  /*   63 E> */ B(Add), R(2),
                 B(Star), R(3),
                 B(Ldar), R(0),
                 B(Inc),
-  /*   72 E> */ B(Star), R(0),
-                B(Add), R(3),
+                B(Star), R(0),
+  /*   72 E> */ 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 6aa50ef..ed81b46 100644
--- a/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BasicBlockToBoolean.golden
@@ -11,18 +11,16 @@
 snippet: "
   var a = 1; if (a || a < 0) { return 1; }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 21
+bytecode array length: 17
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(5),
                 B(LdaZero),
-  /*   56 E> */ B(TestLessThan), R(1),
+  /*   56 E> */ B(TestLessThan), R(0),
                 B(JumpIfToBooleanFalse), U8(5),
   /*   63 S> */ B(LdaSmi), U8(1),
   /*   75 S> */ B(Return),
@@ -38,18 +36,16 @@
 snippet: "
   var a = 1; if (a && a < 0) { return 1; }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 21
+bytecode array length: 17
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanFalse), U8(5),
                 B(LdaZero),
-  /*   56 E> */ B(TestLessThan), R(1),
+  /*   56 E> */ B(TestLessThan), R(0),
                 B(JumpIfToBooleanFalse), U8(5),
   /*   63 S> */ B(LdaSmi), U8(1),
   /*   75 S> */ B(Return),
@@ -65,23 +61,21 @@
 snippet: "
   var a = 1; a = (a || a < 0) ? 2 : 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 26
+bytecode array length: 22
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(JumpIfToBooleanTrue), U8(5),
                 B(LdaZero),
-  /*   57 E> */ B(TestLessThan), R(1),
+  /*   57 E> */ B(TestLessThan), R(0),
                 B(JumpIfToBooleanFalse), U8(6),
                 B(LdaSmi), U8(2),
                 B(Jump), U8(4),
                 B(LdaSmi), U8(3),
-  /*   47 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   71 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden b/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
index 7936736..8be4e9d 100644
--- a/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BasicLoops.golden
@@ -15,11 +15,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 6
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
+  /*   88 S> */ B(Nop),
   /*   98 S> */ B(Return),
 ]
 constant pool: [
@@ -37,11 +38,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 6
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
+  /*   77 S> */ B(Nop),
   /*   87 S> */ B(Return),
 ]
 constant pool: [
@@ -61,43 +63,34 @@
   }
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 66
+bytecode array length: 48
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+                B(Star), R(1),
+  /*   65 S> */ B(LdaSmi), U8(10),
+  /*   65 E> */ B(TestLessThan), R(0),
+                B(JumpIfFalse), U8(33),
   /*   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),
+  /*   75 S> */ B(LdaSmi), U8(12),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   89 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+  /*  102 S> */ B(LdaSmi), U8(3),
+  /*  108 E> */ B(TestEqual), R(0),
                 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),
+  /*  114 S> */ B(Jump), U8(10),
+  /*  126 S> */ B(LdaSmi), U8(4),
+  /*  132 E> */ B(TestEqual), R(0),
                 B(JumpIfFalse), U8(4),
   /*  138 S> */ B(Jump), U8(4),
-                B(Jump), U8(-53),
+                B(Jump), U8(-35),
   /*  147 S> */ B(Ldar), R(1),
   /*  157 S> */ B(Return),
 ]
@@ -119,50 +112,38 @@
   }
   return i;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 79
+bytecode array length: 55
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+  /*   62 S> */ B(LdaZero),
+  /*   68 E> */ B(TestLessThan), R(0),
                 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),
+  /*   73 S> */ B(Jump), U8(40),
+  /*   85 S> */ B(LdaSmi), U8(3),
+  /*   91 E> */ B(TestEqual), R(0),
                 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),
+  /*   97 S> */ B(Jump), U8(34),
+  /*  106 S> */ B(LdaSmi), U8(4),
+  /*  112 E> */ B(TestEqual), R(0),
                 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),
+  /*  118 S> */ B(Jump), U8(26),
+  /*  127 S> */ B(LdaSmi), U8(10),
+  /*  133 E> */ B(TestEqual), R(0),
                 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),
+  /*  140 S> */ B(Jump), U8(16),
+  /*  152 S> */ B(LdaSmi), U8(5),
+  /*  158 E> */ B(TestEqual), R(0),
                 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),
+  /*  164 S> */ B(Jump), U8(10),
+  /*  173 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-46),
   /*  186 S> */ B(Ldar), R(0),
   /*  196 S> */ B(Return),
 ]
@@ -184,39 +165,31 @@
   }
   return i;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 57
+bytecode array length: 41
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+  /*   71 S> */ B(LdaSmi), U8(3),
+  /*   71 E> */ B(TestLessThan), R(0),
+                B(JumpIfFalse), U8(19),
   /*   62 E> */ B(StackCheck),
-  /*   82 S> */ B(Ldar), R(0),
-                B(Star), R(1),
-                B(LdaSmi), U8(2),
-  /*   88 E> */ B(TestEqual), R(1),
+  /*   82 S> */ B(LdaSmi), U8(2),
+  /*   88 E> */ B(TestEqual), R(0),
                 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),
+  /*   94 S> */ B(Jump), U8(10),
+  /*  105 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-21),
+  /*  122 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
   /*  135 S> */ B(Jump), U8(4),
-                B(Jump), U8(-48),
+                B(Jump), U8(-32),
   /*  144 S> */ B(Ldar), R(0),
   /*  154 S> */ B(Return),
 ]
@@ -235,29 +208,25 @@
   }
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 39
+bytecode array length: 31
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   54 S> */ B(LdaSmi), U8(1),
-  /*   54 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   64 S> */ B(Ldar), R(0),
-                B(JumpIfToBooleanFalse), U8(25),
+                B(JumpIfToBooleanFalse), U8(17),
   /*   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),
+  /*   71 S> */ B(LdaSmi), U8(12),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   85 S> */ B(LdaSmi), U8(1),
+                B(Sub), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-17),
   /*   98 S> */ B(Ldar), R(1),
   /*  108 S> */ B(Return),
 ]
@@ -277,43 +246,33 @@
   } while (x < 10);
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 66
+bytecode array length: 46
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(1),
-  /*   53 E> */ B(Star), R(1),
+                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),
+  /*   63 S> */ B(LdaSmi), U8(10),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   77 S> */ B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(0),
                 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),
+  /*   89 S> */ B(Jump), U8(22),
+  /*   98 S> */ B(LdaSmi), U8(6),
+  /*  104 E> */ B(TestEqual), R(0),
                 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),
+  /*  110 S> */ B(Jump), U8(8),
+  /*  122 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+  /*  144 S> */ B(LdaSmi), U8(10),
+  /*  144 E> */ B(TestLessThan), R(0),
+                B(JumpIfTrue), U8(-33),
   /*  151 S> */ B(Ldar), R(1),
   /*  161 S> */ B(Return),
 ]
@@ -332,28 +291,24 @@
   } while (x);
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 37
+bytecode array length: 29
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   54 S> */ B(LdaSmi), U8(1),
-  /*   54 E> */ B(Star), R(1),
+                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),
+  /*   64 S> */ B(LdaSmi), U8(12),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   78 S> */ B(LdaSmi), U8(1),
+                B(Sub), R(0),
+                B(Star), R(0),
   /*   98 S> */ B(Ldar), R(0),
-                B(JumpIfToBooleanTrue), U8(-23),
+                B(JumpIfToBooleanTrue), U8(-15),
   /*  102 S> */ B(Ldar), R(1),
   /*  112 S> */ B(Return),
 ]
@@ -373,35 +328,28 @@
   } while (false);
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 54
+bytecode array length: 40
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(1),
-  /*   53 E> */ B(Star), R(1),
+                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),
+  /*   63 S> */ B(LdaSmi), U8(10),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   77 S> */ B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(0),
                 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),
+  /*   89 S> */ B(Jump), U8(16),
+  /*   98 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+  /*  111 S> */ B(LdaSmi), U8(6),
+  /*  117 E> */ B(TestEqual), R(0),
                 B(JumpIfFalse), U8(4),
   /*  123 S> */ B(Jump), U8(2),
   /*  150 S> */ B(Ldar), R(1),
@@ -423,38 +371,31 @@
   } while (true);
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 56
+bytecode array length: 42
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(1),
-  /*   53 E> */ B(Star), R(1),
+                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),
+  /*   63 S> */ B(LdaSmi), U8(10),
+                B(Mul), R(1),
+                B(Star), R(1),
+  /*   77 S> */ B(LdaSmi), U8(5),
+  /*   83 E> */ B(TestEqual), R(0),
                 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),
+  /*   89 S> */ B(Jump), U8(18),
+  /*   98 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+  /*  111 S> */ B(LdaSmi), U8(6),
+  /*  117 E> */ B(TestEqual), R(0),
                 B(JumpIfFalse), U8(4),
   /*  123 S> */ B(Jump), U8(2),
-                B(Jump), U8(-43),
+                B(Jump), U8(-29),
   /*  149 S> */ B(Ldar), R(1),
   /*  159 S> */ B(Return),
 ]
@@ -472,32 +413,26 @@
     x = x + 1;
   }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 43
+bytecode array length: 31
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+  /*   58 S> */ B(LdaSmi), U8(1),
+  /*   64 E> */ B(TestEqual), R(0),
                 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),
+  /*   70 S> */ B(Jump), U8(18),
+  /*   79 S> */ B(LdaSmi), U8(2),
+  /*   85 E> */ B(TestEqual), R(0),
                 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),
+  /*   91 S> */ B(Jump), U8(8),
+  /*  103 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-23),
                 B(LdaUndefined),
   /*  116 S> */ B(Return),
 ]
@@ -514,32 +449,26 @@
     x = x + 1;
   }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 43
+bytecode array length: 31
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   47 S> */ B(LdaZero),
-  /*   47 E> */ B(Star), R(0),
+                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),
+  /*   56 S> */ B(LdaSmi), U8(1),
+  /*   62 E> */ B(TestEqual), R(0),
                 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),
+  /*   68 S> */ B(Jump), U8(18),
+  /*   77 S> */ B(LdaSmi), U8(2),
+  /*   83 E> */ B(TestEqual), R(0),
                 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),
+  /*   89 S> */ B(Jump), U8(8),
+  /*  101 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-23),
                 B(LdaUndefined),
   /*  114 S> */ B(Return),
 ]
@@ -556,32 +485,26 @@
     if (x == 2) continue;
   }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 43
+bytecode array length: 31
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+  /*   68 S> */ B(LdaSmi), U8(1),
+  /*   74 E> */ B(TestEqual), R(0),
                 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),
+  /*   80 S> */ B(Jump), U8(18),
+  /*   89 S> */ B(LdaSmi), U8(2),
+  /*   95 E> */ B(TestEqual), R(0),
                 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),
+  /*   55 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-23),
                 B(LdaUndefined),
   /*  113 S> */ B(Return),
 ]
@@ -597,32 +520,26 @@
     if (x == 2) continue;
   }
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 43
+bytecode array length: 31
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   47 S> */ B(LdaZero),
-  /*   47 E> */ B(Star), R(0),
+                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),
+  /*   66 S> */ B(LdaSmi), U8(1),
+  /*   72 E> */ B(TestEqual), R(0),
                 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),
+  /*   78 S> */ B(Jump), U8(18),
+  /*   87 S> */ B(LdaSmi), U8(2),
+  /*   93 E> */ B(TestEqual), R(0),
                 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),
+  /*   53 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-23),
                 B(LdaUndefined),
   /*  111 S> */ B(Return),
 ]
@@ -639,33 +556,27 @@
     continue;
   }
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 44
+bytecode array length: 32
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                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),
+                B(Star), R(1),
+  /*   63 S> */ B(LdaSmi), U8(100),
+  /*   63 E> */ B(TestLessThan), R(1),
+                B(JumpIfFalse), U8(19),
   /*   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),
+  /*   85 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                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),
+  /*   72 S> */ B(LdaSmi), U8(1),
+                B(Add), R(1),
+                B(Star), R(1),
+                B(Jump), U8(-21),
                 B(LdaUndefined),
   /*  110 S> */ B(Return),
 ]
@@ -682,27 +593,25 @@
   }
   return y;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 34
+bytecode array length: 30
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaSmi), U8(10),
-  /*   58 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   62 S> */ B(Ldar), R(1),
-                B(JumpIfToBooleanFalse), U8(20),
+                B(JumpIfToBooleanFalse), U8(16),
   /*   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),
+  /*   74 S> */ B(LdaSmi), U8(12),
+                B(Mul), R(0),
+                B(Star), R(0),
   /*   67 S> */ B(Ldar), R(1),
                 B(Dec),
-  /*   67 E> */ B(Star), R(1),
-                B(Jump), U8(-20),
+                B(Star), R(1),
+                B(Jump), U8(-16),
   /*   88 S> */ B(Ldar), R(0),
   /*   98 S> */ B(Return),
 ]
@@ -725,9 +634,9 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaZero),
-  /*   58 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   91 S> */ B(Ldar), R(0),
   /*  101 S> */ B(Return),
 ]
@@ -745,30 +654,27 @@
   };
   return x;
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 38
+bytecode array length: 32
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaZero),
-  /*   58 E> */ B(Star), R(1),
+                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),
+  /*   76 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
+  /*   89 S> */ B(LdaSmi), U8(20),
+  /*   95 E> */ B(TestEqual), R(0),
                 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),
+                B(Star), R(1),
+                B(Jump), U8(-20),
   /*  112 S> */ B(Ldar), R(0),
   /*  122 S> */ B(Return),
 ]
@@ -791,18 +697,17 @@
 "
 frame size: 7
 parameter count: 1
-bytecode array length: 120
+bytecode array length: 119
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   52 S> */ B(Ldar), R(1),
-                B(JumpIfToBooleanFalse), U8(112),
+                B(JumpIfToBooleanFalse), U8(111),
   /*   45 E> */ B(StackCheck),
                 B(LdaConstant), U8(0),
                 B(Star), R(4),
-                B(Ldar), R(closure),
-                B(Star), R(5),
+                B(Mov), R(closure), R(5),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
                 B(PushContext), R(3),
                 B(LdaTheHole),
@@ -834,8 +739,8 @@
                 B(ToNumber),
                 B(Star), R(4),
                 B(Inc),
-  /*  127 E> */ B(Star), R(5),
-                B(LdaContextSlot), R(context), U8(4),
+                B(Star), R(5),
+  /*  127 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(3),
                 B(Star), R(6),
@@ -843,7 +748,7 @@
                 B(Ldar), R(5),
                 B(StaContextSlot), R(context), U8(4),
                 B(PopContext), R(3),
-                B(Jump), U8(-112),
+                B(Jump), U8(-111),
                 B(LdaUndefined),
   /*  137 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden b/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
index 8573a1a..fab6901 100644
--- a/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
+++ b/test/cctest/interpreter/bytecode_expectations/BreakableBlocks.golden
@@ -17,17 +17,16 @@
   }
   return x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 17
+bytecode array length: 15
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   56 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Star), R(0),
   /*   69 S> */ B(Jump), U8(2),
   /*   97 S> */ B(Ldar), R(0),
   /*  107 S> */ B(Return),
@@ -52,34 +51,28 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 72
+bytecode array length: 60
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   44 S> */ B(LdaZero),
-  /*   44 E> */ B(Star), R(0),
+                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),
+                B(Star), R(1),
+  /*   76 S> */ B(LdaSmi), U8(10),
+  /*   76 E> */ B(TestLessThan), R(1),
+                B(JumpIfFalse), U8(46),
   /*   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),
+                B(Star), R(2),
+  /*  111 S> */ B(LdaSmi), U8(3),
+  /*  111 E> */ B(TestLessThan), R(2),
+                B(JumpIfFalse), U8(29),
   /*   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(0),
+  /*  142 S> */ B(Ldar), R(2),
+  /*  150 E> */ B(Add), R(1),
                 B(Star), R(4),
                 B(LdaSmi), U8(12),
   /*  152 E> */ B(TestEqual), R(4),
@@ -87,12 +80,12 @@
   /*  161 S> */ B(Jump), U8(16),
   /*  118 S> */ B(Ldar), R(2),
                 B(Inc),
-  /*  118 E> */ B(Star), R(2),
-                B(Jump), U8(-39),
+                B(Star), R(2),
+                B(Jump), U8(-31),
   /*   84 S> */ B(Ldar), R(1),
                 B(Inc),
-  /*   84 E> */ B(Star), R(1),
-                B(Jump), U8(-60),
+                B(Star), R(1),
+                B(Jump), U8(-48),
   /*  188 S> */ B(Ldar), R(0),
   /*  200 S> */ B(Return),
 ]
@@ -111,13 +104,12 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 51
+bytecode array length: 50
 bytecodes: [
   /*   30 E> */ B(StackCheck),
                 B(LdaConstant), U8(0),
                 B(Star), R(3),
-                B(Ldar), R(closure),
-                B(Star), R(4),
+                B(Mov), R(closure), R(4),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(3), U8(2),
                 B(PushContext), R(2),
                 B(LdaTheHole),
@@ -160,7 +152,7 @@
 "
 frame size: 6
 parameter count: 1
-bytecode array length: 131
+bytecode array length: 130
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(2),
@@ -171,8 +163,7 @@
   /*   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(Mov), R(closure), R(5),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(4), U8(2),
                 B(PushContext), R(3),
                 B(LdaTheHole),
@@ -196,8 +187,8 @@
   /*  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(Star), R(4),
+  /*  144 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(3),
                 B(Star), R(5),
@@ -206,8 +197,8 @@
                 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(Star), R(4),
+  /*  157 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(4),
                 B(Star), R(5),
diff --git a/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden b/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
index 0d8624b..45fb07a 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallGlobal.golden
@@ -16,18 +16,15 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 12
 bytecodes: [
   /*   27 E> */ B(StackCheck),
-  /*   32 S> */ B(LdaUndefined),
-                B(Star), R(1),
-                B(LdaGlobal), U8(0), U8(3),
-                B(Star), R(0),
+  /*   32 S> */ B(LdrUndefined), R(1),
+                B(LdrGlobal), U8(3), R(0),
   /*   39 E> */ B(Call), R(0), R(1), U8(1), U8(1),
   /*   44 S> */ B(Return),
 ]
 constant pool: [
-  "t",
 ]
 handlers: [
 ]
@@ -40,13 +37,11 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 27
+bytecode array length: 24
 bytecodes: [
   /*   34 E> */ B(StackCheck),
-  /*   39 S> */ B(LdaUndefined),
-                B(Star), R(1),
-                B(LdaGlobal), U8(0), U8(3),
-                B(Star), R(0),
+  /*   39 S> */ B(LdrUndefined), R(1),
+                B(LdrGlobal), U8(3), R(0),
                 B(LdaSmi), U8(1),
                 B(Star), R(2),
                 B(LdaSmi), U8(2),
@@ -57,7 +52,6 @@
   /*   58 S> */ B(Return),
 ]
 constant pool: [
-  "t",
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
index 0ab5fcb..792faf3 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallLookupSlot.golden
@@ -31,15 +31,15 @@
                 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(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
                 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),
diff --git a/test/cctest/interpreter/bytecode_expectations/CallNew.golden b/test/cctest/interpreter/bytecode_expectations/CallNew.golden
index 79dd5c1..2ee9613 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallNew.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallNew.golden
@@ -19,13 +19,12 @@
 bytecode array length: 11
 bytecodes: [
   /*   45 E> */ B(StackCheck),
-  /*   50 S> */ B(LdaGlobal), U8(0), U8(2),
-                B(Star), R(0),
+  /*   50 S> */ B(LdrGlobal), U8(3), R(0),
+                B(Ldar), R(0),
   /*   57 E> */ B(New), R(0), R(0), U8(0),
   /*   68 S> */ B(Return),
 ]
 constant pool: [
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
@@ -38,19 +37,17 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 17
+bytecode array length: 15
 bytecodes: [
   /*   58 E> */ B(StackCheck),
-  /*   63 S> */ B(LdaGlobal), U8(0), U8(2),
-                B(Star), R(0),
+  /*   63 S> */ B(LdrGlobal), U8(3), R(0),
                 B(LdaSmi), U8(3),
                 B(Star), R(1),
-  /*   70 E> */ B(Ldar), R(0),
-                B(New), R(0), R(1), U8(1),
+                B(Ldar), R(0),
+  /*   70 E> */ B(New), R(0), R(1), U8(1),
   /*   82 S> */ B(Return),
 ]
 constant pool: [
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
@@ -68,23 +65,21 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 25
+bytecode array length: 23
 bytecodes: [
   /*  100 E> */ B(StackCheck),
-  /*  105 S> */ B(LdaGlobal), U8(0), U8(2),
-                B(Star), R(0),
+  /*  105 S> */ B(LdrGlobal), U8(3), 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),
+                B(Ldar), R(0),
+  /*  112 E> */ B(New), R(0), R(1), U8(3),
   /*  130 S> */ B(Return),
 ]
 constant pool: [
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden b/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
index 69edecc..0a88098 100644
--- a/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CallRuntime.golden
@@ -32,14 +32,12 @@
   function f(a) { return %IsArray(a) }
   f(undefined);
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 11
+bytecode array length: 7
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   16 S> */ B(Ldar), R(arg0),
-                B(Star), R(0),
-                B(CallRuntime), U16(Runtime::kIsArray), R(0), U8(1),
+  /*   16 S> */ B(CallRuntime), U16(Runtime::kIsArray), R(arg0), U8(1),
   /*   35 S> */ B(Return),
 ]
 constant pool: [
@@ -76,14 +74,13 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 14
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   15 S> */ B(LdaUndefined),
-                B(Star), R(0),
+  /*   15 S> */ B(LdrUndefined), R(0),
                 B(CreateArrayLiteral), U8(0), U8(0), U8(3),
                 B(Star), R(1),
-                B(CallJSRuntime), U8(122), R(0), U8(2),
+                B(CallJSRuntime), U8(129), R(0), U8(2),
   /*   44 S> */ B(Return),
 ]
 constant pool: [
diff --git a/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden b/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
index abe5b29..dc1e110 100644
--- a/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ClassAndSuperClass.golden
@@ -24,22 +24,19 @@
 "
 frame size: 7
 parameter count: 1
-bytecode array length: 57
+bytecode array length: 54
 bytecodes: [
-                B(Ldar), R(closure),
-                B(Star), R(0),
+                B(Mov), R(closure), R(0),
   /*   99 E> */ B(StackCheck),
-  /*  104 S> */ B(Ldar), R(this),
-                B(Star), R(3),
-  /*  111 E> */ B(Ldar), R(0),
+  /*  104 S> */ B(Mov), R(this), R(3),
+                B(Ldar), R(closure),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(6),
-                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(6), U8(1),
+  /*  111 E> */ 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(1),
+  /*  111 E> */ B(LdrKeyedProperty), R(6), U8(3), R(4),
                 B(LdaConstant), U8(2),
                 B(Star), R(5),
                 B(CallRuntime), U16(Runtime::kLoadFromSuper), R(3), U8(3),
@@ -76,38 +73,33 @@
 "
 frame size: 6
 parameter count: 1
-bytecode array length: 80
+bytecode array length: 75
 bytecodes: [
-                B(Ldar), R(closure),
-                B(Star), R(0),
+                B(Mov), R(closure), R(0),
   /*  125 E> */ B(StackCheck),
-  /*  130 S> */ B(Ldar), R(this),
-                B(Star), R(1),
-  /*  130 E> */ B(Ldar), R(0),
+  /*  130 S> */ B(Mov), R(this), R(1),
+                B(Ldar), R(closure),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(5),
-                B(CallRuntime), U16(Runtime::kThrowReferenceError), R(5), U8(1),
+  /*  130 E> */ 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(1),
+  /*  130 E> */ B(LdrKeyedProperty), R(5), U8(1), 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(Star), R(4),
+  /*  138 E> */ B(CallRuntime), U16(Runtime::kStoreToSuper_Strict), R(1), U8(4),
+  /*  143 S> */ B(Mov), R(this), 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),
+  /*  150 E> */ 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(1),
+  /*  150 E> */ B(LdrKeyedProperty), R(4), U8(3), R(2),
                 B(LdaConstant), U8(2),
                 B(Star), R(3),
                 B(CallRuntime), U16(Runtime::kLoadFromSuper), R(1), U8(3),
@@ -136,14 +128,12 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 106
+bytecode array length: 105
 bytecodes: [
-                B(Ldar), R(closure),
-                B(Star), R(1),
-                B(Ldar), R(new_target),
-                B(Star), R(0),
+                B(Mov), R(closure), R(1),
+                B(Mov), R(new_target), R(0),
   /*  113 E> */ B(StackCheck),
-  /*  118 S> */ B(Ldar), R(1),
+  /*  118 S> */ B(Ldar), R(closure),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(3),
@@ -153,28 +143,28 @@
                 B(Star), R(2),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-  /*  118 E> */ B(Ldar), R(0),
+                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(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(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),
+  /*  118 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Mov), R(2), R(this),
+  /*  128 S> */ 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(Star), R(2),
                 B(LdaSmi), U8(2),
-  /*  136 E> */ B(StoreICStrict), R(2), U8(3), U8(4),
+  /*  136 E> */ B(StaNamedPropertyStrict), R(2), U8(3), U8(4),
                 B(Ldar), R(this),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(2),
@@ -206,14 +196,12 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 102
+bytecode array length: 101
 bytecodes: [
-                B(Ldar), R(closure),
-                B(Star), R(1),
-                B(Ldar), R(new_target),
-                B(Star), R(0),
+                B(Mov), R(closure), R(1),
+                B(Mov), R(new_target), R(0),
   /*  112 E> */ B(StackCheck),
-  /*  117 S> */ B(Ldar), R(1),
+  /*  117 S> */ B(Ldar), R(closure),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(3),
@@ -221,28 +209,28 @@
                 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(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(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(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),
+  /*  117 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(3), U8(1),
+                B(Mov), R(2), R(this),
+  /*  126 S> */ 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(Star), R(2),
                 B(LdaSmi), U8(2),
-  /*  134 E> */ B(StoreICStrict), R(2), U8(3), U8(4),
+  /*  134 E> */ B(StaNamedPropertyStrict), R(2), U8(3), U8(4),
                 B(Ldar), R(this),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(2),
diff --git a/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden b/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
index 6947a27..c28e474 100644
--- a/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ClassDeclarations.golden
@@ -16,7 +16,7 @@
 "
 frame size: 9
 parameter count: 1
-bytecode array length: 73
+bytecode array length: 72
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(1),
@@ -33,9 +33,7 @@
                 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(LdrNamedProperty), R(2), U8(1), U8(1), R(3),
                 B(LdaConstant), U8(2),
                 B(Star), R(5),
                 B(CreateClosure), U8(3), U8(0),
@@ -44,10 +42,11 @@
                 B(Star), R(7),
                 B(LdaZero),
                 B(Star), R(8),
+                B(Mov), R(3), R(4),
                 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(Star), R(1),
                 B(LdaUndefined),
   /*  149 S> */ B(Return),
 ]
@@ -69,7 +68,7 @@
 "
 frame size: 9
 parameter count: 1
-bytecode array length: 73
+bytecode array length: 72
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(1),
@@ -86,9 +85,7 @@
                 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(LdrNamedProperty), R(2), U8(1), U8(1), R(3),
                 B(LdaConstant), U8(2),
                 B(Star), R(5),
                 B(CreateClosure), U8(3), U8(0),
@@ -97,10 +94,11 @@
                 B(Star), R(7),
                 B(LdaZero),
                 B(Star), R(8),
+                B(Mov), R(3), R(4),
                 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(Star), R(1),
                 B(LdaUndefined),
   /*  149 S> */ B(Return),
 ]
@@ -124,7 +122,7 @@
 "
 frame size: 10
 parameter count: 1
-bytecode array length: 127
+bytecode array length: 126
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(2),
@@ -147,9 +145,7 @@
                 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(LdrNamedProperty), R(3), U8(3), U8(1), R(4),
   /*   75 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(ToName),
                 B(Star), R(6),
@@ -159,14 +155,15 @@
                 B(Star), R(8),
                 B(LdaSmi), U8(1),
                 B(Star), R(9),
+                B(Mov), R(4), R(5),
                 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(Mov), R(3), R(5),
+                B(JumpIfToBooleanFalse), U8(7),
                 B(CallRuntime), U16(Runtime::kThrowStaticPrototypeError), R(0), U8(0),
                 B(CreateClosure), U8(5), U8(0),
                 B(Star), R(7),
@@ -175,7 +172,7 @@
                 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(Star), R(1),
                 B(LdaUndefined),
   /*  129 S> */ B(Return),
 ]
@@ -198,7 +195,7 @@
 "
 frame size: 7
 parameter count: 1
-bytecode array length: 74
+bytecode array length: 73
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(2),
@@ -219,11 +216,10 @@
                 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(LdrNamedProperty), R(3), U8(1), U8(1), R(4),
                 B(CallRuntime), U16(Runtime::kToFastProperties), R(3), U8(1),
                 B(Star), R(0),
-  /*   49 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   87 S> */ B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(2),
                 B(Star), R(4),
diff --git a/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden b/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
index 374a203..24c6a5e 100644
--- a/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CompoundExpressions.golden
@@ -13,15 +13,15 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 16
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(Add), R(0),
+                B(Mov), R(0), R(1),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   53 S> */ B(Return),
 ]
@@ -36,15 +36,15 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 16
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(Div), R(0),
+                B(Mov), R(0), R(1),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   53 S> */ B(Return),
 ]
@@ -59,18 +59,16 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 27
+bytecode array length: 24
 bytecodes: [
   /*   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(Star), R(0),
+  /*   54 S> */ B(LdrNamedProperty), R(0), U8(1), U8(1), R(2),
                 B(LdaSmi), U8(2),
                 B(Mul), R(2),
-  /*   61 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+  /*   61 E> */ B(StaNamedPropertySloppy), R(0), U8(1), U8(3),
                 B(LdaUndefined),
   /*   67 S> */ B(Return),
 ]
@@ -87,20 +85,18 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 30
+bytecode array length: 27
 bytecodes: [
   /*   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(0),
+  /*   52 S> */ B(LdaSmi), U8(1),
                 B(Star), R(2),
-                B(KeyedLoadIC), R(1), U8(1),
-                B(Star), R(3),
+                B(LdrKeyedProperty), R(0), U8(1), R(3),
                 B(LdaSmi), U8(2),
                 B(BitwiseXor), R(3),
-  /*   57 E> */ B(KeyedStoreICSloppy), R(1), R(2), U8(3),
+  /*   57 E> */ B(StaKeyedPropertySloppy), R(0), R(2), U8(3),
                 B(LdaUndefined),
   /*   63 S> */ B(Return),
 ]
@@ -116,7 +112,7 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 30
+bytecode array length: 29
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(0),
@@ -124,8 +120,7 @@
   /*   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),
+  /*   75 S> */ B(LdrContextSlot), R(context), U8(4), R(1),
                 B(LdaSmi), U8(24),
                 B(BitwiseOr), R(1),
   /*   77 E> */ B(StaContextSlot), R(context), U8(4),
diff --git a/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden b/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
index 505d3e8..4c511b5 100644
--- a/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ConstVariable.golden
@@ -19,7 +19,7 @@
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   44 S> */ B(LdaSmi), U8(10),
-  /*   44 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   48 S> */ B(Return),
 ]
@@ -40,7 +40,7 @@
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   44 S> */ B(LdaSmi), U8(10),
-  /*   44 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   48 S> */ B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
@@ -59,22 +59,22 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 33
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   48 S> */ B(LdaSmi), U8(20),
-  /*   48 E> */ B(Star), R(1),
+                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),
+  /*   48 E> */ 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),
+                B(Mov), R(1), R(0),
+                B(Ldar), R(0),
+                B(LdaUndefined),
   /*   55 S> */ B(Return),
 ]
 constant pool: [
@@ -89,23 +89,22 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 36
+bytecode array length: 35
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   44 S> */ B(LdaSmi), U8(10),
-  /*   44 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   48 S> */ B(LdaSmi), U8(20),
-  /*   50 E> */ B(Star), R(1),
+                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),
+  /*   50 E> */ 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(Mov), R(1), R(0),
                 B(LdaUndefined),
   /*   56 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden b/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
index 6087101..1cfdea8 100644
--- a/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ConstVariableContextSlot.golden
@@ -80,8 +80,8 @@
                 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(Star), R(2),
+  /*   47 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(1),
                 B(Star), R(3),
@@ -118,8 +118,8 @@
   /*   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(Star), R(2),
+  /*   50 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(1),
                 B(Star), R(3),
diff --git a/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden b/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
index 72b731e..09a0f5a 100644
--- a/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ContextParameters.golden
@@ -46,7 +46,7 @@
                 B(StaContextSlot), R(context), U8(4),
   /*   10 E> */ B(StackCheck),
   /*   27 S> */ B(CreateClosure), U8(0), U8(0),
-  /*   27 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaContextSlot), R(context), U8(4),
   /*   66 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
index ac5c042..7b69f9e 100644
--- a/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ContextVariables.golden
@@ -79,13 +79,12 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 25
+bytecode array length: 24
 bytecodes: [
                 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),
+  /*   41 S> */ B(LdrUndefined), R(2),
                 B(CreateClosure), U8(0), U8(0),
                 B(Star), R(1),
   /*   64 E> */ B(Call), R(1), R(2), U8(1), U8(1),
@@ -106,7 +105,7 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 47
+bytecode array length: 46
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(0),
@@ -117,8 +116,7 @@
   /*   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(Mov), R(closure), R(3),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(2), U8(2),
                 B(PushContext), R(1),
                 B(LdaTheHole),
@@ -394,7 +392,7 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 1046
+bytecode array length: 1043
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(0),
@@ -903,10 +901,8 @@
   /* 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 S> */ B(LdrUndefined), R(2),
+  /* 3424 E> */ B(LdrGlobal), U8(1), 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),
@@ -914,7 +910,6 @@
   /* 3454 S> */ B(Return),
 ]
 constant pool: [
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/CountOperators.golden b/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
index db9dcf3..3f6696c 100644
--- a/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CountOperators.golden
@@ -17,9 +17,9 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(Inc),
-  /*   54 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   57 S> */ B(Return),
 ]
 constant pool: [
@@ -37,11 +37,11 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(ToNumber),
                 B(Star), R(1),
                 B(Inc),
-  /*   53 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(Ldar), R(1),
   /*   57 S> */ B(Return),
 ]
@@ -60,9 +60,9 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(Dec),
-  /*   54 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   57 S> */ B(Return),
 ]
 constant pool: [
@@ -80,11 +80,11 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(ToNumber),
                 B(Star), R(1),
                 B(Dec),
-  /*   53 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(Ldar), R(1),
   /*   57 S> */ B(Return),
 ]
@@ -99,18 +99,17 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 26
+bytecode array length: 24
 bytecodes: [
   /*   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(0),
+  /*   54 S> */ B(LdaNamedProperty), R(0), U8(1), U8(1),
                 B(ToNumber),
                 B(Star), R(2),
                 B(Inc),
-  /*   66 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+  /*   66 E> */ B(StaNamedPropertySloppy), R(0), U8(1), U8(3),
                 B(Ldar), R(2),
   /*   70 S> */ B(Return),
 ]
@@ -127,16 +126,15 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 21
+bytecode array length: 19
 bytecodes: [
   /*   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(0),
+  /*   54 S> */ B(LdaNamedProperty), R(0), U8(1), U8(1),
                 B(Dec),
-  /*   65 E> */ B(StoreICSloppy), R(1), U8(1), U8(3),
+  /*   65 E> */ B(StaNamedPropertySloppy), R(0), U8(1), U8(3),
   /*   70 S> */ B(Return),
 ]
 constant pool: [
@@ -152,22 +150,20 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 33
+bytecode array length: 29
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   45 S> */ B(LdaConstant), U8(0),
-  /*   45 E> */ B(Star), R(0),
+                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(Star), R(1),
+  /*   72 S> */ B(Ldar), R(0),
+  /*   81 E> */ B(LdaKeyedProperty), R(1), U8(1),
                 B(ToNumber),
                 B(Star), R(4),
                 B(Dec),
-  /*   86 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(3),
+  /*   86 E> */ B(StaKeyedPropertySloppy), R(1), R(0), U8(3),
                 B(Ldar), R(4),
   /*   90 S> */ B(Return),
 ]
@@ -182,22 +178,20 @@
 snippet: "
   var name = 'var'; var a = { val: 1 }; return ++a[name];
 "
-frame size: 4
+frame size: 3
 parameter count: 1
-bytecode array length: 28
+bytecode array length: 24
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   45 S> */ B(LdaConstant), U8(0),
-  /*   45 E> */ B(Star), R(0),
+                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(Star), R(1),
+  /*   72 S> */ B(Ldar), R(0),
+  /*   83 E> */ B(LdaKeyedProperty), R(1), U8(1),
                 B(Inc),
-  /*   87 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(3),
+  /*   87 E> */ B(StaKeyedPropertySloppy), R(1), R(0), U8(3),
   /*   90 S> */ B(Return),
 ]
 constant pool: [
@@ -221,7 +215,7 @@
   /*   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),
+                B(Star), R(0),
   /*   78 S> */ B(LdaContextSlot), R(context), U8(4),
                 B(Inc),
   /*   87 E> */ B(StaContextSlot), R(context), U8(4),
@@ -247,7 +241,7 @@
   /*   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),
+                B(Star), R(0),
   /*   78 S> */ B(LdaContextSlot), R(context), U8(4),
                 B(ToNumber),
                 B(Star), R(2),
@@ -268,21 +262,20 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 28
+bytecode array length: 26
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   44 S> */ B(LdaSmi), U8(1),
-  /*   44 E> */ B(Star), R(0),
+                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(Star), R(1),
+  /*   63 S> */ B(Ldar), R(0),
                 B(ToNumber),
                 B(Star), R(3),
                 B(Inc),
-  /*   75 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaSmi), U8(2),
-  /*   79 E> */ B(KeyedStoreICSloppy), R(2), R(3), U8(1),
+  /*   79 E> */ B(StaKeyedPropertySloppy), R(1), R(3), U8(1),
   /*   84 S> */ B(Return),
 ]
 constant pool: [
diff --git a/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden b/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
index 6788a7c..edd6f05 100644
--- a/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CreateArguments.golden
@@ -15,12 +15,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 7
+bytecode array length: 6
 bytecodes: [
                 B(CreateMappedArguments),
                 B(Star), R(0),
   /*   10 E> */ B(StackCheck),
-  /*   15 S> */ B(Ldar), R(0),
+  /*   15 S> */ B(Nop),
   /*   33 S> */ B(Return),
 ]
 constant pool: [
@@ -33,17 +33,15 @@
   function f() { return arguments[0]; }
   f();
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 13
+bytecode array length: 9
 bytecodes: [
                 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),
+  /*   15 S> */ B(LdaZero),
+  /*   31 E> */ B(LdaKeyedProperty), R(0), U8(1),
   /*   36 S> */ B(Return),
 ]
 constant pool: [
@@ -58,12 +56,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 7
+bytecode array length: 6
 bytecodes: [
                 B(CreateUnmappedArguments),
                 B(Star), R(0),
   /*   10 E> */ B(StackCheck),
-  /*   29 S> */ B(Ldar), R(0),
+  /*   29 S> */ B(Nop),
   /*   47 S> */ B(Return),
 ]
 constant pool: [
@@ -76,9 +74,9 @@
   function f(a) { return arguments[0]; }
   f();
 "
-frame size: 3
+frame size: 2
 parameter count: 2
-bytecode array length: 25
+bytecode array length: 21
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(1),
@@ -87,10 +85,8 @@
                 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),
+  /*   16 S> */ B(LdaZero),
+  /*   32 E> */ B(LdaKeyedProperty), R(0), U8(1),
   /*   37 S> */ B(Return),
 ]
 constant pool: [
@@ -105,7 +101,7 @@
 "
 frame size: 2
 parameter count: 4
-bytecode array length: 29
+bytecode array length: 28
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(1),
@@ -118,7 +114,7 @@
                 B(CreateMappedArguments),
                 B(Star), R(0),
   /*   10 E> */ B(StackCheck),
-  /*   22 S> */ B(Ldar), R(0),
+  /*   22 S> */ B(Nop),
   /*   40 S> */ B(Return),
 ]
 constant pool: [
@@ -133,12 +129,12 @@
 "
 frame size: 1
 parameter count: 4
-bytecode array length: 7
+bytecode array length: 6
 bytecodes: [
                 B(CreateUnmappedArguments),
                 B(Star), R(0),
   /*   10 E> */ B(StackCheck),
-  /*   36 S> */ B(Ldar), R(0),
+  /*   36 S> */ B(Nop),
   /*   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 341ad9c..feb9088 100644
--- a/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden
+++ b/test/cctest/interpreter/bytecode_expectations/CreateRestParameter.golden
@@ -15,12 +15,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 7
+bytecode array length: 6
 bytecodes: [
                 B(CreateRestParameter),
                 B(Star), R(0),
   /*   10 E> */ B(StackCheck),
-  /*   26 S> */ B(Ldar), R(0),
+  /*   26 S> */ B(Nop),
   /*   43 S> */ B(Return),
 ]
 constant pool: [
@@ -35,15 +35,14 @@
 "
 frame size: 2
 parameter count: 2
-bytecode array length: 14
+bytecode array length: 13
 bytecodes: [
                 B(CreateRestParameter),
                 B(Star), R(0),
                 B(LdaTheHole),
                 B(Star), R(1),
   /*   10 E> */ B(StackCheck),
-                B(Ldar), R(arg0),
-                B(Star), R(1),
+                B(Mov), R(arg0), R(1),
   /*   29 S> */ B(Ldar), R(0),
   /*   46 S> */ B(Return),
 ]
@@ -57,21 +56,18 @@
   function f(a, ...restArgs) { return restArgs[0]; }
   f();
 "
-frame size: 3
+frame size: 2
 parameter count: 2
-bytecode array length: 20
+bytecode array length: 15
 bytecodes: [
                 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),
+                B(Mov), R(arg0), R(1),
+  /*   29 S> */ B(LdaZero),
+  /*   44 E> */ B(LdaKeyedProperty), R(0), U8(1),
   /*   49 S> */ B(Return),
 ]
 constant pool: [
@@ -86,7 +82,7 @@
 "
 frame size: 5
 parameter count: 2
-bytecode array length: 35
+bytecode array length: 25
 bytecodes: [
                 B(CreateUnmappedArguments),
                 B(Star), R(0),
@@ -95,17 +91,11 @@
                 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(Mov), R(arg0), R(2),
+  /*   29 S> */ B(LdaZero),
+  /*   44 E> */ B(LdrKeyedProperty), R(1), U8(1), R(4),
+                B(LdaZero),
+  /*   59 E> */ B(LdaKeyedProperty), R(0), U8(3),
                 B(Add), R(4),
   /*   64 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden b/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
index 29f101a..2530404 100644
--- a/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DeadCodeRemoval.golden
@@ -34,7 +34,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   66 S> */ B(LdaSmi), U8(1),
-  /*   66 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   69 S> */ B(Return),
 ]
@@ -70,7 +70,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanFalse), U8(5),
   /*   54 S> */ B(LdaSmi), U8(1),
   /*   77 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden b/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
index a1505f0..97e403e 100644
--- a/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DeclareGlobals.golden
@@ -103,7 +103,7 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 29
+bytecode array length: 26
 bytecodes: [
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
@@ -111,17 +111,14 @@
                 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 S> */ B(LdrUndefined), R(2),
+                B(LdrGlobal), U8(1), 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,
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Delete.golden b/test/cctest/interpreter/bytecode_expectations/Delete.golden
index 2a355ab..b4ed9f6 100644
--- a/test/cctest/interpreter/bytecode_expectations/Delete.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Delete.golden
@@ -13,15 +13,14 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 16
+bytecode array length: 14
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   56 S> */ B(LdaConstant), U8(1),
+                B(DeletePropertySloppy), R(0),
   /*   75 S> */ B(Return),
 ]
 constant pool: [
@@ -37,15 +36,14 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 16
+bytecode array length: 14
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   70 S> */ B(LdaConstant), U8(1),
+                B(DeletePropertyStrict), R(0),
   /*   89 S> */ B(Return),
 ]
 constant pool: [
@@ -61,15 +59,14 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 16
+bytecode array length: 14
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   56 S> */ B(LdaSmi), U8(2),
+                B(DeletePropertySloppy), R(0),
   /*   76 S> */ B(Return),
 ]
 constant pool: [
@@ -88,7 +85,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(LdaFalse),
   /*   63 S> */ B(Return),
 ]
@@ -106,7 +103,7 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 30
+bytecode array length: 29
 bytecodes: [
                 B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
                 B(PushContext), R(0),
@@ -115,8 +112,7 @@
                 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),
+  /*   93 S> */ B(LdrContextSlot), R(context), U8(4), R(1),
                 B(LdaSmi), U8(1),
                 B(DeletePropertyStrict), R(1),
   /*  113 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/DoExpression.golden b/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
index 68f264f..0fae9e6 100644
--- a/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
+++ b/test/cctest/interpreter/bytecode_expectations/DoExpression.golden
@@ -14,11 +14,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 6
+bytecode array length: 7
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-  /*   42 S> */ B(Ldar), R(0),
-  /*   42 E> */ B(Star), R(1),
+  /*   42 S> */ B(Mov), R(0), R(1),
+  /*   50 S> */ B(Ldar), R(1),
   /*   60 S> */ B(Return),
 ]
 constant pool: [
@@ -32,14 +32,15 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 11
+bytecode array length: 13
 bytecodes: [
   /*   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),
+                B(Star), R(1),
+  /*   42 S> */ B(LdrUndefined), R(0),
+                B(Ldar), R(0),
+                B(Star), R(2),
+  /*   63 S> */ B(Nop),
   /*   73 S> */ B(Return),
 ]
 constant pool: [
@@ -53,21 +54,17 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 25
+bytecode array length: 17
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   34 E> */ B(StackCheck),
   /*   56 S> */ B(LdaSmi), U8(10),
-  /*   56 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   69 S> */ B(Inc),
-  /*   71 E> */ B(Star), R(1),
+                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),
+  /*   74 S> */ B(Jump), U8(4),
+                B(Jump), U8(-12),
                 B(LdaUndefined),
   /*   94 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Eval.golden b/test/cctest/interpreter/bytecode_expectations/Eval.golden
index 7c3915c..6dfdf95 100644
--- a/test/cctest/interpreter/bytecode_expectations/Eval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Eval.golden
@@ -29,15 +29,15 @@
                 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(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
                 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),
diff --git a/test/cctest/interpreter/bytecode_expectations/ForIn.golden b/test/cctest/interpreter/bytecode_expectations/ForIn.golden
index 2b61b64..8bc9d2a 100644
--- a/test/cctest/interpreter/bytecode_expectations/ForIn.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ForIn.golden
@@ -65,30 +65,30 @@
 "
 frame size: 8
 parameter count: 1
-bytecode array length: 45
+bytecode array length: 44
 bytecodes: [
   /*   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(Star), R(1),
+  /*   68 S> */ B(JumpIfUndefined), U8(37),
+                B(JumpIfNull), U8(35),
                 B(ToObject),
-                B(Star), R(3),
                 B(ForInPrepare), R(4),
+                B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(7),
   /*   63 S> */ B(ForInDone), R(7), R(6),
-                B(JumpIfTrue), U8(23),
+                B(JumpIfTrue), U8(22),
                 B(ForInNext), R(3), R(7), R(4), U8(1),
-                B(JumpIfUndefined), U8(10),
+                B(JumpIfUndefined), U8(9),
                 B(Star), R(0),
   /*   54 E> */ B(StackCheck),
-                B(Ldar), R(0),
                 B(Star), R(2),
+  /*   73 S> */ B(Nop),
   /*   85 S> */ B(Return),
                 B(ForInStep), R(7),
                 B(Star), R(7),
-                B(Jump), U8(-24),
+                B(Jump), U8(-23),
                 B(LdaUndefined),
   /*   85 S> */ B(Return),
 ]
@@ -105,35 +105,33 @@
 "
 frame size: 9
 parameter count: 1
-bytecode array length: 57
+bytecode array length: 54
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   59 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-                B(JumpIfUndefined), U8(47),
-                B(JumpIfNull), U8(45),
+                B(JumpIfUndefined), U8(44),
+                B(JumpIfNull), U8(42),
                 B(ToObject),
-                B(Star), R(3),
                 B(ForInPrepare), R(4),
+                B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(7),
   /*   54 S> */ B(ForInDone), R(7), R(6),
-                B(JumpIfTrue), U8(32),
+                B(JumpIfTrue), U8(29),
                 B(ForInNext), R(3), R(7), R(4), U8(1),
-                B(JumpIfUndefined), U8(19),
+                B(JumpIfUndefined), U8(16),
                 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),
+  /*   70 S> */ B(Ldar), R(0),
+  /*   75 E> */ B(Add), R(1),
+                B(Mov), R(1), R(8),
+                B(Star), R(1),
+  /*   72 E> */ B(ForInStep), R(7),
                 B(Star), R(7),
-                B(Jump), U8(-33),
+                B(Jump), U8(-30),
                 B(LdaUndefined),
   /*   80 S> */ B(Return),
 ]
@@ -153,49 +151,42 @@
 "
 frame size: 8
 parameter count: 1
-bytecode array length: 94
+bytecode array length: 80
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(CreateObjectLiteral), U8(0), U8(0), U8(1),
                 B(Star), R(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   77 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
-                B(JumpIfUndefined), U8(79),
-                B(JumpIfNull), U8(77),
+                B(JumpIfUndefined), U8(65),
+                B(JumpIfNull), U8(63),
                 B(ToObject),
-                B(Star), R(1),
                 B(ForInPrepare), R(2),
+                B(Star), R(1),
                 B(LdaZero),
                 B(Star), R(5),
   /*   68 S> */ B(ForInDone), R(5), R(4),
-                B(JumpIfTrue), U8(64),
+                B(JumpIfTrue), U8(50),
                 B(ForInNext), R(1), R(5), R(2), U8(9),
-                B(JumpIfUndefined), U8(51),
+                B(JumpIfUndefined), U8(37),
                 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),
+  /*   67 E> */ B(StaNamedPropertySloppy), R(0), 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),
+  /*   95 S> */ B(Nop),
+  /*  100 E> */ B(LdrNamedProperty), R(0), U8(2), U8(3), 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),
+  /*  113 S> */ B(Jump), U8(16),
+  /*  125 S> */ B(Nop),
+  /*  130 E> */ B(LdrNamedProperty), R(0), U8(2), U8(5), 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(Jump), U8(-51),
                 B(LdaUndefined),
   /*  152 S> */ B(Return),
 ]
@@ -214,39 +205,35 @@
 "
 frame size: 9
 parameter count: 1
-bytecode array length: 69
+bytecode array length: 61
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(CreateArrayLiteral), U8(0), U8(0), U8(3),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   72 S> */ B(CreateArrayLiteral), U8(1), U8(1), U8(3),
-                B(JumpIfUndefined), U8(56),
-                B(JumpIfNull), U8(54),
+                B(JumpIfUndefined), U8(48),
+                B(JumpIfNull), U8(46),
                 B(ToObject),
-                B(Star), R(1),
                 B(ForInPrepare), R(2),
+                B(Star), R(1),
                 B(LdaZero),
                 B(Star), R(5),
   /*   65 S> */ B(ForInDone), R(5), R(4),
-                B(JumpIfTrue), U8(41),
+                B(JumpIfTrue), U8(33),
                 B(ForInNext), R(1), R(5), R(2), U8(7),
-                B(JumpIfUndefined), U8(28),
+                B(JumpIfUndefined), U8(20),
                 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),
+  /*   64 E> */ B(StaKeyedPropertySloppy), R(0), 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),
+  /*   83 S> */ B(LdaSmi), U8(3),
+  /*   91 E> */ B(LdaKeyedProperty), R(0), U8(3),
   /*   98 S> */ B(Return),
                 B(ForInStep), R(5),
                 B(Star), R(5),
-                B(Jump), U8(-42),
+                B(Jump), U8(-34),
                 B(LdaUndefined),
   /*   98 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ForOf.golden b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
index 6fb1c4b..06cdb3d 100644
--- a/test/cctest/interpreter/bytecode_expectations/ForOf.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ForOf.golden
@@ -13,70 +13,52 @@
 "
 frame size: 16
 parameter count: 1
-bytecode array length: 347
+bytecode array length: 284
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(LdrUndefined), 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),
+                B(LdaConstant), U8(1),
+  /*   48 E> */ B(LdrKeyedProperty), R(14), U8(3), 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(Star), R(1),
+  /*   45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
+  /*   45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), 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(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(22),
                 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(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(7),
+  /*   34 E> */ B(StackCheck),
+                B(Mov), R(0), R(7),
                 B(LdaZero),
                 B(Star), R(3),
-                B(Jump), U8(-70),
-                B(Jump), U8(47),
+                B(Jump), U8(-48),
+                B(Jump), U8(41),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), 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(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(13),
+                B(LdrContextSlot), R(context), U8(4), R(13),
                 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                 B(PopContext), R(8),
                 B(LdaSmi), U8(-1),
@@ -87,31 +69,21 @@
                 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(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(12),
+                B(TestEqualStrict), R(1),
                 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(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(12),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(12),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(12),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(12),
@@ -119,44 +91,36 @@
                 B(TestEqualStrict), R(12),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 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(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), 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(Jump), U8(27),
+                B(Mov), R(5), R(12),
+                B(Mov), R(1), R(13),
+                B(InvokeIntrinsic), U8(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(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), 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(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(9),
@@ -177,12 +141,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [10, 152, 158],
-  [13, 105, 107],
-  [250, 263, 265],
+  [9, 122, 128],
+  [12, 81, 83],
+  [201, 211, 213],
 ]
 
 ---
@@ -192,74 +155,54 @@
 "
 frame size: 17
 parameter count: 1
-bytecode array length: 363
+bytecode array length: 297
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(7),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(Star), R(7),
+                B(LdrUndefined), 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),
+  /*   68 S> */ B(LdaConstant), U8(1),
+  /*   68 E> */ B(LdrKeyedProperty), R(7), U8(3), R(14),
+  /*   68 E> */ B(Call), R(14), R(7), U8(1), U8(1),
+                B(Star), R(1),
+  /*   65 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(15),
+  /*   65 E> */ B(Call), R(15), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   65 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), 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(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(27),
                 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(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(8),
-  /*   73 S> */ B(Star), R(11),
-                B(LdaZero),
+  /*   54 E> */ B(StackCheck),
+                B(Mov), R(0), R(8),
+  /*   73 S> */ B(LdaZero),
                 B(Star), R(10),
-                B(Jump), U8(63),
-                B(Jump), U8(-74),
-                B(Jump), U8(47),
+                B(Mov), R(0), R(11),
+                B(Jump), U8(57),
+                B(Jump), U8(-53),
+                B(Jump), U8(41),
                 B(Star), R(15),
                 B(LdaConstant), U8(5),
                 B(Star), R(14),
-                B(Ldar), R(closure),
-                B(Star), R(16),
+                B(Mov), R(closure), 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(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(14),
+                B(LdrContextSlot), R(context), U8(4), R(14),
                 B(CallRuntime), U16(Runtime::kReThrow), R(14), U8(1),
                 B(PopContext), R(9),
                 B(LdaSmi), U8(-1),
@@ -270,31 +213,21 @@
                 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(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(13),
+                B(TestEqualStrict), R(1),
                 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(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(13),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(13),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(13),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(13),
@@ -302,44 +235,36 @@
                 B(TestEqualStrict), R(13),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 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(Mov), R(5), R(14),
+                B(Mov), R(1), R(15),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(14), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(15),
                 B(LdaConstant), U8(5),
                 B(Star), R(14),
-                B(Ldar), R(closure),
-                B(Star), R(16),
+                B(Mov), R(closure), 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(Jump), U8(27),
+                B(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(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(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), 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(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(12), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(10),
@@ -365,12 +290,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [14, 158, 164],
-  [17, 111, 113],
-  [257, 270, 272],
+  [13, 125, 131],
+  [16, 84, 86],
+  [205, 215, 217],
 ]
 
 ---
@@ -382,81 +306,60 @@
 "
 frame size: 16
 parameter count: 1
-bytecode array length: 369
+bytecode array length: 300
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-                B(LdaUndefined),
-                B(Star), R(4),
+                B(LdrUndefined), 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),
+                B(LdaConstant), U8(1),
+  /*   48 E> */ B(LdrKeyedProperty), R(14), U8(3), 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(Star), R(1),
+  /*   45 S> */ B(LdrNamedProperty), R(1), U8(2), U8(7), R(14),
+  /*   45 E> */ B(Call), R(14), R(1), U8(1), U8(5),
+                B(Star), R(2),
+  /*   45 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(2), 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(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(2), U8(1),
+                B(LdaNamedProperty), R(2), U8(3), U8(9),
+                B(JumpIfToBooleanTrue), U8(38),
                 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(LdrNamedProperty), R(2), U8(4), U8(11), R(0),
                 B(Ldar), R(0),
-                B(Star), R(7),
-  /*   66 S> */ B(Star), R(13),
-                B(LdaSmi), U8(10),
-  /*   72 E> */ B(TestEqual), R(13),
+  /*   34 E> */ B(StackCheck),
+                B(Mov), R(0), R(7),
+  /*   66 S> */ B(LdaSmi), U8(10),
+  /*   72 E> */ B(TestEqual), R(7),
                 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),
+  /*   79 S> */ B(Jump), U8(13),
+  /*   91 S> */ B(LdaSmi), U8(20),
+  /*   97 E> */ B(TestEqual), R(7),
                 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(Jump), U8(-64),
+                B(Jump), U8(41),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), 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(TestEqualStrict), R(3),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(3),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(13),
+                B(LdrContextSlot), R(context), U8(4), R(13),
                 B(CallRuntime), U16(Runtime::kReThrow), R(13), U8(1),
                 B(PopContext), R(8),
                 B(LdaSmi), U8(-1),
@@ -467,31 +370,21 @@
                 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(TestEqualStrict), R(3),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(12),
+                B(TestEqualStrict), R(1),
                 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(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(1), U8(6), U8(13), R(5),
                 B(LdaNull),
-                B(TestEqual), R(12),
+                B(TestEqual), R(5),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(3),
-                B(Star), R(12),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(12),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(3),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(5),
                 B(TypeOf),
                 B(Star), R(12),
@@ -499,44 +392,36 @@
                 B(TestEqualStrict), R(12),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 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(Mov), R(5), R(13),
+                B(Mov), R(1), R(14),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(13), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(14),
                 B(LdaConstant), U8(5),
                 B(Star), R(13),
-                B(Ldar), R(closure),
-                B(Star), R(15),
+                B(Mov), R(closure), 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(Jump), U8(27),
+                B(Mov), R(5), R(12),
+                B(Mov), R(1), R(13),
+                B(InvokeIntrinsic), U8(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(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(6), 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(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(6), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(11), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(9),
@@ -557,12 +442,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [10, 174, 180],
-  [13, 127, 129],
-  [272, 285, 287],
+  [9, 138, 144],
+  [12, 97, 99],
+  [217, 227, 229],
 ]
 
 ---
@@ -572,78 +456,57 @@
 "
 frame size: 15
 parameter count: 1
-bytecode array length: 379
+bytecode array length: 308
 bytecodes: [
   /*   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(Star), R(6),
+                B(LdrUndefined), 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),
+                B(LdaConstant), U8(2),
+  /*   77 E> */ B(LdrKeyedProperty), R(13), U8(3), 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(Star), R(0),
+  /*   74 S> */ B(LdrNamedProperty), R(0), U8(3), U8(7), R(13),
+  /*   74 E> */ B(Call), R(13), R(0), U8(1), U8(5),
+                B(Star), R(1),
+  /*   74 E> */ B(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(1), 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(JumpIfFalse), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(1), U8(1),
+                B(LdaNamedProperty), R(1), U8(4), U8(9),
+                B(JumpIfToBooleanTrue), U8(28),
                 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),
+  /*   67 E> */ B(LdaNamedProperty), R(1), U8(5), U8(11),
+                B(StaNamedPropertySloppy), R(6), U8(6), U8(13),
   /*   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),
+  /*   88 S> */ B(Nop),
+  /*   96 E> */ B(LdrNamedProperty), R(6), U8(6), U8(15), R(9),
                 B(LdaZero),
                 B(Star), R(8),
-                B(Jump), U8(63),
-                B(Jump), U8(-84),
-                B(Jump), U8(47),
+                B(Jump), U8(57),
+                B(Jump), U8(-54),
+                B(Jump), U8(41),
                 B(Star), R(13),
                 B(LdaConstant), U8(7),
                 B(Star), R(12),
-                B(Ldar), R(closure),
-                B(Star), R(14),
+                B(Mov), R(closure), 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(TestEqualStrict), R(2),
                 B(JumpIfFalse), U8(6),
                 B(LdaSmi), U8(1),
                 B(Star), R(2),
-                B(LdaContextSlot), R(context), U8(4),
-                B(Star), R(12),
+                B(LdrContextSlot), R(context), U8(4), R(12),
                 B(CallRuntime), U16(Runtime::kReThrow), R(12), U8(1),
                 B(PopContext), R(7),
                 B(LdaSmi), U8(-1),
@@ -654,31 +517,21 @@
                 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(TestEqualStrict), R(2),
+                B(JumpIfTrue), U8(5),
                 B(LdaUndefined),
-                B(TestEqualStrict), R(11),
+                B(TestEqualStrict), R(0),
                 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(JumpIfFalse), U8(118),
+                B(LdrNamedProperty), R(0), U8(8), U8(17), R(4),
                 B(LdaNull),
-                B(TestEqual), R(11),
+                B(TestEqual), R(4),
                 B(JumpIfFalse), U8(4),
-                B(Jump), U8(124),
-                B(Ldar), R(2),
-                B(Star), R(11),
+                B(Jump), U8(106),
                 B(LdaSmi), U8(1),
-                B(TestEqualStrict), R(11),
-                B(JumpIfFalse), U8(79),
+                B(TestEqualStrict), R(2),
+                B(JumpIfFalse), U8(75),
                 B(Ldar), R(4),
                 B(TypeOf),
                 B(Star), R(11),
@@ -686,44 +539,36 @@
                 B(TestEqualStrict), R(11),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 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(Mov), R(4), R(12),
+                B(Mov), R(0), R(13),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(12), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(13),
                 B(LdaConstant), U8(7),
                 B(Star), R(12),
-                B(Ldar), R(closure),
-                B(Star), R(14),
+                B(Mov), R(closure), 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(Jump), U8(27),
+                B(Mov), R(4), R(11),
+                B(Mov), R(0), R(12),
+                B(InvokeIntrinsic), U8(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(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(5), 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(Jump), U8(7),
+                B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(5), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(10), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(8),
@@ -751,11 +596,10 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [18, 174, 180],
-  [21, 127, 129],
-  [273, 286, 288],
+  [17, 136, 142],
+  [20, 95, 97],
+  [216, 226, 228],
 ]
 
diff --git a/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden b/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
index f6b863f..b89bbd6 100644
--- a/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/FunctionLiterals.golden
@@ -31,11 +31,10 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 14
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-  /*   34 S> */ B(LdaUndefined),
-                B(Star), R(1),
+  /*   34 S> */ B(LdrUndefined), R(1),
                 B(CreateClosure), U8(0), U8(0),
                 B(Star), R(0),
   /*   56 E> */ B(Call), R(0), R(1), U8(1), U8(1),
@@ -53,11 +52,10 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 19
+bytecode array length: 18
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-  /*   34 S> */ B(LdaUndefined),
-                B(Star), R(1),
+  /*   34 S> */ B(LdrUndefined), R(1),
                 B(CreateClosure), U8(0), U8(0),
                 B(Star), R(0),
                 B(LdaSmi), U8(1),
diff --git a/test/cctest/interpreter/bytecode_expectations/Generators.golden b/test/cctest/interpreter/bytecode_expectations/Generators.golden
index 46a6b4a..f75b47e 100644
--- a/test/cctest/interpreter/bytecode_expectations/Generators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Generators.golden
@@ -12,10 +12,11 @@
 ---
 snippet: "
   function* f() { }
+  f();
 "
 frame size: 11
 parameter count: 1
-bytecode array length: 203
+bytecode array length: 204
 bytecodes: [
                 B(Ldar), R(new_target),
                 B(JumpIfUndefined), U8(20),
@@ -23,34 +24,34 @@
                 B(Star), R(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(1),
-                B(JumpIfTrue), U8(57),
+                B(JumpIfTrue), U8(60),
                 B(LdaSmi), U8(76),
                 B(Star), R(2),
                 B(CallRuntime), U16(Runtime::kAbort), R(2), U8(1),
+                B(LdaSmi), U8(-2),
+                B(Star), R(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),
+  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
+                B(Ldar), R(6),
+                B(Mov), R(closure), R(5),
                 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(LdrContextSlot), R(context), U8(5), 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(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                 B(Star), R(7),
-                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(6), U8(1),
+                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                 B(Star), R(8),
                 B(LdaZero),
                 B(TestEqualStrict), R(8),
@@ -59,18 +60,17 @@
                 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(Mov), R(7), R(9),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                 B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(2),
-                B(Jump), U8(36),
+                B(Jump), U8(35),
                 B(Ldar), R(7),
-                B(Throw),
-                B(LdaUndefined),
-                B(Star), R(5),
+  /*   11 E> */ B(Throw),
+                B(LdrUndefined), R(5),
                 B(LdaTrue),
                 B(Star), R(6),
                 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
@@ -86,9 +86,8 @@
                 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(LdrContextSlot), R(context), U8(5), R(5),
+                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(2),
@@ -112,12 +111,13 @@
 constant pool: [
 ]
 handlers: [
-  [38, 139, 145],
+  [42, 141, 147],
 ]
 
 ---
 snippet: "
   function* f() { yield 42 }
+  f();
 "
 frame size: 11
 parameter count: 1
@@ -129,37 +129,37 @@
                 B(Star), R(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(1),
-                B(JumpIfTrue), U8(63),
+                B(JumpIfTrue), U8(66),
                 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(LdaSmi), U8(-2),
+                B(Star), R(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),
+  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(6),
+                B(Ldar), R(6),
+                B(Mov), R(closure), R(5),
                 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(LdrContextSlot), R(context), U8(5), 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(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(6), U8(1),
                 B(Star), R(7),
-                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(6), U8(1),
+                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(6), U8(1),
                 B(Star), R(8),
                 B(LdaZero),
                 B(TestEqualStrict), R(8),
@@ -168,33 +168,32 @@
                 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(Mov), R(7), R(9),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                 B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(2),
-                B(Jump), U8(115),
+                B(Jump), U8(113),
                 B(Ldar), R(7),
-                B(Throw),
+  /*   11 E> */ 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(LdrContextSlot), R(context), U8(5), 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(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(5), U8(1),
                 B(Star), R(6),
-                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(5), U8(1),
+                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(5), U8(1),
                 B(Star), R(8),
                 B(LdaZero),
                 B(TestEqualStrict), R(8),
@@ -203,18 +202,17 @@
                 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(Mov), R(6), R(9),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(9), U8(2),
                 B(Star), R(3),
                 B(LdaSmi), U8(1),
                 B(Star), R(2),
-                B(Jump), U8(36),
+                B(Jump), U8(35),
                 B(Ldar), R(6),
-                B(Throw),
-                B(LdaUndefined),
-                B(Star), R(5),
+  /*   16 E> */ B(Throw),
+                B(LdrUndefined), R(5),
                 B(LdaTrue),
                 B(Star), R(6),
                 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(5), U8(2),
@@ -230,9 +228,8 @@
                 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(LdrContextSlot), R(context), U8(5), R(5),
+                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(5), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(2),
@@ -262,16 +259,17 @@
   kInstanceTypeDontCare,
 ]
 handlers: [
-  [44, 224, 230],
+  [48, 225, 231],
 ]
 
 ---
 snippet: "
   function* f() { for (let x of [42]) yield x }
+  f();
 "
 frame size: 17
 parameter count: 1
-bytecode array length: 808
+bytecode array length: 779
 bytecodes: [
                 B(Ldar), R(new_target),
                 B(JumpIfUndefined), U8(26),
@@ -279,37 +277,37 @@
                 B(Star), R(3),
                 B(LdaZero),
                 B(TestEqualStrict), R(3),
-                B(JumpIfTrue), U8(63),
+                B(JumpIfTrue), U8(66),
                 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(LdaSmi), U8(-2),
+                B(Star), R(3),
                 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),
+  /*   11 E> */ B(LdrContextSlot), R(context), U8(4), R(8),
+                B(Ldar), R(8),
+                B(Mov), R(closure), R(7),
                 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(LdrContextSlot), R(context), U8(5), 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(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(8), U8(1),
                 B(Star), R(9),
-                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(8), U8(1),
+                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(8), U8(1),
                 B(Star), R(10),
                 B(LdaZero),
                 B(TestEqualStrict), R(10),
@@ -318,20 +316,19 @@
                 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(Mov), R(9), R(11),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(11), U8(2),
                 B(Star), R(5),
                 B(LdaZero),
                 B(Star), R(4),
-                B(JumpConstant), U8(17),
+                B(JumpConstant), U8(16),
                 B(Ldar), R(9),
-                B(Throw),
+  /*   11 E> */ B(Throw),
                 B(LdaConstant), U8(0),
                 B(Star), R(7),
-                B(Ldar), R(closure),
-                B(Star), R(8),
+                B(Mov), R(closure), R(8),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(7), U8(2),
                 B(PushContext), R(1),
                 B(LdaTheHole),
@@ -344,9 +341,8 @@
                 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),
+                B(LdaConstant), U8(2),
+  /*   30 E> */ B(LdrKeyedProperty), R(12), U8(3), 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),
@@ -358,35 +354,29 @@
                 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 S> */ B(LdrContextSlot), R(1), U8(7), R(13),
+                B(LdrNamedProperty), R(13), U8(4), U8(7), 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(InvokeIntrinsic), U8(Runtime::k_IsJSReceiver), R(11), U8(1),
                 B(ToBooleanLogicalNot),
-                B(JumpIfFalse), U8(12),
-                B(LdaContextSlot), R(1), U8(8),
-                B(Star), R(11),
+                B(JumpIfFalse), U8(11),
+                B(LdrContextSlot), R(1), U8(8), 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(LdrContextSlot), R(1), U8(8), R(11),
+                B(LdaNamedProperty), 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(LdrContextSlot), R(1), U8(8), R(11),
+                B(LdaNamedProperty), 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(Mov), R(closure), R(12),
                 B(CallRuntime), U16(Runtime::kPushBlockContext), R(11), U8(2),
                 B(PushContext), R(2),
                 B(LdaTheHole),
@@ -403,17 +393,16 @@
                 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(LdrContextSlot), R(1), U8(5), 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(CallRuntime), U16(Runtime::k_GeneratorGetInputOrDebugPos), R(11), U8(1),
                 B(Star), R(12),
-                B(CallRuntime), U16(Runtime::kGeneratorGetResumeMode), R(11), U8(1),
+                B(CallRuntime), U16(Runtime::k_GeneratorGetResumeMode), R(11), U8(1),
                 B(Star), R(14),
                 B(LdaZero),
                 B(TestEqualStrict), R(14),
@@ -422,10 +411,10 @@
                 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(Mov), R(12), R(15),
+                B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(15), U8(2),
                 B(PopContext), R(2),
                 B(PopContext), R(2),
                 B(PopContext), R(2),
@@ -436,32 +425,29 @@
                 B(Star), R(8),
                 B(LdaZero),
                 B(Star), R(7),
-                B(Jump), U8(78),
+                B(Jump), U8(75),
                 B(Ldar), R(12),
-                B(Throw),
+  /*   36 E> */ 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(Wide), B(Jump), U16(-222),
+                B(Jump), U8(46),
                 B(Star), R(12),
                 B(LdaConstant), U8(11),
                 B(Star), R(11),
-                B(Ldar), R(closure),
-                B(Star), R(13),
+                B(Mov), R(closure), 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(LdrContextSlot), R(1), U8(9), 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(LdrContextSlot), R(context), U8(4), R(11),
                 B(CallRuntime), U16(Runtime::kReThrow), R(11), U8(1),
                 B(PopContext), R(2),
                 B(LdaSmi), U8(-1),
@@ -472,32 +458,27 @@
                 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(LdrContextSlot), R(1), U8(9), R(10),
                 B(LdaZero),
                 B(TestEqualStrict), R(10),
-                B(JumpIfTrue), U8(10),
-                B(LdaContextSlot), R(1), U8(7),
-                B(Star), R(10),
+                B(JumpIfTrue), U8(9),
+                B(LdrContextSlot), R(1), U8(7), 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(JumpIfFalseConstant), U8(15),
+                B(LdrContextSlot), R(1), U8(7), R(10),
+                B(LdaNamedProperty), R(10), U8(12), U8(13),
                 B(StaContextSlot), R(1), U8(11),
-                B(LdaContextSlot), R(1), U8(11),
-                B(Star), R(10),
+                B(LdrContextSlot), R(1), U8(11), 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(Jump), U8(124),
+                B(LdrContextSlot), R(1), U8(9), R(10),
                 B(LdaSmi), U8(1),
                 B(TestEqualStrict), R(10),
-                B(JumpIfFalse), U8(82),
+                B(JumpIfFalse), U8(78),
                 B(LdaContextSlot), R(1), U8(11),
                 B(TypeOf),
                 B(Star), R(10),
@@ -505,44 +486,37 @@
                 B(TestEqualStrict), R(10),
                 B(JumpIfFalse), U8(4),
                 B(Jump), U8(18),
-                B(Wide), B(LdaSmi), U16(129),
+                B(Wide), B(LdaSmi), U16(128),
                 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(LdrContextSlot), R(1), U8(11), R(11),
+                B(LdrContextSlot), R(1), U8(7), R(12),
+                B(InvokeIntrinsic), U8(Runtime::k_Call), R(11), U8(2),
+                B(Jump), U8(29),
                 B(Star), R(12),
                 B(LdaConstant), U8(11),
                 B(Star), R(11),
-                B(Ldar), R(closure),
-                B(Star), R(13),
+                B(Mov), R(closure), 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(Jump), U8(38),
+                B(LdrContextSlot), R(1), U8(11), R(10),
+                B(LdrContextSlot), R(1), U8(7), R(11),
+                B(InvokeIntrinsic), U8(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(LdrContextSlot), R(1), U8(12), R(10),
+                B(InvokeIntrinsic), U8(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(Jump), U8(11),
+                B(LdrContextSlot), R(1), U8(12), R(10),
                 B(CallRuntime), U16(Runtime::kThrowIteratorResultNotAnObject), R(10), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(9), U8(1),
                 B(LdaZero),
@@ -550,25 +524,22 @@
                 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(JumpIfTrue), U8(17),
+                B(Jump), U8(28),
                 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(Mov), R(8), R(5),
+                B(Jump), U8(47),
                 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(Mov), R(8), R(5),
+                B(Jump), U8(34),
                 B(PopContext), R(1),
-                B(LdaUndefined),
-                B(Star), R(7),
+                B(LdrUndefined), R(7),
                 B(LdaTrue),
                 B(Star), R(8),
                 B(CallRuntime), U16(Runtime::k_CreateIterResultObject), R(7), U8(2),
@@ -584,9 +555,8 @@
                 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(LdrContextSlot), R(context), U8(5), R(7),
+                B(CallRuntime), U16(Runtime::k_GeneratorClose), R(7), U8(1),
                 B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(6), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(4),
@@ -635,12 +605,11 @@
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
   kInstanceTypeDontCare,
   kInstanceTypeDontCare,
-  kInstanceTypeDontCare,
 ]
 handlers: [
-  [44, 726, 732],
-  [156, 462, 468],
-  [159, 413, 415],
-  [570, 585, 587],
+  [48, 698, 704],
+  [158, 452, 458],
+  [161, 406, 408],
+  [555, 567, 569],
 ]
 
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
index 89d31ee..5c9524d 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden
@@ -16,11 +16,10 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 12
 bytecodes: [
   /*   26 E> */ B(StackCheck),
-  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
-                B(Star), R(0),
+  /*   31 S> */ B(LdrGlobal), U8(1), R(0),
                 B(LdaSmi), U8(1),
                 B(BitwiseAnd), R(0),
   /*   45 E> */ B(StaGlobalSloppy), U8(0), U8(3),
@@ -40,11 +39,10 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 12
 bytecodes: [
   /*   27 E> */ B(StackCheck),
-  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
-                B(Star), R(0),
+  /*   32 S> */ B(LdrGlobal), U8(1), R(0),
                 B(LdaSmi), U8(1),
                 B(Add), R(0),
   /*   51 E> */ B(StaGlobalSloppy), U8(0), U8(3),
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden1 b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden1
new file mode 100644
index 0000000..b44d37b
--- /dev/null
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalCompoundExpressions.golden1
@@ -0,0 +1,64 @@
+#
+# Autogenerated by generate-bytecode-expectations.
+#
+
+---
+pool type: mixed
+execute: yes
+wrap: yes
+
+---
+snippet: "
+  var global = 1;
+  function f() { return global &= 1; }
+  f();
+"
+frame size: 4
+parameter count: 1
+bytecode array length: 27
+bytecodes: [
+                B(CallRuntime), U16(Runtime::kNewFunctionContext), R(closure), U8(1),
+                B(PushContext), R(1),
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   47 S> */ B(LdaSmi), U8(1),
+  /*   47 E> */ B(StaContextSlot), R(context), U8(4),
+  /*   87 S> */ B(LdrUndefined), R(3),
+  /*   87 E> */ B(Call), R(0), R(3), U8(1), U8(1),
+                B(LdaUndefined),
+  /*   92 S> */ B(Return),
+]
+constant pool: [
+  InstanceType::SHARED_FUNCTION_INFO_TYPE,
+]
+handlers: [
+]
+
+---
+snippet: "
+  unallocated = 1;
+  function f() { return unallocated += 1; }
+  f();
+"
+frame size: 3
+parameter count: 1
+bytecode array length: 20
+bytecodes: [
+                B(CreateClosure), U8(0), U8(0),
+                B(Star), R(0),
+  /*   30 E> */ B(StackCheck),
+  /*   34 S> */ B(LdaSmi), U8(1),
+  /*   46 E> */ B(StaGlobalSloppy), U8(1), U8(1),
+  /*   93 S> */ B(LdrUndefined), R(2),
+  /*   93 E> */ B(Call), R(0), R(2), U8(1), U8(3),
+                B(LdaUndefined),
+  /*   98 S> */ B(Return),
+]
+constant pool: [
+  InstanceType::SHARED_FUNCTION_INFO_TYPE,
+  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
+]
+handlers: [
+]
+
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden b/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
index df64018..ea50000 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalCountOperators.golden
@@ -16,10 +16,10 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 9
+bytecode array length: 8
 bytecodes: [
   /*   26 E> */ B(StackCheck),
-  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   31 S> */ B(LdaGlobal), U8(1),
                 B(Inc),
   /*   40 E> */ B(StaGlobalSloppy), U8(0), U8(3),
   /*   48 S> */ B(Return),
@@ -38,10 +38,10 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 13
 bytecodes: [
   /*   26 E> */ B(StackCheck),
-  /*   31 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   31 S> */ B(LdaGlobal), U8(1),
                 B(ToNumber),
                 B(Star), R(0),
                 B(Dec),
@@ -63,10 +63,10 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 9
+bytecode array length: 8
 bytecodes: [
   /*   27 E> */ B(StackCheck),
-  /*   46 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   46 S> */ B(LdaGlobal), U8(1),
                 B(Dec),
   /*   55 E> */ B(StaGlobalStrict), U8(0), U8(3),
   /*   68 S> */ B(Return),
@@ -85,10 +85,10 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 13
 bytecodes: [
   /*   27 E> */ B(StackCheck),
-  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   32 S> */ B(LdaGlobal), U8(1),
                 B(ToNumber),
                 B(Star), R(0),
                 B(Inc),
diff --git a/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden b/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
index fc86582..adead06 100644
--- a/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
+++ b/test/cctest/interpreter/bytecode_expectations/GlobalDelete.golden
@@ -18,18 +18,16 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 11
+bytecode array length: 9
 bytecodes: [
   /*   32 E> */ B(StackCheck),
-  /*   39 S> */ B(LdaGlobal), U8(0), U8(1),
-                B(Star), R(0),
-                B(LdaConstant), U8(1),
+  /*   39 S> */ B(LdrGlobal), U8(1), R(0),
+                B(LdaConstant), U8(0),
                 B(DeletePropertySloppy), R(0),
   /*   58 S> */ B(Return),
 ]
 constant pool: [
   InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
@@ -45,17 +43,15 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 11
+bytecode array length: 9
 bytecodes: [
   /*   28 E> */ B(StackCheck),
-  /*   51 S> */ B(LdaGlobal), U8(0), U8(1),
-                B(Star), R(0),
+  /*   51 S> */ B(LdrGlobal), U8(1), R(0),
                 B(LdaSmi), U8(1),
                 B(DeletePropertyStrict), R(0),
   /*   71 S> */ B(Return),
 ]
 constant pool: [
-  InstanceType::ONE_BYTE_INTERNALIZED_STRING_TYPE,
 ]
 handlers: [
 ]
@@ -70,13 +66,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 16
+bytecode array length: 14
 bytecodes: [
   /*   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),
+  /*   39 S> */ B(LdrContextSlot), R(context), U8(3), R(0),
+                B(LdrContextSlot), R(0), U8(2), R(1),
                 B(LdaConstant), U8(0),
                 B(DeletePropertySloppy), R(1),
   /*   56 S> */ B(Return),
@@ -97,13 +91,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 16
+bytecode array length: 14
 bytecodes: [
   /*   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),
+  /*   25 S> */ B(LdrContextSlot), R(context), U8(3), R(0),
+                B(LdrContextSlot), R(0), U8(2), R(1),
                 B(LdaConstant), U8(0),
                 B(DeletePropertySloppy), R(1),
   /*   42 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden b/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
index bcc4b67..f70321a 100644
--- a/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/HeapNumberConstants.golden
@@ -35,7 +35,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   47 S> */ B(LdaConstant), U8(1),
   /*   59 S> */ B(Return),
 ]
@@ -56,7 +56,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   48 S> */ B(LdaConstant), U8(1),
   /*   61 S> */ B(Return),
 ]
@@ -333,519 +333,519 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   41 S> */ B(LdaConstant), U8(0),
-  /*   43 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   52 S> */ B(LdaConstant), U8(1),
-  /*   54 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   63 S> */ B(LdaConstant), U8(2),
-  /*   65 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   74 S> */ B(LdaConstant), U8(3),
-  /*   76 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   85 S> */ B(LdaConstant), U8(4),
-  /*   87 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   96 S> */ B(LdaConstant), U8(5),
-  /*   98 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  107 S> */ B(LdaConstant), U8(6),
-  /*  109 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  118 S> */ B(LdaConstant), U8(7),
-  /*  120 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  129 S> */ B(LdaConstant), U8(8),
-  /*  131 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  140 S> */ B(LdaConstant), U8(9),
-  /*  142 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  151 S> */ B(LdaConstant), U8(10),
-  /*  153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  162 S> */ B(LdaConstant), U8(11),
-  /*  164 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  173 S> */ B(LdaConstant), U8(12),
-  /*  175 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  184 S> */ B(LdaConstant), U8(13),
-  /*  186 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  195 S> */ B(LdaConstant), U8(14),
-  /*  197 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  206 S> */ B(LdaConstant), U8(15),
-  /*  208 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  217 S> */ B(LdaConstant), U8(16),
-  /*  219 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  228 S> */ B(LdaConstant), U8(17),
-  /*  230 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  239 S> */ B(LdaConstant), U8(18),
-  /*  241 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  250 S> */ B(LdaConstant), U8(19),
-  /*  252 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  261 S> */ B(LdaConstant), U8(20),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  272 S> */ B(LdaConstant), U8(21),
-  /*  274 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  283 S> */ B(LdaConstant), U8(22),
-  /*  285 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  294 S> */ B(LdaConstant), U8(23),
-  /*  296 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  305 S> */ B(LdaConstant), U8(24),
-  /*  307 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  316 S> */ B(LdaConstant), U8(25),
-  /*  318 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  327 S> */ B(LdaConstant), U8(26),
-  /*  329 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  338 S> */ B(LdaConstant), U8(27),
-  /*  340 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  349 S> */ B(LdaConstant), U8(28),
-  /*  351 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  360 S> */ B(LdaConstant), U8(29),
-  /*  362 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  371 S> */ B(LdaConstant), U8(30),
-  /*  373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  382 S> */ B(LdaConstant), U8(31),
-  /*  384 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  393 S> */ B(LdaConstant), U8(32),
-  /*  395 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  404 S> */ B(LdaConstant), U8(33),
-  /*  406 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  415 S> */ B(LdaConstant), U8(34),
-  /*  417 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  426 S> */ B(LdaConstant), U8(35),
-  /*  428 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  437 S> */ B(LdaConstant), U8(36),
-  /*  439 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  448 S> */ B(LdaConstant), U8(37),
-  /*  450 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  459 S> */ B(LdaConstant), U8(38),
-  /*  461 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  470 S> */ B(LdaConstant), U8(39),
-  /*  472 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  481 S> */ B(LdaConstant), U8(40),
-  /*  483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  492 S> */ B(LdaConstant), U8(41),
-  /*  494 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  503 S> */ B(LdaConstant), U8(42),
-  /*  505 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  514 S> */ B(LdaConstant), U8(43),
-  /*  516 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  525 S> */ B(LdaConstant), U8(44),
-  /*  527 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  536 S> */ B(LdaConstant), U8(45),
-  /*  538 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  547 S> */ B(LdaConstant), U8(46),
-  /*  549 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  558 S> */ B(LdaConstant), U8(47),
-  /*  560 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  569 S> */ B(LdaConstant), U8(48),
-  /*  571 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  580 S> */ B(LdaConstant), U8(49),
-  /*  582 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  591 S> */ B(LdaConstant), U8(50),
-  /*  593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  602 S> */ B(LdaConstant), U8(51),
-  /*  604 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  613 S> */ B(LdaConstant), U8(52),
-  /*  615 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  624 S> */ B(LdaConstant), U8(53),
-  /*  626 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  635 S> */ B(LdaConstant), U8(54),
-  /*  637 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  646 S> */ B(LdaConstant), U8(55),
-  /*  648 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  657 S> */ B(LdaConstant), U8(56),
-  /*  659 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  668 S> */ B(LdaConstant), U8(57),
-  /*  670 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  679 S> */ B(LdaConstant), U8(58),
-  /*  681 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  690 S> */ B(LdaConstant), U8(59),
-  /*  692 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  701 S> */ B(LdaConstant), U8(60),
-  /*  703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  712 S> */ B(LdaConstant), U8(61),
-  /*  714 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  723 S> */ B(LdaConstant), U8(62),
-  /*  725 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  734 S> */ B(LdaConstant), U8(63),
-  /*  736 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  745 S> */ B(LdaConstant), U8(64),
-  /*  747 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  756 S> */ B(LdaConstant), U8(65),
-  /*  758 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  767 S> */ B(LdaConstant), U8(66),
-  /*  769 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  778 S> */ B(LdaConstant), U8(67),
-  /*  780 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  789 S> */ B(LdaConstant), U8(68),
-  /*  791 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  800 S> */ B(LdaConstant), U8(69),
-  /*  802 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  811 S> */ B(LdaConstant), U8(70),
-  /*  813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  822 S> */ B(LdaConstant), U8(71),
-  /*  824 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  833 S> */ B(LdaConstant), U8(72),
-  /*  835 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  844 S> */ B(LdaConstant), U8(73),
-  /*  846 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  855 S> */ B(LdaConstant), U8(74),
-  /*  857 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  866 S> */ B(LdaConstant), U8(75),
-  /*  868 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  877 S> */ B(LdaConstant), U8(76),
-  /*  879 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  888 S> */ B(LdaConstant), U8(77),
-  /*  890 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  899 S> */ B(LdaConstant), U8(78),
-  /*  901 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  910 S> */ B(LdaConstant), U8(79),
-  /*  912 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  921 S> */ B(LdaConstant), U8(80),
-  /*  923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  932 S> */ B(LdaConstant), U8(81),
-  /*  934 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  943 S> */ B(LdaConstant), U8(82),
-  /*  945 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  954 S> */ B(LdaConstant), U8(83),
-  /*  956 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  965 S> */ B(LdaConstant), U8(84),
-  /*  967 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  976 S> */ B(LdaConstant), U8(85),
-  /*  978 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  987 S> */ B(LdaConstant), U8(86),
-  /*  989 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  998 S> */ B(LdaConstant), U8(87),
-  /* 1000 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1009 S> */ B(LdaConstant), U8(88),
-  /* 1011 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1020 S> */ B(LdaConstant), U8(89),
-  /* 1022 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1031 S> */ B(LdaConstant), U8(90),
-  /* 1033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1042 S> */ B(LdaConstant), U8(91),
-  /* 1044 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1053 S> */ B(LdaConstant), U8(92),
-  /* 1055 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1064 S> */ B(LdaConstant), U8(93),
-  /* 1066 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1075 S> */ B(LdaConstant), U8(94),
-  /* 1077 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1086 S> */ B(LdaConstant), U8(95),
-  /* 1088 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1097 S> */ B(LdaConstant), U8(96),
-  /* 1099 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1108 S> */ B(LdaConstant), U8(97),
-  /* 1110 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1119 S> */ B(LdaConstant), U8(98),
-  /* 1121 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1130 S> */ B(LdaConstant), U8(99),
-  /* 1132 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1141 S> */ B(LdaConstant), U8(100),
-  /* 1143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1152 S> */ B(LdaConstant), U8(101),
-  /* 1154 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1163 S> */ B(LdaConstant), U8(102),
-  /* 1165 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1174 S> */ B(LdaConstant), U8(103),
-  /* 1176 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1185 S> */ B(LdaConstant), U8(104),
-  /* 1187 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1196 S> */ B(LdaConstant), U8(105),
-  /* 1198 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1207 S> */ B(LdaConstant), U8(106),
-  /* 1209 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1218 S> */ B(LdaConstant), U8(107),
-  /* 1220 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1229 S> */ B(LdaConstant), U8(108),
-  /* 1231 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1240 S> */ B(LdaConstant), U8(109),
-  /* 1242 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1251 S> */ B(LdaConstant), U8(110),
-  /* 1253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1262 S> */ B(LdaConstant), U8(111),
-  /* 1264 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1273 S> */ B(LdaConstant), U8(112),
-  /* 1275 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1284 S> */ B(LdaConstant), U8(113),
-  /* 1286 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1295 S> */ B(LdaConstant), U8(114),
-  /* 1297 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1306 S> */ B(LdaConstant), U8(115),
-  /* 1308 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1317 S> */ B(LdaConstant), U8(116),
-  /* 1319 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1328 S> */ B(LdaConstant), U8(117),
-  /* 1330 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1339 S> */ B(LdaConstant), U8(118),
-  /* 1341 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1350 S> */ B(LdaConstant), U8(119),
-  /* 1352 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1361 S> */ B(LdaConstant), U8(120),
-  /* 1363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1372 S> */ B(LdaConstant), U8(121),
-  /* 1374 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1383 S> */ B(LdaConstant), U8(122),
-  /* 1385 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1394 S> */ B(LdaConstant), U8(123),
-  /* 1396 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1405 S> */ B(LdaConstant), U8(124),
-  /* 1407 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1416 S> */ B(LdaConstant), U8(125),
-  /* 1418 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1427 S> */ B(LdaConstant), U8(126),
-  /* 1429 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1438 S> */ B(LdaConstant), U8(127),
-  /* 1440 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1449 S> */ B(LdaConstant), U8(128),
-  /* 1451 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1460 S> */ B(LdaConstant), U8(129),
-  /* 1462 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1471 S> */ B(LdaConstant), U8(130),
-  /* 1473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1482 S> */ B(LdaConstant), U8(131),
-  /* 1484 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1493 S> */ B(LdaConstant), U8(132),
-  /* 1495 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1504 S> */ B(LdaConstant), U8(133),
-  /* 1506 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1515 S> */ B(LdaConstant), U8(134),
-  /* 1517 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1526 S> */ B(LdaConstant), U8(135),
-  /* 1528 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1537 S> */ B(LdaConstant), U8(136),
-  /* 1539 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1548 S> */ B(LdaConstant), U8(137),
-  /* 1550 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1559 S> */ B(LdaConstant), U8(138),
-  /* 1561 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1570 S> */ B(LdaConstant), U8(139),
-  /* 1572 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1581 S> */ B(LdaConstant), U8(140),
-  /* 1583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1592 S> */ B(LdaConstant), U8(141),
-  /* 1594 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1603 S> */ B(LdaConstant), U8(142),
-  /* 1605 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1614 S> */ B(LdaConstant), U8(143),
-  /* 1616 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1625 S> */ B(LdaConstant), U8(144),
-  /* 1627 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1636 S> */ B(LdaConstant), U8(145),
-  /* 1638 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1647 S> */ B(LdaConstant), U8(146),
-  /* 1649 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1658 S> */ B(LdaConstant), U8(147),
-  /* 1660 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1669 S> */ B(LdaConstant), U8(148),
-  /* 1671 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1680 S> */ B(LdaConstant), U8(149),
-  /* 1682 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1691 S> */ B(LdaConstant), U8(150),
-  /* 1693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1702 S> */ B(LdaConstant), U8(151),
-  /* 1704 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1713 S> */ B(LdaConstant), U8(152),
-  /* 1715 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1724 S> */ B(LdaConstant), U8(153),
-  /* 1726 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1735 S> */ B(LdaConstant), U8(154),
-  /* 1737 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1746 S> */ B(LdaConstant), U8(155),
-  /* 1748 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1757 S> */ B(LdaConstant), U8(156),
-  /* 1759 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1768 S> */ B(LdaConstant), U8(157),
-  /* 1770 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1779 S> */ B(LdaConstant), U8(158),
-  /* 1781 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1790 S> */ B(LdaConstant), U8(159),
-  /* 1792 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1801 S> */ B(LdaConstant), U8(160),
-  /* 1803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1812 S> */ B(LdaConstant), U8(161),
-  /* 1814 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1823 S> */ B(LdaConstant), U8(162),
-  /* 1825 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1834 S> */ B(LdaConstant), U8(163),
-  /* 1836 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1845 S> */ B(LdaConstant), U8(164),
-  /* 1847 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1856 S> */ B(LdaConstant), U8(165),
-  /* 1858 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1867 S> */ B(LdaConstant), U8(166),
-  /* 1869 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1878 S> */ B(LdaConstant), U8(167),
-  /* 1880 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1889 S> */ B(LdaConstant), U8(168),
-  /* 1891 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1900 S> */ B(LdaConstant), U8(169),
-  /* 1902 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1911 S> */ B(LdaConstant), U8(170),
-  /* 1913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1922 S> */ B(LdaConstant), U8(171),
-  /* 1924 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1933 S> */ B(LdaConstant), U8(172),
-  /* 1935 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1944 S> */ B(LdaConstant), U8(173),
-  /* 1946 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1955 S> */ B(LdaConstant), U8(174),
-  /* 1957 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1966 S> */ B(LdaConstant), U8(175),
-  /* 1968 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1977 S> */ B(LdaConstant), U8(176),
-  /* 1979 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1988 S> */ B(LdaConstant), U8(177),
-  /* 1990 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1999 S> */ B(LdaConstant), U8(178),
-  /* 2001 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2010 S> */ B(LdaConstant), U8(179),
-  /* 2012 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2021 S> */ B(LdaConstant), U8(180),
-  /* 2023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2032 S> */ B(LdaConstant), U8(181),
-  /* 2034 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2043 S> */ B(LdaConstant), U8(182),
-  /* 2045 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2054 S> */ B(LdaConstant), U8(183),
-  /* 2056 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2065 S> */ B(LdaConstant), U8(184),
-  /* 2067 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2076 S> */ B(LdaConstant), U8(185),
-  /* 2078 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2087 S> */ B(LdaConstant), U8(186),
-  /* 2089 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2098 S> */ B(LdaConstant), U8(187),
-  /* 2100 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2109 S> */ B(LdaConstant), U8(188),
-  /* 2111 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2120 S> */ B(LdaConstant), U8(189),
-  /* 2122 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2131 S> */ B(LdaConstant), U8(190),
-  /* 2133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2142 S> */ B(LdaConstant), U8(191),
-  /* 2144 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2153 S> */ B(LdaConstant), U8(192),
-  /* 2155 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2164 S> */ B(LdaConstant), U8(193),
-  /* 2166 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2175 S> */ B(LdaConstant), U8(194),
-  /* 2177 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2186 S> */ B(LdaConstant), U8(195),
-  /* 2188 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2197 S> */ B(LdaConstant), U8(196),
-  /* 2199 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2208 S> */ B(LdaConstant), U8(197),
-  /* 2210 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2219 S> */ B(LdaConstant), U8(198),
-  /* 2221 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2230 S> */ B(LdaConstant), U8(199),
-  /* 2232 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2241 S> */ B(LdaConstant), U8(200),
-  /* 2243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2252 S> */ B(LdaConstant), U8(201),
-  /* 2254 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2263 S> */ B(LdaConstant), U8(202),
-  /* 2265 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2274 S> */ B(LdaConstant), U8(203),
-  /* 2276 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2285 S> */ B(LdaConstant), U8(204),
-  /* 2287 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2296 S> */ B(LdaConstant), U8(205),
-  /* 2298 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2307 S> */ B(LdaConstant), U8(206),
-  /* 2309 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2318 S> */ B(LdaConstant), U8(207),
-  /* 2320 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2329 S> */ B(LdaConstant), U8(208),
-  /* 2331 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2340 S> */ B(LdaConstant), U8(209),
-  /* 2342 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2351 S> */ B(LdaConstant), U8(210),
-  /* 2353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2362 S> */ B(LdaConstant), U8(211),
-  /* 2364 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2373 S> */ B(LdaConstant), U8(212),
-  /* 2375 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2384 S> */ B(LdaConstant), U8(213),
-  /* 2386 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2395 S> */ B(LdaConstant), U8(214),
-  /* 2397 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2406 S> */ B(LdaConstant), U8(215),
-  /* 2408 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2417 S> */ B(LdaConstant), U8(216),
-  /* 2419 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2428 S> */ B(LdaConstant), U8(217),
-  /* 2430 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2439 S> */ B(LdaConstant), U8(218),
-  /* 2441 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2450 S> */ B(LdaConstant), U8(219),
-  /* 2452 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2461 S> */ B(LdaConstant), U8(220),
-  /* 2463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2472 S> */ B(LdaConstant), U8(221),
-  /* 2474 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2483 S> */ B(LdaConstant), U8(222),
-  /* 2485 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2494 S> */ B(LdaConstant), U8(223),
-  /* 2496 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2505 S> */ B(LdaConstant), U8(224),
-  /* 2507 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2516 S> */ B(LdaConstant), U8(225),
-  /* 2518 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2527 S> */ B(LdaConstant), U8(226),
-  /* 2529 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2538 S> */ B(LdaConstant), U8(227),
-  /* 2540 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2549 S> */ B(LdaConstant), U8(228),
-  /* 2551 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2560 S> */ B(LdaConstant), U8(229),
-  /* 2562 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2571 S> */ B(LdaConstant), U8(230),
-  /* 2573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2582 S> */ B(LdaConstant), U8(231),
-  /* 2584 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2593 S> */ B(LdaConstant), U8(232),
-  /* 2595 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2604 S> */ B(LdaConstant), U8(233),
-  /* 2606 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2615 S> */ B(LdaConstant), U8(234),
-  /* 2617 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2626 S> */ B(LdaConstant), U8(235),
-  /* 2628 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2637 S> */ B(LdaConstant), U8(236),
-  /* 2639 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2648 S> */ B(LdaConstant), U8(237),
-  /* 2650 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2659 S> */ B(LdaConstant), U8(238),
-  /* 2661 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2670 S> */ B(LdaConstant), U8(239),
-  /* 2672 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2681 S> */ B(LdaConstant), U8(240),
-  /* 2683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2692 S> */ B(LdaConstant), U8(241),
-  /* 2694 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2703 S> */ B(LdaConstant), U8(242),
-  /* 2705 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2714 S> */ B(LdaConstant), U8(243),
-  /* 2716 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2725 S> */ B(LdaConstant), U8(244),
-  /* 2727 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2736 S> */ B(LdaConstant), U8(245),
-  /* 2738 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2747 S> */ B(LdaConstant), U8(246),
-  /* 2749 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2758 S> */ B(LdaConstant), U8(247),
-  /* 2760 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2769 S> */ B(LdaConstant), U8(248),
-  /* 2771 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2780 S> */ B(LdaConstant), U8(249),
-  /* 2782 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2791 S> */ B(LdaConstant), U8(250),
-  /* 2793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2802 S> */ B(LdaConstant), U8(251),
-  /* 2804 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2813 S> */ B(LdaConstant), U8(252),
-  /* 2815 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2824 S> */ B(LdaConstant), U8(253),
-  /* 2826 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2835 S> */ B(LdaConstant), U8(254),
-  /* 2837 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2846 S> */ B(LdaConstant), U8(255),
-  /* 2848 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2857 S> */ B(Wide), B(LdaConstant), U16(256),
-  /* 2859 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaUndefined),
   /* 2867 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/IfConditions.golden b/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
index 2d66970..98c8229 100644
--- a/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/IfConditions.golden
@@ -116,17 +116,16 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 24
+bytecode array length: 23
 bytecodes: [
   /*   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(Star), R(0),
+  /*   30 S> */ B(JumpIfToBooleanFalse), U8(13),
+  /*   43 S> */ B(LdaSmi), U8(1),
+                B(Add), R(0),
+                B(Mov), R(0), R(1),
+                B(Star), R(0),
                 B(Jump), U8(5),
   /*   66 S> */ B(LdaSmi), U8(2),
   /*   80 S> */ B(Return),
@@ -149,15 +148,13 @@
   };
   f(99);
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 22
+bytecode array length: 18
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   18 S> */ B(Ldar), R(arg0),
-                B(Star), R(0),
-                B(LdaZero),
-  /*   24 E> */ B(TestLessThanOrEqual), R(0),
+  /*   18 S> */ B(LdaZero),
+  /*   24 E> */ B(TestLessThanOrEqual), R(arg0),
                 B(JumpIfFalse), U8(7),
   /*   36 S> */ B(Wide), B(LdaSmi), U16(200),
   /*   80 S> */ B(Return),
@@ -175,15 +172,13 @@
 snippet: "
   function f(a, b) { if (a in b) { return 200; } }f('prop', { prop: 'yes'});
 "
-frame size: 1
+frame size: 0
 parameter count: 3
-bytecode array length: 18
+bytecode array length: 14
 bytecodes: [
   /*   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),
+  /*   19 S> */ B(Ldar), R(arg1),
+  /*   25 E> */ B(TestIn), R(arg0),
                 B(JumpIfFalse), U8(7),
   /*   33 S> */ B(Wide), B(LdaSmi), U16(200),
   /*   47 S> */ B(Return),
@@ -264,149 +259,146 @@
     b = a; a = b;
    return 200; } else { return -200; } } f(0.001);
 "
-frame size: 3
+frame size: 2
 parameter count: 2
-bytecode array length: 287
+bytecode array length: 409
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   24 S> */ B(LdaZero),
-  /*   24 E> */ B(Star), R(0),
+                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(Star), R(1),
+  /*   38 S> */ B(LdaConstant), U8(0),
+  /*   44 E> */ B(TestEqualStrict), R(0),
                 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),
+  /*   58 S> */ B(Mov), R(0), R(1),
+  /*   65 S> */ B(Mov), R(1), R(0),
+  /*   74 S> */ B(Mov), R(0), R(1),
+  /*   81 S> */ B(Mov), R(1), R(0),
+  /*   90 S> */ B(Mov), R(0), R(1),
+  /*   97 S> */ B(Mov), R(1), R(0),
+  /*  106 S> */ B(Mov), R(0), R(1),
+  /*  113 S> */ B(Mov), R(1), R(0),
+  /*  122 S> */ B(Mov), R(0), R(1),
+  /*  129 S> */ B(Mov), R(1), R(0),
+  /*  138 S> */ B(Mov), R(0), R(1),
+  /*  145 S> */ B(Mov), R(1), R(0),
+  /*  154 S> */ B(Mov), R(0), R(1),
+  /*  161 S> */ B(Mov), R(1), R(0),
+  /*  170 S> */ B(Mov), R(0), R(1),
+  /*  177 S> */ B(Mov), R(1), R(0),
+  /*  186 S> */ B(Mov), R(0), R(1),
+  /*  193 S> */ B(Mov), R(1), R(0),
+  /*  202 S> */ B(Mov), R(0), R(1),
+  /*  209 S> */ B(Mov), R(1), R(0),
+  /*  218 S> */ B(Mov), R(0), R(1),
+  /*  225 S> */ B(Mov), R(1), R(0),
+  /*  234 S> */ B(Mov), R(0), R(1),
+  /*  241 S> */ B(Mov), R(1), R(0),
+  /*  250 S> */ B(Mov), R(0), R(1),
+  /*  257 S> */ B(Mov), R(1), R(0),
+  /*  266 S> */ B(Mov), R(0), R(1),
+  /*  273 S> */ B(Mov), R(1), R(0),
+  /*  282 S> */ B(Mov), R(0), R(1),
+  /*  289 S> */ B(Mov), R(1), R(0),
+  /*  298 S> */ B(Mov), R(0), R(1),
+  /*  305 S> */ B(Mov), R(1), R(0),
+  /*  314 S> */ B(Mov), R(0), R(1),
+  /*  321 S> */ B(Mov), R(1), R(0),
+  /*  330 S> */ B(Mov), R(0), R(1),
+  /*  337 S> */ B(Mov), R(1), R(0),
+  /*  346 S> */ B(Mov), R(0), R(1),
+  /*  353 S> */ B(Mov), R(1), R(0),
+  /*  362 S> */ B(Mov), R(0), R(1),
+  /*  369 S> */ B(Mov), R(1), R(0),
+  /*  378 S> */ B(Mov), R(0), R(1),
+  /*  385 S> */ B(Mov), R(1), R(0),
+  /*  394 S> */ B(Mov), R(0), R(1),
+  /*  401 S> */ B(Mov), R(1), R(0),
+  /*  410 S> */ B(Mov), R(0), R(1),
+  /*  417 S> */ B(Mov), R(1), R(0),
+  /*  426 S> */ B(Mov), R(0), R(1),
+  /*  433 S> */ B(Mov), R(1), R(0),
+  /*  442 S> */ B(Mov), R(0), R(1),
+  /*  449 S> */ B(Mov), R(1), R(0),
+  /*  458 S> */ B(Mov), R(0), R(1),
+  /*  465 S> */ B(Mov), R(1), R(0),
+  /*  474 S> */ B(Mov), R(0), R(1),
+  /*  481 S> */ B(Mov), R(1), R(0),
+  /*  490 S> */ B(Mov), R(0), R(1),
+  /*  497 S> */ B(Mov), R(1), R(0),
+  /*  506 S> */ B(Mov), R(0), R(1),
+  /*  513 S> */ B(Mov), R(1), R(0),
+  /*  522 S> */ B(Mov), R(0), R(1),
+  /*  529 S> */ B(Mov), R(1), R(0),
+  /*  538 S> */ B(Mov), R(0), R(1),
+  /*  545 S> */ B(Mov), R(1), R(0),
+  /*  554 S> */ B(Mov), R(0), R(1),
+  /*  561 S> */ B(Mov), R(1), R(0),
+  /*  570 S> */ B(Mov), R(0), R(1),
+  /*  577 S> */ B(Mov), R(1), R(0),
+  /*  586 S> */ B(Mov), R(0), R(1),
+  /*  593 S> */ B(Mov), R(1), R(0),
+  /*  602 S> */ B(Mov), R(0), R(1),
+  /*  609 S> */ B(Mov), R(1), R(0),
+  /*  618 S> */ B(Mov), R(0), R(1),
+  /*  625 S> */ B(Mov), R(1), R(0),
+  /*  634 S> */ B(Mov), R(0), R(1),
+  /*  641 S> */ B(Mov), R(1), R(0),
+  /*  650 S> */ B(Mov), R(0), R(1),
+  /*  657 S> */ B(Mov), R(1), R(0),
+  /*  666 S> */ B(Mov), R(0), R(1),
+  /*  673 S> */ B(Mov), R(1), R(0),
+  /*  682 S> */ B(Mov), R(0), R(1),
+  /*  689 S> */ B(Mov), R(1), R(0),
+  /*  698 S> */ B(Mov), R(0), R(1),
+  /*  705 S> */ B(Mov), R(1), R(0),
+  /*  714 S> */ B(Mov), R(0), R(1),
+  /*  721 S> */ B(Mov), R(1), R(0),
+  /*  730 S> */ B(Mov), R(0), R(1),
+  /*  737 S> */ B(Mov), R(1), R(0),
+  /*  746 S> */ B(Mov), R(0), R(1),
+  /*  753 S> */ B(Mov), R(1), R(0),
+  /*  762 S> */ B(Mov), R(0), R(1),
+  /*  769 S> */ B(Mov), R(1), R(0),
+  /*  778 S> */ B(Mov), R(0), R(1),
+  /*  785 S> */ B(Mov), R(1), R(0),
+  /*  794 S> */ B(Mov), R(0), R(1),
+  /*  801 S> */ B(Mov), R(1), R(0),
+  /*  810 S> */ B(Mov), R(0), R(1),
+  /*  817 S> */ B(Mov), R(1), R(0),
+  /*  826 S> */ B(Mov), R(0), R(1),
+  /*  833 S> */ B(Mov), R(1), R(0),
+  /*  842 S> */ B(Mov), R(0), R(1),
+  /*  849 S> */ B(Mov), R(1), R(0),
+  /*  858 S> */ B(Mov), R(0), R(1),
+  /*  865 S> */ B(Mov), R(1), R(0),
+  /*  874 S> */ B(Mov), R(0), R(1),
+  /*  881 S> */ B(Mov), R(1), R(0),
+  /*  890 S> */ B(Mov), R(0), R(1),
+  /*  897 S> */ B(Mov), R(1), R(0),
+  /*  906 S> */ B(Mov), R(0), R(1),
+  /*  913 S> */ B(Mov), R(1), R(0),
+  /*  922 S> */ B(Mov), R(0), R(1),
+  /*  929 S> */ B(Mov), R(1), R(0),
+  /*  938 S> */ B(Mov), R(0), R(1),
+  /*  945 S> */ B(Mov), R(1), R(0),
+  /*  954 S> */ B(Mov), R(0), R(1),
+  /*  961 S> */ B(Mov), R(1), R(0),
+  /*  970 S> */ B(Mov), R(0), R(1),
+  /*  977 S> */ B(Mov), R(1), R(0),
+  /*  986 S> */ B(Mov), R(0), R(1),
+  /*  993 S> */ B(Mov), R(1), R(0),
+  /* 1002 S> */ B(Mov), R(0), R(1),
+  /* 1009 S> */ B(Mov), R(1), R(0),
+  /* 1018 S> */ B(Mov), R(0), R(1),
+  /* 1025 S> */ B(Mov), R(1), R(0),
+  /* 1034 S> */ B(Mov), R(0), R(1),
+  /* 1041 S> */ B(Mov), R(1), R(0),
+  /* 1050 S> */ B(Mov), R(0), R(1),
+  /* 1057 S> */ B(Mov), R(1), R(0),
+  /* 1066 S> */ B(Mov), R(0), R(1),
+  /* 1073 S> */ B(Mov), R(1), R(0),
   /* 1081 S> */ B(Wide), B(LdaSmi), U16(200),
   /* 1117 S> */ B(Return),
   /* 1102 S> */ B(Wide), B(LdaSmi), U16(-200),
@@ -496,144 +488,143 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 281
+bytecode array length: 407
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   25 S> */ B(LdaZero),
-  /*   25 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   36 S> */ B(LdaZero),
-  /*   36 E> */ B(Star), R(1),
+                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),
+  /*   52 S> */ B(Mov), R(0), R(1),
+  /*   59 S> */ B(Mov), R(1), R(0),
+  /*   68 S> */ B(Mov), R(0), R(1),
+  /*   75 S> */ B(Mov), R(1), R(0),
+  /*   84 S> */ B(Mov), R(0), R(1),
+  /*   91 S> */ B(Mov), R(1), R(0),
+  /*  100 S> */ B(Mov), R(0), R(1),
+  /*  107 S> */ B(Mov), R(1), R(0),
+  /*  116 S> */ B(Mov), R(0), R(1),
+  /*  123 S> */ B(Mov), R(1), R(0),
+  /*  132 S> */ B(Mov), R(0), R(1),
+  /*  139 S> */ B(Mov), R(1), R(0),
+  /*  148 S> */ B(Mov), R(0), R(1),
+  /*  155 S> */ B(Mov), R(1), R(0),
+  /*  164 S> */ B(Mov), R(0), R(1),
+  /*  171 S> */ B(Mov), R(1), R(0),
+  /*  180 S> */ B(Mov), R(0), R(1),
+  /*  187 S> */ B(Mov), R(1), R(0),
+  /*  196 S> */ B(Mov), R(0), R(1),
+  /*  203 S> */ B(Mov), R(1), R(0),
+  /*  212 S> */ B(Mov), R(0), R(1),
+  /*  219 S> */ B(Mov), R(1), R(0),
+  /*  228 S> */ B(Mov), R(0), R(1),
+  /*  235 S> */ B(Mov), R(1), R(0),
+  /*  244 S> */ B(Mov), R(0), R(1),
+  /*  251 S> */ B(Mov), R(1), R(0),
+  /*  260 S> */ B(Mov), R(0), R(1),
+  /*  267 S> */ B(Mov), R(1), R(0),
+  /*  276 S> */ B(Mov), R(0), R(1),
+  /*  283 S> */ B(Mov), R(1), R(0),
+  /*  292 S> */ B(Mov), R(0), R(1),
+  /*  299 S> */ B(Mov), R(1), R(0),
+  /*  308 S> */ B(Mov), R(0), R(1),
+  /*  315 S> */ B(Mov), R(1), R(0),
+  /*  324 S> */ B(Mov), R(0), R(1),
+  /*  331 S> */ B(Mov), R(1), R(0),
+  /*  340 S> */ B(Mov), R(0), R(1),
+  /*  347 S> */ B(Mov), R(1), R(0),
+  /*  356 S> */ B(Mov), R(0), R(1),
+  /*  363 S> */ B(Mov), R(1), R(0),
+  /*  372 S> */ B(Mov), R(0), R(1),
+  /*  379 S> */ B(Mov), R(1), R(0),
+  /*  388 S> */ B(Mov), R(0), R(1),
+  /*  395 S> */ B(Mov), R(1), R(0),
+  /*  404 S> */ B(Mov), R(0), R(1),
+  /*  411 S> */ B(Mov), R(1), R(0),
+  /*  420 S> */ B(Mov), R(0), R(1),
+  /*  427 S> */ B(Mov), R(1), R(0),
+  /*  436 S> */ B(Mov), R(0), R(1),
+  /*  443 S> */ B(Mov), R(1), R(0),
+  /*  452 S> */ B(Mov), R(0), R(1),
+  /*  459 S> */ B(Mov), R(1), R(0),
+  /*  468 S> */ B(Mov), R(0), R(1),
+  /*  475 S> */ B(Mov), R(1), R(0),
+  /*  484 S> */ B(Mov), R(0), R(1),
+  /*  491 S> */ B(Mov), R(1), R(0),
+  /*  500 S> */ B(Mov), R(0), R(1),
+  /*  507 S> */ B(Mov), R(1), R(0),
+  /*  516 S> */ B(Mov), R(0), R(1),
+  /*  523 S> */ B(Mov), R(1), R(0),
+  /*  532 S> */ B(Mov), R(0), R(1),
+  /*  539 S> */ B(Mov), R(1), R(0),
+  /*  548 S> */ B(Mov), R(0), R(1),
+  /*  555 S> */ B(Mov), R(1), R(0),
+  /*  564 S> */ B(Mov), R(0), R(1),
+  /*  571 S> */ B(Mov), R(1), R(0),
+  /*  580 S> */ B(Mov), R(0), R(1),
+  /*  587 S> */ B(Mov), R(1), R(0),
+  /*  596 S> */ B(Mov), R(0), R(1),
+  /*  603 S> */ B(Mov), R(1), R(0),
+  /*  612 S> */ B(Mov), R(0), R(1),
+  /*  619 S> */ B(Mov), R(1), R(0),
+  /*  628 S> */ B(Mov), R(0), R(1),
+  /*  635 S> */ B(Mov), R(1), R(0),
+  /*  644 S> */ B(Mov), R(0), R(1),
+  /*  651 S> */ B(Mov), R(1), R(0),
+  /*  660 S> */ B(Mov), R(0), R(1),
+  /*  667 S> */ B(Mov), R(1), R(0),
+  /*  676 S> */ B(Mov), R(0), R(1),
+  /*  683 S> */ B(Mov), R(1), R(0),
+  /*  692 S> */ B(Mov), R(0), R(1),
+  /*  699 S> */ B(Mov), R(1), R(0),
+  /*  708 S> */ B(Mov), R(0), R(1),
+  /*  715 S> */ B(Mov), R(1), R(0),
+  /*  724 S> */ B(Mov), R(0), R(1),
+  /*  731 S> */ B(Mov), R(1), R(0),
+  /*  740 S> */ B(Mov), R(0), R(1),
+  /*  747 S> */ B(Mov), R(1), R(0),
+  /*  756 S> */ B(Mov), R(0), R(1),
+  /*  763 S> */ B(Mov), R(1), R(0),
+  /*  772 S> */ B(Mov), R(0), R(1),
+  /*  779 S> */ B(Mov), R(1), R(0),
+  /*  788 S> */ B(Mov), R(0), R(1),
+  /*  795 S> */ B(Mov), R(1), R(0),
+  /*  804 S> */ B(Mov), R(0), R(1),
+  /*  811 S> */ B(Mov), R(1), R(0),
+  /*  820 S> */ B(Mov), R(0), R(1),
+  /*  827 S> */ B(Mov), R(1), R(0),
+  /*  836 S> */ B(Mov), R(0), R(1),
+  /*  843 S> */ B(Mov), R(1), R(0),
+  /*  852 S> */ B(Mov), R(0), R(1),
+  /*  859 S> */ B(Mov), R(1), R(0),
+  /*  868 S> */ B(Mov), R(0), R(1),
+  /*  875 S> */ B(Mov), R(1), R(0),
+  /*  884 S> */ B(Mov), R(0), R(1),
+  /*  891 S> */ B(Mov), R(1), R(0),
+  /*  900 S> */ B(Mov), R(0), R(1),
+  /*  907 S> */ B(Mov), R(1), R(0),
+  /*  916 S> */ B(Mov), R(0), R(1),
+  /*  923 S> */ B(Mov), R(1), R(0),
+  /*  932 S> */ B(Mov), R(0), R(1),
+  /*  939 S> */ B(Mov), R(1), R(0),
+  /*  948 S> */ B(Mov), R(0), R(1),
+  /*  955 S> */ B(Mov), R(1), R(0),
+  /*  964 S> */ B(Mov), R(0), R(1),
+  /*  971 S> */ B(Mov), R(1), R(0),
+  /*  980 S> */ B(Mov), R(0), R(1),
+  /*  987 S> */ B(Mov), R(1), R(0),
+  /*  996 S> */ B(Mov), R(0), R(1),
+  /* 1003 S> */ B(Mov), R(1), R(0),
+  /* 1012 S> */ B(Mov), R(0), R(1),
+  /* 1019 S> */ B(Mov), R(1), R(0),
+  /* 1028 S> */ B(Mov), R(0), R(1),
+  /* 1035 S> */ B(Mov), R(1), R(0),
+  /* 1044 S> */ B(Mov), R(0), R(1),
+  /* 1051 S> */ B(Mov), R(1), R(0),
+  /* 1060 S> */ B(Mov), R(0), R(1),
+  /* 1067 S> */ B(Mov), R(1), R(0),
   /* 1076 S> */ B(Wide), B(LdaSmi), U16(200),
   /* 1112 S> */ B(Return),
   /* 1097 S> */ B(Wide), B(LdaSmi), U16(-200),
@@ -662,64 +653,48 @@
   }
   f(1, 1);
 "
-frame size: 1
+frame size: 0
 parameter count: 3
-bytecode array length: 107
+bytecode array length: 75
 bytecodes: [
   /*   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),
+  /*   21 S> */ B(Ldar), R(arg1),
+  /*   27 E> */ B(TestEqual), R(arg0),
                 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),
+  /*   49 S> */ B(Ldar), R(arg1),
+  /*   55 E> */ B(TestEqualStrict), R(arg0),
                 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),
+  /*   78 S> */ B(Ldar), R(arg1),
+  /*   84 E> */ B(TestLessThan), R(arg0),
                 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),
+  /*  105 S> */ B(Ldar), R(arg1),
+  /*  111 E> */ B(TestGreaterThan), R(arg0),
                 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),
+  /*  132 S> */ B(Ldar), R(arg1),
+  /*  138 E> */ B(TestLessThanOrEqual), R(arg0),
                 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),
+  /*  160 S> */ B(Ldar), R(arg1),
+  /*  166 E> */ B(TestGreaterThanOrEqual), R(arg0),
                 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),
+  /*  188 S> */ B(Ldar), R(arg1),
+  /*  194 E> */ B(TestIn), R(arg0),
                 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),
+  /*  216 S> */ B(Ldar), R(arg1),
+  /*  222 E> */ B(TestInstanceOf), R(arg0),
                 B(JumpIfFalse), U8(5),
   /*  238 S> */ B(LdaSmi), U8(1),
   /*  262 S> */ B(Return),
@@ -749,7 +724,7 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   25 S> */ B(LdaZero),
-  /*   25 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   30 S> */ B(JumpIfToBooleanFalse), U8(5),
   /*   43 S> */ B(LdaSmi), U8(20),
   /*   85 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden b/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
index f82e5f8..6ac81a6 100644
--- a/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/IntegerConstants.golden
@@ -34,7 +34,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(Wide), B(LdaSmi), U16(1234),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   48 S> */ B(Wide), B(LdaSmi), U16(5678),
   /*   61 S> */ B(Return),
 ]
@@ -53,7 +53,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(Wide), B(LdaSmi), U16(1234),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   48 S> */ B(Wide), B(LdaSmi), U16(1234),
   /*   61 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden b/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
index 84810b1..3bf0a4f 100644
--- a/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
+++ b/test/cctest/interpreter/bytecode_expectations/JumpsRequiringConstantWideOperands.golden
@@ -329,659 +329,653 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 1422
+bytecode array length: 1410
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   55 S> */ B(LdaConstant), U8(1),
-  /*   55 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   68 S> */ B(LdaConstant), U8(2),
-  /*   68 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   81 S> */ B(LdaConstant), U8(3),
-  /*   81 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   94 S> */ B(LdaConstant), U8(4),
-  /*   94 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  107 S> */ B(LdaConstant), U8(5),
-  /*  107 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  120 S> */ B(LdaConstant), U8(6),
-  /*  120 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  133 S> */ B(LdaConstant), U8(7),
-  /*  133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  146 S> */ B(LdaConstant), U8(8),
-  /*  146 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  159 S> */ B(LdaConstant), U8(9),
-  /*  159 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  172 S> */ B(LdaConstant), U8(10),
-  /*  172 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  185 S> */ B(LdaConstant), U8(11),
-  /*  185 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  198 S> */ B(LdaConstant), U8(12),
-  /*  198 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  211 S> */ B(LdaConstant), U8(13),
-  /*  211 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  224 S> */ B(LdaConstant), U8(14),
-  /*  224 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  237 S> */ B(LdaConstant), U8(15),
-  /*  237 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  250 S> */ B(LdaConstant), U8(16),
-  /*  250 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  263 S> */ B(LdaConstant), U8(17),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  276 S> */ B(LdaConstant), U8(18),
-  /*  276 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  289 S> */ B(LdaConstant), U8(19),
-  /*  289 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  302 S> */ B(LdaConstant), U8(20),
-  /*  302 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  315 S> */ B(LdaConstant), U8(21),
-  /*  315 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  328 S> */ B(LdaConstant), U8(22),
-  /*  328 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  341 S> */ B(LdaConstant), U8(23),
-  /*  341 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  354 S> */ B(LdaConstant), U8(24),
-  /*  354 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  367 S> */ B(LdaConstant), U8(25),
-  /*  367 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  380 S> */ B(LdaConstant), U8(26),
-  /*  380 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  393 S> */ B(LdaConstant), U8(27),
-  /*  393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  406 S> */ B(LdaConstant), U8(28),
-  /*  406 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  419 S> */ B(LdaConstant), U8(29),
-  /*  419 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  432 S> */ B(LdaConstant), U8(30),
-  /*  432 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  445 S> */ B(LdaConstant), U8(31),
-  /*  445 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  458 S> */ B(LdaConstant), U8(32),
-  /*  458 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  471 S> */ B(LdaConstant), U8(33),
-  /*  471 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  484 S> */ B(LdaConstant), U8(34),
-  /*  484 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  497 S> */ B(LdaConstant), U8(35),
-  /*  497 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  510 S> */ B(LdaConstant), U8(36),
-  /*  510 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  523 S> */ B(LdaConstant), U8(37),
-  /*  523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  536 S> */ B(LdaConstant), U8(38),
-  /*  536 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  549 S> */ B(LdaConstant), U8(39),
-  /*  549 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  562 S> */ B(LdaConstant), U8(40),
-  /*  562 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  575 S> */ B(LdaConstant), U8(41),
-  /*  575 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  588 S> */ B(LdaConstant), U8(42),
-  /*  588 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  601 S> */ B(LdaConstant), U8(43),
-  /*  601 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  614 S> */ B(LdaConstant), U8(44),
-  /*  614 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  627 S> */ B(LdaConstant), U8(45),
-  /*  627 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  640 S> */ B(LdaConstant), U8(46),
-  /*  640 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  653 S> */ B(LdaConstant), U8(47),
-  /*  653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  666 S> */ B(LdaConstant), U8(48),
-  /*  666 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  679 S> */ B(LdaConstant), U8(49),
-  /*  679 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  692 S> */ B(LdaConstant), U8(50),
-  /*  692 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  705 S> */ B(LdaConstant), U8(51),
-  /*  705 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  718 S> */ B(LdaConstant), U8(52),
-  /*  718 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  731 S> */ B(LdaConstant), U8(53),
-  /*  731 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  744 S> */ B(LdaConstant), U8(54),
-  /*  744 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  757 S> */ B(LdaConstant), U8(55),
-  /*  757 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  770 S> */ B(LdaConstant), U8(56),
-  /*  770 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  783 S> */ B(LdaConstant), U8(57),
-  /*  783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  796 S> */ B(LdaConstant), U8(58),
-  /*  796 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  809 S> */ B(LdaConstant), U8(59),
-  /*  809 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  822 S> */ B(LdaConstant), U8(60),
-  /*  822 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  835 S> */ B(LdaConstant), U8(61),
-  /*  835 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  848 S> */ B(LdaConstant), U8(62),
-  /*  848 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  861 S> */ B(LdaConstant), U8(63),
-  /*  861 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  874 S> */ B(LdaConstant), U8(64),
-  /*  874 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  887 S> */ B(LdaConstant), U8(65),
-  /*  887 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  900 S> */ B(LdaConstant), U8(66),
-  /*  900 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  913 S> */ B(LdaConstant), U8(67),
-  /*  913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  926 S> */ B(LdaConstant), U8(68),
-  /*  926 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  939 S> */ B(LdaConstant), U8(69),
-  /*  939 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  952 S> */ B(LdaConstant), U8(70),
-  /*  952 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  965 S> */ B(LdaConstant), U8(71),
-  /*  965 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  978 S> */ B(LdaConstant), U8(72),
-  /*  978 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  991 S> */ B(LdaConstant), U8(73),
-  /*  991 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1004 S> */ B(LdaConstant), U8(74),
-  /* 1004 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1017 S> */ B(LdaConstant), U8(75),
-  /* 1017 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1030 S> */ B(LdaConstant), U8(76),
-  /* 1030 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1043 S> */ B(LdaConstant), U8(77),
-  /* 1043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1056 S> */ B(LdaConstant), U8(78),
-  /* 1056 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1069 S> */ B(LdaConstant), U8(79),
-  /* 1069 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1082 S> */ B(LdaConstant), U8(80),
-  /* 1082 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1095 S> */ B(LdaConstant), U8(81),
-  /* 1095 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1108 S> */ B(LdaConstant), U8(82),
-  /* 1108 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1121 S> */ B(LdaConstant), U8(83),
-  /* 1121 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1134 S> */ B(LdaConstant), U8(84),
-  /* 1134 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1147 S> */ B(LdaConstant), U8(85),
-  /* 1147 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1160 S> */ B(LdaConstant), U8(86),
-  /* 1160 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1173 S> */ B(LdaConstant), U8(87),
-  /* 1173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1186 S> */ B(LdaConstant), U8(88),
-  /* 1186 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1199 S> */ B(LdaConstant), U8(89),
-  /* 1199 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1212 S> */ B(LdaConstant), U8(90),
-  /* 1212 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1225 S> */ B(LdaConstant), U8(91),
-  /* 1225 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1238 S> */ B(LdaConstant), U8(92),
-  /* 1238 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1251 S> */ B(LdaConstant), U8(93),
-  /* 1251 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1264 S> */ B(LdaConstant), U8(94),
-  /* 1264 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1277 S> */ B(LdaConstant), U8(95),
-  /* 1277 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1290 S> */ B(LdaConstant), U8(96),
-  /* 1290 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1303 S> */ B(LdaConstant), U8(97),
-  /* 1303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1316 S> */ B(LdaConstant), U8(98),
-  /* 1316 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1329 S> */ B(LdaConstant), U8(99),
-  /* 1329 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1342 S> */ B(LdaConstant), U8(100),
-  /* 1342 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1355 S> */ B(LdaConstant), U8(101),
-  /* 1355 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1368 S> */ B(LdaConstant), U8(102),
-  /* 1368 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1381 S> */ B(LdaConstant), U8(103),
-  /* 1381 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1394 S> */ B(LdaConstant), U8(104),
-  /* 1394 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1407 S> */ B(LdaConstant), U8(105),
-  /* 1407 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1420 S> */ B(LdaConstant), U8(106),
-  /* 1420 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1433 S> */ B(LdaConstant), U8(107),
-  /* 1433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1446 S> */ B(LdaConstant), U8(108),
-  /* 1446 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1459 S> */ B(LdaConstant), U8(109),
-  /* 1459 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1472 S> */ B(LdaConstant), U8(110),
-  /* 1472 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1485 S> */ B(LdaConstant), U8(111),
-  /* 1485 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1498 S> */ B(LdaConstant), U8(112),
-  /* 1498 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1511 S> */ B(LdaConstant), U8(113),
-  /* 1511 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1524 S> */ B(LdaConstant), U8(114),
-  /* 1524 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1537 S> */ B(LdaConstant), U8(115),
-  /* 1537 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1550 S> */ B(LdaConstant), U8(116),
-  /* 1550 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1563 S> */ B(LdaConstant), U8(117),
-  /* 1563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1576 S> */ B(LdaConstant), U8(118),
-  /* 1576 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1589 S> */ B(LdaConstant), U8(119),
-  /* 1589 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1602 S> */ B(LdaConstant), U8(120),
-  /* 1602 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1615 S> */ B(LdaConstant), U8(121),
-  /* 1615 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1628 S> */ B(LdaConstant), U8(122),
-  /* 1628 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1641 S> */ B(LdaConstant), U8(123),
-  /* 1641 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1654 S> */ B(LdaConstant), U8(124),
-  /* 1654 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1667 S> */ B(LdaConstant), U8(125),
-  /* 1667 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1680 S> */ B(LdaConstant), U8(126),
-  /* 1680 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1693 S> */ B(LdaConstant), U8(127),
-  /* 1693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1706 S> */ B(LdaConstant), U8(128),
-  /* 1706 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1719 S> */ B(LdaConstant), U8(129),
-  /* 1719 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1732 S> */ B(LdaConstant), U8(130),
-  /* 1732 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1745 S> */ B(LdaConstant), U8(131),
-  /* 1745 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1758 S> */ B(LdaConstant), U8(132),
-  /* 1758 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1771 S> */ B(LdaConstant), U8(133),
-  /* 1771 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1784 S> */ B(LdaConstant), U8(134),
-  /* 1784 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1797 S> */ B(LdaConstant), U8(135),
-  /* 1797 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1810 S> */ B(LdaConstant), U8(136),
-  /* 1810 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1823 S> */ B(LdaConstant), U8(137),
-  /* 1823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1836 S> */ B(LdaConstant), U8(138),
-  /* 1836 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1849 S> */ B(LdaConstant), U8(139),
-  /* 1849 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1862 S> */ B(LdaConstant), U8(140),
-  /* 1862 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1875 S> */ B(LdaConstant), U8(141),
-  /* 1875 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1888 S> */ B(LdaConstant), U8(142),
-  /* 1888 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1901 S> */ B(LdaConstant), U8(143),
-  /* 1901 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1914 S> */ B(LdaConstant), U8(144),
-  /* 1914 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1927 S> */ B(LdaConstant), U8(145),
-  /* 1927 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1940 S> */ B(LdaConstant), U8(146),
-  /* 1940 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1953 S> */ B(LdaConstant), U8(147),
-  /* 1953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1966 S> */ B(LdaConstant), U8(148),
-  /* 1966 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1979 S> */ B(LdaConstant), U8(149),
-  /* 1979 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1992 S> */ B(LdaConstant), U8(150),
-  /* 1992 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2005 S> */ B(LdaConstant), U8(151),
-  /* 2005 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2018 S> */ B(LdaConstant), U8(152),
-  /* 2018 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2031 S> */ B(LdaConstant), U8(153),
-  /* 2031 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2044 S> */ B(LdaConstant), U8(154),
-  /* 2044 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2057 S> */ B(LdaConstant), U8(155),
-  /* 2057 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2070 S> */ B(LdaConstant), U8(156),
-  /* 2070 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2083 S> */ B(LdaConstant), U8(157),
-  /* 2083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2096 S> */ B(LdaConstant), U8(158),
-  /* 2096 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2109 S> */ B(LdaConstant), U8(159),
-  /* 2109 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2122 S> */ B(LdaConstant), U8(160),
-  /* 2122 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2135 S> */ B(LdaConstant), U8(161),
-  /* 2135 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2148 S> */ B(LdaConstant), U8(162),
-  /* 2148 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2161 S> */ B(LdaConstant), U8(163),
-  /* 2161 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2174 S> */ B(LdaConstant), U8(164),
-  /* 2174 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2187 S> */ B(LdaConstant), U8(165),
-  /* 2187 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2200 S> */ B(LdaConstant), U8(166),
-  /* 2200 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2213 S> */ B(LdaConstant), U8(167),
-  /* 2213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2226 S> */ B(LdaConstant), U8(168),
-  /* 2226 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2239 S> */ B(LdaConstant), U8(169),
-  /* 2239 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2252 S> */ B(LdaConstant), U8(170),
-  /* 2252 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2265 S> */ B(LdaConstant), U8(171),
-  /* 2265 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2278 S> */ B(LdaConstant), U8(172),
-  /* 2278 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2291 S> */ B(LdaConstant), U8(173),
-  /* 2291 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2304 S> */ B(LdaConstant), U8(174),
-  /* 2304 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2317 S> */ B(LdaConstant), U8(175),
-  /* 2317 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2330 S> */ B(LdaConstant), U8(176),
-  /* 2330 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2343 S> */ B(LdaConstant), U8(177),
-  /* 2343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2356 S> */ B(LdaConstant), U8(178),
-  /* 2356 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2369 S> */ B(LdaConstant), U8(179),
-  /* 2369 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2382 S> */ B(LdaConstant), U8(180),
-  /* 2382 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2395 S> */ B(LdaConstant), U8(181),
-  /* 2395 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2408 S> */ B(LdaConstant), U8(182),
-  /* 2408 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2421 S> */ B(LdaConstant), U8(183),
-  /* 2421 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2434 S> */ B(LdaConstant), U8(184),
-  /* 2434 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2447 S> */ B(LdaConstant), U8(185),
-  /* 2447 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2460 S> */ B(LdaConstant), U8(186),
-  /* 2460 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2473 S> */ B(LdaConstant), U8(187),
-  /* 2473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2486 S> */ B(LdaConstant), U8(188),
-  /* 2486 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2499 S> */ B(LdaConstant), U8(189),
-  /* 2499 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2512 S> */ B(LdaConstant), U8(190),
-  /* 2512 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2525 S> */ B(LdaConstant), U8(191),
-  /* 2525 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2538 S> */ B(LdaConstant), U8(192),
-  /* 2538 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2551 S> */ B(LdaConstant), U8(193),
-  /* 2551 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2564 S> */ B(LdaConstant), U8(194),
-  /* 2564 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2577 S> */ B(LdaConstant), U8(195),
-  /* 2577 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2590 S> */ B(LdaConstant), U8(196),
-  /* 2590 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2603 S> */ B(LdaConstant), U8(197),
-  /* 2603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2616 S> */ B(LdaConstant), U8(198),
-  /* 2616 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2629 S> */ B(LdaConstant), U8(199),
-  /* 2629 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2642 S> */ B(LdaConstant), U8(200),
-  /* 2642 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2655 S> */ B(LdaConstant), U8(201),
-  /* 2655 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2668 S> */ B(LdaConstant), U8(202),
-  /* 2668 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2681 S> */ B(LdaConstant), U8(203),
-  /* 2681 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2694 S> */ B(LdaConstant), U8(204),
-  /* 2694 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2707 S> */ B(LdaConstant), U8(205),
-  /* 2707 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2720 S> */ B(LdaConstant), U8(206),
-  /* 2720 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2733 S> */ B(LdaConstant), U8(207),
-  /* 2733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2746 S> */ B(LdaConstant), U8(208),
-  /* 2746 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2759 S> */ B(LdaConstant), U8(209),
-  /* 2759 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2772 S> */ B(LdaConstant), U8(210),
-  /* 2772 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2785 S> */ B(LdaConstant), U8(211),
-  /* 2785 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2798 S> */ B(LdaConstant), U8(212),
-  /* 2798 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2811 S> */ B(LdaConstant), U8(213),
-  /* 2811 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2824 S> */ B(LdaConstant), U8(214),
-  /* 2824 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2837 S> */ B(LdaConstant), U8(215),
-  /* 2837 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2850 S> */ B(LdaConstant), U8(216),
-  /* 2850 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2863 S> */ B(LdaConstant), U8(217),
-  /* 2863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2876 S> */ B(LdaConstant), U8(218),
-  /* 2876 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2889 S> */ B(LdaConstant), U8(219),
-  /* 2889 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2902 S> */ B(LdaConstant), U8(220),
-  /* 2902 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2915 S> */ B(LdaConstant), U8(221),
-  /* 2915 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2928 S> */ B(LdaConstant), U8(222),
-  /* 2928 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2941 S> */ B(LdaConstant), U8(223),
-  /* 2941 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2954 S> */ B(LdaConstant), U8(224),
-  /* 2954 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2967 S> */ B(LdaConstant), U8(225),
-  /* 2967 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2980 S> */ B(LdaConstant), U8(226),
-  /* 2980 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2993 S> */ B(LdaConstant), U8(227),
-  /* 2993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3006 S> */ B(LdaConstant), U8(228),
-  /* 3006 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3019 S> */ B(LdaConstant), U8(229),
-  /* 3019 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3032 S> */ B(LdaConstant), U8(230),
-  /* 3032 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3045 S> */ B(LdaConstant), U8(231),
-  /* 3045 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3058 S> */ B(LdaConstant), U8(232),
-  /* 3058 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3071 S> */ B(LdaConstant), U8(233),
-  /* 3071 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3084 S> */ B(LdaConstant), U8(234),
-  /* 3084 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3097 S> */ B(LdaConstant), U8(235),
-  /* 3097 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3110 S> */ B(LdaConstant), U8(236),
-  /* 3110 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3123 S> */ B(LdaConstant), U8(237),
-  /* 3123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3136 S> */ B(LdaConstant), U8(238),
-  /* 3136 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3149 S> */ B(LdaConstant), U8(239),
-  /* 3149 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3162 S> */ B(LdaConstant), U8(240),
-  /* 3162 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3175 S> */ B(LdaConstant), U8(241),
-  /* 3175 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3188 S> */ B(LdaConstant), U8(242),
-  /* 3188 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3201 S> */ B(LdaConstant), U8(243),
-  /* 3201 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3214 S> */ B(LdaConstant), U8(244),
-  /* 3214 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3227 S> */ B(LdaConstant), U8(245),
-  /* 3227 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3240 S> */ B(LdaConstant), U8(246),
-  /* 3240 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3253 S> */ B(LdaConstant), U8(247),
-  /* 3253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3266 S> */ B(LdaConstant), U8(248),
-  /* 3266 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3279 S> */ B(LdaConstant), U8(249),
-  /* 3279 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3292 S> */ B(LdaConstant), U8(250),
-  /* 3292 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3305 S> */ B(LdaConstant), U8(251),
-  /* 3305 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3318 S> */ B(LdaConstant), U8(252),
-  /* 3318 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3331 S> */ B(LdaConstant), U8(253),
-  /* 3331 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3344 S> */ B(LdaConstant), U8(254),
-  /* 3344 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3357 S> */ B(LdaConstant), U8(255),
-  /* 3357 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3370 S> */ B(Wide), B(LdaConstant), U16(256),
-  /* 3370 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3383 S> */ B(Wide), B(LdaConstant), U16(257),
-  /* 3383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3396 S> */ B(Wide), B(LdaConstant), U16(258),
-  /* 3396 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3409 S> */ B(Wide), B(LdaConstant), U16(259),
-  /* 3409 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3422 S> */ B(Wide), B(LdaConstant), U16(260),
-  /* 3422 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3435 S> */ B(Wide), B(LdaConstant), U16(261),
-  /* 3435 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3448 S> */ B(Wide), B(LdaConstant), U16(262),
-  /* 3448 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3461 S> */ B(Wide), B(LdaConstant), U16(263),
-  /* 3461 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3474 S> */ B(Wide), B(LdaConstant), U16(264),
-  /* 3474 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3487 S> */ B(Wide), B(LdaConstant), U16(265),
-  /* 3487 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3500 S> */ B(Wide), B(LdaConstant), U16(266),
-  /* 3500 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3513 S> */ B(Wide), B(LdaConstant), U16(267),
-  /* 3513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3526 S> */ B(Wide), B(LdaConstant), U16(268),
-  /* 3526 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3539 S> */ B(Wide), B(LdaConstant), U16(269),
-  /* 3539 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3552 S> */ B(Wide), B(LdaConstant), U16(270),
-  /* 3552 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3565 S> */ B(Wide), B(LdaConstant), U16(271),
-  /* 3565 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3578 S> */ B(Wide), B(LdaConstant), U16(272),
-  /* 3578 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3591 S> */ B(Wide), B(LdaConstant), U16(273),
-  /* 3591 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3604 S> */ B(Wide), B(LdaConstant), U16(274),
-  /* 3604 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3617 S> */ B(Wide), B(LdaConstant), U16(275),
-  /* 3617 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3630 S> */ B(Wide), B(LdaConstant), U16(276),
-  /* 3630 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3643 S> */ B(Wide), B(LdaConstant), U16(277),
-  /* 3643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3656 S> */ B(Wide), B(LdaConstant), U16(278),
-  /* 3656 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3669 S> */ B(Wide), B(LdaConstant), U16(279),
-  /* 3669 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3682 S> */ B(Wide), B(LdaConstant), U16(280),
-  /* 3682 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3695 S> */ B(Wide), B(LdaConstant), U16(281),
-  /* 3695 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3708 S> */ B(Wide), B(LdaConstant), U16(282),
-  /* 3708 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3721 S> */ B(Wide), B(LdaConstant), U16(283),
-  /* 3721 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3734 S> */ B(Wide), B(LdaConstant), U16(284),
-  /* 3734 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3747 S> */ B(Wide), B(LdaConstant), U16(285),
-  /* 3747 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3760 S> */ B(Wide), B(LdaConstant), U16(286),
-  /* 3760 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3773 S> */ B(Wide), B(LdaConstant), U16(287),
-  /* 3773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3786 S> */ B(Wide), B(LdaConstant), U16(288),
-  /* 3786 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3799 S> */ B(Wide), B(LdaConstant), U16(289),
-  /* 3799 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3812 S> */ B(Wide), B(LdaConstant), U16(290),
-  /* 3812 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3825 S> */ B(Wide), B(LdaConstant), U16(291),
-  /* 3825 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3838 S> */ B(Wide), B(LdaConstant), U16(292),
-  /* 3838 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3851 S> */ B(Wide), B(LdaConstant), U16(293),
-  /* 3851 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3864 S> */ B(Wide), B(LdaConstant), U16(294),
-  /* 3864 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3877 S> */ B(Wide), B(LdaConstant), U16(295),
-  /* 3877 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3890 S> */ B(Wide), B(LdaConstant), U16(296),
-  /* 3890 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3903 S> */ B(Wide), B(LdaConstant), U16(297),
-  /* 3903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3916 S> */ B(Wide), B(LdaConstant), U16(298),
-  /* 3916 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3929 S> */ B(Wide), B(LdaConstant), U16(299),
-  /* 3929 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3942 S> */ B(Wide), B(LdaConstant), U16(300),
-  /* 3942 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3955 S> */ B(Wide), B(LdaConstant), U16(301),
-  /* 3955 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3968 S> */ B(Wide), B(LdaConstant), U16(302),
-  /* 3968 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3981 S> */ B(Wide), B(LdaConstant), U16(303),
-  /* 3981 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3994 S> */ B(Wide), B(LdaConstant), U16(304),
-  /* 3994 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4007 S> */ B(Wide), B(LdaConstant), U16(305),
-  /* 4007 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4020 S> */ B(Wide), B(LdaConstant), U16(306),
-  /* 4020 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4033 S> */ B(Wide), B(LdaConstant), U16(307),
-  /* 4033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4046 S> */ B(Wide), B(LdaConstant), U16(308),
-  /* 4046 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4059 S> */ B(Wide), B(LdaConstant), U16(309),
-  /* 4059 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4072 S> */ B(Wide), B(LdaConstant), U16(310),
-  /* 4072 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 4085 S> */ B(Wide), B(LdaConstant), U16(311),
-  /* 4085 E> */ B(Star), R(0),
+                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),
+                B(Star), R(1),
+  /* 4108 S> */ B(LdaSmi), U8(3),
+  /* 4108 E> */ B(TestLessThan), R(1),
+                B(Wide), B(JumpIfFalse), U16(38),
   /* 4090 E> */ B(StackCheck),
-  /* 4122 S> */ B(Ldar), R(1),
-                B(Star), R(2),
-                B(LdaSmi), U8(1),
-  /* 4128 E> */ B(TestEqual), R(2),
+  /* 4122 S> */ B(LdaSmi), U8(1),
+  /* 4128 E> */ B(TestEqual), R(1),
                 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),
+  /* 4134 S> */ B(Wide), B(Jump), U16(15),
+  /* 4146 S> */ B(LdaSmi), U8(2),
+  /* 4152 E> */ B(TestEqual), R(1),
                 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),
+                B(Star), R(1),
+                B(Jump), U8(-41),
   /* 4167 S> */ B(LdaSmi), U8(3),
   /* 4177 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/LetVariable.golden b/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
index 3ac793a..e54769c 100644
--- a/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LetVariable.golden
@@ -19,7 +19,7 @@
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(LdaUndefined),
   /*   46 S> */ B(Return),
 ]
@@ -40,7 +40,7 @@
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
@@ -59,21 +59,21 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 27
+bytecode array length: 28
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   45 S> */ B(LdaSmi), U8(20),
-  /*   45 E> */ B(Star), R(1),
+                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),
+  /*   45 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Mov), R(1), R(0),
+                B(Ldar), R(0),
+                B(LdaUndefined),
   /*   52 S> */ B(Return),
 ]
 constant pool: [
@@ -88,22 +88,21 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 31
+bytecode array length: 30
 bytecodes: [
                 B(LdaTheHole),
                 B(Star), R(0),
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(10),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(LdaSmi), U8(20),
-  /*   48 E> */ B(Star), R(1),
+                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),
+  /*   48 E> */ B(CallRuntime), U16(Runtime::kThrowReferenceError), R(2), U8(1),
+                B(Mov), R(1), R(0),
                 B(LdaUndefined),
   /*   54 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden b/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
index 591fe88..4725033 100644
--- a/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LetVariableContextSlot.golden
@@ -80,8 +80,8 @@
                 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(Star), R(2),
+  /*   45 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(1),
                 B(Star), R(3),
@@ -117,8 +117,8 @@
   /*   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(Star), R(2),
+  /*   48 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(1),
                 B(Star), R(3),
diff --git a/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden b/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
index 7fb831b..dd9f714 100644
--- a/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LoadGlobal.golden
@@ -16,14 +16,13 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 4
 bytecodes: [
   /*   21 E> */ B(StackCheck),
-  /*   26 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   26 S> */ B(LdaGlobal), U8(1),
   /*   36 S> */ B(Return),
 ]
 constant pool: [
-  "a",
 ]
 handlers: [
 ]
@@ -36,14 +35,13 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 4
 bytecodes: [
   /*   27 E> */ B(StackCheck),
-  /*   32 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   32 S> */ B(LdaGlobal), U8(1),
   /*   42 S> */ B(Return),
 ]
 constant pool: [
-  "t",
 ]
 handlers: [
 ]
@@ -56,14 +54,13 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 4
 bytecodes: [
   /*   17 E> */ B(StackCheck),
-  /*   22 S> */ B(LdaGlobal), U8(0), U8(1),
+  /*   22 S> */ B(LdaGlobal), U8(1),
   /*   32 S> */ B(Return),
 ]
 constant pool: [
-  "a",
 ]
 handlers: [
 ]
@@ -204,401 +201,272 @@
   }
   f({name: 1});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 1032
+bytecode array length: 646
 bytecodes: [
   /*   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),
+  /*   25 S> */ B(Nop),
+  /*   26 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
+  /*   35 S> */ B(Nop),
+  /*   36 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
+  /*   45 S> */ B(Nop),
+  /*   46 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
+  /*   55 S> */ B(Nop),
+  /*   56 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
+  /*   65 S> */ B(Nop),
+  /*   66 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
+  /*   75 S> */ B(Nop),
+  /*   76 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
+  /*   85 S> */ B(Nop),
+  /*   86 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
+  /*   95 S> */ B(Nop),
+  /*   96 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
+  /*  105 S> */ B(Nop),
+  /*  106 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
+  /*  115 S> */ B(Nop),
+  /*  116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
+  /*  125 S> */ B(Nop),
+  /*  126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
+  /*  135 S> */ B(Nop),
+  /*  136 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
+  /*  145 S> */ B(Nop),
+  /*  146 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
+  /*  155 S> */ B(Nop),
+  /*  156 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
+  /*  165 S> */ B(Nop),
+  /*  166 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
+  /*  175 S> */ B(Nop),
+  /*  176 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
+  /*  185 S> */ B(Nop),
+  /*  186 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
+  /*  195 S> */ B(Nop),
+  /*  196 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
+  /*  205 S> */ B(Nop),
+  /*  206 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
+  /*  215 S> */ B(Nop),
+  /*  216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
+  /*  225 S> */ B(Nop),
+  /*  226 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
+  /*  235 S> */ B(Nop),
+  /*  236 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
+  /*  245 S> */ B(Nop),
+  /*  246 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
+  /*  255 S> */ B(Nop),
+  /*  256 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
+  /*  265 S> */ B(Nop),
+  /*  266 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
+  /*  275 S> */ B(Nop),
+  /*  276 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
+  /*  285 S> */ B(Nop),
+  /*  286 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
+  /*  295 S> */ B(Nop),
+  /*  296 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
+  /*  305 S> */ B(Nop),
+  /*  306 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
+  /*  315 S> */ B(Nop),
+  /*  316 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
+  /*  325 S> */ B(Nop),
+  /*  326 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
+  /*  335 S> */ B(Nop),
+  /*  336 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
+  /*  345 S> */ B(Nop),
+  /*  346 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
+  /*  355 S> */ B(Nop),
+  /*  356 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
+  /*  365 S> */ B(Nop),
+  /*  366 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
+  /*  375 S> */ B(Nop),
+  /*  376 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
+  /*  385 S> */ B(Nop),
+  /*  386 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
+  /*  395 S> */ B(Nop),
+  /*  396 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
+  /*  405 S> */ B(Nop),
+  /*  406 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
+  /*  415 S> */ B(Nop),
+  /*  416 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
+  /*  425 S> */ B(Nop),
+  /*  426 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
+  /*  435 S> */ B(Nop),
+  /*  436 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
+  /*  445 S> */ B(Nop),
+  /*  446 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
+  /*  455 S> */ B(Nop),
+  /*  456 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
+  /*  465 S> */ B(Nop),
+  /*  466 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
+  /*  475 S> */ B(Nop),
+  /*  476 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
+  /*  485 S> */ B(Nop),
+  /*  486 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
+  /*  495 S> */ B(Nop),
+  /*  496 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
+  /*  505 S> */ B(Nop),
+  /*  506 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
+  /*  515 S> */ B(Nop),
+  /*  516 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
+  /*  525 S> */ B(Nop),
+  /*  526 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
+  /*  535 S> */ B(Nop),
+  /*  536 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
+  /*  545 S> */ B(Nop),
+  /*  546 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
+  /*  555 S> */ B(Nop),
+  /*  556 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
+  /*  565 S> */ B(Nop),
+  /*  566 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
+  /*  575 S> */ B(Nop),
+  /*  576 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
+  /*  585 S> */ B(Nop),
+  /*  586 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
+  /*  595 S> */ B(Nop),
+  /*  596 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
+  /*  605 S> */ B(Nop),
+  /*  606 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
+  /*  615 S> */ B(Nop),
+  /*  616 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
+  /*  625 S> */ B(Nop),
+  /*  626 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
+  /*  635 S> */ B(Nop),
+  /*  636 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
+  /*  645 S> */ B(Nop),
+  /*  646 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
+  /*  655 S> */ B(Nop),
+  /*  656 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
+  /*  665 S> */ B(Nop),
+  /*  666 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
+  /*  675 S> */ B(Nop),
+  /*  676 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
+  /*  685 S> */ B(Nop),
+  /*  686 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
+  /*  695 S> */ B(Nop),
+  /*  696 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
+  /*  705 S> */ B(Nop),
+  /*  706 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
+  /*  715 S> */ B(Nop),
+  /*  716 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
+  /*  725 S> */ B(Nop),
+  /*  726 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
+  /*  735 S> */ B(Nop),
+  /*  736 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
+  /*  745 S> */ B(Nop),
+  /*  746 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
+  /*  755 S> */ B(Nop),
+  /*  756 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
+  /*  765 S> */ B(Nop),
+  /*  766 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
+  /*  775 S> */ B(Nop),
+  /*  776 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
+  /*  785 S> */ B(Nop),
+  /*  786 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
+  /*  795 S> */ B(Nop),
+  /*  796 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
+  /*  805 S> */ B(Nop),
+  /*  806 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
+  /*  815 S> */ B(Nop),
+  /*  816 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
+  /*  825 S> */ B(Nop),
+  /*  826 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
+  /*  835 S> */ B(Nop),
+  /*  836 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
+  /*  845 S> */ B(Nop),
+  /*  846 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
+  /*  855 S> */ B(Nop),
+  /*  856 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
+  /*  865 S> */ B(Nop),
+  /*  866 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
+  /*  875 S> */ B(Nop),
+  /*  876 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
+  /*  885 S> */ B(Nop),
+  /*  886 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
+  /*  895 S> */ B(Nop),
+  /*  896 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
+  /*  905 S> */ B(Nop),
+  /*  906 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
+  /*  915 S> */ B(Nop),
+  /*  916 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
+  /*  925 S> */ B(Nop),
+  /*  926 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
+  /*  935 S> */ B(Nop),
+  /*  936 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
+  /*  945 S> */ B(Nop),
+  /*  946 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
+  /*  955 S> */ B(Nop),
+  /*  956 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
+  /*  965 S> */ B(Nop),
+  /*  966 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
+  /*  975 S> */ B(Nop),
+  /*  976 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
+  /*  985 S> */ B(Nop),
+  /*  986 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
+  /*  995 S> */ B(Nop),
+  /*  996 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
+  /* 1005 S> */ B(Nop),
+  /* 1006 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
+  /* 1015 S> */ B(Nop),
+  /* 1016 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
+  /* 1025 S> */ B(Nop),
+  /* 1026 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
+  /* 1035 S> */ B(Nop),
+  /* 1036 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
+  /* 1045 S> */ B(Nop),
+  /* 1046 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
+  /* 1055 S> */ B(Nop),
+  /* 1056 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
+  /* 1065 S> */ B(Nop),
+  /* 1066 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
+  /* 1075 S> */ B(Nop),
+  /* 1076 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
+  /* 1085 S> */ B(Nop),
+  /* 1086 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
+  /* 1095 S> */ B(Nop),
+  /* 1096 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
+  /* 1105 S> */ B(Nop),
+  /* 1106 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
+  /* 1115 S> */ B(Nop),
+  /* 1116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
+  /* 1125 S> */ B(Nop),
+  /* 1126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
+  /* 1135 S> */ B(Nop),
+  /* 1136 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
+  /* 1145 S> */ B(Nop),
+  /* 1146 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
+  /* 1155 S> */ B(Nop),
+  /* 1156 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
+  /* 1165 S> */ B(Nop),
+  /* 1166 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
+  /* 1175 S> */ B(Nop),
+  /* 1176 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
+  /* 1185 S> */ B(Nop),
+  /* 1186 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
+  /* 1195 S> */ B(Nop),
+  /* 1196 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
+  /* 1205 S> */ B(Nop),
+  /* 1206 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
+  /* 1215 S> */ B(Nop),
+  /* 1216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
+  /* 1225 S> */ B(Nop),
+  /* 1226 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
+  /* 1235 S> */ B(Nop),
+  /* 1236 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
+  /* 1245 S> */ B(Nop),
+  /* 1246 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
+  /* 1255 S> */ B(Nop),
+  /* 1256 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
+  /* 1265 S> */ B(Nop),
+  /* 1266 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
+  /* 1275 S> */ B(Nop),
+  /* 1276 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
+  /* 1285 S> */ B(Nop),
+  /* 1286 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
+  /* 1295 S> */ B(Nop),
+  /* 1296 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
+  /* 1305 S> */ B(Wide), B(LdaGlobal), U16(257),
   /* 1315 S> */ B(Return),
 ]
 constant pool: [
   "name",
-  "a",
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden b/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
index fed8367..b8c8c5f 100644
--- a/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LogicalExpressions.golden
@@ -17,7 +17,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanTrue), U8(4),
                 B(LdaSmi), U8(3),
   /*   60 S> */ B(Return),
@@ -31,16 +31,15 @@
 snippet: "
   var x = 0; return (x == 1) || 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 15
+bytecode array length: 13
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+  /*   55 E> */ B(TestEqual), R(0),
                 B(JumpIfTrue), U8(4),
                 B(LdaSmi), U8(3),
   /*   67 S> */ B(Return),
@@ -60,7 +59,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanFalse), U8(4),
                 B(LdaSmi), U8(3),
   /*   60 S> */ B(Return),
@@ -74,16 +73,15 @@
 snippet: "
   var x = 0; return (x == 0) && 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 12
 bytecodes: [
   /*   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(Star), R(0),
+  /*   45 S> */ B(LdaZero),
+  /*   55 E> */ B(TestEqual), R(0),
                 B(JumpIfFalse), U8(4),
                 B(LdaSmi), U8(3),
   /*   67 S> */ B(Return),
@@ -103,7 +101,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanTrue), U8(4),
                 B(LdaSmi), U8(3),
   /*   68 S> */ B(Return),
@@ -123,15 +121,15 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(2),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   49 S> */ B(LdaSmi), U8(3),
-  /*   49 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   56 S> */ B(LdaSmi), U8(4),
-  /*   56 E> */ B(Star), R(2),
+                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(5),
+                B(Star), R(2),
                 B(LdaSmi), U8(3),
   /*   95 S> */ B(Return),
 ]
@@ -182,141 +180,141 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(2),
-  /*   53 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   60 S> */ B(LdaSmi), U8(3),
-  /*   60 E> */ B(Star), R(2),
+                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(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*   88 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*   98 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  105 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  115 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  122 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  132 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  139 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  149 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  156 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  166 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  173 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  183 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  190 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  200 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  207 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  217 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  224 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  234 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  241 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  251 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  258 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  268 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  275 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  285 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  292 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  302 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  309 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  319 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  326 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  336 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  343 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  353 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  360 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  370 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  377 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  387 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  394 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  404 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  411 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  421 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  428 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  438 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  445 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  455 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  462 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  472 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  479 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  489 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  496 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  506 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  513 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  523 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  530 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  540 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  547 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  557 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  564 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  574 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  581 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  591 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  598 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  608 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  615 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(3),
   /*  624 S> */ B(Return),
 ]
@@ -368,141 +366,141 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(2),
-  /*   53 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   60 S> */ B(LdaSmi), U8(3),
-  /*   60 E> */ B(Star), R(2),
+                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(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*   88 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*   98 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  105 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  115 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  122 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  132 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  139 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  149 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  156 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  166 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  173 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  183 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  190 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  200 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  207 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  217 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  224 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  234 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  241 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  251 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  258 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  268 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  275 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  285 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  292 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  302 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  309 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  319 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  326 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  336 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  343 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  353 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  360 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  370 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  377 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  387 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  394 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  404 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  411 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  421 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  428 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  438 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  445 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  455 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  462 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  472 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  479 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  489 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  496 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  506 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  513 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  523 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  530 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  540 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  547 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  557 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  564 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  574 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  581 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  591 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  598 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  608 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  615 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(3),
   /*  624 S> */ B(Return),
 ]
@@ -548,150 +546,148 @@
     a = 1, b = 2, 
     a = 1, b = 2, 3);
 "
-frame size: 4
+frame size: 3
 parameter count: 1
-bytecode array length: 282
+bytecode array length: 278
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(2),
-  /*   53 E> */ B(Star), R(1),
+                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(Star), R(2),
+  /*   63 S> */ B(LdaSmi), U8(3),
+  /*   73 E> */ B(TestGreaterThan), R(0),
                 B(JumpIfTrueConstant), U8(0),
                 B(LdaSmi), U8(1),
-  /*   87 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*   94 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  104 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  111 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  121 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  128 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  138 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  145 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  155 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  162 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  172 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  179 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  189 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  196 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  206 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  213 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  223 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  230 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  240 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  247 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  257 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  264 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  274 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  281 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  291 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  298 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  308 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  315 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  325 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  332 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  342 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  349 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  359 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  366 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  376 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  383 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  393 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  400 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  410 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  417 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  427 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  434 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  444 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  451 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  461 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  468 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  478 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  485 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  495 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  502 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  512 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  519 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  529 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  536 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  546 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  553 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  563 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  570 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  580 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  587 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  597 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  604 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  614 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  621 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(3),
   /*  630 S> */ B(Return),
 ]
@@ -737,150 +733,148 @@
     a = 1, b = 2, 
     a = 1, b = 2, 3);
 "
-frame size: 4
+frame size: 3
 parameter count: 1
-bytecode array length: 281
+bytecode array length: 277
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   53 S> */ B(LdaSmi), U8(2),
-  /*   53 E> */ B(Star), R(1),
+                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(Star), R(2),
+  /*   63 S> */ B(LdaSmi), U8(5),
+  /*   73 E> */ B(TestLessThan), R(0),
                 B(JumpIfFalseConstant), U8(0),
                 B(LdaSmi), U8(1),
-  /*   87 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*   94 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  104 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  111 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  121 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  128 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  138 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  145 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  155 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  162 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  172 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  179 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  189 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  196 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  206 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  213 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  223 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  230 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  240 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  247 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  257 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  264 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  274 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  281 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  291 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  298 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  308 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  315 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  325 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  332 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  342 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  349 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  359 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  366 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  376 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  383 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  393 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  400 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  410 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  417 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  427 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  434 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  444 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  451 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  461 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  468 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  478 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  485 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  495 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  502 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  512 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  519 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  529 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  536 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  546 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  553 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  563 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  570 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  580 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  587 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  597 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  604 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(1),
-  /*  614 E> */ B(Star), R(1),
+                B(Star), R(1),
                 B(LdaSmi), U8(2),
-  /*  621 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaSmi), U8(3),
   /*  630 S> */ B(Return),
 ]
@@ -934,7 +928,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanFalse), U8(4),
                 B(LdaSmi), U8(3),
                 B(JumpIfToBooleanTrue), U8(3),
diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
index 99a78be..0ce9f01 100644
--- a/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LookupSlot.golden
@@ -29,15 +29,15 @@
                 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(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
                 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),
@@ -74,15 +74,15 @@
                 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(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
                 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),
@@ -122,15 +122,15 @@
                 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(Mov), R(1), R(4),
+                B(Mov), R(3), R(5),
+                B(Mov), R(closure), R(6),
                 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),
diff --git a/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden b/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
index 2d493bc..a668d62 100644
--- a/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
+++ b/test/cctest/interpreter/bytecode_expectations/LookupSlotWideInEval.golden
@@ -283,517 +283,517 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   22 S> */ B(LdaConstant), U8(0),
-  /*   22 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   34 S> */ B(LdaConstant), U8(1),
-  /*   34 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(LdaConstant), U8(2),
-  /*   46 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaConstant), U8(3),
-  /*   58 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   70 S> */ B(LdaConstant), U8(4),
-  /*   70 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   82 S> */ B(LdaConstant), U8(5),
-  /*   82 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   94 S> */ B(LdaConstant), U8(6),
-  /*   94 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  106 S> */ B(LdaConstant), U8(7),
-  /*  106 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  118 S> */ B(LdaConstant), U8(8),
-  /*  118 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  130 S> */ B(LdaConstant), U8(9),
-  /*  130 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  142 S> */ B(LdaConstant), U8(10),
-  /*  142 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  154 S> */ B(LdaConstant), U8(11),
-  /*  154 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  166 S> */ B(LdaConstant), U8(12),
-  /*  166 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  178 S> */ B(LdaConstant), U8(13),
-  /*  178 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  190 S> */ B(LdaConstant), U8(14),
-  /*  190 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  202 S> */ B(LdaConstant), U8(15),
-  /*  202 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  214 S> */ B(LdaConstant), U8(16),
-  /*  214 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  226 S> */ B(LdaConstant), U8(17),
-  /*  226 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  238 S> */ B(LdaConstant), U8(18),
-  /*  238 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  250 S> */ B(LdaConstant), U8(19),
-  /*  250 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  262 S> */ B(LdaConstant), U8(20),
-  /*  262 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  274 S> */ B(LdaConstant), U8(21),
-  /*  274 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  286 S> */ B(LdaConstant), U8(22),
-  /*  286 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  298 S> */ B(LdaConstant), U8(23),
-  /*  298 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  310 S> */ B(LdaConstant), U8(24),
-  /*  310 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  322 S> */ B(LdaConstant), U8(25),
-  /*  322 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  334 S> */ B(LdaConstant), U8(26),
-  /*  334 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  346 S> */ B(LdaConstant), U8(27),
-  /*  346 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  358 S> */ B(LdaConstant), U8(28),
-  /*  358 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  370 S> */ B(LdaConstant), U8(29),
-  /*  370 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  382 S> */ B(LdaConstant), U8(30),
-  /*  382 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  394 S> */ B(LdaConstant), U8(31),
-  /*  394 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  406 S> */ B(LdaConstant), U8(32),
-  /*  406 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  418 S> */ B(LdaConstant), U8(33),
-  /*  418 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  430 S> */ B(LdaConstant), U8(34),
-  /*  430 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  442 S> */ B(LdaConstant), U8(35),
-  /*  442 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  454 S> */ B(LdaConstant), U8(36),
-  /*  454 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  466 S> */ B(LdaConstant), U8(37),
-  /*  466 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  478 S> */ B(LdaConstant), U8(38),
-  /*  478 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  490 S> */ B(LdaConstant), U8(39),
-  /*  490 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  502 S> */ B(LdaConstant), U8(40),
-  /*  502 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  514 S> */ B(LdaConstant), U8(41),
-  /*  514 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  526 S> */ B(LdaConstant), U8(42),
-  /*  526 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  538 S> */ B(LdaConstant), U8(43),
-  /*  538 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  550 S> */ B(LdaConstant), U8(44),
-  /*  550 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  562 S> */ B(LdaConstant), U8(45),
-  /*  562 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  574 S> */ B(LdaConstant), U8(46),
-  /*  574 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  586 S> */ B(LdaConstant), U8(47),
-  /*  586 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  598 S> */ B(LdaConstant), U8(48),
-  /*  598 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  610 S> */ B(LdaConstant), U8(49),
-  /*  610 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  622 S> */ B(LdaConstant), U8(50),
-  /*  622 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  634 S> */ B(LdaConstant), U8(51),
-  /*  634 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  646 S> */ B(LdaConstant), U8(52),
-  /*  646 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  658 S> */ B(LdaConstant), U8(53),
-  /*  658 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  670 S> */ B(LdaConstant), U8(54),
-  /*  670 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  682 S> */ B(LdaConstant), U8(55),
-  /*  682 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  694 S> */ B(LdaConstant), U8(56),
-  /*  694 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  706 S> */ B(LdaConstant), U8(57),
-  /*  706 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  718 S> */ B(LdaConstant), U8(58),
-  /*  718 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  730 S> */ B(LdaConstant), U8(59),
-  /*  730 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  742 S> */ B(LdaConstant), U8(60),
-  /*  742 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  754 S> */ B(LdaConstant), U8(61),
-  /*  754 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  766 S> */ B(LdaConstant), U8(62),
-  /*  766 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  778 S> */ B(LdaConstant), U8(63),
-  /*  778 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  790 S> */ B(LdaConstant), U8(64),
-  /*  790 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  802 S> */ B(LdaConstant), U8(65),
-  /*  802 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  814 S> */ B(LdaConstant), U8(66),
-  /*  814 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  826 S> */ B(LdaConstant), U8(67),
-  /*  826 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  838 S> */ B(LdaConstant), U8(68),
-  /*  838 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  850 S> */ B(LdaConstant), U8(69),
-  /*  850 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  862 S> */ B(LdaConstant), U8(70),
-  /*  862 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  874 S> */ B(LdaConstant), U8(71),
-  /*  874 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  886 S> */ B(LdaConstant), U8(72),
-  /*  886 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  898 S> */ B(LdaConstant), U8(73),
-  /*  898 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  910 S> */ B(LdaConstant), U8(74),
-  /*  910 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  922 S> */ B(LdaConstant), U8(75),
-  /*  922 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  934 S> */ B(LdaConstant), U8(76),
-  /*  934 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  946 S> */ B(LdaConstant), U8(77),
-  /*  946 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  958 S> */ B(LdaConstant), U8(78),
-  /*  958 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  970 S> */ B(LdaConstant), U8(79),
-  /*  970 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  982 S> */ B(LdaConstant), U8(80),
-  /*  982 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  994 S> */ B(LdaConstant), U8(81),
-  /*  994 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1006 S> */ B(LdaConstant), U8(82),
-  /* 1006 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1018 S> */ B(LdaConstant), U8(83),
-  /* 1018 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1030 S> */ B(LdaConstant), U8(84),
-  /* 1030 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1042 S> */ B(LdaConstant), U8(85),
-  /* 1042 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1054 S> */ B(LdaConstant), U8(86),
-  /* 1054 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1066 S> */ B(LdaConstant), U8(87),
-  /* 1066 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1078 S> */ B(LdaConstant), U8(88),
-  /* 1078 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1090 S> */ B(LdaConstant), U8(89),
-  /* 1090 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1102 S> */ B(LdaConstant), U8(90),
-  /* 1102 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1114 S> */ B(LdaConstant), U8(91),
-  /* 1114 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1126 S> */ B(LdaConstant), U8(92),
-  /* 1126 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1138 S> */ B(LdaConstant), U8(93),
-  /* 1138 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1150 S> */ B(LdaConstant), U8(94),
-  /* 1150 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1162 S> */ B(LdaConstant), U8(95),
-  /* 1162 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1174 S> */ B(LdaConstant), U8(96),
-  /* 1174 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1186 S> */ B(LdaConstant), U8(97),
-  /* 1186 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1198 S> */ B(LdaConstant), U8(98),
-  /* 1198 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1210 S> */ B(LdaConstant), U8(99),
-  /* 1210 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1222 S> */ B(LdaConstant), U8(100),
-  /* 1222 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1234 S> */ B(LdaConstant), U8(101),
-  /* 1234 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1246 S> */ B(LdaConstant), U8(102),
-  /* 1246 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1258 S> */ B(LdaConstant), U8(103),
-  /* 1258 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1270 S> */ B(LdaConstant), U8(104),
-  /* 1270 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1282 S> */ B(LdaConstant), U8(105),
-  /* 1282 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1294 S> */ B(LdaConstant), U8(106),
-  /* 1294 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1306 S> */ B(LdaConstant), U8(107),
-  /* 1306 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1318 S> */ B(LdaConstant), U8(108),
-  /* 1318 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1330 S> */ B(LdaConstant), U8(109),
-  /* 1330 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1342 S> */ B(LdaConstant), U8(110),
-  /* 1342 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1354 S> */ B(LdaConstant), U8(111),
-  /* 1354 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1366 S> */ B(LdaConstant), U8(112),
-  /* 1366 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1378 S> */ B(LdaConstant), U8(113),
-  /* 1378 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1390 S> */ B(LdaConstant), U8(114),
-  /* 1390 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1402 S> */ B(LdaConstant), U8(115),
-  /* 1402 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1414 S> */ B(LdaConstant), U8(116),
-  /* 1414 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1426 S> */ B(LdaConstant), U8(117),
-  /* 1426 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1438 S> */ B(LdaConstant), U8(118),
-  /* 1438 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1450 S> */ B(LdaConstant), U8(119),
-  /* 1450 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1462 S> */ B(LdaConstant), U8(120),
-  /* 1462 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1474 S> */ B(LdaConstant), U8(121),
-  /* 1474 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1486 S> */ B(LdaConstant), U8(122),
-  /* 1486 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1498 S> */ B(LdaConstant), U8(123),
-  /* 1498 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1510 S> */ B(LdaConstant), U8(124),
-  /* 1510 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1522 S> */ B(LdaConstant), U8(125),
-  /* 1522 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1534 S> */ B(LdaConstant), U8(126),
-  /* 1534 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1546 S> */ B(LdaConstant), U8(127),
-  /* 1546 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1558 S> */ B(LdaConstant), U8(128),
-  /* 1558 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1570 S> */ B(LdaConstant), U8(129),
-  /* 1570 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1582 S> */ B(LdaConstant), U8(130),
-  /* 1582 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1594 S> */ B(LdaConstant), U8(131),
-  /* 1594 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1606 S> */ B(LdaConstant), U8(132),
-  /* 1606 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1618 S> */ B(LdaConstant), U8(133),
-  /* 1618 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1630 S> */ B(LdaConstant), U8(134),
-  /* 1630 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1642 S> */ B(LdaConstant), U8(135),
-  /* 1642 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1654 S> */ B(LdaConstant), U8(136),
-  /* 1654 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1666 S> */ B(LdaConstant), U8(137),
-  /* 1666 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1678 S> */ B(LdaConstant), U8(138),
-  /* 1678 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1690 S> */ B(LdaConstant), U8(139),
-  /* 1690 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1702 S> */ B(LdaConstant), U8(140),
-  /* 1702 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1714 S> */ B(LdaConstant), U8(141),
-  /* 1714 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1726 S> */ B(LdaConstant), U8(142),
-  /* 1726 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1738 S> */ B(LdaConstant), U8(143),
-  /* 1738 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1750 S> */ B(LdaConstant), U8(144),
-  /* 1750 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1762 S> */ B(LdaConstant), U8(145),
-  /* 1762 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1774 S> */ B(LdaConstant), U8(146),
-  /* 1774 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1786 S> */ B(LdaConstant), U8(147),
-  /* 1786 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1798 S> */ B(LdaConstant), U8(148),
-  /* 1798 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1810 S> */ B(LdaConstant), U8(149),
-  /* 1810 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1822 S> */ B(LdaConstant), U8(150),
-  /* 1822 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1834 S> */ B(LdaConstant), U8(151),
-  /* 1834 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1846 S> */ B(LdaConstant), U8(152),
-  /* 1846 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1858 S> */ B(LdaConstant), U8(153),
-  /* 1858 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1870 S> */ B(LdaConstant), U8(154),
-  /* 1870 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1882 S> */ B(LdaConstant), U8(155),
-  /* 1882 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1894 S> */ B(LdaConstant), U8(156),
-  /* 1894 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1906 S> */ B(LdaConstant), U8(157),
-  /* 1906 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1918 S> */ B(LdaConstant), U8(158),
-  /* 1918 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1930 S> */ B(LdaConstant), U8(159),
-  /* 1930 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1942 S> */ B(LdaConstant), U8(160),
-  /* 1942 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1954 S> */ B(LdaConstant), U8(161),
-  /* 1954 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1966 S> */ B(LdaConstant), U8(162),
-  /* 1966 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1978 S> */ B(LdaConstant), U8(163),
-  /* 1978 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1990 S> */ B(LdaConstant), U8(164),
-  /* 1990 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2002 S> */ B(LdaConstant), U8(165),
-  /* 2002 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2014 S> */ B(LdaConstant), U8(166),
-  /* 2014 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2026 S> */ B(LdaConstant), U8(167),
-  /* 2026 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2038 S> */ B(LdaConstant), U8(168),
-  /* 2038 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2050 S> */ B(LdaConstant), U8(169),
-  /* 2050 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2062 S> */ B(LdaConstant), U8(170),
-  /* 2062 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2074 S> */ B(LdaConstant), U8(171),
-  /* 2074 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2086 S> */ B(LdaConstant), U8(172),
-  /* 2086 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2098 S> */ B(LdaConstant), U8(173),
-  /* 2098 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2110 S> */ B(LdaConstant), U8(174),
-  /* 2110 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2122 S> */ B(LdaConstant), U8(175),
-  /* 2122 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2134 S> */ B(LdaConstant), U8(176),
-  /* 2134 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2146 S> */ B(LdaConstant), U8(177),
-  /* 2146 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2158 S> */ B(LdaConstant), U8(178),
-  /* 2158 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2170 S> */ B(LdaConstant), U8(179),
-  /* 2170 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2182 S> */ B(LdaConstant), U8(180),
-  /* 2182 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2194 S> */ B(LdaConstant), U8(181),
-  /* 2194 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2206 S> */ B(LdaConstant), U8(182),
-  /* 2206 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2218 S> */ B(LdaConstant), U8(183),
-  /* 2218 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2230 S> */ B(LdaConstant), U8(184),
-  /* 2230 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2242 S> */ B(LdaConstant), U8(185),
-  /* 2242 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2254 S> */ B(LdaConstant), U8(186),
-  /* 2254 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2266 S> */ B(LdaConstant), U8(187),
-  /* 2266 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2278 S> */ B(LdaConstant), U8(188),
-  /* 2278 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2290 S> */ B(LdaConstant), U8(189),
-  /* 2290 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2302 S> */ B(LdaConstant), U8(190),
-  /* 2302 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2314 S> */ B(LdaConstant), U8(191),
-  /* 2314 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2326 S> */ B(LdaConstant), U8(192),
-  /* 2326 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2338 S> */ B(LdaConstant), U8(193),
-  /* 2338 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2350 S> */ B(LdaConstant), U8(194),
-  /* 2350 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2362 S> */ B(LdaConstant), U8(195),
-  /* 2362 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2374 S> */ B(LdaConstant), U8(196),
-  /* 2374 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2386 S> */ B(LdaConstant), U8(197),
-  /* 2386 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2398 S> */ B(LdaConstant), U8(198),
-  /* 2398 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2410 S> */ B(LdaConstant), U8(199),
-  /* 2410 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2422 S> */ B(LdaConstant), U8(200),
-  /* 2422 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2434 S> */ B(LdaConstant), U8(201),
-  /* 2434 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2446 S> */ B(LdaConstant), U8(202),
-  /* 2446 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2458 S> */ B(LdaConstant), U8(203),
-  /* 2458 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2470 S> */ B(LdaConstant), U8(204),
-  /* 2470 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2482 S> */ B(LdaConstant), U8(205),
-  /* 2482 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2494 S> */ B(LdaConstant), U8(206),
-  /* 2494 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2506 S> */ B(LdaConstant), U8(207),
-  /* 2506 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2518 S> */ B(LdaConstant), U8(208),
-  /* 2518 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2530 S> */ B(LdaConstant), U8(209),
-  /* 2530 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2542 S> */ B(LdaConstant), U8(210),
-  /* 2542 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2554 S> */ B(LdaConstant), U8(211),
-  /* 2554 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2566 S> */ B(LdaConstant), U8(212),
-  /* 2566 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2578 S> */ B(LdaConstant), U8(213),
-  /* 2578 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2590 S> */ B(LdaConstant), U8(214),
-  /* 2590 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2602 S> */ B(LdaConstant), U8(215),
-  /* 2602 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2614 S> */ B(LdaConstant), U8(216),
-  /* 2614 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2626 S> */ B(LdaConstant), U8(217),
-  /* 2626 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2638 S> */ B(LdaConstant), U8(218),
-  /* 2638 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2650 S> */ B(LdaConstant), U8(219),
-  /* 2650 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2662 S> */ B(LdaConstant), U8(220),
-  /* 2662 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2674 S> */ B(LdaConstant), U8(221),
-  /* 2674 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2686 S> */ B(LdaConstant), U8(222),
-  /* 2686 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2698 S> */ B(LdaConstant), U8(223),
-  /* 2698 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2710 S> */ B(LdaConstant), U8(224),
-  /* 2710 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2722 S> */ B(LdaConstant), U8(225),
-  /* 2722 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2734 S> */ B(LdaConstant), U8(226),
-  /* 2734 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2746 S> */ B(LdaConstant), U8(227),
-  /* 2746 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2758 S> */ B(LdaConstant), U8(228),
-  /* 2758 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2770 S> */ B(LdaConstant), U8(229),
-  /* 2770 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2782 S> */ B(LdaConstant), U8(230),
-  /* 2782 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2794 S> */ B(LdaConstant), U8(231),
-  /* 2794 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2806 S> */ B(LdaConstant), U8(232),
-  /* 2806 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2818 S> */ B(LdaConstant), U8(233),
-  /* 2818 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2830 S> */ B(LdaConstant), U8(234),
-  /* 2830 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2842 S> */ B(LdaConstant), U8(235),
-  /* 2842 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2854 S> */ B(LdaConstant), U8(236),
-  /* 2854 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2866 S> */ B(LdaConstant), U8(237),
-  /* 2866 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2878 S> */ B(LdaConstant), U8(238),
-  /* 2878 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2890 S> */ B(LdaConstant), U8(239),
-  /* 2890 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2902 S> */ B(LdaConstant), U8(240),
-  /* 2902 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2914 S> */ B(LdaConstant), U8(241),
-  /* 2914 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2926 S> */ B(LdaConstant), U8(242),
-  /* 2926 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2938 S> */ B(LdaConstant), U8(243),
-  /* 2938 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2950 S> */ B(LdaConstant), U8(244),
-  /* 2950 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2962 S> */ B(LdaConstant), U8(245),
-  /* 2962 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2974 S> */ B(LdaConstant), U8(246),
-  /* 2974 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2986 S> */ B(LdaConstant), U8(247),
-  /* 2986 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2998 S> */ B(LdaConstant), U8(248),
-  /* 2998 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3010 S> */ B(LdaConstant), U8(249),
-  /* 3010 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3022 S> */ B(LdaConstant), U8(250),
-  /* 3022 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3034 S> */ B(LdaConstant), U8(251),
-  /* 3034 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3046 S> */ B(LdaConstant), U8(252),
-  /* 3046 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3058 S> */ B(LdaConstant), U8(253),
-  /* 3058 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3070 S> */ B(LdaConstant), U8(254),
-  /* 3070 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3082 S> */ B(LdaConstant), U8(255),
-  /* 3082 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3086 S> */ B(Wide), B(LdaLookupSlot), U16(256),
   /* 3095 S> */ B(Return),
 ]
@@ -1334,517 +1334,517 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   22 S> */ B(LdaConstant), U8(0),
-  /*   22 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   34 S> */ B(LdaConstant), U8(1),
-  /*   34 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(LdaConstant), U8(2),
-  /*   46 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaConstant), U8(3),
-  /*   58 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   70 S> */ B(LdaConstant), U8(4),
-  /*   70 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   82 S> */ B(LdaConstant), U8(5),
-  /*   82 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   94 S> */ B(LdaConstant), U8(6),
-  /*   94 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  106 S> */ B(LdaConstant), U8(7),
-  /*  106 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  118 S> */ B(LdaConstant), U8(8),
-  /*  118 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  130 S> */ B(LdaConstant), U8(9),
-  /*  130 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  142 S> */ B(LdaConstant), U8(10),
-  /*  142 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  154 S> */ B(LdaConstant), U8(11),
-  /*  154 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  166 S> */ B(LdaConstant), U8(12),
-  /*  166 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  178 S> */ B(LdaConstant), U8(13),
-  /*  178 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  190 S> */ B(LdaConstant), U8(14),
-  /*  190 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  202 S> */ B(LdaConstant), U8(15),
-  /*  202 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  214 S> */ B(LdaConstant), U8(16),
-  /*  214 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  226 S> */ B(LdaConstant), U8(17),
-  /*  226 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  238 S> */ B(LdaConstant), U8(18),
-  /*  238 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  250 S> */ B(LdaConstant), U8(19),
-  /*  250 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  262 S> */ B(LdaConstant), U8(20),
-  /*  262 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  274 S> */ B(LdaConstant), U8(21),
-  /*  274 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  286 S> */ B(LdaConstant), U8(22),
-  /*  286 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  298 S> */ B(LdaConstant), U8(23),
-  /*  298 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  310 S> */ B(LdaConstant), U8(24),
-  /*  310 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  322 S> */ B(LdaConstant), U8(25),
-  /*  322 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  334 S> */ B(LdaConstant), U8(26),
-  /*  334 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  346 S> */ B(LdaConstant), U8(27),
-  /*  346 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  358 S> */ B(LdaConstant), U8(28),
-  /*  358 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  370 S> */ B(LdaConstant), U8(29),
-  /*  370 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  382 S> */ B(LdaConstant), U8(30),
-  /*  382 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  394 S> */ B(LdaConstant), U8(31),
-  /*  394 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  406 S> */ B(LdaConstant), U8(32),
-  /*  406 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  418 S> */ B(LdaConstant), U8(33),
-  /*  418 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  430 S> */ B(LdaConstant), U8(34),
-  /*  430 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  442 S> */ B(LdaConstant), U8(35),
-  /*  442 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  454 S> */ B(LdaConstant), U8(36),
-  /*  454 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  466 S> */ B(LdaConstant), U8(37),
-  /*  466 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  478 S> */ B(LdaConstant), U8(38),
-  /*  478 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  490 S> */ B(LdaConstant), U8(39),
-  /*  490 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  502 S> */ B(LdaConstant), U8(40),
-  /*  502 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  514 S> */ B(LdaConstant), U8(41),
-  /*  514 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  526 S> */ B(LdaConstant), U8(42),
-  /*  526 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  538 S> */ B(LdaConstant), U8(43),
-  /*  538 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  550 S> */ B(LdaConstant), U8(44),
-  /*  550 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  562 S> */ B(LdaConstant), U8(45),
-  /*  562 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  574 S> */ B(LdaConstant), U8(46),
-  /*  574 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  586 S> */ B(LdaConstant), U8(47),
-  /*  586 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  598 S> */ B(LdaConstant), U8(48),
-  /*  598 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  610 S> */ B(LdaConstant), U8(49),
-  /*  610 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  622 S> */ B(LdaConstant), U8(50),
-  /*  622 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  634 S> */ B(LdaConstant), U8(51),
-  /*  634 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  646 S> */ B(LdaConstant), U8(52),
-  /*  646 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  658 S> */ B(LdaConstant), U8(53),
-  /*  658 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  670 S> */ B(LdaConstant), U8(54),
-  /*  670 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  682 S> */ B(LdaConstant), U8(55),
-  /*  682 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  694 S> */ B(LdaConstant), U8(56),
-  /*  694 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  706 S> */ B(LdaConstant), U8(57),
-  /*  706 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  718 S> */ B(LdaConstant), U8(58),
-  /*  718 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  730 S> */ B(LdaConstant), U8(59),
-  /*  730 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  742 S> */ B(LdaConstant), U8(60),
-  /*  742 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  754 S> */ B(LdaConstant), U8(61),
-  /*  754 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  766 S> */ B(LdaConstant), U8(62),
-  /*  766 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  778 S> */ B(LdaConstant), U8(63),
-  /*  778 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  790 S> */ B(LdaConstant), U8(64),
-  /*  790 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  802 S> */ B(LdaConstant), U8(65),
-  /*  802 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  814 S> */ B(LdaConstant), U8(66),
-  /*  814 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  826 S> */ B(LdaConstant), U8(67),
-  /*  826 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  838 S> */ B(LdaConstant), U8(68),
-  /*  838 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  850 S> */ B(LdaConstant), U8(69),
-  /*  850 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  862 S> */ B(LdaConstant), U8(70),
-  /*  862 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  874 S> */ B(LdaConstant), U8(71),
-  /*  874 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  886 S> */ B(LdaConstant), U8(72),
-  /*  886 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  898 S> */ B(LdaConstant), U8(73),
-  /*  898 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  910 S> */ B(LdaConstant), U8(74),
-  /*  910 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  922 S> */ B(LdaConstant), U8(75),
-  /*  922 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  934 S> */ B(LdaConstant), U8(76),
-  /*  934 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  946 S> */ B(LdaConstant), U8(77),
-  /*  946 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  958 S> */ B(LdaConstant), U8(78),
-  /*  958 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  970 S> */ B(LdaConstant), U8(79),
-  /*  970 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  982 S> */ B(LdaConstant), U8(80),
-  /*  982 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  994 S> */ B(LdaConstant), U8(81),
-  /*  994 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1006 S> */ B(LdaConstant), U8(82),
-  /* 1006 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1018 S> */ B(LdaConstant), U8(83),
-  /* 1018 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1030 S> */ B(LdaConstant), U8(84),
-  /* 1030 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1042 S> */ B(LdaConstant), U8(85),
-  /* 1042 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1054 S> */ B(LdaConstant), U8(86),
-  /* 1054 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1066 S> */ B(LdaConstant), U8(87),
-  /* 1066 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1078 S> */ B(LdaConstant), U8(88),
-  /* 1078 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1090 S> */ B(LdaConstant), U8(89),
-  /* 1090 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1102 S> */ B(LdaConstant), U8(90),
-  /* 1102 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1114 S> */ B(LdaConstant), U8(91),
-  /* 1114 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1126 S> */ B(LdaConstant), U8(92),
-  /* 1126 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1138 S> */ B(LdaConstant), U8(93),
-  /* 1138 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1150 S> */ B(LdaConstant), U8(94),
-  /* 1150 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1162 S> */ B(LdaConstant), U8(95),
-  /* 1162 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1174 S> */ B(LdaConstant), U8(96),
-  /* 1174 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1186 S> */ B(LdaConstant), U8(97),
-  /* 1186 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1198 S> */ B(LdaConstant), U8(98),
-  /* 1198 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1210 S> */ B(LdaConstant), U8(99),
-  /* 1210 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1222 S> */ B(LdaConstant), U8(100),
-  /* 1222 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1234 S> */ B(LdaConstant), U8(101),
-  /* 1234 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1246 S> */ B(LdaConstant), U8(102),
-  /* 1246 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1258 S> */ B(LdaConstant), U8(103),
-  /* 1258 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1270 S> */ B(LdaConstant), U8(104),
-  /* 1270 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1282 S> */ B(LdaConstant), U8(105),
-  /* 1282 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1294 S> */ B(LdaConstant), U8(106),
-  /* 1294 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1306 S> */ B(LdaConstant), U8(107),
-  /* 1306 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1318 S> */ B(LdaConstant), U8(108),
-  /* 1318 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1330 S> */ B(LdaConstant), U8(109),
-  /* 1330 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1342 S> */ B(LdaConstant), U8(110),
-  /* 1342 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1354 S> */ B(LdaConstant), U8(111),
-  /* 1354 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1366 S> */ B(LdaConstant), U8(112),
-  /* 1366 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1378 S> */ B(LdaConstant), U8(113),
-  /* 1378 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1390 S> */ B(LdaConstant), U8(114),
-  /* 1390 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1402 S> */ B(LdaConstant), U8(115),
-  /* 1402 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1414 S> */ B(LdaConstant), U8(116),
-  /* 1414 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1426 S> */ B(LdaConstant), U8(117),
-  /* 1426 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1438 S> */ B(LdaConstant), U8(118),
-  /* 1438 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1450 S> */ B(LdaConstant), U8(119),
-  /* 1450 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1462 S> */ B(LdaConstant), U8(120),
-  /* 1462 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1474 S> */ B(LdaConstant), U8(121),
-  /* 1474 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1486 S> */ B(LdaConstant), U8(122),
-  /* 1486 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1498 S> */ B(LdaConstant), U8(123),
-  /* 1498 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1510 S> */ B(LdaConstant), U8(124),
-  /* 1510 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1522 S> */ B(LdaConstant), U8(125),
-  /* 1522 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1534 S> */ B(LdaConstant), U8(126),
-  /* 1534 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1546 S> */ B(LdaConstant), U8(127),
-  /* 1546 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1558 S> */ B(LdaConstant), U8(128),
-  /* 1558 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1570 S> */ B(LdaConstant), U8(129),
-  /* 1570 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1582 S> */ B(LdaConstant), U8(130),
-  /* 1582 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1594 S> */ B(LdaConstant), U8(131),
-  /* 1594 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1606 S> */ B(LdaConstant), U8(132),
-  /* 1606 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1618 S> */ B(LdaConstant), U8(133),
-  /* 1618 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1630 S> */ B(LdaConstant), U8(134),
-  /* 1630 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1642 S> */ B(LdaConstant), U8(135),
-  /* 1642 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1654 S> */ B(LdaConstant), U8(136),
-  /* 1654 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1666 S> */ B(LdaConstant), U8(137),
-  /* 1666 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1678 S> */ B(LdaConstant), U8(138),
-  /* 1678 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1690 S> */ B(LdaConstant), U8(139),
-  /* 1690 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1702 S> */ B(LdaConstant), U8(140),
-  /* 1702 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1714 S> */ B(LdaConstant), U8(141),
-  /* 1714 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1726 S> */ B(LdaConstant), U8(142),
-  /* 1726 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1738 S> */ B(LdaConstant), U8(143),
-  /* 1738 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1750 S> */ B(LdaConstant), U8(144),
-  /* 1750 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1762 S> */ B(LdaConstant), U8(145),
-  /* 1762 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1774 S> */ B(LdaConstant), U8(146),
-  /* 1774 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1786 S> */ B(LdaConstant), U8(147),
-  /* 1786 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1798 S> */ B(LdaConstant), U8(148),
-  /* 1798 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1810 S> */ B(LdaConstant), U8(149),
-  /* 1810 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1822 S> */ B(LdaConstant), U8(150),
-  /* 1822 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1834 S> */ B(LdaConstant), U8(151),
-  /* 1834 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1846 S> */ B(LdaConstant), U8(152),
-  /* 1846 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1858 S> */ B(LdaConstant), U8(153),
-  /* 1858 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1870 S> */ B(LdaConstant), U8(154),
-  /* 1870 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1882 S> */ B(LdaConstant), U8(155),
-  /* 1882 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1894 S> */ B(LdaConstant), U8(156),
-  /* 1894 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1906 S> */ B(LdaConstant), U8(157),
-  /* 1906 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1918 S> */ B(LdaConstant), U8(158),
-  /* 1918 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1930 S> */ B(LdaConstant), U8(159),
-  /* 1930 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1942 S> */ B(LdaConstant), U8(160),
-  /* 1942 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1954 S> */ B(LdaConstant), U8(161),
-  /* 1954 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1966 S> */ B(LdaConstant), U8(162),
-  /* 1966 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1978 S> */ B(LdaConstant), U8(163),
-  /* 1978 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1990 S> */ B(LdaConstant), U8(164),
-  /* 1990 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2002 S> */ B(LdaConstant), U8(165),
-  /* 2002 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2014 S> */ B(LdaConstant), U8(166),
-  /* 2014 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2026 S> */ B(LdaConstant), U8(167),
-  /* 2026 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2038 S> */ B(LdaConstant), U8(168),
-  /* 2038 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2050 S> */ B(LdaConstant), U8(169),
-  /* 2050 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2062 S> */ B(LdaConstant), U8(170),
-  /* 2062 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2074 S> */ B(LdaConstant), U8(171),
-  /* 2074 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2086 S> */ B(LdaConstant), U8(172),
-  /* 2086 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2098 S> */ B(LdaConstant), U8(173),
-  /* 2098 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2110 S> */ B(LdaConstant), U8(174),
-  /* 2110 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2122 S> */ B(LdaConstant), U8(175),
-  /* 2122 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2134 S> */ B(LdaConstant), U8(176),
-  /* 2134 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2146 S> */ B(LdaConstant), U8(177),
-  /* 2146 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2158 S> */ B(LdaConstant), U8(178),
-  /* 2158 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2170 S> */ B(LdaConstant), U8(179),
-  /* 2170 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2182 S> */ B(LdaConstant), U8(180),
-  /* 2182 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2194 S> */ B(LdaConstant), U8(181),
-  /* 2194 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2206 S> */ B(LdaConstant), U8(182),
-  /* 2206 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2218 S> */ B(LdaConstant), U8(183),
-  /* 2218 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2230 S> */ B(LdaConstant), U8(184),
-  /* 2230 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2242 S> */ B(LdaConstant), U8(185),
-  /* 2242 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2254 S> */ B(LdaConstant), U8(186),
-  /* 2254 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2266 S> */ B(LdaConstant), U8(187),
-  /* 2266 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2278 S> */ B(LdaConstant), U8(188),
-  /* 2278 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2290 S> */ B(LdaConstant), U8(189),
-  /* 2290 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2302 S> */ B(LdaConstant), U8(190),
-  /* 2302 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2314 S> */ B(LdaConstant), U8(191),
-  /* 2314 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2326 S> */ B(LdaConstant), U8(192),
-  /* 2326 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2338 S> */ B(LdaConstant), U8(193),
-  /* 2338 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2350 S> */ B(LdaConstant), U8(194),
-  /* 2350 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2362 S> */ B(LdaConstant), U8(195),
-  /* 2362 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2374 S> */ B(LdaConstant), U8(196),
-  /* 2374 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2386 S> */ B(LdaConstant), U8(197),
-  /* 2386 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2398 S> */ B(LdaConstant), U8(198),
-  /* 2398 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2410 S> */ B(LdaConstant), U8(199),
-  /* 2410 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2422 S> */ B(LdaConstant), U8(200),
-  /* 2422 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2434 S> */ B(LdaConstant), U8(201),
-  /* 2434 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2446 S> */ B(LdaConstant), U8(202),
-  /* 2446 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2458 S> */ B(LdaConstant), U8(203),
-  /* 2458 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2470 S> */ B(LdaConstant), U8(204),
-  /* 2470 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2482 S> */ B(LdaConstant), U8(205),
-  /* 2482 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2494 S> */ B(LdaConstant), U8(206),
-  /* 2494 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2506 S> */ B(LdaConstant), U8(207),
-  /* 2506 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2518 S> */ B(LdaConstant), U8(208),
-  /* 2518 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2530 S> */ B(LdaConstant), U8(209),
-  /* 2530 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2542 S> */ B(LdaConstant), U8(210),
-  /* 2542 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2554 S> */ B(LdaConstant), U8(211),
-  /* 2554 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2566 S> */ B(LdaConstant), U8(212),
-  /* 2566 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2578 S> */ B(LdaConstant), U8(213),
-  /* 2578 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2590 S> */ B(LdaConstant), U8(214),
-  /* 2590 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2602 S> */ B(LdaConstant), U8(215),
-  /* 2602 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2614 S> */ B(LdaConstant), U8(216),
-  /* 2614 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2626 S> */ B(LdaConstant), U8(217),
-  /* 2626 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2638 S> */ B(LdaConstant), U8(218),
-  /* 2638 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2650 S> */ B(LdaConstant), U8(219),
-  /* 2650 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2662 S> */ B(LdaConstant), U8(220),
-  /* 2662 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2674 S> */ B(LdaConstant), U8(221),
-  /* 2674 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2686 S> */ B(LdaConstant), U8(222),
-  /* 2686 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2698 S> */ B(LdaConstant), U8(223),
-  /* 2698 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2710 S> */ B(LdaConstant), U8(224),
-  /* 2710 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2722 S> */ B(LdaConstant), U8(225),
-  /* 2722 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2734 S> */ B(LdaConstant), U8(226),
-  /* 2734 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2746 S> */ B(LdaConstant), U8(227),
-  /* 2746 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2758 S> */ B(LdaConstant), U8(228),
-  /* 2758 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2770 S> */ B(LdaConstant), U8(229),
-  /* 2770 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2782 S> */ B(LdaConstant), U8(230),
-  /* 2782 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2794 S> */ B(LdaConstant), U8(231),
-  /* 2794 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2806 S> */ B(LdaConstant), U8(232),
-  /* 2806 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2818 S> */ B(LdaConstant), U8(233),
-  /* 2818 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2830 S> */ B(LdaConstant), U8(234),
-  /* 2830 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2842 S> */ B(LdaConstant), U8(235),
-  /* 2842 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2854 S> */ B(LdaConstant), U8(236),
-  /* 2854 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2866 S> */ B(LdaConstant), U8(237),
-  /* 2866 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2878 S> */ B(LdaConstant), U8(238),
-  /* 2878 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2890 S> */ B(LdaConstant), U8(239),
-  /* 2890 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2902 S> */ B(LdaConstant), U8(240),
-  /* 2902 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2914 S> */ B(LdaConstant), U8(241),
-  /* 2914 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2926 S> */ B(LdaConstant), U8(242),
-  /* 2926 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2938 S> */ B(LdaConstant), U8(243),
-  /* 2938 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2950 S> */ B(LdaConstant), U8(244),
-  /* 2950 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2962 S> */ B(LdaConstant), U8(245),
-  /* 2962 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2974 S> */ B(LdaConstant), U8(246),
-  /* 2974 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2986 S> */ B(LdaConstant), U8(247),
-  /* 2986 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2998 S> */ B(LdaConstant), U8(248),
-  /* 2998 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3010 S> */ B(LdaConstant), U8(249),
-  /* 3010 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3022 S> */ B(LdaConstant), U8(250),
-  /* 3022 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3034 S> */ B(LdaConstant), U8(251),
-  /* 3034 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3046 S> */ B(LdaConstant), U8(252),
-  /* 3046 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3058 S> */ B(LdaConstant), U8(253),
-  /* 3058 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3070 S> */ B(LdaConstant), U8(254),
-  /* 3070 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3082 S> */ B(LdaConstant), U8(255),
-  /* 3082 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3086 S> */ B(Wide), B(LdaLookupSlotInsideTypeof), U16(256),
                 B(TypeOf),
   /* 3102 S> */ B(Return),
@@ -2386,517 +2386,517 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   22 S> */ B(LdaConstant), U8(0),
-  /*   22 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   34 S> */ B(LdaConstant), U8(1),
-  /*   34 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   46 S> */ B(LdaConstant), U8(2),
-  /*   46 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaConstant), U8(3),
-  /*   58 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   70 S> */ B(LdaConstant), U8(4),
-  /*   70 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   82 S> */ B(LdaConstant), U8(5),
-  /*   82 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   94 S> */ B(LdaConstant), U8(6),
-  /*   94 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  106 S> */ B(LdaConstant), U8(7),
-  /*  106 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  118 S> */ B(LdaConstant), U8(8),
-  /*  118 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  130 S> */ B(LdaConstant), U8(9),
-  /*  130 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  142 S> */ B(LdaConstant), U8(10),
-  /*  142 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  154 S> */ B(LdaConstant), U8(11),
-  /*  154 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  166 S> */ B(LdaConstant), U8(12),
-  /*  166 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  178 S> */ B(LdaConstant), U8(13),
-  /*  178 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  190 S> */ B(LdaConstant), U8(14),
-  /*  190 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  202 S> */ B(LdaConstant), U8(15),
-  /*  202 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  214 S> */ B(LdaConstant), U8(16),
-  /*  214 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  226 S> */ B(LdaConstant), U8(17),
-  /*  226 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  238 S> */ B(LdaConstant), U8(18),
-  /*  238 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  250 S> */ B(LdaConstant), U8(19),
-  /*  250 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  262 S> */ B(LdaConstant), U8(20),
-  /*  262 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  274 S> */ B(LdaConstant), U8(21),
-  /*  274 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  286 S> */ B(LdaConstant), U8(22),
-  /*  286 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  298 S> */ B(LdaConstant), U8(23),
-  /*  298 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  310 S> */ B(LdaConstant), U8(24),
-  /*  310 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  322 S> */ B(LdaConstant), U8(25),
-  /*  322 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  334 S> */ B(LdaConstant), U8(26),
-  /*  334 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  346 S> */ B(LdaConstant), U8(27),
-  /*  346 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  358 S> */ B(LdaConstant), U8(28),
-  /*  358 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  370 S> */ B(LdaConstant), U8(29),
-  /*  370 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  382 S> */ B(LdaConstant), U8(30),
-  /*  382 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  394 S> */ B(LdaConstant), U8(31),
-  /*  394 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  406 S> */ B(LdaConstant), U8(32),
-  /*  406 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  418 S> */ B(LdaConstant), U8(33),
-  /*  418 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  430 S> */ B(LdaConstant), U8(34),
-  /*  430 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  442 S> */ B(LdaConstant), U8(35),
-  /*  442 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  454 S> */ B(LdaConstant), U8(36),
-  /*  454 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  466 S> */ B(LdaConstant), U8(37),
-  /*  466 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  478 S> */ B(LdaConstant), U8(38),
-  /*  478 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  490 S> */ B(LdaConstant), U8(39),
-  /*  490 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  502 S> */ B(LdaConstant), U8(40),
-  /*  502 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  514 S> */ B(LdaConstant), U8(41),
-  /*  514 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  526 S> */ B(LdaConstant), U8(42),
-  /*  526 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  538 S> */ B(LdaConstant), U8(43),
-  /*  538 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  550 S> */ B(LdaConstant), U8(44),
-  /*  550 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  562 S> */ B(LdaConstant), U8(45),
-  /*  562 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  574 S> */ B(LdaConstant), U8(46),
-  /*  574 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  586 S> */ B(LdaConstant), U8(47),
-  /*  586 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  598 S> */ B(LdaConstant), U8(48),
-  /*  598 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  610 S> */ B(LdaConstant), U8(49),
-  /*  610 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  622 S> */ B(LdaConstant), U8(50),
-  /*  622 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  634 S> */ B(LdaConstant), U8(51),
-  /*  634 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  646 S> */ B(LdaConstant), U8(52),
-  /*  646 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  658 S> */ B(LdaConstant), U8(53),
-  /*  658 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  670 S> */ B(LdaConstant), U8(54),
-  /*  670 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  682 S> */ B(LdaConstant), U8(55),
-  /*  682 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  694 S> */ B(LdaConstant), U8(56),
-  /*  694 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  706 S> */ B(LdaConstant), U8(57),
-  /*  706 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  718 S> */ B(LdaConstant), U8(58),
-  /*  718 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  730 S> */ B(LdaConstant), U8(59),
-  /*  730 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  742 S> */ B(LdaConstant), U8(60),
-  /*  742 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  754 S> */ B(LdaConstant), U8(61),
-  /*  754 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  766 S> */ B(LdaConstant), U8(62),
-  /*  766 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  778 S> */ B(LdaConstant), U8(63),
-  /*  778 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  790 S> */ B(LdaConstant), U8(64),
-  /*  790 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  802 S> */ B(LdaConstant), U8(65),
-  /*  802 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  814 S> */ B(LdaConstant), U8(66),
-  /*  814 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  826 S> */ B(LdaConstant), U8(67),
-  /*  826 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  838 S> */ B(LdaConstant), U8(68),
-  /*  838 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  850 S> */ B(LdaConstant), U8(69),
-  /*  850 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  862 S> */ B(LdaConstant), U8(70),
-  /*  862 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  874 S> */ B(LdaConstant), U8(71),
-  /*  874 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  886 S> */ B(LdaConstant), U8(72),
-  /*  886 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  898 S> */ B(LdaConstant), U8(73),
-  /*  898 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  910 S> */ B(LdaConstant), U8(74),
-  /*  910 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  922 S> */ B(LdaConstant), U8(75),
-  /*  922 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  934 S> */ B(LdaConstant), U8(76),
-  /*  934 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  946 S> */ B(LdaConstant), U8(77),
-  /*  946 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  958 S> */ B(LdaConstant), U8(78),
-  /*  958 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  970 S> */ B(LdaConstant), U8(79),
-  /*  970 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  982 S> */ B(LdaConstant), U8(80),
-  /*  982 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  994 S> */ B(LdaConstant), U8(81),
-  /*  994 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1006 S> */ B(LdaConstant), U8(82),
-  /* 1006 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1018 S> */ B(LdaConstant), U8(83),
-  /* 1018 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1030 S> */ B(LdaConstant), U8(84),
-  /* 1030 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1042 S> */ B(LdaConstant), U8(85),
-  /* 1042 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1054 S> */ B(LdaConstant), U8(86),
-  /* 1054 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1066 S> */ B(LdaConstant), U8(87),
-  /* 1066 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1078 S> */ B(LdaConstant), U8(88),
-  /* 1078 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1090 S> */ B(LdaConstant), U8(89),
-  /* 1090 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1102 S> */ B(LdaConstant), U8(90),
-  /* 1102 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1114 S> */ B(LdaConstant), U8(91),
-  /* 1114 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1126 S> */ B(LdaConstant), U8(92),
-  /* 1126 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1138 S> */ B(LdaConstant), U8(93),
-  /* 1138 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1150 S> */ B(LdaConstant), U8(94),
-  /* 1150 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1162 S> */ B(LdaConstant), U8(95),
-  /* 1162 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1174 S> */ B(LdaConstant), U8(96),
-  /* 1174 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1186 S> */ B(LdaConstant), U8(97),
-  /* 1186 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1198 S> */ B(LdaConstant), U8(98),
-  /* 1198 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1210 S> */ B(LdaConstant), U8(99),
-  /* 1210 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1222 S> */ B(LdaConstant), U8(100),
-  /* 1222 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1234 S> */ B(LdaConstant), U8(101),
-  /* 1234 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1246 S> */ B(LdaConstant), U8(102),
-  /* 1246 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1258 S> */ B(LdaConstant), U8(103),
-  /* 1258 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1270 S> */ B(LdaConstant), U8(104),
-  /* 1270 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1282 S> */ B(LdaConstant), U8(105),
-  /* 1282 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1294 S> */ B(LdaConstant), U8(106),
-  /* 1294 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1306 S> */ B(LdaConstant), U8(107),
-  /* 1306 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1318 S> */ B(LdaConstant), U8(108),
-  /* 1318 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1330 S> */ B(LdaConstant), U8(109),
-  /* 1330 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1342 S> */ B(LdaConstant), U8(110),
-  /* 1342 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1354 S> */ B(LdaConstant), U8(111),
-  /* 1354 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1366 S> */ B(LdaConstant), U8(112),
-  /* 1366 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1378 S> */ B(LdaConstant), U8(113),
-  /* 1378 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1390 S> */ B(LdaConstant), U8(114),
-  /* 1390 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1402 S> */ B(LdaConstant), U8(115),
-  /* 1402 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1414 S> */ B(LdaConstant), U8(116),
-  /* 1414 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1426 S> */ B(LdaConstant), U8(117),
-  /* 1426 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1438 S> */ B(LdaConstant), U8(118),
-  /* 1438 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1450 S> */ B(LdaConstant), U8(119),
-  /* 1450 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1462 S> */ B(LdaConstant), U8(120),
-  /* 1462 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1474 S> */ B(LdaConstant), U8(121),
-  /* 1474 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1486 S> */ B(LdaConstant), U8(122),
-  /* 1486 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1498 S> */ B(LdaConstant), U8(123),
-  /* 1498 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1510 S> */ B(LdaConstant), U8(124),
-  /* 1510 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1522 S> */ B(LdaConstant), U8(125),
-  /* 1522 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1534 S> */ B(LdaConstant), U8(126),
-  /* 1534 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1546 S> */ B(LdaConstant), U8(127),
-  /* 1546 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1558 S> */ B(LdaConstant), U8(128),
-  /* 1558 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1570 S> */ B(LdaConstant), U8(129),
-  /* 1570 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1582 S> */ B(LdaConstant), U8(130),
-  /* 1582 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1594 S> */ B(LdaConstant), U8(131),
-  /* 1594 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1606 S> */ B(LdaConstant), U8(132),
-  /* 1606 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1618 S> */ B(LdaConstant), U8(133),
-  /* 1618 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1630 S> */ B(LdaConstant), U8(134),
-  /* 1630 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1642 S> */ B(LdaConstant), U8(135),
-  /* 1642 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1654 S> */ B(LdaConstant), U8(136),
-  /* 1654 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1666 S> */ B(LdaConstant), U8(137),
-  /* 1666 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1678 S> */ B(LdaConstant), U8(138),
-  /* 1678 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1690 S> */ B(LdaConstant), U8(139),
-  /* 1690 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1702 S> */ B(LdaConstant), U8(140),
-  /* 1702 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1714 S> */ B(LdaConstant), U8(141),
-  /* 1714 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1726 S> */ B(LdaConstant), U8(142),
-  /* 1726 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1738 S> */ B(LdaConstant), U8(143),
-  /* 1738 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1750 S> */ B(LdaConstant), U8(144),
-  /* 1750 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1762 S> */ B(LdaConstant), U8(145),
-  /* 1762 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1774 S> */ B(LdaConstant), U8(146),
-  /* 1774 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1786 S> */ B(LdaConstant), U8(147),
-  /* 1786 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1798 S> */ B(LdaConstant), U8(148),
-  /* 1798 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1810 S> */ B(LdaConstant), U8(149),
-  /* 1810 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1822 S> */ B(LdaConstant), U8(150),
-  /* 1822 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1834 S> */ B(LdaConstant), U8(151),
-  /* 1834 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1846 S> */ B(LdaConstant), U8(152),
-  /* 1846 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1858 S> */ B(LdaConstant), U8(153),
-  /* 1858 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1870 S> */ B(LdaConstant), U8(154),
-  /* 1870 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1882 S> */ B(LdaConstant), U8(155),
-  /* 1882 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1894 S> */ B(LdaConstant), U8(156),
-  /* 1894 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1906 S> */ B(LdaConstant), U8(157),
-  /* 1906 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1918 S> */ B(LdaConstant), U8(158),
-  /* 1918 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1930 S> */ B(LdaConstant), U8(159),
-  /* 1930 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1942 S> */ B(LdaConstant), U8(160),
-  /* 1942 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1954 S> */ B(LdaConstant), U8(161),
-  /* 1954 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1966 S> */ B(LdaConstant), U8(162),
-  /* 1966 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1978 S> */ B(LdaConstant), U8(163),
-  /* 1978 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1990 S> */ B(LdaConstant), U8(164),
-  /* 1990 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2002 S> */ B(LdaConstant), U8(165),
-  /* 2002 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2014 S> */ B(LdaConstant), U8(166),
-  /* 2014 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2026 S> */ B(LdaConstant), U8(167),
-  /* 2026 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2038 S> */ B(LdaConstant), U8(168),
-  /* 2038 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2050 S> */ B(LdaConstant), U8(169),
-  /* 2050 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2062 S> */ B(LdaConstant), U8(170),
-  /* 2062 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2074 S> */ B(LdaConstant), U8(171),
-  /* 2074 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2086 S> */ B(LdaConstant), U8(172),
-  /* 2086 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2098 S> */ B(LdaConstant), U8(173),
-  /* 2098 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2110 S> */ B(LdaConstant), U8(174),
-  /* 2110 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2122 S> */ B(LdaConstant), U8(175),
-  /* 2122 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2134 S> */ B(LdaConstant), U8(176),
-  /* 2134 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2146 S> */ B(LdaConstant), U8(177),
-  /* 2146 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2158 S> */ B(LdaConstant), U8(178),
-  /* 2158 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2170 S> */ B(LdaConstant), U8(179),
-  /* 2170 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2182 S> */ B(LdaConstant), U8(180),
-  /* 2182 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2194 S> */ B(LdaConstant), U8(181),
-  /* 2194 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2206 S> */ B(LdaConstant), U8(182),
-  /* 2206 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2218 S> */ B(LdaConstant), U8(183),
-  /* 2218 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2230 S> */ B(LdaConstant), U8(184),
-  /* 2230 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2242 S> */ B(LdaConstant), U8(185),
-  /* 2242 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2254 S> */ B(LdaConstant), U8(186),
-  /* 2254 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2266 S> */ B(LdaConstant), U8(187),
-  /* 2266 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2278 S> */ B(LdaConstant), U8(188),
-  /* 2278 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2290 S> */ B(LdaConstant), U8(189),
-  /* 2290 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2302 S> */ B(LdaConstant), U8(190),
-  /* 2302 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2314 S> */ B(LdaConstant), U8(191),
-  /* 2314 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2326 S> */ B(LdaConstant), U8(192),
-  /* 2326 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2338 S> */ B(LdaConstant), U8(193),
-  /* 2338 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2350 S> */ B(LdaConstant), U8(194),
-  /* 2350 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2362 S> */ B(LdaConstant), U8(195),
-  /* 2362 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2374 S> */ B(LdaConstant), U8(196),
-  /* 2374 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2386 S> */ B(LdaConstant), U8(197),
-  /* 2386 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2398 S> */ B(LdaConstant), U8(198),
-  /* 2398 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2410 S> */ B(LdaConstant), U8(199),
-  /* 2410 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2422 S> */ B(LdaConstant), U8(200),
-  /* 2422 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2434 S> */ B(LdaConstant), U8(201),
-  /* 2434 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2446 S> */ B(LdaConstant), U8(202),
-  /* 2446 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2458 S> */ B(LdaConstant), U8(203),
-  /* 2458 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2470 S> */ B(LdaConstant), U8(204),
-  /* 2470 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2482 S> */ B(LdaConstant), U8(205),
-  /* 2482 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2494 S> */ B(LdaConstant), U8(206),
-  /* 2494 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2506 S> */ B(LdaConstant), U8(207),
-  /* 2506 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2518 S> */ B(LdaConstant), U8(208),
-  /* 2518 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2530 S> */ B(LdaConstant), U8(209),
-  /* 2530 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2542 S> */ B(LdaConstant), U8(210),
-  /* 2542 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2554 S> */ B(LdaConstant), U8(211),
-  /* 2554 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2566 S> */ B(LdaConstant), U8(212),
-  /* 2566 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2578 S> */ B(LdaConstant), U8(213),
-  /* 2578 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2590 S> */ B(LdaConstant), U8(214),
-  /* 2590 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2602 S> */ B(LdaConstant), U8(215),
-  /* 2602 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2614 S> */ B(LdaConstant), U8(216),
-  /* 2614 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2626 S> */ B(LdaConstant), U8(217),
-  /* 2626 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2638 S> */ B(LdaConstant), U8(218),
-  /* 2638 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2650 S> */ B(LdaConstant), U8(219),
-  /* 2650 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2662 S> */ B(LdaConstant), U8(220),
-  /* 2662 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2674 S> */ B(LdaConstant), U8(221),
-  /* 2674 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2686 S> */ B(LdaConstant), U8(222),
-  /* 2686 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2698 S> */ B(LdaConstant), U8(223),
-  /* 2698 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2710 S> */ B(LdaConstant), U8(224),
-  /* 2710 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2722 S> */ B(LdaConstant), U8(225),
-  /* 2722 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2734 S> */ B(LdaConstant), U8(226),
-  /* 2734 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2746 S> */ B(LdaConstant), U8(227),
-  /* 2746 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2758 S> */ B(LdaConstant), U8(228),
-  /* 2758 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2770 S> */ B(LdaConstant), U8(229),
-  /* 2770 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2782 S> */ B(LdaConstant), U8(230),
-  /* 2782 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2794 S> */ B(LdaConstant), U8(231),
-  /* 2794 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2806 S> */ B(LdaConstant), U8(232),
-  /* 2806 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2818 S> */ B(LdaConstant), U8(233),
-  /* 2818 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2830 S> */ B(LdaConstant), U8(234),
-  /* 2830 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2842 S> */ B(LdaConstant), U8(235),
-  /* 2842 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2854 S> */ B(LdaConstant), U8(236),
-  /* 2854 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2866 S> */ B(LdaConstant), U8(237),
-  /* 2866 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2878 S> */ B(LdaConstant), U8(238),
-  /* 2878 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2890 S> */ B(LdaConstant), U8(239),
-  /* 2890 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2902 S> */ B(LdaConstant), U8(240),
-  /* 2902 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2914 S> */ B(LdaConstant), U8(241),
-  /* 2914 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2926 S> */ B(LdaConstant), U8(242),
-  /* 2926 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2938 S> */ B(LdaConstant), U8(243),
-  /* 2938 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2950 S> */ B(LdaConstant), U8(244),
-  /* 2950 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2962 S> */ B(LdaConstant), U8(245),
-  /* 2962 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2974 S> */ B(LdaConstant), U8(246),
-  /* 2974 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2986 S> */ B(LdaConstant), U8(247),
-  /* 2986 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2998 S> */ B(LdaConstant), U8(248),
-  /* 2998 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3010 S> */ B(LdaConstant), U8(249),
-  /* 3010 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3022 S> */ B(LdaConstant), U8(250),
-  /* 3022 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3034 S> */ B(LdaConstant), U8(251),
-  /* 3034 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3046 S> */ B(LdaConstant), U8(252),
-  /* 3046 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3058 S> */ B(LdaConstant), U8(253),
-  /* 3058 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3070 S> */ B(LdaConstant), U8(254),
-  /* 3070 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3082 S> */ B(LdaConstant), U8(255),
-  /* 3082 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3086 S> */ B(LdaSmi), U8(10),
   /* 3088 E> */ B(Wide), B(StaLookupSlotSloppy), U16(256),
                 B(LdaUndefined),
@@ -3440,517 +3440,517 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   35 S> */ B(LdaConstant), U8(0),
-  /*   35 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   47 S> */ B(LdaConstant), U8(1),
-  /*   47 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   59 S> */ B(LdaConstant), U8(2),
-  /*   59 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   71 S> */ B(LdaConstant), U8(3),
-  /*   71 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   83 S> */ B(LdaConstant), U8(4),
-  /*   83 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   95 S> */ B(LdaConstant), U8(5),
-  /*   95 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  107 S> */ B(LdaConstant), U8(6),
-  /*  107 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  119 S> */ B(LdaConstant), U8(7),
-  /*  119 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  131 S> */ B(LdaConstant), U8(8),
-  /*  131 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  143 S> */ B(LdaConstant), U8(9),
-  /*  143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  155 S> */ B(LdaConstant), U8(10),
-  /*  155 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  167 S> */ B(LdaConstant), U8(11),
-  /*  167 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  179 S> */ B(LdaConstant), U8(12),
-  /*  179 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  191 S> */ B(LdaConstant), U8(13),
-  /*  191 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  203 S> */ B(LdaConstant), U8(14),
-  /*  203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  215 S> */ B(LdaConstant), U8(15),
-  /*  215 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  227 S> */ B(LdaConstant), U8(16),
-  /*  227 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  239 S> */ B(LdaConstant), U8(17),
-  /*  239 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  251 S> */ B(LdaConstant), U8(18),
-  /*  251 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  263 S> */ B(LdaConstant), U8(19),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  275 S> */ B(LdaConstant), U8(20),
-  /*  275 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  287 S> */ B(LdaConstant), U8(21),
-  /*  287 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  299 S> */ B(LdaConstant), U8(22),
-  /*  299 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  311 S> */ B(LdaConstant), U8(23),
-  /*  311 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  323 S> */ B(LdaConstant), U8(24),
-  /*  323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  335 S> */ B(LdaConstant), U8(25),
-  /*  335 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  347 S> */ B(LdaConstant), U8(26),
-  /*  347 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  359 S> */ B(LdaConstant), U8(27),
-  /*  359 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  371 S> */ B(LdaConstant), U8(28),
-  /*  371 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  383 S> */ B(LdaConstant), U8(29),
-  /*  383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  395 S> */ B(LdaConstant), U8(30),
-  /*  395 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  407 S> */ B(LdaConstant), U8(31),
-  /*  407 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  419 S> */ B(LdaConstant), U8(32),
-  /*  419 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  431 S> */ B(LdaConstant), U8(33),
-  /*  431 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  443 S> */ B(LdaConstant), U8(34),
-  /*  443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  455 S> */ B(LdaConstant), U8(35),
-  /*  455 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  467 S> */ B(LdaConstant), U8(36),
-  /*  467 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  479 S> */ B(LdaConstant), U8(37),
-  /*  479 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  491 S> */ B(LdaConstant), U8(38),
-  /*  491 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  503 S> */ B(LdaConstant), U8(39),
-  /*  503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  515 S> */ B(LdaConstant), U8(40),
-  /*  515 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  527 S> */ B(LdaConstant), U8(41),
-  /*  527 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  539 S> */ B(LdaConstant), U8(42),
-  /*  539 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  551 S> */ B(LdaConstant), U8(43),
-  /*  551 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  563 S> */ B(LdaConstant), U8(44),
-  /*  563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  575 S> */ B(LdaConstant), U8(45),
-  /*  575 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  587 S> */ B(LdaConstant), U8(46),
-  /*  587 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  599 S> */ B(LdaConstant), U8(47),
-  /*  599 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  611 S> */ B(LdaConstant), U8(48),
-  /*  611 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  623 S> */ B(LdaConstant), U8(49),
-  /*  623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  635 S> */ B(LdaConstant), U8(50),
-  /*  635 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  647 S> */ B(LdaConstant), U8(51),
-  /*  647 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  659 S> */ B(LdaConstant), U8(52),
-  /*  659 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  671 S> */ B(LdaConstant), U8(53),
-  /*  671 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  683 S> */ B(LdaConstant), U8(54),
-  /*  683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  695 S> */ B(LdaConstant), U8(55),
-  /*  695 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  707 S> */ B(LdaConstant), U8(56),
-  /*  707 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  719 S> */ B(LdaConstant), U8(57),
-  /*  719 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  731 S> */ B(LdaConstant), U8(58),
-  /*  731 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  743 S> */ B(LdaConstant), U8(59),
-  /*  743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  755 S> */ B(LdaConstant), U8(60),
-  /*  755 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  767 S> */ B(LdaConstant), U8(61),
-  /*  767 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  779 S> */ B(LdaConstant), U8(62),
-  /*  779 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  791 S> */ B(LdaConstant), U8(63),
-  /*  791 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  803 S> */ B(LdaConstant), U8(64),
-  /*  803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  815 S> */ B(LdaConstant), U8(65),
-  /*  815 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  827 S> */ B(LdaConstant), U8(66),
-  /*  827 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  839 S> */ B(LdaConstant), U8(67),
-  /*  839 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  851 S> */ B(LdaConstant), U8(68),
-  /*  851 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  863 S> */ B(LdaConstant), U8(69),
-  /*  863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  875 S> */ B(LdaConstant), U8(70),
-  /*  875 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  887 S> */ B(LdaConstant), U8(71),
-  /*  887 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  899 S> */ B(LdaConstant), U8(72),
-  /*  899 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  911 S> */ B(LdaConstant), U8(73),
-  /*  911 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  923 S> */ B(LdaConstant), U8(74),
-  /*  923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  935 S> */ B(LdaConstant), U8(75),
-  /*  935 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  947 S> */ B(LdaConstant), U8(76),
-  /*  947 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  959 S> */ B(LdaConstant), U8(77),
-  /*  959 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  971 S> */ B(LdaConstant), U8(78),
-  /*  971 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  983 S> */ B(LdaConstant), U8(79),
-  /*  983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  995 S> */ B(LdaConstant), U8(80),
-  /*  995 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1007 S> */ B(LdaConstant), U8(81),
-  /* 1007 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1019 S> */ B(LdaConstant), U8(82),
-  /* 1019 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1031 S> */ B(LdaConstant), U8(83),
-  /* 1031 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1043 S> */ B(LdaConstant), U8(84),
-  /* 1043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1055 S> */ B(LdaConstant), U8(85),
-  /* 1055 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1067 S> */ B(LdaConstant), U8(86),
-  /* 1067 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1079 S> */ B(LdaConstant), U8(87),
-  /* 1079 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1091 S> */ B(LdaConstant), U8(88),
-  /* 1091 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1103 S> */ B(LdaConstant), U8(89),
-  /* 1103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1115 S> */ B(LdaConstant), U8(90),
-  /* 1115 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1127 S> */ B(LdaConstant), U8(91),
-  /* 1127 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1139 S> */ B(LdaConstant), U8(92),
-  /* 1139 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1151 S> */ B(LdaConstant), U8(93),
-  /* 1151 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1163 S> */ B(LdaConstant), U8(94),
-  /* 1163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1175 S> */ B(LdaConstant), U8(95),
-  /* 1175 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1187 S> */ B(LdaConstant), U8(96),
-  /* 1187 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1199 S> */ B(LdaConstant), U8(97),
-  /* 1199 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1211 S> */ B(LdaConstant), U8(98),
-  /* 1211 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1223 S> */ B(LdaConstant), U8(99),
-  /* 1223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1235 S> */ B(LdaConstant), U8(100),
-  /* 1235 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1247 S> */ B(LdaConstant), U8(101),
-  /* 1247 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1259 S> */ B(LdaConstant), U8(102),
-  /* 1259 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1271 S> */ B(LdaConstant), U8(103),
-  /* 1271 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1283 S> */ B(LdaConstant), U8(104),
-  /* 1283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1295 S> */ B(LdaConstant), U8(105),
-  /* 1295 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1307 S> */ B(LdaConstant), U8(106),
-  /* 1307 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1319 S> */ B(LdaConstant), U8(107),
-  /* 1319 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1331 S> */ B(LdaConstant), U8(108),
-  /* 1331 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1343 S> */ B(LdaConstant), U8(109),
-  /* 1343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1355 S> */ B(LdaConstant), U8(110),
-  /* 1355 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1367 S> */ B(LdaConstant), U8(111),
-  /* 1367 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1379 S> */ B(LdaConstant), U8(112),
-  /* 1379 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1391 S> */ B(LdaConstant), U8(113),
-  /* 1391 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1403 S> */ B(LdaConstant), U8(114),
-  /* 1403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1415 S> */ B(LdaConstant), U8(115),
-  /* 1415 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1427 S> */ B(LdaConstant), U8(116),
-  /* 1427 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1439 S> */ B(LdaConstant), U8(117),
-  /* 1439 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1451 S> */ B(LdaConstant), U8(118),
-  /* 1451 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1463 S> */ B(LdaConstant), U8(119),
-  /* 1463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1475 S> */ B(LdaConstant), U8(120),
-  /* 1475 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1487 S> */ B(LdaConstant), U8(121),
-  /* 1487 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1499 S> */ B(LdaConstant), U8(122),
-  /* 1499 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1511 S> */ B(LdaConstant), U8(123),
-  /* 1511 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1523 S> */ B(LdaConstant), U8(124),
-  /* 1523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1535 S> */ B(LdaConstant), U8(125),
-  /* 1535 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1547 S> */ B(LdaConstant), U8(126),
-  /* 1547 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1559 S> */ B(LdaConstant), U8(127),
-  /* 1559 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1571 S> */ B(LdaConstant), U8(128),
-  /* 1571 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1583 S> */ B(LdaConstant), U8(129),
-  /* 1583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1595 S> */ B(LdaConstant), U8(130),
-  /* 1595 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1607 S> */ B(LdaConstant), U8(131),
-  /* 1607 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1619 S> */ B(LdaConstant), U8(132),
-  /* 1619 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1631 S> */ B(LdaConstant), U8(133),
-  /* 1631 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1643 S> */ B(LdaConstant), U8(134),
-  /* 1643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1655 S> */ B(LdaConstant), U8(135),
-  /* 1655 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1667 S> */ B(LdaConstant), U8(136),
-  /* 1667 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1679 S> */ B(LdaConstant), U8(137),
-  /* 1679 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1691 S> */ B(LdaConstant), U8(138),
-  /* 1691 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1703 S> */ B(LdaConstant), U8(139),
-  /* 1703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1715 S> */ B(LdaConstant), U8(140),
-  /* 1715 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1727 S> */ B(LdaConstant), U8(141),
-  /* 1727 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1739 S> */ B(LdaConstant), U8(142),
-  /* 1739 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1751 S> */ B(LdaConstant), U8(143),
-  /* 1751 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1763 S> */ B(LdaConstant), U8(144),
-  /* 1763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1775 S> */ B(LdaConstant), U8(145),
-  /* 1775 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1787 S> */ B(LdaConstant), U8(146),
-  /* 1787 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1799 S> */ B(LdaConstant), U8(147),
-  /* 1799 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1811 S> */ B(LdaConstant), U8(148),
-  /* 1811 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1823 S> */ B(LdaConstant), U8(149),
-  /* 1823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1835 S> */ B(LdaConstant), U8(150),
-  /* 1835 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1847 S> */ B(LdaConstant), U8(151),
-  /* 1847 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1859 S> */ B(LdaConstant), U8(152),
-  /* 1859 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1871 S> */ B(LdaConstant), U8(153),
-  /* 1871 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1883 S> */ B(LdaConstant), U8(154),
-  /* 1883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1895 S> */ B(LdaConstant), U8(155),
-  /* 1895 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1907 S> */ B(LdaConstant), U8(156),
-  /* 1907 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1919 S> */ B(LdaConstant), U8(157),
-  /* 1919 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1931 S> */ B(LdaConstant), U8(158),
-  /* 1931 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1943 S> */ B(LdaConstant), U8(159),
-  /* 1943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1955 S> */ B(LdaConstant), U8(160),
-  /* 1955 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1967 S> */ B(LdaConstant), U8(161),
-  /* 1967 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1979 S> */ B(LdaConstant), U8(162),
-  /* 1979 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1991 S> */ B(LdaConstant), U8(163),
-  /* 1991 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2003 S> */ B(LdaConstant), U8(164),
-  /* 2003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2015 S> */ B(LdaConstant), U8(165),
-  /* 2015 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2027 S> */ B(LdaConstant), U8(166),
-  /* 2027 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2039 S> */ B(LdaConstant), U8(167),
-  /* 2039 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2051 S> */ B(LdaConstant), U8(168),
-  /* 2051 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2063 S> */ B(LdaConstant), U8(169),
-  /* 2063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2075 S> */ B(LdaConstant), U8(170),
-  /* 2075 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2087 S> */ B(LdaConstant), U8(171),
-  /* 2087 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2099 S> */ B(LdaConstant), U8(172),
-  /* 2099 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2111 S> */ B(LdaConstant), U8(173),
-  /* 2111 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2123 S> */ B(LdaConstant), U8(174),
-  /* 2123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2135 S> */ B(LdaConstant), U8(175),
-  /* 2135 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2147 S> */ B(LdaConstant), U8(176),
-  /* 2147 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2159 S> */ B(LdaConstant), U8(177),
-  /* 2159 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2171 S> */ B(LdaConstant), U8(178),
-  /* 2171 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2183 S> */ B(LdaConstant), U8(179),
-  /* 2183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2195 S> */ B(LdaConstant), U8(180),
-  /* 2195 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2207 S> */ B(LdaConstant), U8(181),
-  /* 2207 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2219 S> */ B(LdaConstant), U8(182),
-  /* 2219 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2231 S> */ B(LdaConstant), U8(183),
-  /* 2231 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2243 S> */ B(LdaConstant), U8(184),
-  /* 2243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2255 S> */ B(LdaConstant), U8(185),
-  /* 2255 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2267 S> */ B(LdaConstant), U8(186),
-  /* 2267 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2279 S> */ B(LdaConstant), U8(187),
-  /* 2279 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2291 S> */ B(LdaConstant), U8(188),
-  /* 2291 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2303 S> */ B(LdaConstant), U8(189),
-  /* 2303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2315 S> */ B(LdaConstant), U8(190),
-  /* 2315 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2327 S> */ B(LdaConstant), U8(191),
-  /* 2327 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2339 S> */ B(LdaConstant), U8(192),
-  /* 2339 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2351 S> */ B(LdaConstant), U8(193),
-  /* 2351 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2363 S> */ B(LdaConstant), U8(194),
-  /* 2363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2375 S> */ B(LdaConstant), U8(195),
-  /* 2375 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2387 S> */ B(LdaConstant), U8(196),
-  /* 2387 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2399 S> */ B(LdaConstant), U8(197),
-  /* 2399 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2411 S> */ B(LdaConstant), U8(198),
-  /* 2411 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2423 S> */ B(LdaConstant), U8(199),
-  /* 2423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2435 S> */ B(LdaConstant), U8(200),
-  /* 2435 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2447 S> */ B(LdaConstant), U8(201),
-  /* 2447 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2459 S> */ B(LdaConstant), U8(202),
-  /* 2459 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2471 S> */ B(LdaConstant), U8(203),
-  /* 2471 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2483 S> */ B(LdaConstant), U8(204),
-  /* 2483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2495 S> */ B(LdaConstant), U8(205),
-  /* 2495 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2507 S> */ B(LdaConstant), U8(206),
-  /* 2507 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2519 S> */ B(LdaConstant), U8(207),
-  /* 2519 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2531 S> */ B(LdaConstant), U8(208),
-  /* 2531 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2543 S> */ B(LdaConstant), U8(209),
-  /* 2543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2555 S> */ B(LdaConstant), U8(210),
-  /* 2555 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2567 S> */ B(LdaConstant), U8(211),
-  /* 2567 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2579 S> */ B(LdaConstant), U8(212),
-  /* 2579 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2591 S> */ B(LdaConstant), U8(213),
-  /* 2591 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2603 S> */ B(LdaConstant), U8(214),
-  /* 2603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2615 S> */ B(LdaConstant), U8(215),
-  /* 2615 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2627 S> */ B(LdaConstant), U8(216),
-  /* 2627 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2639 S> */ B(LdaConstant), U8(217),
-  /* 2639 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2651 S> */ B(LdaConstant), U8(218),
-  /* 2651 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2663 S> */ B(LdaConstant), U8(219),
-  /* 2663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2675 S> */ B(LdaConstant), U8(220),
-  /* 2675 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2687 S> */ B(LdaConstant), U8(221),
-  /* 2687 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2699 S> */ B(LdaConstant), U8(222),
-  /* 2699 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2711 S> */ B(LdaConstant), U8(223),
-  /* 2711 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2723 S> */ B(LdaConstant), U8(224),
-  /* 2723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2735 S> */ B(LdaConstant), U8(225),
-  /* 2735 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2747 S> */ B(LdaConstant), U8(226),
-  /* 2747 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2759 S> */ B(LdaConstant), U8(227),
-  /* 2759 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2771 S> */ B(LdaConstant), U8(228),
-  /* 2771 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2783 S> */ B(LdaConstant), U8(229),
-  /* 2783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2795 S> */ B(LdaConstant), U8(230),
-  /* 2795 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2807 S> */ B(LdaConstant), U8(231),
-  /* 2807 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2819 S> */ B(LdaConstant), U8(232),
-  /* 2819 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2831 S> */ B(LdaConstant), U8(233),
-  /* 2831 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2843 S> */ B(LdaConstant), U8(234),
-  /* 2843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2855 S> */ B(LdaConstant), U8(235),
-  /* 2855 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2867 S> */ B(LdaConstant), U8(236),
-  /* 2867 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2879 S> */ B(LdaConstant), U8(237),
-  /* 2879 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2891 S> */ B(LdaConstant), U8(238),
-  /* 2891 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2903 S> */ B(LdaConstant), U8(239),
-  /* 2903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2915 S> */ B(LdaConstant), U8(240),
-  /* 2915 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2927 S> */ B(LdaConstant), U8(241),
-  /* 2927 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2939 S> */ B(LdaConstant), U8(242),
-  /* 2939 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2951 S> */ B(LdaConstant), U8(243),
-  /* 2951 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2963 S> */ B(LdaConstant), U8(244),
-  /* 2963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2975 S> */ B(LdaConstant), U8(245),
-  /* 2975 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2987 S> */ B(LdaConstant), U8(246),
-  /* 2987 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2999 S> */ B(LdaConstant), U8(247),
-  /* 2999 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3011 S> */ B(LdaConstant), U8(248),
-  /* 3011 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3023 S> */ B(LdaConstant), U8(249),
-  /* 3023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3035 S> */ B(LdaConstant), U8(250),
-  /* 3035 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3047 S> */ B(LdaConstant), U8(251),
-  /* 3047 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3059 S> */ B(LdaConstant), U8(252),
-  /* 3059 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3071 S> */ B(LdaConstant), U8(253),
-  /* 3071 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3083 S> */ B(LdaConstant), U8(254),
-  /* 3083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3095 S> */ B(LdaConstant), U8(255),
-  /* 3095 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 3099 S> */ B(LdaSmi), U8(10),
   /* 3101 E> */ B(Wide), B(StaLookupSlotStrict), U16(256),
                 B(LdaUndefined),
diff --git a/test/cctest/interpreter/bytecode_expectations/NewTarget.golden b/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
index 08d2a13..398b857 100644
--- a/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
+++ b/test/cctest/interpreter/bytecode_expectations/NewTarget.golden
@@ -13,12 +13,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 19
+bytecode array length: 18
 bytecodes: [
-                B(Ldar), R(new_target),
-                B(Star), R(0),
+                B(Mov), R(new_target), R(0),
   /*   30 E> */ B(StackCheck),
-  /*   34 S> */ B(Ldar), R(0),
+  /*   34 S> */ B(Ldar), R(new_target),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
@@ -37,12 +36,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 20
+bytecode array length: 19
 bytecodes: [
-                B(Ldar), R(new_target),
-                B(Star), R(0),
+                B(Mov), R(new_target), R(0),
   /*   30 E> */ B(StackCheck),
-  /*   34 S> */ B(Ldar), R(0),
+  /*   34 S> */ B(Ldar), R(new_target),
                 B(JumpIfNotHole), U8(11),
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
diff --git a/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden b/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
index 831218d..2f4bd05 100644
--- a/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ObjectLiterals.golden
@@ -55,11 +55,11 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                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(0),
+  /*   75 E> */ B(StaNamedPropertySloppy), R(1), U8(1), U8(1),
                 B(Ldar), R(1),
   /*   80 S> */ B(Return),
 ]
@@ -74,20 +74,18 @@
 snippet: "
   var a = 1; return { val: a, val: a + 1 };
 "
-frame size: 3
+frame size: 2
 parameter count: 1
-bytecode array length: 26
+bytecode array length: 22
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                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),
+  /*   67 E> */ B(Add), R(0),
+                B(StaNamedPropertySloppy), R(1), U8(1), U8(1),
                 B(Ldar), R(1),
   /*   76 S> */ B(Return),
 ]
@@ -110,7 +108,7 @@
   /*   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(StaNamedPropertySloppy), R(0), U8(2), U8(1),
                 B(Ldar), R(0),
   /*   67 S> */ B(Return),
 ]
@@ -134,7 +132,7 @@
   /*   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(StaNamedPropertySloppy), R(0), U8(2), U8(1),
                 B(Ldar), R(0),
   /*   68 S> */ B(Return),
 ]
@@ -157,7 +155,6 @@
   /*   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),
@@ -166,6 +163,7 @@
                 B(Star), R(4),
                 B(LdaZero),
                 B(Star), R(5),
+                B(Mov), R(0), R(1),
                 B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
                 B(Ldar), R(0),
   /*   68 S> */ B(Return),
@@ -189,7 +187,6 @@
   /*   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),
@@ -198,6 +195,7 @@
                 B(Star), R(4),
                 B(LdaZero),
                 B(Star), R(5),
+                B(Mov), R(0), R(1),
                 B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
                 B(Ldar), R(0),
   /*  102 S> */ B(Return),
@@ -222,7 +220,6 @@
   /*   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),
@@ -231,6 +228,7 @@
                 B(Star), R(4),
                 B(LdaZero),
                 B(Star), R(5),
+                B(Mov), R(0), R(1),
                 B(CallRuntime), U16(Runtime::kDefineAccessorPropertyUnchecked), R(1), U8(5),
                 B(Ldar), R(0),
   /*   74 S> */ B(Return),
@@ -249,21 +247,20 @@
 "
 frame size: 6
 parameter count: 1
-bytecode array length: 33
+bytecode array length: 32
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                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(Mov), R(1), R(2),
+                B(Mov), R(0), R(4),
+  /*   57 E> */ B(CallRuntime), U16(Runtime::kSetProperty), R(2), U8(4),
                 B(Ldar), R(1),
   /*   62 S> */ B(Return),
 ]
@@ -284,9 +281,9 @@
   /*   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(Mov), R(0), R(1),
                 B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(1), U8(2),
                 B(Ldar), R(0),
   /*   62 S> */ B(Return),
@@ -307,12 +304,11 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   60 E> */ B(ToName),
                 B(Star), R(3),
                 B(LdaSmi), U8(1),
                 B(Star), R(4),
@@ -320,6 +316,7 @@
                 B(Star), R(5),
                 B(LdaZero),
                 B(Star), R(6),
+                B(Mov), R(1), R(2),
                 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
                 B(Ldar), R(1),
   /*   69 S> */ B(Return),
@@ -337,18 +334,16 @@
 "
 frame size: 7
 parameter count: 1
-bytecode array length: 43
+bytecode array length: 41
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   64 E> */ B(StaNamedPropertySloppy), R(1), U8(2), U8(1),
+  /*   68 E> */ B(ToName),
                 B(Star), R(3),
                 B(LdaSmi), U8(1),
                 B(Star), R(4),
@@ -356,6 +351,7 @@
                 B(Star), R(5),
                 B(LdaZero),
                 B(Star), R(6),
+                B(Mov), R(1), R(2),
                 B(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
                 B(Ldar), R(1),
   /*   77 S> */ B(Return),
@@ -374,16 +370,15 @@
 "
 frame size: 7
 parameter count: 1
-bytecode array length: 53
+bytecode array length: 54
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   60 E> */ B(ToName),
                 B(Star), R(3),
                 B(LdaSmi), U8(1),
                 B(Star), R(4),
@@ -391,11 +386,12 @@
                 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(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
                 B(CreateObjectLiteral), U8(1), U8(0), U8(35),
                 B(Star), R(4),
-                B(Star), R(3),
+                B(Mov), R(1), R(2),
+                B(Mov), R(4), R(3),
                 B(CallRuntime), U16(Runtime::kInternalSetPrototype), R(2), U8(2),
                 B(Ldar), R(1),
   /*   84 S> */ B(Return),
@@ -417,12 +413,11 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                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(Ldar), R(0),
+  /*   60 E> */ B(ToName),
                 B(Star), R(3),
                 B(LdaConstant), U8(2),
                 B(Star), R(4),
@@ -430,22 +425,23 @@
                 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(CallRuntime), U16(Runtime::kDefineDataPropertyInLiteral), R(2), U8(5),
                 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(CallRuntime), U16(Runtime::kDefineGetterPropertyUnchecked), R(2), U8(4),
                 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(Mov), R(1), R(2),
                 B(CallRuntime), U16(Runtime::kDefineSetterPropertyUnchecked), R(2), U8(4),
                 B(Ldar), R(1),
   /*   99 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
index 9f92943..144a3c5 100644
--- a/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ObjectLiteralsWide.golden
@@ -274,517 +274,517 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   41 S> */ B(LdaConstant), U8(0),
-  /*   43 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   51 S> */ B(LdaConstant), U8(1),
-  /*   53 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   61 S> */ B(LdaConstant), U8(2),
-  /*   63 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   71 S> */ B(LdaConstant), U8(3),
-  /*   73 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   81 S> */ B(LdaConstant), U8(4),
-  /*   83 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   91 S> */ B(LdaConstant), U8(5),
-  /*   93 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  101 S> */ B(LdaConstant), U8(6),
-  /*  103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  111 S> */ B(LdaConstant), U8(7),
-  /*  113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  121 S> */ B(LdaConstant), U8(8),
-  /*  123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  131 S> */ B(LdaConstant), U8(9),
-  /*  133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  141 S> */ B(LdaConstant), U8(10),
-  /*  143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  151 S> */ B(LdaConstant), U8(11),
-  /*  153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  161 S> */ B(LdaConstant), U8(12),
-  /*  163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  171 S> */ B(LdaConstant), U8(13),
-  /*  173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  181 S> */ B(LdaConstant), U8(14),
-  /*  183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  191 S> */ B(LdaConstant), U8(15),
-  /*  193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  201 S> */ B(LdaConstant), U8(16),
-  /*  203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  211 S> */ B(LdaConstant), U8(17),
-  /*  213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  221 S> */ B(LdaConstant), U8(18),
-  /*  223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  231 S> */ B(LdaConstant), U8(19),
-  /*  233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  241 S> */ B(LdaConstant), U8(20),
-  /*  243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  251 S> */ B(LdaConstant), U8(21),
-  /*  253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  261 S> */ B(LdaConstant), U8(22),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  271 S> */ B(LdaConstant), U8(23),
-  /*  273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  281 S> */ B(LdaConstant), U8(24),
-  /*  283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  291 S> */ B(LdaConstant), U8(25),
-  /*  293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  301 S> */ B(LdaConstant), U8(26),
-  /*  303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  311 S> */ B(LdaConstant), U8(27),
-  /*  313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  321 S> */ B(LdaConstant), U8(28),
-  /*  323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  331 S> */ B(LdaConstant), U8(29),
-  /*  333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  341 S> */ B(LdaConstant), U8(30),
-  /*  343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  351 S> */ B(LdaConstant), U8(31),
-  /*  353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  361 S> */ B(LdaConstant), U8(32),
-  /*  363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  371 S> */ B(LdaConstant), U8(33),
-  /*  373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  381 S> */ B(LdaConstant), U8(34),
-  /*  383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  391 S> */ B(LdaConstant), U8(35),
-  /*  393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  401 S> */ B(LdaConstant), U8(36),
-  /*  403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  411 S> */ B(LdaConstant), U8(37),
-  /*  413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  421 S> */ B(LdaConstant), U8(38),
-  /*  423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  431 S> */ B(LdaConstant), U8(39),
-  /*  433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  441 S> */ B(LdaConstant), U8(40),
-  /*  443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  451 S> */ B(LdaConstant), U8(41),
-  /*  453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  461 S> */ B(LdaConstant), U8(42),
-  /*  463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  471 S> */ B(LdaConstant), U8(43),
-  /*  473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  481 S> */ B(LdaConstant), U8(44),
-  /*  483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  491 S> */ B(LdaConstant), U8(45),
-  /*  493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  501 S> */ B(LdaConstant), U8(46),
-  /*  503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  511 S> */ B(LdaConstant), U8(47),
-  /*  513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  521 S> */ B(LdaConstant), U8(48),
-  /*  523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  531 S> */ B(LdaConstant), U8(49),
-  /*  533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  541 S> */ B(LdaConstant), U8(50),
-  /*  543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  551 S> */ B(LdaConstant), U8(51),
-  /*  553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  561 S> */ B(LdaConstant), U8(52),
-  /*  563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  571 S> */ B(LdaConstant), U8(53),
-  /*  573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  581 S> */ B(LdaConstant), U8(54),
-  /*  583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  591 S> */ B(LdaConstant), U8(55),
-  /*  593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  601 S> */ B(LdaConstant), U8(56),
-  /*  603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  611 S> */ B(LdaConstant), U8(57),
-  /*  613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  621 S> */ B(LdaConstant), U8(58),
-  /*  623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  631 S> */ B(LdaConstant), U8(59),
-  /*  633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  641 S> */ B(LdaConstant), U8(60),
-  /*  643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  651 S> */ B(LdaConstant), U8(61),
-  /*  653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  661 S> */ B(LdaConstant), U8(62),
-  /*  663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  671 S> */ B(LdaConstant), U8(63),
-  /*  673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  681 S> */ B(LdaConstant), U8(64),
-  /*  683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  691 S> */ B(LdaConstant), U8(65),
-  /*  693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  701 S> */ B(LdaConstant), U8(66),
-  /*  703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  711 S> */ B(LdaConstant), U8(67),
-  /*  713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  721 S> */ B(LdaConstant), U8(68),
-  /*  723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  731 S> */ B(LdaConstant), U8(69),
-  /*  733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  741 S> */ B(LdaConstant), U8(70),
-  /*  743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  751 S> */ B(LdaConstant), U8(71),
-  /*  753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  761 S> */ B(LdaConstant), U8(72),
-  /*  763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  771 S> */ B(LdaConstant), U8(73),
-  /*  773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  781 S> */ B(LdaConstant), U8(74),
-  /*  783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  791 S> */ B(LdaConstant), U8(75),
-  /*  793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  801 S> */ B(LdaConstant), U8(76),
-  /*  803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  811 S> */ B(LdaConstant), U8(77),
-  /*  813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  821 S> */ B(LdaConstant), U8(78),
-  /*  823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  831 S> */ B(LdaConstant), U8(79),
-  /*  833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  841 S> */ B(LdaConstant), U8(80),
-  /*  843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  851 S> */ B(LdaConstant), U8(81),
-  /*  853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  861 S> */ B(LdaConstant), U8(82),
-  /*  863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  871 S> */ B(LdaConstant), U8(83),
-  /*  873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  881 S> */ B(LdaConstant), U8(84),
-  /*  883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  891 S> */ B(LdaConstant), U8(85),
-  /*  893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  901 S> */ B(LdaConstant), U8(86),
-  /*  903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  911 S> */ B(LdaConstant), U8(87),
-  /*  913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  921 S> */ B(LdaConstant), U8(88),
-  /*  923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  931 S> */ B(LdaConstant), U8(89),
-  /*  933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  941 S> */ B(LdaConstant), U8(90),
-  /*  943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  951 S> */ B(LdaConstant), U8(91),
-  /*  953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  961 S> */ B(LdaConstant), U8(92),
-  /*  963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  971 S> */ B(LdaConstant), U8(93),
-  /*  973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  981 S> */ B(LdaConstant), U8(94),
-  /*  983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  991 S> */ B(LdaConstant), U8(95),
-  /*  993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1001 S> */ B(LdaConstant), U8(96),
-  /* 1003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1011 S> */ B(LdaConstant), U8(97),
-  /* 1013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1021 S> */ B(LdaConstant), U8(98),
-  /* 1023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1031 S> */ B(LdaConstant), U8(99),
-  /* 1033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1041 S> */ B(LdaConstant), U8(100),
-  /* 1043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1051 S> */ B(LdaConstant), U8(101),
-  /* 1053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1061 S> */ B(LdaConstant), U8(102),
-  /* 1063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1071 S> */ B(LdaConstant), U8(103),
-  /* 1073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1081 S> */ B(LdaConstant), U8(104),
-  /* 1083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1091 S> */ B(LdaConstant), U8(105),
-  /* 1093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1101 S> */ B(LdaConstant), U8(106),
-  /* 1103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1111 S> */ B(LdaConstant), U8(107),
-  /* 1113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1121 S> */ B(LdaConstant), U8(108),
-  /* 1123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1131 S> */ B(LdaConstant), U8(109),
-  /* 1133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1141 S> */ B(LdaConstant), U8(110),
-  /* 1143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1151 S> */ B(LdaConstant), U8(111),
-  /* 1153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1161 S> */ B(LdaConstant), U8(112),
-  /* 1163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1171 S> */ B(LdaConstant), U8(113),
-  /* 1173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1181 S> */ B(LdaConstant), U8(114),
-  /* 1183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1191 S> */ B(LdaConstant), U8(115),
-  /* 1193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1201 S> */ B(LdaConstant), U8(116),
-  /* 1203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1211 S> */ B(LdaConstant), U8(117),
-  /* 1213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1221 S> */ B(LdaConstant), U8(118),
-  /* 1223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1231 S> */ B(LdaConstant), U8(119),
-  /* 1233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1241 S> */ B(LdaConstant), U8(120),
-  /* 1243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1251 S> */ B(LdaConstant), U8(121),
-  /* 1253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1261 S> */ B(LdaConstant), U8(122),
-  /* 1263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1271 S> */ B(LdaConstant), U8(123),
-  /* 1273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1281 S> */ B(LdaConstant), U8(124),
-  /* 1283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1291 S> */ B(LdaConstant), U8(125),
-  /* 1293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1301 S> */ B(LdaConstant), U8(126),
-  /* 1303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1311 S> */ B(LdaConstant), U8(127),
-  /* 1313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1321 S> */ B(LdaConstant), U8(128),
-  /* 1323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1331 S> */ B(LdaConstant), U8(129),
-  /* 1333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1341 S> */ B(LdaConstant), U8(130),
-  /* 1343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1351 S> */ B(LdaConstant), U8(131),
-  /* 1353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1361 S> */ B(LdaConstant), U8(132),
-  /* 1363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1371 S> */ B(LdaConstant), U8(133),
-  /* 1373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1381 S> */ B(LdaConstant), U8(134),
-  /* 1383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1391 S> */ B(LdaConstant), U8(135),
-  /* 1393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1401 S> */ B(LdaConstant), U8(136),
-  /* 1403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1411 S> */ B(LdaConstant), U8(137),
-  /* 1413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1421 S> */ B(LdaConstant), U8(138),
-  /* 1423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1431 S> */ B(LdaConstant), U8(139),
-  /* 1433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1441 S> */ B(LdaConstant), U8(140),
-  /* 1443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1451 S> */ B(LdaConstant), U8(141),
-  /* 1453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1461 S> */ B(LdaConstant), U8(142),
-  /* 1463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1471 S> */ B(LdaConstant), U8(143),
-  /* 1473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1481 S> */ B(LdaConstant), U8(144),
-  /* 1483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1491 S> */ B(LdaConstant), U8(145),
-  /* 1493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1501 S> */ B(LdaConstant), U8(146),
-  /* 1503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1511 S> */ B(LdaConstant), U8(147),
-  /* 1513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1521 S> */ B(LdaConstant), U8(148),
-  /* 1523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1531 S> */ B(LdaConstant), U8(149),
-  /* 1533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1541 S> */ B(LdaConstant), U8(150),
-  /* 1543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1551 S> */ B(LdaConstant), U8(151),
-  /* 1553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1561 S> */ B(LdaConstant), U8(152),
-  /* 1563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1571 S> */ B(LdaConstant), U8(153),
-  /* 1573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1581 S> */ B(LdaConstant), U8(154),
-  /* 1583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1591 S> */ B(LdaConstant), U8(155),
-  /* 1593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1601 S> */ B(LdaConstant), U8(156),
-  /* 1603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1611 S> */ B(LdaConstant), U8(157),
-  /* 1613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1621 S> */ B(LdaConstant), U8(158),
-  /* 1623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1631 S> */ B(LdaConstant), U8(159),
-  /* 1633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1641 S> */ B(LdaConstant), U8(160),
-  /* 1643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1651 S> */ B(LdaConstant), U8(161),
-  /* 1653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1661 S> */ B(LdaConstant), U8(162),
-  /* 1663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1671 S> */ B(LdaConstant), U8(163),
-  /* 1673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1681 S> */ B(LdaConstant), U8(164),
-  /* 1683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1691 S> */ B(LdaConstant), U8(165),
-  /* 1693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1701 S> */ B(LdaConstant), U8(166),
-  /* 1703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1711 S> */ B(LdaConstant), U8(167),
-  /* 1713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1721 S> */ B(LdaConstant), U8(168),
-  /* 1723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1731 S> */ B(LdaConstant), U8(169),
-  /* 1733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1741 S> */ B(LdaConstant), U8(170),
-  /* 1743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1751 S> */ B(LdaConstant), U8(171),
-  /* 1753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1761 S> */ B(LdaConstant), U8(172),
-  /* 1763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1771 S> */ B(LdaConstant), U8(173),
-  /* 1773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1781 S> */ B(LdaConstant), U8(174),
-  /* 1783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1791 S> */ B(LdaConstant), U8(175),
-  /* 1793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1801 S> */ B(LdaConstant), U8(176),
-  /* 1803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1811 S> */ B(LdaConstant), U8(177),
-  /* 1813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1821 S> */ B(LdaConstant), U8(178),
-  /* 1823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1831 S> */ B(LdaConstant), U8(179),
-  /* 1833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1841 S> */ B(LdaConstant), U8(180),
-  /* 1843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1851 S> */ B(LdaConstant), U8(181),
-  /* 1853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1861 S> */ B(LdaConstant), U8(182),
-  /* 1863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1871 S> */ B(LdaConstant), U8(183),
-  /* 1873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1881 S> */ B(LdaConstant), U8(184),
-  /* 1883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1891 S> */ B(LdaConstant), U8(185),
-  /* 1893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1901 S> */ B(LdaConstant), U8(186),
-  /* 1903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1911 S> */ B(LdaConstant), U8(187),
-  /* 1913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1921 S> */ B(LdaConstant), U8(188),
-  /* 1923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1931 S> */ B(LdaConstant), U8(189),
-  /* 1933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1941 S> */ B(LdaConstant), U8(190),
-  /* 1943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1951 S> */ B(LdaConstant), U8(191),
-  /* 1953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1961 S> */ B(LdaConstant), U8(192),
-  /* 1963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1971 S> */ B(LdaConstant), U8(193),
-  /* 1973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1981 S> */ B(LdaConstant), U8(194),
-  /* 1983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1991 S> */ B(LdaConstant), U8(195),
-  /* 1993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2001 S> */ B(LdaConstant), U8(196),
-  /* 2003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2011 S> */ B(LdaConstant), U8(197),
-  /* 2013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2021 S> */ B(LdaConstant), U8(198),
-  /* 2023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2031 S> */ B(LdaConstant), U8(199),
-  /* 2033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2041 S> */ B(LdaConstant), U8(200),
-  /* 2043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2051 S> */ B(LdaConstant), U8(201),
-  /* 2053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2061 S> */ B(LdaConstant), U8(202),
-  /* 2063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2071 S> */ B(LdaConstant), U8(203),
-  /* 2073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2081 S> */ B(LdaConstant), U8(204),
-  /* 2083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2091 S> */ B(LdaConstant), U8(205),
-  /* 2093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2101 S> */ B(LdaConstant), U8(206),
-  /* 2103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2111 S> */ B(LdaConstant), U8(207),
-  /* 2113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2121 S> */ B(LdaConstant), U8(208),
-  /* 2123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2131 S> */ B(LdaConstant), U8(209),
-  /* 2133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2141 S> */ B(LdaConstant), U8(210),
-  /* 2143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2151 S> */ B(LdaConstant), U8(211),
-  /* 2153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2161 S> */ B(LdaConstant), U8(212),
-  /* 2163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2171 S> */ B(LdaConstant), U8(213),
-  /* 2173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2181 S> */ B(LdaConstant), U8(214),
-  /* 2183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2191 S> */ B(LdaConstant), U8(215),
-  /* 2193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2201 S> */ B(LdaConstant), U8(216),
-  /* 2203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2211 S> */ B(LdaConstant), U8(217),
-  /* 2213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2221 S> */ B(LdaConstant), U8(218),
-  /* 2223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2231 S> */ B(LdaConstant), U8(219),
-  /* 2233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2241 S> */ B(LdaConstant), U8(220),
-  /* 2243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2251 S> */ B(LdaConstant), U8(221),
-  /* 2253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2261 S> */ B(LdaConstant), U8(222),
-  /* 2263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2271 S> */ B(LdaConstant), U8(223),
-  /* 2273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2281 S> */ B(LdaConstant), U8(224),
-  /* 2283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2291 S> */ B(LdaConstant), U8(225),
-  /* 2293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2301 S> */ B(LdaConstant), U8(226),
-  /* 2303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2311 S> */ B(LdaConstant), U8(227),
-  /* 2313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2321 S> */ B(LdaConstant), U8(228),
-  /* 2323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2331 S> */ B(LdaConstant), U8(229),
-  /* 2333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2341 S> */ B(LdaConstant), U8(230),
-  /* 2343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2351 S> */ B(LdaConstant), U8(231),
-  /* 2353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2361 S> */ B(LdaConstant), U8(232),
-  /* 2363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2371 S> */ B(LdaConstant), U8(233),
-  /* 2373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2381 S> */ B(LdaConstant), U8(234),
-  /* 2383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2391 S> */ B(LdaConstant), U8(235),
-  /* 2393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2401 S> */ B(LdaConstant), U8(236),
-  /* 2403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2411 S> */ B(LdaConstant), U8(237),
-  /* 2413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2421 S> */ B(LdaConstant), U8(238),
-  /* 2423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2431 S> */ B(LdaConstant), U8(239),
-  /* 2433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2441 S> */ B(LdaConstant), U8(240),
-  /* 2443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2451 S> */ B(LdaConstant), U8(241),
-  /* 2453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2461 S> */ B(LdaConstant), U8(242),
-  /* 2463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2471 S> */ B(LdaConstant), U8(243),
-  /* 2473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2481 S> */ B(LdaConstant), U8(244),
-  /* 2483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2491 S> */ B(LdaConstant), U8(245),
-  /* 2493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2501 S> */ B(LdaConstant), U8(246),
-  /* 2503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2511 S> */ B(LdaConstant), U8(247),
-  /* 2513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2521 S> */ B(LdaConstant), U8(248),
-  /* 2523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2531 S> */ B(LdaConstant), U8(249),
-  /* 2533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2541 S> */ B(LdaConstant), U8(250),
-  /* 2543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2551 S> */ B(LdaConstant), U8(251),
-  /* 2553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2561 S> */ B(LdaConstant), U8(252),
-  /* 2563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2571 S> */ B(LdaConstant), U8(253),
-  /* 2573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2581 S> */ B(LdaConstant), U8(254),
-  /* 2583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2591 S> */ B(LdaConstant), U8(255),
-  /* 2593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2601 S> */ B(Wide), B(CreateObjectLiteral), U16(256), U16(0), U8(1),
                 B(Star), R(1),
   /* 2638 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden b/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
index af6e942..4478c4d 100644
--- a/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
+++ b/test/cctest/interpreter/bytecode_expectations/OuterContextVariables.golden
@@ -22,15 +22,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 21
+bytecode array length: 15
 bytecodes: [
   /*   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),
+  /*  102 S> */ B(LdrContextSlot), R(context), U8(1), R(0),
+                B(LdrContextSlot), R(0), U8(4), R(1),
   /*  120 E> */ B(LdaContextSlot), R(context), U8(4),
                 B(Mul), R(1),
   /*  130 S> */ B(Return),
@@ -54,15 +50,11 @@
 "
 frame size: 2
 parameter count: 1
-bytecode array length: 22
+bytecode array length: 16
 bytecodes: [
   /*   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),
+  /*  102 S> */ B(LdrContextSlot), R(context), U8(4), R(0),
+  /*  111 E> */ B(LdrContextSlot), R(context), U8(1), R(1),
                 B(Ldar), R(0),
                 B(StaContextSlot), R(1), U8(4),
                 B(LdaUndefined),
diff --git a/test/cctest/interpreter/bytecode_expectations/Parameters.golden b/test/cctest/interpreter/bytecode_expectations/Parameters.golden
index f26c066..71b6df7 100644
--- a/test/cctest/interpreter/bytecode_expectations/Parameters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Parameters.golden
@@ -109,7 +109,7 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   19 S> */ B(LdaSmi), U8(1),
-  /*   24 E> */ B(Star), R(arg0),
+                B(Star), R(arg0),
                 B(LdaUndefined),
   /*   29 S> */ B(Return),
 ]
@@ -129,7 +129,7 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   37 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(arg1),
+                B(Star), R(arg1),
                 B(LdaUndefined),
   /*   47 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden b/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
index b9fd679..8ff00a0 100644
--- a/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PrimitiveExpressions.golden
@@ -13,11 +13,12 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 5
+bytecode array length: 6
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
+  /*   45 S> */ B(Nop),
   /*   55 S> */ B(Return),
 ]
 constant pool: [
@@ -29,16 +30,15 @@
 snippet: "
   var x = 0; return x + 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 11
+bytecode array length: 9
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+                B(Add), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -50,16 +50,15 @@
 snippet: "
   var x = 0; return x - 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 11
+bytecode array length: 9
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+                B(Sub), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -71,16 +70,15 @@
 snippet: "
   var x = 4; return x * 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+                B(Mul), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -92,16 +90,15 @@
 snippet: "
   var x = 4; return x / 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+                B(Div), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -113,16 +110,15 @@
 snippet: "
   var x = 4; return x % 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(3),
+                B(Mod), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -134,16 +130,15 @@
 snippet: "
   var x = 1; return x | 2;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(BitwiseOr), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -155,16 +150,15 @@
 snippet: "
   var x = 1; return x ^ 2;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(BitwiseXor), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -176,16 +170,15 @@
 snippet: "
   var x = 1; return x & 2;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(BitwiseAnd), R(0),
   /*   59 S> */ B(Return),
 ]
 constant pool: [
@@ -197,16 +190,15 @@
 snippet: "
   var x = 10; return x << 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(3),
+                B(ShiftLeft), R(0),
   /*   61 S> */ B(Return),
 ]
 constant pool: [
@@ -218,16 +210,15 @@
 snippet: "
   var x = 10; return x >> 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(3),
+                B(ShiftRight), R(0),
   /*   61 S> */ B(Return),
 ]
 constant pool: [
@@ -239,16 +230,15 @@
 snippet: "
   var x = 10; return x >>> 3;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(3),
+                B(ShiftRightLogical), R(0),
   /*   62 S> */ B(Return),
 ]
 constant pool: [
@@ -266,7 +256,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaZero),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(LdaSmi), U8(3),
   /*   60 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden b/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
index df4c277..583a073 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyCall.golden
@@ -13,16 +13,14 @@
   function f(a) { return a.func(); }
   f(new (function Obj() { this.func = function() { return; }})())
 "
-frame size: 2
+frame size: 1
 parameter count: 2
-bytecode array length: 17
+bytecode array length: 13
 bytecodes: [
   /*   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),
+  /*   16 S> */ B(Nop),
+  /*   24 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
+  /*   25 E> */ B(Call), R(0), R(arg0), U8(1), U8(1),
   /*   33 S> */ B(Return),
 ]
 constant pool: [
@@ -38,17 +36,15 @@
 "
 frame size: 4
 parameter count: 4
-bytecode array length: 25
+bytecode array length: 24
 bytecodes: [
   /*   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),
+  /*   22 S> */ B(Nop),
+  /*   30 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
+                B(Ldar), R(0),
+                B(Mov), R(arg0), R(1),
+                B(Mov), R(arg1), R(2),
+                B(Mov), R(arg2), R(3),
   /*   31 E> */ B(Call), R(0), R(1), U8(3), U8(1),
   /*   43 S> */ B(Return),
 ]
@@ -65,20 +61,16 @@
 "
 frame size: 4
 parameter count: 3
-bytecode array length: 31
+bytecode array length: 25
 bytecodes: [
   /*   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),
+  /*   19 S> */ B(Nop),
+  /*   27 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
+                B(Ldar), R(arg1),
+  /*   37 E> */ B(Add), R(arg1),
                 B(Star), R(2),
-  /*   40 E> */ B(Ldar), R(arg1),
-                B(Star), R(3),
+                B(Mov), R(arg0), R(1),
+                B(Mov), R(arg1), R(3),
   /*   28 E> */ B(Call), R(0), R(1), U8(3), U8(1),
   /*   44 S> */ B(Return),
 ]
@@ -222,400 +214,270 @@
    return a.func(); }
   f(new (function Obj() { this.func = function() { return; }})())
 "
-frame size: 2
+frame size: 1
 parameter count: 2
-bytecode array length: 1050
+bytecode array length: 663
 bytecodes: [
   /*   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),
+  /*   17 S> */ B(Nop),
+  /*   18 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
+  /*   26 S> */ B(Nop),
+  /*   27 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
+  /*   35 S> */ B(Nop),
+  /*   36 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
+  /*   44 S> */ B(Nop),
+  /*   45 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
+  /*   53 S> */ B(Nop),
+  /*   54 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
+  /*   62 S> */ B(Nop),
+  /*   63 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
+  /*   71 S> */ B(Nop),
+  /*   72 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
+  /*   80 S> */ B(Nop),
+  /*   81 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
+  /*   89 S> */ B(Nop),
+  /*   90 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
+  /*   98 S> */ B(Nop),
+  /*   99 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
+  /*  107 S> */ B(Nop),
+  /*  108 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
+  /*  116 S> */ B(Nop),
+  /*  117 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
+  /*  125 S> */ B(Nop),
+  /*  126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
+  /*  134 S> */ B(Nop),
+  /*  135 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
+  /*  143 S> */ B(Nop),
+  /*  144 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
+  /*  152 S> */ B(Nop),
+  /*  153 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
+  /*  161 S> */ B(Nop),
+  /*  162 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
+  /*  170 S> */ B(Nop),
+  /*  171 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
+  /*  179 S> */ B(Nop),
+  /*  180 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
+  /*  188 S> */ B(Nop),
+  /*  189 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
+  /*  197 S> */ B(Nop),
+  /*  198 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
+  /*  206 S> */ B(Nop),
+  /*  207 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
+  /*  215 S> */ B(Nop),
+  /*  216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
+  /*  224 S> */ B(Nop),
+  /*  225 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
+  /*  233 S> */ B(Nop),
+  /*  234 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
+  /*  242 S> */ B(Nop),
+  /*  243 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
+  /*  251 S> */ B(Nop),
+  /*  252 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
+  /*  260 S> */ B(Nop),
+  /*  261 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
+  /*  269 S> */ B(Nop),
+  /*  270 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
+  /*  278 S> */ B(Nop),
+  /*  279 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
+  /*  287 S> */ B(Nop),
+  /*  288 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
+  /*  296 S> */ B(Nop),
+  /*  297 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
+  /*  305 S> */ B(Nop),
+  /*  306 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
+  /*  314 S> */ B(Nop),
+  /*  315 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
+  /*  323 S> */ B(Nop),
+  /*  324 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
+  /*  332 S> */ B(Nop),
+  /*  333 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
+  /*  341 S> */ B(Nop),
+  /*  342 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
+  /*  350 S> */ B(Nop),
+  /*  351 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
+  /*  359 S> */ B(Nop),
+  /*  360 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
+  /*  368 S> */ B(Nop),
+  /*  369 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
+  /*  377 S> */ B(Nop),
+  /*  378 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
+  /*  386 S> */ B(Nop),
+  /*  387 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
+  /*  395 S> */ B(Nop),
+  /*  396 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
+  /*  404 S> */ B(Nop),
+  /*  405 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
+  /*  413 S> */ B(Nop),
+  /*  414 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
+  /*  422 S> */ B(Nop),
+  /*  423 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
+  /*  431 S> */ B(Nop),
+  /*  432 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
+  /*  440 S> */ B(Nop),
+  /*  441 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
+  /*  449 S> */ B(Nop),
+  /*  450 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
+  /*  458 S> */ B(Nop),
+  /*  459 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
+  /*  467 S> */ B(Nop),
+  /*  468 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
+  /*  476 S> */ B(Nop),
+  /*  477 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
+  /*  485 S> */ B(Nop),
+  /*  486 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
+  /*  494 S> */ B(Nop),
+  /*  495 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
+  /*  503 S> */ B(Nop),
+  /*  504 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
+  /*  512 S> */ B(Nop),
+  /*  513 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
+  /*  521 S> */ B(Nop),
+  /*  522 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
+  /*  530 S> */ B(Nop),
+  /*  531 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
+  /*  539 S> */ B(Nop),
+  /*  540 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
+  /*  548 S> */ B(Nop),
+  /*  549 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
+  /*  557 S> */ B(Nop),
+  /*  558 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
+  /*  566 S> */ B(Nop),
+  /*  567 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
+  /*  575 S> */ B(Nop),
+  /*  576 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
+  /*  584 S> */ B(Nop),
+  /*  585 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
+  /*  593 S> */ B(Nop),
+  /*  594 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
+  /*  602 S> */ B(Nop),
+  /*  603 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
+  /*  611 S> */ B(Nop),
+  /*  612 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
+  /*  620 S> */ B(Nop),
+  /*  621 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
+  /*  629 S> */ B(Nop),
+  /*  630 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
+  /*  638 S> */ B(Nop),
+  /*  639 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
+  /*  647 S> */ B(Nop),
+  /*  648 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
+  /*  656 S> */ B(Nop),
+  /*  657 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
+  /*  665 S> */ B(Nop),
+  /*  666 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
+  /*  674 S> */ B(Nop),
+  /*  675 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
+  /*  683 S> */ B(Nop),
+  /*  684 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
+  /*  692 S> */ B(Nop),
+  /*  693 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
+  /*  701 S> */ B(Nop),
+  /*  702 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
+  /*  710 S> */ B(Nop),
+  /*  711 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
+  /*  719 S> */ B(Nop),
+  /*  720 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
+  /*  728 S> */ B(Nop),
+  /*  729 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
+  /*  737 S> */ B(Nop),
+  /*  738 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
+  /*  746 S> */ B(Nop),
+  /*  747 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
+  /*  755 S> */ B(Nop),
+  /*  756 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
+  /*  764 S> */ B(Nop),
+  /*  765 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
+  /*  773 S> */ B(Nop),
+  /*  774 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
+  /*  782 S> */ B(Nop),
+  /*  783 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
+  /*  791 S> */ B(Nop),
+  /*  792 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
+  /*  800 S> */ B(Nop),
+  /*  801 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
+  /*  809 S> */ B(Nop),
+  /*  810 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
+  /*  818 S> */ B(Nop),
+  /*  819 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
+  /*  827 S> */ B(Nop),
+  /*  828 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
+  /*  836 S> */ B(Nop),
+  /*  837 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
+  /*  845 S> */ B(Nop),
+  /*  846 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
+  /*  854 S> */ B(Nop),
+  /*  855 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
+  /*  863 S> */ B(Nop),
+  /*  864 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
+  /*  872 S> */ B(Nop),
+  /*  873 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
+  /*  881 S> */ B(Nop),
+  /*  882 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
+  /*  890 S> */ B(Nop),
+  /*  891 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
+  /*  899 S> */ B(Nop),
+  /*  900 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
+  /*  908 S> */ B(Nop),
+  /*  909 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
+  /*  917 S> */ B(Nop),
+  /*  918 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
+  /*  926 S> */ B(Nop),
+  /*  927 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
+  /*  935 S> */ B(Nop),
+  /*  936 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
+  /*  944 S> */ B(Nop),
+  /*  945 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
+  /*  953 S> */ B(Nop),
+  /*  954 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
+  /*  962 S> */ B(Nop),
+  /*  963 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
+  /*  971 S> */ B(Nop),
+  /*  972 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
+  /*  980 S> */ B(Nop),
+  /*  981 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
+  /*  989 S> */ B(Nop),
+  /*  990 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
+  /*  998 S> */ B(Nop),
+  /*  999 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
+  /* 1007 S> */ B(Nop),
+  /* 1008 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
+  /* 1016 S> */ B(Nop),
+  /* 1017 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
+  /* 1025 S> */ B(Nop),
+  /* 1026 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
+  /* 1034 S> */ B(Nop),
+  /* 1035 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
+  /* 1043 S> */ B(Nop),
+  /* 1044 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
+  /* 1052 S> */ B(Nop),
+  /* 1053 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
+  /* 1061 S> */ B(Nop),
+  /* 1062 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
+  /* 1070 S> */ B(Nop),
+  /* 1071 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
+  /* 1079 S> */ B(Nop),
+  /* 1080 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
+  /* 1088 S> */ B(Nop),
+  /* 1089 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
+  /* 1097 S> */ B(Nop),
+  /* 1098 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
+  /* 1106 S> */ B(Nop),
+  /* 1107 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
+  /* 1115 S> */ B(Nop),
+  /* 1116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
+  /* 1124 S> */ B(Nop),
+  /* 1125 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
+  /* 1133 S> */ B(Nop),
+  /* 1134 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
+  /* 1142 S> */ B(Nop),
+  /* 1143 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
+  /* 1151 S> */ B(Nop),
+  /* 1152 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
+  /* 1160 S> */ B(Nop),
+  /* 1161 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
+  /* 1169 S> */ B(Nop),
+  /* 1177 E> */ B(Wide), B(LdrNamedProperty), R16(arg0), U16(0), U16(259), R16(0),
+  /* 1178 E> */ B(Wide), B(Call), R16(0), R16(arg0), U16(1), U16(257),
   /* 1186 S> */ B(Return),
 ]
 constant pool: [
diff --git a/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden b/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
index 76741cb..cee0357 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyLoads.golden
@@ -13,14 +13,13 @@
   function f(a) { return a.name; }
   f({name : \"test\"});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 10
+bytecode array length: 7
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   16 S> */ B(Ldar), R(arg0),
-                B(Star), R(0),
-  /*   24 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   16 S> */ B(Nop),
+  /*   24 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
   /*   31 S> */ B(Return),
 ]
 constant pool: [
@@ -34,14 +33,13 @@
   function f(a) { return a[\"key\"]; }
   f({key : \"test\"});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 10
+bytecode array length: 7
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   16 S> */ B(Ldar), R(arg0),
-                B(Star), R(0),
-  /*   24 E> */ B(LoadIC), R(0), U8(0), U8(1),
+  /*   16 S> */ B(Nop),
+  /*   24 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
   /*   33 S> */ B(Return),
 ]
 constant pool: [
@@ -55,15 +53,13 @@
   function f(a) { return a[100]; }
   f({100 : \"test\"});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 11
+bytecode array length: 7
 bytecodes: [
   /*   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),
+  /*   16 S> */ B(LdaSmi), U8(100),
+  /*   24 E> */ B(LdaKeyedProperty), R(arg0), U8(1),
   /*   31 S> */ B(Return),
 ]
 constant pool: [
@@ -76,15 +72,13 @@
   function f(a, b) { return a[b]; }
   f({arg : \"test\"}, \"arg\");
 "
-frame size: 1
+frame size: 0
 parameter count: 3
-bytecode array length: 11
+bytecode array length: 7
 bytecodes: [
   /*   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),
+  /*   19 S> */ B(Ldar), R(arg1),
+  /*   28 E> */ B(LdaKeyedProperty), R(arg0), U8(1),
   /*   32 S> */ B(Return),
 ]
 constant pool: [
@@ -97,19 +91,16 @@
   function f(a) { var b = a.name; return a[-124]; }
   f({\"-124\" : \"test\", name : 123 })
 "
-frame size: 2
+frame size: 1
 parameter count: 2
-bytecode array length: 21
+bytecode array length: 15
 bytecodes: [
   /*   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),
+  /*   25 S> */ B(Nop),
+  /*   25 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(1), R(0),
+                B(Ldar), R(0),
+  /*   32 S> */ B(LdaSmi), U8(-124),
+  /*   40 E> */ B(LdaKeyedProperty), R(arg0), U8(3),
   /*   48 S> */ B(Return),
 ]
 constant pool: [
@@ -254,526 +245,397 @@
   }
   f({name : \"test\"})
 "
-frame size: 2
+frame size: 1
 parameter count: 2
-bytecode array length: 1294
+bytecode array length: 1035
 bytecodes: [
   /*   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),
+  /*   27 S> */ B(Nop),
+  /*   32 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(1), R(0),
+                B(Ldar), R(0),
+  /*   41 S> */ B(Nop),
+  /*   46 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(3), R(0),
+                B(Ldar), R(0),
+  /*   55 S> */ B(Nop),
+  /*   60 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(5), R(0),
+                B(Ldar), R(0),
+  /*   69 S> */ B(Nop),
+  /*   74 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(7), R(0),
+                B(Ldar), R(0),
+  /*   83 S> */ B(Nop),
+  /*   88 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(9), R(0),
+                B(Ldar), R(0),
+  /*   97 S> */ B(Nop),
+  /*  102 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(11), R(0),
+                B(Ldar), R(0),
+  /*  111 S> */ B(Nop),
+  /*  116 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(13), R(0),
+                B(Ldar), R(0),
+  /*  125 S> */ B(Nop),
+  /*  130 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(15), R(0),
+                B(Ldar), R(0),
+  /*  139 S> */ B(Nop),
+  /*  144 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(17), R(0),
+                B(Ldar), R(0),
+  /*  153 S> */ B(Nop),
+  /*  158 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(19), R(0),
+                B(Ldar), R(0),
+  /*  167 S> */ B(Nop),
+  /*  172 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(21), R(0),
+                B(Ldar), R(0),
+  /*  181 S> */ B(Nop),
+  /*  186 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(23), R(0),
+                B(Ldar), R(0),
+  /*  195 S> */ B(Nop),
+  /*  200 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(25), R(0),
+                B(Ldar), R(0),
+  /*  209 S> */ B(Nop),
+  /*  214 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(27), R(0),
+                B(Ldar), R(0),
+  /*  223 S> */ B(Nop),
+  /*  228 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(29), R(0),
+                B(Ldar), R(0),
+  /*  237 S> */ B(Nop),
+  /*  242 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(31), R(0),
+                B(Ldar), R(0),
+  /*  251 S> */ B(Nop),
+  /*  256 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(33), R(0),
+                B(Ldar), R(0),
+  /*  265 S> */ B(Nop),
+  /*  270 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(35), R(0),
+                B(Ldar), R(0),
+  /*  279 S> */ B(Nop),
+  /*  284 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(37), R(0),
+                B(Ldar), R(0),
+  /*  293 S> */ B(Nop),
+  /*  298 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(39), R(0),
+                B(Ldar), R(0),
+  /*  307 S> */ B(Nop),
+  /*  312 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(41), R(0),
+                B(Ldar), R(0),
+  /*  321 S> */ B(Nop),
+  /*  326 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(43), R(0),
+                B(Ldar), R(0),
+  /*  335 S> */ B(Nop),
+  /*  340 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(45), R(0),
+                B(Ldar), R(0),
+  /*  349 S> */ B(Nop),
+  /*  354 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(47), R(0),
+                B(Ldar), R(0),
+  /*  363 S> */ B(Nop),
+  /*  368 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(49), R(0),
+                B(Ldar), R(0),
+  /*  377 S> */ B(Nop),
+  /*  382 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(51), R(0),
+                B(Ldar), R(0),
+  /*  391 S> */ B(Nop),
+  /*  396 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(53), R(0),
+                B(Ldar), R(0),
+  /*  405 S> */ B(Nop),
+  /*  410 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(55), R(0),
+                B(Ldar), R(0),
+  /*  419 S> */ B(Nop),
+  /*  424 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(57), R(0),
+                B(Ldar), R(0),
+  /*  433 S> */ B(Nop),
+  /*  438 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(59), R(0),
+                B(Ldar), R(0),
+  /*  447 S> */ B(Nop),
+  /*  452 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(61), R(0),
+                B(Ldar), R(0),
+  /*  461 S> */ B(Nop),
+  /*  466 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(63), R(0),
+                B(Ldar), R(0),
+  /*  475 S> */ B(Nop),
+  /*  480 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(65), R(0),
+                B(Ldar), R(0),
+  /*  489 S> */ B(Nop),
+  /*  494 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(67), R(0),
+                B(Ldar), R(0),
+  /*  503 S> */ B(Nop),
+  /*  508 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(69), R(0),
+                B(Ldar), R(0),
+  /*  517 S> */ B(Nop),
+  /*  522 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(71), R(0),
+                B(Ldar), R(0),
+  /*  531 S> */ B(Nop),
+  /*  536 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(73), R(0),
+                B(Ldar), R(0),
+  /*  545 S> */ B(Nop),
+  /*  550 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(75), R(0),
+                B(Ldar), R(0),
+  /*  559 S> */ B(Nop),
+  /*  564 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(77), R(0),
+                B(Ldar), R(0),
+  /*  573 S> */ B(Nop),
+  /*  578 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(79), R(0),
+                B(Ldar), R(0),
+  /*  587 S> */ B(Nop),
+  /*  592 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(81), R(0),
+                B(Ldar), R(0),
+  /*  601 S> */ B(Nop),
+  /*  606 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(83), R(0),
+                B(Ldar), R(0),
+  /*  615 S> */ B(Nop),
+  /*  620 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(85), R(0),
+                B(Ldar), R(0),
+  /*  629 S> */ B(Nop),
+  /*  634 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(87), R(0),
+                B(Ldar), R(0),
+  /*  643 S> */ B(Nop),
+  /*  648 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(89), R(0),
+                B(Ldar), R(0),
+  /*  657 S> */ B(Nop),
+  /*  662 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(91), R(0),
+                B(Ldar), R(0),
+  /*  671 S> */ B(Nop),
+  /*  676 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(93), R(0),
+                B(Ldar), R(0),
+  /*  685 S> */ B(Nop),
+  /*  690 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(95), R(0),
+                B(Ldar), R(0),
+  /*  699 S> */ B(Nop),
+  /*  704 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(97), R(0),
+                B(Ldar), R(0),
+  /*  713 S> */ B(Nop),
+  /*  718 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(99), R(0),
+                B(Ldar), R(0),
+  /*  727 S> */ B(Nop),
+  /*  732 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(101), R(0),
+                B(Ldar), R(0),
+  /*  741 S> */ B(Nop),
+  /*  746 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(103), R(0),
+                B(Ldar), R(0),
+  /*  755 S> */ B(Nop),
+  /*  760 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(105), R(0),
+                B(Ldar), R(0),
+  /*  769 S> */ B(Nop),
+  /*  774 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(107), R(0),
+                B(Ldar), R(0),
+  /*  783 S> */ B(Nop),
+  /*  788 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(109), R(0),
+                B(Ldar), R(0),
+  /*  797 S> */ B(Nop),
+  /*  802 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(111), R(0),
+                B(Ldar), R(0),
+  /*  811 S> */ B(Nop),
+  /*  816 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(113), R(0),
+                B(Ldar), R(0),
+  /*  825 S> */ B(Nop),
+  /*  830 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(115), R(0),
+                B(Ldar), R(0),
+  /*  839 S> */ B(Nop),
+  /*  844 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(117), R(0),
+                B(Ldar), R(0),
+  /*  853 S> */ B(Nop),
+  /*  858 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(119), R(0),
+                B(Ldar), R(0),
+  /*  867 S> */ B(Nop),
+  /*  872 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(121), R(0),
+                B(Ldar), R(0),
+  /*  881 S> */ B(Nop),
+  /*  886 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(123), R(0),
+                B(Ldar), R(0),
+  /*  895 S> */ B(Nop),
+  /*  900 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(125), R(0),
+                B(Ldar), R(0),
+  /*  909 S> */ B(Nop),
+  /*  914 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(127), R(0),
+                B(Ldar), R(0),
+  /*  923 S> */ B(Nop),
+  /*  928 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(129), R(0),
+                B(Ldar), R(0),
+  /*  937 S> */ B(Nop),
+  /*  942 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(131), R(0),
+                B(Ldar), R(0),
+  /*  951 S> */ B(Nop),
+  /*  956 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(133), R(0),
+                B(Ldar), R(0),
+  /*  965 S> */ B(Nop),
+  /*  970 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(135), R(0),
+                B(Ldar), R(0),
+  /*  979 S> */ B(Nop),
+  /*  984 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(137), R(0),
+                B(Ldar), R(0),
+  /*  993 S> */ B(Nop),
+  /*  998 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(139), R(0),
+                B(Ldar), R(0),
+  /* 1007 S> */ B(Nop),
+  /* 1012 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(141), R(0),
+                B(Ldar), R(0),
+  /* 1021 S> */ B(Nop),
+  /* 1026 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(143), R(0),
+                B(Ldar), R(0),
+  /* 1035 S> */ B(Nop),
+  /* 1040 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(145), R(0),
+                B(Ldar), R(0),
+  /* 1049 S> */ B(Nop),
+  /* 1054 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(147), R(0),
+                B(Ldar), R(0),
+  /* 1063 S> */ B(Nop),
+  /* 1068 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(149), R(0),
+                B(Ldar), R(0),
+  /* 1077 S> */ B(Nop),
+  /* 1082 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(151), R(0),
+                B(Ldar), R(0),
+  /* 1091 S> */ B(Nop),
+  /* 1096 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(153), R(0),
+                B(Ldar), R(0),
+  /* 1105 S> */ B(Nop),
+  /* 1110 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(155), R(0),
+                B(Ldar), R(0),
+  /* 1119 S> */ B(Nop),
+  /* 1124 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(157), R(0),
+                B(Ldar), R(0),
+  /* 1133 S> */ B(Nop),
+  /* 1138 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(159), R(0),
+                B(Ldar), R(0),
+  /* 1147 S> */ B(Nop),
+  /* 1152 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(161), R(0),
+                B(Ldar), R(0),
+  /* 1161 S> */ B(Nop),
+  /* 1166 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(163), R(0),
+                B(Ldar), R(0),
+  /* 1175 S> */ B(Nop),
+  /* 1180 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(165), R(0),
+                B(Ldar), R(0),
+  /* 1189 S> */ B(Nop),
+  /* 1194 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(167), R(0),
+                B(Ldar), R(0),
+  /* 1203 S> */ B(Nop),
+  /* 1208 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(169), R(0),
+                B(Ldar), R(0),
+  /* 1217 S> */ B(Nop),
+  /* 1222 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(171), R(0),
+                B(Ldar), R(0),
+  /* 1231 S> */ B(Nop),
+  /* 1236 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(173), R(0),
+                B(Ldar), R(0),
+  /* 1245 S> */ B(Nop),
+  /* 1250 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(175), R(0),
+                B(Ldar), R(0),
+  /* 1259 S> */ B(Nop),
+  /* 1264 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(177), R(0),
+                B(Ldar), R(0),
+  /* 1273 S> */ B(Nop),
+  /* 1278 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(179), R(0),
+                B(Ldar), R(0),
+  /* 1287 S> */ B(Nop),
+  /* 1292 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(181), R(0),
+                B(Ldar), R(0),
+  /* 1301 S> */ B(Nop),
+  /* 1306 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(183), R(0),
+                B(Ldar), R(0),
+  /* 1315 S> */ B(Nop),
+  /* 1320 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(185), R(0),
+                B(Ldar), R(0),
+  /* 1329 S> */ B(Nop),
+  /* 1334 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(187), R(0),
+                B(Ldar), R(0),
+  /* 1343 S> */ B(Nop),
+  /* 1348 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(189), R(0),
+                B(Ldar), R(0),
+  /* 1357 S> */ B(Nop),
+  /* 1362 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(191), R(0),
+                B(Ldar), R(0),
+  /* 1371 S> */ B(Nop),
+  /* 1376 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(193), R(0),
+                B(Ldar), R(0),
+  /* 1385 S> */ B(Nop),
+  /* 1390 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(195), R(0),
+                B(Ldar), R(0),
+  /* 1399 S> */ B(Nop),
+  /* 1404 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(197), R(0),
+                B(Ldar), R(0),
+  /* 1413 S> */ B(Nop),
+  /* 1418 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(199), R(0),
+                B(Ldar), R(0),
+  /* 1427 S> */ B(Nop),
+  /* 1432 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(201), R(0),
+                B(Ldar), R(0),
+  /* 1441 S> */ B(Nop),
+  /* 1446 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(203), R(0),
+                B(Ldar), R(0),
+  /* 1455 S> */ B(Nop),
+  /* 1460 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(205), R(0),
+                B(Ldar), R(0),
+  /* 1469 S> */ B(Nop),
+  /* 1474 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(207), R(0),
+                B(Ldar), R(0),
+  /* 1483 S> */ B(Nop),
+  /* 1488 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(209), R(0),
+                B(Ldar), R(0),
+  /* 1497 S> */ B(Nop),
+  /* 1502 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(211), R(0),
+                B(Ldar), R(0),
+  /* 1511 S> */ B(Nop),
+  /* 1516 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(213), R(0),
+                B(Ldar), R(0),
+  /* 1525 S> */ B(Nop),
+  /* 1530 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(215), R(0),
+                B(Ldar), R(0),
+  /* 1539 S> */ B(Nop),
+  /* 1544 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(217), R(0),
+                B(Ldar), R(0),
+  /* 1553 S> */ B(Nop),
+  /* 1558 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(219), R(0),
+                B(Ldar), R(0),
+  /* 1567 S> */ B(Nop),
+  /* 1572 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(221), R(0),
+                B(Ldar), R(0),
+  /* 1581 S> */ B(Nop),
+  /* 1586 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(223), R(0),
+                B(Ldar), R(0),
+  /* 1595 S> */ B(Nop),
+  /* 1600 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(225), R(0),
+                B(Ldar), R(0),
+  /* 1609 S> */ B(Nop),
+  /* 1614 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(227), R(0),
+                B(Ldar), R(0),
+  /* 1623 S> */ B(Nop),
+  /* 1628 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(229), R(0),
+                B(Ldar), R(0),
+  /* 1637 S> */ B(Nop),
+  /* 1642 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(231), R(0),
+                B(Ldar), R(0),
+  /* 1651 S> */ B(Nop),
+  /* 1656 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(233), R(0),
+                B(Ldar), R(0),
+  /* 1665 S> */ B(Nop),
+  /* 1670 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(235), R(0),
+                B(Ldar), R(0),
+  /* 1679 S> */ B(Nop),
+  /* 1684 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(237), R(0),
+                B(Ldar), R(0),
+  /* 1693 S> */ B(Nop),
+  /* 1698 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(239), R(0),
+                B(Ldar), R(0),
+  /* 1707 S> */ B(Nop),
+  /* 1712 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(241), R(0),
+                B(Ldar), R(0),
+  /* 1721 S> */ B(Nop),
+  /* 1726 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(243), R(0),
+                B(Ldar), R(0),
+  /* 1735 S> */ B(Nop),
+  /* 1740 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(245), R(0),
+                B(Ldar), R(0),
+  /* 1749 S> */ B(Nop),
+  /* 1754 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(247), R(0),
+                B(Ldar), R(0),
+  /* 1763 S> */ B(Nop),
+  /* 1768 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(249), R(0),
+                B(Ldar), R(0),
+  /* 1777 S> */ B(Nop),
+  /* 1782 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(251), R(0),
+                B(Ldar), R(0),
+  /* 1791 S> */ B(Nop),
+  /* 1796 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(253), R(0),
+                B(Ldar), R(0),
+  /* 1805 S> */ B(Nop),
+  /* 1810 E> */ B(LdrNamedProperty), R(arg0), U8(0), U8(255), R(0),
+                B(Ldar), R(0),
+  /* 1819 S> */ B(Nop),
+  /* 1827 E> */ B(Wide), B(LdaNamedProperty), R16(arg0), U16(0), U16(257),
   /* 1834 S> */ B(Return),
 ]
 constant pool: [
@@ -918,655 +780,397 @@
   }
   f({name : \"test\"}, \"name\")
 "
-frame size: 2
+frame size: 1
 parameter count: 3
-bytecode array length: 1422
+bytecode array length: 1034
 bytecodes: [
   /*   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),
+  /*   30 S> */ B(Ldar), R(arg1),
+  /*   36 E> */ B(LdrKeyedProperty), R(arg0), U8(1), R(0),
+                B(Ldar), R(0),
+  /*   42 S> */ B(Ldar), R(arg1),
+  /*   48 E> */ B(LdrKeyedProperty), R(arg0), U8(3), R(0),
+                B(Ldar), R(0),
+  /*   54 S> */ B(Ldar), R(arg1),
+  /*   60 E> */ B(LdrKeyedProperty), R(arg0), U8(5), R(0),
+                B(Ldar), R(0),
+  /*   66 S> */ B(Ldar), R(arg1),
+  /*   72 E> */ B(LdrKeyedProperty), R(arg0), U8(7), R(0),
+                B(Ldar), R(0),
+  /*   78 S> */ B(Ldar), R(arg1),
+  /*   84 E> */ B(LdrKeyedProperty), R(arg0), U8(9), R(0),
+                B(Ldar), R(0),
+  /*   90 S> */ B(Ldar), R(arg1),
+  /*   96 E> */ B(LdrKeyedProperty), R(arg0), U8(11), R(0),
+                B(Ldar), R(0),
+  /*  102 S> */ B(Ldar), R(arg1),
+  /*  108 E> */ B(LdrKeyedProperty), R(arg0), U8(13), R(0),
+                B(Ldar), R(0),
+  /*  114 S> */ B(Ldar), R(arg1),
+  /*  120 E> */ B(LdrKeyedProperty), R(arg0), U8(15), R(0),
+                B(Ldar), R(0),
+  /*  126 S> */ B(Ldar), R(arg1),
+  /*  132 E> */ B(LdrKeyedProperty), R(arg0), U8(17), R(0),
+                B(Ldar), R(0),
+  /*  138 S> */ B(Ldar), R(arg1),
+  /*  144 E> */ B(LdrKeyedProperty), R(arg0), U8(19), R(0),
+                B(Ldar), R(0),
+  /*  150 S> */ B(Ldar), R(arg1),
+  /*  156 E> */ B(LdrKeyedProperty), R(arg0), U8(21), R(0),
+                B(Ldar), R(0),
+  /*  162 S> */ B(Ldar), R(arg1),
+  /*  168 E> */ B(LdrKeyedProperty), R(arg0), U8(23), R(0),
+                B(Ldar), R(0),
+  /*  174 S> */ B(Ldar), R(arg1),
+  /*  180 E> */ B(LdrKeyedProperty), R(arg0), U8(25), R(0),
+                B(Ldar), R(0),
+  /*  186 S> */ B(Ldar), R(arg1),
+  /*  192 E> */ B(LdrKeyedProperty), R(arg0), U8(27), R(0),
+                B(Ldar), R(0),
+  /*  198 S> */ B(Ldar), R(arg1),
+  /*  204 E> */ B(LdrKeyedProperty), R(arg0), U8(29), R(0),
+                B(Ldar), R(0),
+  /*  210 S> */ B(Ldar), R(arg1),
+  /*  216 E> */ B(LdrKeyedProperty), R(arg0), U8(31), R(0),
+                B(Ldar), R(0),
+  /*  222 S> */ B(Ldar), R(arg1),
+  /*  228 E> */ B(LdrKeyedProperty), R(arg0), U8(33), R(0),
+                B(Ldar), R(0),
+  /*  234 S> */ B(Ldar), R(arg1),
+  /*  240 E> */ B(LdrKeyedProperty), R(arg0), U8(35), R(0),
+                B(Ldar), R(0),
+  /*  246 S> */ B(Ldar), R(arg1),
+  /*  252 E> */ B(LdrKeyedProperty), R(arg0), U8(37), R(0),
+                B(Ldar), R(0),
+  /*  258 S> */ B(Ldar), R(arg1),
+  /*  264 E> */ B(LdrKeyedProperty), R(arg0), U8(39), R(0),
+                B(Ldar), R(0),
+  /*  270 S> */ B(Ldar), R(arg1),
+  /*  276 E> */ B(LdrKeyedProperty), R(arg0), U8(41), R(0),
+                B(Ldar), R(0),
+  /*  282 S> */ B(Ldar), R(arg1),
+  /*  288 E> */ B(LdrKeyedProperty), R(arg0), U8(43), R(0),
+                B(Ldar), R(0),
+  /*  294 S> */ B(Ldar), R(arg1),
+  /*  300 E> */ B(LdrKeyedProperty), R(arg0), U8(45), R(0),
+                B(Ldar), R(0),
+  /*  306 S> */ B(Ldar), R(arg1),
+  /*  312 E> */ B(LdrKeyedProperty), R(arg0), U8(47), R(0),
+                B(Ldar), R(0),
+  /*  318 S> */ B(Ldar), R(arg1),
+  /*  324 E> */ B(LdrKeyedProperty), R(arg0), U8(49), R(0),
+                B(Ldar), R(0),
+  /*  330 S> */ B(Ldar), R(arg1),
+  /*  336 E> */ B(LdrKeyedProperty), R(arg0), U8(51), R(0),
+                B(Ldar), R(0),
+  /*  342 S> */ B(Ldar), R(arg1),
+  /*  348 E> */ B(LdrKeyedProperty), R(arg0), U8(53), R(0),
+                B(Ldar), R(0),
+  /*  354 S> */ B(Ldar), R(arg1),
+  /*  360 E> */ B(LdrKeyedProperty), R(arg0), U8(55), R(0),
+                B(Ldar), R(0),
+  /*  366 S> */ B(Ldar), R(arg1),
+  /*  372 E> */ B(LdrKeyedProperty), R(arg0), U8(57), R(0),
+                B(Ldar), R(0),
+  /*  378 S> */ B(Ldar), R(arg1),
+  /*  384 E> */ B(LdrKeyedProperty), R(arg0), U8(59), R(0),
+                B(Ldar), R(0),
+  /*  390 S> */ B(Ldar), R(arg1),
+  /*  396 E> */ B(LdrKeyedProperty), R(arg0), U8(61), R(0),
+                B(Ldar), R(0),
+  /*  402 S> */ B(Ldar), R(arg1),
+  /*  408 E> */ B(LdrKeyedProperty), R(arg0), U8(63), R(0),
+                B(Ldar), R(0),
+  /*  414 S> */ B(Ldar), R(arg1),
+  /*  420 E> */ B(LdrKeyedProperty), R(arg0), U8(65), R(0),
+                B(Ldar), R(0),
+  /*  426 S> */ B(Ldar), R(arg1),
+  /*  432 E> */ B(LdrKeyedProperty), R(arg0), U8(67), R(0),
+                B(Ldar), R(0),
+  /*  438 S> */ B(Ldar), R(arg1),
+  /*  444 E> */ B(LdrKeyedProperty), R(arg0), U8(69), R(0),
+                B(Ldar), R(0),
+  /*  450 S> */ B(Ldar), R(arg1),
+  /*  456 E> */ B(LdrKeyedProperty), R(arg0), U8(71), R(0),
+                B(Ldar), R(0),
+  /*  462 S> */ B(Ldar), R(arg1),
+  /*  468 E> */ B(LdrKeyedProperty), R(arg0), U8(73), R(0),
+                B(Ldar), R(0),
+  /*  474 S> */ B(Ldar), R(arg1),
+  /*  480 E> */ B(LdrKeyedProperty), R(arg0), U8(75), R(0),
+                B(Ldar), R(0),
+  /*  486 S> */ B(Ldar), R(arg1),
+  /*  492 E> */ B(LdrKeyedProperty), R(arg0), U8(77), R(0),
+                B(Ldar), R(0),
+  /*  498 S> */ B(Ldar), R(arg1),
+  /*  504 E> */ B(LdrKeyedProperty), R(arg0), U8(79), R(0),
+                B(Ldar), R(0),
+  /*  510 S> */ B(Ldar), R(arg1),
+  /*  516 E> */ B(LdrKeyedProperty), R(arg0), U8(81), R(0),
+                B(Ldar), R(0),
+  /*  522 S> */ B(Ldar), R(arg1),
+  /*  528 E> */ B(LdrKeyedProperty), R(arg0), U8(83), R(0),
+                B(Ldar), R(0),
+  /*  534 S> */ B(Ldar), R(arg1),
+  /*  540 E> */ B(LdrKeyedProperty), R(arg0), U8(85), R(0),
+                B(Ldar), R(0),
+  /*  546 S> */ B(Ldar), R(arg1),
+  /*  552 E> */ B(LdrKeyedProperty), R(arg0), U8(87), R(0),
+                B(Ldar), R(0),
+  /*  558 S> */ B(Ldar), R(arg1),
+  /*  564 E> */ B(LdrKeyedProperty), R(arg0), U8(89), R(0),
+                B(Ldar), R(0),
+  /*  570 S> */ B(Ldar), R(arg1),
+  /*  576 E> */ B(LdrKeyedProperty), R(arg0), U8(91), R(0),
+                B(Ldar), R(0),
+  /*  582 S> */ B(Ldar), R(arg1),
+  /*  588 E> */ B(LdrKeyedProperty), R(arg0), U8(93), R(0),
+                B(Ldar), R(0),
+  /*  594 S> */ B(Ldar), R(arg1),
+  /*  600 E> */ B(LdrKeyedProperty), R(arg0), U8(95), R(0),
+                B(Ldar), R(0),
+  /*  606 S> */ B(Ldar), R(arg1),
+  /*  612 E> */ B(LdrKeyedProperty), R(arg0), U8(97), R(0),
+                B(Ldar), R(0),
+  /*  618 S> */ B(Ldar), R(arg1),
+  /*  624 E> */ B(LdrKeyedProperty), R(arg0), U8(99), R(0),
+                B(Ldar), R(0),
+  /*  630 S> */ B(Ldar), R(arg1),
+  /*  636 E> */ B(LdrKeyedProperty), R(arg0), U8(101), R(0),
+                B(Ldar), R(0),
+  /*  642 S> */ B(Ldar), R(arg1),
+  /*  648 E> */ B(LdrKeyedProperty), R(arg0), U8(103), R(0),
+                B(Ldar), R(0),
+  /*  654 S> */ B(Ldar), R(arg1),
+  /*  660 E> */ B(LdrKeyedProperty), R(arg0), U8(105), R(0),
+                B(Ldar), R(0),
+  /*  666 S> */ B(Ldar), R(arg1),
+  /*  672 E> */ B(LdrKeyedProperty), R(arg0), U8(107), R(0),
+                B(Ldar), R(0),
+  /*  678 S> */ B(Ldar), R(arg1),
+  /*  684 E> */ B(LdrKeyedProperty), R(arg0), U8(109), R(0),
+                B(Ldar), R(0),
+  /*  690 S> */ B(Ldar), R(arg1),
+  /*  696 E> */ B(LdrKeyedProperty), R(arg0), U8(111), R(0),
+                B(Ldar), R(0),
+  /*  702 S> */ B(Ldar), R(arg1),
+  /*  708 E> */ B(LdrKeyedProperty), R(arg0), U8(113), R(0),
+                B(Ldar), R(0),
+  /*  714 S> */ B(Ldar), R(arg1),
+  /*  720 E> */ B(LdrKeyedProperty), R(arg0), U8(115), R(0),
+                B(Ldar), R(0),
+  /*  726 S> */ B(Ldar), R(arg1),
+  /*  732 E> */ B(LdrKeyedProperty), R(arg0), U8(117), R(0),
+                B(Ldar), R(0),
+  /*  738 S> */ B(Ldar), R(arg1),
+  /*  744 E> */ B(LdrKeyedProperty), R(arg0), U8(119), R(0),
+                B(Ldar), R(0),
+  /*  750 S> */ B(Ldar), R(arg1),
+  /*  756 E> */ B(LdrKeyedProperty), R(arg0), U8(121), R(0),
+                B(Ldar), R(0),
+  /*  762 S> */ B(Ldar), R(arg1),
+  /*  768 E> */ B(LdrKeyedProperty), R(arg0), U8(123), R(0),
+                B(Ldar), R(0),
+  /*  774 S> */ B(Ldar), R(arg1),
+  /*  780 E> */ B(LdrKeyedProperty), R(arg0), U8(125), R(0),
+                B(Ldar), R(0),
+  /*  786 S> */ B(Ldar), R(arg1),
+  /*  792 E> */ B(LdrKeyedProperty), R(arg0), U8(127), R(0),
+                B(Ldar), R(0),
+  /*  798 S> */ B(Ldar), R(arg1),
+  /*  804 E> */ B(LdrKeyedProperty), R(arg0), U8(129), R(0),
+                B(Ldar), R(0),
+  /*  810 S> */ B(Ldar), R(arg1),
+  /*  816 E> */ B(LdrKeyedProperty), R(arg0), U8(131), R(0),
+                B(Ldar), R(0),
+  /*  822 S> */ B(Ldar), R(arg1),
+  /*  828 E> */ B(LdrKeyedProperty), R(arg0), U8(133), R(0),
+                B(Ldar), R(0),
+  /*  834 S> */ B(Ldar), R(arg1),
+  /*  840 E> */ B(LdrKeyedProperty), R(arg0), U8(135), R(0),
+                B(Ldar), R(0),
+  /*  846 S> */ B(Ldar), R(arg1),
+  /*  852 E> */ B(LdrKeyedProperty), R(arg0), U8(137), R(0),
+                B(Ldar), R(0),
+  /*  858 S> */ B(Ldar), R(arg1),
+  /*  864 E> */ B(LdrKeyedProperty), R(arg0), U8(139), R(0),
+                B(Ldar), R(0),
+  /*  870 S> */ B(Ldar), R(arg1),
+  /*  876 E> */ B(LdrKeyedProperty), R(arg0), U8(141), R(0),
+                B(Ldar), R(0),
+  /*  882 S> */ B(Ldar), R(arg1),
+  /*  888 E> */ B(LdrKeyedProperty), R(arg0), U8(143), R(0),
+                B(Ldar), R(0),
+  /*  894 S> */ B(Ldar), R(arg1),
+  /*  900 E> */ B(LdrKeyedProperty), R(arg0), U8(145), R(0),
+                B(Ldar), R(0),
+  /*  906 S> */ B(Ldar), R(arg1),
+  /*  912 E> */ B(LdrKeyedProperty), R(arg0), U8(147), R(0),
+                B(Ldar), R(0),
+  /*  918 S> */ B(Ldar), R(arg1),
+  /*  924 E> */ B(LdrKeyedProperty), R(arg0), U8(149), R(0),
+                B(Ldar), R(0),
+  /*  930 S> */ B(Ldar), R(arg1),
+  /*  936 E> */ B(LdrKeyedProperty), R(arg0), U8(151), R(0),
+                B(Ldar), R(0),
+  /*  942 S> */ B(Ldar), R(arg1),
+  /*  948 E> */ B(LdrKeyedProperty), R(arg0), U8(153), R(0),
+                B(Ldar), R(0),
+  /*  954 S> */ B(Ldar), R(arg1),
+  /*  960 E> */ B(LdrKeyedProperty), R(arg0), U8(155), R(0),
+                B(Ldar), R(0),
+  /*  966 S> */ B(Ldar), R(arg1),
+  /*  972 E> */ B(LdrKeyedProperty), R(arg0), U8(157), R(0),
+                B(Ldar), R(0),
+  /*  978 S> */ B(Ldar), R(arg1),
+  /*  984 E> */ B(LdrKeyedProperty), R(arg0), U8(159), R(0),
+                B(Ldar), R(0),
+  /*  990 S> */ B(Ldar), R(arg1),
+  /*  996 E> */ B(LdrKeyedProperty), R(arg0), U8(161), R(0),
+                B(Ldar), R(0),
+  /* 1002 S> */ B(Ldar), R(arg1),
+  /* 1008 E> */ B(LdrKeyedProperty), R(arg0), U8(163), R(0),
+                B(Ldar), R(0),
+  /* 1014 S> */ B(Ldar), R(arg1),
+  /* 1020 E> */ B(LdrKeyedProperty), R(arg0), U8(165), R(0),
+                B(Ldar), R(0),
+  /* 1026 S> */ B(Ldar), R(arg1),
+  /* 1032 E> */ B(LdrKeyedProperty), R(arg0), U8(167), R(0),
+                B(Ldar), R(0),
+  /* 1038 S> */ B(Ldar), R(arg1),
+  /* 1044 E> */ B(LdrKeyedProperty), R(arg0), U8(169), R(0),
+                B(Ldar), R(0),
+  /* 1050 S> */ B(Ldar), R(arg1),
+  /* 1056 E> */ B(LdrKeyedProperty), R(arg0), U8(171), R(0),
+                B(Ldar), R(0),
+  /* 1062 S> */ B(Ldar), R(arg1),
+  /* 1068 E> */ B(LdrKeyedProperty), R(arg0), U8(173), R(0),
+                B(Ldar), R(0),
+  /* 1074 S> */ B(Ldar), R(arg1),
+  /* 1080 E> */ B(LdrKeyedProperty), R(arg0), U8(175), R(0),
+                B(Ldar), R(0),
+  /* 1086 S> */ B(Ldar), R(arg1),
+  /* 1092 E> */ B(LdrKeyedProperty), R(arg0), U8(177), R(0),
+                B(Ldar), R(0),
+  /* 1098 S> */ B(Ldar), R(arg1),
+  /* 1104 E> */ B(LdrKeyedProperty), R(arg0), U8(179), R(0),
+                B(Ldar), R(0),
+  /* 1110 S> */ B(Ldar), R(arg1),
+  /* 1116 E> */ B(LdrKeyedProperty), R(arg0), U8(181), R(0),
+                B(Ldar), R(0),
+  /* 1122 S> */ B(Ldar), R(arg1),
+  /* 1128 E> */ B(LdrKeyedProperty), R(arg0), U8(183), R(0),
+                B(Ldar), R(0),
+  /* 1134 S> */ B(Ldar), R(arg1),
+  /* 1140 E> */ B(LdrKeyedProperty), R(arg0), U8(185), R(0),
+                B(Ldar), R(0),
+  /* 1146 S> */ B(Ldar), R(arg1),
+  /* 1152 E> */ B(LdrKeyedProperty), R(arg0), U8(187), R(0),
+                B(Ldar), R(0),
+  /* 1158 S> */ B(Ldar), R(arg1),
+  /* 1164 E> */ B(LdrKeyedProperty), R(arg0), U8(189), R(0),
+                B(Ldar), R(0),
+  /* 1170 S> */ B(Ldar), R(arg1),
+  /* 1176 E> */ B(LdrKeyedProperty), R(arg0), U8(191), R(0),
+                B(Ldar), R(0),
+  /* 1182 S> */ B(Ldar), R(arg1),
+  /* 1188 E> */ B(LdrKeyedProperty), R(arg0), U8(193), R(0),
+                B(Ldar), R(0),
+  /* 1194 S> */ B(Ldar), R(arg1),
+  /* 1200 E> */ B(LdrKeyedProperty), R(arg0), U8(195), R(0),
+                B(Ldar), R(0),
+  /* 1206 S> */ B(Ldar), R(arg1),
+  /* 1212 E> */ B(LdrKeyedProperty), R(arg0), U8(197), R(0),
+                B(Ldar), R(0),
+  /* 1218 S> */ B(Ldar), R(arg1),
+  /* 1224 E> */ B(LdrKeyedProperty), R(arg0), U8(199), R(0),
+                B(Ldar), R(0),
+  /* 1230 S> */ B(Ldar), R(arg1),
+  /* 1236 E> */ B(LdrKeyedProperty), R(arg0), U8(201), R(0),
+                B(Ldar), R(0),
+  /* 1242 S> */ B(Ldar), R(arg1),
+  /* 1248 E> */ B(LdrKeyedProperty), R(arg0), U8(203), R(0),
+                B(Ldar), R(0),
+  /* 1254 S> */ B(Ldar), R(arg1),
+  /* 1260 E> */ B(LdrKeyedProperty), R(arg0), U8(205), R(0),
+                B(Ldar), R(0),
+  /* 1266 S> */ B(Ldar), R(arg1),
+  /* 1272 E> */ B(LdrKeyedProperty), R(arg0), U8(207), R(0),
+                B(Ldar), R(0),
+  /* 1278 S> */ B(Ldar), R(arg1),
+  /* 1284 E> */ B(LdrKeyedProperty), R(arg0), U8(209), R(0),
+                B(Ldar), R(0),
+  /* 1290 S> */ B(Ldar), R(arg1),
+  /* 1296 E> */ B(LdrKeyedProperty), R(arg0), U8(211), R(0),
+                B(Ldar), R(0),
+  /* 1302 S> */ B(Ldar), R(arg1),
+  /* 1308 E> */ B(LdrKeyedProperty), R(arg0), U8(213), R(0),
+                B(Ldar), R(0),
+  /* 1314 S> */ B(Ldar), R(arg1),
+  /* 1320 E> */ B(LdrKeyedProperty), R(arg0), U8(215), R(0),
+                B(Ldar), R(0),
+  /* 1326 S> */ B(Ldar), R(arg1),
+  /* 1332 E> */ B(LdrKeyedProperty), R(arg0), U8(217), R(0),
+                B(Ldar), R(0),
+  /* 1338 S> */ B(Ldar), R(arg1),
+  /* 1344 E> */ B(LdrKeyedProperty), R(arg0), U8(219), R(0),
+                B(Ldar), R(0),
+  /* 1350 S> */ B(Ldar), R(arg1),
+  /* 1356 E> */ B(LdrKeyedProperty), R(arg0), U8(221), R(0),
+                B(Ldar), R(0),
+  /* 1362 S> */ B(Ldar), R(arg1),
+  /* 1368 E> */ B(LdrKeyedProperty), R(arg0), U8(223), R(0),
+                B(Ldar), R(0),
+  /* 1374 S> */ B(Ldar), R(arg1),
+  /* 1380 E> */ B(LdrKeyedProperty), R(arg0), U8(225), R(0),
+                B(Ldar), R(0),
+  /* 1386 S> */ B(Ldar), R(arg1),
+  /* 1392 E> */ B(LdrKeyedProperty), R(arg0), U8(227), R(0),
+                B(Ldar), R(0),
+  /* 1398 S> */ B(Ldar), R(arg1),
+  /* 1404 E> */ B(LdrKeyedProperty), R(arg0), U8(229), R(0),
+                B(Ldar), R(0),
+  /* 1410 S> */ B(Ldar), R(arg1),
+  /* 1416 E> */ B(LdrKeyedProperty), R(arg0), U8(231), R(0),
+                B(Ldar), R(0),
+  /* 1422 S> */ B(Ldar), R(arg1),
+  /* 1428 E> */ B(LdrKeyedProperty), R(arg0), U8(233), R(0),
+                B(Ldar), R(0),
+  /* 1434 S> */ B(Ldar), R(arg1),
+  /* 1440 E> */ B(LdrKeyedProperty), R(arg0), U8(235), R(0),
+                B(Ldar), R(0),
+  /* 1446 S> */ B(Ldar), R(arg1),
+  /* 1452 E> */ B(LdrKeyedProperty), R(arg0), U8(237), R(0),
+                B(Ldar), R(0),
+  /* 1458 S> */ B(Ldar), R(arg1),
+  /* 1464 E> */ B(LdrKeyedProperty), R(arg0), U8(239), R(0),
+                B(Ldar), R(0),
+  /* 1470 S> */ B(Ldar), R(arg1),
+  /* 1476 E> */ B(LdrKeyedProperty), R(arg0), U8(241), R(0),
+                B(Ldar), R(0),
+  /* 1482 S> */ B(Ldar), R(arg1),
+  /* 1488 E> */ B(LdrKeyedProperty), R(arg0), U8(243), R(0),
+                B(Ldar), R(0),
+  /* 1494 S> */ B(Ldar), R(arg1),
+  /* 1500 E> */ B(LdrKeyedProperty), R(arg0), U8(245), R(0),
+                B(Ldar), R(0),
+  /* 1506 S> */ B(Ldar), R(arg1),
+  /* 1512 E> */ B(LdrKeyedProperty), R(arg0), U8(247), R(0),
+                B(Ldar), R(0),
+  /* 1518 S> */ B(Ldar), R(arg1),
+  /* 1524 E> */ B(LdrKeyedProperty), R(arg0), U8(249), R(0),
+                B(Ldar), R(0),
+  /* 1530 S> */ B(Ldar), R(arg1),
+  /* 1536 E> */ B(LdrKeyedProperty), R(arg0), U8(251), R(0),
+                B(Ldar), R(0),
+  /* 1542 S> */ B(Ldar), R(arg1),
+  /* 1548 E> */ B(LdrKeyedProperty), R(arg0), U8(253), R(0),
+                B(Ldar), R(0),
+  /* 1554 S> */ B(Ldar), R(arg1),
+  /* 1560 E> */ B(LdrKeyedProperty), R(arg0), U8(255), R(0),
+                B(Ldar), R(0),
+  /* 1566 S> */ B(Ldar), R(arg1),
+  /* 1575 E> */ B(Wide), B(LdaKeyedProperty), R16(arg0), 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 340aa43..7f456cf 100644
--- a/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden
+++ b/test/cctest/interpreter/bytecode_expectations/PropertyStores.golden
@@ -13,15 +13,13 @@
   function f(a) { a.name = \"val\"; }
   f({name : \"test\"})
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 13
+bytecode array length: 9
 bytecodes: [
   /*   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),
+  /*   16 S> */ B(LdaConstant), U8(0),
+  /*   23 E> */ B(StaNamedPropertySloppy), R(arg0), U8(1), U8(1),
                 B(LdaUndefined),
   /*   32 S> */ B(Return),
 ]
@@ -37,15 +35,13 @@
   function f(a) { a[\"key\"] = \"val\"; }
   f({key : \"test\"})
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 13
+bytecode array length: 9
 bytecodes: [
   /*   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),
+  /*   16 S> */ B(LdaConstant), U8(0),
+  /*   25 E> */ B(StaNamedPropertySloppy), R(arg0), U8(1), U8(1),
                 B(LdaUndefined),
   /*   34 S> */ B(Return),
 ]
@@ -63,15 +59,13 @@
 "
 frame size: 2
 parameter count: 2
-bytecode array length: 17
+bytecode array length: 13
 bytecodes: [
   /*   10 E> */ B(StackCheck),
-  /*   16 S> */ B(Ldar), R(arg0),
-                B(Star), R(0),
-                B(LdaSmi), U8(100),
+  /*   16 S> */ B(LdaSmi), U8(100),
                 B(Star), R(1),
                 B(LdaConstant), U8(0),
-  /*   23 E> */ B(KeyedStoreICSloppy), R(0), R(1), U8(1),
+  /*   23 E> */ B(StaKeyedPropertySloppy), R(arg0), R(1), U8(1),
                 B(LdaUndefined),
   /*   32 S> */ B(Return),
 ]
@@ -86,17 +80,13 @@
   function f(a, b) { a[b] = \"val\"; }
   f({arg : \"test\"}, \"arg\")
 "
-frame size: 2
+frame size: 0
 parameter count: 3
-bytecode array length: 17
+bytecode array length: 9
 bytecodes: [
   /*   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),
+  /*   19 S> */ B(LdaConstant), U8(0),
+  /*   24 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(1),
                 B(LdaUndefined),
   /*   33 S> */ B(Return),
 ]
@@ -111,18 +101,14 @@
   function f(a) { a.name = a[-124]; }
   f({\"-124\" : \"test\", name : 123 })
 "
-frame size: 2
+frame size: 0
 parameter count: 2
-bytecode array length: 20
+bytecode array length: 12
 bytecodes: [
   /*   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),
+  /*   16 S> */ B(LdaSmi), U8(-124),
+  /*   26 E> */ B(LdaKeyedProperty), R(arg0), U8(1),
+  /*   23 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(3),
                 B(LdaUndefined),
   /*   34 S> */ B(Return),
 ]
@@ -137,15 +123,13 @@
   function f(a) { \"use strict\"; a.name = \"val\"; }
   f({name : \"test\"})
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 13
+bytecode array length: 9
 bytecodes: [
   /*   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),
+  /*   30 S> */ B(LdaConstant), U8(0),
+  /*   37 E> */ B(StaNamedPropertyStrict), R(arg0), U8(1), U8(1),
                 B(LdaUndefined),
   /*   46 S> */ B(Return),
 ]
@@ -161,17 +145,13 @@
   function f(a, b) { \"use strict\"; a[b] = \"val\"; }
   f({arg : \"test\"}, \"arg\")
 "
-frame size: 2
+frame size: 0
 parameter count: 3
-bytecode array length: 17
+bytecode array length: 9
 bytecodes: [
   /*   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),
+  /*   33 S> */ B(LdaConstant), U8(0),
+  /*   38 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(1),
                 B(LdaUndefined),
   /*   47 S> */ B(Return),
 ]
@@ -316,527 +296,269 @@
   }
   f({name : \"test\"})
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 1297
+bytecode array length: 781
 bytecodes: [
   /*   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),
+  /*   18 S> */ B(LdaSmi), U8(1),
+  /*   25 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(1),
+  /*   32 S> */ B(LdaSmi), U8(1),
+  /*   39 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(3),
+  /*   46 S> */ B(LdaSmi), U8(1),
+  /*   53 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(5),
+  /*   60 S> */ B(LdaSmi), U8(1),
+  /*   67 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(7),
+  /*   74 S> */ B(LdaSmi), U8(1),
+  /*   81 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(9),
+  /*   88 S> */ B(LdaSmi), U8(1),
+  /*   95 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(11),
+  /*  102 S> */ B(LdaSmi), U8(1),
+  /*  109 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(13),
+  /*  116 S> */ B(LdaSmi), U8(1),
+  /*  123 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(15),
+  /*  130 S> */ B(LdaSmi), U8(1),
+  /*  137 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(17),
+  /*  144 S> */ B(LdaSmi), U8(1),
+  /*  151 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(19),
+  /*  158 S> */ B(LdaSmi), U8(1),
+  /*  165 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(21),
+  /*  172 S> */ B(LdaSmi), U8(1),
+  /*  179 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(23),
+  /*  186 S> */ B(LdaSmi), U8(1),
+  /*  193 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(25),
+  /*  200 S> */ B(LdaSmi), U8(1),
+  /*  207 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(27),
+  /*  214 S> */ B(LdaSmi), U8(1),
+  /*  221 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(29),
+  /*  228 S> */ B(LdaSmi), U8(1),
+  /*  235 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(31),
+  /*  242 S> */ B(LdaSmi), U8(1),
+  /*  249 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(33),
+  /*  256 S> */ B(LdaSmi), U8(1),
+  /*  263 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(35),
+  /*  270 S> */ B(LdaSmi), U8(1),
+  /*  277 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(37),
+  /*  284 S> */ B(LdaSmi), U8(1),
+  /*  291 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(39),
+  /*  298 S> */ B(LdaSmi), U8(1),
+  /*  305 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(41),
+  /*  312 S> */ B(LdaSmi), U8(1),
+  /*  319 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(43),
+  /*  326 S> */ B(LdaSmi), U8(1),
+  /*  333 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(45),
+  /*  340 S> */ B(LdaSmi), U8(1),
+  /*  347 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(47),
+  /*  354 S> */ B(LdaSmi), U8(1),
+  /*  361 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(49),
+  /*  368 S> */ B(LdaSmi), U8(1),
+  /*  375 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(51),
+  /*  382 S> */ B(LdaSmi), U8(1),
+  /*  389 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(53),
+  /*  396 S> */ B(LdaSmi), U8(1),
+  /*  403 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(55),
+  /*  410 S> */ B(LdaSmi), U8(1),
+  /*  417 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(57),
+  /*  424 S> */ B(LdaSmi), U8(1),
+  /*  431 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(59),
+  /*  438 S> */ B(LdaSmi), U8(1),
+  /*  445 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(61),
+  /*  452 S> */ B(LdaSmi), U8(1),
+  /*  459 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(63),
+  /*  466 S> */ B(LdaSmi), U8(1),
+  /*  473 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(65),
+  /*  480 S> */ B(LdaSmi), U8(1),
+  /*  487 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(67),
+  /*  494 S> */ B(LdaSmi), U8(1),
+  /*  501 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(69),
+  /*  508 S> */ B(LdaSmi), U8(1),
+  /*  515 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(71),
+  /*  522 S> */ B(LdaSmi), U8(1),
+  /*  529 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(73),
+  /*  536 S> */ B(LdaSmi), U8(1),
+  /*  543 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(75),
+  /*  550 S> */ B(LdaSmi), U8(1),
+  /*  557 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(77),
+  /*  564 S> */ B(LdaSmi), U8(1),
+  /*  571 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(79),
+  /*  578 S> */ B(LdaSmi), U8(1),
+  /*  585 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(81),
+  /*  592 S> */ B(LdaSmi), U8(1),
+  /*  599 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(83),
+  /*  606 S> */ B(LdaSmi), U8(1),
+  /*  613 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(85),
+  /*  620 S> */ B(LdaSmi), U8(1),
+  /*  627 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(87),
+  /*  634 S> */ B(LdaSmi), U8(1),
+  /*  641 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(89),
+  /*  648 S> */ B(LdaSmi), U8(1),
+  /*  655 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(91),
+  /*  662 S> */ B(LdaSmi), U8(1),
+  /*  669 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(93),
+  /*  676 S> */ B(LdaSmi), U8(1),
+  /*  683 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(95),
+  /*  690 S> */ B(LdaSmi), U8(1),
+  /*  697 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(97),
+  /*  704 S> */ B(LdaSmi), U8(1),
+  /*  711 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(99),
+  /*  718 S> */ B(LdaSmi), U8(1),
+  /*  725 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(101),
+  /*  732 S> */ B(LdaSmi), U8(1),
+  /*  739 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(103),
+  /*  746 S> */ B(LdaSmi), U8(1),
+  /*  753 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(105),
+  /*  760 S> */ B(LdaSmi), U8(1),
+  /*  767 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(107),
+  /*  774 S> */ B(LdaSmi), U8(1),
+  /*  781 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(109),
+  /*  788 S> */ B(LdaSmi), U8(1),
+  /*  795 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(111),
+  /*  802 S> */ B(LdaSmi), U8(1),
+  /*  809 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(113),
+  /*  816 S> */ B(LdaSmi), U8(1),
+  /*  823 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(115),
+  /*  830 S> */ B(LdaSmi), U8(1),
+  /*  837 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(117),
+  /*  844 S> */ B(LdaSmi), U8(1),
+  /*  851 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(119),
+  /*  858 S> */ B(LdaSmi), U8(1),
+  /*  865 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(121),
+  /*  872 S> */ B(LdaSmi), U8(1),
+  /*  879 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(123),
+  /*  886 S> */ B(LdaSmi), U8(1),
+  /*  893 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(125),
+  /*  900 S> */ B(LdaSmi), U8(1),
+  /*  907 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(127),
+  /*  914 S> */ B(LdaSmi), U8(1),
+  /*  921 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(129),
+  /*  928 S> */ B(LdaSmi), U8(1),
+  /*  935 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(131),
+  /*  942 S> */ B(LdaSmi), U8(1),
+  /*  949 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(133),
+  /*  956 S> */ B(LdaSmi), U8(1),
+  /*  963 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(135),
+  /*  970 S> */ B(LdaSmi), U8(1),
+  /*  977 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(137),
+  /*  984 S> */ B(LdaSmi), U8(1),
+  /*  991 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(139),
+  /*  998 S> */ B(LdaSmi), U8(1),
+  /* 1005 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(141),
+  /* 1012 S> */ B(LdaSmi), U8(1),
+  /* 1019 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(143),
+  /* 1026 S> */ B(LdaSmi), U8(1),
+  /* 1033 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(145),
+  /* 1040 S> */ B(LdaSmi), U8(1),
+  /* 1047 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(147),
+  /* 1054 S> */ B(LdaSmi), U8(1),
+  /* 1061 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(149),
+  /* 1068 S> */ B(LdaSmi), U8(1),
+  /* 1075 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(151),
+  /* 1082 S> */ B(LdaSmi), U8(1),
+  /* 1089 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(153),
+  /* 1096 S> */ B(LdaSmi), U8(1),
+  /* 1103 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(155),
+  /* 1110 S> */ B(LdaSmi), U8(1),
+  /* 1117 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(157),
+  /* 1124 S> */ B(LdaSmi), U8(1),
+  /* 1131 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(159),
+  /* 1138 S> */ B(LdaSmi), U8(1),
+  /* 1145 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(161),
+  /* 1152 S> */ B(LdaSmi), U8(1),
+  /* 1159 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(163),
+  /* 1166 S> */ B(LdaSmi), U8(1),
+  /* 1173 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(165),
+  /* 1180 S> */ B(LdaSmi), U8(1),
+  /* 1187 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(167),
+  /* 1194 S> */ B(LdaSmi), U8(1),
+  /* 1201 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(169),
+  /* 1208 S> */ B(LdaSmi), U8(1),
+  /* 1215 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(171),
+  /* 1222 S> */ B(LdaSmi), U8(1),
+  /* 1229 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(173),
+  /* 1236 S> */ B(LdaSmi), U8(1),
+  /* 1243 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(175),
+  /* 1250 S> */ B(LdaSmi), U8(1),
+  /* 1257 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(177),
+  /* 1264 S> */ B(LdaSmi), U8(1),
+  /* 1271 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(179),
+  /* 1278 S> */ B(LdaSmi), U8(1),
+  /* 1285 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(181),
+  /* 1292 S> */ B(LdaSmi), U8(1),
+  /* 1299 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(183),
+  /* 1306 S> */ B(LdaSmi), U8(1),
+  /* 1313 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(185),
+  /* 1320 S> */ B(LdaSmi), U8(1),
+  /* 1327 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(187),
+  /* 1334 S> */ B(LdaSmi), U8(1),
+  /* 1341 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(189),
+  /* 1348 S> */ B(LdaSmi), U8(1),
+  /* 1355 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(191),
+  /* 1362 S> */ B(LdaSmi), U8(1),
+  /* 1369 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(193),
+  /* 1376 S> */ B(LdaSmi), U8(1),
+  /* 1383 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(195),
+  /* 1390 S> */ B(LdaSmi), U8(1),
+  /* 1397 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(197),
+  /* 1404 S> */ B(LdaSmi), U8(1),
+  /* 1411 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(199),
+  /* 1418 S> */ B(LdaSmi), U8(1),
+  /* 1425 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(201),
+  /* 1432 S> */ B(LdaSmi), U8(1),
+  /* 1439 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(203),
+  /* 1446 S> */ B(LdaSmi), U8(1),
+  /* 1453 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(205),
+  /* 1460 S> */ B(LdaSmi), U8(1),
+  /* 1467 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(207),
+  /* 1474 S> */ B(LdaSmi), U8(1),
+  /* 1481 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(209),
+  /* 1488 S> */ B(LdaSmi), U8(1),
+  /* 1495 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(211),
+  /* 1502 S> */ B(LdaSmi), U8(1),
+  /* 1509 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(213),
+  /* 1516 S> */ B(LdaSmi), U8(1),
+  /* 1523 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(215),
+  /* 1530 S> */ B(LdaSmi), U8(1),
+  /* 1537 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(217),
+  /* 1544 S> */ B(LdaSmi), U8(1),
+  /* 1551 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(219),
+  /* 1558 S> */ B(LdaSmi), U8(1),
+  /* 1565 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(221),
+  /* 1572 S> */ B(LdaSmi), U8(1),
+  /* 1579 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(223),
+  /* 1586 S> */ B(LdaSmi), U8(1),
+  /* 1593 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(225),
+  /* 1600 S> */ B(LdaSmi), U8(1),
+  /* 1607 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(227),
+  /* 1614 S> */ B(LdaSmi), U8(1),
+  /* 1621 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(229),
+  /* 1628 S> */ B(LdaSmi), U8(1),
+  /* 1635 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(231),
+  /* 1642 S> */ B(LdaSmi), U8(1),
+  /* 1649 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(233),
+  /* 1656 S> */ B(LdaSmi), U8(1),
+  /* 1663 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(235),
+  /* 1670 S> */ B(LdaSmi), U8(1),
+  /* 1677 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(237),
+  /* 1684 S> */ B(LdaSmi), U8(1),
+  /* 1691 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(239),
+  /* 1698 S> */ B(LdaSmi), U8(1),
+  /* 1705 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(241),
+  /* 1712 S> */ B(LdaSmi), U8(1),
+  /* 1719 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(243),
+  /* 1726 S> */ B(LdaSmi), U8(1),
+  /* 1733 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(245),
+  /* 1740 S> */ B(LdaSmi), U8(1),
+  /* 1747 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(247),
+  /* 1754 S> */ B(LdaSmi), U8(1),
+  /* 1761 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(249),
+  /* 1768 S> */ B(LdaSmi), U8(1),
+  /* 1775 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(251),
+  /* 1782 S> */ B(LdaSmi), U8(1),
+  /* 1789 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(253),
+  /* 1796 S> */ B(LdaSmi), U8(1),
+  /* 1803 E> */ B(StaNamedPropertySloppy), R(arg0), U8(0), U8(255),
+  /* 1810 S> */ B(LdaSmi), U8(2),
+  /* 1817 E> */ B(Wide), B(StaNamedPropertySloppy), R16(arg0), U16(0), U16(257),
                 B(LdaUndefined),
   /* 1822 S> */ B(Return),
 ]
@@ -982,527 +704,269 @@
   }
   f({name : \"test\"})
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 1297
+bytecode array length: 781
 bytecodes: [
   /*   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),
+  /*   33 S> */ B(LdaSmi), U8(1),
+  /*   40 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(1),
+  /*   47 S> */ B(LdaSmi), U8(1),
+  /*   54 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(3),
+  /*   61 S> */ B(LdaSmi), U8(1),
+  /*   68 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(5),
+  /*   75 S> */ B(LdaSmi), U8(1),
+  /*   82 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(7),
+  /*   89 S> */ B(LdaSmi), U8(1),
+  /*   96 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(9),
+  /*  103 S> */ B(LdaSmi), U8(1),
+  /*  110 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(11),
+  /*  117 S> */ B(LdaSmi), U8(1),
+  /*  124 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(13),
+  /*  131 S> */ B(LdaSmi), U8(1),
+  /*  138 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(15),
+  /*  145 S> */ B(LdaSmi), U8(1),
+  /*  152 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(17),
+  /*  159 S> */ B(LdaSmi), U8(1),
+  /*  166 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(19),
+  /*  173 S> */ B(LdaSmi), U8(1),
+  /*  180 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(21),
+  /*  187 S> */ B(LdaSmi), U8(1),
+  /*  194 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(23),
+  /*  201 S> */ B(LdaSmi), U8(1),
+  /*  208 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(25),
+  /*  215 S> */ B(LdaSmi), U8(1),
+  /*  222 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(27),
+  /*  229 S> */ B(LdaSmi), U8(1),
+  /*  236 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(29),
+  /*  243 S> */ B(LdaSmi), U8(1),
+  /*  250 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(31),
+  /*  257 S> */ B(LdaSmi), U8(1),
+  /*  264 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(33),
+  /*  271 S> */ B(LdaSmi), U8(1),
+  /*  278 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(35),
+  /*  285 S> */ B(LdaSmi), U8(1),
+  /*  292 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(37),
+  /*  299 S> */ B(LdaSmi), U8(1),
+  /*  306 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(39),
+  /*  313 S> */ B(LdaSmi), U8(1),
+  /*  320 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(41),
+  /*  327 S> */ B(LdaSmi), U8(1),
+  /*  334 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(43),
+  /*  341 S> */ B(LdaSmi), U8(1),
+  /*  348 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(45),
+  /*  355 S> */ B(LdaSmi), U8(1),
+  /*  362 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(47),
+  /*  369 S> */ B(LdaSmi), U8(1),
+  /*  376 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(49),
+  /*  383 S> */ B(LdaSmi), U8(1),
+  /*  390 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(51),
+  /*  397 S> */ B(LdaSmi), U8(1),
+  /*  404 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(53),
+  /*  411 S> */ B(LdaSmi), U8(1),
+  /*  418 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(55),
+  /*  425 S> */ B(LdaSmi), U8(1),
+  /*  432 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(57),
+  /*  439 S> */ B(LdaSmi), U8(1),
+  /*  446 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(59),
+  /*  453 S> */ B(LdaSmi), U8(1),
+  /*  460 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(61),
+  /*  467 S> */ B(LdaSmi), U8(1),
+  /*  474 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(63),
+  /*  481 S> */ B(LdaSmi), U8(1),
+  /*  488 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(65),
+  /*  495 S> */ B(LdaSmi), U8(1),
+  /*  502 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(67),
+  /*  509 S> */ B(LdaSmi), U8(1),
+  /*  516 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(69),
+  /*  523 S> */ B(LdaSmi), U8(1),
+  /*  530 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(71),
+  /*  537 S> */ B(LdaSmi), U8(1),
+  /*  544 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(73),
+  /*  551 S> */ B(LdaSmi), U8(1),
+  /*  558 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(75),
+  /*  565 S> */ B(LdaSmi), U8(1),
+  /*  572 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(77),
+  /*  579 S> */ B(LdaSmi), U8(1),
+  /*  586 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(79),
+  /*  593 S> */ B(LdaSmi), U8(1),
+  /*  600 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(81),
+  /*  607 S> */ B(LdaSmi), U8(1),
+  /*  614 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(83),
+  /*  621 S> */ B(LdaSmi), U8(1),
+  /*  628 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(85),
+  /*  635 S> */ B(LdaSmi), U8(1),
+  /*  642 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(87),
+  /*  649 S> */ B(LdaSmi), U8(1),
+  /*  656 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(89),
+  /*  663 S> */ B(LdaSmi), U8(1),
+  /*  670 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(91),
+  /*  677 S> */ B(LdaSmi), U8(1),
+  /*  684 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(93),
+  /*  691 S> */ B(LdaSmi), U8(1),
+  /*  698 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(95),
+  /*  705 S> */ B(LdaSmi), U8(1),
+  /*  712 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(97),
+  /*  719 S> */ B(LdaSmi), U8(1),
+  /*  726 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(99),
+  /*  733 S> */ B(LdaSmi), U8(1),
+  /*  740 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(101),
+  /*  747 S> */ B(LdaSmi), U8(1),
+  /*  754 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(103),
+  /*  761 S> */ B(LdaSmi), U8(1),
+  /*  768 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(105),
+  /*  775 S> */ B(LdaSmi), U8(1),
+  /*  782 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(107),
+  /*  789 S> */ B(LdaSmi), U8(1),
+  /*  796 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(109),
+  /*  803 S> */ B(LdaSmi), U8(1),
+  /*  810 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(111),
+  /*  817 S> */ B(LdaSmi), U8(1),
+  /*  824 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(113),
+  /*  831 S> */ B(LdaSmi), U8(1),
+  /*  838 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(115),
+  /*  845 S> */ B(LdaSmi), U8(1),
+  /*  852 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(117),
+  /*  859 S> */ B(LdaSmi), U8(1),
+  /*  866 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(119),
+  /*  873 S> */ B(LdaSmi), U8(1),
+  /*  880 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(121),
+  /*  887 S> */ B(LdaSmi), U8(1),
+  /*  894 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(123),
+  /*  901 S> */ B(LdaSmi), U8(1),
+  /*  908 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(125),
+  /*  915 S> */ B(LdaSmi), U8(1),
+  /*  922 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(127),
+  /*  929 S> */ B(LdaSmi), U8(1),
+  /*  936 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(129),
+  /*  943 S> */ B(LdaSmi), U8(1),
+  /*  950 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(131),
+  /*  957 S> */ B(LdaSmi), U8(1),
+  /*  964 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(133),
+  /*  971 S> */ B(LdaSmi), U8(1),
+  /*  978 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(135),
+  /*  985 S> */ B(LdaSmi), U8(1),
+  /*  992 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(137),
+  /*  999 S> */ B(LdaSmi), U8(1),
+  /* 1006 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(139),
+  /* 1013 S> */ B(LdaSmi), U8(1),
+  /* 1020 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(141),
+  /* 1027 S> */ B(LdaSmi), U8(1),
+  /* 1034 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(143),
+  /* 1041 S> */ B(LdaSmi), U8(1),
+  /* 1048 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(145),
+  /* 1055 S> */ B(LdaSmi), U8(1),
+  /* 1062 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(147),
+  /* 1069 S> */ B(LdaSmi), U8(1),
+  /* 1076 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(149),
+  /* 1083 S> */ B(LdaSmi), U8(1),
+  /* 1090 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(151),
+  /* 1097 S> */ B(LdaSmi), U8(1),
+  /* 1104 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(153),
+  /* 1111 S> */ B(LdaSmi), U8(1),
+  /* 1118 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(155),
+  /* 1125 S> */ B(LdaSmi), U8(1),
+  /* 1132 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(157),
+  /* 1139 S> */ B(LdaSmi), U8(1),
+  /* 1146 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(159),
+  /* 1153 S> */ B(LdaSmi), U8(1),
+  /* 1160 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(161),
+  /* 1167 S> */ B(LdaSmi), U8(1),
+  /* 1174 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(163),
+  /* 1181 S> */ B(LdaSmi), U8(1),
+  /* 1188 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(165),
+  /* 1195 S> */ B(LdaSmi), U8(1),
+  /* 1202 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(167),
+  /* 1209 S> */ B(LdaSmi), U8(1),
+  /* 1216 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(169),
+  /* 1223 S> */ B(LdaSmi), U8(1),
+  /* 1230 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(171),
+  /* 1237 S> */ B(LdaSmi), U8(1),
+  /* 1244 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(173),
+  /* 1251 S> */ B(LdaSmi), U8(1),
+  /* 1258 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(175),
+  /* 1265 S> */ B(LdaSmi), U8(1),
+  /* 1272 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(177),
+  /* 1279 S> */ B(LdaSmi), U8(1),
+  /* 1286 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(179),
+  /* 1293 S> */ B(LdaSmi), U8(1),
+  /* 1300 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(181),
+  /* 1307 S> */ B(LdaSmi), U8(1),
+  /* 1314 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(183),
+  /* 1321 S> */ B(LdaSmi), U8(1),
+  /* 1328 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(185),
+  /* 1335 S> */ B(LdaSmi), U8(1),
+  /* 1342 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(187),
+  /* 1349 S> */ B(LdaSmi), U8(1),
+  /* 1356 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(189),
+  /* 1363 S> */ B(LdaSmi), U8(1),
+  /* 1370 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(191),
+  /* 1377 S> */ B(LdaSmi), U8(1),
+  /* 1384 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(193),
+  /* 1391 S> */ B(LdaSmi), U8(1),
+  /* 1398 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(195),
+  /* 1405 S> */ B(LdaSmi), U8(1),
+  /* 1412 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(197),
+  /* 1419 S> */ B(LdaSmi), U8(1),
+  /* 1426 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(199),
+  /* 1433 S> */ B(LdaSmi), U8(1),
+  /* 1440 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(201),
+  /* 1447 S> */ B(LdaSmi), U8(1),
+  /* 1454 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(203),
+  /* 1461 S> */ B(LdaSmi), U8(1),
+  /* 1468 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(205),
+  /* 1475 S> */ B(LdaSmi), U8(1),
+  /* 1482 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(207),
+  /* 1489 S> */ B(LdaSmi), U8(1),
+  /* 1496 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(209),
+  /* 1503 S> */ B(LdaSmi), U8(1),
+  /* 1510 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(211),
+  /* 1517 S> */ B(LdaSmi), U8(1),
+  /* 1524 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(213),
+  /* 1531 S> */ B(LdaSmi), U8(1),
+  /* 1538 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(215),
+  /* 1545 S> */ B(LdaSmi), U8(1),
+  /* 1552 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(217),
+  /* 1559 S> */ B(LdaSmi), U8(1),
+  /* 1566 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(219),
+  /* 1573 S> */ B(LdaSmi), U8(1),
+  /* 1580 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(221),
+  /* 1587 S> */ B(LdaSmi), U8(1),
+  /* 1594 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(223),
+  /* 1601 S> */ B(LdaSmi), U8(1),
+  /* 1608 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(225),
+  /* 1615 S> */ B(LdaSmi), U8(1),
+  /* 1622 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(227),
+  /* 1629 S> */ B(LdaSmi), U8(1),
+  /* 1636 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(229),
+  /* 1643 S> */ B(LdaSmi), U8(1),
+  /* 1650 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(231),
+  /* 1657 S> */ B(LdaSmi), U8(1),
+  /* 1664 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(233),
+  /* 1671 S> */ B(LdaSmi), U8(1),
+  /* 1678 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(235),
+  /* 1685 S> */ B(LdaSmi), U8(1),
+  /* 1692 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(237),
+  /* 1699 S> */ B(LdaSmi), U8(1),
+  /* 1706 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(239),
+  /* 1713 S> */ B(LdaSmi), U8(1),
+  /* 1720 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(241),
+  /* 1727 S> */ B(LdaSmi), U8(1),
+  /* 1734 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(243),
+  /* 1741 S> */ B(LdaSmi), U8(1),
+  /* 1748 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(245),
+  /* 1755 S> */ B(LdaSmi), U8(1),
+  /* 1762 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(247),
+  /* 1769 S> */ B(LdaSmi), U8(1),
+  /* 1776 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(249),
+  /* 1783 S> */ B(LdaSmi), U8(1),
+  /* 1790 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(251),
+  /* 1797 S> */ B(LdaSmi), U8(1),
+  /* 1804 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(253),
+  /* 1811 S> */ B(LdaSmi), U8(1),
+  /* 1818 E> */ B(StaNamedPropertyStrict), R(arg0), U8(0), U8(255),
+  /* 1825 S> */ B(LdaSmi), U8(2),
+  /* 1832 E> */ B(Wide), B(StaNamedPropertyStrict), R16(arg0), U16(0), U16(257),
                 B(LdaUndefined),
   /* 1837 S> */ B(Return),
 ]
@@ -1647,785 +1111,269 @@
   }
   f({name : \"test\"})
 "
-frame size: 2
+frame size: 0
 parameter count: 3
-bytecode array length: 1813
+bytecode array length: 781
 bytecodes: [
   /*   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),
+  /*   21 S> */ B(LdaSmi), U8(1),
+  /*   26 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(1),
+  /*   33 S> */ B(LdaSmi), U8(1),
+  /*   38 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(3),
+  /*   45 S> */ B(LdaSmi), U8(1),
+  /*   50 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(5),
+  /*   57 S> */ B(LdaSmi), U8(1),
+  /*   62 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(7),
+  /*   69 S> */ B(LdaSmi), U8(1),
+  /*   74 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(9),
+  /*   81 S> */ B(LdaSmi), U8(1),
+  /*   86 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(11),
+  /*   93 S> */ B(LdaSmi), U8(1),
+  /*   98 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(13),
+  /*  105 S> */ B(LdaSmi), U8(1),
+  /*  110 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(15),
+  /*  117 S> */ B(LdaSmi), U8(1),
+  /*  122 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(17),
+  /*  129 S> */ B(LdaSmi), U8(1),
+  /*  134 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(19),
+  /*  141 S> */ B(LdaSmi), U8(1),
+  /*  146 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(21),
+  /*  153 S> */ B(LdaSmi), U8(1),
+  /*  158 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(23),
+  /*  165 S> */ B(LdaSmi), U8(1),
+  /*  170 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(25),
+  /*  177 S> */ B(LdaSmi), U8(1),
+  /*  182 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(27),
+  /*  189 S> */ B(LdaSmi), U8(1),
+  /*  194 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(29),
+  /*  201 S> */ B(LdaSmi), U8(1),
+  /*  206 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(31),
+  /*  213 S> */ B(LdaSmi), U8(1),
+  /*  218 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(33),
+  /*  225 S> */ B(LdaSmi), U8(1),
+  /*  230 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(35),
+  /*  237 S> */ B(LdaSmi), U8(1),
+  /*  242 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(37),
+  /*  249 S> */ B(LdaSmi), U8(1),
+  /*  254 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(39),
+  /*  261 S> */ B(LdaSmi), U8(1),
+  /*  266 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(41),
+  /*  273 S> */ B(LdaSmi), U8(1),
+  /*  278 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(43),
+  /*  285 S> */ B(LdaSmi), U8(1),
+  /*  290 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(45),
+  /*  297 S> */ B(LdaSmi), U8(1),
+  /*  302 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(47),
+  /*  309 S> */ B(LdaSmi), U8(1),
+  /*  314 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(49),
+  /*  321 S> */ B(LdaSmi), U8(1),
+  /*  326 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(51),
+  /*  333 S> */ B(LdaSmi), U8(1),
+  /*  338 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(53),
+  /*  345 S> */ B(LdaSmi), U8(1),
+  /*  350 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(55),
+  /*  357 S> */ B(LdaSmi), U8(1),
+  /*  362 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(57),
+  /*  369 S> */ B(LdaSmi), U8(1),
+  /*  374 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(59),
+  /*  381 S> */ B(LdaSmi), U8(1),
+  /*  386 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(61),
+  /*  393 S> */ B(LdaSmi), U8(1),
+  /*  398 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(63),
+  /*  405 S> */ B(LdaSmi), U8(1),
+  /*  410 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(65),
+  /*  417 S> */ B(LdaSmi), U8(1),
+  /*  422 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(67),
+  /*  429 S> */ B(LdaSmi), U8(1),
+  /*  434 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(69),
+  /*  441 S> */ B(LdaSmi), U8(1),
+  /*  446 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(71),
+  /*  453 S> */ B(LdaSmi), U8(1),
+  /*  458 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(73),
+  /*  465 S> */ B(LdaSmi), U8(1),
+  /*  470 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(75),
+  /*  477 S> */ B(LdaSmi), U8(1),
+  /*  482 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(77),
+  /*  489 S> */ B(LdaSmi), U8(1),
+  /*  494 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(79),
+  /*  501 S> */ B(LdaSmi), U8(1),
+  /*  506 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(81),
+  /*  513 S> */ B(LdaSmi), U8(1),
+  /*  518 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(83),
+  /*  525 S> */ B(LdaSmi), U8(1),
+  /*  530 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(85),
+  /*  537 S> */ B(LdaSmi), U8(1),
+  /*  542 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(87),
+  /*  549 S> */ B(LdaSmi), U8(1),
+  /*  554 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(89),
+  /*  561 S> */ B(LdaSmi), U8(1),
+  /*  566 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(91),
+  /*  573 S> */ B(LdaSmi), U8(1),
+  /*  578 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(93),
+  /*  585 S> */ B(LdaSmi), U8(1),
+  /*  590 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(95),
+  /*  597 S> */ B(LdaSmi), U8(1),
+  /*  602 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(97),
+  /*  609 S> */ B(LdaSmi), U8(1),
+  /*  614 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(99),
+  /*  621 S> */ B(LdaSmi), U8(1),
+  /*  626 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(101),
+  /*  633 S> */ B(LdaSmi), U8(1),
+  /*  638 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(103),
+  /*  645 S> */ B(LdaSmi), U8(1),
+  /*  650 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(105),
+  /*  657 S> */ B(LdaSmi), U8(1),
+  /*  662 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(107),
+  /*  669 S> */ B(LdaSmi), U8(1),
+  /*  674 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(109),
+  /*  681 S> */ B(LdaSmi), U8(1),
+  /*  686 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(111),
+  /*  693 S> */ B(LdaSmi), U8(1),
+  /*  698 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(113),
+  /*  705 S> */ B(LdaSmi), U8(1),
+  /*  710 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(115),
+  /*  717 S> */ B(LdaSmi), U8(1),
+  /*  722 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(117),
+  /*  729 S> */ B(LdaSmi), U8(1),
+  /*  734 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(119),
+  /*  741 S> */ B(LdaSmi), U8(1),
+  /*  746 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(121),
+  /*  753 S> */ B(LdaSmi), U8(1),
+  /*  758 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(123),
+  /*  765 S> */ B(LdaSmi), U8(1),
+  /*  770 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(125),
+  /*  777 S> */ B(LdaSmi), U8(1),
+  /*  782 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(127),
+  /*  789 S> */ B(LdaSmi), U8(1),
+  /*  794 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(129),
+  /*  801 S> */ B(LdaSmi), U8(1),
+  /*  806 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(131),
+  /*  813 S> */ B(LdaSmi), U8(1),
+  /*  818 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(133),
+  /*  825 S> */ B(LdaSmi), U8(1),
+  /*  830 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(135),
+  /*  837 S> */ B(LdaSmi), U8(1),
+  /*  842 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(137),
+  /*  849 S> */ B(LdaSmi), U8(1),
+  /*  854 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(139),
+  /*  861 S> */ B(LdaSmi), U8(1),
+  /*  866 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(141),
+  /*  873 S> */ B(LdaSmi), U8(1),
+  /*  878 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(143),
+  /*  885 S> */ B(LdaSmi), U8(1),
+  /*  890 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(145),
+  /*  897 S> */ B(LdaSmi), U8(1),
+  /*  902 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(147),
+  /*  909 S> */ B(LdaSmi), U8(1),
+  /*  914 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(149),
+  /*  921 S> */ B(LdaSmi), U8(1),
+  /*  926 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(151),
+  /*  933 S> */ B(LdaSmi), U8(1),
+  /*  938 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(153),
+  /*  945 S> */ B(LdaSmi), U8(1),
+  /*  950 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(155),
+  /*  957 S> */ B(LdaSmi), U8(1),
+  /*  962 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(157),
+  /*  969 S> */ B(LdaSmi), U8(1),
+  /*  974 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(159),
+  /*  981 S> */ B(LdaSmi), U8(1),
+  /*  986 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(161),
+  /*  993 S> */ B(LdaSmi), U8(1),
+  /*  998 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(163),
+  /* 1005 S> */ B(LdaSmi), U8(1),
+  /* 1010 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(165),
+  /* 1017 S> */ B(LdaSmi), U8(1),
+  /* 1022 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(167),
+  /* 1029 S> */ B(LdaSmi), U8(1),
+  /* 1034 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(169),
+  /* 1041 S> */ B(LdaSmi), U8(1),
+  /* 1046 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(171),
+  /* 1053 S> */ B(LdaSmi), U8(1),
+  /* 1058 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(173),
+  /* 1065 S> */ B(LdaSmi), U8(1),
+  /* 1070 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(175),
+  /* 1077 S> */ B(LdaSmi), U8(1),
+  /* 1082 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(177),
+  /* 1089 S> */ B(LdaSmi), U8(1),
+  /* 1094 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(179),
+  /* 1101 S> */ B(LdaSmi), U8(1),
+  /* 1106 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(181),
+  /* 1113 S> */ B(LdaSmi), U8(1),
+  /* 1118 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(183),
+  /* 1125 S> */ B(LdaSmi), U8(1),
+  /* 1130 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(185),
+  /* 1137 S> */ B(LdaSmi), U8(1),
+  /* 1142 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(187),
+  /* 1149 S> */ B(LdaSmi), U8(1),
+  /* 1154 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(189),
+  /* 1161 S> */ B(LdaSmi), U8(1),
+  /* 1166 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(191),
+  /* 1173 S> */ B(LdaSmi), U8(1),
+  /* 1178 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(193),
+  /* 1185 S> */ B(LdaSmi), U8(1),
+  /* 1190 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(195),
+  /* 1197 S> */ B(LdaSmi), U8(1),
+  /* 1202 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(197),
+  /* 1209 S> */ B(LdaSmi), U8(1),
+  /* 1214 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(199),
+  /* 1221 S> */ B(LdaSmi), U8(1),
+  /* 1226 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(201),
+  /* 1233 S> */ B(LdaSmi), U8(1),
+  /* 1238 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(203),
+  /* 1245 S> */ B(LdaSmi), U8(1),
+  /* 1250 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(205),
+  /* 1257 S> */ B(LdaSmi), U8(1),
+  /* 1262 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(207),
+  /* 1269 S> */ B(LdaSmi), U8(1),
+  /* 1274 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(209),
+  /* 1281 S> */ B(LdaSmi), U8(1),
+  /* 1286 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(211),
+  /* 1293 S> */ B(LdaSmi), U8(1),
+  /* 1298 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(213),
+  /* 1305 S> */ B(LdaSmi), U8(1),
+  /* 1310 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(215),
+  /* 1317 S> */ B(LdaSmi), U8(1),
+  /* 1322 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(217),
+  /* 1329 S> */ B(LdaSmi), U8(1),
+  /* 1334 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(219),
+  /* 1341 S> */ B(LdaSmi), U8(1),
+  /* 1346 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(221),
+  /* 1353 S> */ B(LdaSmi), U8(1),
+  /* 1358 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(223),
+  /* 1365 S> */ B(LdaSmi), U8(1),
+  /* 1370 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(225),
+  /* 1377 S> */ B(LdaSmi), U8(1),
+  /* 1382 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(227),
+  /* 1389 S> */ B(LdaSmi), U8(1),
+  /* 1394 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(229),
+  /* 1401 S> */ B(LdaSmi), U8(1),
+  /* 1406 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(231),
+  /* 1413 S> */ B(LdaSmi), U8(1),
+  /* 1418 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(233),
+  /* 1425 S> */ B(LdaSmi), U8(1),
+  /* 1430 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(235),
+  /* 1437 S> */ B(LdaSmi), U8(1),
+  /* 1442 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(237),
+  /* 1449 S> */ B(LdaSmi), U8(1),
+  /* 1454 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(239),
+  /* 1461 S> */ B(LdaSmi), U8(1),
+  /* 1466 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(241),
+  /* 1473 S> */ B(LdaSmi), U8(1),
+  /* 1478 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(243),
+  /* 1485 S> */ B(LdaSmi), U8(1),
+  /* 1490 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(245),
+  /* 1497 S> */ B(LdaSmi), U8(1),
+  /* 1502 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(247),
+  /* 1509 S> */ B(LdaSmi), U8(1),
+  /* 1514 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(249),
+  /* 1521 S> */ B(LdaSmi), U8(1),
+  /* 1526 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(251),
+  /* 1533 S> */ B(LdaSmi), U8(1),
+  /* 1538 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(253),
+  /* 1545 S> */ B(LdaSmi), U8(1),
+  /* 1550 E> */ B(StaKeyedPropertySloppy), R(arg0), R(arg1), U8(255),
+  /* 1557 S> */ B(LdaSmi), U8(2),
+  /* 1562 E> */ B(Wide), B(StaKeyedPropertySloppy), R16(arg0), R16(arg1), U16(257),
                 B(LdaUndefined),
   /* 1567 S> */ B(Return),
 ]
@@ -2570,785 +1518,269 @@
   }
   f({name : \"test\"})
 "
-frame size: 2
+frame size: 0
 parameter count: 3
-bytecode array length: 1813
+bytecode array length: 781
 bytecodes: [
   /*   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),
+  /*   37 S> */ B(LdaSmi), U8(1),
+  /*   42 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(1),
+  /*   49 S> */ B(LdaSmi), U8(1),
+  /*   54 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(3),
+  /*   61 S> */ B(LdaSmi), U8(1),
+  /*   66 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(5),
+  /*   73 S> */ B(LdaSmi), U8(1),
+  /*   78 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(7),
+  /*   85 S> */ B(LdaSmi), U8(1),
+  /*   90 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(9),
+  /*   97 S> */ B(LdaSmi), U8(1),
+  /*  102 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(11),
+  /*  109 S> */ B(LdaSmi), U8(1),
+  /*  114 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(13),
+  /*  121 S> */ B(LdaSmi), U8(1),
+  /*  126 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(15),
+  /*  133 S> */ B(LdaSmi), U8(1),
+  /*  138 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(17),
+  /*  145 S> */ B(LdaSmi), U8(1),
+  /*  150 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(19),
+  /*  157 S> */ B(LdaSmi), U8(1),
+  /*  162 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(21),
+  /*  169 S> */ B(LdaSmi), U8(1),
+  /*  174 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(23),
+  /*  181 S> */ B(LdaSmi), U8(1),
+  /*  186 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(25),
+  /*  193 S> */ B(LdaSmi), U8(1),
+  /*  198 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(27),
+  /*  205 S> */ B(LdaSmi), U8(1),
+  /*  210 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(29),
+  /*  217 S> */ B(LdaSmi), U8(1),
+  /*  222 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(31),
+  /*  229 S> */ B(LdaSmi), U8(1),
+  /*  234 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(33),
+  /*  241 S> */ B(LdaSmi), U8(1),
+  /*  246 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(35),
+  /*  253 S> */ B(LdaSmi), U8(1),
+  /*  258 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(37),
+  /*  265 S> */ B(LdaSmi), U8(1),
+  /*  270 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(39),
+  /*  277 S> */ B(LdaSmi), U8(1),
+  /*  282 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(41),
+  /*  289 S> */ B(LdaSmi), U8(1),
+  /*  294 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(43),
+  /*  301 S> */ B(LdaSmi), U8(1),
+  /*  306 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(45),
+  /*  313 S> */ B(LdaSmi), U8(1),
+  /*  318 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(47),
+  /*  325 S> */ B(LdaSmi), U8(1),
+  /*  330 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(49),
+  /*  337 S> */ B(LdaSmi), U8(1),
+  /*  342 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(51),
+  /*  349 S> */ B(LdaSmi), U8(1),
+  /*  354 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(53),
+  /*  361 S> */ B(LdaSmi), U8(1),
+  /*  366 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(55),
+  /*  373 S> */ B(LdaSmi), U8(1),
+  /*  378 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(57),
+  /*  385 S> */ B(LdaSmi), U8(1),
+  /*  390 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(59),
+  /*  397 S> */ B(LdaSmi), U8(1),
+  /*  402 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(61),
+  /*  409 S> */ B(LdaSmi), U8(1),
+  /*  414 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(63),
+  /*  421 S> */ B(LdaSmi), U8(1),
+  /*  426 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(65),
+  /*  433 S> */ B(LdaSmi), U8(1),
+  /*  438 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(67),
+  /*  445 S> */ B(LdaSmi), U8(1),
+  /*  450 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(69),
+  /*  457 S> */ B(LdaSmi), U8(1),
+  /*  462 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(71),
+  /*  469 S> */ B(LdaSmi), U8(1),
+  /*  474 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(73),
+  /*  481 S> */ B(LdaSmi), U8(1),
+  /*  486 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(75),
+  /*  493 S> */ B(LdaSmi), U8(1),
+  /*  498 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(77),
+  /*  505 S> */ B(LdaSmi), U8(1),
+  /*  510 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(79),
+  /*  517 S> */ B(LdaSmi), U8(1),
+  /*  522 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(81),
+  /*  529 S> */ B(LdaSmi), U8(1),
+  /*  534 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(83),
+  /*  541 S> */ B(LdaSmi), U8(1),
+  /*  546 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(85),
+  /*  553 S> */ B(LdaSmi), U8(1),
+  /*  558 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(87),
+  /*  565 S> */ B(LdaSmi), U8(1),
+  /*  570 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(89),
+  /*  577 S> */ B(LdaSmi), U8(1),
+  /*  582 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(91),
+  /*  589 S> */ B(LdaSmi), U8(1),
+  /*  594 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(93),
+  /*  601 S> */ B(LdaSmi), U8(1),
+  /*  606 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(95),
+  /*  613 S> */ B(LdaSmi), U8(1),
+  /*  618 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(97),
+  /*  625 S> */ B(LdaSmi), U8(1),
+  /*  630 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(99),
+  /*  637 S> */ B(LdaSmi), U8(1),
+  /*  642 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(101),
+  /*  649 S> */ B(LdaSmi), U8(1),
+  /*  654 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(103),
+  /*  661 S> */ B(LdaSmi), U8(1),
+  /*  666 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(105),
+  /*  673 S> */ B(LdaSmi), U8(1),
+  /*  678 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(107),
+  /*  685 S> */ B(LdaSmi), U8(1),
+  /*  690 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(109),
+  /*  697 S> */ B(LdaSmi), U8(1),
+  /*  702 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(111),
+  /*  709 S> */ B(LdaSmi), U8(1),
+  /*  714 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(113),
+  /*  721 S> */ B(LdaSmi), U8(1),
+  /*  726 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(115),
+  /*  733 S> */ B(LdaSmi), U8(1),
+  /*  738 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(117),
+  /*  745 S> */ B(LdaSmi), U8(1),
+  /*  750 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(119),
+  /*  757 S> */ B(LdaSmi), U8(1),
+  /*  762 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(121),
+  /*  769 S> */ B(LdaSmi), U8(1),
+  /*  774 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(123),
+  /*  781 S> */ B(LdaSmi), U8(1),
+  /*  786 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(125),
+  /*  793 S> */ B(LdaSmi), U8(1),
+  /*  798 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(127),
+  /*  805 S> */ B(LdaSmi), U8(1),
+  /*  810 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(129),
+  /*  817 S> */ B(LdaSmi), U8(1),
+  /*  822 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(131),
+  /*  829 S> */ B(LdaSmi), U8(1),
+  /*  834 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(133),
+  /*  841 S> */ B(LdaSmi), U8(1),
+  /*  846 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(135),
+  /*  853 S> */ B(LdaSmi), U8(1),
+  /*  858 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(137),
+  /*  865 S> */ B(LdaSmi), U8(1),
+  /*  870 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(139),
+  /*  877 S> */ B(LdaSmi), U8(1),
+  /*  882 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(141),
+  /*  889 S> */ B(LdaSmi), U8(1),
+  /*  894 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(143),
+  /*  901 S> */ B(LdaSmi), U8(1),
+  /*  906 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(145),
+  /*  913 S> */ B(LdaSmi), U8(1),
+  /*  918 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(147),
+  /*  925 S> */ B(LdaSmi), U8(1),
+  /*  930 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(149),
+  /*  937 S> */ B(LdaSmi), U8(1),
+  /*  942 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(151),
+  /*  949 S> */ B(LdaSmi), U8(1),
+  /*  954 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(153),
+  /*  961 S> */ B(LdaSmi), U8(1),
+  /*  966 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(155),
+  /*  973 S> */ B(LdaSmi), U8(1),
+  /*  978 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(157),
+  /*  985 S> */ B(LdaSmi), U8(1),
+  /*  990 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(159),
+  /*  997 S> */ B(LdaSmi), U8(1),
+  /* 1002 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(161),
+  /* 1009 S> */ B(LdaSmi), U8(1),
+  /* 1014 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(163),
+  /* 1021 S> */ B(LdaSmi), U8(1),
+  /* 1026 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(165),
+  /* 1033 S> */ B(LdaSmi), U8(1),
+  /* 1038 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(167),
+  /* 1045 S> */ B(LdaSmi), U8(1),
+  /* 1050 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(169),
+  /* 1057 S> */ B(LdaSmi), U8(1),
+  /* 1062 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(171),
+  /* 1069 S> */ B(LdaSmi), U8(1),
+  /* 1074 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(173),
+  /* 1081 S> */ B(LdaSmi), U8(1),
+  /* 1086 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(175),
+  /* 1093 S> */ B(LdaSmi), U8(1),
+  /* 1098 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(177),
+  /* 1105 S> */ B(LdaSmi), U8(1),
+  /* 1110 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(179),
+  /* 1117 S> */ B(LdaSmi), U8(1),
+  /* 1122 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(181),
+  /* 1129 S> */ B(LdaSmi), U8(1),
+  /* 1134 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(183),
+  /* 1141 S> */ B(LdaSmi), U8(1),
+  /* 1146 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(185),
+  /* 1153 S> */ B(LdaSmi), U8(1),
+  /* 1158 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(187),
+  /* 1165 S> */ B(LdaSmi), U8(1),
+  /* 1170 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(189),
+  /* 1177 S> */ B(LdaSmi), U8(1),
+  /* 1182 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(191),
+  /* 1189 S> */ B(LdaSmi), U8(1),
+  /* 1194 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(193),
+  /* 1201 S> */ B(LdaSmi), U8(1),
+  /* 1206 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(195),
+  /* 1213 S> */ B(LdaSmi), U8(1),
+  /* 1218 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(197),
+  /* 1225 S> */ B(LdaSmi), U8(1),
+  /* 1230 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(199),
+  /* 1237 S> */ B(LdaSmi), U8(1),
+  /* 1242 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(201),
+  /* 1249 S> */ B(LdaSmi), U8(1),
+  /* 1254 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(203),
+  /* 1261 S> */ B(LdaSmi), U8(1),
+  /* 1266 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(205),
+  /* 1273 S> */ B(LdaSmi), U8(1),
+  /* 1278 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(207),
+  /* 1285 S> */ B(LdaSmi), U8(1),
+  /* 1290 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(209),
+  /* 1297 S> */ B(LdaSmi), U8(1),
+  /* 1302 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(211),
+  /* 1309 S> */ B(LdaSmi), U8(1),
+  /* 1314 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(213),
+  /* 1321 S> */ B(LdaSmi), U8(1),
+  /* 1326 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(215),
+  /* 1333 S> */ B(LdaSmi), U8(1),
+  /* 1338 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(217),
+  /* 1345 S> */ B(LdaSmi), U8(1),
+  /* 1350 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(219),
+  /* 1357 S> */ B(LdaSmi), U8(1),
+  /* 1362 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(221),
+  /* 1369 S> */ B(LdaSmi), U8(1),
+  /* 1374 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(223),
+  /* 1381 S> */ B(LdaSmi), U8(1),
+  /* 1386 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(225),
+  /* 1393 S> */ B(LdaSmi), U8(1),
+  /* 1398 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(227),
+  /* 1405 S> */ B(LdaSmi), U8(1),
+  /* 1410 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(229),
+  /* 1417 S> */ B(LdaSmi), U8(1),
+  /* 1422 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(231),
+  /* 1429 S> */ B(LdaSmi), U8(1),
+  /* 1434 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(233),
+  /* 1441 S> */ B(LdaSmi), U8(1),
+  /* 1446 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(235),
+  /* 1453 S> */ B(LdaSmi), U8(1),
+  /* 1458 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(237),
+  /* 1465 S> */ B(LdaSmi), U8(1),
+  /* 1470 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(239),
+  /* 1477 S> */ B(LdaSmi), U8(1),
+  /* 1482 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(241),
+  /* 1489 S> */ B(LdaSmi), U8(1),
+  /* 1494 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(243),
+  /* 1501 S> */ B(LdaSmi), U8(1),
+  /* 1506 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(245),
+  /* 1513 S> */ B(LdaSmi), U8(1),
+  /* 1518 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(247),
+  /* 1525 S> */ B(LdaSmi), U8(1),
+  /* 1530 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(249),
+  /* 1537 S> */ B(LdaSmi), U8(1),
+  /* 1542 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(251),
+  /* 1549 S> */ B(LdaSmi), U8(1),
+  /* 1554 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(253),
+  /* 1561 S> */ B(LdaSmi), U8(1),
+  /* 1566 E> */ B(StaKeyedPropertyStrict), R(arg0), R(arg1), U8(255),
+  /* 1573 S> */ B(LdaSmi), U8(2),
+  /* 1578 E> */ B(Wide), B(StaKeyedPropertyStrict), R16(arg0), R16(arg1), U16(257),
                 B(LdaUndefined),
   /* 1583 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden b/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
index 01ae49c..210a350 100644
--- a/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RegExpLiterals.golden
@@ -49,13 +49,12 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 23
+bytecode array length: 22
 bytecodes: [
   /*   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),
+  /*   47 E> */ B(LdrNamedProperty), R(1), U8(1), U8(3), R(0),
                 B(LdaConstant), U8(2),
                 B(Star), R(2),
   /*   48 E> */ B(Call), R(0), R(1), U8(2), U8(1),
diff --git a/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden b/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
index a8345a6..3c5499b 100644
--- a/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RegExpLiteralsWide.golden
@@ -274,517 +274,517 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   41 S> */ B(LdaConstant), U8(0),
-  /*   43 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   51 S> */ B(LdaConstant), U8(1),
-  /*   53 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   61 S> */ B(LdaConstant), U8(2),
-  /*   63 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   71 S> */ B(LdaConstant), U8(3),
-  /*   73 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   81 S> */ B(LdaConstant), U8(4),
-  /*   83 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   91 S> */ B(LdaConstant), U8(5),
-  /*   93 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  101 S> */ B(LdaConstant), U8(6),
-  /*  103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  111 S> */ B(LdaConstant), U8(7),
-  /*  113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  121 S> */ B(LdaConstant), U8(8),
-  /*  123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  131 S> */ B(LdaConstant), U8(9),
-  /*  133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  141 S> */ B(LdaConstant), U8(10),
-  /*  143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  151 S> */ B(LdaConstant), U8(11),
-  /*  153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  161 S> */ B(LdaConstant), U8(12),
-  /*  163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  171 S> */ B(LdaConstant), U8(13),
-  /*  173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  181 S> */ B(LdaConstant), U8(14),
-  /*  183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  191 S> */ B(LdaConstant), U8(15),
-  /*  193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  201 S> */ B(LdaConstant), U8(16),
-  /*  203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  211 S> */ B(LdaConstant), U8(17),
-  /*  213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  221 S> */ B(LdaConstant), U8(18),
-  /*  223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  231 S> */ B(LdaConstant), U8(19),
-  /*  233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  241 S> */ B(LdaConstant), U8(20),
-  /*  243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  251 S> */ B(LdaConstant), U8(21),
-  /*  253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  261 S> */ B(LdaConstant), U8(22),
-  /*  263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  271 S> */ B(LdaConstant), U8(23),
-  /*  273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  281 S> */ B(LdaConstant), U8(24),
-  /*  283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  291 S> */ B(LdaConstant), U8(25),
-  /*  293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  301 S> */ B(LdaConstant), U8(26),
-  /*  303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  311 S> */ B(LdaConstant), U8(27),
-  /*  313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  321 S> */ B(LdaConstant), U8(28),
-  /*  323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  331 S> */ B(LdaConstant), U8(29),
-  /*  333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  341 S> */ B(LdaConstant), U8(30),
-  /*  343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  351 S> */ B(LdaConstant), U8(31),
-  /*  353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  361 S> */ B(LdaConstant), U8(32),
-  /*  363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  371 S> */ B(LdaConstant), U8(33),
-  /*  373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  381 S> */ B(LdaConstant), U8(34),
-  /*  383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  391 S> */ B(LdaConstant), U8(35),
-  /*  393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  401 S> */ B(LdaConstant), U8(36),
-  /*  403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  411 S> */ B(LdaConstant), U8(37),
-  /*  413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  421 S> */ B(LdaConstant), U8(38),
-  /*  423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  431 S> */ B(LdaConstant), U8(39),
-  /*  433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  441 S> */ B(LdaConstant), U8(40),
-  /*  443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  451 S> */ B(LdaConstant), U8(41),
-  /*  453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  461 S> */ B(LdaConstant), U8(42),
-  /*  463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  471 S> */ B(LdaConstant), U8(43),
-  /*  473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  481 S> */ B(LdaConstant), U8(44),
-  /*  483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  491 S> */ B(LdaConstant), U8(45),
-  /*  493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  501 S> */ B(LdaConstant), U8(46),
-  /*  503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  511 S> */ B(LdaConstant), U8(47),
-  /*  513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  521 S> */ B(LdaConstant), U8(48),
-  /*  523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  531 S> */ B(LdaConstant), U8(49),
-  /*  533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  541 S> */ B(LdaConstant), U8(50),
-  /*  543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  551 S> */ B(LdaConstant), U8(51),
-  /*  553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  561 S> */ B(LdaConstant), U8(52),
-  /*  563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  571 S> */ B(LdaConstant), U8(53),
-  /*  573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  581 S> */ B(LdaConstant), U8(54),
-  /*  583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  591 S> */ B(LdaConstant), U8(55),
-  /*  593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  601 S> */ B(LdaConstant), U8(56),
-  /*  603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  611 S> */ B(LdaConstant), U8(57),
-  /*  613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  621 S> */ B(LdaConstant), U8(58),
-  /*  623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  631 S> */ B(LdaConstant), U8(59),
-  /*  633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  641 S> */ B(LdaConstant), U8(60),
-  /*  643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  651 S> */ B(LdaConstant), U8(61),
-  /*  653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  661 S> */ B(LdaConstant), U8(62),
-  /*  663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  671 S> */ B(LdaConstant), U8(63),
-  /*  673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  681 S> */ B(LdaConstant), U8(64),
-  /*  683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  691 S> */ B(LdaConstant), U8(65),
-  /*  693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  701 S> */ B(LdaConstant), U8(66),
-  /*  703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  711 S> */ B(LdaConstant), U8(67),
-  /*  713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  721 S> */ B(LdaConstant), U8(68),
-  /*  723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  731 S> */ B(LdaConstant), U8(69),
-  /*  733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  741 S> */ B(LdaConstant), U8(70),
-  /*  743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  751 S> */ B(LdaConstant), U8(71),
-  /*  753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  761 S> */ B(LdaConstant), U8(72),
-  /*  763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  771 S> */ B(LdaConstant), U8(73),
-  /*  773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  781 S> */ B(LdaConstant), U8(74),
-  /*  783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  791 S> */ B(LdaConstant), U8(75),
-  /*  793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  801 S> */ B(LdaConstant), U8(76),
-  /*  803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  811 S> */ B(LdaConstant), U8(77),
-  /*  813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  821 S> */ B(LdaConstant), U8(78),
-  /*  823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  831 S> */ B(LdaConstant), U8(79),
-  /*  833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  841 S> */ B(LdaConstant), U8(80),
-  /*  843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  851 S> */ B(LdaConstant), U8(81),
-  /*  853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  861 S> */ B(LdaConstant), U8(82),
-  /*  863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  871 S> */ B(LdaConstant), U8(83),
-  /*  873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  881 S> */ B(LdaConstant), U8(84),
-  /*  883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  891 S> */ B(LdaConstant), U8(85),
-  /*  893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  901 S> */ B(LdaConstant), U8(86),
-  /*  903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  911 S> */ B(LdaConstant), U8(87),
-  /*  913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  921 S> */ B(LdaConstant), U8(88),
-  /*  923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  931 S> */ B(LdaConstant), U8(89),
-  /*  933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  941 S> */ B(LdaConstant), U8(90),
-  /*  943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  951 S> */ B(LdaConstant), U8(91),
-  /*  953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  961 S> */ B(LdaConstant), U8(92),
-  /*  963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  971 S> */ B(LdaConstant), U8(93),
-  /*  973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  981 S> */ B(LdaConstant), U8(94),
-  /*  983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*  991 S> */ B(LdaConstant), U8(95),
-  /*  993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1001 S> */ B(LdaConstant), U8(96),
-  /* 1003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1011 S> */ B(LdaConstant), U8(97),
-  /* 1013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1021 S> */ B(LdaConstant), U8(98),
-  /* 1023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1031 S> */ B(LdaConstant), U8(99),
-  /* 1033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1041 S> */ B(LdaConstant), U8(100),
-  /* 1043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1051 S> */ B(LdaConstant), U8(101),
-  /* 1053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1061 S> */ B(LdaConstant), U8(102),
-  /* 1063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1071 S> */ B(LdaConstant), U8(103),
-  /* 1073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1081 S> */ B(LdaConstant), U8(104),
-  /* 1083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1091 S> */ B(LdaConstant), U8(105),
-  /* 1093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1101 S> */ B(LdaConstant), U8(106),
-  /* 1103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1111 S> */ B(LdaConstant), U8(107),
-  /* 1113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1121 S> */ B(LdaConstant), U8(108),
-  /* 1123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1131 S> */ B(LdaConstant), U8(109),
-  /* 1133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1141 S> */ B(LdaConstant), U8(110),
-  /* 1143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1151 S> */ B(LdaConstant), U8(111),
-  /* 1153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1161 S> */ B(LdaConstant), U8(112),
-  /* 1163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1171 S> */ B(LdaConstant), U8(113),
-  /* 1173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1181 S> */ B(LdaConstant), U8(114),
-  /* 1183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1191 S> */ B(LdaConstant), U8(115),
-  /* 1193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1201 S> */ B(LdaConstant), U8(116),
-  /* 1203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1211 S> */ B(LdaConstant), U8(117),
-  /* 1213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1221 S> */ B(LdaConstant), U8(118),
-  /* 1223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1231 S> */ B(LdaConstant), U8(119),
-  /* 1233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1241 S> */ B(LdaConstant), U8(120),
-  /* 1243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1251 S> */ B(LdaConstant), U8(121),
-  /* 1253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1261 S> */ B(LdaConstant), U8(122),
-  /* 1263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1271 S> */ B(LdaConstant), U8(123),
-  /* 1273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1281 S> */ B(LdaConstant), U8(124),
-  /* 1283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1291 S> */ B(LdaConstant), U8(125),
-  /* 1293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1301 S> */ B(LdaConstant), U8(126),
-  /* 1303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1311 S> */ B(LdaConstant), U8(127),
-  /* 1313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1321 S> */ B(LdaConstant), U8(128),
-  /* 1323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1331 S> */ B(LdaConstant), U8(129),
-  /* 1333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1341 S> */ B(LdaConstant), U8(130),
-  /* 1343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1351 S> */ B(LdaConstant), U8(131),
-  /* 1353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1361 S> */ B(LdaConstant), U8(132),
-  /* 1363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1371 S> */ B(LdaConstant), U8(133),
-  /* 1373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1381 S> */ B(LdaConstant), U8(134),
-  /* 1383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1391 S> */ B(LdaConstant), U8(135),
-  /* 1393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1401 S> */ B(LdaConstant), U8(136),
-  /* 1403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1411 S> */ B(LdaConstant), U8(137),
-  /* 1413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1421 S> */ B(LdaConstant), U8(138),
-  /* 1423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1431 S> */ B(LdaConstant), U8(139),
-  /* 1433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1441 S> */ B(LdaConstant), U8(140),
-  /* 1443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1451 S> */ B(LdaConstant), U8(141),
-  /* 1453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1461 S> */ B(LdaConstant), U8(142),
-  /* 1463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1471 S> */ B(LdaConstant), U8(143),
-  /* 1473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1481 S> */ B(LdaConstant), U8(144),
-  /* 1483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1491 S> */ B(LdaConstant), U8(145),
-  /* 1493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1501 S> */ B(LdaConstant), U8(146),
-  /* 1503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1511 S> */ B(LdaConstant), U8(147),
-  /* 1513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1521 S> */ B(LdaConstant), U8(148),
-  /* 1523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1531 S> */ B(LdaConstant), U8(149),
-  /* 1533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1541 S> */ B(LdaConstant), U8(150),
-  /* 1543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1551 S> */ B(LdaConstant), U8(151),
-  /* 1553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1561 S> */ B(LdaConstant), U8(152),
-  /* 1563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1571 S> */ B(LdaConstant), U8(153),
-  /* 1573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1581 S> */ B(LdaConstant), U8(154),
-  /* 1583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1591 S> */ B(LdaConstant), U8(155),
-  /* 1593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1601 S> */ B(LdaConstant), U8(156),
-  /* 1603 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1611 S> */ B(LdaConstant), U8(157),
-  /* 1613 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1621 S> */ B(LdaConstant), U8(158),
-  /* 1623 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1631 S> */ B(LdaConstant), U8(159),
-  /* 1633 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1641 S> */ B(LdaConstant), U8(160),
-  /* 1643 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1651 S> */ B(LdaConstant), U8(161),
-  /* 1653 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1661 S> */ B(LdaConstant), U8(162),
-  /* 1663 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1671 S> */ B(LdaConstant), U8(163),
-  /* 1673 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1681 S> */ B(LdaConstant), U8(164),
-  /* 1683 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1691 S> */ B(LdaConstant), U8(165),
-  /* 1693 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1701 S> */ B(LdaConstant), U8(166),
-  /* 1703 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1711 S> */ B(LdaConstant), U8(167),
-  /* 1713 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1721 S> */ B(LdaConstant), U8(168),
-  /* 1723 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1731 S> */ B(LdaConstant), U8(169),
-  /* 1733 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1741 S> */ B(LdaConstant), U8(170),
-  /* 1743 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1751 S> */ B(LdaConstant), U8(171),
-  /* 1753 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1761 S> */ B(LdaConstant), U8(172),
-  /* 1763 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1771 S> */ B(LdaConstant), U8(173),
-  /* 1773 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1781 S> */ B(LdaConstant), U8(174),
-  /* 1783 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1791 S> */ B(LdaConstant), U8(175),
-  /* 1793 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1801 S> */ B(LdaConstant), U8(176),
-  /* 1803 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1811 S> */ B(LdaConstant), U8(177),
-  /* 1813 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1821 S> */ B(LdaConstant), U8(178),
-  /* 1823 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1831 S> */ B(LdaConstant), U8(179),
-  /* 1833 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1841 S> */ B(LdaConstant), U8(180),
-  /* 1843 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1851 S> */ B(LdaConstant), U8(181),
-  /* 1853 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1861 S> */ B(LdaConstant), U8(182),
-  /* 1863 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1871 S> */ B(LdaConstant), U8(183),
-  /* 1873 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1881 S> */ B(LdaConstant), U8(184),
-  /* 1883 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1891 S> */ B(LdaConstant), U8(185),
-  /* 1893 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1901 S> */ B(LdaConstant), U8(186),
-  /* 1903 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1911 S> */ B(LdaConstant), U8(187),
-  /* 1913 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1921 S> */ B(LdaConstant), U8(188),
-  /* 1923 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1931 S> */ B(LdaConstant), U8(189),
-  /* 1933 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1941 S> */ B(LdaConstant), U8(190),
-  /* 1943 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1951 S> */ B(LdaConstant), U8(191),
-  /* 1953 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1961 S> */ B(LdaConstant), U8(192),
-  /* 1963 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1971 S> */ B(LdaConstant), U8(193),
-  /* 1973 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1981 S> */ B(LdaConstant), U8(194),
-  /* 1983 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1991 S> */ B(LdaConstant), U8(195),
-  /* 1993 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2001 S> */ B(LdaConstant), U8(196),
-  /* 2003 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2011 S> */ B(LdaConstant), U8(197),
-  /* 2013 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2021 S> */ B(LdaConstant), U8(198),
-  /* 2023 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2031 S> */ B(LdaConstant), U8(199),
-  /* 2033 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2041 S> */ B(LdaConstant), U8(200),
-  /* 2043 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2051 S> */ B(LdaConstant), U8(201),
-  /* 2053 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2061 S> */ B(LdaConstant), U8(202),
-  /* 2063 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2071 S> */ B(LdaConstant), U8(203),
-  /* 2073 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2081 S> */ B(LdaConstant), U8(204),
-  /* 2083 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2091 S> */ B(LdaConstant), U8(205),
-  /* 2093 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2101 S> */ B(LdaConstant), U8(206),
-  /* 2103 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2111 S> */ B(LdaConstant), U8(207),
-  /* 2113 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2121 S> */ B(LdaConstant), U8(208),
-  /* 2123 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2131 S> */ B(LdaConstant), U8(209),
-  /* 2133 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2141 S> */ B(LdaConstant), U8(210),
-  /* 2143 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2151 S> */ B(LdaConstant), U8(211),
-  /* 2153 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2161 S> */ B(LdaConstant), U8(212),
-  /* 2163 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2171 S> */ B(LdaConstant), U8(213),
-  /* 2173 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2181 S> */ B(LdaConstant), U8(214),
-  /* 2183 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2191 S> */ B(LdaConstant), U8(215),
-  /* 2193 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2201 S> */ B(LdaConstant), U8(216),
-  /* 2203 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2211 S> */ B(LdaConstant), U8(217),
-  /* 2213 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2221 S> */ B(LdaConstant), U8(218),
-  /* 2223 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2231 S> */ B(LdaConstant), U8(219),
-  /* 2233 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2241 S> */ B(LdaConstant), U8(220),
-  /* 2243 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2251 S> */ B(LdaConstant), U8(221),
-  /* 2253 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2261 S> */ B(LdaConstant), U8(222),
-  /* 2263 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2271 S> */ B(LdaConstant), U8(223),
-  /* 2273 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2281 S> */ B(LdaConstant), U8(224),
-  /* 2283 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2291 S> */ B(LdaConstant), U8(225),
-  /* 2293 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2301 S> */ B(LdaConstant), U8(226),
-  /* 2303 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2311 S> */ B(LdaConstant), U8(227),
-  /* 2313 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2321 S> */ B(LdaConstant), U8(228),
-  /* 2323 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2331 S> */ B(LdaConstant), U8(229),
-  /* 2333 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2341 S> */ B(LdaConstant), U8(230),
-  /* 2343 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2351 S> */ B(LdaConstant), U8(231),
-  /* 2353 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2361 S> */ B(LdaConstant), U8(232),
-  /* 2363 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2371 S> */ B(LdaConstant), U8(233),
-  /* 2373 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2381 S> */ B(LdaConstant), U8(234),
-  /* 2383 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2391 S> */ B(LdaConstant), U8(235),
-  /* 2393 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2401 S> */ B(LdaConstant), U8(236),
-  /* 2403 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2411 S> */ B(LdaConstant), U8(237),
-  /* 2413 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2421 S> */ B(LdaConstant), U8(238),
-  /* 2423 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2431 S> */ B(LdaConstant), U8(239),
-  /* 2433 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2441 S> */ B(LdaConstant), U8(240),
-  /* 2443 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2451 S> */ B(LdaConstant), U8(241),
-  /* 2453 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2461 S> */ B(LdaConstant), U8(242),
-  /* 2463 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2471 S> */ B(LdaConstant), U8(243),
-  /* 2473 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2481 S> */ B(LdaConstant), U8(244),
-  /* 2483 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2491 S> */ B(LdaConstant), U8(245),
-  /* 2493 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2501 S> */ B(LdaConstant), U8(246),
-  /* 2503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2511 S> */ B(LdaConstant), U8(247),
-  /* 2513 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2521 S> */ B(LdaConstant), U8(248),
-  /* 2523 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2531 S> */ B(LdaConstant), U8(249),
-  /* 2533 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2541 S> */ B(LdaConstant), U8(250),
-  /* 2543 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2551 S> */ B(LdaConstant), U8(251),
-  /* 2553 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2561 S> */ B(LdaConstant), U8(252),
-  /* 2563 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2571 S> */ B(LdaConstant), U8(253),
-  /* 2573 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2581 S> */ B(LdaConstant), U8(254),
-  /* 2583 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2591 S> */ B(LdaConstant), U8(255),
-  /* 2593 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 2601 S> */ B(Wide), B(CreateRegExpLiteral), U16(256), U16(0), U8(0),
   /* 2616 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden b/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
index b5ebec1..d96a3bc 100644
--- a/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
+++ b/test/cctest/interpreter/bytecode_expectations/RemoveRedundantLdar.golden
@@ -16,25 +16,22 @@
   }
   return ld_a;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 31
+bytecode array length: 25
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   45 S> */ B(LdaSmi), U8(1),
-  /*   45 E> */ B(Star), R(0),
+                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),
+  /*   78 E> */ B(Add), R(0),
+                B(Star), R(0),
+  /*   86 S> */ B(LdaSmi), U8(10),
+  /*   95 E> */ B(TestGreaterThan), R(0),
                 B(JumpIfFalse), U8(4),
   /*  101 S> */ B(Jump), U8(4),
-                B(Jump), U8(-21),
+                B(Jump), U8(-15),
   /*  110 S> */ B(Ldar), R(0),
   /*  123 S> */ B(Return),
 ]
@@ -52,22 +49,19 @@
   } while(false);
   return ld_a;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 29
+bytecode array length: 23
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   45 S> */ B(LdaSmi), U8(1),
-  /*   45 E> */ B(Star), R(0),
+                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),
+  /*   69 E> */ B(Add), R(0),
+                B(Star), R(0),
+  /*   77 S> */ B(LdaSmi), U8(10),
+  /*   86 E> */ B(TestGreaterThan), R(0),
                 B(JumpIfFalse), U8(4),
   /*   92 S> */ B(Jump), U8(2),
   /*  118 S> */ B(Ldar), R(0),
@@ -84,17 +78,17 @@
     ld_a = ld_a + ld_a;
     return ld_a;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 14
+bytecode array length: 12
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   50 S> */ B(Nop),
+  /*   64 E> */ B(Add), R(0),
+                B(Star), R(0),
+  /*   72 S> */ B(Nop),
   /*   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 bddfe77..5cc49b2 100644
--- a/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden
+++ b/test/cctest/interpreter/bytecode_expectations/StoreGlobal.golden
@@ -231,395 +231,267 @@
   }
   f({name: 1});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 1035
+bytecode array length: 651
 bytecodes: [
   /*   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),
+  /*   25 S> */ B(Nop),
+  /*   26 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
+  /*   35 S> */ B(Nop),
+  /*   36 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
+  /*   45 S> */ B(Nop),
+  /*   46 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
+  /*   55 S> */ B(Nop),
+  /*   56 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
+  /*   65 S> */ B(Nop),
+  /*   66 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
+  /*   75 S> */ B(Nop),
+  /*   76 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
+  /*   85 S> */ B(Nop),
+  /*   86 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
+  /*   95 S> */ B(Nop),
+  /*   96 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
+  /*  105 S> */ B(Nop),
+  /*  106 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
+  /*  115 S> */ B(Nop),
+  /*  116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
+  /*  125 S> */ B(Nop),
+  /*  126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
+  /*  135 S> */ B(Nop),
+  /*  136 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
+  /*  145 S> */ B(Nop),
+  /*  146 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
+  /*  155 S> */ B(Nop),
+  /*  156 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
+  /*  165 S> */ B(Nop),
+  /*  166 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
+  /*  175 S> */ B(Nop),
+  /*  176 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
+  /*  185 S> */ B(Nop),
+  /*  186 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
+  /*  195 S> */ B(Nop),
+  /*  196 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
+  /*  205 S> */ B(Nop),
+  /*  206 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
+  /*  215 S> */ B(Nop),
+  /*  216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
+  /*  225 S> */ B(Nop),
+  /*  226 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
+  /*  235 S> */ B(Nop),
+  /*  236 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
+  /*  245 S> */ B(Nop),
+  /*  246 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
+  /*  255 S> */ B(Nop),
+  /*  256 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
+  /*  265 S> */ B(Nop),
+  /*  266 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
+  /*  275 S> */ B(Nop),
+  /*  276 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
+  /*  285 S> */ B(Nop),
+  /*  286 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
+  /*  295 S> */ B(Nop),
+  /*  296 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
+  /*  305 S> */ B(Nop),
+  /*  306 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
+  /*  315 S> */ B(Nop),
+  /*  316 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
+  /*  325 S> */ B(Nop),
+  /*  326 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
+  /*  335 S> */ B(Nop),
+  /*  336 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
+  /*  345 S> */ B(Nop),
+  /*  346 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
+  /*  355 S> */ B(Nop),
+  /*  356 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
+  /*  365 S> */ B(Nop),
+  /*  366 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
+  /*  375 S> */ B(Nop),
+  /*  376 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
+  /*  385 S> */ B(Nop),
+  /*  386 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
+  /*  395 S> */ B(Nop),
+  /*  396 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
+  /*  405 S> */ B(Nop),
+  /*  406 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
+  /*  415 S> */ B(Nop),
+  /*  416 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
+  /*  425 S> */ B(Nop),
+  /*  426 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
+  /*  435 S> */ B(Nop),
+  /*  436 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
+  /*  445 S> */ B(Nop),
+  /*  446 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
+  /*  455 S> */ B(Nop),
+  /*  456 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
+  /*  465 S> */ B(Nop),
+  /*  466 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
+  /*  475 S> */ B(Nop),
+  /*  476 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
+  /*  485 S> */ B(Nop),
+  /*  486 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
+  /*  495 S> */ B(Nop),
+  /*  496 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
+  /*  505 S> */ B(Nop),
+  /*  506 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
+  /*  515 S> */ B(Nop),
+  /*  516 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
+  /*  525 S> */ B(Nop),
+  /*  526 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
+  /*  535 S> */ B(Nop),
+  /*  536 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
+  /*  545 S> */ B(Nop),
+  /*  546 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
+  /*  555 S> */ B(Nop),
+  /*  556 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
+  /*  565 S> */ B(Nop),
+  /*  566 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
+  /*  575 S> */ B(Nop),
+  /*  576 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
+  /*  585 S> */ B(Nop),
+  /*  586 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
+  /*  595 S> */ B(Nop),
+  /*  596 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
+  /*  605 S> */ B(Nop),
+  /*  606 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
+  /*  615 S> */ B(Nop),
+  /*  616 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
+  /*  625 S> */ B(Nop),
+  /*  626 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
+  /*  635 S> */ B(Nop),
+  /*  636 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
+  /*  645 S> */ B(Nop),
+  /*  646 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
+  /*  655 S> */ B(Nop),
+  /*  656 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
+  /*  665 S> */ B(Nop),
+  /*  666 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
+  /*  675 S> */ B(Nop),
+  /*  676 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
+  /*  685 S> */ B(Nop),
+  /*  686 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
+  /*  695 S> */ B(Nop),
+  /*  696 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
+  /*  705 S> */ B(Nop),
+  /*  706 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
+  /*  715 S> */ B(Nop),
+  /*  716 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
+  /*  725 S> */ B(Nop),
+  /*  726 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
+  /*  735 S> */ B(Nop),
+  /*  736 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
+  /*  745 S> */ B(Nop),
+  /*  746 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
+  /*  755 S> */ B(Nop),
+  /*  756 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
+  /*  765 S> */ B(Nop),
+  /*  766 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
+  /*  775 S> */ B(Nop),
+  /*  776 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
+  /*  785 S> */ B(Nop),
+  /*  786 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
+  /*  795 S> */ B(Nop),
+  /*  796 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
+  /*  805 S> */ B(Nop),
+  /*  806 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
+  /*  815 S> */ B(Nop),
+  /*  816 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
+  /*  825 S> */ B(Nop),
+  /*  826 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
+  /*  835 S> */ B(Nop),
+  /*  836 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
+  /*  845 S> */ B(Nop),
+  /*  846 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
+  /*  855 S> */ B(Nop),
+  /*  856 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
+  /*  865 S> */ B(Nop),
+  /*  866 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
+  /*  875 S> */ B(Nop),
+  /*  876 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
+  /*  885 S> */ B(Nop),
+  /*  886 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
+  /*  895 S> */ B(Nop),
+  /*  896 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
+  /*  905 S> */ B(Nop),
+  /*  906 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
+  /*  915 S> */ B(Nop),
+  /*  916 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
+  /*  925 S> */ B(Nop),
+  /*  926 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
+  /*  935 S> */ B(Nop),
+  /*  936 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
+  /*  945 S> */ B(Nop),
+  /*  946 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
+  /*  955 S> */ B(Nop),
+  /*  956 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
+  /*  965 S> */ B(Nop),
+  /*  966 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
+  /*  975 S> */ B(Nop),
+  /*  976 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
+  /*  985 S> */ B(Nop),
+  /*  986 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
+  /*  995 S> */ B(Nop),
+  /*  996 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
+  /* 1005 S> */ B(Nop),
+  /* 1006 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
+  /* 1015 S> */ B(Nop),
+  /* 1016 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
+  /* 1025 S> */ B(Nop),
+  /* 1026 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
+  /* 1035 S> */ B(Nop),
+  /* 1036 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
+  /* 1045 S> */ B(Nop),
+  /* 1046 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
+  /* 1055 S> */ B(Nop),
+  /* 1056 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
+  /* 1065 S> */ B(Nop),
+  /* 1066 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
+  /* 1075 S> */ B(Nop),
+  /* 1076 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
+  /* 1085 S> */ B(Nop),
+  /* 1086 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
+  /* 1095 S> */ B(Nop),
+  /* 1096 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
+  /* 1105 S> */ B(Nop),
+  /* 1106 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
+  /* 1115 S> */ B(Nop),
+  /* 1116 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
+  /* 1125 S> */ B(Nop),
+  /* 1126 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
+  /* 1135 S> */ B(Nop),
+  /* 1136 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
+  /* 1145 S> */ B(Nop),
+  /* 1146 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
+  /* 1155 S> */ B(Nop),
+  /* 1156 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
+  /* 1165 S> */ B(Nop),
+  /* 1166 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
+  /* 1175 S> */ B(Nop),
+  /* 1176 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
+  /* 1185 S> */ B(Nop),
+  /* 1186 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
+  /* 1195 S> */ B(Nop),
+  /* 1196 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
+  /* 1205 S> */ B(Nop),
+  /* 1206 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
+  /* 1215 S> */ B(Nop),
+  /* 1216 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
+  /* 1225 S> */ B(Nop),
+  /* 1226 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
+  /* 1235 S> */ B(Nop),
+  /* 1236 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
+  /* 1245 S> */ B(Nop),
+  /* 1246 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
+  /* 1255 S> */ B(Nop),
+  /* 1256 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
+  /* 1265 S> */ B(Nop),
+  /* 1266 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
+  /* 1275 S> */ B(Nop),
+  /* 1276 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
+  /* 1285 S> */ B(Nop),
+  /* 1286 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
+  /* 1295 S> */ B(Nop),
+  /* 1296 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
   /* 1305 S> */ B(LdaSmi), U8(2),
   /* 1307 E> */ B(Wide), B(StaGlobalSloppy), U16(1), U16(257),
                 B(LdaUndefined),
@@ -769,395 +641,267 @@
   }
   f({name: 1});
 "
-frame size: 1
+frame size: 0
 parameter count: 2
-bytecode array length: 1035
+bytecode array length: 651
 bytecodes: [
   /*   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),
+  /*   41 S> */ B(Nop),
+  /*   42 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(1),
+  /*   51 S> */ B(Nop),
+  /*   52 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(3),
+  /*   61 S> */ B(Nop),
+  /*   62 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(5),
+  /*   71 S> */ B(Nop),
+  /*   72 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(7),
+  /*   81 S> */ B(Nop),
+  /*   82 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(9),
+  /*   91 S> */ B(Nop),
+  /*   92 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(11),
+  /*  101 S> */ B(Nop),
+  /*  102 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(13),
+  /*  111 S> */ B(Nop),
+  /*  112 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(15),
+  /*  121 S> */ B(Nop),
+  /*  122 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(17),
+  /*  131 S> */ B(Nop),
+  /*  132 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(19),
+  /*  141 S> */ B(Nop),
+  /*  142 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(21),
+  /*  151 S> */ B(Nop),
+  /*  152 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(23),
+  /*  161 S> */ B(Nop),
+  /*  162 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(25),
+  /*  171 S> */ B(Nop),
+  /*  172 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(27),
+  /*  181 S> */ B(Nop),
+  /*  182 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(29),
+  /*  191 S> */ B(Nop),
+  /*  192 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(31),
+  /*  201 S> */ B(Nop),
+  /*  202 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(33),
+  /*  211 S> */ B(Nop),
+  /*  212 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(35),
+  /*  221 S> */ B(Nop),
+  /*  222 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(37),
+  /*  231 S> */ B(Nop),
+  /*  232 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(39),
+  /*  241 S> */ B(Nop),
+  /*  242 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(41),
+  /*  251 S> */ B(Nop),
+  /*  252 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(43),
+  /*  261 S> */ B(Nop),
+  /*  262 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(45),
+  /*  271 S> */ B(Nop),
+  /*  272 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(47),
+  /*  281 S> */ B(Nop),
+  /*  282 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(49),
+  /*  291 S> */ B(Nop),
+  /*  292 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(51),
+  /*  301 S> */ B(Nop),
+  /*  302 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(53),
+  /*  311 S> */ B(Nop),
+  /*  312 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(55),
+  /*  321 S> */ B(Nop),
+  /*  322 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(57),
+  /*  331 S> */ B(Nop),
+  /*  332 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(59),
+  /*  341 S> */ B(Nop),
+  /*  342 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(61),
+  /*  351 S> */ B(Nop),
+  /*  352 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(63),
+  /*  361 S> */ B(Nop),
+  /*  362 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(65),
+  /*  371 S> */ B(Nop),
+  /*  372 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(67),
+  /*  381 S> */ B(Nop),
+  /*  382 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(69),
+  /*  391 S> */ B(Nop),
+  /*  392 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(71),
+  /*  401 S> */ B(Nop),
+  /*  402 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(73),
+  /*  411 S> */ B(Nop),
+  /*  412 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(75),
+  /*  421 S> */ B(Nop),
+  /*  422 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(77),
+  /*  431 S> */ B(Nop),
+  /*  432 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(79),
+  /*  441 S> */ B(Nop),
+  /*  442 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(81),
+  /*  451 S> */ B(Nop),
+  /*  452 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(83),
+  /*  461 S> */ B(Nop),
+  /*  462 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(85),
+  /*  471 S> */ B(Nop),
+  /*  472 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(87),
+  /*  481 S> */ B(Nop),
+  /*  482 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(89),
+  /*  491 S> */ B(Nop),
+  /*  492 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(91),
+  /*  501 S> */ B(Nop),
+  /*  502 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(93),
+  /*  511 S> */ B(Nop),
+  /*  512 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(95),
+  /*  521 S> */ B(Nop),
+  /*  522 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(97),
+  /*  531 S> */ B(Nop),
+  /*  532 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(99),
+  /*  541 S> */ B(Nop),
+  /*  542 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(101),
+  /*  551 S> */ B(Nop),
+  /*  552 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(103),
+  /*  561 S> */ B(Nop),
+  /*  562 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(105),
+  /*  571 S> */ B(Nop),
+  /*  572 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(107),
+  /*  581 S> */ B(Nop),
+  /*  582 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(109),
+  /*  591 S> */ B(Nop),
+  /*  592 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(111),
+  /*  601 S> */ B(Nop),
+  /*  602 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(113),
+  /*  611 S> */ B(Nop),
+  /*  612 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(115),
+  /*  621 S> */ B(Nop),
+  /*  622 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(117),
+  /*  631 S> */ B(Nop),
+  /*  632 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(119),
+  /*  641 S> */ B(Nop),
+  /*  642 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(121),
+  /*  651 S> */ B(Nop),
+  /*  652 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(123),
+  /*  661 S> */ B(Nop),
+  /*  662 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(125),
+  /*  671 S> */ B(Nop),
+  /*  672 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(127),
+  /*  681 S> */ B(Nop),
+  /*  682 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(129),
+  /*  691 S> */ B(Nop),
+  /*  692 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(131),
+  /*  701 S> */ B(Nop),
+  /*  702 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(133),
+  /*  711 S> */ B(Nop),
+  /*  712 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(135),
+  /*  721 S> */ B(Nop),
+  /*  722 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(137),
+  /*  731 S> */ B(Nop),
+  /*  732 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(139),
+  /*  741 S> */ B(Nop),
+  /*  742 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(141),
+  /*  751 S> */ B(Nop),
+  /*  752 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(143),
+  /*  761 S> */ B(Nop),
+  /*  762 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(145),
+  /*  771 S> */ B(Nop),
+  /*  772 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(147),
+  /*  781 S> */ B(Nop),
+  /*  782 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(149),
+  /*  791 S> */ B(Nop),
+  /*  792 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(151),
+  /*  801 S> */ B(Nop),
+  /*  802 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(153),
+  /*  811 S> */ B(Nop),
+  /*  812 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(155),
+  /*  821 S> */ B(Nop),
+  /*  822 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(157),
+  /*  831 S> */ B(Nop),
+  /*  832 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(159),
+  /*  841 S> */ B(Nop),
+  /*  842 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(161),
+  /*  851 S> */ B(Nop),
+  /*  852 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(163),
+  /*  861 S> */ B(Nop),
+  /*  862 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(165),
+  /*  871 S> */ B(Nop),
+  /*  872 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(167),
+  /*  881 S> */ B(Nop),
+  /*  882 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(169),
+  /*  891 S> */ B(Nop),
+  /*  892 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(171),
+  /*  901 S> */ B(Nop),
+  /*  902 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(173),
+  /*  911 S> */ B(Nop),
+  /*  912 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(175),
+  /*  921 S> */ B(Nop),
+  /*  922 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(177),
+  /*  931 S> */ B(Nop),
+  /*  932 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(179),
+  /*  941 S> */ B(Nop),
+  /*  942 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(181),
+  /*  951 S> */ B(Nop),
+  /*  952 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(183),
+  /*  961 S> */ B(Nop),
+  /*  962 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(185),
+  /*  971 S> */ B(Nop),
+  /*  972 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(187),
+  /*  981 S> */ B(Nop),
+  /*  982 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(189),
+  /*  991 S> */ B(Nop),
+  /*  992 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(191),
+  /* 1001 S> */ B(Nop),
+  /* 1002 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(193),
+  /* 1011 S> */ B(Nop),
+  /* 1012 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(195),
+  /* 1021 S> */ B(Nop),
+  /* 1022 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(197),
+  /* 1031 S> */ B(Nop),
+  /* 1032 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(199),
+  /* 1041 S> */ B(Nop),
+  /* 1042 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(201),
+  /* 1051 S> */ B(Nop),
+  /* 1052 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(203),
+  /* 1061 S> */ B(Nop),
+  /* 1062 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(205),
+  /* 1071 S> */ B(Nop),
+  /* 1072 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(207),
+  /* 1081 S> */ B(Nop),
+  /* 1082 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(209),
+  /* 1091 S> */ B(Nop),
+  /* 1092 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(211),
+  /* 1101 S> */ B(Nop),
+  /* 1102 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(213),
+  /* 1111 S> */ B(Nop),
+  /* 1112 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(215),
+  /* 1121 S> */ B(Nop),
+  /* 1122 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(217),
+  /* 1131 S> */ B(Nop),
+  /* 1132 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(219),
+  /* 1141 S> */ B(Nop),
+  /* 1142 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(221),
+  /* 1151 S> */ B(Nop),
+  /* 1152 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(223),
+  /* 1161 S> */ B(Nop),
+  /* 1162 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(225),
+  /* 1171 S> */ B(Nop),
+  /* 1172 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(227),
+  /* 1181 S> */ B(Nop),
+  /* 1182 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(229),
+  /* 1191 S> */ B(Nop),
+  /* 1192 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(231),
+  /* 1201 S> */ B(Nop),
+  /* 1202 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(233),
+  /* 1211 S> */ B(Nop),
+  /* 1212 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(235),
+  /* 1221 S> */ B(Nop),
+  /* 1222 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(237),
+  /* 1231 S> */ B(Nop),
+  /* 1232 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(239),
+  /* 1241 S> */ B(Nop),
+  /* 1242 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(241),
+  /* 1251 S> */ B(Nop),
+  /* 1252 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(243),
+  /* 1261 S> */ B(Nop),
+  /* 1262 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(245),
+  /* 1271 S> */ B(Nop),
+  /* 1272 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(247),
+  /* 1281 S> */ B(Nop),
+  /* 1282 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(249),
+  /* 1291 S> */ B(Nop),
+  /* 1292 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(251),
+  /* 1301 S> */ B(Nop),
+  /* 1302 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(253),
+  /* 1311 S> */ B(Nop),
+  /* 1312 E> */ B(LdaNamedProperty), R(arg0), U8(0), U8(255),
   /* 1321 S> */ B(LdaSmi), U8(2),
   /* 1323 E> */ B(Wide), B(StaGlobalStrict), U16(1), U16(257),
                 B(LdaUndefined),
diff --git a/test/cctest/interpreter/bytecode_expectations/StringConstants.golden b/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
index a35df08..c28ac2a 100644
--- a/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
+++ b/test/cctest/interpreter/bytecode_expectations/StringConstants.golden
@@ -35,7 +35,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   58 S> */ B(LdaConstant), U8(1),
   /*   82 S> */ B(Return),
 ]
@@ -56,7 +56,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaConstant), U8(0),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   57 S> */ B(LdaConstant), U8(0),
   /*   79 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/Switch.golden b/test/cctest/interpreter/bytecode_expectations/Switch.golden
index c252140..ddb8a7a 100644
--- a/test/cctest/interpreter/bytecode_expectations/Switch.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Switch.golden
@@ -17,16 +17,16 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 31
+bytecode array length: 32
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), U8(10),
                 B(LdaSmi), U8(2),
                 B(TestEqualStrict), R(2),
                 B(JumpIfTrue), U8(7),
@@ -53,25 +53,25 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 37
+bytecode array length: 38
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), 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),
+                B(Star), R(1),
   /*   73 S> */ B(Jump), U8(8),
   /*   89 S> */ B(LdaSmi), U8(3),
-  /*   91 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   96 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  105 S> */ B(Return),
@@ -91,24 +91,24 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 35
+bytecode array length: 36
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), 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),
+                B(Star), R(1),
   /*   98 S> */ B(LdaSmi), U8(3),
-  /*  100 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  105 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  114 S> */ B(Return),
@@ -129,16 +129,16 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 35
+bytecode array length: 36
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), U8(10),
                 B(LdaSmi), U8(3),
                 B(TestEqualStrict), R(2),
                 B(JumpIfTrue), U8(6),
@@ -146,7 +146,7 @@
   /*   66 S> */ B(Jump), U8(10),
   /*   82 S> */ B(Jump), U8(8),
   /*   99 S> */ B(LdaSmi), U8(1),
-  /*  101 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  106 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  115 S> */ B(Return),
@@ -167,29 +167,29 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 44
+bytecode array length: 45
 bytecodes: [
   /*   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(Star), R(1),
+  /*   42 E> */ B(TypeOf),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), 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),
+                B(Star), R(1),
   /*   81 S> */ B(Jump), U8(14),
   /*   97 S> */ B(LdaSmi), U8(2),
-  /*   99 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  104 S> */ B(Jump), U8(8),
   /*  121 S> */ B(LdaSmi), U8(3),
-  /*  123 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  128 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  137 S> */ B(Return),
@@ -209,23 +209,22 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 32
+bytecode array length: 31
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(TypeOf),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), U8(4),
                 B(Jump), U8(8),
   /*   74 S> */ B(LdaSmi), U8(1),
-  /*   76 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   81 S> */ B(Jump), U8(8),
   /*   98 S> */ B(LdaSmi), U8(2),
-  /*  100 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  105 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  114 S> */ B(Return),
@@ -312,151 +311,151 @@
 "
 frame size: 3
 parameter count: 1
-bytecode array length: 289
+bytecode array length: 290
 bytecodes: [
   /*   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(Star), R(1),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(2),
+                B(JumpIfToBooleanTrue), 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),
+                B(Star), R(1),
   /*   77 S> */ B(LdaSmi), U8(2),
-  /*   79 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   86 S> */ B(LdaSmi), U8(2),
-  /*   88 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*   95 S> */ B(LdaSmi), U8(2),
-  /*   97 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  104 S> */ B(LdaSmi), U8(2),
-  /*  106 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  113 S> */ B(LdaSmi), U8(2),
-  /*  115 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  122 S> */ B(LdaSmi), U8(2),
-  /*  124 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  131 S> */ B(LdaSmi), U8(2),
-  /*  133 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  140 S> */ B(LdaSmi), U8(2),
-  /*  142 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  149 S> */ B(LdaSmi), U8(2),
-  /*  151 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  158 S> */ B(LdaSmi), U8(2),
-  /*  160 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  167 S> */ B(LdaSmi), U8(2),
-  /*  169 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  176 S> */ B(LdaSmi), U8(2),
-  /*  178 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  185 S> */ B(LdaSmi), U8(2),
-  /*  187 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  194 S> */ B(LdaSmi), U8(2),
-  /*  196 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  203 S> */ B(LdaSmi), U8(2),
-  /*  205 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  212 S> */ B(LdaSmi), U8(2),
-  /*  214 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  221 S> */ B(LdaSmi), U8(2),
-  /*  223 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  230 S> */ B(LdaSmi), U8(2),
-  /*  232 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  239 S> */ B(LdaSmi), U8(2),
-  /*  241 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  248 S> */ B(LdaSmi), U8(2),
-  /*  250 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  257 S> */ B(LdaSmi), U8(2),
-  /*  259 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  266 S> */ B(LdaSmi), U8(2),
-  /*  268 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  275 S> */ B(LdaSmi), U8(2),
-  /*  277 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  284 S> */ B(LdaSmi), U8(2),
-  /*  286 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  293 S> */ B(LdaSmi), U8(2),
-  /*  295 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  302 S> */ B(LdaSmi), U8(2),
-  /*  304 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  311 S> */ B(LdaSmi), U8(2),
-  /*  313 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  320 S> */ B(LdaSmi), U8(2),
-  /*  322 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  329 S> */ B(LdaSmi), U8(2),
-  /*  331 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  338 S> */ B(LdaSmi), U8(2),
-  /*  340 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  347 S> */ B(LdaSmi), U8(2),
-  /*  349 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  356 S> */ B(LdaSmi), U8(2),
-  /*  358 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  365 S> */ B(LdaSmi), U8(2),
-  /*  367 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  374 S> */ B(LdaSmi), U8(2),
-  /*  376 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  383 S> */ B(LdaSmi), U8(2),
-  /*  385 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  392 S> */ B(LdaSmi), U8(2),
-  /*  394 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  401 S> */ B(LdaSmi), U8(2),
-  /*  403 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  410 S> */ B(LdaSmi), U8(2),
-  /*  412 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  419 S> */ B(LdaSmi), U8(2),
-  /*  421 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  428 S> */ B(LdaSmi), U8(2),
-  /*  430 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  437 S> */ B(LdaSmi), U8(2),
-  /*  439 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  446 S> */ B(LdaSmi), U8(2),
-  /*  448 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  455 S> */ B(LdaSmi), U8(2),
-  /*  457 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  464 S> */ B(LdaSmi), U8(2),
-  /*  466 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  473 S> */ B(LdaSmi), U8(2),
-  /*  475 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  482 S> */ B(LdaSmi), U8(2),
-  /*  484 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  491 S> */ B(LdaSmi), U8(2),
-  /*  493 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  500 S> */ B(LdaSmi), U8(2),
-  /*  502 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  509 S> */ B(LdaSmi), U8(2),
-  /*  511 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  518 S> */ B(LdaSmi), U8(2),
-  /*  520 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  527 S> */ B(LdaSmi), U8(2),
-  /*  529 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  536 S> */ B(LdaSmi), U8(2),
-  /*  538 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  545 S> */ B(LdaSmi), U8(2),
-  /*  547 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  554 S> */ B(LdaSmi), U8(2),
-  /*  556 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  563 S> */ B(LdaSmi), U8(2),
-  /*  565 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  572 S> */ B(LdaSmi), U8(2),
-  /*  574 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  581 S> */ B(LdaSmi), U8(2),
-  /*  583 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  590 S> */ B(LdaSmi), U8(2),
-  /*  592 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  599 S> */ B(LdaSmi), U8(2),
-  /*  601 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  608 S> */ B(LdaSmi), U8(2),
-  /*  610 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  617 S> */ B(LdaSmi), U8(2),
-  /*  619 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  626 S> */ B(LdaSmi), U8(2),
-  /*  628 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  635 S> */ B(LdaSmi), U8(2),
-  /*  637 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  644 S> */ B(Jump), U8(8),
   /*  662 S> */ B(LdaSmi), U8(3),
-  /*  664 E> */ B(Star), R(1),
+                B(Star), R(1),
   /*  671 S> */ B(Jump), U8(2),
                 B(LdaUndefined),
   /*  680 S> */ B(Return),
@@ -482,38 +481,36 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 61
+bytecode array length: 59
 bytecodes: [
   /*   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(Star), R(2),
+                B(Star), R(0),
+  /*   45 S> */ B(LdaSmi), U8(1),
+                B(TestEqualStrict), R(0),
+                B(Mov), R(0), R(3),
+                B(JumpIfToBooleanTrue), 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(JumpIfTrue), U8(33),
+                B(Jump), U8(35),
                 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),
+  /*   77 E> */ B(Add), R(2),
+                B(Star), R(1),
+  /*   70 S> */ B(LdaSmi), U8(2),
+                B(TestEqualStrict), R(1),
+                B(Mov), R(1), R(4),
+                B(JumpIfToBooleanTrue), U8(4),
                 B(Jump), U8(8),
   /*  101 S> */ B(LdaSmi), U8(1),
-  /*  103 E> */ B(Star), R(2),
+                B(Star), R(2),
   /*  108 S> */ B(Jump), U8(8),
   /*  131 S> */ B(LdaSmi), U8(2),
-  /*  133 E> */ B(Star), R(2),
+                B(Star), R(2),
   /*  138 S> */ B(Jump), U8(2),
   /*  176 S> */ B(LdaSmi), U8(3),
-  /*  178 E> */ B(Star), R(2),
+                B(Star), R(2),
                 B(LdaUndefined),
   /*  185 S> */ B(Return),
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden b/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
index 5d7328b..582c087 100644
--- a/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
+++ b/test/cctest/interpreter/bytecode_expectations/ThisFunction.golden
@@ -16,11 +16,10 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 7
+bytecode array length: 6
 bytecodes: [
   /*   21 E> */ B(StackCheck),
-                B(Ldar), R(closure),
-                B(Star), R(0),
+                B(Mov), R(closure), R(0),
                 B(LdaUndefined),
   /*   25 S> */ B(Return),
 ]
@@ -37,11 +36,11 @@
 "
 frame size: 1
 parameter count: 1
-bytecode array length: 6
+bytecode array length: 7
 bytecodes: [
   /*   21 E> */ B(StackCheck),
-                B(Ldar), R(closure),
-                B(Star), R(0),
+                B(Mov), R(closure), R(0),
+  /*   26 S> */ B(Ldar), 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 7c671ac..4e7a0bc 100644
--- a/test/cctest/interpreter/bytecode_expectations/Throw.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Throw.golden
@@ -52,7 +52,7 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   45 S> */ B(JumpIfToBooleanFalse), U8(5),
   /*   54 S> */ B(LdaConstant), U8(0),
   /*   54 E> */ B(Throw),
diff --git a/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden b/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
index e1d0ec3..00df0af 100644
--- a/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TopLevelObjectLiterals.golden
@@ -14,7 +14,7 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 44
+bytecode array length: 43
 bytecodes: [
                 B(LdaConstant), U8(0),
                 B(Star), R(1),
@@ -29,9 +29,8 @@
                 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(StaNamedPropertySloppy), R(4), U8(4), U8(3),
+                B(Mov), R(4), R(3),
                 B(CallRuntime), U16(Runtime::kInitializeVarGlobal), R(1), U8(3),
                 B(LdaUndefined),
   /*   33 S> */ B(Return),
diff --git a/test/cctest/interpreter/bytecode_expectations/TryCatch.golden b/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
index b57baf8..f061b70 100644
--- a/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TryCatch.golden
@@ -13,17 +13,17 @@
 "
 frame size: 5
 parameter count: 1
-bytecode array length: 40
+bytecode array length: 41
 bytecodes: [
   /*   30 E> */ B(StackCheck),
                 B(Mov), R(context), R(1),
   /*   40 S> */ B(LdaSmi), U8(1),
   /*   75 S> */ B(Return),
+                B(Jump), U8(32),
                 B(Star), R(3),
                 B(LdaConstant), U8(0),
                 B(Star), R(2),
-                B(Ldar), R(closure),
-                B(Star), R(4),
+                B(Mov), R(closure), R(4),
                 B(CallRuntime), U16(Runtime::kPushCatchContext), R(2), U8(3),
                 B(Star), R(1),
                 B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
@@ -39,7 +39,7 @@
   "e",
 ]
 handlers: [
-  [4, 7, 7],
+  [4, 7, 9],
 ]
 
 ---
@@ -50,19 +50,18 @@
 "
 frame size: 6
 parameter count: 1
-bytecode array length: 81
+bytecode array length: 79
 bytecodes: [
   /*   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(0),
+                B(Jump), U8(29),
                 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(Mov), R(closure), R(5),
+  /*   49 E> */ 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),
@@ -70,20 +69,19 @@
                 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(0),
+                B(Jump), U8(33),
                 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(Mov), R(closure), R(5),
+  /*   77 E> */ 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(Star), R(0),
                 B(PopContext), R(1),
                 B(LdaUndefined),
   /*  103 S> */ B(Return),
@@ -94,6 +92,6 @@
 ]
 handlers: [
   [4, 8, 10],
-  [41, 45, 47],
+  [40, 44, 46],
 ]
 
diff --git a/test/cctest/interpreter/bytecode_expectations/TryFinally.golden b/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
index bd29e1a..de3bbf0 100644
--- a/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
+++ b/test/cctest/interpreter/bytecode_expectations/TryFinally.golden
@@ -18,21 +18,21 @@
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                B(Star), R(0),
                 B(Mov), R(context), R(3),
   /*   51 S> */ B(LdaSmi), U8(2),
-  /*   53 E> */ B(Star), R(0),
+                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),
+  /*   53 E> */ 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(Star), R(0),
+  /*   72 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(3), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(1),
                 B(JumpIfTrue), U8(4),
@@ -55,28 +55,27 @@
 "
 frame size: 9
 parameter count: 1
-bytecode array length: 88
+bytecode array length: 87
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaSmi), U8(1),
-  /*   42 E> */ B(Star), R(0),
+                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(0),
+                B(Jump), U8(33),
                 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(Mov), R(closure), R(8),
+  /*   53 E> */ 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(Star), R(0),
                 B(PopContext), R(1),
                 B(LdaSmi), U8(-1),
                 B(Star), R(2),
@@ -84,11 +83,11 @@
                 B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(2),
-                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+  /*   73 E> */ 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(Star), R(0),
+  /*   92 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(2),
                 B(JumpIfTrue), U8(4),
@@ -102,7 +101,7 @@
   "e",
 ]
 handlers: [
-  [8, 49, 55],
+  [8, 48, 54],
   [11, 15, 17],
 ]
 
@@ -114,41 +113,39 @@
 "
 frame size: 10
 parameter count: 1
-bytecode array length: 121
+bytecode array length: 119
 bytecodes: [
   /*   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(0),
+                B(Jump), U8(33),
                 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(Mov), R(closure), R(9),
+  /*   57 E> */ 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(Star), R(0),
                 B(PopContext), R(1),
-                B(Jump), U8(34),
+                B(Jump), U8(33),
                 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(Mov), R(closure), R(8),
+  /*   76 E> */ 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(Star), R(0),
                 B(PopContext), R(1),
                 B(LdaSmi), U8(-1),
                 B(Star), R(2),
@@ -156,11 +153,11 @@
                 B(Star), R(3),
                 B(LdaZero),
                 B(Star), R(2),
-                B(CallRuntime), U16(Runtime::kInterpreterClearPendingMessage), R(0), U8(0),
+  /*   97 E> */ 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(Star), R(0),
+  /*  116 E> */ B(CallRuntime), U16(Runtime::kInterpreterSetPendingMessage), R(4), U8(1),
                 B(LdaZero),
                 B(TestEqualStrict), R(2),
                 B(JumpIfTrue), U8(4),
@@ -174,8 +171,8 @@
   "e",
 ]
 handlers: [
-  [4, 82, 88],
-  [7, 48, 50],
+  [4, 80, 86],
+  [7, 47, 49],
   [10, 14, 16],
 ]
 
diff --git a/test/cctest/interpreter/bytecode_expectations/Typeof.golden b/test/cctest/interpreter/bytecode_expectations/Typeof.golden
index b0e80dd..1fe9354 100644
--- a/test/cctest/interpreter/bytecode_expectations/Typeof.golden
+++ b/test/cctest/interpreter/bytecode_expectations/Typeof.golden
@@ -22,7 +22,7 @@
 bytecodes: [
   /*   10 E> */ B(StackCheck),
   /*   24 S> */ B(LdaSmi), U8(13),
-  /*   24 E> */ B(Star), R(0),
+                B(Star), R(0),
   /*   29 S> */ B(TypeOf),
   /*   47 S> */ B(Return),
 ]
@@ -41,15 +41,14 @@
 "
 frame size: 0
 parameter count: 1
-bytecode array length: 6
+bytecode array length: 5
 bytecodes: [
   /*   22 E> */ B(StackCheck),
-  /*   28 S> */ B(LdaGlobalInsideTypeof), U8(0), U8(1),
+  /*   28 S> */ B(LdaGlobalInsideTypeof), U8(1),
                 B(TypeOf),
   /*   46 S> */ B(Return),
 ]
 constant pool: [
-  "x",
 ]
 handlers: [
 ]
diff --git a/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden b/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
index f253be9..dc2a930 100644
--- a/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
+++ b/test/cctest/interpreter/bytecode_expectations/UnaryOperators.golden
@@ -15,26 +15,22 @@
   }
   return x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 31
+bytecode array length: 23
 bytecodes: [
   /*   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(Star), R(0),
+  /*   54 S> */ B(LdaSmi), U8(10),
+  /*   54 E> */ B(TestEqual), R(0),
                 B(LogicalNot),
-                B(JumpIfFalse), U8(15),
+                B(JumpIfFalse), U8(11),
   /*   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),
+  /*   65 S> */ B(LdaSmi), U8(10),
+                B(Add), R(0),
+                B(Star), R(0),
+                B(Jump), U8(-14),
   /*   79 S> */ B(Ldar), R(0),
   /*   89 S> */ B(Return),
 ]
@@ -51,22 +47,20 @@
   } while(x == false);
   return x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 22
+bytecode array length: 18
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /*   42 S> */ B(LdaFalse),
-  /*   42 E> */ B(Star), R(0),
+                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),
+                B(Star), R(0),
+  /*   74 S> */ B(LdaFalse),
+  /*   74 E> */ B(TestEqual), R(0),
+                B(JumpIfTrue), U8(-9),
   /*   85 S> */ B(Ldar), R(0),
   /*   95 S> */ B(Return),
 ]
@@ -80,16 +74,15 @@
   var x = 101;
   return void(x * 3);
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 13
+bytecode array length: 11
 bytecodes: [
   /*   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(Star), R(0),
+  /*   47 S> */ B(LdaSmi), U8(3),
+                B(Mul), R(0),
                 B(LdaUndefined),
   /*   67 S> */ B(Return),
 ]
@@ -106,19 +99,19 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 23
+bytecode array length: 22
 bytecodes: [
   /*   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(0),
+  /*   56 S> */ B(Nop),
+  /*   66 E> */ B(Mul), R(0),
                 B(Star), R(3),
                 B(LdaSmi), U8(1),
                 B(Sub), R(3),
-                B(LdaUndefined),
-  /*   56 E> */ B(Star), R(1),
+                B(LdrUndefined), R(1),
+                B(Ldar), R(1),
+  /*   74 S> */ B(Nop),
   /*   84 S> */ B(Return),
 ]
 constant pool: [
@@ -131,16 +124,15 @@
   var x = 13;
   return ~x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(-1),
+                B(BitwiseXor), R(0),
   /*   57 S> */ B(Return),
 ]
 constant pool: [
@@ -153,16 +145,15 @@
   var x = 13;
   return +x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(1),
+                B(Mul), R(0),
   /*   57 S> */ B(Return),
 ]
 constant pool: [
@@ -175,16 +166,15 @@
   var x = 13;
   return -x;
 "
-frame size: 2
+frame size: 1
 parameter count: 1
-bytecode array length: 12
+bytecode array length: 10
 bytecodes: [
   /*   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),
+                B(Star), R(0),
+  /*   46 S> */ B(LdaSmi), U8(-1),
+                B(Mul), R(0),
   /*   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 2c23cce..717f323 100644
--- a/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden
+++ b/test/cctest/interpreter/bytecode_expectations/WideRegisters.golden
@@ -171,11 +171,11 @@
 "
 frame size: 157
 parameter count: 1
-bytecode array length: 8
+bytecode array length: 10
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-  /* 1494 S> */ B(Wide), B(Ldar), R16(127),
-  /* 1497 E> */ B(Star), R(0),
+  /* 1494 S> */ B(Wide), B(Mov), R16(127), R16(0),
+  /* 1505 S> */ B(Ldar), R(0),
   /* 1516 S> */ B(Return),
 ]
 constant pool: [
@@ -347,11 +347,11 @@
 "
 frame size: 157
 parameter count: 1
-bytecode array length: 10
+bytecode array length: 12
 bytecodes: [
   /*   30 E> */ B(StackCheck),
-  /* 1494 S> */ B(Wide), B(Ldar), R16(126),
-  /* 1499 E> */ B(Wide), B(Star), R16(127),
+  /* 1494 S> */ B(Wide), B(Mov), R16(126), R16(127),
+  /* 1507 S> */ B(Wide), B(Ldar), R16(127),
   /* 1520 S> */ B(Return),
 ]
 constant pool: [
@@ -521,15 +521,13 @@
   if (x2 > 3) { return x129; }
   return x128;
 "
-frame size: 158
+frame size: 157
 parameter count: 1
-bytecode array length: 25
+bytecode array length: 17
 bytecodes: [
   /*   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),
+  /* 1494 S> */ B(LdaSmi), U8(3),
+  /* 1501 E> */ B(TestGreaterThan), R(2),
                 B(JumpIfFalse), U8(7),
   /* 1508 S> */ B(Wide), B(Ldar), R16(129),
   /* 1536 S> */ B(Return),
@@ -705,24 +703,20 @@
   if (x2 > 3) { return x0; }
   return x129;
 "
-frame size: 158
+frame size: 157
 parameter count: 1
-bytecode array length: 48
+bytecode array length: 34
 bytecodes: [
   /*   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(Star), R(0),
+  /* 1506 S> */ B(LdaSmi), U8(3),
+  /* 1515 E> */ B(Wide), B(TestEqual), R16(129),
+                B(JumpIfFalse), U8(10),
+  /* 1534 S> */ B(Wide), B(Mov), R16(0), R16(129),
+                B(Ldar), R(0),
+  /* 1540 S> */ B(LdaSmi), U8(3),
+  /* 1547 E> */ B(TestGreaterThan), R(2),
                 B(JumpIfFalse), U8(5),
   /* 1554 S> */ B(Ldar), R(0),
   /* 1580 S> */ B(Return),
@@ -899,32 +893,29 @@
 "
 frame size: 158
 parameter count: 1
-bytecode array length: 66
+bytecode array length: 56
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /* 1503 S> */ B(LdaZero),
-  /* 1503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1515 S> */ B(LdaZero),
-  /* 1515 E> */ B(Star), R(1),
+                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),
+                B(Wide), B(Star), R16(128),
+  /* 1538 S> */ B(LdaSmi), U8(64),
+  /* 1538 E> */ B(Wide), B(TestLessThan), R16(128),
+                B(JumpIfFalse), U8(33),
   /* 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),
+  /* 1555 S> */ B(Wide), B(Ldar), R16(128),
+  /* 1561 E> */ B(Add), R(1),
+                B(Wide), B(Mov), R16(1), R16(157),
+                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),
+                B(Wide), B(Star), R16(128),
+                B(Jump), U8(-37),
   /* 1567 S> */ B(Wide), B(Ldar), R16(128),
   /* 1580 S> */ B(Return),
 ]
@@ -1098,35 +1089,34 @@
 "
 frame size: 163
 parameter count: 1
-bytecode array length: 84
+bytecode array length: 82
 bytecodes: [
   /*   30 E> */ B(StackCheck),
   /* 1503 S> */ B(Wide), B(LdaSmi), U16(1234),
-  /* 1503 E> */ B(Star), R(0),
+                B(Star), R(0),
   /* 1518 S> */ B(LdaZero),
-  /* 1518 E> */ B(Star), R(1),
+                B(Star), R(1),
   /* 1534 S> */ B(Ldar), R(0),
-                B(JumpIfUndefined), U8(69),
-                B(JumpIfNull), U8(67),
+                B(JumpIfUndefined), U8(67),
+                B(JumpIfNull), U8(65),
                 B(ToObject),
-                B(Wide), B(Star), R16(157),
                 B(Wide), B(ForInPrepare), R16(158),
+                B(Wide), B(Star), R16(157),
                 B(LdaZero),
                 B(Wide), B(Star), R16(161),
   /* 1526 S> */ B(Wide), B(ForInDone), R16(161), R16(160),
-                B(JumpIfTrue), U8(45),
+                B(JumpIfTrue), U8(43),
                 B(Wide), B(ForInNext), R16(157), R16(161), R16(158), U16(1),
-                B(JumpIfUndefined), U8(23),
+                B(JumpIfUndefined), U8(21),
                 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),
+  /* 1541 S> */ B(Wide), B(Ldar), R16(128),
+  /* 1547 E> */ B(Add), R(1),
+                B(Wide), B(Mov), R16(1), R16(162),
+                B(Star), R(1),
+  /* 1544 E> */ B(Wide), B(ForInStep), R16(161),
                 B(Wide), B(Star), R16(161),
-                B(Jump), U8(-49),
+                B(Jump), U8(-47),
   /* 1553 S> */ B(Ldar), R(1),
   /* 1564 S> */ B(Return),
 ]
@@ -1301,21 +1291,17 @@
 "
 frame size: 159
 parameter count: 1
-bytecode array length: 55
+bytecode array length: 53
 bytecodes: [
   /*   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),
+  /* 1494 S> */ B(Wide), B(Mov), R16(64), R16(157),
+                B(Wide), B(Mov), R16(63), R16(158),
+  /* 1509 E> */ B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
+                B(Star), R(0),
+  /* 1515 S> */ B(Wide), B(Mov), R16(27), R16(157),
+                B(Wide), B(Mov), R16(143), R16(158),
+  /* 1530 E> */ B(Wide), B(CallRuntime), U16(Runtime::kAdd), R16(157), U16(2),
+                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),
diff --git a/test/cctest/interpreter/bytecode_expectations/WithStatement.golden b/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
index e1b7eda..71183de 100644
--- a/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
+++ b/test/cctest/interpreter/bytecode_expectations/WithStatement.golden
@@ -13,15 +13,14 @@
 "
 frame size: 4
 parameter count: 1
-bytecode array length: 26
+bytecode array length: 25
 bytecodes: [
   /*   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(Mov), R(closure), R(3),
                 B(CallRuntime), U16(Runtime::kPushWithContext), R(2), U8(2),
                 B(PushContext), R(0),
   /*   50 S> */ B(LdaLookupSlot), U8(1),
diff --git a/test/cctest/interpreter/generate-bytecode-expectations.cc b/test/cctest/interpreter/generate-bytecode-expectations.cc
index f3dfd06..53f2e3f 100644
--- a/test/cctest/interpreter/generate-bytecode-expectations.cc
+++ b/test/cctest/interpreter/generate-bytecode-expectations.cc
@@ -358,7 +358,7 @@
   i::FLAG_always_opt = false;
   i::FLAG_allow_natives_syntax = true;
 
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation(exec_path);
   v8::V8::InitializeExternalStartupData(exec_path);
   v8::V8::InitializePlatform(platform_.get());
   v8::V8::Initialize();
diff --git a/test/cctest/interpreter/interpreter-tester.h b/test/cctest/interpreter/interpreter-tester.h
index f8a0a8a..4e202ea 100644
--- a/test/cctest/interpreter/interpreter-tester.h
+++ b/test/cctest/interpreter/interpreter-tester.h
@@ -114,7 +114,7 @@
       function->shared()->set_function_data(*bytecode_.ToHandleChecked());
     }
     if (!feedback_vector_.is_null()) {
-      function->shared()->set_feedback_vector(
+      function->literals()->set_feedback_vector(
           *feedback_vector_.ToHandleChecked());
     }
     return function;
diff --git a/test/cctest/interpreter/source-position-matcher.cc b/test/cctest/interpreter/source-position-matcher.cc
new file mode 100644
index 0000000..122f2c8
--- /dev/null
+++ b/test/cctest/interpreter/source-position-matcher.cc
@@ -0,0 +1,225 @@
+// 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/cctest/interpreter/source-position-matcher.h"
+
+#include "src/objects-inl.h"
+#include "src/objects.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+// Comparer for PositionTableEntry instances.
+struct PositionTableEntryComparer {
+  bool operator()(const PositionTableEntry& lhs,
+                  const PositionTableEntry& rhs) const {
+    int lhs_type_score = type_score(lhs);
+    int rhs_type_score = type_score(rhs);
+    if (lhs_type_score == rhs_type_score) {
+      return lhs.source_position < rhs.source_position;
+    } else {
+      return lhs_type_score < rhs_type_score;
+    }
+  }
+
+  int type_score(const PositionTableEntry& entry) const {
+    return entry.is_statement ? 1 : 0;
+  }
+};
+
+//
+// The principles for comparing source positions in bytecode arrays
+// are:
+//
+// 1. The number of statement positions must be the same in both.
+//
+// 2. Statement positions may be moved provide they do not affect the
+//    debuggers causal view of the v8 heap and local state. This means
+//    statement positions may be moved when their initial position is
+//    on bytecodes that manipulate the accumulator and temporary
+//    registers.
+//
+// 3. When duplicate expression positions are present, either may
+//    be dropped.
+//
+// 4. Expression positions may be applied to later bytecodes in the
+//    bytecode array if the current bytecode does not throw.
+//
+// 5. Expression positions may be dropped when they are applied to
+//    bytecodes that manipulate local frame state and immediately
+//    proceeded by another source position.
+//
+// 6. The relative ordering of source positions must be preserved.
+//
+bool SourcePositionMatcher::Match(Handle<BytecodeArray> original_bytecode,
+                                  Handle<BytecodeArray> optimized_bytecode) {
+  SourcePositionTableIterator original(
+      original_bytecode->source_position_table());
+  SourcePositionTableIterator optimized(
+      optimized_bytecode->source_position_table());
+
+  int last_original_bytecode_offset = 0;
+  int last_optimized_bytecode_offset = 0;
+
+  // Ordered lists of expression positions immediately before the
+  // latest statements in each bytecode array.
+  std::vector<PositionTableEntry> original_expression_entries;
+  std::vector<PositionTableEntry> optimized_expression_entries;
+
+  while (true) {
+    MoveToNextStatement(&original, &original_expression_entries);
+    MoveToNextStatement(&optimized, &optimized_expression_entries);
+
+    if (original.done() && optimized.done()) {
+      return true;
+    } else if (original.done()) {
+      return false;
+    } else if (optimized.done()) {
+      return false;
+    }
+
+    if (HasNewExpressionPositionsInOptimized(&original_expression_entries,
+                                             &optimized_expression_entries)) {
+      return false;
+    }
+
+    StripUnneededExpressionPositions(original_bytecode,
+                                     &original_expression_entries,
+                                     original.bytecode_offset());
+    StripUnneededExpressionPositions(optimized_bytecode,
+                                     &optimized_expression_entries,
+                                     optimized.bytecode_offset());
+
+    if (!CompareExpressionPositions(&original_expression_entries,
+                                    &optimized_expression_entries)) {
+      // Message logged in CompareExpressionPositions().
+      return false;
+    }
+
+    // Check original and optimized have matching source positions.
+    if (original.source_position() != optimized.source_position()) {
+      return false;
+    }
+
+    if (original.bytecode_offset() < last_original_bytecode_offset) {
+      return false;
+    }
+    last_original_bytecode_offset = original.bytecode_offset();
+
+    if (optimized.bytecode_offset() < last_optimized_bytecode_offset) {
+      return false;
+    }
+    last_optimized_bytecode_offset = optimized.bytecode_offset();
+
+    // TODO(oth): Can we compare statement positions are semantically
+    // equivalent? e.g. before a bytecode that has debugger observable
+    // effects. This is likely non-trivial.
+  }
+
+  return true;
+}
+
+bool SourcePositionMatcher::HasNewExpressionPositionsInOptimized(
+    const std::vector<PositionTableEntry>* const original_positions,
+    const std::vector<PositionTableEntry>* const optimized_positions) {
+  std::set<PositionTableEntry, PositionTableEntryComparer> original_set(
+      original_positions->begin(), original_positions->end());
+
+  bool retval = false;
+  for (auto optimized_position : *optimized_positions) {
+    if (original_set.find(optimized_position) == original_set.end()) {
+      retval = true;
+    }
+  }
+  return retval;
+}
+
+bool SourcePositionMatcher::CompareExpressionPositions(
+    const std::vector<PositionTableEntry>* const original_positions,
+    const std::vector<PositionTableEntry>* const optimized_positions) {
+  if (original_positions->size() != optimized_positions->size()) {
+    return false;
+  }
+
+  if (original_positions->size() == 0) {
+    return true;
+  }
+
+  for (size_t i = 0; i < original_positions->size(); ++i) {
+    PositionTableEntry original = original_positions->at(i);
+    PositionTableEntry optimized = original_positions->at(i);
+    CHECK(original.source_position > 0);
+    if ((original.is_statement || optimized.is_statement) ||
+        (original.source_position != optimized.source_position) ||
+        (original.source_position < 0)) {
+      return false;
+    }
+  }
+  return true;
+}
+
+void SourcePositionMatcher::StripUnneededExpressionPositions(
+    Handle<BytecodeArray> bytecode_array,
+    std::vector<PositionTableEntry>* expression_positions,
+    int next_statement_bytecode_offset) {
+  size_t j = 0;
+  for (size_t i = 0; i < expression_positions->size(); ++i) {
+    CHECK(expression_positions->at(i).source_position > 0 &&
+          !expression_positions->at(i).is_statement);
+    int bytecode_end = (i == expression_positions->size() - 1)
+                           ? next_statement_bytecode_offset
+                           : expression_positions->at(i + 1).bytecode_offset;
+    if (ExpressionPositionIsNeeded(bytecode_array,
+                                   expression_positions->at(i).bytecode_offset,
+                                   bytecode_end)) {
+      expression_positions->at(j++) = expression_positions->at(i);
+    }
+  }
+  expression_positions->resize(j);
+}
+
+void SourcePositionMatcher::AdvanceBytecodeIterator(
+    BytecodeArrayIterator* iterator, int bytecode_offset) {
+  while (iterator->current_offset() != bytecode_offset) {
+    iterator->Advance();
+  }
+}
+
+bool SourcePositionMatcher::ExpressionPositionIsNeeded(
+    Handle<BytecodeArray> bytecode_array, int start_offset, int end_offset) {
+  CHECK_GT(end_offset, start_offset);
+  BytecodeArrayIterator iterator(bytecode_array);
+  AdvanceBytecodeIterator(&iterator, start_offset);
+
+  while (iterator.current_offset() != end_offset) {
+    if (Bytecodes::IsWithoutExternalSideEffects(iterator.current_bytecode())) {
+      iterator.Advance();
+    } else {
+      // Bytecode could throw so need an expression position.
+      return true;
+    }
+  }
+  return false;
+}
+
+void SourcePositionMatcher::MoveToNextStatement(
+    SourcePositionTableIterator* iterator,
+    std::vector<PositionTableEntry>* positions) {
+  iterator->Advance();
+  positions->clear();
+  while (!iterator->done()) {
+    if (iterator->is_statement()) {
+      break;
+    }
+    positions->push_back({iterator->bytecode_offset(),
+                          iterator->source_position(),
+                          iterator->is_statement()});
+    iterator->Advance();
+  }
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/interpreter/source-position-matcher.h b/test/cctest/interpreter/source-position-matcher.h
new file mode 100644
index 0000000..0bb5bed
--- /dev/null
+++ b/test/cctest/interpreter/source-position-matcher.h
@@ -0,0 +1,50 @@
+// 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 TEST_CCTEST_INTERPRETER_SOURCE_POSITION_COMPARER_H_
+#define TEST_CCTEST_INTERPRETER_SOURCE_POSITION_COMPARER_H_
+
+#include "src/interpreter/bytecode-array-iterator.h"
+#include "src/interpreter/source-position-table.h"
+#include "src/objects.h"
+#include "src/v8.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class SourcePositionMatcher final {
+ public:
+  bool Match(Handle<BytecodeArray> original, Handle<BytecodeArray> optimized);
+
+ private:
+  bool HasNewExpressionPositionsInOptimized(
+      const std::vector<PositionTableEntry>* const original_positions,
+      const std::vector<PositionTableEntry>* const optimized_positions);
+
+  bool CompareExpressionPositions(
+      const std::vector<PositionTableEntry>* const original_positions,
+      const std::vector<PositionTableEntry>* const optimized_positions);
+
+  void StripUnneededExpressionPositions(
+      Handle<BytecodeArray> bytecode_array,
+      std::vector<PositionTableEntry>* positions,
+      int next_statement_bytecode_offset);
+
+  bool ExpressionPositionIsNeeded(Handle<BytecodeArray> bytecode_array,
+                                  int start_offset, int end_offset);
+
+  void MoveToNextStatement(
+      SourcePositionTableIterator* iterator,
+      std::vector<PositionTableEntry>* expression_positions);
+
+  void AdvanceBytecodeIterator(BytecodeArrayIterator* iterator,
+                               int bytecode_offset);
+};
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
+
+#endif  // TEST_CCTEST_INTERPRETER_SOURCE_POSITION_COMPARER_H_
diff --git a/test/cctest/interpreter/test-bytecode-generator.cc b/test/cctest/interpreter/test-bytecode-generator.cc
index 3d0fe6f..401ea14 100644
--- a/test/cctest/interpreter/test-bytecode-generator.cc
+++ b/test/cctest/interpreter/test-bytecode-generator.cc
@@ -2232,11 +2232,14 @@
   printer.set_test_function_name("f");
 
   const char* snippets[] = {
-      "function* f() { }\n",
+      "function* f() { }\n"
+      "f();\n",
 
-      "function* f() { yield 42 }\n",
+      "function* f() { yield 42 }\n"
+      "f();\n",
 
-      "function* f() { for (let x of [42]) yield x }\n",
+      "function* f() { for (let x of [42]) yield x }\n"
+      "f();\n",
   };
 
   CHECK(CompareTexts(BuildActual(printer, snippets),
diff --git a/test/cctest/interpreter/test-interpreter-intrinsics.cc b/test/cctest/interpreter/test-interpreter-intrinsics.cc
index e4cf809..b8fce7a 100644
--- a/test/cctest/interpreter/test-interpreter-intrinsics.cc
+++ b/test/cctest/interpreter/test-interpreter-intrinsics.cc
@@ -29,7 +29,7 @@
     builder.CallRuntime(function_id_, builder.Parameter(0), sizeof...(args))
         .Return();
     InterpreterTester tester(isolate_, builder.ToBytecodeArray());
-    auto callable = tester.GetCallable<Handle<Object>>();
+    auto callable = tester.GetCallable<A...>();
     return callable(args...).ToHandleChecked();
   }
 
@@ -91,6 +91,189 @@
   CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42")));
 }
 
+TEST(IsJSProxy) {
+  HandleAndZoneScope handles;
+
+  InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
+                               Runtime::kInlineIsJSProxy);
+  Factory* factory = handles.main_isolate()->factory();
+
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("new Date()")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("(function() {})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("([1])")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("({})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("(/x/)")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Undefined()));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Null()));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("'string'")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42")));
+  CHECK_EQ(*factory->true_value(),
+           *helper.Invoke(helper.NewObject("new Proxy({},{})")));
+}
+
+TEST(IsRegExp) {
+  HandleAndZoneScope handles;
+
+  InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
+                               Runtime::kInlineIsRegExp);
+  Factory* factory = handles.main_isolate()->factory();
+
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("new Date()")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("(function() {})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("([1])")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("({})")));
+  CHECK_EQ(*factory->true_value(), *helper.Invoke(helper.NewObject("(/x/)")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Undefined()));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Null()));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("'string'")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42")));
+}
+
+TEST(IsTypedArray) {
+  HandleAndZoneScope handles;
+
+  InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
+                               Runtime::kInlineIsTypedArray);
+  Factory* factory = handles.main_isolate()->factory();
+
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("new Date()")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("(function() {})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("([1])")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("({})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("(/x/)")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Undefined()));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Null()));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("'string'")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42")));
+
+  CHECK_EQ(
+      *factory->true_value(),
+      *helper.Invoke(helper.NewObject("new Uint8Array(new ArrayBuffer(1));")));
+  CHECK_EQ(
+      *factory->true_value(),
+      *helper.Invoke(helper.NewObject("new Uint16Array(new ArrayBuffer(2));")));
+  CHECK_EQ(
+      *factory->true_value(),
+      *helper.Invoke(helper.NewObject("new Int32Array(new ArrayBuffer(4));")));
+}
+
+TEST(IsSmi) {
+  HandleAndZoneScope handles;
+
+  InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
+                               Runtime::kInlineIsSmi);
+  Factory* factory = handles.main_isolate()->factory();
+
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("new Date()")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("(function() {})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("([1])")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("({})")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("(/x/)")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Undefined()));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.Null()));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("'string'")));
+  CHECK_EQ(*factory->false_value(), *helper.Invoke(helper.NewObject("42.2")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("4294967297")));
+  CHECK_EQ(*factory->true_value(), *helper.Invoke(helper.NewObject("42")));
+}
+
+TEST(Call) {
+  HandleAndZoneScope handles;
+  Isolate* isolate = handles.main_isolate();
+  Factory* factory = isolate->factory();
+  InvokeIntrinsicHelper helper(isolate, handles.main_zone(),
+                               Runtime::kInlineCall);
+
+  CHECK_EQ(Smi::FromInt(20),
+           *helper.Invoke(helper.NewObject("(function() { return this.x; })"),
+                          helper.NewObject("({ x: 20 })")));
+  CHECK_EQ(Smi::FromInt(50),
+           *helper.Invoke(helper.NewObject("(function(arg1) { return arg1; })"),
+                          factory->undefined_value(),
+                          handle(Smi::FromInt(50), isolate)));
+  CHECK_EQ(
+      Smi::FromInt(20),
+      *helper.Invoke(
+          helper.NewObject("(function(a, b, c) { return a + b + c; })"),
+          factory->undefined_value(), handle(Smi::FromInt(10), isolate),
+          handle(Smi::FromInt(7), isolate), handle(Smi::FromInt(3), isolate)));
+}
+
+TEST(IntrinsicAsStubCall) {
+  HandleAndZoneScope handles;
+  Isolate* isolate = handles.main_isolate();
+  Factory* factory = isolate->factory();
+  InvokeIntrinsicHelper to_number_helper(isolate, handles.main_zone(),
+                                         Runtime::kInlineToNumber);
+  CHECK_EQ(Smi::FromInt(46),
+           *to_number_helper.Invoke(to_number_helper.NewObject("'46'")));
+
+  InvokeIntrinsicHelper to_integer_helper(isolate, handles.main_zone(),
+                                          Runtime::kInlineToInteger);
+  CHECK_EQ(Smi::FromInt(502),
+           *to_integer_helper.Invoke(to_integer_helper.NewObject("502.67")));
+
+  InvokeIntrinsicHelper math_pow_helper(isolate, handles.main_zone(),
+                                        Runtime::kInlineMathPow);
+  CHECK(math_pow_helper
+            .Invoke(math_pow_helper.NewObject("3"),
+                    math_pow_helper.NewObject("7"))
+            ->SameValue(Smi::FromInt(2187)));
+
+  InvokeIntrinsicHelper has_property_helper(isolate, handles.main_zone(),
+                                            Runtime::kInlineHasProperty);
+  CHECK_EQ(*factory->true_value(),
+           *has_property_helper.Invoke(
+               has_property_helper.NewObject("'x'"),
+               has_property_helper.NewObject("({ x: 20 })")));
+  CHECK_EQ(*factory->false_value(),
+           *has_property_helper.Invoke(
+               has_property_helper.NewObject("'y'"),
+               has_property_helper.NewObject("({ x: 20 })")));
+
+  InvokeIntrinsicHelper sub_string_helper(isolate, handles.main_zone(),
+                                          Runtime::kInlineSubString);
+  CHECK(sub_string_helper
+            .Invoke(sub_string_helper.NewObject("'foobar'"),
+                    sub_string_helper.NewObject("3"),
+                    sub_string_helper.NewObject("6"))
+            ->SameValue(*sub_string_helper.NewObject("'bar'")));
+}
+
+TEST(ValueOf) {
+  HandleAndZoneScope handles;
+  Isolate* isolate = handles.main_isolate();
+  Factory* factory = isolate->factory();
+  InvokeIntrinsicHelper helper(handles.main_isolate(), handles.main_zone(),
+                               Runtime::kInlineValueOf);
+
+  CHECK_EQ(Smi::FromInt(1234), *helper.Invoke(helper.NewObject("1234")));
+  CHECK_EQ(Smi::FromInt(5678),
+           *helper.Invoke(helper.NewObject("new Object(5678)")));
+
+  CHECK_EQ(*factory->true_value(), *helper.Invoke(helper.NewObject("true")));
+  CHECK_EQ(*factory->false_value(),
+           *helper.Invoke(helper.NewObject("new Object(false)")));
+
+  CHECK(helper.Invoke(helper.NewObject("'foobar'"))
+            ->SameValue(*helper.NewObject("'foobar'")));
+  CHECK(helper.Invoke(helper.NewObject("new Object('foobar')"))
+            ->SameValue(*helper.NewObject("'foobar'")));
+}
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/interpreter/test-interpreter.cc b/test/cctest/interpreter/test-interpreter.cc
index acc93c5..07a22b7 100644
--- a/test/cctest/interpreter/test-interpreter.cc
+++ b/test/cctest/interpreter/test-interpreter.cc
@@ -8,6 +8,7 @@
 #include "src/handles.h"
 #include "src/interpreter/bytecode-array-builder.h"
 #include "src/interpreter/bytecode-array-iterator.h"
+#include "src/interpreter/bytecode-label.h"
 #include "src/interpreter/interpreter.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/interpreter/interpreter-tester.h"
@@ -138,6 +139,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 0);
+
     builder.LoadLiteral(Smi::FromInt(0x12345678)).Return();
     Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
 
@@ -151,6 +153,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 0);
+
     builder.LoadLiteral(factory->NewHeapNumber(-2.1e19)).Return();
     Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
 
@@ -164,6 +167,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 0);
+
     Handle<i::String> string = factory->NewStringFromAsciiChecked("String");
     builder.LoadLiteral(string).Return();
     Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
@@ -182,6 +186,7 @@
   for (int i = 0; i <= kMaxInt8; i++) {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, i + 1);
+
     Register reg(i);
     builder.LoadTrue()
         .StoreAccumulatorInRegister(reg)
@@ -297,6 +302,7 @@
         i::Factory* factory = handles.main_isolate()->factory();
         BytecodeArrayBuilder builder(handles.main_isolate(),
                                      handles.main_zone(), 1, 0, 1);
+
         Register reg(0);
         int lhs = lhs_inputs[l];
         int rhs = rhs_inputs[r];
@@ -387,6 +393,7 @@
   for (size_t i = 0; i < arraysize(test_cases); i++) {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 1);
+
     Register reg(0);
     builder.LoadLiteral(test_cases[i].lhs)
         .StoreAccumulatorInRegister(reg)
@@ -407,6 +414,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 0);
+
   builder.LoadAccumulatorWithRegister(builder.Parameter(0)).Return();
   Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
 
@@ -429,6 +437,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 8,
                                0, 0);
+
   builder.LoadAccumulatorWithRegister(builder.Parameter(0))
       .BinaryOperation(Token::Value::ADD, builder.Parameter(1))
       .BinaryOperation(Token::Value::ADD, builder.Parameter(2))
@@ -464,6 +473,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 0);
+
   builder.LoadLiteral(Smi::FromInt(5))
       .StoreAccumulatorInRegister(builder.Parameter(0))
       .LoadAccumulatorWithRegister(builder.Parameter(0))
@@ -592,6 +602,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 0);
+
   builder.LoadNamedProperty(builder.Parameter(0), name, vector->GetIndex(slot))
       .Return();
   Handle<BytecodeArray> bytecode_array = builder.ToBytecodeArray();
@@ -645,6 +656,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 1);
+
   builder.LoadLiteral(key)
       .LoadKeyedProperty(builder.Parameter(0), vector->GetIndex(slot))
       .Return();
@@ -687,6 +699,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 0);
+
   builder.LoadLiteral(Smi::FromInt(999))
       .StoreNamedProperty(builder.Parameter(0), name, vector->GetIndex(slot),
                           i::STRICT)
@@ -746,6 +759,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 1);
+
   builder.LoadLiteral(name)
       .StoreAccumulatorInRegister(Register(0))
       .LoadLiteral(Smi::FromInt(999))
@@ -796,6 +810,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 1);
+
     builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
         .StoreAccumulatorInRegister(Register(0))
         .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode)
@@ -815,6 +830,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 1);
+
     builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
         .StoreAccumulatorInRegister(Register(0))
         .Call(Register(0), builder.Parameter(0), 1, 0, tail_call_mode)
@@ -837,6 +853,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 4);
+
     builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
         .StoreAccumulatorInRegister(Register(0))
         .LoadAccumulatorWithRegister(builder.Parameter(0))
@@ -864,6 +881,7 @@
   {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                  0, 12);
+
     builder.LoadNamedProperty(builder.Parameter(0), name, slot_index)
         .StoreAccumulatorInRegister(Register(0))
         .LoadAccumulatorWithRegister(builder.Parameter(0))
@@ -938,6 +956,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                0, 2);
+
   Register reg(0), scratch(1);
   BytecodeLabel label[3];
 
@@ -965,6 +984,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                0, 2);
+
   Register reg(0), scratch(1);
   BytecodeLabel label[2];
   BytecodeLabel done, done1;
@@ -998,6 +1018,7 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                0, 2);
+
   Register reg(0), scratch(1);
   BytecodeLabel label[2];
   BytecodeLabel done, done1;
@@ -1030,8 +1051,9 @@
   HandleAndZoneScope handles;
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 257);
+
   Register reg(0), scratch(256);
-  BytecodeLabel done;
+  BytecodeLabel done, fake;
 
   builder.LoadLiteral(Smi::FromInt(0));
   builder.StoreAccumulatorInRegister(reg);
@@ -1044,6 +1066,7 @@
   builder.Jump(&done);
 
   // Emit more than 16-bit immediate operands worth of code to jump over.
+  builder.Bind(&fake);
   for (int i = 0; i < 6600; i++) {
     builder.LoadLiteral(Smi::FromInt(0));                 // 1-byte
     builder.BinaryOperation(Token::Value::ADD, scratch);  // 4-bytes
@@ -1167,6 +1190,7 @@
         HandleAndZoneScope handles;
         BytecodeArrayBuilder builder(handles.main_isolate(),
                                      handles.main_zone(), 0, 0, 1);
+
         Register r0(0);
         builder.LoadLiteral(Smi::FromInt(inputs[i]))
             .StoreAccumulatorInRegister(r0)
@@ -1203,6 +1227,7 @@
         i::Factory* factory = handles.main_isolate()->factory();
         BytecodeArrayBuilder builder(handles.main_isolate(),
                                      handles.main_zone(), 0, 0, 1);
+
         Register r0(0);
         builder.LoadLiteral(factory->NewHeapNumber(inputs[i]))
             .StoreAccumulatorInRegister(r0)
@@ -1236,6 +1261,7 @@
         i::Factory* factory = handles.main_isolate()->factory();
         BytecodeArrayBuilder builder(handles.main_isolate(),
                                      handles.main_zone(), 0, 0, 1);
+
         Register r0(0);
         builder.LoadLiteral(factory->NewStringFromAsciiChecked(lhs))
             .StoreAccumulatorInRegister(r0)
@@ -1280,6 +1306,7 @@
           i::Factory* factory = handles.main_isolate()->factory();
           BytecodeArrayBuilder builder(handles.main_isolate(),
                                        handles.main_zone(), 0, 0, 1);
+
           Register r0(0);
           if (pass == 0) {
             // Comparison with HeapNumber on the lhs and String on the rhs
@@ -1393,6 +1420,7 @@
     bool expected_value = (i == 0);
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                  0, 1);
+
     Register r0(0);
     builder.LoadLiteral(cases[i]);
     builder.StoreAccumulatorInRegister(r0)
@@ -1422,6 +1450,7 @@
     bool expected_value = (i == 0);
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                  0, 1);
+
     Register r0(0);
     builder.LoadLiteral(factory->NewStringFromAsciiChecked(properties[i]))
         .StoreAccumulatorInRegister(r0)
@@ -1445,6 +1474,7 @@
     bool expected_value = ((i & 1) == 1);
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                  0, 0);
+
     Register r0(0);
     builder.LoadFalse();
     for (size_t j = 0; j < i; j++) {
@@ -1506,6 +1536,7 @@
   for (size_t i = 0; i < arraysize(object_type_tuples); i++) {
     BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 0,
                                  0, 0);
+
     Register r0(0);
     LoadAny(&builder, factory, object_type_tuples[i].first);
     builder.LogicalNot();
@@ -1552,6 +1583,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 2);
+
   builder.LoadLiteral(Smi::FromInt(15))
       .StoreAccumulatorInRegister(Register(0))
       .LoadLiteral(Smi::FromInt(40))
@@ -1572,6 +1604,7 @@
 
   BytecodeArrayBuilder builder(handles.main_isolate(), handles.main_zone(), 1,
                                0, 2);
+
   builder.LoadLiteral(Smi::FromInt(15))
       .StoreAccumulatorInRegister(Register(0))
       .CallRuntime(Runtime::kInlineIsArray, Register(0), 1)
@@ -4154,8 +4187,7 @@
   };
 
   for (size_t i = 0; i < arraysize(tests); i++) {
-    std::string source(
-        InterpreterTester::SourceForBody(tests[i].first));
+    std::string source(InterpreterTester::SourceForBody(tests[i].first));
     InterpreterTester tester(handles.main_isolate(), source.c_str());
     auto callable = tester.GetCallable<>();
 
@@ -4166,7 +4198,6 @@
   FLAG_ignition_generators = old_flag;
 }
 
-
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/cctest/interpreter/test-source-positions.cc b/test/cctest/interpreter/test-source-positions.cc
new file mode 100644
index 0000000..19be47f
--- /dev/null
+++ b/test/cctest/interpreter/test-source-positions.cc
@@ -0,0 +1,252 @@
+// 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/compiler/pipeline.h"
+#include "src/handles.h"
+#include "src/interpreter/bytecode-generator.h"
+#include "src/interpreter/interpreter.h"
+#include "src/isolate.h"
+#include "src/parsing/parser.h"
+#include "test/cctest/cctest.h"
+#include "test/cctest/interpreter/source-position-matcher.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+// Flags enabling optimizations that change generated bytecode array.
+// Format is <command-line flag> <flag name> <bit index>
+#define OPTIMIZATION_FLAGS(V)                                                 \
+  V(FLAG_ignition_reo, kUseReo, 0)                                            \
+  V(FLAG_ignition_peephole, kUsePeephole, 1)                                  \
+  V(FLAG_ignition_filter_expression_positions, kUseFilterExpressionPositions, \
+    2)                                                                        \
+  V(FLAG_ignition_deadcode, kUseDeadCode, 3)
+
+#define DECLARE_BIT(_, Name, BitIndex) static const int Name = 1 << BitIndex;
+OPTIMIZATION_FLAGS(DECLARE_BIT)
+#undef DECLARE_BIT
+
+// Test cases source positions are checked for. Please ensure all
+// combinations of flags are present here. This is done manually
+// because it provides easier to comprehend failure case for humans.
+#define TEST_CASES(V)                                              \
+  V(UsingReo, kUseReo)                                             \
+  V(UsingPeephole, kUsePeephole)                                   \
+  V(UsingDeadCode, kUseDeadCode)                                   \
+  V(UsingFilterExpressionPositions, kUseFilterExpressionPositions) \
+  V(UsingReoAndPeephole, kUseReo | kUsePeephole)                   \
+  V(UsingReoAndFilterExpressionPositions,                          \
+    kUseReo | kUseFilterExpressionPositions)                       \
+  V(UsingReoAndDeadCode, kUseReo | kUseDeadCode)                   \
+  V(UsingPeepholeAndFilterExpressionPositions,                     \
+    kUsePeephole | kUseFilterExpressionPositions)                  \
+  V(UsingPeepholeAndDeadCode, kUsePeephole | kUseDeadCode)         \
+  V(UsingFilterExpressionPositionsAndDeadCode,                     \
+    kUseFilterExpressionPositions | kUseDeadCode)                  \
+  V(UsingAllOptimizations,                                         \
+    kUseReo | kUsePeephole | kUseFilterExpressionPositions | kUseDeadCode)
+
+struct TestCaseData {
+  TestCaseData(const char* const script,
+               const char* const declaration_parameters = "",
+               const char* const arguments = "")
+      : script_(script),
+        declaration_parameters_(declaration_parameters),
+        arguments_(arguments) {}
+
+  const char* const script() const { return script_; }
+  const char* const declaration_parameters() const {
+    return declaration_parameters_;
+  }
+  const char* const arguments() const { return arguments_; }
+
+ private:
+  TestCaseData();
+
+  const char* const script_;
+  const char* const declaration_parameters_;
+  const char* const arguments_;
+};
+
+static const TestCaseData kTestCaseData[] = {
+    {"var x = (y = 3) + (x = y); return x + y;"},
+    {"var x = 55;\n"
+     "var y = x + (x = 1) + (x = 2) + (x = 3);\n"
+     "return y;"},
+    {"var x = 10; return x >>> 3;\n"},
+    {"var x = 0; return x || (1, 2, 3);\n"},
+    {"return a || (a, b, a, b, c = 5, 3);\n"},
+    {"var a = 3; var b = 4; a = b; b = a; a = b; return a;\n"},
+    {"var a = 1; return [[a, 2], [a + 2]];\n"},
+    {"var a = 1; if (a || a < 0) { return 1; }\n"},
+    {"var b;"
+     "b = a.name;"
+     "b = a.name;"
+     "a.name = a;"
+     "b = a.name;"
+     "a.name = a;"
+     "return b;"},
+    {"var sum = 0;\n"
+     "outer: {\n"
+     "  for (var x = 0; x < 10; ++x) {\n"
+     "    for (var y = 0; y < 3; ++y) {\n"
+     "      ++sum;\n"
+     "      if (x + y == 12) { break outer; }\n"
+     "    }\n"
+     "  }\n"
+     "}\n"
+     "return sum;\n"},
+    {"var a = 1;"
+     "switch (a) {"
+     "  case 1: return a * a + 1;"
+     "  case 1: break;"
+     "  case 2: return (a = 3) * a + (a = 4);"
+     "  case 3:"
+     "}"
+     "return a;"},
+    {"for (var p of [0, 1, 2]) {}"},
+    {"var x = { 'a': 1, 'b': 2 };"
+     "for (x['a'] of [1,2,3]) { return x['a']; }"},
+    {"while (x == 4) {\n"
+     "  var y = x + 1;\n"
+     "  if (y == 2) break;\n"
+     "  for (z['a'] of [0]) {\n"
+     "    x += (x *= 3) + y;"
+     "  }\n"
+     "}\n"},
+    {"function g(a, b) { return a.func(b + b, b); }\n"
+     "g(new (function Obj() { this.func = function() { return; }})(), 1)\n"},
+    {"return some_global[name];", "name", "'a'"}};
+
+class OptimizedBytecodeSourcePositionTester final {
+ public:
+  explicit OptimizedBytecodeSourcePositionTester(Isolate* isolate)
+      : isolate_(isolate) {
+    SaveOptimizationFlags();
+    saved_flag_ignition_ = FLAG_ignition;
+    FLAG_ignition = true;
+    saved_flag_always_opt_ = FLAG_always_opt;
+    FLAG_always_opt = false;
+  }
+
+  ~OptimizedBytecodeSourcePositionTester() {
+    RestoreOptimizationFlags();
+    FLAG_ignition = saved_flag_ignition_;
+    FLAG_always_opt = saved_flag_always_opt_;
+  }
+
+  bool SourcePositionsMatch(int optimization_bitmap, const char* function_body,
+                            const char* function_decl_params,
+                            const char* function_args);
+
+ private:
+  Handle<BytecodeArray> MakeBytecode(int optimization_bitmap,
+                                     const char* function_body,
+                                     const char* function_decl_params,
+                                     const char* function_args);
+  static std::string MakeScript(const char* function_body,
+                                const char* function_decl_params,
+                                const char* function_args);
+
+  void SetOptimizationFlags(int optimization_bitmap);
+  void SaveOptimizationFlags();
+  void RestoreOptimizationFlags();
+
+  Isolate* isolate() const { return isolate_; }
+
+  Isolate* isolate_;
+  int saved_optimization_bitmap_;
+  bool saved_flag_ignition_;
+  bool saved_flag_always_opt_;
+};
+
+// static
+std::string OptimizedBytecodeSourcePositionTester::MakeScript(
+    const char* function_body, const char* function_decl_params,
+    const char* function_args) {
+  std::ostringstream os;
+  os << "function test_function"
+     << "(" << function_decl_params << ") {";
+  os << function_body;
+  os << "}";
+  os << "test_function(" << function_args << ");";
+  return os.str();
+}
+
+Handle<BytecodeArray> OptimizedBytecodeSourcePositionTester::MakeBytecode(
+    int optimization_bitmap, const char* function_body,
+    const char* function_decl_params, const char* function_args) {
+  std::string script =
+      MakeScript(function_body, function_decl_params, function_args);
+  SetOptimizationFlags(optimization_bitmap);
+  CompileRun(script.c_str());
+
+  Local<Function> api_function = Local<Function>::Cast(
+      CcTest::global()
+          ->Get(CcTest::isolate()->GetCurrentContext(), v8_str("test_function"))
+          .ToLocalChecked());
+  Handle<JSFunction> function =
+      Handle<JSFunction>::cast(v8::Utils::OpenHandle(*api_function));
+  return handle(function->shared()->bytecode_array());
+}
+
+void OptimizedBytecodeSourcePositionTester::SetOptimizationFlags(
+    int optimization_bitmap) {
+#define SET_FLAG(V8Flag, BitName, _) \
+  V8Flag = (optimization_bitmap & BitName) ? true : false;
+  OPTIMIZATION_FLAGS(SET_FLAG)
+#undef SET_FLAG
+}
+
+void OptimizedBytecodeSourcePositionTester::SaveOptimizationFlags() {
+  saved_optimization_bitmap_ = 0;
+#define SAVE_FLAG(V8Flag, BitName, _) \
+  if (V8Flag) saved_optimization_bitmap_ |= BitName;
+#undef SET_FLAG
+}
+
+void OptimizedBytecodeSourcePositionTester::RestoreOptimizationFlags() {
+  SetOptimizationFlags(saved_optimization_bitmap_);
+}
+
+bool OptimizedBytecodeSourcePositionTester::SourcePositionsMatch(
+    int optimization_bitmap, const char* function_body,
+    const char* function_decl_params, const char* function_args) {
+  Handle<BytecodeArray> unoptimized_bytecode =
+      MakeBytecode(0, function_body, function_decl_params, function_args);
+  Handle<BytecodeArray> optimized_bytecode = MakeBytecode(
+      optimization_bitmap, function_body, function_decl_params, function_args);
+  SourcePositionMatcher matcher;
+  if (!matcher.Match(unoptimized_bytecode, optimized_bytecode)) {
+    return false;
+  }
+  return true;
+}
+
+void TestSourcePositionsEquivalent(int optimization_bitmap) {
+  HandleAndZoneScope handles;
+  // Ensure handler table is generated.
+  handles.main_isolate()->interpreter()->Initialize();
+
+  OptimizedBytecodeSourcePositionTester tester(handles.main_isolate());
+  for (auto test_case_data : kTestCaseData) {
+    CHECK(tester.SourcePositionsMatch(
+        optimization_bitmap, test_case_data.script(),
+        test_case_data.declaration_parameters(), test_case_data.arguments()));
+  }
+}
+
+#define MAKE_TEST(Name, Bitmap)               \
+  TEST(TestSourcePositionsEquivalent##Name) { \
+    TestSourcePositionsEquivalent(Bitmap);    \
+  }
+TEST_CASES(MAKE_TEST)
+#undef MAKE_TEST
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/libsampler/test-sampler.cc b/test/cctest/libsampler/test-sampler.cc
new file mode 100644
index 0000000..745b139
--- /dev/null
+++ b/test/cctest/libsampler/test-sampler.cc
@@ -0,0 +1,141 @@
+// 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.
+// Tests of sampler functionalities.
+
+#include "src/libsampler/v8-sampler.h"
+
+#include "src/base/platform/platform.h"
+#include "test/cctest/cctest.h"
+
+
+namespace v8 {
+namespace sampler {
+
+namespace {
+
+class TestSamplingThread : public base::Thread {
+ public:
+  static const int kSamplerThreadStackSize = 64 * 1024;
+
+  explicit TestSamplingThread(Sampler* sampler)
+      : Thread(base::Thread::Options("TestSamplingThread",
+                                     kSamplerThreadStackSize)),
+        sampler_(sampler) {}
+
+  // Implement Thread::Run().
+  void Run() override {
+    while (sampler_->IsProfiling()) {
+      sampler_->DoSample();
+      base::OS::Sleep(base::TimeDelta::FromMilliseconds(1));
+    }
+  }
+
+ private:
+  Sampler* sampler_;
+};
+
+
+class TestSampler : public Sampler {
+ public:
+  explicit TestSampler(Isolate* isolate) : Sampler(isolate) {}
+
+  void SampleStack(const v8::RegisterState& regs) override {
+    void* frames[Sampler::kMaxFramesCount];
+    SampleInfo sample_info;
+    isolate()->GetStackSample(regs, reinterpret_cast<void**>(frames),
+                              Sampler::kMaxFramesCount, &sample_info);
+    if (is_counting_samples_) {
+      if (sample_info.vm_state == JS) ++js_sample_count_;
+      if (sample_info.vm_state == EXTERNAL) ++external_sample_count_;
+    }
+  }
+};
+
+
+class TestApiCallbacks {
+ public:
+  TestApiCallbacks() {}
+
+  static void Getter(v8::Local<v8::String> name,
+                     const v8::PropertyCallbackInfo<v8::Value>& info) {
+  }
+
+  static void Setter(v8::Local<v8::String> name,
+                     v8::Local<v8::Value> value,
+                     const v8::PropertyCallbackInfo<void>& info) {
+  }
+};
+
+
+static void RunSampler(v8::Local<v8::Context> env,
+                       v8::Local<v8::Function> function,
+                       v8::Local<v8::Value> argv[], int argc,
+                       unsigned min_js_samples = 0,
+                       unsigned min_external_samples = 0) {
+  Sampler::SetUp();
+  TestSampler* sampler = new TestSampler(env->GetIsolate());
+  TestSamplingThread* thread = new TestSamplingThread(sampler);
+  sampler->IncreaseProfilingDepth();
+  sampler->Start();
+  sampler->StartCountingSamples();
+  thread->StartSynchronously();
+  do {
+    function->Call(env, env->Global(), argc, argv).ToLocalChecked();
+  } while (sampler->js_sample_count() < min_js_samples ||
+           sampler->external_sample_count() < min_external_samples);
+  sampler->Stop();
+  sampler->DecreaseProfilingDepth();
+  thread->Join();
+  delete thread;
+  delete sampler;
+  Sampler::TearDown();
+}
+
+}  // namespace
+
+static const char* sampler_test_source = "function start(count) {\n"
+"  for (var i = 0; i < count; i++) {\n"
+"    var o = instance.foo;\n"
+"    instance.foo = o + 1;\n"
+"  }\n"
+"}\n";
+
+static v8::Local<v8::Function> GetFunction(v8::Local<v8::Context> env,
+                                           const char* name) {
+  return v8::Local<v8::Function>::Cast(
+      env->Global()->Get(env, v8_str(name)).ToLocalChecked());
+}
+
+
+TEST(LibSamplerCollectSample) {
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  v8::HandleScope scope(isolate);
+
+  v8::Local<v8::FunctionTemplate> func_template =
+      v8::FunctionTemplate::New(isolate);
+  v8::Local<v8::ObjectTemplate> instance_template =
+      func_template->InstanceTemplate();
+
+  TestApiCallbacks accessors;
+  v8::Local<v8::External> data =
+      v8::External::New(isolate, &accessors);
+  instance_template->SetAccessor(v8_str("foo"), &TestApiCallbacks::Getter,
+                                 &TestApiCallbacks::Setter, data);
+  v8::Local<v8::Function> func =
+      func_template->GetFunction(env.local()).ToLocalChecked();
+  v8::Local<v8::Object> instance =
+      func->NewInstance(env.local()).ToLocalChecked();
+  env->Global()->Set(env.local(), v8_str("instance"), instance).FromJust();
+
+  CompileRun(sampler_test_source);
+  v8::Local<v8::Function> function = GetFunction(env.local(), "start");
+
+  int32_t repeat_count = 100;
+  v8::Local<v8::Value> args[] = {v8::Integer::New(isolate, repeat_count)};
+  RunSampler(env.local(), function, args, arraysize(args), 100, 100);
+}
+
+}  // namespace sampler
+}  // namespace v8
diff --git a/test/cctest/test-access-checks.cc b/test/cctest/test-access-checks.cc
new file mode 100644
index 0000000..34b64c4
--- /dev/null
+++ b/test/cctest/test-access-checks.cc
@@ -0,0 +1,182 @@
+// 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 <stdlib.h>
+
+#include "test/cctest/cctest.h"
+
+namespace {
+
+int32_t g_cross_context_int = 0;
+
+void NamedGetter(v8::Local<v8::Name> property,
+                 const v8::PropertyCallbackInfo<v8::Value>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (property->Equals(context, v8_str("cross_context_int")).FromJust())
+    info.GetReturnValue().Set(g_cross_context_int);
+}
+
+void NamedSetter(v8::Local<v8::Name> property, v8::Local<v8::Value> value,
+                 const v8::PropertyCallbackInfo<v8::Value>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (!property->Equals(context, v8_str("cross_context_int")).FromJust())
+    return;
+  if (value->IsInt32()) {
+    g_cross_context_int = value->ToInt32(context).ToLocalChecked()->Value();
+  }
+  info.GetReturnValue().Set(value);
+}
+
+void NamedQuery(v8::Local<v8::Name> property,
+                const v8::PropertyCallbackInfo<v8::Integer>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (!property->Equals(context, v8_str("cross_context_int")).FromJust())
+    return;
+  info.GetReturnValue().Set(v8::DontDelete);
+}
+
+void NamedDeleter(v8::Local<v8::Name> property,
+                  const v8::PropertyCallbackInfo<v8::Boolean>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (!property->Equals(context, v8_str("cross_context_int")).FromJust())
+    return;
+  info.GetReturnValue().Set(false);
+}
+
+void NamedEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Array> names = v8::Array::New(isolate, 1);
+  names->Set(context, 0, v8_str("cross_context_int")).FromJust();
+  info.GetReturnValue().Set(names);
+}
+
+void IndexedGetter(uint32_t index,
+                   const v8::PropertyCallbackInfo<v8::Value>& info) {
+  if (index == 7) info.GetReturnValue().Set(g_cross_context_int);
+}
+
+void IndexedSetter(uint32_t index, v8::Local<v8::Value> value,
+                   const v8::PropertyCallbackInfo<v8::Value>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (index != 7) return;
+  if (value->IsInt32()) {
+    g_cross_context_int = value->ToInt32(context).ToLocalChecked()->Value();
+  }
+  info.GetReturnValue().Set(value);
+}
+
+void IndexedQuery(uint32_t index,
+                  const v8::PropertyCallbackInfo<v8::Integer>& info) {
+  if (index == 7) info.GetReturnValue().Set(v8::DontDelete);
+}
+
+void IndexedDeleter(uint32_t index,
+                    const v8::PropertyCallbackInfo<v8::Boolean>& info) {
+  if (index == 7) info.GetReturnValue().Set(false);
+}
+
+void IndexedEnumerator(const v8::PropertyCallbackInfo<v8::Array>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Array> names = v8::Array::New(isolate, 1);
+  names->Set(context, 0, v8_str("7")).FromJust();
+  info.GetReturnValue().Set(names);
+}
+
+bool AccessCheck(v8::Local<v8::Context> accessing_context,
+                 v8::Local<v8::Object> accessed_object,
+                 v8::Local<v8::Value> data) {
+  return false;
+}
+
+void GetCrossContextInt(v8::Local<v8::String> property,
+                        const v8::PropertyCallbackInfo<v8::Value>& info) {
+  info.GetReturnValue().Set(g_cross_context_int);
+}
+
+void SetCrossContextInt(v8::Local<v8::String> property,
+                        v8::Local<v8::Value> value,
+                        const v8::PropertyCallbackInfo<void>& info) {
+  v8::Isolate* isolate = info.GetIsolate();
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  if (value->IsInt32()) {
+    g_cross_context_int = value->ToInt32(context).ToLocalChecked()->Value();
+  }
+}
+
+void Return42(v8::Local<v8::String> property,
+              const v8::PropertyCallbackInfo<v8::Value>& info) {
+  info.GetReturnValue().Set(42);
+}
+
+}  // namespace
+
+TEST(AccessCheckWithInterceptor) {
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::ObjectTemplate> global_template =
+      v8::ObjectTemplate::New(isolate);
+  global_template->SetAccessCheckCallbackAndHandler(
+      AccessCheck,
+      v8::NamedPropertyHandlerConfiguration(
+          NamedGetter, NamedSetter, NamedQuery, NamedDeleter, NamedEnumerator),
+      v8::IndexedPropertyHandlerConfiguration(IndexedGetter, IndexedSetter,
+                                              IndexedQuery, IndexedDeleter,
+                                              IndexedEnumerator));
+  global_template->SetNativeDataProperty(
+      v8_str("cross_context_int"), GetCrossContextInt, SetCrossContextInt);
+  global_template->SetNativeDataProperty(
+      v8_str("all_can_read"), Return42, nullptr, v8::Local<v8::Value>(),
+      v8::None, v8::Local<v8::AccessorSignature>(), v8::ALL_CAN_READ);
+
+  v8::Local<v8::Context> context0 =
+      v8::Context::New(isolate, nullptr, global_template);
+  context0->Enter();
+
+  // Running script in this context should work.
+  CompileRunChecked(isolate, "this.foo = 42; this[23] = true;");
+  ExpectInt32("this.all_can_read", 42);
+  CompileRunChecked(isolate, "this.cross_context_int = 23");
+  CHECK_EQ(g_cross_context_int, 23);
+  ExpectInt32("this.cross_context_int", 23);
+
+  // Create another context.
+  {
+    v8::HandleScope other_scope(isolate);
+    v8::Local<v8::Context> context1 =
+        v8::Context::New(isolate, nullptr, global_template);
+    context1->Global()
+        ->Set(context1, v8_str("other"), context0->Global())
+        .FromJust();
+    v8::Context::Scope context_scope(context1);
+
+    {
+      v8::TryCatch try_catch(isolate);
+      CHECK(CompileRun(context1, "this.other.foo").IsEmpty());
+    }
+    {
+      v8::TryCatch try_catch(isolate);
+      CHECK(CompileRun(context1, "this.other[23]").IsEmpty());
+    }
+
+    // AllCanRead properties are also inaccessible.
+    {
+      v8::TryCatch try_catch(isolate);
+      CHECK(CompileRun(context1, "this.other.all_can_read").IsEmpty());
+    }
+
+    // Intercepted properties are accessible, however.
+    ExpectInt32("this.other.cross_context_int", 23);
+    CompileRunChecked(isolate, "this.other.cross_context_int = 42");
+    ExpectInt32("this.other[7]", 42);
+    ExpectString("JSON.stringify(Object.getOwnPropertyNames(this.other))",
+                 "[\"7\",\"cross_context_int\"]");
+  }
+}
diff --git a/test/cctest/test-api-interceptors.cc b/test/cctest/test-api-interceptors.cc
index a1894fa..1636e4b 100644
--- a/test/cctest/test-api-interceptors.cc
+++ b/test/cctest/test-api-interceptors.cc
@@ -854,6 +854,66 @@
   CHECK_EQ(42 * 10, value->Int32Value(context.local()).FromJust());
 }
 
+// Test load of a non-existing global when a global object has an interceptor.
+THREADED_TEST(InterceptorLoadGlobalICGlobalWithInterceptor) {
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::ObjectTemplate> templ_global = v8::ObjectTemplate::New(isolate);
+  templ_global->SetHandler(v8::NamedPropertyHandlerConfiguration(
+      EmptyInterceptorGetter, EmptyInterceptorSetter));
+
+  LocalContext context(nullptr, templ_global);
+  i::Handle<i::JSReceiver> global_proxy =
+      v8::Utils::OpenHandle<Object, i::JSReceiver>(context->Global());
+  CHECK(global_proxy->IsJSGlobalProxy());
+  i::Handle<i::JSGlobalObject> global(
+      i::JSGlobalObject::cast(global_proxy->map()->prototype()));
+  CHECK(global->map()->has_named_interceptor());
+
+  v8::Local<Value> value = CompileRun(
+      "var f = function() { "
+      "  try {"
+      "    x1;"
+      "  } catch(e) {"
+      "  }"
+      "  return typeof x1 === 'undefined';"
+      "};"
+      "for (var i = 0; i < 10; i++) {"
+      "  f();"
+      "};"
+      "f();");
+  CHECK_EQ(true, value->BooleanValue(context.local()).FromJust());
+
+  value = CompileRun(
+      "var f = function() { "
+      "  try {"
+      "    x2;"
+      "    return false;"
+      "  } catch(e) {"
+      "    return true;"
+      "  }"
+      "};"
+      "for (var i = 0; i < 10; i++) {"
+      "  f();"
+      "};"
+      "f();");
+  CHECK_EQ(true, value->BooleanValue(context.local()).FromJust());
+
+  value = CompileRun(
+      "var f = function() { "
+      "  try {"
+      "    typeof(x3);"
+      "    return true;"
+      "  } catch(e) {"
+      "    return false;"
+      "  }"
+      "};"
+      "for (var i = 0; i < 10; i++) {"
+      "  f();"
+      "};"
+      "f();");
+  CHECK_EQ(true, value->BooleanValue(context.local()).FromJust());
+}
 
 static void InterceptorLoadICGetter0(
     Local<Name> name, const v8::PropertyCallbackInfo<v8::Value>& info) {
@@ -2270,33 +2330,34 @@
   // This order is not mandated by the spec, so this test is just
   // documenting our behavior.
   CHECK_EQ(17u, result->Length());
-  // Indexed properties + indexed interceptor properties in numerical order.
-  CHECK(v8_str("0")
+  // Indexed properties.
+  CHECK(v8_str("5")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 0))
                          .ToLocalChecked())
             .FromJust());
-  CHECK(v8_str("1")
+  CHECK(v8_str("10")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 1))
                          .ToLocalChecked())
             .FromJust());
-  CHECK(v8_str("5")
+  CHECK(v8_str("140000")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 2))
                          .ToLocalChecked())
             .FromJust());
-  CHECK(v8_str("10")
+  CHECK(v8_str("4294967294")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 3))
                          .ToLocalChecked())
             .FromJust());
-  CHECK(v8_str("140000")
+  // Indexed Interceptor properties
+  CHECK(v8_str("0")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 4))
                          .ToLocalChecked())
             .FromJust());
-  CHECK(v8_str("4294967294")
+  CHECK(v8_str("1")
             ->Equals(context.local(),
                      result->Get(context.local(), v8::Integer::New(isolate, 5))
                          .ToLocalChecked())
@@ -3245,6 +3306,25 @@
   CompileRun("Number.prototype.__proto__ = new Bug; var x = 0; x.foo();");
 }
 
+THREADED_TEST(Regress625155) {
+  LocalContext context;
+  v8::HandleScope scope(context->GetIsolate());
+  Local<FunctionTemplate> templ = FunctionTemplate::New(context->GetIsolate());
+  AddInterceptor(templ, EmptyInterceptorGetter, EmptyInterceptorSetter);
+  context->Global()
+      ->Set(context.local(), v8_str("Bug"),
+            templ->GetFunction(context.local()).ToLocalChecked())
+      .FromJust();
+  CompileRun(
+      "Number.prototype.__proto__ = new Bug;"
+      "var x;"
+      "x = 0xdead;"
+      "x.boom = 0;"
+      "x = 's';"
+      "x.boom = 0;"
+      "x = 1.5;"
+      "x.boom = 0;");
+}
 
 THREADED_TEST(Regress125988) {
   v8::HandleScope scope(CcTest::isolate());
diff --git a/test/cctest/test-api.cc b/test/cctest/test-api.cc
index da72ecd..5624e3f 100644
--- a/test/cctest/test-api.cc
+++ b/test/cctest/test-api.cc
@@ -47,11 +47,12 @@
 #include "src/futex-emulation.h"
 #include "src/objects.h"
 #include "src/parsing/parser.h"
+#include "src/profiler/cpu-profiler.h"
 #include "src/unicode-inl.h"
 #include "src/utils.h"
 #include "src/vm-state.h"
 #include "test/cctest/heap/heap-tester.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 static const bool kLogThreading = false;
 
@@ -555,40 +556,19 @@
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);
 
   uint16_t* two_byte_string = AsciiToTwoByteString("s1");
-  Local<String> small_string =
+  Local<String> local_string =
       String::NewFromTwoByte(env->GetIsolate(), two_byte_string,
                              v8::NewStringType::kNormal)
           .ToLocalChecked();
   i::DeleteArray(two_byte_string);
 
-  // We should refuse to externalize small strings.
-  CHECK(!small_string->CanMakeExternal());
+  // We should refuse to externalize new space strings.
+  CHECK(!local_string->CanMakeExternal());
   // Trigger GCs so that the newly allocated string moves to old gen.
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in survivor space now
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in old gen now
   // Old space strings should be accepted.
-  CHECK(small_string->CanMakeExternal());
-
-  two_byte_string = AsciiToTwoByteString("small string 2");
-  small_string = String::NewFromTwoByte(env->GetIsolate(), two_byte_string,
-                                        v8::NewStringType::kNormal)
-                     .ToLocalChecked();
-  i::DeleteArray(two_byte_string);
-
-  const int buf_size = 10 * 1024;
-  char* buf = i::NewArray<char>(buf_size);
-  memset(buf, 'a', buf_size);
-  buf[buf_size - 1] = '\0';
-
-  two_byte_string = AsciiToTwoByteString(buf);
-  Local<String> large_string =
-      String::NewFromTwoByte(env->GetIsolate(), two_byte_string,
-                             v8::NewStringType::kNormal)
-          .ToLocalChecked();
-  i::DeleteArray(buf);
-  i::DeleteArray(two_byte_string);
-  // Large strings should be immediately accepted.
-  CHECK(large_string->CanMakeExternal());
+  CHECK(local_string->CanMakeExternal());
 }
 
 
@@ -600,23 +580,14 @@
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);
 
-  Local<String> small_string = v8_str("s1");
-  // We should refuse to externalize small strings.
-  CHECK(!small_string->CanMakeExternal());
+  Local<String> local_string = v8_str("s1");
+  // We should refuse to externalize new space strings.
+  CHECK(!local_string->CanMakeExternal());
   // Trigger GCs so that the newly allocated string moves to old gen.
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in survivor space now
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in old gen now
   // Old space strings should be accepted.
-  CHECK(small_string->CanMakeExternal());
-
-  const int buf_size = 10 * 1024;
-  char* buf = i::NewArray<char>(buf_size);
-  memset(buf, 'a', buf_size);
-  buf[buf_size - 1] = '\0';
-  Local<String> large_string = v8_str(buf);
-  i::DeleteArray(buf);
-  // Large strings should be immediately accepted.
-  CHECK(large_string->CanMakeExternal());
+  CHECK(local_string->CanMakeExternal());
 }
 
 
@@ -634,7 +605,7 @@
       "slice('abcdefghijklmnopqrstuvwxyz');"));
 
   // Trigger GCs so that the newly allocated string moves to old gen.
-  SimulateFullSpace(CcTest::heap()->old_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->old_space());
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in survivor space now
   CcTest::heap()->CollectGarbage(i::NEW_SPACE);  // in old gen now
 
@@ -2827,16 +2798,15 @@
   CHECK(env->Global()
             ->Set(env.local(), v8_str("global"), global_proxy)
             .FromJust());
-  i::Handle<i::Object> original_hash;
+  int32_t hash1;
   if (set_in_js) {
     CompileRun("var m = new Set(); m.add(global);");
-    original_hash = i::Handle<i::Object>(i_global_proxy->GetHash(), i_isolate);
+    i::Object* original_hash = i_global_proxy->GetHash();
+    CHECK(original_hash->IsSmi());
+    hash1 = i::Smi::cast(original_hash)->value();
   } else {
-    original_hash = i::Handle<i::Object>(
-        i::Object::GetOrCreateHash(i_isolate, i_global_proxy));
+    hash1 = i::Object::GetOrCreateHash(i_isolate, i_global_proxy)->value();
   }
-  CHECK(original_hash->IsSmi());
-  int32_t hash1 = i::Handle<i::Smi>::cast(original_hash)->value();
   // Hash should be retained after being detached.
   env->DetachGlobal();
   int hash2 = global_proxy->GetIdentityHash();
@@ -13381,7 +13351,7 @@
   value =
       context->Global()->ObjectProtoToString(context.local()).ToLocalChecked();
   CHECK(value->IsString() &&
-        value->Equals(context.local(), v8_str("[object global]")).FromJust());
+        value->Equals(context.local(), v8_str("[object Object]")).FromJust());
 
   // Check ordinary object
   Local<Value> object =
@@ -13427,7 +13397,7 @@
   value =
       context->Global()->ObjectProtoToString(context.local()).ToLocalChecked();
   CHECK(value->IsString() &&
-        value->Equals(context.local(), v8_str("[object global]")).FromJust());
+        value->Equals(context.local(), v8_str("[object Object]")).FromJust());
 
   // Check ordinary object
   Local<Value> object = CompileRun("new Object()");
@@ -14610,9 +14580,8 @@
   test.RunTest();
 }
 
-
-static i::HashMap* code_map = NULL;
-static i::HashMap* jitcode_line_info = NULL;
+static v8::base::HashMap* code_map = NULL;
+static v8::base::HashMap* jitcode_line_info = NULL;
 static int saw_bar = 0;
 static int move_events = 0;
 
@@ -14672,7 +14641,7 @@
         CHECK(event->code_start != NULL);
         CHECK_NE(0, static_cast<int>(event->code_len));
         CHECK(event->name.str != NULL);
-        i::HashMap::Entry* entry = code_map->LookupOrInsert(
+        v8::base::HashMap::Entry* entry = code_map->LookupOrInsert(
             event->code_start, i::ComputePointerHash(event->code_start));
         entry->value = reinterpret_cast<void*>(event->code_len);
 
@@ -14691,7 +14660,8 @@
         // Compiler::RecordFunctionCompilation) and the line endings
         // calculations can cause a GC, which can move the newly created code
         // before its existence can be logged.
-        i::HashMap::Entry* entry = code_map->Lookup(event->code_start, hash);
+        v8::base::HashMap::Entry* entry =
+            code_map->Lookup(event->code_start, hash);
         if (entry != NULL) {
           ++move_events;
 
@@ -14718,7 +14688,7 @@
         DummyJitCodeLineInfo* line_info = new DummyJitCodeLineInfo();
         v8::JitCodeEvent* temp_event = const_cast<v8::JitCodeEvent*>(event);
         temp_event->user_data = line_info;
-        i::HashMap::Entry* entry = jitcode_line_info->LookupOrInsert(
+        v8::base::HashMap::Entry* entry = jitcode_line_info->LookupOrInsert(
             line_info, i::ComputePointerHash(line_info));
         entry->value = reinterpret_cast<void*>(line_info);
       }
@@ -14729,7 +14699,7 @@
     case v8::JitCodeEvent::CODE_END_LINE_INFO_RECORDING: {
         CHECK(event->user_data != NULL);
         uint32_t hash = i::ComputePointerHash(event->user_data);
-        i::HashMap::Entry* entry =
+        v8::base::HashMap::Entry* entry =
             jitcode_line_info->Lookup(event->user_data, hash);
         CHECK(entry != NULL);
         delete reinterpret_cast<DummyJitCodeLineInfo*>(event->user_data);
@@ -14739,7 +14709,7 @@
     case v8::JitCodeEvent::CODE_ADD_LINE_POS_INFO: {
         CHECK(event->user_data != NULL);
         uint32_t hash = i::ComputePointerHash(event->user_data);
-        i::HashMap::Entry* entry =
+        v8::base::HashMap::Entry* entry =
             jitcode_line_info->Lookup(event->user_data, hash);
         CHECK(entry != NULL);
       }
@@ -14781,10 +14751,10 @@
 
   {
     v8::HandleScope scope(isolate);
-    i::HashMap code(MatchPointers);
+    v8::base::HashMap code(MatchPointers);
     code_map = &code;
 
-    i::HashMap lineinfo(MatchPointers);
+    v8::base::HashMap lineinfo(MatchPointers);
     jitcode_line_info = &lineinfo;
 
     saw_bar = 0;
@@ -14798,8 +14768,8 @@
     for (int i = 0; i < kIterations; ++i) {
       LocalContext env(isolate);
       i::AlwaysAllocateScope always_allocate(i_isolate);
-      SimulateFullSpace(i::FLAG_ignition ? heap->old_space()
-                                         : heap->code_space());
+      i::heap::SimulateFullSpace(i::FLAG_ignition ? heap->old_space()
+                                                  : heap->code_space());
       CompileRun(script);
 
       // Keep a strong reference to the code object in the handle scope.
@@ -14847,10 +14817,10 @@
     CompileRun(script);
 
     // Now get code through initial iteration.
-    i::HashMap code(MatchPointers);
+    v8::base::HashMap code(MatchPointers);
     code_map = &code;
 
-    i::HashMap lineinfo(MatchPointers);
+    v8::base::HashMap lineinfo(MatchPointers);
     jitcode_line_info = &lineinfo;
 
     isolate->SetJitCodeEventHandler(v8::kJitCodeEventEnumExisting,
@@ -14883,8 +14853,7 @@
            isolate->AdjustAmountOfExternalAllocatedMemory(kSize));
   CHECK_EQ(baseline,
            isolate->AdjustAmountOfExternalAllocatedMemory(-kSize));
-  const int64_t kTriggerGCSize =
-      v8::internal::Internals::kExternalAllocationLimit + 1;
+  const int64_t kTriggerGCSize = i::kExternalAllocationLimit + 1;
   CHECK_EQ(baseline + kTriggerGCSize,
            isolate->AdjustAmountOfExternalAllocatedMemory(kTriggerGCSize));
   CHECK_EQ(baseline,
@@ -14896,8 +14865,7 @@
   i::FLAG_incremental_marking = false;
   CcTest::InitializeVM();
 
-  const int64_t kTriggerGCSize =
-      v8::internal::Internals::kExternalAllocationLimit + 1;
+  const int64_t kTriggerGCSize = i::kExternalAllocationLimit + 1;
   v8::Isolate* isolate = CcTest::isolate();
   isolate->AdjustAmountOfExternalAllocatedMemory(kTriggerGCSize);
 }
@@ -15072,18 +15040,39 @@
   CHECK_EQ(1224744689038.0, date.As<v8::Date>()->ValueOf());
 }
 
+void CheckIsSymbolAt(v8::Isolate* isolate, v8::Local<v8::Array> properties,
+                     unsigned index, const char* name) {
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::Value> value =
+      properties->Get(context, v8::Integer::New(isolate, index))
+          .ToLocalChecked();
+  CHECK(value->IsSymbol());
+  v8::String::Utf8Value symbol_name(Local<Symbol>::Cast(value)->Name());
+  CHECK_EQ(0, strcmp(name, *symbol_name));
+}
+
+void CheckStringArray(v8::Isolate* isolate, v8::Local<v8::Array> properties,
+                      unsigned length, const char* names[]) {
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  CHECK_EQ(length, properties->Length());
+  for (unsigned i = 0; i < length; i++) {
+    v8::Local<v8::Value> value =
+        properties->Get(context, v8::Integer::New(isolate, i)).ToLocalChecked();
+    if (names[i] == nullptr) {
+      DCHECK(value->IsSymbol());
+    } else {
+      v8::String::Utf8Value elm(value);
+      CHECK_EQ(0, strcmp(names[i], *elm));
+    }
+  }
+}
 
 void CheckProperties(v8::Isolate* isolate, v8::Local<v8::Value> val,
-                     unsigned elmc, const char* elmv[]) {
+                     unsigned length, const char* names[]) {
   v8::Local<v8::Context> context = isolate->GetCurrentContext();
   v8::Local<v8::Object> obj = val.As<v8::Object>();
   v8::Local<v8::Array> props = obj->GetPropertyNames(context).ToLocalChecked();
-  CHECK_EQ(elmc, props->Length());
-  for (unsigned i = 0; i < elmc; i++) {
-    v8::String::Utf8Value elm(
-        props->Get(context, v8::Integer::New(isolate, i)).ToLocalChecked());
-    CHECK_EQ(0, strcmp(elmv[i], *elm));
-  }
+  CheckStringArray(isolate, props, length, names);
 }
 
 
@@ -15194,6 +15183,97 @@
   }
 }
 
+THREADED_TEST(PropertyNames) {
+  LocalContext context;
+  v8::Isolate* isolate = context->GetIsolate();
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::Value> result = CompileRun(
+      "var result = {0: 0, 1: 1, a: 2, b: 3};"
+      "result[Symbol('symbol')] = true;"
+      "result.__proto__ = {2: 4, 3: 5, c: 6, d: 7};"
+      "result;");
+  v8::Local<v8::Object> object = result.As<v8::Object>();
+  v8::PropertyFilter default_filter =
+      static_cast<v8::PropertyFilter>(v8::ONLY_ENUMERABLE | v8::SKIP_SYMBOLS);
+  v8::PropertyFilter include_symbols_filter = v8::ONLY_ENUMERABLE;
+
+  v8::Local<v8::Array> properties =
+      object->GetPropertyNames(context.local()).ToLocalChecked();
+  const char* expected_properties1[] = {"0", "1", "a", "b", "2", "3", "c", "d"};
+  CheckStringArray(isolate, properties, 8, expected_properties1);
+
+  properties =
+      object
+          ->GetPropertyNames(context.local(),
+                             v8::KeyCollectionMode::kIncludePrototypes,
+                             default_filter, v8::IndexFilter::kIncludeIndices)
+          .ToLocalChecked();
+  CheckStringArray(isolate, properties, 8, expected_properties1);
+
+  properties = object
+                   ->GetPropertyNames(context.local(),
+                                      v8::KeyCollectionMode::kIncludePrototypes,
+                                      include_symbols_filter,
+                                      v8::IndexFilter::kIncludeIndices)
+                   .ToLocalChecked();
+  const char* expected_properties1_1[] = {"0", "1", "a", "b", nullptr,
+                                          "2", "3", "c", "d"};
+  CheckStringArray(isolate, properties, 9, expected_properties1_1);
+  CheckIsSymbolAt(isolate, properties, 4, "symbol");
+
+  properties =
+      object
+          ->GetPropertyNames(context.local(),
+                             v8::KeyCollectionMode::kIncludePrototypes,
+                             default_filter, v8::IndexFilter::kSkipIndices)
+          .ToLocalChecked();
+  const char* expected_properties2[] = {"a", "b", "c", "d"};
+  CheckStringArray(isolate, properties, 4, expected_properties2);
+
+  properties = object
+                   ->GetPropertyNames(context.local(),
+                                      v8::KeyCollectionMode::kIncludePrototypes,
+                                      include_symbols_filter,
+                                      v8::IndexFilter::kSkipIndices)
+                   .ToLocalChecked();
+  const char* expected_properties2_1[] = {"a", "b", nullptr, "c", "d"};
+  CheckStringArray(isolate, properties, 5, expected_properties2_1);
+  CheckIsSymbolAt(isolate, properties, 2, "symbol");
+
+  properties =
+      object
+          ->GetPropertyNames(context.local(), v8::KeyCollectionMode::kOwnOnly,
+                             default_filter, v8::IndexFilter::kIncludeIndices)
+          .ToLocalChecked();
+  const char* expected_properties3[] = {"0", "1", "a", "b"};
+  CheckStringArray(isolate, properties, 4, expected_properties3);
+
+  properties = object
+                   ->GetPropertyNames(
+                       context.local(), v8::KeyCollectionMode::kOwnOnly,
+                       include_symbols_filter, v8::IndexFilter::kIncludeIndices)
+                   .ToLocalChecked();
+  const char* expected_properties3_1[] = {"0", "1", "a", "b", nullptr};
+  CheckStringArray(isolate, properties, 5, expected_properties3_1);
+  CheckIsSymbolAt(isolate, properties, 4, "symbol");
+
+  properties =
+      object
+          ->GetPropertyNames(context.local(), v8::KeyCollectionMode::kOwnOnly,
+                             default_filter, v8::IndexFilter::kSkipIndices)
+          .ToLocalChecked();
+  const char* expected_properties4[] = {"a", "b"};
+  CheckStringArray(isolate, properties, 2, expected_properties4);
+
+  properties = object
+                   ->GetPropertyNames(
+                       context.local(), v8::KeyCollectionMode::kOwnOnly,
+                       include_symbols_filter, v8::IndexFilter::kSkipIndices)
+                   .ToLocalChecked();
+  const char* expected_properties4_1[] = {"a", "b", nullptr};
+  CheckStringArray(isolate, properties, 3, expected_properties4_1);
+  CheckIsSymbolAt(isolate, properties, 2, "symbol");
+}
 
 THREADED_TEST(AccessChecksReenabledCorrectly) {
   LocalContext context;
@@ -18462,7 +18542,6 @@
 
 
 THREADED_TEST(FunctionGetDebugName) {
-  i::FLAG_harmony_function_name = true;
   LocalContext env;
   v8::HandleScope scope(env->GetIsolate());
   const char* code =
@@ -19001,7 +19080,7 @@
   ++prologue_call_count_alloc;
 
   // Simulate full heap to see if we will reenter this callback
-  SimulateFullSpace(CcTest::heap()->new_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->new_space());
 
   Local<Object> obj = Object::New(isolate);
   CHECK(!obj.IsEmpty());
@@ -19021,7 +19100,7 @@
   ++epilogue_call_count_alloc;
 
   // Simulate full heap to see if we will reenter this callback
-  SimulateFullSpace(CcTest::heap()->new_space());
+  i::heap::SimulateFullSpace(CcTest::heap()->new_space());
 
   Local<Object> obj = Object::New(isolate);
   CHECK(!obj.IsEmpty());
@@ -19997,7 +20076,6 @@
 
 
 TEST(RegExp) {
-  i::FLAG_harmony_unicode_regexps = true;
   LocalContext context;
   v8::HandleScope scope(context->GetIsolate());
 
@@ -21375,14 +21453,17 @@
   env->GetIsolate()->SetMicrotasksPolicy(v8::MicrotasksPolicy::kAuto);
 }
 
-
 #ifdef ENABLE_DISASSEMBLER
-static int probes_counter = 0;
-static int misses_counter = 0;
-static int updates_counter = 0;
+// FLAG_test_primary_stub_cache and FLAG_test_secondary_stub_cache are read
+// only when ENABLE_DISASSEMBLER is not defined.
 
+namespace {
 
-static int* LookupCounter(const char* name) {
+int probes_counter = 0;
+int misses_counter = 0;
+int updates_counter = 0;
+
+int* LookupCounter(const char* name) {
   if (strcmp(name, "c:V8.MegamorphicStubCacheProbes") == 0) {
     return &probes_counter;
   } else if (strcmp(name, "c:V8.MegamorphicStubCacheMisses") == 0) {
@@ -21393,24 +21474,28 @@
   return NULL;
 }
 
+const char* kMegamorphicTestProgram =
+    "function CreateClass(name) {\n"
+    "  var src = \n"
+    "    `  function ${name}() {};` +\n"
+    "    `  ${name}.prototype.foo = function() {};` +\n"
+    "    `  ${name};\\n`;\n"
+    "  return (0, eval)(src);\n"
+    "}\n"
+    "function fooify(obj) { obj.foo(); };\n"
+    "var objs = [];\n"
+    "for (var i = 0; i < 6; i++) {\n"
+    "  var Class = CreateClass('Class' + i);\n"
+    "  var obj = new Class();\n"
+    "  objs.push(obj);\n"
+    "}\n"
+    "for (var i = 0; i < 10000; i++) {\n"
+    "  for (var obj of objs) {\n"
+    "    fooify(obj);\n"
+    "  }\n"
+    "}\n";
 
-static const char* kMegamorphicTestProgram =
-    "function ClassA() { };"
-    "function ClassB() { };"
-    "ClassA.prototype.foo = function() { };"
-    "ClassB.prototype.foo = function() { };"
-    "function fooify(obj) { obj.foo(); };"
-    "var a = new ClassA();"
-    "var b = new ClassB();"
-    "for (var i = 0; i < 10000; i++) {"
-    "  fooify(a);"
-    "  fooify(b);"
-    "}";
-#endif
-
-
-static void StubCacheHelper(bool primary) {
-#ifdef ENABLE_DISASSEMBLER
+void StubCacheHelper(bool primary) {
   i::FLAG_native_code_counters = true;
   if (primary) {
     i::FLAG_test_primary_stub_cache = true;
@@ -21418,36 +21503,47 @@
     i::FLAG_test_secondary_stub_cache = true;
   }
   i::FLAG_crankshaft = false;
-  LocalContext env;
-  env->GetIsolate()->SetCounterFunction(LookupCounter);
-  v8::HandleScope scope(env->GetIsolate());
-  int initial_probes = probes_counter;
-  int initial_misses = misses_counter;
-  int initial_updates = updates_counter;
-  CompileRun(kMegamorphicTestProgram);
-  int probes = probes_counter - initial_probes;
-  int misses = misses_counter - initial_misses;
-  int updates = updates_counter - initial_updates;
-  CHECK_LT(updates, 10);
-  CHECK_LT(misses, 10);
-  // TODO(verwaest): Update this test to overflow the degree of polymorphism
-  // before megamorphism. The number of probes will only work once we teach the
-  // serializer to embed references to counters in the stubs, given that the
-  // megamorphic_stub_cache_probes is updated in a snapshot-generated stub.
-  CHECK_GE(probes, 0);
-#endif
+  i::FLAG_turbo = false;
+  v8::Isolate::CreateParams create_params;
+  create_params.array_buffer_allocator = CcTest::array_buffer_allocator();
+  create_params.counter_lookup_callback = LookupCounter;
+  v8::Isolate* isolate = v8::Isolate::New(create_params);
+  i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
+
+  if (!i_isolate->snapshot_available()) {
+    // The test is valid only for no-snapshot mode.
+    v8::Isolate::Scope isolate_scope(isolate);
+    LocalContext env(isolate);
+    v8::HandleScope scope(isolate);
+
+    int initial_probes = probes_counter;
+    int initial_misses = misses_counter;
+    int initial_updates = updates_counter;
+    CompileRun(kMegamorphicTestProgram);
+    int probes = probes_counter - initial_probes;
+    int misses = misses_counter - initial_misses;
+    int updates = updates_counter - initial_updates;
+    const int kClassesCount = 6;
+    // Check that updates and misses counts are bounded.
+    CHECK_LE(kClassesCount, updates);
+    CHECK_LT(updates, kClassesCount * 3);
+    CHECK_LE(1, misses);
+    CHECK_LT(misses, kClassesCount * 2);
+    // 2 is for PREMONOMORPHIC and MONOMORPHIC states,
+    // 4 is for POLYMORPHIC states,
+    // and all the others probes are for MEGAMORPHIC state.
+    CHECK_EQ(10000 * kClassesCount - 2 - 4, probes);
+  }
+  isolate->Dispose();
 }
 
+}  // namespace
 
-TEST(SecondaryStubCache) {
-  StubCacheHelper(true);
-}
+UNINITIALIZED_TEST(PrimaryStubCache) { StubCacheHelper(true); }
 
+UNINITIALIZED_TEST(SecondaryStubCache) { StubCacheHelper(false); }
 
-TEST(PrimaryStubCache) {
-  StubCacheHelper(false);
-}
-
+#endif  // ENABLE_DISASSEMBLER
 
 #ifdef DEBUG
 static int cow_arrays_created_runtime = 0;
@@ -22053,6 +22149,20 @@
   ExpectString("JSON.stringify(obj)", *utf8);
 }
 
+THREADED_TEST(JSONStringifyObjectWithGap) {
+  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, v8_str("*")).ToLocalChecked();
+  v8::String::Utf8Value utf8(json);
+  ExpectString("JSON.stringify(obj, null,  '*')", *utf8);
+}
+
 #if V8_OS_POSIX && !V8_OS_NACL
 class ThreadInterruptTest {
  public:
@@ -23413,6 +23523,88 @@
   CHECK_EQ(13, line_number);
 }
 
+TEST(ScriptPositionInfo) {
+  LocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+  v8::HandleScope scope(isolate);
+  const char* url = "http://www.foo.com/foo.js";
+  v8::ScriptOrigin origin(v8_str(url), v8::Integer::New(isolate, 13));
+  v8::ScriptCompiler::Source script_source(v8_str("var foo;\n"
+                                                  "var bar;\n"
+                                                  "var fisk = foo + bar;\n"),
+                                           origin);
+  Local<Script> script =
+      v8::ScriptCompiler::Compile(env.local(), &script_source).ToLocalChecked();
+
+  i::Handle<i::SharedFunctionInfo> obj = i::Handle<i::SharedFunctionInfo>::cast(
+      v8::Utils::OpenHandle(*script->GetUnboundScript()));
+  CHECK(obj->script()->IsScript());
+
+  i::Handle<i::Script> script1(i::Script::cast(obj->script()));
+
+  v8::internal::Script::PositionInfo info;
+
+  // With offset.
+
+  // Behave as if 0 was passed if position is negative.
+  CHECK(script1->GetPositionInfo(-1, &info, script1->WITH_OFFSET));
+  CHECK_EQ(13, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(0, &info, script1->WITH_OFFSET));
+  CHECK_EQ(13, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(8, &info, script1->WITH_OFFSET));
+  CHECK_EQ(13, info.line);
+  CHECK_EQ(8, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(9, &info, script1->WITH_OFFSET));
+  CHECK_EQ(14, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(9, info.line_start);
+  CHECK_EQ(17, info.line_end);
+
+  // Fail when position is larger than script size.
+  CHECK(!script1->GetPositionInfo(220384, &info, script1->WITH_OFFSET));
+
+  // Without offset.
+
+  // Behave as if 0 was passed if position is negative.
+  CHECK(script1->GetPositionInfo(-1, &info, script1->NO_OFFSET));
+  CHECK_EQ(0, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(0, &info, script1->NO_OFFSET));
+  CHECK_EQ(0, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(8, &info, script1->NO_OFFSET));
+  CHECK_EQ(0, info.line);
+  CHECK_EQ(8, info.column);
+  CHECK_EQ(0, info.line_start);
+  CHECK_EQ(8, info.line_end);
+
+  CHECK(script1->GetPositionInfo(9, &info, script1->NO_OFFSET));
+  CHECK_EQ(1, info.line);
+  CHECK_EQ(0, info.column);
+  CHECK_EQ(9, info.line_start);
+  CHECK_EQ(17, info.line_end);
+
+  // Fail when position is larger than script size.
+  CHECK(!script1->GetPositionInfo(220384, &info, script1->NO_OFFSET));
+}
+
 void CheckMagicComments(Local<Script> script, const char* expected_source_url,
                         const char* expected_source_mapping_url) {
   if (expected_source_url != NULL) {
diff --git a/test/cctest/test-api.h b/test/cctest/test-api.h
index 8887a8a..f9a335a 100644
--- a/test/cctest/test-api.h
+++ b/test/cctest/test-api.h
@@ -5,7 +5,6 @@
 #include "src/v8.h"
 
 #include "src/isolate.h"
-#include "src/profiler/cpu-profiler.h"
 #include "src/vm-state.h"
 #include "test/cctest/cctest.h"
 
@@ -14,10 +13,11 @@
   v8::ReturnValue<v8::Value> rv = t.GetReturnValue();
   i::Object** o = *reinterpret_cast<i::Object***>(&rv);
   CHECK_EQ(CcTest::isolate(), t.GetIsolate());
+  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(t.GetIsolate());
   CHECK_EQ(t.GetIsolate(), rv.GetIsolate());
-  CHECK((*o)->IsTheHole() || (*o)->IsUndefined());
+  CHECK((*o)->IsTheHole(isolate) || (*o)->IsUndefined(isolate));
   // Verify reset
-  bool is_runtime = (*o)->IsTheHole();
+  bool is_runtime = (*o)->IsTheHole(isolate);
   if (is_runtime) {
     CHECK(rv.Get()->IsUndefined());
   } else {
@@ -25,14 +25,13 @@
     CHECK_EQ(*v, *o);
   }
   rv.Set(true);
-  CHECK(!(*o)->IsTheHole() && !(*o)->IsUndefined());
+  CHECK(!(*o)->IsTheHole(isolate) && !(*o)->IsUndefined(isolate));
   rv.Set(v8::Local<v8::Object>());
-  CHECK((*o)->IsTheHole() || (*o)->IsUndefined());
-  CHECK_EQ(is_runtime, (*o)->IsTheHole());
-  i::Isolate* isolate = reinterpret_cast<i::Isolate*>(t.GetIsolate());
+  CHECK((*o)->IsTheHole(isolate) || (*o)->IsUndefined(isolate));
+  CHECK_EQ(is_runtime, (*o)->IsTheHole(isolate));
   // If CPU profiler is active check that when API callback is invoked
   // VMState is set to EXTERNAL.
-  if (isolate->cpu_profiler()->is_profiling()) {
+  if (isolate->is_profiling()) {
     CHECK_EQ(v8::EXTERNAL, isolate->current_vm_state());
     CHECK(isolate->external_callback_scope());
     CHECK_EQ(callback, isolate->external_callback_scope()->callback());
diff --git a/test/cctest/test-asm-validator.cc b/test/cctest/test-asm-validator.cc
index a07eecf..39d490e 100644
--- a/test/cctest/test-asm-validator.cc
+++ b/test/cctest/test-asm-validator.cc
@@ -1361,6 +1361,12 @@
       "asm: line 1: left and right side of comparison must match\n");
 }
 
+TEST(FunctionRepeated) {
+  CHECK_FUNC_ERROR(
+      "function foo() { return 0; }\n"
+      "function foo() { return 0; }",
+      "asm: line 2: function repeated in module\n");
+}
 
 TEST(Float64ToInt32) {
   CHECK_FUNC_TYPES_BEGIN(
diff --git a/test/cctest/test-assembler-s390.cc b/test/cctest/test-assembler-s390.cc
index dee8e07..ab6796b 100644
--- a/test/cctest/test-assembler-s390.cc
+++ b/test/cctest/test-assembler-s390.cc
@@ -202,7 +202,7 @@
   __ sll(r13, Operand(10));
 
   v8::internal::byte* bufPos = assm.buffer_pos();
-  ::printf("buffer position = %p", bufPos);
+  ::printf("buffer position = %p", static_cast<void*>(bufPos));
   ::fflush(stdout);
   // OS::DebugBreak();
 
diff --git a/test/cctest/test-assembler-x64.cc b/test/cctest/test-assembler-x64.cc
index e18ae71..00d3609 100644
--- a/test/cctest/test-assembler-x64.cc
+++ b/test/cctest/test-assembler-x64.cc
@@ -2296,4 +2296,24 @@
   }
 }
 
+TEST(AssemblerX64PslldWithXmm15) {
+  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));
+
+  __ movq(xmm15, arg1);
+  __ pslld(xmm15, 1);
+  __ movq(rax, xmm15);
+  __ ret(0);
+
+  CodeDesc desc;
+  assm.GetCode(&desc);
+  uint64_t result = FUNCTION_CAST<F5>(buffer)(V8_UINT64_C(0x1122334455667788));
+  CHECK_EQ(V8_UINT64_C(0x22446688aaccef10), result);
+}
+
 #undef __
diff --git a/test/cctest/test-code-cache.cc b/test/cctest/test-code-cache.cc
new file mode 100644
index 0000000..817fa15
--- /dev/null
+++ b/test/cctest/test-code-cache.cc
@@ -0,0 +1,77 @@
+// 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/list.h"
+#include "src/objects.h"
+#include "test/cctest/cctest.h"
+
+namespace v8 {
+namespace internal {
+
+namespace {
+
+static Handle<Code> GetDummyCode(Isolate* isolate) {
+  CodeDesc desc = {nullptr,   // buffer
+                   0,         // buffer_size
+                   0,         // instr_size
+                   0,         // reloc_size
+                   0,         // constant_pool_size
+                   nullptr,   // unwinding_info
+                   0,         // unwinding_info_size
+                   nullptr};  // origin
+  Code::Flags flags =
+      Code::ComputeFlags(Code::LOAD_IC, kNoExtraICState, kCacheOnReceiver);
+  Handle<Code> self_ref;
+  return isolate->factory()->NewCode(desc, flags, self_ref);
+}
+
+}  // namespace
+
+TEST(CodeCache) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  Factory* factory = isolate->factory();
+  HandleScope handle_scope(isolate);
+
+  Handle<Map> map =
+      factory->NewMap(JS_OBJECT_TYPE, JSObject::kHeaderSize, FAST_ELEMENTS);
+
+  // This number should be large enough to cause the code cache to use its
+  // hash table storage format.
+  static const int kEntries = 150;
+
+  // Prepare name/code pairs.
+  List<Handle<Name>> names(kEntries);
+  List<Handle<Code>> codes(kEntries);
+  for (int i = 0; i < kEntries; i++) {
+    names.Add(isolate->factory()->NewSymbol());
+    codes.Add(GetDummyCode(isolate));
+  }
+  Handle<Name> bad_name = isolate->factory()->NewSymbol();
+  Code::Flags bad_flags =
+      Code::ComputeFlags(Code::LOAD_IC, kNoExtraICState, kCacheOnPrototype);
+  DCHECK(bad_flags != codes[0]->flags());
+
+  // Cache name/code pairs.
+  for (int i = 0; i < kEntries; i++) {
+    Handle<Name> name = names.at(i);
+    Handle<Code> code = codes.at(i);
+    Map::UpdateCodeCache(map, name, code);
+    CHECK_EQ(*code, map->LookupInCodeCache(*name, code->flags()));
+    CHECK_NULL(map->LookupInCodeCache(*name, bad_flags));
+  }
+  CHECK_NULL(map->LookupInCodeCache(*bad_name, bad_flags));
+
+  // Check that lookup works not only right after storing.
+  for (int i = 0; i < kEntries; i++) {
+    Handle<Name> name = names.at(i);
+    Handle<Code> code = codes.at(i);
+    CHECK_EQ(*code, map->LookupInCodeCache(*name, code->flags()));
+  }
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/test-code-layout.cc b/test/cctest/test-code-layout.cc
new file mode 100644
index 0000000..a88c878
--- /dev/null
+++ b/test/cctest/test-code-layout.cc
@@ -0,0 +1,84 @@
+// 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/objects.h"
+#include "test/cctest/cctest.h"
+
+using namespace v8::internal;
+
+TEST(CodeLayoutWithoutUnwindingInfo) {
+  CcTest::InitializeVM();
+  HandleScope handle_scope(CcTest::i_isolate());
+
+  // "Hello, World!" in ASCII.
+  byte buffer_array[13] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20,
+                           0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21};
+
+  byte* buffer = &buffer_array[0];
+  int buffer_size = sizeof(buffer_array);
+
+  CodeDesc code_desc;
+  code_desc.buffer = buffer;
+  code_desc.buffer_size = buffer_size;
+  code_desc.constant_pool_size = 0;
+  code_desc.instr_size = buffer_size;
+  code_desc.reloc_size = 0;
+  code_desc.origin = nullptr;
+  code_desc.unwinding_info = nullptr;
+  code_desc.unwinding_info_size = 0;
+
+  Handle<Code> code = CcTest::i_isolate()->factory()->NewCode(
+      code_desc, 0, Handle<Object>::null());
+
+  CHECK(!code->has_unwinding_info());
+  CHECK_EQ(code->instruction_size(), buffer_size);
+  CHECK_EQ(memcmp(code->instruction_start(), buffer, buffer_size), 0);
+  CHECK_EQ(code->instruction_end() - reinterpret_cast<byte*>(*code),
+           Code::kHeaderSize + buffer_size - kHeapObjectTag);
+}
+
+TEST(CodeLayoutWithUnwindingInfo) {
+  CcTest::InitializeVM();
+  HandleScope handle_scope(CcTest::i_isolate());
+
+  // "Hello, World!" in ASCII.
+  byte buffer_array[13] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x2c, 0x20,
+                           0x57, 0x6f, 0x72, 0x6c, 0x64, 0x21};
+
+  // "JavaScript" in ASCII.
+  byte unwinding_info_array[10] = {0x4a, 0x61, 0x76, 0x61, 0x53,
+                                   0x63, 0x72, 0x69, 0x70, 0x74};
+
+  byte* buffer = &buffer_array[0];
+  int buffer_size = sizeof(buffer_array);
+  byte* unwinding_info = &unwinding_info_array[0];
+  int unwinding_info_size = sizeof(unwinding_info_array);
+
+  CodeDesc code_desc;
+  code_desc.buffer = buffer;
+  code_desc.buffer_size = buffer_size;
+  code_desc.constant_pool_size = 0;
+  code_desc.instr_size = buffer_size;
+  code_desc.reloc_size = 0;
+  code_desc.origin = nullptr;
+  code_desc.unwinding_info = unwinding_info;
+  code_desc.unwinding_info_size = unwinding_info_size;
+
+  Handle<Code> code = CcTest::i_isolate()->factory()->NewCode(
+      code_desc, 0, Handle<Object>::null());
+
+  CHECK(code->has_unwinding_info());
+  CHECK_EQ(code->instruction_size(), buffer_size);
+  CHECK_EQ(memcmp(code->instruction_start(), buffer, buffer_size), 0);
+  CHECK(IsAligned(code->GetUnwindingInfoSizeOffset(), 8));
+  CHECK_EQ(code->unwinding_info_size(), unwinding_info_size);
+  CHECK(
+      IsAligned(reinterpret_cast<uintptr_t>(code->unwinding_info_start()), 8));
+  CHECK_EQ(
+      memcmp(code->unwinding_info_start(), unwinding_info, unwinding_info_size),
+      0);
+  CHECK_EQ(code->unwinding_info_end() - reinterpret_cast<byte*>(*code),
+           Code::kHeaderSize + RoundUp(buffer_size, kInt64Size) + kInt64Size +
+               unwinding_info_size - kHeapObjectTag);
+}
diff --git a/test/cctest/test-code-stub-assembler.cc b/test/cctest/test-code-stub-assembler.cc
new file mode 100644
index 0000000..2d9b666
--- /dev/null
+++ b/test/cctest/test-code-stub-assembler.cc
@@ -0,0 +1,1375 @@
+// 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/base/utils/random-number-generator.h"
+#include "src/ic/stub-cache.h"
+#include "src/isolate.h"
+#include "test/cctest/compiler/code-assembler-tester.h"
+#include "test/cctest/compiler/function-tester.h"
+
+namespace v8 {
+namespace internal {
+
+using compiler::FunctionTester;
+using compiler::Node;
+
+typedef compiler::CodeAssemblerTesterImpl<CodeStubAssembler>
+    CodeStubAssemblerTester;
+
+TEST(FixedArrayAccessSmiIndex) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  Handle<FixedArray> array = isolate->factory()->NewFixedArray(5);
+  array->set(4, Smi::FromInt(733));
+  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();
+  CHECK_EQ(733, Handle<Smi>::cast(result.ToHandleChecked())->value());
+}
+
+TEST(LoadHeapNumberValue) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  Handle<HeapNumber> number = isolate->factory()->NewHeapNumber(1234);
+  m.Return(m.SmiTag(
+      m.ChangeFloat64ToUint32(m.LoadHeapNumberValue(m.HeapConstant(number)))));
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(descriptor, code);
+  MaybeHandle<Object> result = ft.Call();
+  CHECK_EQ(1234, Handle<Smi>::cast(result.ToHandleChecked())->value());
+}
+
+TEST(LoadInstanceType) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  Handle<HeapObject> undefined = isolate->factory()->undefined_value();
+  m.Return(m.SmiTag(m.LoadInstanceType(m.HeapConstant(undefined))));
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(descriptor, code);
+  MaybeHandle<Object> result = ft.Call();
+  CHECK_EQ(InstanceType::ODDBALL_TYPE,
+           Handle<Smi>::cast(result.ToHandleChecked())->value());
+}
+
+TEST(BitFieldDecode) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+
+  class TestBitField : public BitField<unsigned, 3, 3> {};
+  m.Return(m.SmiTag(m.BitFieldDecode<TestBitField>(m.Int32Constant(0x2f))));
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(descriptor, code);
+  MaybeHandle<Object> result = ft.Call();
+  // value  = 00101111
+  // mask   = 00111000
+  // result = 101
+  CHECK_EQ(5, Handle<Smi>::cast(result.ToHandleChecked())->value());
+}
+
+TEST(JSFunction) {
+  const int kNumParams = 3;  // Receiver, left, right.
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  CodeStubAssemblerTester m(isolate, kNumParams);
+  m.Return(m.SmiFromWord32(m.Int32Add(m.SmiToWord32(m.Parameter(1)),
+                                      m.SmiToWord32(m.Parameter(2)))));
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  MaybeHandle<Object> result = ft.Call(isolate->factory()->undefined_value(),
+                                       handle(Smi::FromInt(23), isolate),
+                                       handle(Smi::FromInt(34), isolate));
+  CHECK_EQ(57, Handle<Smi>::cast(result.ToHandleChecked())->value());
+}
+
+TEST(ComputeIntegerHash) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 2;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+  m.Return(m.SmiFromWord32(m.ComputeIntegerHash(
+      m.SmiToWord32(m.Parameter(0)), m.SmiToWord32(m.Parameter(1)))));
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Smi> hash_seed = isolate->factory()->hash_seed();
+
+  base::RandomNumberGenerator rand_gen(FLAG_random_seed);
+
+  for (int i = 0; i < 1024; i++) {
+    int k = rand_gen.NextInt(Smi::kMaxValue);
+
+    Handle<Smi> key(Smi::FromInt(k), isolate);
+    Handle<Object> result = ft.Call(key, hash_seed).ToHandleChecked();
+
+    uint32_t hash = ComputeIntegerHash(k, hash_seed->value());
+    Smi* expected = Smi::FromInt(hash & Smi::kMaxValue);
+    CHECK_EQ(expected, Smi::cast(*result));
+  }
+}
+
+TEST(TryToName) {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+
+  const int kNumParams = 3;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  enum Result { kKeyIsIndex, kKeyIsUnique, kBailout };
+  {
+    Node* key = m.Parameter(0);
+    Node* expected_result = m.Parameter(1);
+    Node* expected_arg = m.Parameter(2);
+
+    Label passed(&m), failed(&m);
+    Label if_keyisindex(&m), if_keyisunique(&m), if_bailout(&m);
+    Variable var_index(&m, MachineRepresentation::kWord32);
+
+    m.TryToName(key, &if_keyisindex, &var_index, &if_keyisunique, &if_bailout);
+
+    m.Bind(&if_keyisindex);
+    m.GotoUnless(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kKeyIsIndex))),
+        &failed);
+    m.Branch(m.Word32Equal(m.SmiToWord32(expected_arg), var_index.value()),
+             &passed, &failed);
+
+    m.Bind(&if_keyisunique);
+    m.GotoUnless(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kKeyIsUnique))),
+        &failed);
+    m.Branch(m.WordEqual(expected_arg, key), &passed, &failed);
+
+    m.Bind(&if_bailout);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kBailout))),
+        &passed, &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Object> expect_index(Smi::FromInt(kKeyIsIndex), isolate);
+  Handle<Object> expect_unique(Smi::FromInt(kKeyIsUnique), isolate);
+  Handle<Object> expect_bailout(Smi::FromInt(kBailout), isolate);
+
+  {
+    // TryToName(<zero smi>) => if_keyisindex: smi value.
+    Handle<Object> key(Smi::FromInt(0), isolate);
+    ft.CheckTrue(key, expect_index, key);
+  }
+
+  {
+    // TryToName(<positive smi>) => if_keyisindex: smi value.
+    Handle<Object> key(Smi::FromInt(153), isolate);
+    ft.CheckTrue(key, expect_index, key);
+  }
+
+  {
+    // TryToName(<negative smi>) => bailout.
+    Handle<Object> key(Smi::FromInt(-1), isolate);
+    ft.CheckTrue(key, expect_bailout);
+  }
+
+  {
+    // TryToName(<symbol>) => if_keyisunique: <symbol>.
+    Handle<Object> key = isolate->factory()->NewSymbol();
+    ft.CheckTrue(key, expect_unique, key);
+  }
+
+  {
+    // TryToName(<internalized string>) => if_keyisunique: <internalized string>
+    Handle<Object> key = isolate->factory()->InternalizeUtf8String("test");
+    ft.CheckTrue(key, expect_unique, key);
+  }
+
+  {
+    // TryToName(<internalized number string>) => if_keyisindex: number.
+    Handle<Object> key = isolate->factory()->InternalizeUtf8String("153");
+    Handle<Object> index(Smi::FromInt(153), isolate);
+    ft.CheckTrue(key, expect_index, index);
+  }
+
+  {
+    // TryToName(<non-internalized string>) => bailout.
+    Handle<Object> key = isolate->factory()->NewStringFromAsciiChecked("test");
+    ft.CheckTrue(key, expect_bailout);
+  }
+}
+
+namespace {
+
+template <typename Dictionary>
+void TestNameDictionaryLookup() {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+
+  const int kNumParams = 4;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  enum Result { kFound, kNotFound };
+  {
+    Node* dictionary = m.Parameter(0);
+    Node* unique_name = m.Parameter(1);
+    Node* expected_result = m.Parameter(2);
+    Node* expected_arg = m.Parameter(3);
+
+    Label passed(&m), failed(&m);
+    Label if_found(&m), if_not_found(&m);
+    Variable var_name_index(&m, MachineRepresentation::kWord32);
+
+    m.NameDictionaryLookup<Dictionary>(dictionary, unique_name, &if_found,
+                                       &var_name_index, &if_not_found);
+    m.Bind(&if_found);
+    m.GotoUnless(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kFound))),
+        &failed);
+    m.Branch(m.Word32Equal(m.SmiToWord32(expected_arg), var_name_index.value()),
+             &passed, &failed);
+
+    m.Bind(&if_not_found);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kNotFound))),
+        &passed, &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Object> expect_found(Smi::FromInt(kFound), isolate);
+  Handle<Object> expect_not_found(Smi::FromInt(kNotFound), isolate);
+
+  Handle<Dictionary> dictionary = Dictionary::New(isolate, 40);
+  PropertyDetails fake_details = PropertyDetails::Empty();
+
+  Factory* factory = isolate->factory();
+  Handle<Name> keys[] = {
+      factory->InternalizeUtf8String("0"),
+      factory->InternalizeUtf8String("42"),
+      factory->InternalizeUtf8String("-153"),
+      factory->InternalizeUtf8String("0.0"),
+      factory->InternalizeUtf8String("4.2"),
+      factory->InternalizeUtf8String(""),
+      factory->InternalizeUtf8String("name"),
+      factory->NewSymbol(),
+      factory->NewPrivateSymbol(),
+  };
+
+  for (size_t i = 0; i < arraysize(keys); i++) {
+    Handle<Object> value = factory->NewPropertyCell();
+    dictionary = Dictionary::Add(dictionary, keys[i], value, fake_details);
+  }
+
+  for (size_t i = 0; i < arraysize(keys); i++) {
+    int entry = dictionary->FindEntry(keys[i]);
+    int name_index =
+        Dictionary::EntryToIndex(entry) + Dictionary::kEntryKeyIndex;
+    CHECK_NE(Dictionary::kNotFound, entry);
+
+    Handle<Object> expected_name_index(Smi::FromInt(name_index), isolate);
+    ft.CheckTrue(dictionary, keys[i], expect_found, expected_name_index);
+  }
+
+  Handle<Name> non_existing_keys[] = {
+      factory->InternalizeUtf8String("1"),
+      factory->InternalizeUtf8String("-42"),
+      factory->InternalizeUtf8String("153"),
+      factory->InternalizeUtf8String("-1.0"),
+      factory->InternalizeUtf8String("1.3"),
+      factory->InternalizeUtf8String("a"),
+      factory->InternalizeUtf8String("boom"),
+      factory->NewSymbol(),
+      factory->NewPrivateSymbol(),
+  };
+
+  for (size_t i = 0; i < arraysize(non_existing_keys); i++) {
+    int entry = dictionary->FindEntry(non_existing_keys[i]);
+    CHECK_EQ(Dictionary::kNotFound, entry);
+
+    ft.CheckTrue(dictionary, non_existing_keys[i], expect_not_found);
+  }
+}
+
+}  // namespace
+
+TEST(NameDictionaryLookup) { TestNameDictionaryLookup<NameDictionary>(); }
+
+TEST(GlobalDictionaryLookup) { TestNameDictionaryLookup<GlobalDictionary>(); }
+
+namespace {
+
+template <typename Dictionary>
+void TestNumberDictionaryLookup() {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+
+  const int kNumParams = 4;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  enum Result { kFound, kNotFound };
+  {
+    Node* dictionary = m.Parameter(0);
+    Node* key = m.SmiToWord32(m.Parameter(1));
+    Node* expected_result = m.Parameter(2);
+    Node* expected_arg = m.Parameter(3);
+
+    Label passed(&m), failed(&m);
+    Label if_found(&m), if_not_found(&m);
+    Variable var_entry(&m, MachineRepresentation::kWord32);
+
+    m.NumberDictionaryLookup<Dictionary>(dictionary, key, &if_found, &var_entry,
+                                         &if_not_found);
+    m.Bind(&if_found);
+    m.GotoUnless(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kFound))),
+        &failed);
+    m.Branch(m.Word32Equal(m.SmiToWord32(expected_arg), var_entry.value()),
+             &passed, &failed);
+
+    m.Bind(&if_not_found);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kNotFound))),
+        &passed, &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Object> expect_found(Smi::FromInt(kFound), isolate);
+  Handle<Object> expect_not_found(Smi::FromInt(kNotFound), isolate);
+
+  const int kKeysCount = 1000;
+  Handle<Dictionary> dictionary = Dictionary::New(isolate, kKeysCount);
+  uint32_t keys[kKeysCount];
+
+  Handle<Object> fake_value(Smi::FromInt(42), isolate);
+  PropertyDetails fake_details = PropertyDetails::Empty();
+
+  base::RandomNumberGenerator rand_gen(FLAG_random_seed);
+
+  for (int i = 0; i < kKeysCount; i++) {
+    int random_key = rand_gen.NextInt(Smi::kMaxValue);
+    keys[i] = static_cast<uint32_t>(random_key);
+    if (dictionary->FindEntry(keys[i]) != Dictionary::kNotFound) continue;
+
+    dictionary = Dictionary::Add(dictionary, keys[i], fake_value, fake_details);
+  }
+
+  // Now try querying existing keys.
+  for (int i = 0; i < kKeysCount; i++) {
+    int entry = dictionary->FindEntry(keys[i]);
+    CHECK_NE(Dictionary::kNotFound, entry);
+
+    Handle<Object> key(Smi::FromInt(keys[i]), isolate);
+    Handle<Object> expected_entry(Smi::FromInt(entry), isolate);
+    ft.CheckTrue(dictionary, key, expect_found, expected_entry);
+  }
+
+  // Now try querying random keys which do not exist in the dictionary.
+  for (int i = 0; i < kKeysCount;) {
+    int random_key = rand_gen.NextInt(Smi::kMaxValue);
+    int entry = dictionary->FindEntry(random_key);
+    if (entry != Dictionary::kNotFound) continue;
+    i++;
+
+    Handle<Object> key(Smi::FromInt(random_key), isolate);
+    ft.CheckTrue(dictionary, key, expect_not_found);
+  }
+}
+
+}  // namespace
+
+TEST(SeededNumberDictionaryLookup) {
+  TestNumberDictionaryLookup<SeededNumberDictionary>();
+}
+
+TEST(UnseededNumberDictionaryLookup) {
+  TestNumberDictionaryLookup<UnseededNumberDictionary>();
+}
+
+namespace {
+
+void AddProperties(Handle<JSObject> object, Handle<Name> names[],
+                   size_t count) {
+  Isolate* isolate = object->GetIsolate();
+  for (size_t i = 0; i < count; i++) {
+    Handle<Object> value(Smi::FromInt(static_cast<int>(42 + i)), isolate);
+    JSObject::AddProperty(object, names[i], value, NONE);
+  }
+}
+
+Handle<AccessorPair> CreateAccessorPair(FunctionTester* ft,
+                                        const char* getter_body,
+                                        const char* setter_body) {
+  Handle<AccessorPair> pair = ft->isolate->factory()->NewAccessorPair();
+  if (getter_body) {
+    pair->set_getter(*ft->NewFunction(getter_body));
+  }
+  if (setter_body) {
+    pair->set_setter(*ft->NewFunction(setter_body));
+  }
+  return pair;
+}
+
+void AddProperties(Handle<JSObject> object, Handle<Name> names[],
+                   size_t names_count, Handle<Object> values[],
+                   size_t values_count, int seed = 0) {
+  Isolate* isolate = object->GetIsolate();
+  for (size_t i = 0; i < names_count; i++) {
+    Handle<Object> value = values[(seed + i) % values_count];
+    if (value->IsAccessorPair()) {
+      Handle<AccessorPair> pair = Handle<AccessorPair>::cast(value);
+      Handle<Object> getter(pair->getter(), isolate);
+      Handle<Object> setter(pair->setter(), isolate);
+      JSObject::DefineAccessor(object, names[i], getter, setter, NONE).Check();
+    } else {
+      JSObject::AddProperty(object, names[i], value, NONE);
+    }
+  }
+}
+
+}  // namespace
+
+TEST(TryHasOwnProperty) {
+  typedef CodeStubAssembler::Label Label;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+
+  const int kNumParams = 4;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  enum Result { kFound, kNotFound, kBailout };
+  {
+    Node* object = m.Parameter(0);
+    Node* unique_name = m.Parameter(1);
+    Node* expected_result = m.Parameter(2);
+
+    Label passed(&m), failed(&m);
+    Label if_found(&m), if_not_found(&m), if_bailout(&m);
+
+    Node* map = m.LoadMap(object);
+    Node* instance_type = m.LoadMapInstanceType(map);
+
+    m.TryHasOwnProperty(object, map, instance_type, unique_name, &if_found,
+                        &if_not_found, &if_bailout);
+
+    m.Bind(&if_found);
+    m.Branch(m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kFound))),
+             &passed, &failed);
+
+    m.Bind(&if_not_found);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kNotFound))),
+        &passed, &failed);
+
+    m.Bind(&if_bailout);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kBailout))),
+        &passed, &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Object> expect_found(Smi::FromInt(kFound), isolate);
+  Handle<Object> expect_not_found(Smi::FromInt(kNotFound), isolate);
+  Handle<Object> expect_bailout(Smi::FromInt(kBailout), isolate);
+
+  Factory* factory = isolate->factory();
+
+  Handle<Name> deleted_property_name =
+      factory->InternalizeUtf8String("deleted");
+
+  Handle<Name> names[] = {
+      factory->InternalizeUtf8String("a"),
+      factory->InternalizeUtf8String("bb"),
+      factory->InternalizeUtf8String("ccc"),
+      factory->InternalizeUtf8String("dddd"),
+      factory->InternalizeUtf8String("eeeee"),
+      factory->InternalizeUtf8String(""),
+      factory->InternalizeUtf8String("name"),
+      factory->NewSymbol(),
+      factory->NewPrivateSymbol(),
+  };
+
+  std::vector<Handle<JSObject>> objects;
+
+  {
+    // Fast object, no inobject properties.
+    int inobject_properties = 0;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names));
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Fast object, all inobject properties.
+    int inobject_properties = arraysize(names) * 2;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names));
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Fast object, half inobject properties.
+    int inobject_properties = arraysize(names) / 2;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names));
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Dictionary mode object.
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    Handle<JSObject> object = factory->NewJSObject(function);
+    AddProperties(object, names, arraysize(names));
+    JSObject::NormalizeProperties(object, CLEAR_INOBJECT_PROPERTIES, 0, "test");
+
+    JSObject::AddProperty(object, deleted_property_name, object, NONE);
+    CHECK(JSObject::DeleteProperty(object, deleted_property_name, SLOPPY)
+              .FromJust());
+
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK(object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Global object.
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    JSFunction::EnsureHasInitialMap(function);
+    function->initial_map()->set_instance_type(JS_GLOBAL_OBJECT_TYPE);
+    function->initial_map()->set_is_prototype_map(true);
+    function->initial_map()->set_dictionary_map(true);
+    Handle<JSObject> object = factory->NewJSGlobalObject(function);
+    AddProperties(object, names, arraysize(names));
+
+    JSObject::AddProperty(object, deleted_property_name, object, NONE);
+    CHECK(JSObject::DeleteProperty(object, deleted_property_name, SLOPPY)
+              .FromJust());
+
+    CHECK_EQ(JS_GLOBAL_OBJECT_TYPE, object->map()->instance_type());
+    CHECK(object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    for (Handle<JSObject> object : objects) {
+      for (size_t name_index = 0; name_index < arraysize(names); name_index++) {
+        Handle<Name> name = names[name_index];
+        CHECK(JSReceiver::HasProperty(object, name).FromJust());
+        ft.CheckTrue(object, name, expect_found);
+      }
+    }
+  }
+
+  {
+    Handle<Name> non_existing_names[] = {
+        factory->NewSymbol(),
+        factory->InternalizeUtf8String("ne_a"),
+        factory->InternalizeUtf8String("ne_bb"),
+        factory->NewPrivateSymbol(),
+        factory->InternalizeUtf8String("ne_ccc"),
+        factory->InternalizeUtf8String("ne_dddd"),
+        deleted_property_name,
+    };
+    for (Handle<JSObject> object : objects) {
+      for (size_t key_index = 0; key_index < arraysize(non_existing_names);
+           key_index++) {
+        Handle<Name> name = non_existing_names[key_index];
+        CHECK(!JSReceiver::HasProperty(object, name).FromJust());
+        ft.CheckTrue(object, name, expect_not_found);
+      }
+    }
+  }
+
+  {
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    Handle<JSProxy> object = factory->NewJSProxy(function, objects[0]);
+    CHECK_EQ(JS_PROXY_TYPE, object->map()->instance_type());
+    ft.CheckTrue(object, names[0], expect_bailout);
+  }
+
+  {
+    Handle<JSObject> object = isolate->global_proxy();
+    CHECK_EQ(JS_GLOBAL_PROXY_TYPE, object->map()->instance_type());
+    ft.CheckTrue(object, names[0], expect_bailout);
+  }
+}
+
+TEST(TryGetOwnProperty) {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  Factory* factory = isolate->factory();
+
+  const int kNumParams = 2;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  Handle<Symbol> not_found_symbol = factory->NewSymbol();
+  Handle<Symbol> bailout_symbol = factory->NewSymbol();
+  {
+    Node* object = m.Parameter(0);
+    Node* unique_name = m.Parameter(1);
+    Node* context = m.Parameter(kNumParams + 2);
+
+    Variable var_value(&m, MachineRepresentation::kTagged);
+    Label if_found(&m), if_not_found(&m), if_bailout(&m);
+
+    Node* map = m.LoadMap(object);
+    Node* instance_type = m.LoadMapInstanceType(map);
+
+    m.TryGetOwnProperty(context, object, object, map, instance_type,
+                        unique_name, &if_found, &var_value, &if_not_found,
+                        &if_bailout);
+
+    m.Bind(&if_found);
+    m.Return(var_value.value());
+
+    m.Bind(&if_not_found);
+    m.Return(m.HeapConstant(not_found_symbol));
+
+    m.Bind(&if_bailout);
+    m.Return(m.HeapConstant(bailout_symbol));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Handle<Name> deleted_property_name =
+      factory->InternalizeUtf8String("deleted");
+
+  Handle<Name> names[] = {
+      factory->InternalizeUtf8String("bb"),
+      factory->NewSymbol(),
+      factory->InternalizeUtf8String("a"),
+      factory->InternalizeUtf8String("ccc"),
+      factory->InternalizeUtf8String("esajefe"),
+      factory->NewPrivateSymbol(),
+      factory->InternalizeUtf8String("eeeee"),
+      factory->InternalizeUtf8String("p1"),
+      factory->InternalizeUtf8String("acshw23e"),
+      factory->InternalizeUtf8String(""),
+      factory->InternalizeUtf8String("dddd"),
+      factory->NewPrivateSymbol(),
+      factory->InternalizeUtf8String("name"),
+      factory->InternalizeUtf8String("p2"),
+      factory->InternalizeUtf8String("p3"),
+      factory->InternalizeUtf8String("p4"),
+      factory->NewPrivateSymbol(),
+  };
+  Handle<Object> values[] = {
+      factory->NewFunction(factory->empty_string()),
+      factory->NewSymbol(),
+      factory->InternalizeUtf8String("a"),
+      CreateAccessorPair(&ft, "() => 188;", "() => 199;"),
+      factory->NewFunction(factory->InternalizeUtf8String("bb")),
+      factory->InternalizeUtf8String("ccc"),
+      CreateAccessorPair(&ft, "() => 88;", nullptr),
+      handle(Smi::FromInt(1), isolate),
+      factory->InternalizeUtf8String(""),
+      CreateAccessorPair(&ft, nullptr, "() => 99;"),
+      factory->NewHeapNumber(4.2),
+      handle(Smi::FromInt(153), isolate),
+      factory->NewJSObject(factory->NewFunction(factory->empty_string())),
+      factory->NewPrivateSymbol(),
+  };
+  STATIC_ASSERT(arraysize(values) < arraysize(names));
+
+  base::RandomNumberGenerator rand_gen(FLAG_random_seed);
+
+  std::vector<Handle<JSObject>> objects;
+
+  {
+    // Fast object, no inobject properties.
+    int inobject_properties = 0;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names), values, arraysize(values),
+                  rand_gen.NextInt());
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Fast object, all inobject properties.
+    int inobject_properties = arraysize(names) * 2;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names), values, arraysize(values),
+                  rand_gen.NextInt());
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Fast object, half inobject properties.
+    int inobject_properties = arraysize(names) / 2;
+    Handle<Map> map = Map::Create(isolate, inobject_properties);
+    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+    AddProperties(object, names, arraysize(names), values, arraysize(values),
+                  rand_gen.NextInt());
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK_EQ(inobject_properties, object->map()->GetInObjectProperties());
+    CHECK(!object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Dictionary mode object.
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    Handle<JSObject> object = factory->NewJSObject(function);
+    AddProperties(object, names, arraysize(names), values, arraysize(values),
+                  rand_gen.NextInt());
+    JSObject::NormalizeProperties(object, CLEAR_INOBJECT_PROPERTIES, 0, "test");
+
+    JSObject::AddProperty(object, deleted_property_name, object, NONE);
+    CHECK(JSObject::DeleteProperty(object, deleted_property_name, SLOPPY)
+              .FromJust());
+
+    CHECK_EQ(JS_OBJECT_TYPE, object->map()->instance_type());
+    CHECK(object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  {
+    // Global object.
+    Handle<JSGlobalObject> object = isolate->global_object();
+    AddProperties(object, names, arraysize(names), values, arraysize(values),
+                  rand_gen.NextInt());
+
+    JSObject::AddProperty(object, deleted_property_name, object, NONE);
+    CHECK(JSObject::DeleteProperty(object, deleted_property_name, SLOPPY)
+              .FromJust());
+
+    CHECK_EQ(JS_GLOBAL_OBJECT_TYPE, object->map()->instance_type());
+    CHECK(object->map()->is_dictionary_map());
+    objects.push_back(object);
+  }
+
+  // TODO(ishell): test proxy and interceptors when they are supported.
+
+  {
+    for (Handle<JSObject> object : objects) {
+      for (size_t name_index = 0; name_index < arraysize(names); name_index++) {
+        Handle<Name> name = names[name_index];
+        Handle<Object> expected_value =
+            JSReceiver::GetProperty(object, name).ToHandleChecked();
+        Handle<Object> value = ft.Call(object, name).ToHandleChecked();
+        CHECK(expected_value->SameValue(*value));
+      }
+    }
+  }
+
+  {
+    Handle<Name> non_existing_names[] = {
+        factory->NewSymbol(),
+        factory->InternalizeUtf8String("ne_a"),
+        factory->InternalizeUtf8String("ne_bb"),
+        factory->NewPrivateSymbol(),
+        factory->InternalizeUtf8String("ne_ccc"),
+        factory->InternalizeUtf8String("ne_dddd"),
+        deleted_property_name,
+    };
+    for (Handle<JSObject> object : objects) {
+      for (size_t key_index = 0; key_index < arraysize(non_existing_names);
+           key_index++) {
+        Handle<Name> name = non_existing_names[key_index];
+        Handle<Object> expected_value =
+            JSReceiver::GetProperty(object, name).ToHandleChecked();
+        CHECK(expected_value->IsUndefined(isolate));
+        Handle<Object> value = ft.Call(object, name).ToHandleChecked();
+        CHECK_EQ(*not_found_symbol, *value);
+      }
+    }
+  }
+
+  {
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    Handle<JSProxy> object = factory->NewJSProxy(function, objects[0]);
+    CHECK_EQ(JS_PROXY_TYPE, object->map()->instance_type());
+    Handle<Object> value = ft.Call(object, names[0]).ToHandleChecked();
+    // Proxies are not supported yet.
+    CHECK_EQ(*bailout_symbol, *value);
+  }
+
+  {
+    Handle<JSObject> object = isolate->global_proxy();
+    CHECK_EQ(JS_GLOBAL_PROXY_TYPE, object->map()->instance_type());
+    // Global proxies are not supported yet.
+    Handle<Object> value = ft.Call(object, names[0]).ToHandleChecked();
+    CHECK_EQ(*bailout_symbol, *value);
+  }
+}
+
+namespace {
+
+void AddElement(Handle<JSObject> object, uint32_t index, Handle<Object> value,
+                PropertyAttributes attributes = NONE) {
+  JSObject::AddDataElement(object, index, value, attributes).ToHandleChecked();
+}
+
+}  // namespace
+
+TEST(TryLookupElement) {
+  typedef CodeStubAssembler::Label Label;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+
+  const int kNumParams = 3;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  enum Result { kFound, kNotFound, kBailout };
+  {
+    Node* object = m.Parameter(0);
+    Node* index = m.SmiToWord32(m.Parameter(1));
+    Node* expected_result = m.Parameter(2);
+
+    Label passed(&m), failed(&m);
+    Label if_found(&m), if_not_found(&m), if_bailout(&m);
+
+    Node* map = m.LoadMap(object);
+    Node* instance_type = m.LoadMapInstanceType(map);
+
+    m.TryLookupElement(object, map, instance_type, index, &if_found,
+                       &if_not_found, &if_bailout);
+
+    m.Bind(&if_found);
+    m.Branch(m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kFound))),
+             &passed, &failed);
+
+    m.Bind(&if_not_found);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kNotFound))),
+        &passed, &failed);
+
+    m.Bind(&if_bailout);
+    m.Branch(
+        m.WordEqual(expected_result, m.SmiConstant(Smi::FromInt(kBailout))),
+        &passed, &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Factory* factory = isolate->factory();
+  Handle<Object> smi0(Smi::FromInt(0), isolate);
+  Handle<Object> smi1(Smi::FromInt(1), isolate);
+  Handle<Object> smi7(Smi::FromInt(7), isolate);
+  Handle<Object> smi13(Smi::FromInt(13), isolate);
+  Handle<Object> smi42(Smi::FromInt(42), isolate);
+
+  Handle<Object> expect_found(Smi::FromInt(kFound), isolate);
+  Handle<Object> expect_not_found(Smi::FromInt(kNotFound), isolate);
+  Handle<Object> expect_bailout(Smi::FromInt(kBailout), isolate);
+
+#define CHECK_FOUND(object, index)                         \
+  CHECK(JSReceiver::HasElement(object, index).FromJust()); \
+  ft.CheckTrue(object, smi##index, expect_found);
+
+#define CHECK_NOT_FOUND(object, index)                      \
+  CHECK(!JSReceiver::HasElement(object, index).FromJust()); \
+  ft.CheckTrue(object, smi##index, expect_not_found);
+
+  {
+    Handle<JSArray> object = factory->NewJSArray(0, FAST_SMI_ELEMENTS);
+    AddElement(object, 0, smi0);
+    AddElement(object, 1, smi0);
+    CHECK_EQ(FAST_SMI_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_NOT_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+  {
+    Handle<JSArray> object = factory->NewJSArray(0, FAST_HOLEY_SMI_ELEMENTS);
+    AddElement(object, 0, smi0);
+    AddElement(object, 13, smi0);
+    CHECK_EQ(FAST_HOLEY_SMI_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_NOT_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+  {
+    Handle<JSArray> object = factory->NewJSArray(0, FAST_ELEMENTS);
+    AddElement(object, 0, smi0);
+    AddElement(object, 1, smi0);
+    CHECK_EQ(FAST_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_NOT_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+  {
+    Handle<JSArray> object = factory->NewJSArray(0, FAST_HOLEY_ELEMENTS);
+    AddElement(object, 0, smi0);
+    AddElement(object, 13, smi0);
+    CHECK_EQ(FAST_HOLEY_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_NOT_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+  {
+    Handle<JSFunction> constructor = isolate->string_function();
+    Handle<JSObject> object = factory->NewJSObject(constructor);
+    Handle<String> str = factory->InternalizeUtf8String("ab");
+    Handle<JSValue>::cast(object)->set_value(*str);
+    AddElement(object, 13, smi0);
+    CHECK_EQ(FAST_STRING_WRAPPER_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+  {
+    Handle<JSFunction> constructor = isolate->string_function();
+    Handle<JSObject> object = factory->NewJSObject(constructor);
+    Handle<String> str = factory->InternalizeUtf8String("ab");
+    Handle<JSValue>::cast(object)->set_value(*str);
+    AddElement(object, 13, smi0);
+    JSObject::NormalizeElements(object);
+    CHECK_EQ(SLOW_STRING_WRAPPER_ELEMENTS, object->map()->elements_kind());
+
+    CHECK_FOUND(object, 0);
+    CHECK_FOUND(object, 1);
+    CHECK_NOT_FOUND(object, 7);
+    CHECK_FOUND(object, 13);
+    CHECK_NOT_FOUND(object, 42);
+  }
+
+// TODO(ishell): uncomment once NO_ELEMENTS kind is supported.
+//  {
+//    Handle<Map> map = Map::Create(isolate, 0);
+//    map->set_elements_kind(NO_ELEMENTS);
+//    Handle<JSObject> object = factory->NewJSObjectFromMap(map);
+//    CHECK_EQ(NO_ELEMENTS, object->map()->elements_kind());
+//
+//    CHECK_NOT_FOUND(object, 0);
+//    CHECK_NOT_FOUND(object, 1);
+//    CHECK_NOT_FOUND(object, 7);
+//    CHECK_NOT_FOUND(object, 13);
+//    CHECK_NOT_FOUND(object, 42);
+//  }
+
+#undef CHECK_FOUND
+#undef CHECK_NOT_FOUND
+
+  {
+    Handle<JSArray> handler = factory->NewJSArray(0);
+    Handle<JSFunction> function = factory->NewFunction(factory->empty_string());
+    Handle<JSProxy> object = factory->NewJSProxy(function, handler);
+    CHECK_EQ(JS_PROXY_TYPE, object->map()->instance_type());
+    ft.CheckTrue(object, smi0, expect_bailout);
+  }
+
+  {
+    Handle<JSObject> object = isolate->global_object();
+    CHECK_EQ(JS_GLOBAL_OBJECT_TYPE, object->map()->instance_type());
+    ft.CheckTrue(object, smi0, expect_bailout);
+  }
+
+  {
+    Handle<JSObject> object = isolate->global_proxy();
+    CHECK_EQ(JS_GLOBAL_PROXY_TYPE, object->map()->instance_type());
+    ft.CheckTrue(object, smi0, expect_bailout);
+  }
+}
+
+TEST(DeferredCodePhiHints) {
+  typedef compiler::Node Node;
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  Label block1(&m, Label::kDeferred);
+  m.Goto(&block1);
+  m.Bind(&block1);
+  {
+    Variable var_object(&m, MachineRepresentation::kTagged);
+    Label loop(&m, &var_object);
+    var_object.Bind(m.IntPtrConstant(0));
+    m.Goto(&loop);
+    m.Bind(&loop);
+    {
+      Node* map = m.LoadMap(var_object.value());
+      var_object.Bind(map);
+      m.Goto(&loop);
+    }
+  }
+  CHECK(!m.GenerateCode().is_null());
+}
+
+TEST(TestOutOfScopeVariable) {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  VoidDescriptor descriptor(isolate);
+  CodeStubAssemblerTester m(isolate, descriptor);
+  Label block1(&m);
+  Label block2(&m);
+  Label block3(&m);
+  Label block4(&m);
+  m.Branch(m.WordEqual(m.Parameter(0), m.IntPtrConstant(0)), &block1, &block4);
+  m.Bind(&block4);
+  {
+    Variable var_object(&m, MachineRepresentation::kTagged);
+    m.Branch(m.WordEqual(m.Parameter(0), m.IntPtrConstant(0)), &block2,
+             &block3);
+
+    m.Bind(&block2);
+    var_object.Bind(m.IntPtrConstant(55));
+    m.Goto(&block1);
+
+    m.Bind(&block3);
+    var_object.Bind(m.IntPtrConstant(66));
+    m.Goto(&block1);
+  }
+  m.Bind(&block1);
+  CHECK(!m.GenerateCode().is_null());
+}
+
+namespace {
+
+void TestStubCacheOffsetCalculation(StubCache::Table table,
+                                    Code::Kind handler_kind) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 2;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  Code::Flags code_flags =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(handler_kind));
+  {
+    Node* name = m.Parameter(0);
+    Node* map = m.Parameter(1);
+    Node* primary_offset = m.StubCachePrimaryOffset(name, code_flags, map);
+    Node* result;
+    if (table == StubCache::kPrimary) {
+      result = primary_offset;
+    } else {
+      CHECK_EQ(StubCache::kSecondary, table);
+      result = m.StubCacheSecondaryOffset(name, code_flags, primary_offset);
+    }
+    m.Return(m.SmiFromWord32(result));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  Factory* factory = isolate->factory();
+  Handle<Name> names[] = {
+      factory->NewSymbol(),
+      factory->InternalizeUtf8String("a"),
+      factory->InternalizeUtf8String("bb"),
+      factory->InternalizeUtf8String("ccc"),
+      factory->NewPrivateSymbol(),
+      factory->InternalizeUtf8String("dddd"),
+      factory->InternalizeUtf8String("eeeee"),
+      factory->InternalizeUtf8String("name"),
+      factory->NewSymbol(),
+      factory->NewPrivateSymbol(),
+  };
+
+  Handle<Map> maps[] = {
+      Handle<Map>(nullptr, isolate),
+      factory->cell_map(),
+      Map::Create(isolate, 0),
+      factory->meta_map(),
+      factory->code_map(),
+      Map::Create(isolate, 0),
+      factory->hash_table_map(),
+      factory->symbol_map(),
+      factory->string_map(),
+      Map::Create(isolate, 0),
+      factory->sloppy_arguments_elements_map(),
+  };
+
+  for (int name_index = 0; name_index < arraysize(names); name_index++) {
+    Handle<Name> name = names[name_index];
+    for (int map_index = 0; map_index < arraysize(maps); map_index++) {
+      Handle<Map> map = maps[map_index];
+
+      int expected_result;
+      {
+        int primary_offset =
+            StubCache::PrimaryOffsetForTesting(*name, code_flags, *map);
+        if (table == StubCache::kPrimary) {
+          expected_result = primary_offset;
+        } else {
+          expected_result = StubCache::SecondaryOffsetForTesting(
+              *name, code_flags, primary_offset);
+        }
+      }
+      Handle<Object> result = ft.Call(name, map).ToHandleChecked();
+
+      Smi* expected = Smi::FromInt(expected_result & Smi::kMaxValue);
+      CHECK_EQ(expected, Smi::cast(*result));
+    }
+  }
+}
+
+}  // namespace
+
+TEST(StubCachePrimaryOffsetLoadIC) {
+  TestStubCacheOffsetCalculation(StubCache::kPrimary, Code::LOAD_IC);
+}
+
+TEST(StubCachePrimaryOffsetStoreIC) {
+  TestStubCacheOffsetCalculation(StubCache::kPrimary, Code::STORE_IC);
+}
+
+TEST(StubCacheSecondaryOffsetLoadIC) {
+  TestStubCacheOffsetCalculation(StubCache::kSecondary, Code::LOAD_IC);
+}
+
+TEST(StubCacheSecondaryOffsetStoreIC) {
+  TestStubCacheOffsetCalculation(StubCache::kSecondary, Code::STORE_IC);
+}
+
+namespace {
+
+Handle<Code> CreateCodeWithFlags(Code::Flags flags) {
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  CodeStubAssemblerTester m(isolate, flags);
+  m.Return(m.UndefinedConstant());
+  return m.GenerateCodeCloseAndEscape();
+}
+
+}  // namespace
+
+TEST(TryProbeStubCache) {
+  typedef CodeStubAssembler::Label Label;
+  typedef CodeStubAssembler::Variable Variable;
+  Isolate* isolate(CcTest::InitIsolateOnce());
+  const int kNumParams = 3;
+  CodeStubAssemblerTester m(isolate, kNumParams);
+
+  Code::Flags flags_to_query =
+      Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(Code::LOAD_IC));
+
+  StubCache stub_cache(isolate);
+  stub_cache.Clear();
+
+  {
+    Node* receiver = m.Parameter(0);
+    Node* name = m.Parameter(1);
+    Node* expected_handler = m.Parameter(2);
+
+    Label passed(&m), failed(&m);
+
+    Variable var_handler(&m, MachineRepresentation::kTagged);
+    Label if_handler(&m), if_miss(&m);
+
+    m.TryProbeStubCache(&stub_cache, flags_to_query, receiver, name,
+                        &if_handler, &var_handler, &if_miss);
+    m.Bind(&if_handler);
+    m.BranchIfWordEqual(expected_handler, var_handler.value(), &passed,
+                        &failed);
+
+    m.Bind(&if_miss);
+    m.BranchIfWordEqual(expected_handler, m.IntPtrConstant(0), &passed,
+                        &failed);
+
+    m.Bind(&passed);
+    m.Return(m.BooleanConstant(true));
+
+    m.Bind(&failed);
+    m.Return(m.BooleanConstant(false));
+  }
+
+  Handle<Code> code = m.GenerateCode();
+  FunctionTester ft(code, kNumParams);
+
+  std::vector<Handle<Name>> names;
+  std::vector<Handle<JSObject>> receivers;
+  std::vector<Handle<Code>> handlers;
+
+  base::RandomNumberGenerator rand_gen(FLAG_random_seed);
+
+  Factory* factory = isolate->factory();
+
+  // Generate some number of names.
+  for (int i = 0; i < StubCache::kPrimaryTableSize / 7; i++) {
+    Handle<Name> name;
+    switch (rand_gen.NextInt(3)) {
+      case 0: {
+        // Generate string.
+        std::stringstream ss;
+        ss << "s" << std::hex
+           << (rand_gen.NextInt(Smi::kMaxValue) % StubCache::kPrimaryTableSize);
+        name = factory->InternalizeUtf8String(ss.str().c_str());
+        break;
+      }
+      case 1: {
+        // Generate number string.
+        std::stringstream ss;
+        ss << (rand_gen.NextInt(Smi::kMaxValue) % StubCache::kPrimaryTableSize);
+        name = factory->InternalizeUtf8String(ss.str().c_str());
+        break;
+      }
+      case 2: {
+        // Generate symbol.
+        name = factory->NewSymbol();
+        break;
+      }
+      default:
+        UNREACHABLE();
+    }
+    names.push_back(name);
+  }
+
+  // Generate some number of receiver maps and receivers.
+  for (int i = 0; i < StubCache::kSecondaryTableSize / 2; i++) {
+    Handle<Map> map = Map::Create(isolate, 0);
+    receivers.push_back(factory->NewJSObjectFromMap(map));
+  }
+
+  // Generate some number of handlers.
+  for (int i = 0; i < 30; i++) {
+    Code::Kind code_kind;
+    switch (rand_gen.NextInt(4)) {
+      case 0:
+        code_kind = Code::LOAD_IC;
+        break;
+      case 1:
+        code_kind = Code::KEYED_LOAD_IC;
+        break;
+      case 2:
+        code_kind = Code::STORE_IC;
+        break;
+      case 3:
+        code_kind = Code::KEYED_STORE_IC;
+        break;
+      default:
+        UNREACHABLE();
+    }
+    Code::Flags flags =
+        Code::RemoveHolderFromFlags(Code::ComputeHandlerFlags(code_kind));
+    handlers.push_back(CreateCodeWithFlags(flags));
+  }
+
+  // Ensure that GC does happen because from now on we are going to fill our
+  // own stub cache instance with raw values.
+  DisallowHeapAllocation no_gc;
+
+  // Populate {stub_cache}.
+  const int N = StubCache::kPrimaryTableSize + StubCache::kSecondaryTableSize;
+  for (int i = 0; i < N; i++) {
+    int index = rand_gen.NextInt();
+    Handle<Name> name = names[index % names.size()];
+    Handle<JSObject> receiver = receivers[index % receivers.size()];
+    Handle<Code> handler = handlers[index % handlers.size()];
+    stub_cache.Set(*name, receiver->map(), *handler);
+  }
+
+  // Perform some queries.
+  bool queried_existing = false;
+  bool queried_non_existing = false;
+  for (int i = 0; i < N; i++) {
+    int index = rand_gen.NextInt();
+    Handle<Name> name = names[index % names.size()];
+    Handle<JSObject> receiver = receivers[index % receivers.size()];
+    Code* handler = stub_cache.Get(*name, receiver->map(), flags_to_query);
+    if (handler == nullptr) {
+      queried_non_existing = true;
+    } else {
+      queried_existing = true;
+    }
+
+    Handle<Code> expected_handler(handler, isolate);
+    ft.CheckTrue(receiver, name, expected_handler);
+  }
+
+  for (int i = 0; i < N; i++) {
+    int index1 = rand_gen.NextInt();
+    int index2 = rand_gen.NextInt();
+    Handle<Name> name = names[index1 % names.size()];
+    Handle<JSObject> receiver = receivers[index2 % receivers.size()];
+    Code* handler = stub_cache.Get(*name, receiver->map(), flags_to_query);
+    if (handler == nullptr) {
+      queried_non_existing = true;
+    } else {
+      queried_existing = true;
+    }
+
+    Handle<Code> expected_handler(handler, isolate);
+    ft.CheckTrue(receiver, name, expected_handler);
+  }
+  // Ensure we performed both kind of queries.
+  CHECK(queried_existing && queried_non_existing);
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/test-code-stubs-arm.cc b/test/cctest/test-code-stubs-arm.cc
index f59d854..0e0a132 100644
--- a/test/cctest/test-code-stubs-arm.cc
+++ b/test/cctest/test-code-stubs-arm.cc
@@ -78,8 +78,9 @@
   int source_reg_offset = kDoubleSize;
   int reg_num = 0;
   for (; reg_num < Register::kNumRegisters; ++reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         __ push(reg);
         source_reg_offset += kPointerSize;
@@ -107,8 +108,9 @@
 
   // Make sure no registers have been unexpectedly clobbered
   for (--reg_num; reg_num >= 0; --reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         __ ldr(ip, MemOperand(sp, 0));
         __ cmp(reg, ip);
diff --git a/test/cctest/test-code-stubs-arm64.cc b/test/cctest/test-code-stubs-arm64.cc
index f5a4078..2edb923 100644
--- a/test/cctest/test-code-stubs-arm64.cc
+++ b/test/cctest/test-code-stubs-arm64.cc
@@ -74,8 +74,9 @@
   int source_reg_offset = kDoubleSize;
   int reg_num = 0;
   for (; reg_num < Register::kNumRegisters; ++reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         queue.Queue(reg);
         source_reg_offset += kPointerSize;
@@ -103,8 +104,9 @@
 
   // // Make sure no registers have been unexpectedly clobbered
   for (--reg_num; reg_num >= 0; --reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         __ Pop(ip0);
         __ cmp(reg, ip0);
diff --git a/test/cctest/test-code-stubs-ia32.cc b/test/cctest/test-code-stubs-ia32.cc
index efc39e9..5a420b1 100644
--- a/test/cctest/test-code-stubs-ia32.cc
+++ b/test/cctest/test-code-stubs-ia32.cc
@@ -72,8 +72,9 @@
   // Save registers make sure they don't get clobbered.
   int reg_num = 0;
   for (; reg_num < Register::kNumRegisters; ++reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(esp) && !reg.is(ebp) && !reg.is(destination_reg)) {
         __ push(reg);
         param_offset += kPointerSize;
@@ -92,8 +93,9 @@
 
   // Make sure no registers have been unexpectedly clobbered
   for (--reg_num; reg_num >= 0; --reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(esp) && !reg.is(ebp) && !reg.is(destination_reg)) {
         __ cmp(reg, MemOperand(esp, 0));
         __ Assert(equal, kRegisterWasClobbered);
diff --git a/test/cctest/test-code-stubs-mips.cc b/test/cctest/test-code-stubs-mips.cc
index ce577da..149a174 100644
--- a/test/cctest/test-code-stubs-mips.cc
+++ b/test/cctest/test-code-stubs-mips.cc
@@ -82,8 +82,9 @@
   int source_reg_offset = kDoubleSize;
   int reg_num = 2;
   for (; reg_num < Register::kNumRegisters; ++reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         __ push(reg);
         source_reg_offset += kPointerSize;
@@ -111,8 +112,9 @@
 
   // Make sure no registers have been unexpectedly clobbered
   for (--reg_num; reg_num >= 2; --reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(destination_reg)) {
         __ lw(at, MemOperand(sp, 0));
         __ Assert(eq, kRegisterWasClobbered, reg, Operand(at));
diff --git a/test/cctest/test-code-stubs-mips64.cc b/test/cctest/test-code-stubs-mips64.cc
index 97f57b9..bef2171 100644
--- a/test/cctest/test-code-stubs-mips64.cc
+++ b/test/cctest/test-code-stubs-mips64.cc
@@ -81,8 +81,7 @@
   // Save registers make sure they don't get clobbered.
   int source_reg_offset = kDoubleSize;
   int reg_num = 2;
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   for (; reg_num < config->num_allocatable_general_registers(); ++reg_num) {
     Register reg = Register::from_code(reg_num);
     if (!reg.is(destination_reg)) {
diff --git a/test/cctest/test-code-stubs-x64.cc b/test/cctest/test-code-stubs-x64.cc
index 786da54..b9eddd6 100644
--- a/test/cctest/test-code-stubs-x64.cc
+++ b/test/cctest/test-code-stubs-x64.cc
@@ -64,9 +64,7 @@
   __ pushq(rsi);
   __ pushq(rdi);
 
-
-  const RegisterConfiguration* config =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::CRANKSHAFT);
+  const RegisterConfiguration* config = RegisterConfiguration::Crankshaft();
   if (!source_reg.is(rsp)) {
     // The argument we pass to the stub is not a heap number, but instead
     // stack-allocated and offset-wise made to look like a heap number for
diff --git a/test/cctest/test-code-stubs-x87.cc b/test/cctest/test-code-stubs-x87.cc
index efc39e9..5a420b1 100644
--- a/test/cctest/test-code-stubs-x87.cc
+++ b/test/cctest/test-code-stubs-x87.cc
@@ -72,8 +72,9 @@
   // Save registers make sure they don't get clobbered.
   int reg_num = 0;
   for (; reg_num < Register::kNumRegisters; ++reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(esp) && !reg.is(ebp) && !reg.is(destination_reg)) {
         __ push(reg);
         param_offset += kPointerSize;
@@ -92,8 +93,9 @@
 
   // Make sure no registers have been unexpectedly clobbered
   for (--reg_num; reg_num >= 0; --reg_num) {
-    Register reg = Register::from_code(reg_num);
-    if (reg.IsAllocatable()) {
+    if (RegisterConfiguration::Crankshaft()->IsAllocatableGeneralCode(
+            reg_num)) {
+      Register reg = Register::from_code(reg_num);
       if (!reg.is(esp) && !reg.is(ebp) && !reg.is(destination_reg)) {
         __ cmp(reg, MemOperand(esp, 0));
         __ Assert(equal, kRegisterWasClobbered);
diff --git a/test/cctest/test-compiler.cc b/test/cctest/test-compiler.cc
index 18f0009..28cdda7 100644
--- a/test/cctest/test-compiler.cc
+++ b/test/cctest/test-compiler.cc
@@ -32,6 +32,7 @@
 
 #include "src/compiler.h"
 #include "src/disasm.h"
+#include "src/interpreter/interpreter.h"
 #include "src/parsing/parser.h"
 #include "test/cctest/cctest.h"
 
@@ -305,7 +306,7 @@
   // We shouldn't have deoptimization support. We want to recompile and
   // verify that our feedback vector preserves information.
   CHECK(!f->shared()->has_deoptimization_support());
-  Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+  Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
 
   // Verify that we gathered feedback.
   CHECK(!feedback_vector->is_empty());
@@ -320,7 +321,7 @@
   // of the full code.
   CHECK(f->IsOptimized());
   CHECK(f->shared()->has_deoptimization_support());
-  object = f->shared()->feedback_vector()->Get(slot_for_a);
+  object = f->feedback_vector()->Get(slot_for_a);
   CHECK(object->IsWeakCell() &&
         WeakCell::cast(object)->value()->IsJSFunction());
 }
@@ -355,13 +356,13 @@
   // If we are compiling lazily then it should not be compiled, and so no
   // feedback vector allocated yet.
   CHECK(!f->shared()->is_compiled());
-  CHECK(f->shared()->feedback_vector()->is_empty());
+  CHECK(f->feedback_vector()->is_empty());
 
   CompileRun("morphing_call();");
 
   // Now a feedback vector is allocated.
   CHECK(f->shared()->is_compiled());
-  CHECK(!f->shared()->feedback_vector()->is_empty());
+  CHECK(!f->feedback_vector()->is_empty());
 }
 
 // Test that optimized code for different closures is actually shared.
@@ -757,3 +758,45 @@
   CheckCodeForUnsafeLiteral(GetJSFunction(context->Global(), "f"));
 }
 #endif
+
+static void IsBaselineCompiled(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
+  Handle<Object> object = v8::Utils::OpenHandle(*args[0]);
+  Handle<JSFunction> function = Handle<JSFunction>::cast(object);
+  bool is_baseline = function->shared()->code()->kind() == Code::FUNCTION;
+  return args.GetReturnValue().Set(is_baseline);
+}
+
+static void InstallIsBaselineCompiledHelper(v8::Isolate* isolate) {
+  v8::Local<v8::Context> context = isolate->GetCurrentContext();
+  v8::Local<v8::FunctionTemplate> t =
+      v8::FunctionTemplate::New(isolate, IsBaselineCompiled);
+  CHECK(context->Global()
+            ->Set(context, v8_str("IsBaselineCompiled"),
+                  t->GetFunction(context).ToLocalChecked())
+            .FromJust());
+}
+
+TEST(IgnitionBaselineOnReturn) {
+  FLAG_allow_natives_syntax = true;
+  FLAG_always_opt = false;
+  CcTest::InitializeVM();
+  FLAG_ignition = true;
+  reinterpret_cast<i::Isolate*>(CcTest::isolate())->interpreter()->Initialize();
+  v8::HandleScope scope(CcTest::isolate());
+  InstallIsBaselineCompiledHelper(CcTest::isolate());
+
+  CompileRun(
+      "var is_baseline_in_function, is_baseline_after_return;\n"
+      "var return_val;\n"
+      "function f() {\n"
+      "  %CompileBaseline(f);\n"
+      "  is_baseline_in_function = IsBaselineCompiled(f);\n"
+      "  return 1234;\n"
+      "};\n"
+      "return_val = f();\n"
+      "is_baseline_after_return = IsBaselineCompiled(f);\n");
+  CHECK_EQ(false, GetGlobalProperty("is_baseline_in_function")->BooleanValue());
+  CHECK_EQ(true, GetGlobalProperty("is_baseline_after_return")->BooleanValue());
+  CHECK_EQ(1234.0, GetGlobalProperty("return_val")->Number());
+}
diff --git a/test/cctest/test-cpu-profiler.cc b/test/cctest/test-cpu-profiler.cc
index e4eceec..3bdf8ad 100644
--- a/test/cctest/test-cpu-profiler.cc
+++ b/test/cctest/test-cpu-profiler.cc
@@ -31,12 +31,13 @@
 
 #include "include/v8-profiler.h"
 #include "src/base/platform/platform.h"
-#include "src/base/smart-pointers.h"
 #include "src/deoptimizer.h"
 #include "src/profiler/cpu-profiler-inl.h"
+#include "src/profiler/profiler-listener.h"
 #include "src/utils.h"
 #include "test/cctest/cctest.h"
 #include "test/cctest/profiler-extension.h"
+
 using i::CodeEntry;
 using i::CpuProfile;
 using i::CpuProfiler;
@@ -45,10 +46,9 @@
 using i::ProfileGenerator;
 using i::ProfileNode;
 using i::ProfilerEventsProcessor;
+using i::ProfilerListener;
 using i::ScopedVector;
 using i::Vector;
-using v8::base::SmartPointer;
-
 
 // Helper methods
 static v8::Local<v8::Function> GetFunction(v8::Local<v8::Context> env,
@@ -57,30 +57,26 @@
       env->Global()->Get(env, v8_str(name)).ToLocalChecked());
 }
 
-
 static size_t offset(const char* src, const char* substring) {
   const char* it = strstr(src, substring);
   CHECK(it);
   return static_cast<size_t>(it - src);
 }
 
-
 static const char* reason(const i::Deoptimizer::DeoptReason reason) {
   return i::Deoptimizer::GetDeoptReason(reason);
 }
 
-
 TEST(StartStop) {
-  i::Isolate* isolate = CcTest::i_isolate();
-  CpuProfilesCollection profiles(isolate->heap());
+  CpuProfilesCollection profiles(CcTest::i_isolate());
   ProfileGenerator generator(&profiles);
-  SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
-      &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
+  std::unique_ptr<ProfilerEventsProcessor> processor(
+      new ProfilerEventsProcessor(&generator, nullptr,
+                                  v8::base::TimeDelta::FromMicroseconds(100)));
   processor->Start();
   processor->StopSynchronously();
 }
 
-
 static void EnqueueTickSampleEvent(ProfilerEventsProcessor* proc,
                                    i::Address frame1,
                                    i::Address frame2 = NULL,
@@ -157,46 +153,55 @@
   i::AbstractCode* args3_code = CreateCode(&env);
   i::AbstractCode* args4_code = CreateCode(&env);
 
-  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate->heap());
+  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate);
+  ProfileGenerator* generator = new ProfileGenerator(profiles);
+  ProfilerEventsProcessor* processor = new ProfilerEventsProcessor(
+      generator, nullptr, v8::base::TimeDelta::FromMicroseconds(100));
+  CpuProfiler profiler(isolate, profiles, generator, processor);
   profiles->StartProfiling("", false);
-  ProfileGenerator generator(profiles);
-  SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
-          &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
   processor->Start();
-  CpuProfiler profiler(isolate, profiles, &generator, processor.get());
+  ProfilerListener profiler_listener(isolate);
+  isolate->code_event_dispatcher()->AddListener(&profiler_listener);
+  profiler_listener.AddObserver(&profiler);
 
   // Enqueue code creation events.
   const char* aaa_str = "aaa";
   i::Handle<i::String> aaa_name = factory->NewStringFromAsciiChecked(aaa_str);
-  profiler.CodeCreateEvent(i::Logger::FUNCTION_TAG, aaa_code, *aaa_name);
-  profiler.CodeCreateEvent(i::Logger::BUILTIN_TAG, comment_code, "comment");
-  profiler.CodeCreateEvent(i::Logger::STUB_TAG, args5_code, 5);
-  profiler.CodeCreateEvent(i::Logger::BUILTIN_TAG, comment2_code, "comment2");
-  profiler.CodeMoveEvent(comment2_code, moved_code->address());
-  profiler.CodeCreateEvent(i::Logger::STUB_TAG, args3_code, 3);
-  profiler.CodeCreateEvent(i::Logger::STUB_TAG, args4_code, 4);
+  profiler_listener.CodeCreateEvent(i::Logger::FUNCTION_TAG, aaa_code,
+                                    *aaa_name);
+  profiler_listener.CodeCreateEvent(i::Logger::BUILTIN_TAG, comment_code,
+                                    "comment");
+  profiler_listener.CodeCreateEvent(i::Logger::STUB_TAG, args5_code, 5);
+  profiler_listener.CodeCreateEvent(i::Logger::BUILTIN_TAG, comment2_code,
+                                    "comment2");
+  profiler_listener.CodeMoveEvent(comment2_code, moved_code->address());
+  profiler_listener.CodeCreateEvent(i::Logger::STUB_TAG, args3_code, 3);
+  profiler_listener.CodeCreateEvent(i::Logger::STUB_TAG, args4_code, 4);
 
   // Enqueue a tick event to enable code events processing.
-  EnqueueTickSampleEvent(processor.get(), aaa_code->address());
+  EnqueueTickSampleEvent(processor, aaa_code->address());
 
+  profiler_listener.RemoveObserver(&profiler);
+  isolate->code_event_dispatcher()->RemoveListener(&profiler_listener);
   processor->StopSynchronously();
 
   // Check the state of profile generator.
-  CodeEntry* aaa = generator.code_map()->FindEntry(aaa_code->address());
+  CodeEntry* aaa = generator->code_map()->FindEntry(aaa_code->address());
   CHECK(aaa);
   CHECK_EQ(0, strcmp(aaa_str, aaa->name()));
 
-  CodeEntry* comment = generator.code_map()->FindEntry(comment_code->address());
+  CodeEntry* comment =
+      generator->code_map()->FindEntry(comment_code->address());
   CHECK(comment);
   CHECK_EQ(0, strcmp("comment", comment->name()));
 
-  CodeEntry* args5 = generator.code_map()->FindEntry(args5_code->address());
+  CodeEntry* args5 = generator->code_map()->FindEntry(args5_code->address());
   CHECK(args5);
   CHECK_EQ(0, strcmp("5", args5->name()));
 
-  CHECK(!generator.code_map()->FindEntry(comment2_code->address()));
+  CHECK(!generator->code_map()->FindEntry(comment2_code->address()));
 
-  CodeEntry* comment2 = generator.code_map()->FindEntry(moved_code->address());
+  CodeEntry* comment2 = generator->code_map()->FindEntry(moved_code->address());
   CHECK(comment2);
   CHECK_EQ(0, strcmp("comment2", comment2->name()));
 }
@@ -216,29 +221,32 @@
   i::AbstractCode* frame2_code = CreateCode(&env);
   i::AbstractCode* frame3_code = CreateCode(&env);
 
-  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate->heap());
+  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate);
+  ProfileGenerator* generator = new ProfileGenerator(profiles);
+  ProfilerEventsProcessor* processor = new ProfilerEventsProcessor(
+      generator, nullptr, v8::base::TimeDelta::FromMicroseconds(100));
+  CpuProfiler profiler(isolate, profiles, generator, processor);
   profiles->StartProfiling("", false);
-  ProfileGenerator generator(profiles);
-  SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
-          &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
   processor->Start();
-  CpuProfiler profiler(isolate, profiles, &generator, processor.get());
+  ProfilerListener profiler_listener(isolate);
+  isolate->code_event_dispatcher()->AddListener(&profiler_listener);
+  profiler_listener.AddObserver(&profiler);
 
-  profiler.CodeCreateEvent(i::Logger::BUILTIN_TAG, frame1_code, "bbb");
-  profiler.CodeCreateEvent(i::Logger::STUB_TAG, frame2_code, 5);
-  profiler.CodeCreateEvent(i::Logger::BUILTIN_TAG, frame3_code, "ddd");
+  profiler_listener.CodeCreateEvent(i::Logger::BUILTIN_TAG, frame1_code, "bbb");
+  profiler_listener.CodeCreateEvent(i::Logger::STUB_TAG, frame2_code, 5);
+  profiler_listener.CodeCreateEvent(i::Logger::BUILTIN_TAG, frame3_code, "ddd");
 
-  EnqueueTickSampleEvent(processor.get(), frame1_code->instruction_start());
+  EnqueueTickSampleEvent(processor, frame1_code->instruction_start());
   EnqueueTickSampleEvent(
-      processor.get(),
+      processor,
       frame2_code->instruction_start() + frame2_code->ExecutableSize() / 2,
       frame1_code->instruction_start() + frame2_code->ExecutableSize() / 2);
-  EnqueueTickSampleEvent(
-      processor.get(),
-      frame3_code->instruction_end() - 1,
-      frame2_code->instruction_end() - 1,
-      frame1_code->instruction_end() - 1);
+  EnqueueTickSampleEvent(processor, frame3_code->instruction_end() - 1,
+                         frame2_code->instruction_end() - 1,
+                         frame1_code->instruction_end() - 1);
 
+  profiler_listener.RemoveObserver(&profiler);
+  isolate->code_event_dispatcher()->RemoveListener(&profiler_listener);
   processor->StopSynchronously();
   CpuProfile* profile = profiles->StopProfiling("");
   CHECK(profile);
@@ -259,6 +267,8 @@
   const i::List<ProfileNode*>* top_down_ddd_children =
       top_down_stub_children->last()->children();
   CHECK_EQ(0, top_down_ddd_children->length());
+
+  isolate->code_event_dispatcher()->RemoveListener(&profiler_listener);
 }
 
 // http://crbug/51594
@@ -283,15 +293,18 @@
 
   i::AbstractCode* code = CreateCode(&env);
 
-  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate->heap());
+  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate);
+  ProfileGenerator* generator = new ProfileGenerator(profiles);
+  ProfilerEventsProcessor* processor = new ProfilerEventsProcessor(
+      generator, nullptr, v8::base::TimeDelta::FromMicroseconds(100));
+  CpuProfiler profiler(isolate, profiles, generator, processor);
   profiles->StartProfiling("", false);
-  ProfileGenerator generator(profiles);
-  SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
-          &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
   processor->Start();
-  CpuProfiler profiler(isolate, profiles, &generator, processor.get());
+  ProfilerListener profiler_listener(isolate);
+  isolate->code_event_dispatcher()->AddListener(&profiler_listener);
+  profiler_listener.AddObserver(&profiler);
 
-  profiler.CodeCreateEvent(i::Logger::BUILTIN_TAG, code, "bbb");
+  profiler_listener.CodeCreateEvent(i::Logger::BUILTIN_TAG, code, "bbb");
 
   i::TickSample* sample = processor->StartTickSample();
   sample->pc = code->address();
@@ -302,6 +315,8 @@
   }
   processor->FinishTickSample();
 
+  profiler_listener.RemoveObserver(&profiler);
+  isolate->code_event_dispatcher()->RemoveListener(&profiler_listener);
   processor->StopSynchronously();
   CpuProfile* profile = profiles->StopProfiling("");
   CHECK(profile);
@@ -422,7 +437,7 @@
   cpu_profiler->SetSamplingInterval(100);
   cpu_profiler->StartProfiling(profile_name, collect_samples);
 
-  i::Sampler* sampler =
+  v8::sampler::Sampler* sampler =
       reinterpret_cast<i::Isolate*>(env->GetIsolate())->logger()->sampler();
   sampler->StartCountingSamples();
   do {
@@ -1021,31 +1036,36 @@
   i::Address code_address = code->instruction_start();
   CHECK(code_address);
 
-  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate->heap());
+  CpuProfilesCollection* profiles = new CpuProfilesCollection(isolate);
+  ProfileGenerator* generator = new ProfileGenerator(profiles);
+  ProfilerEventsProcessor* processor = new ProfilerEventsProcessor(
+      generator, nullptr, v8::base::TimeDelta::FromMicroseconds(100));
+  CpuProfiler profiler(isolate, profiles, generator, processor);
   profiles->StartProfiling("", false);
-  ProfileGenerator generator(profiles);
-  SmartPointer<ProfilerEventsProcessor> processor(new ProfilerEventsProcessor(
-      &generator, NULL, v8::base::TimeDelta::FromMicroseconds(100)));
   processor->Start();
-  CpuProfiler profiler(isolate, profiles, &generator, processor.get());
+  ProfilerListener profiler_listener(isolate);
+  isolate->code_event_dispatcher()->AddListener(&profiler_listener);
+  profiler_listener.AddObserver(&profiler);
 
   // Enqueue code creation events.
   i::Handle<i::String> str = factory->NewStringFromAsciiChecked(func_name);
   int line = 1;
   int column = 1;
-  profiler.CodeCreateEvent(i::Logger::FUNCTION_TAG, code, func->shared(), *str,
-                           line, column);
+  profiler_listener.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);
+  EnqueueTickSampleEvent(processor, code_address);
 
+  profiler_listener.RemoveObserver(&profiler);
+  isolate->code_event_dispatcher()->RemoveListener(&profiler_listener);
   processor->StopSynchronously();
 
   CpuProfile* profile = profiles->StopProfiling("");
   CHECK(profile);
 
   // Check the state of profile generator.
-  CodeEntry* func_entry = generator.code_map()->FindEntry(code_address);
+  CodeEntry* func_entry = generator->code_map()->FindEntry(code_address);
   CHECK(func_entry);
   CHECK_EQ(0, strcmp(func_name, func_entry->name()));
   const i::JITLineInfoTable* line_info = func_entry->line_info();
@@ -1131,8 +1151,8 @@
   const v8::CpuProfileNode* start_node = GetChild(env.local(), root, "start");
   GetChild(env.local(), start_node, "bar");
 
-  const v8::CpuProfileNode* unresolved_node = FindChild(
-      env.local(), root, i::ProfileGenerator::kUnresolvedFunctionName);
+  const v8::CpuProfileNode* unresolved_node =
+      FindChild(env.local(), root, i::CodeEntry::kUnresolvedFunctionName);
   CHECK(!unresolved_node || GetChild(env.local(), unresolved_node, "call"));
 
   profile->Delete();
@@ -1187,8 +1207,8 @@
       GetChild(env.local(), start_node, "test");
   GetChild(env.local(), test_node, "bar");
 
-  const v8::CpuProfileNode* unresolved_node = FindChild(
-      env.local(), start_node, ProfileGenerator::kUnresolvedFunctionName);
+  const v8::CpuProfileNode* unresolved_node =
+      FindChild(env.local(), start_node, CodeEntry::kUnresolvedFunctionName);
   CHECK(!unresolved_node || GetChild(env.local(), unresolved_node, "apply"));
 
   profile->Delete();
@@ -1595,12 +1615,12 @@
 
   const v8::CpuProfileNode* root = profile->GetTopDownRoot();
   const v8::CpuProfileNode* program_node =
-      GetChild(env.local(), root, ProfileGenerator::kProgramEntryName);
+      GetChild(env.local(), root, CodeEntry::kProgramEntryName);
   CHECK_EQ(0, program_node->GetChildrenCount());
   CHECK_GE(program_node->GetHitCount(), 2u);
 
   const v8::CpuProfileNode* idle_node =
-      GetChild(env.local(), root, ProfileGenerator::kIdleEntryName);
+      GetChild(env.local(), root, CodeEntry::kIdleEntryName);
   CHECK_EQ(0, idle_node->GetChildrenCount());
   CHECK_GE(idle_node->GetHitCount(), 3u);
 
diff --git a/test/cctest/test-date.cc b/test/cctest/test-date.cc
index 67b9501..a745949 100644
--- a/test/cctest/test-date.cc
+++ b/test/cctest/test-date.cc
@@ -166,3 +166,52 @@
   CheckDST(august_20 + 2 * 3600 - 1000);
   CheckDST(august_20);
 }
+
+namespace {
+int legacy_parse_count = 0;
+void DateParseLegacyCounterCallback(v8::Isolate* isolate,
+                                    v8::Isolate::UseCounterFeature feature) {
+  if (feature == v8::Isolate::kLegacyDateParser) legacy_parse_count++;
+}
+}  // anonymous namespace
+
+TEST(DateParseLegacyUseCounter) {
+  CcTest::InitializeVM();
+  v8::HandleScope scope(CcTest::isolate());
+  LocalContext context;
+  CcTest::isolate()->SetUseCounterCallback(DateParseLegacyCounterCallback);
+  CHECK_EQ(0, legacy_parse_count);
+  CompileRun("Date.parse('2015-02-31')");
+  CHECK_EQ(0, legacy_parse_count);
+  CompileRun("Date.parse('2015-02-31T11:22:33.444Z01:23')");
+  CHECK_EQ(0, legacy_parse_count);
+  CompileRun("Date.parse('2015-02-31T11:22:33.444')");
+  CHECK_EQ(0, legacy_parse_count);
+  CompileRun("Date.parse('2000 01 01')");
+  CHECK_EQ(1, legacy_parse_count);
+  CompileRun("Date.parse('2015-02-31T11:22:33.444     ')");
+  CHECK_EQ(1, legacy_parse_count);
+}
+
+#ifdef V8_I18N_SUPPORT
+TEST(DateCacheVersion) {
+  FLAG_allow_natives_syntax = true;
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::Isolate::Scope isolate_scope(isolate);
+  v8::HandleScope scope(isolate);
+  v8::Local<v8::Context> context = v8::Context::New(isolate);
+  v8::Context::Scope context_scope(context);
+  v8::Local<v8::Number> date_cache_version =
+      v8::Local<v8::Number>::Cast(CompileRun("%DateCacheVersion()"));
+
+  CHECK(date_cache_version->IsNumber());
+  CHECK_EQ(0.0, date_cache_version->NumberValue(context).FromMaybe(-1.0));
+
+  v8::Date::DateTimeConfigurationChangeNotification(isolate);
+
+  date_cache_version =
+      v8::Local<v8::Number>::Cast(CompileRun("%DateCacheVersion()"));
+  CHECK(date_cache_version->IsNumber());
+  CHECK_EQ(1.0, date_cache_version->NumberValue(context).FromMaybe(-1.0));
+}
+#endif  // V8_I18N_SUPPORT
diff --git a/test/cctest/test-debug.cc b/test/cctest/test-debug.cc
index 440c6f1..3ed6ec8 100644
--- a/test/cctest/test-debug.cc
+++ b/test/cctest/test-debug.cc
@@ -6081,53 +6081,48 @@
   ::v8::internal::EmbeddedVector<uint16_t, 1> empty_;
 };
 
-
-TEST(DebugGetLoadedScripts) {
+TEST(DebugScriptLineEndsAreAscending) {
   DebugLocalContext env;
-  v8::HandleScope scope(env->GetIsolate());
+  v8::Isolate* isolate = env->GetIsolate();
+  v8::HandleScope scope(isolate);
   env.ExposeDebug();
 
-  v8::Local<v8::Context> context = env.context();
-  EmptyExternalStringResource source_ext_str;
-  v8::Local<v8::String> source =
-      v8::String::NewExternalTwoByte(env->GetIsolate(), &source_ext_str)
-          .ToLocalChecked();
-  CHECK(v8::Script::Compile(context, source).IsEmpty());
-  Handle<i::ExternalTwoByteString> i_source(
-      i::ExternalTwoByteString::cast(*v8::Utils::OpenHandle(*source)));
-  // This situation can happen if source was an external string disposed
-  // by its owner.
-  i_source->set_resource(0);
+  // Compile a test script.
+  v8::Local<v8::String> script = v8_str(isolate,
+                                        "function f() {\n"
+                                        "  debugger;\n"
+                                        "}\n");
 
-  bool allow_natives_syntax = i::FLAG_allow_natives_syntax;
-  i::FLAG_allow_natives_syntax = true;
-  EnableDebugger(env->GetIsolate());
-  v8::MaybeLocal<v8::Value> result =
-      CompileRun(env.context(),
-                 "var scripts = %DebugGetLoadedScripts();"
-                 "var count = scripts.length;"
-                 "for (var i = 0; i < count; ++i) {"
-                 "  var lines = scripts[i].lineCount();"
-                 "  if (lines < 1) throw 'lineCount';"
-                 "  var last = -1;"
-                 "  for (var j = 0; j < lines; ++j) {"
-                 "    var end = scripts[i].lineEnd(j);"
-                 "    if (last >= end) throw 'lineEnd';"
-                 "    last = end;"
-                 "  }"
-                 "}");
-  CHECK(!result.IsEmpty());
-  DisableDebugger(env->GetIsolate());
-  // Must not crash while accessing line_ends.
-  i::FLAG_allow_natives_syntax = allow_natives_syntax;
+  v8::ScriptOrigin origin1 = v8::ScriptOrigin(v8_str(isolate, "name"));
+  v8::Local<v8::Script> script1 =
+      v8::Script::Compile(env.context(), script, &origin1).ToLocalChecked();
+  USE(script1);
 
-  // Some scripts are retrieved - at least the number of native scripts.
-  CHECK_GT(env->Global()
-               ->Get(context, v8_str(env->GetIsolate(), "count"))
-               .ToLocalChecked()
-               ->Int32Value(context)
-               .FromJust(),
-           8);
+  Handle<v8::internal::FixedArray> instances;
+  {
+    v8::internal::Debug* debug = CcTest::i_isolate()->debug();
+    v8::internal::DebugScope debug_scope(debug);
+    CHECK(!debug_scope.failed());
+    instances = debug->GetLoadedScripts();
+  }
+
+  CHECK_GT(instances->length(), 0);
+  for (int i = 0; i < instances->length(); i++) {
+    Handle<v8::internal::Script> script = Handle<v8::internal::Script>(
+        v8::internal::Script::cast(instances->get(i)));
+
+    v8::internal::Script::InitLineEnds(script);
+    v8::internal::FixedArray* ends =
+        v8::internal::FixedArray::cast(script->line_ends());
+    CHECK_GT(ends->length(), 0);
+
+    int prev_end = -1;
+    for (int j = 0; j < ends->length(); j++) {
+      const int curr_end = v8::internal::Smi::cast(ends->get(j))->value();
+      CHECK_GT(curr_end, prev_end);
+      prev_end = curr_end;
+    }
+  }
 }
 
 
@@ -7185,6 +7180,40 @@
   CHECK(context.IsEmpty());
 }
 
+static void DebugEventCheckContext(
+    const v8::Debug::EventDetails& event_details) {
+  if (event_details.GetEvent() == v8::Break) {
+    v8::Isolate* isolate = event_details.GetIsolate();
+    CHECK(v8::Debug::GetDebuggedContext(isolate)
+              .ToLocalChecked()
+              ->Global()
+              ->Equals(isolate->GetCurrentContext(),
+                       event_details.GetEventContext()->Global())
+              .FromJust());
+  }
+}
+
+static void CheckContext(const v8::FunctionCallbackInfo<v8::Value>& args) {
+  CHECK(v8::Debug::GetDebuggedContext(args.GetIsolate()).IsEmpty());
+}
+
+TEST(DebuggedContext) {
+  DebugLocalContext env;
+  v8::Isolate* isolate = env->GetIsolate();
+
+  v8::Debug::SetDebugEventListener(isolate, DebugEventCheckContext);
+
+  v8::Local<v8::Function> foo =
+      CompileFunction(&env, "function foo(){bar=0;}", "foo");
+
+  SetBreakPoint(foo, 0);
+  foo->Call(env.context(), env->Global(), 0, nullptr).ToLocalChecked();
+
+  v8::Local<v8::Function> fun = v8::FunctionTemplate::New(isolate, CheckContext)
+                                    ->GetFunction(env.context())
+                                    .ToLocalChecked();
+  fun->Call(env.context(), env->Global(), 0, nullptr).ToLocalChecked();
+}
 
 static v8::Local<v8::Value> expected_callback_data;
 static void DebugEventContextChecker(const v8::Debug::EventDetails& details) {
diff --git a/test/cctest/test-dictionary.cc b/test/cctest/test-dictionary.cc
index cc4a753..28adc7b 100644
--- a/test/cctest/test-dictionary.cc
+++ b/test/cctest/test-dictionary.cc
@@ -35,7 +35,7 @@
 #include "src/global-handles.h"
 #include "src/macro-assembler.h"
 #include "src/objects.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 
@@ -89,7 +89,7 @@
   // code should not be found.
   for (int i = 0; i < 100; i++) {
     Handle<JSReceiver> key = factory->NewJSArray(7);
-    CHECK(JSReceiver::GetOrCreateIdentityHash(key)->IsSmi());
+    CHECK(JSReceiver::GetOrCreateIdentityHash(isolate, key)->IsSmi());
     CHECK_EQ(table->FindEntry(key), HashMap::kNotFound);
     CHECK_EQ(table->Lookup(key), CcTest::heap()->the_hole_value());
     CHECK(JSReceiver::GetIdentityHash(isolate, key)->IsSmi());
@@ -100,8 +100,8 @@
   for (int i = 0; i < 100; i++) {
     Handle<JSReceiver> key = factory->NewJSArray(7);
     CHECK_EQ(table->Lookup(key), CcTest::heap()->the_hole_value());
-    Handle<Object> identity_hash = JSReceiver::GetIdentityHash(isolate, key);
-    CHECK_EQ(CcTest::heap()->undefined_value(), *identity_hash);
+    Object* identity_hash = JSReceiver::GetIdentityHash(isolate, key);
+    CHECK_EQ(CcTest::heap()->undefined_value(), identity_hash);
   }
 }
 
@@ -175,8 +175,8 @@
 
   // Simulate a full heap so that generating an identity hash code
   // in subsequent calls will request GC.
-  SimulateFullSpace(CcTest::heap()->new_space());
-  SimulateFullSpace(CcTest::heap()->old_space());
+  heap::SimulateFullSpace(CcTest::heap()->new_space());
+  heap::SimulateFullSpace(CcTest::heap()->old_space());
 
   // Calling Contains() should not cause GC ever.
   int gc_count = isolate->heap()->gc_count();
@@ -206,11 +206,11 @@
 
   // Simulate a full heap so that generating an identity hash code
   // in subsequent calls will request GC.
-  SimulateFullSpace(CcTest::heap()->new_space());
-  SimulateFullSpace(CcTest::heap()->old_space());
+  heap::SimulateFullSpace(CcTest::heap()->new_space());
+  heap::SimulateFullSpace(CcTest::heap()->old_space());
 
   // Calling Lookup() should not cause GC ever.
-  CHECK(table->Lookup(key)->IsTheHole());
+  CHECK(table->Lookup(key)->IsTheHole(isolate));
 
   // Calling Put() should request GC by returning a failure.
   int gc_count = isolate->heap()->gc_count();
diff --git a/test/cctest/test-disasm-arm.cc b/test/cctest/test-disasm-arm.cc
index 40745f9..d5f5949 100644
--- a/test/cctest/test-disasm-arm.cc
+++ b/test/cctest/test-disasm-arm.cc
@@ -1171,3 +1171,17 @@
 
   VERIFY_RUN();
 }
+
+
+TEST(LoadStoreExclusive) {
+  SET_UP();
+
+  COMPARE(ldrexb(r0, r1), "e1d10f9f       ldrexb r0, [r1]");
+  COMPARE(strexb(r0, r1, r2), "e1c20f91       strexb r0, r1, [r2]");
+  COMPARE(ldrexh(r0, r1), "e1f10f9f       ldrexh r0, [r1]");
+  COMPARE(strexh(r0, r1, r2), "e1e20f91       strexh r0, r1, [r2]");
+  COMPARE(ldrex(r0, r1), "e1910f9f       ldrex r0, [r1]");
+  COMPARE(strex(r0, r1, r2), "e1820f91       strex r0, r1, [r2]");
+
+  VERIFY_RUN();
+}
diff --git a/test/cctest/test-disasm-arm64.cc b/test/cctest/test-disasm-arm64.cc
index beca93e..c3653bd 100644
--- a/test/cctest/test-disasm-arm64.cc
+++ b/test/cctest/test-disasm-arm64.cc
@@ -1259,6 +1259,24 @@
   CLEANUP();
 }
 
+TEST_(load_store_acquire_release) {
+  SET_UP_MASM();
+
+  COMPARE(ldar(w0, x1), "ldar w0, [x1]");
+  COMPARE(ldarb(w2, x3), "ldarb w2, [x3]");
+  COMPARE(ldarh(w4, x5), "ldarh w4, [x5]");
+  COMPARE(ldaxr(w6, x7), "ldaxr w6, [x7]");
+  COMPARE(ldaxrb(w8, x9), "ldaxrb w8, [x9]");
+  COMPARE(ldaxrh(w10, x11), "ldaxrh w10, [x11]");
+  COMPARE(stlr(w12, x13), "stlr w12, [x13]");
+  COMPARE(stlrb(w14, x15), "stlrb w14, [x15]");
+  COMPARE(stlrh(w16, x17), "stlrh w16, [x17]");
+  COMPARE(stlxr(w18, w19, x20), "stlxr w18, w19, [x20]");
+  COMPARE(stlxrb(w21, w22, x23), "stlxrb w21, w22, [x23]");
+  COMPARE(stlxrh(w24, w25, x26), "stlxrh w24, w25, [x26]");
+
+  CLEANUP();
+}
 
 #if 0  // TODO(all): enable.
 TEST_(load_literal) {
diff --git a/test/cctest/test-disasm-ia32.cc b/test/cctest/test-disasm-ia32.cc
index 3ecd7b3..5bd11bc 100644
--- a/test/cctest/test-disasm-ia32.cc
+++ b/test/cctest/test-disasm-ia32.cc
@@ -290,7 +290,7 @@
   __ bind(&L2);
   __ call(Operand(ebx, ecx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
+  Handle<Code> ic(CodeFactory::LoadIC(isolate).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ call(FUNCTION_ADDR(DummyStaticFunction), RelocInfo::RUNTIME_ENTRY);
@@ -665,12 +665,30 @@
 
   // xchg.
   {
+    __ xchg_b(eax, Operand(eax, 8));
+    __ xchg_w(eax, Operand(ebx, 8));
     __ xchg(eax, eax);
     __ xchg(eax, ebx);
     __ xchg(ebx, ebx);
     __ xchg(ebx, Operand(esp, 12));
   }
 
+  // cmpxchg.
+  {
+    __ cmpxchg_b(Operand(esp, 12), eax);
+    __ cmpxchg_w(Operand(ebx, ecx, times_4, 10000), eax);
+    __ cmpxchg(Operand(ebx, ecx, times_4, 10000), eax);
+  }
+
+  // lock prefix.
+  {
+    __ lock();
+    __ cmpxchg(Operand(esp, 12), ebx);
+
+    __ lock();
+    __ xchg_w(eax, Operand(ecx, 8));
+  }
+
   // Nop instructions
   for (int i = 0; i < 16; i++) {
     __ Nop(i);
diff --git a/test/cctest/test-disasm-mips.cc b/test/cctest/test-disasm-mips.cc
index 9a7d8ae..b4f81ec 100644
--- a/test/cctest/test-disasm-mips.cc
+++ b/test/cctest/test-disasm-mips.cc
@@ -97,7 +97,6 @@
     V8_Fatal(__FILE__, __LINE__, "MIPS Disassembler tests failed.\n"); \
   }
 
-
 #define COMPARE_PC_REL_COMPACT(asm_, compare_string, offset)                   \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
@@ -106,28 +105,28 @@
     prev_instr_compact_branch = assm.IsPrevInstrCompactBranch();               \
     if (prev_instr_compact_branch) {                                           \
       snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
-               compare_string, progcounter + 8 + (offset * 4));                \
+               compare_string,                                                 \
+               static_cast<void *>(progcounter + 8 + (offset * 4)));           \
     } else {                                                                   \
       snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
-               compare_string, progcounter + 4 + (offset * 4));                \
+               compare_string,                                                 \
+               static_cast<void *>(progcounter + 4 + (offset * 4)));           \
     }                                                                          \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define COMPARE_PC_REL(asm_, compare_string, offset)                           \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
     byte *progcounter = &buffer[pc_offset];                                    \
     char str_with_address[100];                                                \
     snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",           \
-             compare_string, progcounter + (offset * 4));                      \
+             compare_string, static_cast<void *>(progcounter + (offset * 4))); \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define COMPARE_PC_JUMP(asm_, compare_string, target)                          \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
@@ -136,14 +135,13 @@
     int instr_index = (target >> 2) & kImm26Mask;                              \
     snprintf(                                                                  \
         str_with_address, sizeof(str_with_address), "%s %p -> %p",             \
-        compare_string, reinterpret_cast<byte *>(target),                      \
-        reinterpret_cast<byte *>(((uint32_t)(progcounter + 4) & ~0xfffffff) |  \
+        compare_string, reinterpret_cast<void *>(target),                      \
+        reinterpret_cast<void *>(((uint32_t)(progcounter + 4) & ~0xfffffff) |  \
                                  (instr_index << 2)));                         \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define GET_PC_REGION(pc_region)                                         \
   {                                                                      \
     int pc_offset = assm.pc_offset();                                    \
@@ -780,6 +778,20 @@
   }
 
   if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
+    COMPARE(seb(a0, a1), "7c052420       seb     a0, a1");
+    COMPARE(seb(s6, s7), "7c17b420       seb     s6, s7");
+    COMPARE(seb(v0, v1), "7c031420       seb     v0, v1");
+
+    COMPARE(seh(a0, a1), "7c052620       seh     a0, a1");
+    COMPARE(seh(s6, s7), "7c17b620       seh     s6, s7");
+    COMPARE(seh(v0, v1), "7c031620       seh     v0, v1");
+
+    COMPARE(wsbh(a0, a1), "7c0520a0       wsbh    a0, a1");
+    COMPARE(wsbh(s6, s7), "7c17b0a0       wsbh    s6, s7");
+    COMPARE(wsbh(v0, v1), "7c0310a0       wsbh    v0, v1");
+  }
+
+  if (IsMipsArchVariant(kMips32r2) || IsMipsArchVariant(kMips32r6)) {
     COMPARE(ins_(a0, a1, 31, 1),
             "7ca4ffc4       ins     a0, a1, 31, 1");
     COMPARE(ins_(s6, s7, 30, 2),
diff --git a/test/cctest/test-disasm-mips64.cc b/test/cctest/test-disasm-mips64.cc
index d8f5681..dc6f34e 100644
--- a/test/cctest/test-disasm-mips64.cc
+++ b/test/cctest/test-disasm-mips64.cc
@@ -97,7 +97,6 @@
     V8_Fatal(__FILE__, __LINE__, "MIPS Disassembler tests failed.\n"); \
   }
 
-
 #define COMPARE_PC_REL_COMPACT(asm_, compare_string, offset)                   \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
@@ -106,28 +105,28 @@
     prev_instr_compact_branch = assm.IsPrevInstrCompactBranch();               \
     if (prev_instr_compact_branch) {                                           \
       snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
-               compare_string, progcounter + 8 + (offset * 4));                \
+               compare_string,                                                 \
+               static_cast<void *>(progcounter + 8 + (offset * 4)));           \
     } else {                                                                   \
       snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",         \
-               compare_string, progcounter + 4 + (offset * 4));                \
+               compare_string,                                                 \
+               static_cast<void *>(progcounter + 4 + (offset * 4)));           \
     }                                                                          \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define COMPARE_PC_REL(asm_, compare_string, offset)                           \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
     byte *progcounter = &buffer[pc_offset];                                    \
     char str_with_address[100];                                                \
     snprintf(str_with_address, sizeof(str_with_address), "%s -> %p",           \
-             compare_string, progcounter + (offset * 4));                      \
+             compare_string, static_cast<void *>(progcounter + (offset * 4))); \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define COMPARE_PC_JUMP(asm_, compare_string, target)                          \
   {                                                                            \
     int pc_offset = assm.pc_offset();                                          \
@@ -136,14 +135,13 @@
     int instr_index = (target >> 2) & kImm26Mask;                              \
     snprintf(                                                                  \
         str_with_address, sizeof(str_with_address), "%s %p -> %p",             \
-        compare_string, reinterpret_cast<byte *>(target),                      \
-        reinterpret_cast<byte *>(((uint64_t)(progcounter + 1) & ~0xfffffff) |  \
+        compare_string, reinterpret_cast<void *>(target),                      \
+        reinterpret_cast<void *>(((uint64_t)(progcounter + 1) & ~0xfffffff) |  \
                                  (instr_index << 2)));                         \
     assm.asm_;                                                                 \
     if (!DisassembleAndCompare(progcounter, str_with_address)) failure = true; \
   }
 
-
 #define GET_PC_REGION(pc_region)                                         \
   {                                                                      \
     int pc_offset = assm.pc_offset();                                    \
@@ -685,6 +683,26 @@
             "70621020       clz     v0, v1");
   }
 
+  COMPARE(seb(a0, a1), "7c052420       seb     a0, a1");
+  COMPARE(seb(s6, s7), "7c17b420       seb     s6, s7");
+  COMPARE(seb(v0, v1), "7c031420       seb     v0, v1");
+
+  COMPARE(seh(a0, a1), "7c052620       seh     a0, a1");
+  COMPARE(seh(s6, s7), "7c17b620       seh     s6, s7");
+  COMPARE(seh(v0, v1), "7c031620       seh     v0, v1");
+
+  COMPARE(wsbh(a0, a1), "7c0520a0       wsbh    a0, a1");
+  COMPARE(wsbh(s6, s7), "7c17b0a0       wsbh    s6, s7");
+  COMPARE(wsbh(v0, v1), "7c0310a0       wsbh    v0, v1");
+
+  COMPARE(dsbh(a0, a1), "7c0520a4       dsbh    a0, a1");
+  COMPARE(dsbh(s6, s7), "7c17b0a4       dsbh    s6, s7");
+  COMPARE(dsbh(v0, v1), "7c0310a4       dsbh    v0, v1");
+
+  COMPARE(dshd(a0, a1), "7c052164       dshd    a0, a1");
+  COMPARE(dshd(s6, s7), "7c17b164       dshd    s6, s7");
+  COMPARE(dshd(v0, v1), "7c031164       dshd    v0, v1");
+
   COMPARE(ins_(a0, a1, 31, 1),
           "7ca4ffc4       ins     a0, a1, 31, 1");
   COMPARE(ins_(s6, s7, 30, 2),
diff --git a/test/cctest/test-disasm-x64.cc b/test/cctest/test-disasm-x64.cc
index b855626..64d97ea 100644
--- a/test/cctest/test-disasm-x64.cc
+++ b/test/cctest/test-disasm-x64.cc
@@ -282,7 +282,7 @@
   // TODO(mstarzinger): The following is protected.
   // __ call(Operand(rbx, rcx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
+  Handle<Code> ic(CodeFactory::LoadIC(isolate).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ nop();
@@ -458,6 +458,7 @@
     __ pcmpeqd(xmm1, xmm0);
 
     __ punpckldq(xmm1, xmm11);
+    __ punpckldq(xmm5, Operand(rdx, 4));
     __ punpckhdq(xmm8, xmm15);
   }
 
@@ -484,11 +485,46 @@
   {
     if (CpuFeatures::IsSupported(SSE4_1)) {
       CpuFeatureScope scope(&assm, SSE4_1);
+      __ insertps(xmm5, xmm1, 123);
       __ extractps(rax, xmm1, 0);
       __ pextrd(rbx, xmm15, 0);
       __ pextrd(r12, xmm0, 1);
       __ pinsrd(xmm9, r9, 0);
-      __ pinsrd(xmm5, rax, 1);
+      __ pinsrd(xmm5, Operand(rax, 4), 1);
+
+      __ cmpps(xmm5, xmm1, 1);
+      __ cmpeqps(xmm5, xmm1);
+      __ cmpltps(xmm5, xmm1);
+      __ cmpleps(xmm5, xmm1);
+      __ cmpneqps(xmm5, xmm1);
+      __ cmpnltps(xmm5, xmm1);
+      __ cmpnleps(xmm5, xmm1);
+
+      __ minps(xmm5, xmm1);
+      __ minps(xmm5, Operand(rdx, 4));
+      __ maxps(xmm5, xmm1);
+      __ maxps(xmm5, Operand(rdx, 4));
+      __ rcpps(xmm5, xmm1);
+      __ rcpps(xmm5, Operand(rdx, 4));
+      __ sqrtps(xmm5, xmm1);
+      __ sqrtps(xmm5, Operand(rdx, 4));
+      __ movups(xmm5, xmm1);
+      __ movups(xmm5, Operand(rdx, 4));
+      __ movups(Operand(rdx, 4), xmm5);
+      __ paddd(xmm5, xmm1);
+      __ paddd(xmm5, Operand(rdx, 4));
+      __ psubd(xmm5, xmm1);
+      __ psubd(xmm5, Operand(rdx, 4));
+      __ pmulld(xmm5, xmm1);
+      __ pmulld(xmm5, Operand(rdx, 4));
+      __ pmuludq(xmm5, xmm1);
+      __ pmuludq(xmm5, Operand(rdx, 4));
+      __ psrldq(xmm5, 123);
+      __ pshufd(xmm5, xmm1, 3);
+      __ cvtps2dq(xmm5, xmm1);
+      __ cvtps2dq(xmm5, Operand(rdx, 4));
+      __ cvtdq2ps(xmm5, xmm1);
+      __ cvtdq2ps(xmm5, Operand(rdx, 4));
     }
   }
 
@@ -745,12 +781,31 @@
 
   // xchg.
   {
+    __ xchgb(rax, Operand(rax, 8));
+    __ xchgw(rax, Operand(rbx, 8));
     __ xchgq(rax, rax);
     __ xchgq(rax, rbx);
     __ xchgq(rbx, rbx);
     __ xchgq(rbx, Operand(rsp, 12));
   }
 
+  // cmpxchg.
+  {
+    __ cmpxchgb(Operand(rsp, 12), rax);
+    __ cmpxchgw(Operand(rbx, rcx, times_4, 10000), rax);
+    __ cmpxchgl(Operand(rbx, rcx, times_4, 10000), rax);
+    __ cmpxchgq(Operand(rbx, rcx, times_4, 10000), rax);
+  }
+
+  // lock prefix.
+  {
+    __ lock();
+    __ cmpxchgl(Operand(rsp, 12), rbx);
+
+    __ lock();
+    __ xchgw(rax, Operand(rcx, 8));
+  }
+
   // Nop instructions
   for (int i = 0; i < 16; i++) {
     __ Nop(i);
diff --git a/test/cctest/test-disasm-x87.cc b/test/cctest/test-disasm-x87.cc
index 9a4c6d4..41f425d 100644
--- a/test/cctest/test-disasm-x87.cc
+++ b/test/cctest/test-disasm-x87.cc
@@ -290,7 +290,7 @@
   __ bind(&L2);
   __ call(Operand(ebx, ecx, times_4, 10000));
   __ nop();
-  Handle<Code> ic(CodeFactory::LoadIC(isolate, NOT_INSIDE_TYPEOF).code());
+  Handle<Code> ic(CodeFactory::LoadIC(isolate).code());
   __ call(ic, RelocInfo::CODE_TARGET);
   __ nop();
   __ call(FUNCTION_ADDR(DummyStaticFunction), RelocInfo::RUNTIME_ENTRY);
@@ -395,12 +395,30 @@
 
   // xchg.
   {
+    __ xchg_b(eax, Operand(eax, 8));
+    __ xchg_w(eax, Operand(ebx, 8));
     __ xchg(eax, eax);
     __ xchg(eax, ebx);
     __ xchg(ebx, ebx);
     __ xchg(ebx, Operand(esp, 12));
   }
 
+  // cmpxchg.
+  {
+    __ cmpxchg_b(Operand(esp, 12), eax);
+    __ cmpxchg_w(Operand(ebx, ecx, times_4, 10000), eax);
+    __ cmpxchg(Operand(ebx, ecx, times_4, 10000), eax);
+  }
+
+  // lock prefix.
+  {
+    __ lock();
+    __ cmpxchg(Operand(esp, 12), ebx);
+
+    __ lock();
+    __ xchg_w(eax, Operand(ecx, 8));
+  }
+
   // Nop instructions
   for (int i = 0; i < 16; i++) {
     __ Nop(i);
diff --git a/test/cctest/test-eh-frame-hdr.cc b/test/cctest/test-eh-frame-hdr.cc
new file mode 100644
index 0000000..d9539c7
--- /dev/null
+++ b/test/cctest/test-eh-frame-hdr.cc
@@ -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.
+
+#include "src/eh-frame.h"
+#include "src/objects.h"
+#include "test/cctest/cctest.h"
+
+using namespace v8::internal;
+
+TEST(EhFrameHdr) {
+  CcTest::InitializeVM();
+  HandleScope handle_scope(CcTest::i_isolate());
+
+  // The content is not relevant in this test
+  byte buffer[10] = {0};
+  byte unwinding_info[30 + EhFrameHdr::kRecordSize] = {0};
+
+  CodeDesc code_desc;
+  code_desc.buffer = &buffer[0];
+  code_desc.buffer_size = sizeof(buffer);
+  code_desc.constant_pool_size = 0;
+  code_desc.instr_size = sizeof(buffer);
+  code_desc.reloc_size = 0;
+  code_desc.origin = nullptr;
+  code_desc.unwinding_info = &unwinding_info[0];
+  code_desc.unwinding_info_size = sizeof(unwinding_info);
+
+  Handle<Code> code = CcTest::i_isolate()->factory()->NewCode(
+      code_desc, 0, Handle<Object>::null());
+
+  EhFrameHdr eh_frame_hdr(*code);
+  CHECK_EQ(eh_frame_hdr.lut_entries_number(), 1);
+
+  //
+  // Plugging some numbers in the DSO layout shown in eh-frame.cc:
+  //
+  //  |      ...      |
+  //  +---------------+ <-- (E) --------
+  //  |               |                ^
+  //  |  Instructions |  10 bytes      | .text
+  //  |               |                v
+  //  +---------------+ <---------------
+  //  |///////////////|
+  //  |////Padding////|   6 bytes
+  //  |///////////////|
+  //  +---------------+ <---(D)---------
+  //  |               |                ^
+  //  |      CIE      |   N bytes*     |
+  //  |               |                |
+  //  +---------------+ <-- (C)        | .eh_frame
+  //  |               |                |
+  //  |      FDE      |  30 - N bytes  |
+  //  |               |                v
+  //  +---------------+ <-- (B) --------
+  //  |    version    |                ^
+  //  +---------------+   4 bytes      |
+  //  |   encoding    |                |
+  //  |  specifiers   |                |
+  //  +---------------+ <---(A)        | .eh_frame_hdr
+  //  |   offset to   |                |
+  //  |   .eh_frame   |                |
+  //  +---------------+                |
+  //  |      ...      |               ...
+  //
+  //  (*) the size of the CIE is platform dependent.
+  //
+  CHECK_EQ(eh_frame_hdr.offset_to_eh_frame(), -(4 + 30));        // A -> D
+  CHECK_EQ(eh_frame_hdr.offset_to_procedure(), -(30 + 6 + 10));  // B -> E
+  CHECK_EQ(eh_frame_hdr.offset_to_fde(),
+           -(30 - EhFrameHdr::kCIESize));  // B -> C
+}
+
+TEST(DummyEhFrameHdr) {
+  CcTest::InitializeVM();
+  HandleScope handle_scope(CcTest::i_isolate());
+
+  byte buffer[10] = {0};  // The content is not relevant in this test
+
+  CodeDesc code_desc;
+  code_desc.buffer = &buffer[0];
+  code_desc.buffer_size = sizeof(buffer);
+  code_desc.constant_pool_size = 0;
+  code_desc.instr_size = sizeof(buffer);
+  code_desc.reloc_size = 0;
+  code_desc.origin = nullptr;
+  code_desc.unwinding_info = nullptr;
+  code_desc.unwinding_info_size = 0;
+
+  Handle<Code> code = CcTest::i_isolate()->factory()->NewCode(
+      code_desc, 0, Handle<Object>::null());
+
+  EhFrameHdr eh_frame_hdr(*code);
+  // A dummy header has an empty LUT
+  CHECK_EQ(eh_frame_hdr.lut_entries_number(), 0);
+  // These values should be irrelevant, but check that they have been zeroed.
+  CHECK_EQ(eh_frame_hdr.offset_to_eh_frame(), 0);
+  CHECK_EQ(eh_frame_hdr.offset_to_procedure(), 0);
+  CHECK_EQ(eh_frame_hdr.offset_to_fde(), 0);
+}
diff --git a/test/cctest/test-feedback-vector.cc b/test/cctest/test-feedback-vector.cc
index c06e5b9..69c60ca 100644
--- a/test/cctest/test-feedback-vector.cc
+++ b/test/cctest/test-feedback-vector.cc
@@ -208,7 +208,7 @@
   Handle<JSFunction> f = GetFunction("f");
   // There should be one IC.
   Handle<TypeFeedbackVector> feedback_vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector(), isolate);
+      Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
   FeedbackVectorSlot slot(0);
   CallICNexus nexus(feedback_vector, slot);
   CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
@@ -233,6 +233,41 @@
   CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
 }
 
+TEST(VectorCallCounts) {
+  if (i::FLAG_always_opt) return;
+  CcTest::InitializeVM();
+  LocalContext context;
+  v8::HandleScope scope(context->GetIsolate());
+  Isolate* isolate = CcTest::i_isolate();
+
+  // Make sure function f has a call that uses a type feedback slot.
+  CompileRun(
+      "function foo() { return 17; }"
+      "function f(a) { a(); } f(foo);");
+  Handle<JSFunction> f = GetFunction("f");
+  // There should be one IC.
+  Handle<TypeFeedbackVector> feedback_vector =
+      Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
+  FeedbackVectorSlot slot(0);
+  CallICNexus nexus(feedback_vector, slot);
+  CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
+
+  CompileRun("f(foo); f(foo);");
+  CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
+  CHECK_EQ(3, nexus.ExtractCallCount());
+
+  CompileRun(
+      "function Foo() {}"
+      "function f(a) { new a(); } f(Foo);");
+  f = GetFunction("f");
+  // There should be one IC.
+  feedback_vector = Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
+  FeedbackVectorSlot cslot(1);
+
+  CompileRun("f(Foo); f(Foo);");
+  CHECK(feedback_vector->Get(cslot)->IsSmi());
+  CHECK_EQ(3, Smi::cast(feedback_vector->Get(cslot))->value());
+}
 
 TEST(VectorLoadICStates) {
   if (i::FLAG_always_opt) return;
@@ -249,7 +284,7 @@
   Handle<JSFunction> f = GetFunction("f");
   // There should be one IC.
   Handle<TypeFeedbackVector> feedback_vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector(), isolate);
+      Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
   FeedbackVectorSlot slot(0);
   LoadICNexus nexus(feedback_vector, slot);
   CHECK_EQ(PREMONOMORPHIC, nexus.StateFromFeedback());
@@ -308,11 +343,11 @@
   Handle<JSFunction> f = GetFunction("f");
   // There should be one IC slot.
   Handle<TypeFeedbackVector> feedback_vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector(), isolate);
+      Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
   FeedbackVectorHelper helper(feedback_vector);
   CHECK_EQ(1, helper.slot_count());
   FeedbackVectorSlot slot(0);
-  LoadICNexus nexus(feedback_vector, slot);
+  LoadGlobalICNexus nexus(feedback_vector, slot);
   CHECK_EQ(MONOMORPHIC, nexus.StateFromFeedback());
 }
 
@@ -332,7 +367,7 @@
   Handle<JSFunction> f = GetFunction("f");
   // There should be one IC.
   Handle<TypeFeedbackVector> feedback_vector =
-      Handle<TypeFeedbackVector>(f->shared()->feedback_vector(), isolate);
+      Handle<TypeFeedbackVector>(f->feedback_vector(), isolate);
   FeedbackVectorSlot slot(0);
   LoadICNexus nexus(feedback_vector, slot);
   CHECK_EQ(PREMONOMORPHIC, nexus.StateFromFeedback());
@@ -397,13 +432,13 @@
 
     // There should be two LOAD_ICs, one for a and one for y at the end.
     Handle<TypeFeedbackVector> feedback_vector =
-        handle(f->shared()->feedback_vector(), isolate);
+        handle(f->feedback_vector(), isolate);
     FeedbackVectorHelper helper(feedback_vector);
     CHECK_EQ(4, helper.slot_count());
     CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::STORE_IC);
-    CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC);
+    CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
     CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC);
-    CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::LOAD_IC);
+    CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
   }
 
   {
@@ -416,9 +451,11 @@
     Handle<JSFunction> f = GetFunction("testprop");
 
     // There should be one LOAD_IC, for the load of a.
-    Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+    Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
     FeedbackVectorHelper helper(feedback_vector);
     CHECK_EQ(2, helper.slot_count());
+    CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
+    CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::STORE_IC);
   }
 
   {
@@ -432,12 +469,13 @@
 
     Handle<JSFunction> f = GetFunction("testpropfunc");
 
-    // There should be 2 LOAD_ICs and 2 CALL_ICs.
-    Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+    // There should be 1 LOAD_GLOBAL_IC to load x (in both cases), 2 CALL_ICs
+    // to call x and a LOAD_IC to load blue.
+    Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
     FeedbackVectorHelper helper(feedback_vector);
     CHECK_EQ(5, helper.slot_count());
     CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::CALL_IC);
-    CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_IC);
+    CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
     CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC);
     CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::CALL_IC);
     CHECK_SLOT_KIND(helper, 4, FeedbackVectorSlotKind::LOAD_IC);
@@ -453,12 +491,12 @@
 
     Handle<JSFunction> f = GetFunction("testkeyedprop");
 
-    // There should be 1 LOAD_ICs for the load of a, and one KEYED_LOAD_IC for
-    // the load of x[0] in the return statement.
-    Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+    // There should be 1 LOAD_GLOBAL_ICs for the load of a, and one
+    // KEYED_LOAD_IC for the load of x[0] in the return statement.
+    Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
     FeedbackVectorHelper helper(feedback_vector);
     CHECK_EQ(3, helper.slot_count());
-    CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC);
+    CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
     CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::KEYED_STORE_IC);
     CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::KEYED_LOAD_IC);
   }
@@ -473,11 +511,12 @@
 
     Handle<JSFunction> f = GetFunction("testcompound");
 
-    // There should be 3 LOAD_ICs, for load of a and load of x.old and x.young.
-    Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+    // There should be 1 LOAD_GLOBAL_IC for load of a and 2 LOAD_ICs, for load
+    // of x.old and x.young.
+    Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
     FeedbackVectorHelper helper(feedback_vector);
     CHECK_EQ(6, helper.slot_count());
-    CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_IC);
+    CHECK_SLOT_KIND(helper, 0, FeedbackVectorSlotKind::LOAD_GLOBAL_IC);
     CHECK_SLOT_KIND(helper, 1, FeedbackVectorSlotKind::STORE_IC);
     CHECK_SLOT_KIND(helper, 2, FeedbackVectorSlotKind::STORE_IC);
     CHECK_SLOT_KIND(helper, 3, FeedbackVectorSlotKind::STORE_IC);
@@ -504,7 +543,7 @@
       "f(a);");
   Handle<JSFunction> f = GetFunction("f");
   // There should be one IC slot.
-  Handle<TypeFeedbackVector> feedback_vector(f->shared()->feedback_vector());
+  Handle<TypeFeedbackVector> feedback_vector(f->feedback_vector());
   FeedbackVectorHelper helper(feedback_vector);
   CHECK_EQ(1, helper.slot_count());
   FeedbackVectorSlot slot(0);
diff --git a/test/cctest/test-field-type-tracking.cc b/test/cctest/test-field-type-tracking.cc
index 9709f87..33a2dac 100644
--- a/test/cctest/test-field-type-tracking.cc
+++ b/test/cctest/test-field-type-tracking.cc
@@ -388,16 +388,16 @@
 
     Handle<String> name = MakeName("prop", property_index);
 
-    CHECK(!getter->IsNull() || !setter->IsNull());
+    CHECK(!getter->IsNull(isolate_) || !setter->IsNull(isolate_));
     Factory* factory = isolate_->factory();
 
-    if (!getter->IsNull()) {
+    if (!getter->IsNull(isolate_)) {
       Handle<AccessorPair> pair = factory->NewAccessorPair();
       pair->SetComponents(*getter, *factory->null_value());
       AccessorConstantDescriptor new_desc(name, pair, attributes);
       map = Map::CopyInsertDescriptor(map, &new_desc, INSERT_TRANSITION);
     }
-    if (!setter->IsNull()) {
+    if (!setter->IsNull(isolate_)) {
       Handle<AccessorPair> pair = factory->NewAccessorPair();
       pair->SetComponents(*getter, *setter);
       AccessorConstantDescriptor new_desc(name, pair, attributes);
@@ -486,7 +486,7 @@
   Handle<JSObject> obj = factory->NewJSObjectFromMap(map);
   JSObject::MigrateToMap(obj, prepared_map);
   FieldIndex index = FieldIndex::ForDescriptor(*prepared_map, 0);
-  CHECK(obj->RawFastPropertyAt(index)->IsUninitialized());
+  CHECK(obj->RawFastPropertyAt(index)->IsUninitialized(isolate));
 #ifdef VERIFY_HEAP
   obj->ObjectVerify();
 #endif
@@ -644,7 +644,7 @@
     Map* tmp = *new_map;
     while (true) {
       Object* back = tmp->GetBackPointer();
-      if (back->IsUndefined()) break;
+      if (back->IsUndefined(isolate)) break;
       tmp = Map::cast(back);
       CHECK(!tmp->is_stable());
     }
@@ -1242,7 +1242,7 @@
     CHECK(!map->is_deprecated());
     CHECK_NE(*map, *new_map);
 
-    CHECK(new_map->GetBackPointer()->IsUndefined());
+    CHECK(new_map->GetBackPointer()->IsUndefined(map->GetIsolate()));
     for (int i = 0; i < kPropCount; i++) {
       expectations.GeneralizeRepresentation(i);
     }
@@ -1873,7 +1873,7 @@
   // Try to update |map|, since there is no place for propX transition at |map2|
   // |map| should become "copy-generalized".
   Handle<Map> updated_map = Map::Update(map);
-  CHECK(updated_map->GetBackPointer()->IsUndefined());
+  CHECK(updated_map->GetBackPointer()->IsUndefined(isolate));
 
   for (int i = 0; i < kPropCount; i++) {
     expectations.SetDataField(i, Representation::Tagged(), any_type);
@@ -1973,10 +1973,10 @@
       for (int i = 0; i < kPropCount; i++) {
         expectations2.GeneralizeRepresentation(i);
       }
-      CHECK(new_map2->GetBackPointer()->IsUndefined());
+      CHECK(new_map2->GetBackPointer()->IsUndefined(isolate));
       CHECK(expectations2.Check(*new_map2));
     } else {
-      CHECK(!new_map2->GetBackPointer()->IsUndefined());
+      CHECK(!new_map2->GetBackPointer()->IsUndefined(isolate));
       CHECK(expectations2.Check(*new_map2));
     }
   }
diff --git a/test/cctest/test-hashmap.cc b/test/cctest/test-hashmap.cc
index b45d6c7..2d423b4 100644
--- a/test/cctest/test-hashmap.cc
+++ b/test/cctest/test-hashmap.cc
@@ -30,7 +30,7 @@
 #include "src/v8.h"
 #include "test/cctest/cctest.h"
 
-#include "src/hashmap.h"
+#include "src/base/hashmap.h"
 
 using namespace v8::internal;
 
@@ -48,7 +48,7 @@
 
   void Insert(int x) {
     CHECK_NE(0, x);  // 0 corresponds to (void*)NULL - illegal key value
-    HashMap::Entry* p =
+    v8::base::HashMap::Entry* p =
         map_.LookupOrInsert(reinterpret_cast<void*>(x), hash_(x));
     CHECK(p != NULL);  // insert is set!
     CHECK_EQ(reinterpret_cast<void*>(x), p->key);
@@ -61,7 +61,8 @@
   }
 
   bool Present(int x) {
-    HashMap::Entry* p = map_.Lookup(reinterpret_cast<void*>(x), hash_(x));
+    v8::base::HashMap::Entry* p =
+        map_.Lookup(reinterpret_cast<void*>(x), hash_(x));
     if (p != NULL) {
       CHECK_EQ(reinterpret_cast<void*>(x), p->key);
     }
@@ -74,7 +75,8 @@
 
   uint32_t occupancy() const {
     uint32_t count = 0;
-    for (HashMap::Entry* p = map_.Start(); p != NULL; p = map_.Next(p)) {
+    for (v8::base::HashMap::Entry* p = map_.Start(); p != NULL;
+         p = map_.Next(p)) {
       count++;
     }
     CHECK_EQ(map_.occupancy(), static_cast<double>(count));
@@ -83,7 +85,7 @@
 
  private:
   IntKeyHash hash_;
-  HashMap map_;
+  v8::base::HashMap map_;
 };
 
 
diff --git a/test/cctest/test-heap-profiler.cc b/test/cctest/test-heap-profiler.cc
index 767c5cd..f8f1586 100644
--- a/test/cctest/test-heap-profiler.cc
+++ b/test/cctest/test-heap-profiler.cc
@@ -32,9 +32,9 @@
 #include "src/v8.h"
 
 #include "include/v8-profiler.h"
+#include "src/base/hashmap.h"
 #include "src/collector.h"
 #include "src/debug/debug.h"
-#include "src/hashmap.h"
 #include "src/profiler/allocation-tracker.h"
 #include "src/profiler/heap-profiler.h"
 #include "src/profiler/heap-snapshot-generator-inl.h"
@@ -43,7 +43,6 @@
 using i::AllocationTraceNode;
 using i::AllocationTraceTree;
 using i::AllocationTracker;
-using i::HashMap;
 using i::ArrayVector;
 using i::Vector;
 
@@ -66,7 +65,7 @@
   }
 
   void CheckAllReachables(i::HeapEntry* root) {
-    i::HashMap visited(AddressesMatch);
+    v8::base::HashMap visited(AddressesMatch);
     i::List<i::HeapEntry*> list(10);
     list.Add(root);
     CheckEntry(root);
@@ -76,7 +75,7 @@
       for (int i = 0; i < children.length(); ++i) {
         if (children[i]->type() == i::HeapGraphEdge::kShortcut) continue;
         i::HeapEntry* child = children[i]->to();
-        i::HashMap::Entry* entry = visited.LookupOrInsert(
+        v8::base::HashMap::Entry* entry = visited.LookupOrInsert(
             reinterpret_cast<void*>(child),
             static_cast<uint32_t>(reinterpret_cast<uintptr_t>(child)));
         if (entry->value)
@@ -144,10 +143,10 @@
   i::HeapSnapshot* heap_snapshot = const_cast<i::HeapSnapshot*>(
       reinterpret_cast<const i::HeapSnapshot*>(snapshot));
 
-  i::HashMap visited(AddressesMatch);
+  v8::base::HashMap visited(AddressesMatch);
   i::List<i::HeapGraphEdge>& edges = heap_snapshot->edges();
   for (int i = 0; i < edges.length(); ++i) {
-    i::HashMap::Entry* entry = visited.LookupOrInsert(
+    v8::base::HashMap::Entry* entry = visited.LookupOrInsert(
         reinterpret_cast<void*>(edges[i].to()),
         static_cast<uint32_t>(reinterpret_cast<uintptr_t>(edges[i].to())));
     uint32_t ref_count = static_cast<uint32_t>(
@@ -157,7 +156,7 @@
   uint32_t unretained_entries_count = 0;
   i::List<i::HeapEntry>& entries = heap_snapshot->entries();
   for (int i = 0; i < entries.length(); ++i) {
-    i::HashMap::Entry* entry = visited.Lookup(
+    v8::base::HashMap::Entry* entry = visited.Lookup(
         reinterpret_cast<void*>(&entries[i]),
         static_cast<uint32_t>(reinterpret_cast<uintptr_t>(&entries[i])));
     if (!entry && entries[i].id() != 1) {
diff --git a/test/cctest/test-inobject-slack-tracking.cc b/test/cctest/test-inobject-slack-tracking.cc
index 004781a..9f33d55 100644
--- a/test/cctest/test-inobject-slack-tracking.cc
+++ b/test/cctest/test-inobject-slack-tracking.cc
@@ -925,15 +925,14 @@
   v8::HandleScope scope(CcTest::isolate());
 
   const int first_field = 2;
-  TestSubclassBuiltin("A1", JS_OBJECT_TYPE, "Error", "'err'", first_field);
-  TestSubclassBuiltin("A2", JS_OBJECT_TYPE, "EvalError", "'err'", first_field);
-  TestSubclassBuiltin("A3", JS_OBJECT_TYPE, "RangeError", "'err'", first_field);
-  TestSubclassBuiltin("A4", JS_OBJECT_TYPE, "ReferenceError", "'err'",
+  TestSubclassBuiltin("A1", JS_ERROR_TYPE, "Error", "'err'", first_field);
+  TestSubclassBuiltin("A2", JS_ERROR_TYPE, "EvalError", "'err'", first_field);
+  TestSubclassBuiltin("A3", JS_ERROR_TYPE, "RangeError", "'err'", first_field);
+  TestSubclassBuiltin("A4", JS_ERROR_TYPE, "ReferenceError", "'err'",
                       first_field);
-  TestSubclassBuiltin("A5", JS_OBJECT_TYPE, "SyntaxError", "'err'",
-                      first_field);
-  TestSubclassBuiltin("A6", JS_OBJECT_TYPE, "TypeError", "'err'", first_field);
-  TestSubclassBuiltin("A7", JS_OBJECT_TYPE, "URIError", "'err'", first_field);
+  TestSubclassBuiltin("A5", JS_ERROR_TYPE, "SyntaxError", "'err'", first_field);
+  TestSubclassBuiltin("A6", JS_ERROR_TYPE, "TypeError", "'err'", first_field);
+  TestSubclassBuiltin("A7", JS_ERROR_TYPE, "URIError", "'err'", first_field);
 }
 
 
@@ -1100,7 +1099,7 @@
   CcTest::InitializeVM();
   v8::HandleScope scope(CcTest::isolate());
 
-  const int first_field = 4;
+  const int first_field = 5;
   TestSubclassBuiltin("A1", JS_PROMISE_TYPE, "Promise",
                       "function(resolve, reject) { resolve('ok'); }",
                       first_field);
diff --git a/test/cctest/test-log.cc b/test/cctest/test-log.cc
index c3856f2..b6bb256 100644
--- a/test/cctest/test-log.cc
+++ b/test/cctest/test-log.cc
@@ -376,7 +376,7 @@
 #endif
     i::EmbeddedVector<char, 100> ref_data;
     i::SNPrintF(ref_data, "code-creation,Callback,-2,%p,1,\"method1\"",
-                ObjMethod1_entry);
+                static_cast<void*>(ObjMethod1_entry));
 
     CHECK(StrNStr(log.start(), ref_data.start(), log.length()));
     log.Dispose();
@@ -429,7 +429,7 @@
     EmbeddedVector<char, 100> prop1_getter_record;
     i::SNPrintF(prop1_getter_record,
                 "code-creation,Callback,-2,%p,1,\"get prop1\"",
-                Prop1Getter_entry);
+                static_cast<void*>(Prop1Getter_entry));
     CHECK(StrNStr(log.start(), prop1_getter_record.start(), log.length()));
 
     Address Prop1Setter_entry = reinterpret_cast<Address>(Prop1Setter);
@@ -439,7 +439,7 @@
     EmbeddedVector<char, 100> prop1_setter_record;
     i::SNPrintF(prop1_setter_record,
                 "code-creation,Callback,-2,%p,1,\"set prop1\"",
-                Prop1Setter_entry);
+                static_cast<void*>(Prop1Setter_entry));
     CHECK(StrNStr(log.start(), prop1_setter_record.start(), log.length()));
 
     Address Prop2Getter_entry = reinterpret_cast<Address>(Prop2Getter);
@@ -449,7 +449,7 @@
     EmbeddedVector<char, 100> prop2_getter_record;
     i::SNPrintF(prop2_getter_record,
                 "code-creation,Callback,-2,%p,1,\"get prop2\"",
-                Prop2Getter_entry);
+                static_cast<void*>(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 5408061..748198b 100644
--- a/test/cctest/test-macro-assembler-mips.cc
+++ b/test/cctest/test-macro-assembler-mips.cc
@@ -60,6 +60,71 @@
   return true;
 }
 
+TEST(BYTESWAP) {
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope handles(isolate);
+
+  struct T {
+    int32_t r1;
+    int32_t r2;
+    int32_t r3;
+    int32_t r4;
+    int32_t r5;
+  };
+  T t;
+
+  MacroAssembler assembler(isolate, NULL, 0,
+                           v8::internal::CodeObjectRequired::kYes);
+  MacroAssembler* masm = &assembler;
+
+  __ lw(a2, MemOperand(a0, offsetof(T, r1)));
+  __ nop();
+  __ ByteSwapSigned(a2, 4);
+  __ sw(a2, MemOperand(a0, offsetof(T, r1)));
+
+  __ lw(a2, MemOperand(a0, offsetof(T, r2)));
+  __ nop();
+  __ ByteSwapSigned(a2, 2);
+  __ sw(a2, MemOperand(a0, offsetof(T, r2)));
+
+  __ lw(a2, MemOperand(a0, offsetof(T, r3)));
+  __ nop();
+  __ ByteSwapSigned(a2, 1);
+  __ sw(a2, MemOperand(a0, offsetof(T, r3)));
+
+  __ lw(a2, MemOperand(a0, offsetof(T, r4)));
+  __ nop();
+  __ ByteSwapUnsigned(a2, 1);
+  __ sw(a2, MemOperand(a0, offsetof(T, r4)));
+
+  __ lw(a2, MemOperand(a0, offsetof(T, r5)));
+  __ nop();
+  __ ByteSwapUnsigned(a2, 2);
+  __ sw(a2, MemOperand(a0, offsetof(T, r5)));
+
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  masm->GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  ::F3 f = FUNCTION_CAST<::F3>(code->entry());
+  t.r1 = 0x781A15C3;
+  t.r2 = 0x2CDE;
+  t.r3 = 0x9F;
+  t.r4 = 0x9F;
+  t.r5 = 0x2CDE;
+  Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0);
+  USE(dummy);
+
+  CHECK_EQ(static_cast<int32_t>(0xC3151A78), t.r1);
+  CHECK_EQ(static_cast<int32_t>(0xDE2C0000), t.r2);
+  CHECK_EQ(static_cast<int32_t>(0x9FFFFFFF), t.r3);
+  CHECK_EQ(static_cast<int32_t>(0x9F000000), t.r4);
+  CHECK_EQ(static_cast<int32_t>(0xDE2C0000), t.r5);
+}
 
 TEST(CopyBytes) {
   CcTest::InitializeVM();
diff --git a/test/cctest/test-macro-assembler-mips64.cc b/test/cctest/test-macro-assembler-mips64.cc
index f0180c1..258ac40 100644
--- a/test/cctest/test-macro-assembler-mips64.cc
+++ b/test/cctest/test-macro-assembler-mips64.cc
@@ -61,6 +61,89 @@
   return true;
 }
 
+TEST(BYTESWAP) {
+  DCHECK(kArchVariant == kMips64r6 || kArchVariant == kMips64r2);
+  CcTest::InitializeVM();
+  Isolate* isolate = CcTest::i_isolate();
+  HandleScope scope(isolate);
+
+  struct T {
+    int64_t r1;
+    int64_t r2;
+    int64_t r3;
+    int64_t r4;
+    int64_t r5;
+    int64_t r6;
+    int64_t r7;
+  };
+  T t;
+
+  MacroAssembler assembler(isolate, NULL, 0,
+                           v8::internal::CodeObjectRequired::kYes);
+
+  MacroAssembler* masm = &assembler;
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r1)));
+  __ nop();
+  __ ByteSwapSigned(a4, 8);
+  __ sd(a4, MemOperand(a0, offsetof(T, r1)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r2)));
+  __ nop();
+  __ ByteSwapSigned(a4, 4);
+  __ sd(a4, MemOperand(a0, offsetof(T, r2)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r3)));
+  __ nop();
+  __ ByteSwapSigned(a4, 2);
+  __ sd(a4, MemOperand(a0, offsetof(T, r3)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r4)));
+  __ nop();
+  __ ByteSwapSigned(a4, 1);
+  __ sd(a4, MemOperand(a0, offsetof(T, r4)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r5)));
+  __ nop();
+  __ ByteSwapUnsigned(a4, 1);
+  __ sd(a4, MemOperand(a0, offsetof(T, r5)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r6)));
+  __ nop();
+  __ ByteSwapUnsigned(a4, 2);
+  __ sd(a4, MemOperand(a0, offsetof(T, r6)));
+
+  __ ld(a4, MemOperand(a0, offsetof(T, r7)));
+  __ nop();
+  __ ByteSwapUnsigned(a4, 4);
+  __ sd(a4, MemOperand(a0, offsetof(T, r7)));
+
+  __ jr(ra);
+  __ nop();
+
+  CodeDesc desc;
+  masm->GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::STUB), Handle<Code>());
+  ::F3 f = FUNCTION_CAST<::F3>(code->entry());
+  t.r1 = 0x5612FFCD9D327ACC;
+  t.r2 = 0x781A15C3;
+  t.r3 = 0xFCDE;
+  t.r4 = 0x9F;
+  t.r5 = 0x9F;
+  t.r6 = 0xFCDE;
+  t.r7 = 0xC81A15C3;
+  Object* dummy = CALL_GENERATED_CODE(isolate, f, &t, 0, 0, 0, 0);
+  USE(dummy);
+
+  CHECK_EQ(static_cast<int64_t>(0xCC7A329DCDFF1256), t.r1);
+  CHECK_EQ(static_cast<int64_t>(0xC3151A7800000000), t.r2);
+  CHECK_EQ(static_cast<int64_t>(0xDEFCFFFFFFFFFFFF), t.r3);
+  CHECK_EQ(static_cast<int64_t>(0x9FFFFFFFFFFFFFFF), t.r4);
+  CHECK_EQ(static_cast<int64_t>(0x9F00000000000000), t.r5);
+  CHECK_EQ(static_cast<int64_t>(0xDEFC000000000000), t.r6);
+  CHECK_EQ(static_cast<int64_t>(0xC3151AC800000000), t.r7);
+}
 
 TEST(CopyBytes) {
   CcTest::InitializeVM();
diff --git a/test/cctest/test-parsing.cc b/test/cctest/test-parsing.cc
index 36f7293..ab1fc76 100644
--- a/test/cctest/test-parsing.cc
+++ b/test/cctest/test-parsing.cc
@@ -1509,7 +1509,8 @@
   kAllowHarmonyRestrictiveDeclarations,
   kAllowHarmonyExponentiationOperator,
   kAllowHarmonyForIn,
-  kAllowHarmonyAsyncAwait
+  kAllowHarmonyAsyncAwait,
+  kAllowHarmonyRestrictiveGenerators,
 };
 
 enum ParserSyncTestResult {
@@ -1532,6 +1533,8 @@
   parser->set_allow_harmony_for_in(flags.Contains(kAllowHarmonyForIn));
   parser->set_allow_harmony_async_await(
       flags.Contains(kAllowHarmonyAsyncAwait));
+  parser->set_allow_harmony_restrictive_generators(
+      flags.Contains(kAllowHarmonyRestrictiveGenerators));
 }
 
 
@@ -3566,10 +3569,8 @@
   CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback);
   CompileRun("\"use asm\";\n"
              "var foo = 1;\n"
-             "\"use asm\";\n"  // Only the first one counts.
              "function bar() { \"use asm\"; var baz = 1; }");
-  // Optimizing will double-count because the source is parsed twice.
-  CHECK_EQ(i::FLAG_always_opt ? 4 : 2, use_counts[v8::Isolate::kUseAsm]);
+  CHECK_LT(0, use_counts[v8::Isolate::kUseAsm]);
 }
 
 
@@ -7503,6 +7504,9 @@
     "var O = { async 'method'() { await 1; } }",
     "var O = { async 0() { await 1; } }",
     "async function await() {}",
+
+    "var asyncFn = async({ foo = 1 }) => foo;",
+    "var asyncFn = async({ foo = 1 } = {}) => foo;",
     NULL
   };
   // clang-format on
@@ -7639,6 +7643,35 @@
     "var O = { async method() { function await() {} } }",
     "async function foo() { function await() {} }",
 
+    // Henrique Ferreiro's bug (tm)
+    "(async function foo() { } foo => 1)",
+    "(async function foo() { } () => 1)",
+    "(async function foo() { } => 1)",
+    "(async function() { } foo => 1)",
+    "(async function() { } () => 1)",
+    "(async function() { } => 1)",
+    "(async.foo => 1)",
+    "(async.foo foo => 1)",
+    "(async.foo () => 1)",
+    "(async().foo => 1)",
+    "(async().foo foo => 1)",
+    "(async().foo () => 1)",
+    "(async['foo'] => 1)",
+    "(async['foo'] foo => 1)",
+    "(async['foo'] () => 1)",
+    "(async()['foo'] => 1)",
+    "(async()['foo'] foo => 1)",
+    "(async()['foo'] () => 1)",
+    "(async`foo` => 1)",
+    "(async`foo` foo => 1)",
+    "(async`foo` () => 1)",
+    "(async`foo`.bar => 1)",
+    "(async`foo`.bar foo => 1)",
+    "(async`foo`.bar () => 1)",
+
+    // v8:5148 assert that errors are still thrown for calls that may have been
+    // async functions
+    "async({ foo = 1 })",
     NULL
   };
 
@@ -7660,6 +7693,22 @@
 
     NULL
   };
+
+  const char* formal_parameters_data[] = {
+    "var f = async({ await }) => 1;",
+    "var f = async({ await = 1 }) => 1;",
+    "var f = async({ await } = {}) => 1;",
+    "var f = async({ await = 1 } = {}) => 1;",
+    "var f = async([await]) => 1;",
+    "var f = async([await] = []) => 1;",
+    "var f = async([await = 1]) => 1;",
+    "var f = async([await = 1] = []) => 1;",
+    "var f = async(...await) => 1;",
+    "var f = async(await) => 1;",
+    "var f = async(await = 1) => 1;",
+    "var f = async(...[await]) => 1;",
+    NULL
+  };
   // clang-format on
 
   static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
@@ -7667,6 +7716,9 @@
                     arraysize(always_flags));
   RunParserSyncTest(strict_context_data, strict_error_data, kError, NULL, 0,
                     always_flags, arraysize(always_flags));
+
+  RunParserSyncTest(context_data, formal_parameters_data, kError, NULL, 0,
+                    always_flags, arraysize(always_flags));
 }
 
 TEST(AsyncAwaitModule) {
@@ -7731,3 +7783,60 @@
   RunParserSyncTest(context_data, error_data, kError, nullptr, 0, always_flags,
                     arraysize(always_flags));
 }
+
+TEST(NoDuplicateGeneratorsInBlock) {
+  const char* block_context_data[][2] = {
+      {"'use strict'; {", "}"},
+      {"{", "}"},
+      {"(function() { {", "} })()"},
+      {"(function() {'use strict'; {", "} })()"},
+      {NULL, NULL}};
+  const char* top_level_context_data[][2] = {
+      {"'use strict';", ""},
+      {"", ""},
+      {"(function() {", "})()"},
+      {"(function() {'use strict';", "})()"},
+      {NULL, NULL}};
+  const char* error_data[] = {"function* x() {} function* x() {}",
+                              "function x() {} function* x() {}",
+                              "function* x() {} function x() {}", NULL};
+  static const ParserFlag always_flags[] = {kAllowHarmonyRestrictiveGenerators};
+  // The preparser doesn't enforce the restriction, so turn it off.
+  bool test_preparser = false;
+  RunParserSyncTest(block_context_data, error_data, kError, NULL, 0,
+                    always_flags, arraysize(always_flags), NULL, 0, false,
+                    test_preparser);
+  RunParserSyncTest(top_level_context_data, error_data, kSuccess, NULL, 0,
+                    always_flags, arraysize(always_flags));
+}
+
+TEST(NoDuplicateAsyncFunctionInBlock) {
+  const char* block_context_data[][2] = {
+      {"'use strict'; {", "}"},
+      {"{", "}"},
+      {"(function() { {", "} })()"},
+      {"(function() {'use strict'; {", "} })()"},
+      {NULL, NULL}};
+  const char* top_level_context_data[][2] = {
+      {"'use strict';", ""},
+      {"", ""},
+      {"(function() {", "})()"},
+      {"(function() {'use strict';", "})()"},
+      {NULL, NULL}};
+  const char* error_data[] = {"async function x() {} async function x() {}",
+                              "function x() {} async function x() {}",
+                              "async function x() {} function x() {}",
+                              "function* x() {} async function x() {}",
+                              "function* x() {} async function x() {}",
+                              "async function x() {} function* x() {}",
+                              "function* x() {} async function x() {}",
+                              NULL};
+  static const ParserFlag always_flags[] = {kAllowHarmonyAsyncAwait};
+  // The preparser doesn't enforce the restriction, so turn it off.
+  bool test_preparser = false;
+  RunParserSyncTest(block_context_data, error_data, kError, NULL, 0,
+                    always_flags, arraysize(always_flags), NULL, 0, false,
+                    test_preparser);
+  RunParserSyncTest(top_level_context_data, error_data, kSuccess, NULL, 0,
+                    always_flags, arraysize(always_flags));
+}
diff --git a/test/cctest/test-platform.cc b/test/cctest/test-platform.cc
index 48eda3d..a0fbc21 100644
--- a/test/cctest/test-platform.cc
+++ b/test/cctest/test-platform.cc
@@ -17,7 +17,7 @@
 #elif V8_HOST_ARCH_IA32
   __asm__ __volatile__("mov %%esp, %0" : "=g"(sp_addr));
 #elif V8_HOST_ARCH_ARM
-  __asm__ __volatile__("str %%sp, %0" : "=g"(sp_addr));
+  __asm__ __volatile__("str sp, %0" : "=g"(sp_addr));
 #elif V8_HOST_ARCH_ARM64
   __asm__ __volatile__("mov x16, sp; str x16, %0" : "=g"(sp_addr));
 #elif V8_HOST_ARCH_MIPS
diff --git a/test/cctest/test-profile-generator.cc b/test/cctest/test-profile-generator.cc
index 71c5ba8..7e59839 100644
--- a/test/cctest/test-profile-generator.cc
+++ b/test/cctest/test-profile-generator.cc
@@ -51,17 +51,17 @@
   CcTest::InitializeVM();
   ProfileTree tree(CcTest::i_isolate());
   ProfileNode* node = tree.root();
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, "aaa");
   ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
   CHECK(childNode1);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, "bbb");
   ProfileNode* childNode2 = node->FindOrAddChild(&entry2);
   CHECK(childNode2);
   CHECK_NE(childNode1, childNode2);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
   CHECK_EQ(childNode2, node->FindOrAddChild(&entry2));
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, "ccc");
   ProfileNode* childNode3 = node->FindOrAddChild(&entry3);
   CHECK(childNode3);
   CHECK_NE(childNode1, childNode3);
@@ -77,15 +77,15 @@
   const char* aaa = "aaa";
   ProfileTree tree(CcTest::i_isolate());
   ProfileNode* node = tree.root();
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, aaa);
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, aaa);
   ProfileNode* childNode1 = node->FindOrAddChild(&entry1);
   CHECK(childNode1);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry1));
   // The same function again.
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, aaa);
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, aaa);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry2));
   // Now with a different security token.
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, aaa);
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, aaa);
   CHECK_EQ(childNode1, node->FindOrAddChild(&entry3));
 }
 
@@ -122,9 +122,9 @@
 
 TEST(ProfileTreeAddPathFromEnd) {
   CcTest::InitializeVM();
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, "aaa");
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, "bbb");
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, "ccc");
   ProfileTree tree(CcTest::i_isolate());
   ProfileTreeTestHelper helper(&tree);
   CHECK(!helper.Walk(&entry1));
@@ -187,7 +187,7 @@
   empty_tree.root()->IncrementSelfTicks();
   CHECK_EQ(1u, empty_tree.root()->self_ticks());
 
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, "aaa");
   CodeEntry* e1_path[] = {&entry1};
   std::vector<CodeEntry*> e1_path_vec(e1_path, e1_path + arraysize(e1_path));
 
@@ -201,7 +201,7 @@
   CHECK_EQ(1u, single_child_tree.root()->self_ticks());
   CHECK_EQ(1u, node1->self_ticks());
 
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, "bbb");
   CodeEntry* e2_e1_path[] = {&entry2, &entry1};
   std::vector<CodeEntry*> e2_e1_path_vec(e2_e1_path,
                                          e2_e1_path + arraysize(e2_e1_path));
@@ -227,7 +227,7 @@
 
   CodeEntry* e2_path[] = {&entry2};
   std::vector<CodeEntry*> e2_path_vec(e2_path, e2_path + arraysize(e2_path));
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, "ccc");
   CodeEntry* e3_path[] = {&entry3};
   std::vector<CodeEntry*> e3_path_vec(e3_path, e3_path + arraysize(e3_path));
 
@@ -277,10 +277,10 @@
 
 TEST(CodeMapAddCode) {
   CodeMap code_map;
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
-  CodeEntry entry4(i::Logger::FUNCTION_TAG, "ddd");
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, "aaa");
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, "bbb");
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, "ccc");
+  CodeEntry entry4(i::CodeEventListener::FUNCTION_TAG, "ddd");
   code_map.AddCode(ToAddress(0x1500), &entry1, 0x200);
   code_map.AddCode(ToAddress(0x1700), &entry2, 0x100);
   code_map.AddCode(ToAddress(0x1900), &entry3, 0x50);
@@ -307,8 +307,8 @@
 
 TEST(CodeMapMoveAndDeleteCode) {
   CodeMap code_map;
-  CodeEntry entry1(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry entry2(i::Logger::FUNCTION_TAG, "bbb");
+  CodeEntry entry1(i::CodeEventListener::FUNCTION_TAG, "aaa");
+  CodeEntry entry2(i::CodeEventListener::FUNCTION_TAG, "bbb");
   code_map.AddCode(ToAddress(0x1500), &entry1, 0x200);
   code_map.AddCode(ToAddress(0x1700), &entry2, 0x100);
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1500)));
@@ -316,7 +316,7 @@
   code_map.MoveCode(ToAddress(0x1500), ToAddress(0x1700));  // Deprecate bbb.
   CHECK(!code_map.FindEntry(ToAddress(0x1500)));
   CHECK_EQ(&entry1, code_map.FindEntry(ToAddress(0x1700)));
-  CodeEntry entry3(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry entry3(i::CodeEventListener::FUNCTION_TAG, "ccc");
   code_map.AddCode(ToAddress(0x1750), &entry3, 0x100);
   CHECK(!code_map.FindEntry(ToAddress(0x1700)));
   CHECK_EQ(&entry3, code_map.FindEntry(ToAddress(0x1750)));
@@ -344,12 +344,13 @@
 
 TEST(RecordTickSample) {
   TestSetup test_setup;
-  CpuProfilesCollection profiles(CcTest::heap());
+  CpuProfilesCollection profiles(CcTest::i_isolate());
+  profiles.set_cpu_profiler(CcTest::i_isolate()->cpu_profiler());
   profiles.StartProfiling("", false);
   ProfileGenerator generator(&profiles);
-  CodeEntry* entry1 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry* entry2 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry* entry3 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry* entry1 = new CodeEntry(i::Logger::FUNCTION_TAG, "aaa");
+  CodeEntry* entry2 = new CodeEntry(i::Logger::FUNCTION_TAG, "bbb");
+  CodeEntry* entry3 = new CodeEntry(i::Logger::FUNCTION_TAG, "ccc");
   generator.code_map()->AddCode(ToAddress(0x1500), entry1, 0x200);
   generator.code_map()->AddCode(ToAddress(0x1700), entry2, 0x100);
   generator.code_map()->AddCode(ToAddress(0x1900), entry3, 0x50);
@@ -397,6 +398,10 @@
   ProfileNode* node4 = top_down_test_helper.Walk(entry1, entry3, entry1);
   CHECK(node4);
   CHECK_EQ(entry1, node4->entry());
+
+  delete entry1;
+  delete entry2;
+  delete entry3;
 }
 
 
@@ -410,12 +415,13 @@
 
 TEST(SampleIds) {
   TestSetup test_setup;
-  CpuProfilesCollection profiles(CcTest::heap());
+  CpuProfilesCollection profiles(CcTest::i_isolate());
+  profiles.set_cpu_profiler(CcTest::i_isolate()->cpu_profiler());
   profiles.StartProfiling("", true);
   ProfileGenerator generator(&profiles);
-  CodeEntry* entry1 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "aaa");
-  CodeEntry* entry2 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "bbb");
-  CodeEntry* entry3 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "ccc");
+  CodeEntry* entry1 = new CodeEntry(i::Logger::FUNCTION_TAG, "aaa");
+  CodeEntry* entry2 = new CodeEntry(i::Logger::FUNCTION_TAG, "bbb");
+  CodeEntry* entry3 = new CodeEntry(i::Logger::FUNCTION_TAG, "ccc");
   generator.code_map()->AddCode(ToAddress(0x1500), entry1, 0x200);
   generator.code_map()->AddCode(ToAddress(0x1700), entry2, 0x100);
   generator.code_map()->AddCode(ToAddress(0x1900), entry3, 0x50);
@@ -456,15 +462,20 @@
   for (int i = 0; i < 3; i++) {
     CHECK_EQ(expected_id[i], profile->sample(i)->id());
   }
+
+  delete entry1;
+  delete entry2;
+  delete entry3;
 }
 
 
 TEST(NoSamples) {
   TestSetup test_setup;
-  CpuProfilesCollection profiles(CcTest::heap());
+  CpuProfilesCollection profiles(CcTest::i_isolate());
+  profiles.set_cpu_profiler(CcTest::i_isolate()->cpu_profiler());
   profiles.StartProfiling("", false);
   ProfileGenerator generator(&profiles);
-  CodeEntry* entry1 = profiles.NewCodeEntry(i::Logger::FUNCTION_TAG, "aaa");
+  CodeEntry* entry1 = new CodeEntry(i::Logger::FUNCTION_TAG, "aaa");
   generator.code_map()->AddCode(ToAddress(0x1500), entry1, 0x200);
 
   // We are building the following calls tree:
@@ -481,6 +492,8 @@
   CHECK_EQ(3u, nodeId - 1);
 
   CHECK_EQ(0, profile->samples_count());
+
+  delete entry1;
 }
 
 
@@ -544,7 +557,8 @@
 
 
 TEST(Issue51919) {
-  CpuProfilesCollection collection(CcTest::heap());
+  CpuProfilesCollection collection(CcTest::i_isolate());
+  collection.set_cpu_profiler(CcTest::i_isolate()->cpu_profiler());
   i::EmbeddedVector<char*,
       CpuProfilesCollection::kMaxSimultaneousProfiles> titles;
   for (int i = 0; i < CpuProfilesCollection::kMaxSimultaneousProfiles; ++i) {
@@ -618,16 +632,12 @@
   CHECK_EQ(script_a->GetUnboundScript()->GetId(), current->GetScriptId());
 }
 
-
-
-
 static const char* line_number_test_source_existing_functions =
 "function foo_at_the_first_line() {\n"
 "}\n"
 "foo_at_the_first_line();\n"
 "function lazy_func_at_forth_line() {}\n";
 
-
 static const char* line_number_test_source_profile_time_functions =
 "// Empty first line\n"
 "function bar_at_the_second_line() {\n"
@@ -652,7 +662,6 @@
   return func_entry->line_number();
 }
 
-
 TEST(LineNumber) {
   i::FLAG_use_inlining = false;
 
@@ -683,8 +692,6 @@
   profiler->StopProfiling("LineNumber");
 }
 
-
-
 TEST(BailoutReason) {
   v8::HandleScope scope(CcTest::isolate());
   v8::Local<v8::Context> env = CcTest::NewContext(PROFILER_EXTENSION);
diff --git a/test/cctest/test-regexp.cc b/test/cctest/test-regexp.cc
index 0a153b7..071ab18 100644
--- a/test/cctest/test-regexp.cc
+++ b/test/cctest/test-regexp.cc
@@ -171,7 +171,6 @@
 
 void TestRegExpParser(bool lookbehind) {
   FLAG_harmony_regexp_lookbehind = lookbehind;
-  FLAG_harmony_unicode_regexps = true;
 
   CHECK_PARSE_ERROR("?");
 
@@ -438,6 +437,23 @@
   CHECK_MIN_MAX("a(?=b)c", 2, 2);
   CHECK_MIN_MAX("a(?=bbb|bb)c", 2, 2);
   CHECK_MIN_MAX("a(?!bbb|bb)c", 2, 2);
+
+  FLAG_harmony_regexp_named_captures = true;
+  CheckParseEq("(?<a>x)(?<b>x)(?<c>x)\\k<a>",
+               "(: (^ 'x') (^ 'x') (^ 'x') (<- 1))", true);
+  CheckParseEq("(?<a>x)(?<b>x)(?<c>x)\\k<b>",
+               "(: (^ 'x') (^ 'x') (^ 'x') (<- 2))", true);
+  CheckParseEq("(?<a>x)(?<b>x)(?<c>x)\\k<c>",
+               "(: (^ 'x') (^ 'x') (^ 'x') (<- 3))", true);
+  CheckParseEq("(?<a>a)\\k<a>", "(: (^ 'a') (<- 1))", true);
+  CheckParseEq("(?<a>a\\k<a>)", "(^ 'a')", true);
+  CheckParseEq("(?<a>\\k<a>a)", "(^ 'a')", true);
+  CheckParseEq("(?<a>\\k<b>)(?<b>\\k<a>)", "(: (^ (<- 2)) (^ (<- 1)))", true);
+  CheckParseEq("\\k<a>(?<a>a)", "(: (<- 1) (^ 'a'))", true);
+
+  CheckParseEq("(?<\\u{03C0}>a)", "(^ 'a')", true);
+  CheckParseEq("(?<\\u03C0>a)", "(^ 'a')", true);
+  FLAG_harmony_regexp_named_captures = false;
 }
 
 
@@ -450,7 +466,6 @@
   TestRegExpParser(true);  // Lookbehind enabled.
 }
 
-
 TEST(ParserRegression) {
   CheckParseEq("[A-Z$-][x]", "(! [A-Z $ -] [x])");
   CheckParseEq("a{3,4*}", "(: 'a{3,' (# 0 - g '4') '}')");
@@ -458,14 +473,16 @@
   CheckParseEq("a|", "(| 'a' %)");
 }
 
-static void ExpectError(const char* input,
-                        const char* expected) {
+static void ExpectError(const char* input, const char* expected,
+                        bool unicode = false) {
   v8::HandleScope scope(CcTest::isolate());
   Zone zone(CcTest::i_isolate()->allocator());
   FlatStringReader reader(CcTest::i_isolate(), CStrVector(input));
   RegExpCompileData result;
-  CHECK(!v8::internal::RegExpParser::ParseRegExp(
-      CcTest::i_isolate(), &zone, &reader, JSRegExp::kNone, &result));
+  JSRegExp::Flags flags = JSRegExp::kNone;
+  if (unicode) flags |= JSRegExp::kUnicode;
+  CHECK(!v8::internal::RegExpParser::ParseRegExp(CcTest::i_isolate(), &zone,
+                                                 &reader, flags, &result));
   CHECK(result.tree == NULL);
   CHECK(!result.error.is_null());
   v8::base::SmartArrayPointer<char> str = result.error->ToCString(ALLOW_NULLS);
@@ -499,6 +516,23 @@
     os << "()";
   }
   ExpectError(os.str().c_str(), kTooManyCaptures);
+
+  FLAG_harmony_regexp_named_captures = true;
+  const char* kInvalidCaptureName = "Invalid capture group name";
+  ExpectError("(?<>.)", kInvalidCaptureName, true);
+  ExpectError("(?<1>.)", kInvalidCaptureName, true);
+  ExpectError("(?<_%>.)", kInvalidCaptureName, true);
+  ExpectError("\\k<a", kInvalidCaptureName, true);
+  const char* kDuplicateCaptureName = "Duplicate capture group name";
+  ExpectError("(?<a>.)(?<a>.)", kDuplicateCaptureName, true);
+  const char* kInvalidUnicodeEscape = "Invalid Unicode escape sequence";
+  ExpectError("(?<\\u{FISK}", kInvalidUnicodeEscape, true);
+  const char* kInvalidCaptureReferenced = "Invalid named capture referenced";
+  ExpectError("\\k<a>", kInvalidCaptureReferenced, true);
+  ExpectError("(?<b>)\\k<a>", kInvalidCaptureReferenced, true);
+  const char* kInvalidNamedReference = "Invalid named reference";
+  ExpectError("\\ka", kInvalidNamedReference, true);
+  FLAG_harmony_regexp_named_captures = false;
 }
 
 
diff --git a/test/cctest/test-reloc-info.cc b/test/cctest/test-reloc-info.cc
index 4346f00..52b5ab8 100644
--- a/test/cctest/test-reloc-info.cc
+++ b/test/cctest/test-reloc-info.cc
@@ -57,9 +57,9 @@
     RelocInfo::Mode mode = (i % 2 == 0) ?
         RelocInfo::STATEMENT_POSITION : RelocInfo::POSITION;
     if (mode == RelocInfo::STATEMENT_POSITION) {
-      printf("TEST WRITING STATEMENT %p %d\n", pc, pos);
+      printf("TEST WRITING STATEMENT %p %d\n", static_cast<void*>(pc), pos);
     } else {
-      printf("TEST WRITING POSITION %p %d\n", pc, pos);
+      printf("TEST WRITING POSITION %p %d\n", static_cast<void*>(pc), pos);
     }
     WriteRinfo(&writer, pc, mode, pos);
     CHECK(writer.pos() - RelocInfoWriter::kMaxSize >= relocation_info_end);
@@ -68,8 +68,9 @@
   writer.Finish();
   relocation_info_size = static_cast<int>(buffer_end - writer.pos());
   MacroAssembler assm(CcTest::i_isolate(), nullptr, 0, CodeObjectRequired::kNo);
-  CodeDesc desc = {buffer.get(),         buffer_size, code_size,
-                   relocation_info_size, 0,           &assm};
+  CodeDesc desc = {
+      buffer.get(), buffer_size, code_size, relocation_info_size, 0,
+      nullptr,      0,           &assm};
 
   // Read only (non-statement) positions.
   {
diff --git a/test/cctest/test-serialize.cc b/test/cctest/test-serialize.cc
index cd349f9..de36877 100644
--- a/test/cctest/test-serialize.cc
+++ b/test/cctest/test-serialize.cc
@@ -36,6 +36,7 @@
 #include "src/compilation-cache.h"
 #include "src/debug/debug.h"
 #include "src/heap/spaces.h"
+#include "src/macro-assembler.h"
 #include "src/objects.h"
 #include "src/parsing/parser.h"
 #include "src/runtime/runtime.h"
@@ -46,7 +47,7 @@
 #include "src/snapshot/snapshot.h"
 #include "src/snapshot/startup-serializer.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 
@@ -91,11 +92,11 @@
 
   Isolate* internal_isolate = reinterpret_cast<Isolate*>(isolate);
   internal_isolate->heap()->CollectAllAvailableGarbage("serialize");
-  SnapshotByteSink sink;
-  StartupSerializer ser(internal_isolate, &sink);
+  StartupSerializer ser(internal_isolate,
+                        v8::SnapshotCreator::FunctionCodeHandling::kClear);
   ser.SerializeStrongReferences();
   ser.SerializeWeakReferencesAndDeferred();
-  SnapshotData snapshot_data(ser);
+  SnapshotData snapshot_data(&ser);
   return WritePayload(snapshot_data.RawData());
 }
 
@@ -280,19 +281,17 @@
     }
     env.Reset();
 
-    SnapshotByteSink startup_sink;
-    StartupSerializer startup_serializer(isolate, &startup_sink);
+    StartupSerializer startup_serializer(
+        isolate, v8::SnapshotCreator::FunctionCodeHandling::kClear);
     startup_serializer.SerializeStrongReferences();
 
-    SnapshotByteSink partial_sink;
-    PartialSerializer partial_serializer(isolate, &startup_serializer,
-                                         &partial_sink);
+    PartialSerializer partial_serializer(isolate, &startup_serializer);
     partial_serializer.Serialize(&raw_foo);
 
     startup_serializer.SerializeWeakReferencesAndDeferred();
 
-    SnapshotData startup_snapshot(startup_serializer);
-    SnapshotData partial_snapshot(partial_serializer);
+    SnapshotData startup_snapshot(&startup_serializer);
+    SnapshotData partial_snapshot(&partial_serializer);
 
     *partial_blob_out = WritePayload(partial_snapshot.RawData());
     *startup_blob_out = WritePayload(startup_snapshot.RawData());
@@ -380,17 +379,17 @@
     env.Reset();
 
     SnapshotByteSink startup_sink;
-    StartupSerializer startup_serializer(isolate, &startup_sink);
+    StartupSerializer startup_serializer(
+        isolate, v8::SnapshotCreator::FunctionCodeHandling::kClear);
     startup_serializer.SerializeStrongReferences();
 
     SnapshotByteSink partial_sink;
-    PartialSerializer partial_serializer(isolate, &startup_serializer,
-                                         &partial_sink);
+    PartialSerializer partial_serializer(isolate, &startup_serializer);
     partial_serializer.Serialize(&raw_context);
     startup_serializer.SerializeWeakReferencesAndDeferred();
 
-    SnapshotData startup_snapshot(startup_serializer);
-    SnapshotData partial_snapshot(partial_serializer);
+    SnapshotData startup_snapshot(&startup_serializer);
+    SnapshotData partial_snapshot(&partial_serializer);
 
     *partial_blob_out = WritePayload(partial_snapshot.RawData());
     *startup_blob_out = WritePayload(startup_snapshot.RawData());
@@ -498,17 +497,17 @@
     env.Reset();
 
     SnapshotByteSink startup_sink;
-    StartupSerializer startup_serializer(isolate, &startup_sink);
+    StartupSerializer startup_serializer(
+        isolate, v8::SnapshotCreator::FunctionCodeHandling::kClear);
     startup_serializer.SerializeStrongReferences();
 
     SnapshotByteSink partial_sink;
-    PartialSerializer partial_serializer(isolate, &startup_serializer,
-                                         &partial_sink);
+    PartialSerializer partial_serializer(isolate, &startup_serializer);
     partial_serializer.Serialize(&raw_context);
     startup_serializer.SerializeWeakReferencesAndDeferred();
 
-    SnapshotData startup_snapshot(startup_serializer);
-    SnapshotData partial_snapshot(partial_serializer);
+    SnapshotData startup_snapshot(&startup_serializer);
+    SnapshotData partial_snapshot(&partial_serializer);
 
     *partial_blob_out = WritePayload(partial_snapshot.RawData());
     *startup_blob_out = WritePayload(startup_snapshot.RawData());
@@ -792,7 +791,7 @@
 
 TEST(SnapshotDataBlobWithWarmup) {
   DisableTurbofan();
-  const char* warmup = "Math.tan(1); Math.sin = 1;";
+  const char* warmup = "Math.tanh(1); Math.sinh = 1;";
 
   v8::StartupData cold = v8::V8::CreateSnapshotDataBlob();
   v8::StartupData warm = v8::V8::WarmUpSnapshotDataBlob(cold, warmup);
@@ -811,9 +810,9 @@
     v8::Context::Scope c_scope(context);
     // Running the warmup script has effect on whether functions are
     // pre-compiled, but does not pollute the context.
-    CHECK(IsCompiled("Math.tan"));
-    CHECK(!IsCompiled("Math.cos"));
-    CHECK(CompileRun("Math.sin")->IsFunction());
+    CHECK(IsCompiled("Math.tanh"));
+    CHECK(!IsCompiled("Math.cosh"));
+    CHECK(CompileRun("Math.sinh")->IsFunction());
   }
   isolate->Dispose();
 }
@@ -821,9 +820,9 @@
 TEST(CustomSnapshotDataBlobWithWarmup) {
   DisableTurbofan();
   const char* source =
-      "function f() { return Math.sin(1); }\n"
-      "function g() { return Math.cos(1); }\n"
-      "Math.tan(1);"
+      "function f() { return Math.sinh(1); }\n"
+      "function g() { return Math.cosh(1); }\n"
+      "Math.tanh(1);"
       "var a = 5";
   const char* warmup = "a = f()";
 
@@ -845,10 +844,10 @@
     // Running the warmup script has effect on whether functions are
     // pre-compiled, but does not pollute the context.
     CHECK(IsCompiled("f"));
-    CHECK(IsCompiled("Math.sin"));
+    CHECK(IsCompiled("Math.sinh"));
     CHECK(!IsCompiled("g"));
-    CHECK(!IsCompiled("Math.cos"));
-    CHECK(!IsCompiled("Math.tan"));
+    CHECK(!IsCompiled("Math.cosh"));
+    CHECK(!IsCompiled("Math.tanh"));
     CHECK_EQ(5, CompileRun("a")->Int32Value(context).FromJust());
   }
   isolate->Dispose();
@@ -1827,12 +1826,302 @@
       false);
   delete script_data;
 
-  SimulateIncrementalMarking(isolate->heap());
+  heap::SimulateIncrementalMarking(isolate->heap());
 
   script_data = CodeSerializer::Serialize(isolate, shared, source);
   delete script_data;
 }
 
+#if V8_TARGET_ARCH_X64
+TEST(CodeSerializerCell) {
+  FLAG_serialize_toplevel = true;
+  LocalContext context;
+  Isolate* isolate = CcTest::i_isolate();
+  isolate->compilation_cache()->Disable();  // Disable same-isolate code cache.
+
+  v8::HandleScope scope(CcTest::isolate());
+
+  size_t actual_size;
+  byte* buffer = static_cast<byte*>(v8::base::OS::Allocate(
+      Assembler::kMinimalBufferSize, &actual_size, true));
+  CHECK(buffer);
+  HandleScope handles(isolate);
+
+  MacroAssembler assembler(isolate, buffer, static_cast<int>(actual_size),
+                           v8::internal::CodeObjectRequired::kYes);
+  assembler.enable_serializer();
+  Handle<HeapNumber> number = isolate->factory()->NewHeapNumber(0.3);
+  CHECK(isolate->heap()->InNewSpace(*number));
+  MacroAssembler* masm = &assembler;
+  masm->MoveHeapObject(rax, number);
+  masm->ret(0);
+  CodeDesc desc;
+  masm->GetCode(&desc);
+  Handle<Code> code = isolate->factory()->NewCode(
+      desc, Code::ComputeFlags(Code::FUNCTION), masm->CodeObject());
+  code->set_has_reloc_info_for_serialization(true);
+
+  RelocIterator rit1(*code, 1 << RelocInfo::CELL);
+  CHECK_EQ(*number, rit1.rinfo()->target_cell()->value());
+
+  Handle<String> source = isolate->factory()->empty_string();
+  Handle<SharedFunctionInfo> sfi =
+      isolate->factory()->NewSharedFunctionInfo(source, code, false);
+  ScriptData* script_data = CodeSerializer::Serialize(isolate, sfi, source);
+
+  Handle<SharedFunctionInfo> copy =
+      CodeSerializer::Deserialize(isolate, script_data, source)
+          .ToHandleChecked();
+  RelocIterator rit2(copy->code(), 1 << RelocInfo::CELL);
+  CHECK(rit2.rinfo()->target_cell()->IsCell());
+  Handle<Cell> cell(rit2.rinfo()->target_cell());
+  CHECK(cell->value()->IsHeapNumber());
+  CHECK_EQ(0.3, HeapNumber::cast(cell->value())->value());
+
+  delete script_data;
+}
+#endif  // V8_TARGET_ARCH_X64
+
+TEST(SnapshotCreatorMultipleContexts) {
+  DisableTurbofan();
+  v8::StartupData blob;
+  {
+    v8::SnapshotCreator creator;
+    v8::Isolate* isolate = creator.GetIsolate();
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context = v8::Context::New(isolate);
+      v8::Context::Scope context_scope(context);
+      CompileRun("var f = function() { return 1; }");
+      CHECK_EQ(0, creator.AddContext(context));
+    }
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context = v8::Context::New(isolate);
+      v8::Context::Scope context_scope(context);
+      CompileRun("var f = function() { return 2; }");
+      CHECK_EQ(1, creator.AddContext(context));
+    }
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context = v8::Context::New(isolate);
+      CHECK_EQ(2, creator.AddContext(context));
+    }
+    blob =
+        creator.CreateBlob(v8::SnapshotCreator::FunctionCodeHandling::kClear);
+  }
+
+  v8::Isolate::CreateParams params;
+  params.snapshot_blob = &blob;
+  params.array_buffer_allocator = CcTest::array_buffer_allocator();
+  v8::Isolate* isolate = v8::Isolate::New(params);
+  {
+    v8::Isolate::Scope isolate_scope(isolate);
+    v8::ExtensionConfiguration* no_extension = nullptr;
+    v8::Local<v8::ObjectTemplate> no_template = v8::Local<v8::ObjectTemplate>();
+    v8::Local<v8::Value> no_object = v8::Local<v8::Value>();
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, no_template, no_object, 0);
+      v8::Context::Scope context_scope(context);
+      ExpectInt32("f()", 1);
+    }
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, no_template, no_object, 1);
+      v8::Context::Scope context_scope(context);
+      ExpectInt32("f()", 2);
+    }
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, no_template, no_object, 2);
+      v8::Context::Scope context_scope(context);
+      ExpectUndefined("this.f");
+    }
+  }
+
+  isolate->Dispose();
+  delete[] blob.data;
+}
+
+static void SerializedCallback(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
+  args.GetReturnValue().Set(v8_num(42));
+}
+
+static void SerializedCallbackReplacement(
+    const v8::FunctionCallbackInfo<v8::Value>& args) {
+  args.GetReturnValue().Set(v8_num(1337));
+}
+
+intptr_t original_external_references[] = {
+    reinterpret_cast<intptr_t>(SerializedCallback), 0};
+
+intptr_t replaced_external_references[] = {
+    reinterpret_cast<intptr_t>(SerializedCallbackReplacement), 0};
+
+TEST(SnapshotCreatorExternalReferences) {
+  DisableTurbofan();
+  v8::StartupData blob;
+  {
+    v8::SnapshotCreator creator(original_external_references);
+    v8::Isolate* isolate = creator.GetIsolate();
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::Local<v8::Context> context = v8::Context::New(isolate);
+      v8::Context::Scope context_scope(context);
+      v8::Local<v8::FunctionTemplate> callback =
+          v8::FunctionTemplate::New(isolate, SerializedCallback);
+      v8::Local<v8::Value> function =
+          callback->GetFunction(context).ToLocalChecked();
+      CHECK(context->Global()->Set(context, v8_str("f"), function).FromJust());
+      ExpectInt32("f()", 42);
+      CHECK_EQ(0, creator.AddContext(context));
+    }
+    blob =
+        creator.CreateBlob(v8::SnapshotCreator::FunctionCodeHandling::kClear);
+  }
+
+  // Deserialize with the original external reference.
+  {
+    v8::Isolate::CreateParams params;
+    params.snapshot_blob = &blob;
+    params.array_buffer_allocator = CcTest::array_buffer_allocator();
+    params.external_references = original_external_references;
+    v8::Isolate* isolate = v8::Isolate::New(params);
+    {
+      v8::Isolate::Scope isolate_scope(isolate);
+      v8::HandleScope handle_scope(isolate);
+      v8::ExtensionConfiguration* no_extension = nullptr;
+      v8::Local<v8::ObjectTemplate> no_template =
+          v8::Local<v8::ObjectTemplate>();
+      v8::Local<v8::Value> no_object = v8::Local<v8::Value>();
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, no_template, no_object, 0);
+      v8::Context::Scope context_scope(context);
+      ExpectInt32("f()", 42);
+    }
+    isolate->Dispose();
+  }
+
+  // Deserialize with the some other external reference.
+  {
+    v8::Isolate::CreateParams params;
+    params.snapshot_blob = &blob;
+    params.array_buffer_allocator = CcTest::array_buffer_allocator();
+    params.external_references = replaced_external_references;
+    v8::Isolate* isolate = v8::Isolate::New(params);
+    {
+      v8::Isolate::Scope isolate_scope(isolate);
+      v8::HandleScope handle_scope(isolate);
+      v8::ExtensionConfiguration* no_extension = nullptr;
+      v8::Local<v8::ObjectTemplate> no_template =
+          v8::Local<v8::ObjectTemplate>();
+      v8::Local<v8::Value> no_object = v8::Local<v8::Value>();
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, no_template, no_object, 0);
+      v8::Context::Scope context_scope(context);
+      ExpectInt32("f()", 1337);
+    }
+    isolate->Dispose();
+  }
+  delete[] blob.data;
+}
+
+TEST(SnapshotCreatorTemplates) {
+  DisableTurbofan();
+  v8::StartupData blob;
+  {
+    v8::SnapshotCreator creator(original_external_references);
+    v8::Isolate* isolate = creator.GetIsolate();
+    {
+      v8::HandleScope handle_scope(isolate);
+      v8::ExtensionConfiguration* no_extension = nullptr;
+      v8::Local<v8::ObjectTemplate> global_template =
+          v8::ObjectTemplate::New(isolate);
+      v8::Local<v8::FunctionTemplate> callback =
+          v8::FunctionTemplate::New(isolate, SerializedCallback);
+      global_template->Set(v8_str("f"), callback);
+      v8::Local<v8::Context> context =
+          v8::Context::New(isolate, no_extension, global_template);
+      v8::Context::Scope context_scope(context);
+      ExpectInt32("f()", 42);
+      CHECK_EQ(0, creator.AddContext(context));
+      CHECK_EQ(0, creator.AddTemplate(callback));
+      CHECK_EQ(1, creator.AddTemplate(global_template));
+    }
+    blob =
+        creator.CreateBlob(v8::SnapshotCreator::FunctionCodeHandling::kClear);
+  }
+
+  {
+    v8::Isolate::CreateParams params;
+    params.snapshot_blob = &blob;
+    params.array_buffer_allocator = CcTest::array_buffer_allocator();
+    params.external_references = original_external_references;
+    v8::Isolate* isolate = v8::Isolate::New(params);
+    {
+      v8::Isolate::Scope isolate_scope(isolate);
+      {
+        // Create a new context without a new object template.
+        v8::HandleScope handle_scope(isolate);
+        v8::ExtensionConfiguration* no_extension = nullptr;
+        v8::Local<v8::ObjectTemplate> no_template =
+            v8::Local<v8::ObjectTemplate>();
+        v8::Local<v8::Value> no_object = v8::Local<v8::Value>();
+        v8::Local<v8::Context> context =
+            v8::Context::New(isolate, no_extension, no_template, no_object, 0);
+        v8::Context::Scope context_scope(context);
+        ExpectInt32("f()", 42);
+
+        // Retrieve the snapshotted object template.
+        v8::Local<v8::ObjectTemplate> obj_template =
+            v8::ObjectTemplate::FromSnapshot(isolate, 1);
+        CHECK(!obj_template.IsEmpty());
+        v8::Local<v8::Object> object =
+            obj_template->NewInstance(context).ToLocalChecked();
+        CHECK(context->Global()->Set(context, v8_str("o"), object).FromJust());
+        ExpectInt32("o.f()", 42);
+        // Check that it instantiates to the same prototype.
+        ExpectTrue("o.f.prototype === f.prototype");
+
+        // Retrieve the snapshotted function template.
+        v8::Local<v8::FunctionTemplate> fun_template =
+            v8::FunctionTemplate::FromSnapshot(isolate, 0);
+        CHECK(!fun_template.IsEmpty());
+        v8::Local<v8::Function> fun =
+            fun_template->GetFunction(context).ToLocalChecked();
+        CHECK(context->Global()->Set(context, v8_str("g"), fun).FromJust());
+        ExpectInt32("g()", 42);
+        // Check that it instantiates to the same prototype.
+        ExpectTrue("g.prototype === f.prototype");
+      }
+
+      {
+        // Create a context with a new object template. It is merged into the
+        // deserialized global object.
+        v8::HandleScope handle_scope(isolate);
+        v8::ExtensionConfiguration* no_extension = nullptr;
+        v8::Local<v8::ObjectTemplate> global_template =
+            v8::ObjectTemplate::New(isolate);
+        global_template->Set(
+            v8_str("g"),
+            v8::FunctionTemplate::New(isolate, SerializedCallbackReplacement));
+        v8::Local<v8::Value> no_object = v8::Local<v8::Value>();
+        v8::Local<v8::Context> context = v8::Context::New(
+            isolate, no_extension, global_template, no_object, 0);
+        v8::Context::Scope context_scope(context);
+        ExpectInt32("g()", 1337);
+        ExpectInt32("f()", 42);
+      }
+    }
+    isolate->Dispose();
+  }
+  delete[] blob.data;
+}
 
 TEST(SerializationMemoryStats) {
   FLAG_profile_deserialization = true;
diff --git a/test/cctest/test-slots-buffer.cc b/test/cctest/test-slots-buffer.cc
index 07b70f5..4b8aeb7 100644
--- a/test/cctest/test-slots-buffer.cc
+++ b/test/cctest/test-slots-buffer.cc
@@ -4,7 +4,7 @@
 
 #include "src/heap/slots-buffer.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 namespace v8 {
 namespace internal {
@@ -101,7 +101,7 @@
 
   // Write an old space reference into field 4 which points to an object on an
   // evacuation candidate.
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
   Handle<FixedArray> valid_object =
       isolate->factory()->NewFixedArray(23, TENURED);
   Page* page = Page::FromAddress(valid_object->address());
diff --git a/test/cctest/test-strings.cc b/test/cctest/test-strings.cc
index 770042d..afa8ecb 100644
--- a/test/cctest/test-strings.cc
+++ b/test/cctest/test-strings.cc
@@ -1110,7 +1110,8 @@
             .ToLocalChecked()
             ->Run(context)
             .ToLocalChecked();
-    CHECK_EQ(results[i]->IsUndefined(), result->IsUndefined());
+    CHECK_EQ(results[i]->IsUndefined(CcTest::i_isolate()),
+             result->IsUndefined());
     CHECK_EQ(results[i]->IsNumber(), result->IsNumber());
     if (result->IsNumber()) {
       int32_t value = 0;
diff --git a/test/cctest/test-thread-termination.cc b/test/cctest/test-thread-termination.cc
index 85dfd13..9d3cbf6 100644
--- a/test/cctest/test-thread-termination.cc
+++ b/test/cctest/test-thread-termination.cc
@@ -204,6 +204,31 @@
   semaphore = NULL;
 }
 
+// Test that execution can be terminated from within JSON.stringify.
+TEST(TerminateJsonStringify) {
+  semaphore = new v8::base::Semaphore(0);
+  TerminatorThread thread(CcTest::i_isolate());
+  thread.Start();
+
+  v8::HandleScope scope(CcTest::isolate());
+  v8::Local<v8::ObjectTemplate> global =
+      CreateGlobalTemplate(CcTest::isolate(), Signal, DoLoop);
+  v8::Local<v8::Context> context =
+      v8::Context::New(CcTest::isolate(), NULL, global);
+  v8::Context::Scope context_scope(context);
+  CHECK(!CcTest::isolate()->IsExecutionTerminating());
+  v8::MaybeLocal<v8::Value> result =
+      CompileRun(CcTest::isolate()->GetCurrentContext(),
+                 "var x = [];"
+                 "x[2**31]=1;"
+                 "terminate();"
+                 "JSON.stringify(x);"
+                 "fail();");
+  CHECK(result.IsEmpty());
+  thread.Join();
+  delete semaphore;
+  semaphore = NULL;
+}
 
 int call_count = 0;
 
diff --git a/test/cctest/test-unboxed-doubles.cc b/test/cctest/test-unboxed-doubles.cc
index 39f8fbf..c8a8bbb 100644
--- a/test/cctest/test-unboxed-doubles.cc
+++ b/test/cctest/test-unboxed-doubles.cc
@@ -15,7 +15,7 @@
 #include "src/ic/ic.h"
 #include "src/macro-assembler.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::base;
 using namespace v8::internal;
@@ -1112,7 +1112,7 @@
   {
     AlwaysAllocateScope always_allocate(isolate);
     // Make sure |obj_value| is placed on an old-space evacuation candidate.
-    SimulateFullSpace(old_space);
+    heap::SimulateFullSpace(old_space);
     obj_value = factory->NewJSArray(32 * KB, FAST_HOLEY_ELEMENTS, TENURED);
     ec_page = Page::FromAddress(obj_value->address());
   }
@@ -1142,7 +1142,7 @@
   FLAG_stress_compaction = true;
   FLAG_manual_evacuation_candidates_selection = true;
   ec_page->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
   // Disable stress compaction mode in order to let GC do scavenge.
   FLAG_stress_compaction = false;
 
@@ -1451,7 +1451,7 @@
     CHECK(old_space->Contains(*obj));
 
     // Make sure |obj_value| is placed on an old-space evacuation candidate.
-    SimulateFullSpace(old_space);
+    heap::SimulateFullSpace(old_space);
     obj_value = factory->NewJSArray(32 * KB, FAST_HOLEY_ELEMENTS, TENURED);
     ec_page = Page::FromAddress(obj_value->address());
     CHECK_NE(ec_page, Page::FromAddress(obj->address()));
@@ -1460,7 +1460,7 @@
   // Heap is ready, force |ec_page| to become an evacuation candidate and
   // simulate incremental marking.
   ec_page->SetFlag(MemoryChunk::FORCE_EVACUATION_CANDIDATE_FOR_TESTING);
-  SimulateIncrementalMarking(heap);
+  heap::SimulateIncrementalMarking(heap);
 
   // Check that everything is ready for triggering incremental write barrier
   // (i.e. that both |obj| and |obj_value| are black and the marking phase is
diff --git a/test/cctest/test-usecounters.cc b/test/cctest/test-usecounters.cc
new file mode 100644
index 0000000..8d4628c
--- /dev/null
+++ b/test/cctest/test-usecounters.cc
@@ -0,0 +1,73 @@
+// 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 "test/cctest/cctest.h"
+
+namespace {
+
+int* global_use_counts = NULL;
+
+void MockUseCounterCallback(v8::Isolate* isolate,
+                            v8::Isolate::UseCounterFeature feature) {
+  ++global_use_counts[feature];
+}
+}
+
+TEST(DefineGetterSetterThrowUseCount) {
+  v8::Isolate* isolate = CcTest::isolate();
+  v8::HandleScope scope(isolate);
+  LocalContext env;
+  int use_counts[v8::Isolate::kUseCounterFeatureCount] = {};
+  global_use_counts = use_counts;
+  CcTest::isolate()->SetUseCounterCallback(MockUseCounterCallback);
+
+  // __defineGetter__ and __defineSetter__ do not increment
+  // kDefineGetterOrSetterWouldThrow on success
+  CompileRun(
+      "var a = {};"
+      "Object.defineProperty(a, 'b', { value: 0, configurable: true });"
+      "a.__defineGetter__('b', ()=>{});");
+  CHECK_EQ(0, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+  CompileRun(
+      "var a = {};"
+      "Object.defineProperty(a, 'b', { value: 0, configurable: true });"
+      "a.__defineSetter__('b', ()=>{});");
+  CHECK_EQ(0, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+
+  // __defineGetter__ and __defineSetter__ do not increment
+  // kDefineGetterOrSetterWouldThrow on other errors
+  v8::Local<v8::Value> resultProxyThrow = CompileRun(
+      "var exception;"
+      "try {"
+      "var a = new Proxy({}, { defineProperty: ()=>{throw new Error;} });"
+      "a.__defineGetter__('b', ()=>{});"
+      "} catch (e) { exception = e; }"
+      "exception");
+  CHECK_EQ(0, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+  CHECK(resultProxyThrow->IsObject());
+  resultProxyThrow = CompileRun(
+      "var exception;"
+      "try {"
+      "var a = new Proxy({}, { defineProperty: ()=>{throw new Error;} });"
+      "a.__defineSetter__('b', ()=>{});"
+      "} catch (e) { exception = e; }"
+      "exception");
+  CHECK_EQ(0, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+  CHECK(resultProxyThrow->IsObject());
+
+  // __defineGetter__ and __defineSetter__ increment
+  // kDefineGetterOrSetterWouldThrow when they would throw per spec (B.2.2.2)
+  CompileRun(
+      "var a = {};"
+      "Object.defineProperty(a, 'b', { value: 0, configurable: false });"
+      "a.__defineGetter__('b', ()=>{});");
+  CHECK_EQ(1, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+  CompileRun(
+      "var a = {};"
+      "Object.defineProperty(a, 'b', { value: 0, configurable: false });"
+      "a.__defineSetter__('b', ()=>{});");
+  CHECK_EQ(2, use_counts[v8::Isolate::kDefineGetterOrSetterWouldThrow]);
+}
diff --git a/test/cctest/test-weakmaps.cc b/test/cctest/test-weakmaps.cc
index 829f320..2d0e620 100644
--- a/test/cctest/test-weakmaps.cc
+++ b/test/cctest/test-weakmaps.cc
@@ -31,7 +31,7 @@
 
 #include "src/global-handles.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 
@@ -177,7 +177,7 @@
 
   // Start second old-space page so that values land on evacuation candidate.
   Page* first_page = heap->old_space()->anchor()->next_page();
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
 
   // Fill up weak map with values on an evacuation candidate.
   {
@@ -216,7 +216,7 @@
 
   // Start second old-space page so that keys land on evacuation candidate.
   Page* first_page = heap->old_space()->anchor()->next_page();
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
 
   // Fill up weak map with keys on an evacuation candidate.
   Handle<JSObject> keys[32];
@@ -249,7 +249,7 @@
   {
     HandleScope scope(isolate);
     AllocateJSWeakMap(isolate);
-    SimulateIncrementalMarking(heap);
+    heap::SimulateIncrementalMarking(heap);
   }
   // The weak map is marked black here but leaving the handle scope will make
   // the object unreachable. Aborting incremental marking will clear all the
diff --git a/test/cctest/test-weaksets.cc b/test/cctest/test-weaksets.cc
index 53a5913..ec6945a 100644
--- a/test/cctest/test-weaksets.cc
+++ b/test/cctest/test-weaksets.cc
@@ -31,7 +31,7 @@
 
 #include "src/global-handles.h"
 #include "test/cctest/cctest.h"
-#include "test/cctest/heap/utils-inl.h"
+#include "test/cctest/heap/heap-utils.h"
 
 using namespace v8::internal;
 
@@ -176,7 +176,7 @@
 
   // Start second old-space page so that values land on evacuation candidate.
   Page* first_page = heap->old_space()->anchor()->next_page();
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
 
   // Fill up weak set with values on an evacuation candidate.
   {
@@ -215,7 +215,7 @@
 
   // Start second old-space page so that keys land on evacuation candidate.
   Page* first_page = heap->old_space()->anchor()->next_page();
-  SimulateFullSpace(heap->old_space());
+  heap::SimulateFullSpace(heap->old_space());
 
   // Fill up weak set with keys on an evacuation candidate.
   Handle<JSObject> keys[32];
diff --git a/test/cctest/trace-extension.cc b/test/cctest/trace-extension.cc
index 6eb81b2..19f8cd8 100644
--- a/test/cctest/trace-extension.cc
+++ b/test/cctest/trace-extension.cc
@@ -86,7 +86,7 @@
 #else
 #error Host architecture is neither 32-bit nor 64-bit.
 #endif
-  printf("Trace: %p\n", fp);
+  printf("Trace: %p\n", static_cast<void*>(fp));
   return fp;
 }
 
diff --git a/test/cctest/types-fuzz.h b/test/cctest/types-fuzz.h
index 79e4608..7bf9700 100644
--- a/test/cctest/types-fuzz.h
+++ b/test/cctest/types-fuzz.h
@@ -208,8 +208,6 @@
 
   Type* Representation(Type* t) { return Type::Representation(t, zone_); }
 
-  // Type* Semantic(Type* t) { return Intersect(t,
-  // MaskSemanticForTesting); }
   Type* Semantic(Type* t) { return Type::Semantic(t, zone_); }
 
   Type* Random() {
diff --git a/test/cctest/wasm/test-run-wasm-64.cc b/test/cctest/wasm/test-run-wasm-64.cc
index 333183a..af87498 100644
--- a/test/cctest/wasm/test-run-wasm-64.cc
+++ b/test/cctest/wasm/test-run-wasm-64.cc
@@ -14,6 +14,13 @@
 #include "test/cctest/wasm/test-signatures.h"
 #include "test/cctest/wasm/wasm-run-utils.h"
 
+// If the target architecture is 64-bit, enable all tests.
+#if !V8_TARGET_ARCH_32_BIT || V8_TARGET_ARCH_X64
+#define WASM_64 1
+#else
+#define WASM_64 0
+#endif
+
 #define CHECK_TRAP32(x) \
   CHECK_EQ(0xdeadbeef, (bit_cast<uint32_t>(x)) & 0xFFFFFFFF)
 #define CHECK_TRAP64(x) \
@@ -92,7 +99,7 @@
 
 WASM_EXEC_TEST(I64Const) {
   REQUIRE(I64Const);
-  WasmRunner<int64_t> r;
+  WasmRunner<int64_t> r(execution_mode);
   const int64_t kExpectedValue = 0x1122334455667788LL;
   // return(kExpectedValue)
   BUILD(r, WASM_I64V_9(kExpectedValue));
@@ -103,7 +110,7 @@
   REQUIRE(I64Const);
   int cntr = 0;
   FOR_INT32_INPUTS(i) {
-    WasmRunner<int64_t> r;
+    WasmRunner<int64_t> r(execution_mode);
     const int64_t kExpectedValue = (static_cast<int64_t>(*i) << 32) | cntr;
     // return(kExpectedValue)
     BUILD(r, WASM_I64V(kExpectedValue));
@@ -114,7 +121,7 @@
 
 WASM_EXEC_TEST(Return_I64) {
   REQUIRE(I64Return);
-  WasmRunner<int64_t> r(MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
 
   BUILD(r, WASM_RETURN1(WASM_GET_LOCAL(0)));
 
@@ -123,7 +130,8 @@
 
 WASM_EXEC_TEST(I64Add) {
   REQUIRE(I64Add);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i + *j, r.Call(*i, *j)); }
@@ -132,7 +140,8 @@
 
 WASM_EXEC_TEST(I64Sub) {
   REQUIRE(I64Sub);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i - *j, r.Call(*i, *j)); }
@@ -141,7 +150,8 @@
 
 WASM_EXEC_TEST(I64DivS) {
   REQUIRE(I64DivS);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) {
@@ -158,7 +168,8 @@
 
 WASM_EXEC_TEST(I64DivS_Trap) {
   REQUIRE(I64DivS);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(0, r.Call(asi64(0), asi64(100)));
   CHECK_TRAP64(r.Call(asi64(100), asi64(0)));
@@ -170,7 +181,7 @@
 WASM_EXEC_TEST(I64DivS_Byzero_Const) {
   REQUIRE(I64DivS);
   for (int8_t denom = -2; denom < 8; denom++) {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_DIVS(WASM_GET_LOCAL(0), WASM_I64V_1(denom)));
     for (int64_t val = -7; val < 8; val++) {
       if (denom == 0) {
@@ -184,7 +195,8 @@
 
 WASM_EXEC_TEST(I64DivU) {
   REQUIRE(I64DivU);
-  WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                         MachineType::Uint64());
   BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) {
@@ -199,7 +211,8 @@
 
 WASM_EXEC_TEST(I64DivU_Trap) {
   REQUIRE(I64DivU);
-  WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                         MachineType::Uint64());
   BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(0, r.Call(asu64(0), asu64(100)));
   CHECK_TRAP64(r.Call(asu64(100), asu64(0)));
@@ -210,7 +223,7 @@
 WASM_EXEC_TEST(I64DivU_Byzero_Const) {
   REQUIRE(I64DivU);
   for (uint64_t denom = 0xfffffffffffffffe; denom < 8; denom++) {
-    WasmRunner<uint64_t> r(MachineType::Uint64());
+    WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64());
     BUILD(r, WASM_I64_DIVU(WASM_GET_LOCAL(0), WASM_I64V_1(denom)));
 
     for (uint64_t val = 0xfffffffffffffff0; val < 8; val++) {
@@ -225,7 +238,8 @@
 
 WASM_EXEC_TEST(I64RemS) {
   REQUIRE(I64RemS);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) {
@@ -240,7 +254,8 @@
 
 WASM_EXEC_TEST(I64RemS_Trap) {
   REQUIRE(I64RemS);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_REMS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(33, r.Call(asi64(133), asi64(100)));
   CHECK_EQ(0, r.Call(std::numeric_limits<int64_t>::min(), asi64(-1)));
@@ -251,7 +266,8 @@
 
 WASM_EXEC_TEST(I64RemU) {
   REQUIRE(I64RemU);
-  WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                         MachineType::Uint64());
   BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) {
@@ -266,7 +282,8 @@
 
 WASM_EXEC_TEST(I64RemU_Trap) {
   REQUIRE(I64RemU);
-  WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                         MachineType::Uint64());
   BUILD(r, WASM_I64_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(17, r.Call(asu64(217), asu64(100)));
   CHECK_TRAP64(r.Call(asu64(100), asu64(0)));
@@ -276,7 +293,8 @@
 
 WASM_EXEC_TEST(I64And) {
   REQUIRE(I64And);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_AND(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) & (*j), r.Call(*i, *j)); }
@@ -285,7 +303,8 @@
 
 WASM_EXEC_TEST(I64Ior) {
   REQUIRE(I64Ior);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_IOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) | (*j), r.Call(*i, *j)); }
@@ -294,7 +313,8 @@
 
 WASM_EXEC_TEST(I64Xor) {
   REQUIRE(I64Xor);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ((*i) ^ (*j), r.Call(*i, *j)); }
@@ -304,7 +324,8 @@
 WASM_EXEC_TEST(I64Shl) {
   REQUIRE(I64Shl);
   {
-    WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+    WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                           MachineType::Uint64());
     BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
     FOR_UINT64_INPUTS(i) {
@@ -315,22 +336,22 @@
     }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 0, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 32, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 20, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHL(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i << 40, r.Call(*i)); }
   }
@@ -339,7 +360,8 @@
 WASM_EXEC_TEST(I64ShrU) {
   REQUIRE(I64ShrU);
   {
-    WasmRunner<uint64_t> r(MachineType::Uint64(), MachineType::Uint64());
+    WasmRunner<uint64_t> r(execution_mode, MachineType::Uint64(),
+                           MachineType::Uint64());
     BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
     FOR_UINT64_INPUTS(i) {
@@ -350,22 +372,22 @@
     }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 0, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 32, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 20, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SHR(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
     FOR_UINT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
   }
@@ -374,7 +396,8 @@
 WASM_EXEC_TEST(I64ShrS) {
   REQUIRE(I64ShrS);
   {
-    WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                          MachineType::Int64());
     BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
     FOR_INT64_INPUTS(i) {
@@ -385,22 +408,22 @@
     }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(0)));
     FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 0, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(32)));
     FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 32, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(20)));
     FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 20, r.Call(*i)); }
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
     BUILD(r, WASM_I64_SAR(WASM_GET_LOCAL(0), WASM_I64V_1(40)));
     FOR_INT64_INPUTS(i) { CHECK_EQ(*i >> 40, r.Call(*i)); }
   }
@@ -408,7 +431,8 @@
 
 WASM_EXEC_TEST(I64Eq) {
   REQUIRE(I64Eq);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_EQ(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i == *j ? 1 : 0, r.Call(*i, *j)); }
@@ -417,7 +441,8 @@
 
 WASM_EXEC_TEST(I64Ne) {
   REQUIRE(I64Ne);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_NE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i != *j ? 1 : 0, r.Call(*i, *j)); }
@@ -426,7 +451,8 @@
 
 WASM_EXEC_TEST(I64LtS) {
   REQUIRE(I64LtS);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_LTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
@@ -435,7 +461,8 @@
 
 WASM_EXEC_TEST(I64LeS) {
   REQUIRE(I64LeS);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_LES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
@@ -444,7 +471,8 @@
 
 WASM_EXEC_TEST(I64LtU) {
   REQUIRE(I64LtU);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_LTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i < *j ? 1 : 0, r.Call(*i, *j)); }
@@ -453,7 +481,8 @@
 
 WASM_EXEC_TEST(I64LeU) {
   REQUIRE(I64LeU);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_LEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i <= *j ? 1 : 0, r.Call(*i, *j)); }
@@ -462,7 +491,8 @@
 
 WASM_EXEC_TEST(I64GtS) {
   REQUIRE(I64GtS);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_GTS(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); }
@@ -471,7 +501,8 @@
 
 WASM_EXEC_TEST(I64GeS) {
   REQUIRE(I64GeS);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_GES(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); }
@@ -480,7 +511,8 @@
 
 WASM_EXEC_TEST(I64GtU) {
   REQUIRE(I64GtU);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_GTU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i > *j ? 1 : 0, r.Call(*i, *j)); }
@@ -489,7 +521,8 @@
 
 WASM_EXEC_TEST(I64GeU) {
   REQUIRE(I64GeU);
-  WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_GEU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_UINT64_INPUTS(i) {
     FOR_UINT64_INPUTS(j) { CHECK_EQ(*i >= *j ? 1 : 0, r.Call(*i, *j)); }
@@ -499,7 +532,7 @@
 WASM_EXEC_TEST(I32ConvertI64) {
   REQUIRE(I32ConvertI64);
   FOR_INT64_INPUTS(i) {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     BUILD(r, WASM_I32_CONVERT_I64(WASM_I64V(*i)));
     CHECK_EQ(static_cast<int32_t>(*i), r.Call());
   }
@@ -507,14 +540,14 @@
 
 WASM_EXEC_TEST(I64SConvertI32) {
   REQUIRE(I64SConvertI32);
-  WasmRunner<int64_t> r(MachineType::Int32());
+  WasmRunner<int64_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(I64UConvertI32) {
   REQUIRE(I64UConvertI32);
-  WasmRunner<int64_t> r(MachineType::Uint32());
+  WasmRunner<int64_t> r(execution_mode, 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)); }
 }
@@ -529,7 +562,7 @@
                 {26, 0x1123456782345678},
                 {38, 0xffedcba09edcba09}};
 
-  WasmRunner<int64_t> r(MachineType::Uint64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_I64_POPCNT(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(values[i].expected, r.Call(values[i].input));
@@ -538,7 +571,7 @@
 
 WASM_EXEC_TEST(F32SConvertI64) {
   REQUIRE(F32SConvertI64);
-  WasmRunner<float> r(MachineType::Int64());
+  WasmRunner<float> r(execution_mode, 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)); }
 }
@@ -624,7 +657,7 @@
                 {0x8000008000000001, 0x5f000001},
                 {0x8000000000000400, 0x5f000000},
                 {0x8000000000000401, 0x5f000000}};
-  WasmRunner<float> r(MachineType::Uint64());
+  WasmRunner<float> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_F32_UCONVERT_I64(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(bit_cast<float>(values[i].expected), r.Call(values[i].input));
@@ -633,7 +666,7 @@
 
 WASM_EXEC_TEST(F64SConvertI64) {
   REQUIRE(F64SConvertI64);
-  WasmRunner<double> r(MachineType::Int64());
+  WasmRunner<double> r(execution_mode, 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)); }
 }
@@ -718,7 +751,7 @@
                 {0x8000008000000001, 0x43e0000010000000},
                 {0x8000000000000400, 0x43e0000000000000},
                 {0x8000000000000401, 0x43e0000000000001}};
-  WasmRunner<double> r(MachineType::Uint64());
+  WasmRunner<double> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_F64_UCONVERT_I64(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(bit_cast<double>(values[i].expected), r.Call(values[i].input));
@@ -726,7 +759,7 @@
 }
 
 WASM_EXEC_TEST(I64SConvertF32a) {
-  WasmRunner<int64_t> r(MachineType::Float32());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -740,7 +773,7 @@
 }
 
 WASM_EXEC_TEST(I64SConvertF64a) {
-  WasmRunner<int64_t> r(MachineType::Float64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -754,7 +787,7 @@
 }
 
 WASM_EXEC_TEST(I64UConvertF32a) {
-  WasmRunner<uint64_t> r(MachineType::Float32());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -768,7 +801,7 @@
 }
 
 WASM_EXEC_TEST(I64UConvertF64a) {
-  WasmRunner<uint64_t> r(MachineType::Float64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -789,7 +822,7 @@
   param_types[4] = kAstI32;
   FunctionSig sig(1, 19, param_types);
   for (int i = 0; i < 19; i++) {
-    TestingModule module;
+    TestingModule module(execution_mode);
     WasmFunctionCompiler t(&sig, &module);
     if (i == 2 || i == 3) {
       continue;
@@ -819,40 +852,44 @@
   }
 }
 
-void TestI64Binop(WasmOpcode opcode, int64_t expected, int64_t a, int64_t b) {
+void TestI64Binop(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                  int64_t expected, int64_t a, int64_t b) {
   {
-    WasmRunner<int64_t> r;
+    WasmRunner<int64_t> r(execution_mode);
     // return K op K
     BUILD(r, WASM_BINOP(opcode, WASM_I64V(a), WASM_I64V(b)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+    WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                          MachineType::Int64());
     // return a op b
     BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
     CHECK_EQ(expected, r.Call(a, b));
   }
 }
 
-void TestI64Cmp(WasmOpcode opcode, int64_t expected, int64_t a, int64_t b) {
+void TestI64Cmp(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                int64_t expected, int64_t a, int64_t b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return K op K
     BUILD(r, WASM_BINOP(opcode, WASM_I64V(a), WASM_I64V(b)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Int64(), MachineType::Int64());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Int64(),
+                          MachineType::Int64());
     // return a op b
     BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
     CHECK_EQ(expected, r.Call(a, b));
   }
 }
 
-#define TEST_I64_BINOP(name, expected, a, b)     \
-  do {                                           \
-    if (WASM_64 || kSupported_##name)            \
-      TestI64Binop(kExpr##name, expected, a, b); \
+#define TEST_I64_BINOP(name, expected, a, b)                     \
+  do {                                                           \
+    if (WASM_64 || kSupported_##name)                            \
+      TestI64Binop(execution_mode, kExpr##name, expected, a, b); \
   } while (false)
 
 WASM_EXEC_TEST(I64Binops) {
@@ -887,9 +924,10 @@
   TEST_I64_BINOP(I64Rol, 8728493013947314237, 0xe07af243ac4d219d, 15);
 }
 
-#define TEST_I64_CMP(name, expected, a, b)                                     \
-  do {                                                                         \
-    if (WASM_64 || kSupported_##name) TestI64Cmp(kExpr##name, expected, a, b); \
+#define TEST_I64_CMP(name, expected, a, b)                     \
+  do {                                                         \
+    if (WASM_64 || kSupported_##name)                          \
+      TestI64Cmp(execution_mode, kExpr##name, expected, a, b); \
   } while (false)
 
 WASM_EXEC_TEST(I64Compare) {
@@ -944,7 +982,7 @@
                 {62, 0x0000000000000002}, {63, 0x0000000000000001},
                 {64, 0x0000000000000000}};
 
-  WasmRunner<int64_t> r(MachineType::Uint64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_I64_CLZ(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(values[i].expected, r.Call(values[i].input));
@@ -990,7 +1028,7 @@
                 {2, 0x000000009afdbc84},  {1, 0x000000009afdbc82},
                 {0, 0x000000009afdbc81}};
 
-  WasmRunner<int64_t> r(MachineType::Uint64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_I64_CTZ(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(values[i].expected, r.Call(values[i].input));
@@ -1008,7 +1046,7 @@
                 {26, 0x1123456782345678},
                 {38, 0xffedcba09edcba09}};
 
-  WasmRunner<int64_t> r(MachineType::Uint64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Uint64());
   BUILD(r, WASM_I64_POPCNT(WASM_GET_LOCAL(0)));
   for (size_t i = 0; i < arraysize(values); i++) {
     CHECK_EQ(values[i].expected, r.Call(values[i].input));
@@ -1017,29 +1055,30 @@
 
 // Test the WasmRunner with an Int64 return value and different numbers of
 // Int64 parameters.
-TEST(Run_TestI64WasmRunner) {
+WASM_EXEC_TEST(I64WasmRunner) {
   REQUIRE(I64Param);
   REQUIRE(I64Xor);
-  {FOR_INT64_INPUTS(i){WasmRunner<int64_t> r;
+  {FOR_INT64_INPUTS(i){WasmRunner<int64_t> r(execution_mode);
   BUILD(r, WASM_I64V(*i));
   CHECK_EQ(*i, r.Call());
 }
 }
 {
-  WasmRunner<int64_t> r(MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64());
   BUILD(r, WASM_GET_LOCAL(0));
   FOR_INT64_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 {
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT64_INPUTS(i) {
     FOR_INT64_INPUTS(j) { CHECK_EQ(*i ^ *j, r.Call(*i, *j)); }
   }
 }
 {
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64(),
-                        MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64(), MachineType::Int64());
   BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0),
                         WASM_I64_XOR(WASM_GET_LOCAL(1), WASM_GET_LOCAL(2))));
   FOR_INT64_INPUTS(i) {
@@ -1051,8 +1090,9 @@
   }
 }
 {
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64(),
-                        MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64(), MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_XOR(WASM_GET_LOCAL(0),
                         WASM_I64_XOR(WASM_GET_LOCAL(1),
                                      WASM_I64_XOR(WASM_GET_LOCAL(2),
@@ -1072,7 +1112,7 @@
   REQUIRE(I64Sub);
   // Build the target function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.l_ll(), &module);
   BUILD(t, WASM_I64_SUB(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   uint32_t index = t.CompileAndAdd();
@@ -1102,7 +1142,7 @@
                   kExprI64LoadMem};
 
   for (size_t m = 0; m < arraysize(loads); m++) {
-    TestingModule module;
+    TestingModule module(execution_mode);
     byte* memory = module.AddMemoryElems<byte>(16);
     WasmRunner<int64_t> r(&module);
 
@@ -1138,7 +1178,7 @@
 
 WASM_EXEC_TEST(I64SConvertF32b) {
   REQUIRE(I64SConvertF32);
-  WasmRunner<int64_t> r(MachineType::Float32());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I64_SCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -1153,7 +1193,7 @@
 
 WASM_EXEC_TEST(I64SConvertF64b) {
   REQUIRE(I64SConvertF64);
-  WasmRunner<int64_t> r(MachineType::Float64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I64_SCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -1168,7 +1208,7 @@
 
 WASM_EXEC_TEST(I64UConvertF32b) {
   REQUIRE(I64UConvertF32);
-  WasmRunner<uint64_t> r(MachineType::Float32());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I64_UCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -1182,7 +1222,7 @@
 
 WASM_EXEC_TEST(I64UConvertF64b) {
   REQUIRE(I64UConvertF64);
-  WasmRunner<uint64_t> r(MachineType::Float64());
+  WasmRunner<uint64_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I64_UCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -1196,7 +1236,7 @@
 
 WASM_EXEC_TEST(I64ReinterpretF64) {
   REQUIRE(I64ReinterpretF64);
-  TestingModule module;
+  TestingModule module(execution_mode);
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
   WasmRunner<int64_t> r(&module);
 
@@ -1212,7 +1252,7 @@
 
 WASM_EXEC_TEST(F64ReinterpretI64) {
   REQUIRE(F64ReinterpretI64);
-  TestingModule module;
+  TestingModule module(execution_mode);
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
   WasmRunner<int64_t> r(&module, MachineType::Int64());
 
@@ -1230,7 +1270,7 @@
 
 WASM_EXEC_TEST(LoadMemI64) {
   REQUIRE(I64LoadStore);
-  TestingModule module;
+  TestingModule module(execution_mode);
   int64_t* memory = module.AddMemoryElems<int64_t>(8);
   module.RandomizeMemory(1111);
   WasmRunner<int64_t> r(&module);
@@ -1247,13 +1287,35 @@
   CHECK_EQ(77777777, r.Call());
 }
 
+WASM_EXEC_TEST(LoadMemI64_alignment) {
+  REQUIRE(I64LoadStore);
+  TestingModule module(execution_mode);
+  int64_t* memory = module.AddMemoryElems<int64_t>(8);
+  for (byte alignment = 0; alignment <= 3; alignment++) {
+    module.RandomizeMemory(1111);
+    WasmRunner<int64_t> r(&module);
+
+    BUILD(r,
+          WASM_LOAD_MEM_ALIGNMENT(MachineType::Int64(), WASM_I8(0), alignment));
+
+    memory[0] = 0xaabbccdd00112233LL;
+    CHECK_EQ(0xaabbccdd00112233LL, r.Call());
+
+    memory[0] = 0x33aabbccdd001122LL;
+    CHECK_EQ(0x33aabbccdd001122LL, r.Call());
+
+    memory[0] = 77777777;
+    CHECK_EQ(77777777, r.Call());
+  }
+}
+
 WASM_EXEC_TEST(MemI64_Sum) {
   REQUIRE(I64LoadStore);
   REQUIRE(I64Add);
   REQUIRE(I64Sub);
   REQUIRE(I64Phi);
   const int kNumElems = 20;
-  TestingModule module;
+  TestingModule module(execution_mode);
   uint64_t* memory = module.AddMemoryElems<uint64_t>(kNumElems);
   WasmRunner<uint64_t> r(&module, MachineType::Int32());
   const byte kSum = r.AllocateLocal(kAstI64);
@@ -1283,12 +1345,29 @@
   }
 }
 
+WASM_EXEC_TEST(StoreMemI64_alignment) {
+  TestingModule module(execution_mode);
+  int64_t* memory = module.AddMemoryElems<int64_t>(4);
+  const int64_t kWritten = 0x12345678abcd0011ll;
+
+  for (byte i = 0; i <= 3; i++) {
+    WasmRunner<int64_t> r(&module, MachineType::Int64());
+    BUILD(r, WASM_STORE_MEM_ALIGNMENT(MachineType::Int64(), WASM_ZERO, i,
+                                      WASM_GET_LOCAL(0)));
+    module.RandomizeMemory(1111);
+    memory[0] = 0;
+
+    CHECK_EQ(kWritten, r.Call(kWritten));
+    CHECK_EQ(kWritten, memory[0]);
+  }
+}
+
 WASM_EXEC_TEST(I64Global) {
   REQUIRE(I64LoadStore);
   REQUIRE(I64SConvertI32);
   REQUIRE(I64And);
   REQUIRE(DepthFirst);
-  TestingModule module;
+  TestingModule module(execution_mode);
   int64_t* global = module.AddGlobal<int64_t>(MachineType::Int64());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   // global = global + p0
@@ -1308,7 +1387,7 @@
 WASM_EXEC_TEST(I64Eqz) {
   REQUIRE(I64Eq);
 
-  WasmRunner<int32_t> r(MachineType::Int64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int64());
   BUILD(r, WASM_I64_EQZ(WASM_GET_LOCAL(0)));
 
   FOR_INT64_INPUTS(i) {
@@ -1319,7 +1398,8 @@
 
 WASM_EXEC_TEST(I64Ror) {
   REQUIRE(I64Ror);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_ROR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_UINT64_INPUTS(i) {
@@ -1332,7 +1412,8 @@
 
 WASM_EXEC_TEST(I64Rol) {
   REQUIRE(I64Rol);
-  WasmRunner<int64_t> r(MachineType::Int64(), MachineType::Int64());
+  WasmRunner<int64_t> r(execution_mode, MachineType::Int64(),
+                        MachineType::Int64());
   BUILD(r, WASM_I64_ROL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_UINT64_INPUTS(i) {
@@ -1342,3 +1423,153 @@
     }
   }
 }
+
+WASM_EXEC_TEST(StoreMem_offset_oob_i64) {
+  TestingModule module(execution_mode);
+  byte* memory = module.AddMemoryElems<byte>(32);
+
+  static const MachineType machineTypes[] = {
+      MachineType::Int8(),   MachineType::Uint8(),  MachineType::Int16(),
+      MachineType::Uint16(), MachineType::Int32(),  MachineType::Uint32(),
+      MachineType::Int64(),  MachineType::Uint64(), MachineType::Float32(),
+      MachineType::Float64()};
+
+  for (size_t m = 0; m < arraysize(machineTypes); m++) {
+    module.RandomizeMemory(1119 + static_cast<int>(m));
+    WasmRunner<int32_t> r(&module, MachineType::Uint32());
+
+    BUILD(r, WASM_STORE_MEM_OFFSET(machineTypes[m], 8, WASM_GET_LOCAL(0),
+                                   WASM_LOAD_MEM(machineTypes[m], WASM_ZERO)),
+          WASM_ZERO);
+
+    byte memsize = WasmOpcodes::MemSize(machineTypes[m]);
+    uint32_t boundary = 24 - memsize;
+    CHECK_EQ(0, r.Call(boundary));  // in bounds.
+    CHECK_EQ(0, memcmp(&memory[0], &memory[8 + boundary], memsize));
+
+    for (uint32_t offset = boundary + 1; offset < boundary + 19; offset++) {
+      CHECK_TRAP(r.Call(offset));  // out of bounds.
+    }
+  }
+}
+
+#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)
+
+static void CompileCallIndirectMany(LocalType param) {
+  // Make sure we don't run out of registers when compiling indirect calls
+  // with many many parameters.
+  TestSignatures sigs;
+  for (byte num_params = 0; num_params < 40; num_params++) {
+    v8::base::AccountingAllocator allocator;
+    Zone zone(&allocator);
+    HandleScope scope(CcTest::InitIsolateOnce());
+    TestingModule module(kExecuteCompiled);
+    FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params);
+
+    module.AddSignature(sig);
+    module.AddSignature(sig);
+    module.AddIndirectFunctionTable(nullptr, 0);
+
+    WasmFunctionCompiler t(sig, &module);
+
+    std::vector<byte> code;
+    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_i64) { CompileCallIndirectMany(kAstI64); }
+
+static void Run_WasmMixedCall_N(WasmExecutionMode execution_mode, int start) {
+  const int kExpected = 6333;
+  const int kElemSize = 8;
+  TestSignatures sigs;
+
+  static MachineType mixed[] = {
+      MachineType::Int32(),   MachineType::Float32(), MachineType::Int64(),
+      MachineType::Float64(), MachineType::Float32(), MachineType::Int64(),
+      MachineType::Int32(),   MachineType::Float64(), MachineType::Float32(),
+      MachineType::Float64(), MachineType::Int32(),   MachineType::Int64(),
+      MachineType::Int32(),   MachineType::Int32()};
+
+  int num_params = static_cast<int>(arraysize(mixed)) - start;
+  for (int which = 0; which < num_params; which++) {
+    v8::base::AccountingAllocator allocator;
+    Zone zone(&allocator);
+    TestingModule module(execution_mode);
+    module.AddMemory(1024);
+    MachineType* memtypes = &mixed[start];
+    MachineType result = memtypes[which];
+
+    // =========================================================================
+    // Build the selector function.
+    // =========================================================================
+    uint32_t index;
+    FunctionSig::Builder b(&zone, 1, num_params);
+    b.AddReturn(WasmOpcodes::LocalTypeFor(result));
+    for (int i = 0; i < num_params; i++) {
+      b.AddParam(WasmOpcodes::LocalTypeFor(memtypes[i]));
+    }
+    WasmFunctionCompiler t(b.Build(), &module);
+    BUILD(t, WASM_GET_LOCAL(which));
+    index = t.CompileAndAdd();
+
+    // =========================================================================
+    // Build the calling function.
+    // =========================================================================
+    WasmRunner<int32_t> r(&module);
+    std::vector<byte> code;
+
+    // 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));
+
+    r.Build(&code[0], &code[0] + code.size());
+
+    // Run the code.
+    for (int t = 0; t < 10; t++) {
+      module.RandomizeMemory();
+      CHECK_EQ(kExpected, r.Call());
+
+      int size = WasmOpcodes::MemSize(result);
+      for (int i = 0; i < size; i++) {
+        int base = (which + 1) * kElemSize;
+        byte expected = module.raw_mem_at<byte>(base + i);
+        byte result = module.raw_mem_at<byte>(i);
+        CHECK_EQ(expected, result);
+      }
+    }
+  }
+}
+
+WASM_EXEC_TEST(MixedCall_i64_0) { Run_WasmMixedCall_N(execution_mode, 0); }
+WASM_EXEC_TEST(MixedCall_i64_1) { Run_WasmMixedCall_N(execution_mode, 1); }
+WASM_EXEC_TEST(MixedCall_i64_2) { Run_WasmMixedCall_N(execution_mode, 2); }
+WASM_EXEC_TEST(MixedCall_i64_3) { Run_WasmMixedCall_N(execution_mode, 3); }
diff --git a/test/cctest/wasm/test-run-wasm-asmjs.cc b/test/cctest/wasm/test-run-wasm-asmjs.cc
index c597fc8..4d39dd6 100644
--- a/test/cctest/wasm/test-run-wasm-asmjs.cc
+++ b/test/cctest/wasm/test-run-wasm-asmjs.cc
@@ -26,8 +26,20 @@
 #define RET(x) x, kExprReturn, 1
 #define RET_I8(x) kExprI8Const, x, kExprReturn, 1
 
+namespace {
+uint32_t GetMatchingRelocInfoCount(Handle<Code> code, RelocInfo::Mode rmode) {
+  int filter = 1 << rmode;
+  uint32_t ret = 0;
+  for (RelocIterator it(*code, filter); !it.done(); it.next()) {
+    ++ret;
+  }
+  return ret;
+}
+}
+
 WASM_EXEC_TEST(Int32AsmjsDivS) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -38,7 +50,8 @@
 }
 
 WASM_EXEC_TEST(Int32AsmjsRemS) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -49,7 +62,8 @@
 }
 
 WASM_EXEC_TEST(Int32AsmjsDivU) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -60,7 +74,8 @@
 }
 
 WASM_EXEC_TEST(Int32AsmjsRemU) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -71,7 +86,7 @@
 }
 
 WASM_EXEC_TEST(I32AsmjsSConvertF32) {
-  WasmRunner<int32_t> r(MachineType::Float32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_UNOP(kExprI32AsmjsSConvertF32, WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -81,7 +96,7 @@
 }
 
 WASM_EXEC_TEST(I32AsmjsSConvertF64) {
-  WasmRunner<int32_t> r(MachineType::Float64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_UNOP(kExprI32AsmjsSConvertF64, WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -91,7 +106,7 @@
 }
 
 WASM_EXEC_TEST(I32AsmjsUConvertF32) {
-  WasmRunner<uint32_t> r(MachineType::Float32());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_UNOP(kExprI32AsmjsUConvertF32, WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -101,7 +116,7 @@
 }
 
 WASM_EXEC_TEST(I32AsmjsUConvertF64) {
-  WasmRunner<uint32_t> r(MachineType::Float64());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_UNOP(kExprI32AsmjsUConvertF64, WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -111,7 +126,7 @@
 }
 
 WASM_EXEC_TEST(LoadMemI32_oob_asm) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Uint32());
   module.RandomizeMemory(1112);
@@ -131,7 +146,7 @@
 }
 
 WASM_EXEC_TEST(LoadMemF32_oob_asm) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   float* memory = module.AddMemoryElems<float>(8);
   WasmRunner<float> r(&module, MachineType::Uint32());
   module.RandomizeMemory(1112);
@@ -151,7 +166,7 @@
 }
 
 WASM_EXEC_TEST(LoadMemF64_oob_asm) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   double* memory = module.AddMemoryElems<double>(8);
   WasmRunner<double> r(&module, MachineType::Uint32());
   module.RandomizeMemory(1112);
@@ -173,7 +188,7 @@
 }
 
 WASM_EXEC_TEST(StoreMemI32_oob_asm) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Uint32(), MachineType::Uint32());
   module.RandomizeMemory(1112);
@@ -193,3 +208,90 @@
     CHECK_EQ(7777, r.Call(offset, 7777));
   }
 }
+
+#define FOREACH_INT_CHECKED_LOAD_OP(TEST_BODY) \
+  TEST_BODY(kExprI32AsmjsLoadMem8S)            \
+  TEST_BODY(kExprI32AsmjsLoadMem8U)            \
+  TEST_BODY(kExprI32AsmjsLoadMem16S)           \
+  TEST_BODY(kExprI32AsmjsLoadMem16U)           \
+  TEST_BODY(kExprI32AsmjsLoadMem)
+
+#define FOREACH_INT_CHECKED_STORE_OP(TEST_BODY) \
+  TEST_BODY(kExprI32AsmjsStoreMem8)             \
+  TEST_BODY(kExprI32AsmjsStoreMem16)            \
+  TEST_BODY(kExprI32AsmjsStoreMem)
+
+#define INT_LOAD_TEST(OP_TYPE)                                                \
+  TEST(RunWasm_AsmCheckedRelocInfo##OP_TYPE) {                                \
+    TestingModule module(kExecuteCompiled);                                   \
+    WasmRunner<int32_t> r(&module, MachineType::Uint32());                    \
+    BUILD(r, WASM_UNOP(OP_TYPE, WASM_GET_LOCAL(0)));                          \
+    CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],  \
+                                          RelocInfo::WASM_MEMORY_REFERENCE)); \
+    CHECK_NE(                                                                 \
+        0, GetMatchingRelocInfoCount(module.instance->function_code[0],       \
+                                     RelocInfo::WASM_MEMORY_SIZE_REFERENCE)); \
+  }
+
+FOREACH_INT_CHECKED_LOAD_OP(INT_LOAD_TEST)
+
+#define INT_STORE_TEST(OP_TYPE)                                               \
+  TEST(RunWasm_AsmCheckedRelocInfo##OP_TYPE) {                                \
+    TestingModule module(kExecuteCompiled);                                   \
+    WasmRunner<int32_t> r(&module, MachineType::Uint32(),                     \
+                          MachineType::Uint32());                             \
+    BUILD(r, WASM_BINOP(OP_TYPE, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));      \
+    CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],  \
+                                          RelocInfo::WASM_MEMORY_REFERENCE)); \
+    CHECK_NE(                                                                 \
+        0, GetMatchingRelocInfoCount(module.instance->function_code[0],       \
+                                     RelocInfo::WASM_MEMORY_SIZE_REFERENCE)); \
+  }
+
+FOREACH_INT_CHECKED_STORE_OP(INT_STORE_TEST)
+
+TEST(RunWasm_AsmCheckedLoadFloat32RelocInfo) {
+  TestingModule module(kExecuteCompiled);
+  WasmRunner<float> r(&module, MachineType::Uint32());
+  BUILD(r, WASM_UNOP(kExprF32AsmjsLoadMem, WASM_GET_LOCAL(0)));
+
+  CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_REFERENCE));
+  CHECK_NE(0, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+}
+
+TEST(RunWasm_AsmCheckedStoreFloat32RelocInfo) {
+  TestingModule module(kExecuteCompiled);
+  WasmRunner<float> r(&module, MachineType::Uint32(), MachineType::Float32());
+  BUILD(r, WASM_BINOP(kExprF32AsmjsStoreMem, WASM_GET_LOCAL(0),
+                      WASM_GET_LOCAL(1)));
+
+  CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_REFERENCE));
+  CHECK_NE(0, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+}
+
+TEST(RunWasm_AsmCheckedLoadFloat64RelocInfo) {
+  TestingModule module(kExecuteCompiled);
+  WasmRunner<double> r(&module, MachineType::Uint32());
+  BUILD(r, WASM_UNOP(kExprF64AsmjsLoadMem, WASM_GET_LOCAL(0)));
+
+  CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_REFERENCE));
+  CHECK_NE(0, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+}
+
+TEST(RunWasm_AsmCheckedStoreFloat64RelocInfo) {
+  TestingModule module(kExecuteCompiled);
+  WasmRunner<double> r(&module, MachineType::Uint32(), MachineType::Float64());
+  BUILD(r, WASM_BINOP(kExprF64AsmjsStoreMem, WASM_GET_LOCAL(0),
+                      WASM_GET_LOCAL(1)));
+
+  CHECK_EQ(1, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_REFERENCE));
+  CHECK_NE(0, GetMatchingRelocInfoCount(module.instance->function_code[0],
+                                        RelocInfo::WASM_MEMORY_SIZE_REFERENCE));
+}
diff --git a/test/cctest/wasm/test-run-wasm-interpreter.cc b/test/cctest/wasm/test-run-wasm-interpreter.cc
new file mode 100644
index 0000000..42b0f88
--- /dev/null
+++ b/test/cctest/wasm/test-run-wasm-interpreter.cc
@@ -0,0 +1,289 @@
+// 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/wasm/wasm-macro-gen.h"
+
+#include "src/wasm/wasm-interpreter.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;
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+
+TEST(Run_WasmInt8Const_i) {
+  WasmRunner<int32_t> r(kExecuteInterpreted);
+  const byte kExpectedValue = 109;
+  // return(kExpectedValue)
+  BUILD(r, WASM_I8(kExpectedValue));
+  CHECK_EQ(kExpectedValue, r.Call());
+}
+
+TEST(Run_WasmIfElse) {
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Int32());
+  BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_I8(9), WASM_I8(10)));
+  CHECK_EQ(10, r.Call(0));
+  CHECK_EQ(9, r.Call(1));
+}
+
+TEST(Run_WasmIfReturn) {
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Int32());
+  BUILD(r, WASM_IF(WASM_GET_LOCAL(0), WASM_RETURN1(WASM_I8(77))), WASM_I8(65));
+  CHECK_EQ(65, r.Call(0));
+  CHECK_EQ(77, r.Call(1));
+}
+
+TEST(Run_WasmNopsN) {
+  const int kMaxNops = 10;
+  byte code[kMaxNops + 2];
+  for (int nops = 0; nops < kMaxNops; nops++) {
+    byte expected = static_cast<byte>(20 + nops);
+    memset(code, kExprNop, sizeof(code));
+    code[nops] = kExprI8Const;
+    code[nops + 1] = expected;
+
+    WasmRunner<int32_t> r(kExecuteInterpreted);
+    r.Build(code, code + nops + 2);
+    CHECK_EQ(expected, r.Call());
+  }
+}
+
+TEST(Run_WasmConstsN) {
+  const int kMaxConsts = 10;
+  byte code[kMaxConsts * 2];
+  for (int count = 1; count < kMaxConsts; count++) {
+    for (int i = 0; i < count; i++) {
+      code[i * 2] = kExprI8Const;
+      code[i * 2 + 1] = static_cast<byte>(count * 10 + i);
+    }
+    byte expected = static_cast<byte>(count * 11 - 1);
+
+    WasmRunner<int32_t> r(kExecuteInterpreted);
+    r.Build(code, code + (count * 2));
+    CHECK_EQ(expected, r.Call());
+  }
+}
+
+TEST(Run_WasmBlocksN) {
+  const int kMaxNops = 10;
+  const int kExtra = 4;
+  byte code[kMaxNops + kExtra];
+  for (int nops = 0; nops < kMaxNops; nops++) {
+    byte expected = static_cast<byte>(30 + nops);
+    memset(code, kExprNop, sizeof(code));
+    code[0] = kExprBlock;
+    code[1 + nops] = kExprI8Const;
+    code[1 + nops + 1] = expected;
+    code[1 + nops + 2] = kExprEnd;
+
+    WasmRunner<int32_t> r(kExecuteInterpreted);
+    r.Build(code, code + nops + kExtra);
+    CHECK_EQ(expected, r.Call());
+  }
+}
+
+TEST(Run_WasmBlockBreakN) {
+  const int kMaxNops = 10;
+  const int kExtra = 6;
+  byte code[kMaxNops + kExtra];
+  for (int nops = 0; nops < kMaxNops; nops++) {
+    // Place the break anywhere within the block.
+    for (int index = 0; index < nops; index++) {
+      memset(code, kExprNop, sizeof(code));
+      code[0] = kExprBlock;
+      code[sizeof(code) - 1] = kExprEnd;
+
+      int expected = nops * 11 + index;
+      code[1 + index + 0] = kExprI8Const;
+      code[1 + index + 1] = static_cast<byte>(expected);
+      code[1 + index + 2] = kExprBr;
+      code[1 + index + 3] = ARITY_1;
+      code[1 + index + 4] = 0;
+
+      WasmRunner<int32_t> r(kExecuteInterpreted);
+      r.Build(code, code + kMaxNops + kExtra);
+      CHECK_EQ(expected, r.Call());
+    }
+  }
+}
+
+TEST(Run_Wasm_nested_ifs_i) {
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Int32(),
+                        MachineType::Int32());
+
+  BUILD(r, WASM_IF_ELSE(
+               WASM_GET_LOCAL(0),
+               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));
+}
+
+// Make tests more robust by not hard-coding offsets of various operations.
+// The {Find} method finds the offsets for the given bytecodes, returning
+// the offsets in an array.
+SmartArrayPointer<int> Find(byte* code, size_t code_size, int n, ...) {
+  va_list vl;
+  va_start(vl, n);
+
+  SmartArrayPointer<int> offsets(new int[n]);
+
+  for (int i = 0; i < n; i++) {
+    offsets[i] = -1;
+  }
+
+  int pos = 0;
+  WasmOpcode current = static_cast<WasmOpcode>(va_arg(vl, int));
+  for (size_t i = 0; i < code_size; i++) {
+    if (code[i] == current) {
+      offsets[pos++] = static_cast<int>(i);
+      if (pos == n) break;
+      current = static_cast<WasmOpcode>(va_arg(vl, int));
+    }
+  }
+  va_end(vl);
+
+  return offsets;
+}
+
+TEST(Breakpoint_I32Add) {
+  static const int kLocalsDeclSize = 1;
+  static const int kNumBreakpoints = 3;
+  byte code[] = {WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))};
+  SmartArrayPointer<int> offsets =
+      Find(code, sizeof(code), kNumBreakpoints, kExprGetLocal, kExprGetLocal,
+           kExprI32Add);
+
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Uint32(),
+                        MachineType::Uint32());
+
+  r.Build(code, code + arraysize(code));
+
+  WasmInterpreter* interpreter = r.interpreter();
+  WasmInterpreter::Thread* thread = interpreter->GetThread(0);
+  for (int i = 0; i < kNumBreakpoints; i++) {
+    interpreter->SetBreakpoint(r.function(), kLocalsDeclSize + offsets[i],
+                               true);
+  }
+
+  FOR_UINT32_INPUTS(a) {
+    for (uint32_t b = 11; b < 3000000000u; b += 1000000000u) {
+      thread->Reset();
+      WasmVal args[] = {WasmVal(*a), WasmVal(b)};
+      thread->PushFrame(r.function(), args);
+
+      for (int i = 0; i < kNumBreakpoints; i++) {
+        thread->Run();  // run to next breakpoint
+        // Check the thread stopped at the right pc.
+        CHECK_EQ(WasmInterpreter::PAUSED, thread->state());
+        CHECK_EQ(kLocalsDeclSize + offsets[i], thread->GetBreakpointPc());
+      }
+
+      thread->Run();  // run to completion
+
+      // Check the thread finished with the right value.
+      CHECK_EQ(WasmInterpreter::FINISHED, thread->state());
+      uint32_t expected = (*a) + (b);
+      CHECK_EQ(expected, thread->GetReturnValue().to<uint32_t>());
+    }
+  }
+}
+
+TEST(Step_I32Mul) {
+  static const int kTraceLength = 4;
+  byte code[] = {WASM_I32_MUL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))};
+
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Uint32(),
+                        MachineType::Uint32());
+
+  r.Build(code, code + arraysize(code));
+
+  WasmInterpreter* interpreter = r.interpreter();
+  WasmInterpreter::Thread* thread = interpreter->GetThread(0);
+
+  FOR_UINT32_INPUTS(a) {
+    for (uint32_t b = 33; b < 3000000000u; b += 1000000000u) {
+      thread->Reset();
+      WasmVal args[] = {WasmVal(*a), WasmVal(b)};
+      thread->PushFrame(r.function(), args);
+
+      // Run instructions one by one.
+      for (int i = 0; i < kTraceLength - 1; i++) {
+        thread->Step();
+        // Check the thread stopped.
+        CHECK_EQ(WasmInterpreter::PAUSED, thread->state());
+      }
+
+      // Run last instruction.
+      thread->Step();
+
+      // Check the thread finished with the right value.
+      CHECK_EQ(WasmInterpreter::FINISHED, thread->state());
+      uint32_t expected = (*a) * (b);
+      CHECK_EQ(expected, thread->GetReturnValue().to<uint32_t>());
+    }
+  }
+}
+
+TEST(Breakpoint_I32And_disable) {
+  static const int kLocalsDeclSize = 1;
+  static const int kNumBreakpoints = 1;
+  byte code[] = {WASM_I32_AND(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))};
+  SmartArrayPointer<int> offsets =
+      Find(code, sizeof(code), kNumBreakpoints, kExprI32And);
+
+  WasmRunner<int32_t> r(kExecuteInterpreted, MachineType::Uint32(),
+                        MachineType::Uint32());
+
+  r.Build(code, code + arraysize(code));
+
+  WasmInterpreter* interpreter = r.interpreter();
+  WasmInterpreter::Thread* thread = interpreter->GetThread(0);
+
+  FOR_UINT32_INPUTS(a) {
+    for (uint32_t b = 11; b < 3000000000u; b += 1000000000u) {
+      // Run with and without breakpoints.
+      for (int do_break = 0; do_break < 2; do_break++) {
+        interpreter->SetBreakpoint(r.function(), kLocalsDeclSize + offsets[0],
+                                   do_break);
+        thread->Reset();
+        WasmVal args[] = {WasmVal(*a), WasmVal(b)};
+        thread->PushFrame(r.function(), args);
+
+        if (do_break) {
+          thread->Run();  // run to next breakpoint
+          // Check the thread stopped at the right pc.
+          CHECK_EQ(WasmInterpreter::PAUSED, thread->state());
+          CHECK_EQ(kLocalsDeclSize + offsets[0], thread->GetBreakpointPc());
+        }
+
+        thread->Run();  // run to completion
+
+        // Check the thread finished with the right value.
+        CHECK_EQ(WasmInterpreter::FINISHED, thread->state());
+        uint32_t expected = (*a) & (b);
+        CHECK_EQ(expected, thread->GetReturnValue().to<uint32_t>());
+      }
+    }
+  }
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/test/cctest/wasm/test-run-wasm-module.cc b/test/cctest/wasm/test-run-wasm-module.cc
index 05edd62..7a79d67 100644
--- a/test/cctest/wasm/test-run-wasm-module.cc
+++ b/test/cctest/wasm/test-run-wasm-module.cc
@@ -20,14 +20,24 @@
 using namespace v8::internal::wasm;
 
 namespace {
-void TestModule(WasmModuleIndex* module, int32_t expected_result) {
+void TestModule(Zone* zone, WasmModuleBuilder* builder,
+                int32_t expected_result) {
+  ZoneBuffer buffer(zone);
+  builder->WriteTo(buffer);
+
   Isolate* isolate = CcTest::InitIsolateOnce();
   HandleScope scope(isolate);
   WasmJs::InstallWasmFunctionMap(isolate, isolate->native_context());
   int32_t result =
-      CompileAndRunWasmModule(isolate, module->Begin(), module->End());
+      testing::CompileAndRunWasmModule(isolate, buffer.begin(), buffer.end());
   CHECK_EQ(expected_result, result);
 }
+
+void ExportAsMain(WasmFunctionBuilder* f) {
+  static const char kMainName[] = "main";
+  f->SetExported();
+  f->SetName(kMainName, arraysize(kMainName) - 1);
+}
 }  // namespace
 
 TEST(Run_WasmModule_Return114) {
@@ -40,11 +50,10 @@
   uint16_t f_index = builder->AddFunction();
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
   f->SetSignature(sigs.i_v());
-  f->Exported(1);
+  ExportAsMain(f);
   byte code[] = {WASM_I8(kReturnValue)};
   f->EmitCode(code, sizeof(code));
-  WasmModuleWriter* writer = builder->Build(&zone);
-  TestModule(writer->WriteTo(&zone), kReturnValue);
+  TestModule(&zone, builder, kReturnValue);
 }
 
 TEST(Run_WasmModule_CallAdd) {
@@ -66,11 +75,10 @@
   f = builder->FunctionAt(f2_index);
   f->SetSignature(sigs.i_v());
 
-  f->Exported(1);
+  ExportAsMain(f);
   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);
+  TestModule(&zone, builder, 99);
 }
 
 TEST(Run_WasmModule_ReadLoadedDataSegment) {
@@ -84,15 +92,14 @@
   WasmFunctionBuilder* f = builder->FunctionAt(f_index);
   f->SetSignature(sigs.i_v());
 
-  f->Exported(1);
+  ExportAsMain(f);
   byte code[] = {
       WASM_LOAD_MEM(MachineType::Int32(), WASM_I8(kDataSegmentDest0))};
   f->EmitCode(code, sizeof(code));
   byte data[] = {0xaa, 0xbb, 0xcc, 0xdd};
   builder->AddDataSegment(new (&zone) WasmDataSegmentEncoder(
       &zone, data, sizeof(data), kDataSegmentDest0));
-  WasmModuleWriter* writer = builder->Build(&zone);
-  TestModule(writer->WriteTo(&zone), 0xddccbbaa);
+  TestModule(&zone, builder, 0xddccbbaa);
 }
 
 TEST(Run_WasmModule_CheckMemoryIsZero) {
@@ -107,7 +114,7 @@
   f->SetSignature(sigs.i_v());
 
   uint16_t localIndex = f->AddLocal(kAstI32);
-  f->Exported(1);
+  ExportAsMain(f);
   byte code[] = {WASM_BLOCK(
       2,
       WASM_WHILE(
@@ -117,8 +124,7 @@
               WASM_BRV(2, WASM_I8(-1)), WASM_INC_LOCAL_BY(localIndex, 4))),
       WASM_I8(11))};
   f->EmitCode(code, sizeof(code));
-  WasmModuleWriter* writer = builder->Build(&zone);
-  TestModule(writer->WriteTo(&zone), 11);
+  TestModule(&zone, builder, 11);
 }
 
 TEST(Run_WasmModule_CallMain_recursive) {
@@ -132,7 +138,7 @@
   f->SetSignature(sigs.i_v());
 
   uint16_t localIndex = f->AddLocal(kAstI32);
-  f->Exported(1);
+  ExportAsMain(f);
   byte code[] = {WASM_BLOCK(
       2, WASM_SET_LOCAL(localIndex,
                         WASM_LOAD_MEM(MachineType::Int32(), WASM_ZERO)),
@@ -142,8 +148,7 @@
                               WASM_BRV(1, WASM_CALL_FUNCTION0(0))),
                    WASM_BRV(0, WASM_I8(55))))};
   f->EmitCode(code, sizeof(code));
-  WasmModuleWriter* writer = builder->Build(&zone);
-  TestModule(writer->WriteTo(&zone), 55);
+  TestModule(&zone, builder, 55);
 }
 
 TEST(Run_WasmModule_Global) {
@@ -163,11 +168,10 @@
   uint16_t f2_index = builder->AddFunction();
   f = builder->FunctionAt(f2_index);
   f->SetSignature(sigs.i_v());
-  f->Exported(1);
+  ExportAsMain(f);
   byte code2[] = {WASM_STORE_GLOBAL(global1, WASM_I32V_1(56)),
                   WASM_STORE_GLOBAL(global2, WASM_I32V_1(41)),
                   WASM_RETURN1(WASM_CALL_FUNCTION0(f1_index))};
   f->EmitCode(code2, sizeof(code2));
-  WasmModuleWriter* writer = builder->Build(&zone);
-  TestModule(writer->WriteTo(&zone), 97);
+  TestModule(&zone, builder, 97);
 }
diff --git a/test/cctest/wasm/test-run-wasm-relocation.cc b/test/cctest/wasm/test-run-wasm-relocation.cc
new file mode 100644
index 0000000..6b1f643
--- /dev/null
+++ b/test/cctest/wasm/test-run-wasm-relocation.cc
@@ -0,0 +1,64 @@
+// 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 "test/cctest/cctest.h"
+#include "test/cctest/compiler/c-signature.h"
+#include "test/cctest/wasm/wasm-run-utils.h"
+
+using namespace v8::internal;
+using namespace v8::internal::compiler;
+
+#define FOREACH_TYPE(TEST_BODY)             \
+  TEST_BODY(int8_t, Int8, WASM_I32_ADD)     \
+  TEST_BODY(uint8_t, Uint8, WASM_I32_ADD)   \
+  TEST_BODY(int16_t, Int16, WASM_I32_ADD)   \
+  TEST_BODY(uint16_t, Uint16, WASM_I32_ADD) \
+  TEST_BODY(int32_t, Int32, WASM_I32_ADD)   \
+  TEST_BODY(uint32_t, Uint32, WASM_I32_ADD) \
+  TEST_BODY(float, Float32, WASM_F32_ADD)   \
+  TEST_BODY(double, Float64, WASM_F64_ADD)
+
+#define LOAD_STORE_GLOBAL_TEST_BODY(C_TYPE, MACHINE_TYPE, ADD)                \
+  TEST(WasmRelocateGlobal##MACHINE_TYPE) {                                    \
+    TestingModule module(kExecuteCompiled);                                   \
+    module.AddGlobal<int32_t>(MachineType::MACHINE_TYPE());                   \
+    module.AddGlobal<int32_t>(MachineType::MACHINE_TYPE());                   \
+                                                                              \
+    WasmRunner<C_TYPE> r(&module, MachineType::MACHINE_TYPE());               \
+                                                                              \
+    /* global = global + p0 */                                                \
+    BUILD(r,                                                                  \
+          WASM_STORE_GLOBAL(1, ADD(WASM_LOAD_GLOBAL(0), WASM_GET_LOCAL(0)))); \
+    CHECK_EQ(1, module.instance->function_code.size());                       \
+                                                                              \
+    int filter = 1 << RelocInfo::WASM_GLOBAL_REFERENCE;                       \
+                                                                              \
+    Handle<Code> code = module.instance->function_code[0];                    \
+                                                                              \
+    Address old_start = module.instance->globals_start;                       \
+    Address new_start = old_start + 1;                                        \
+                                                                              \
+    Address old_addresses[2];                                                 \
+    uint32_t address_index = 0U;                                              \
+    for (RelocIterator it(*code, filter); !it.done(); it.next()) {            \
+      old_addresses[address_index] = it.rinfo()->wasm_global_reference();     \
+      it.rinfo()->update_wasm_global_reference(old_start, new_start);         \
+      ++address_index;                                                        \
+    }                                                                         \
+    CHECK_EQ(2U, address_index);                                              \
+                                                                              \
+    address_index = 0U;                                                       \
+    for (RelocIterator it(*code, filter); !it.done(); it.next()) {            \
+      CHECK_EQ(old_addresses[address_index] + 1,                              \
+               it.rinfo()->wasm_global_reference());                          \
+      ++address_index;                                                        \
+    }                                                                         \
+    CHECK_EQ(2U, address_index);                                              \
+  }
+
+FOREACH_TYPE(LOAD_STORE_GLOBAL_TEST_BODY)
diff --git a/test/cctest/wasm/test-run-wasm.cc b/test/cctest/wasm/test-run-wasm.cc
index 236624f..ec7c5e7 100644
--- a/test/cctest/wasm/test-run-wasm.cc
+++ b/test/cctest/wasm/test-run-wasm.cc
@@ -27,7 +27,7 @@
 #define RET_I8(x) kExprI8Const, x, kExprReturn, 1
 
 WASM_EXEC_TEST(Int8Const) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   const byte kExpectedValue = 121;
   // return(kExpectedValue)
   BUILD(r, WASM_I8(kExpectedValue));
@@ -35,7 +35,7 @@
 }
 
 WASM_EXEC_TEST(Int8Const_fallthru1) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   const byte kExpectedValue = 122;
   // kExpectedValue
   BUILD(r, WASM_I8(kExpectedValue));
@@ -43,7 +43,7 @@
 }
 
 WASM_EXEC_TEST(Int8Const_fallthru2) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   const byte kExpectedValue = 123;
   // -99 kExpectedValue
   BUILD(r, WASM_I8(-99), WASM_I8(kExpectedValue));
@@ -51,8 +51,8 @@
 }
 
 WASM_EXEC_TEST(Int8Const_all) {
-  for (int value = -128; value <= 127; value++) {
-    WasmRunner<int32_t> r;
+  for (int value = -128; value <= 127; ++value) {
+    WasmRunner<int32_t> r(execution_mode);
     // return(value)
     BUILD(r, WASM_I8(value));
     int32_t result = r.Call();
@@ -61,7 +61,7 @@
 }
 
 WASM_EXEC_TEST(Int32Const) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   const int32_t kExpectedValue = 0x11223344;
   // return(kExpectedValue)
   BUILD(r, WASM_I32V_5(kExpectedValue));
@@ -70,7 +70,7 @@
 
 WASM_EXEC_TEST(Int32Const_many) {
   FOR_INT32_INPUTS(i) {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     const int32_t kExpectedValue = *i;
     // return(kExpectedValue)
     BUILD(r, WASM_I32V(kExpectedValue));
@@ -79,7 +79,7 @@
 }
 
 WASM_EXEC_TEST(MemorySize) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmRunner<int32_t> r(&module);
   module.AddMemory(1024);
   BUILD(r, kExprMemorySize);
@@ -87,49 +87,51 @@
 }
 
 WASM_EXEC_TEST(Int32Param0) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // return(local[0])
   BUILD(r, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(Int32Param0_fallthru) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // local[0]
   BUILD(r, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(Int32Param1) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
   // local[1]
   BUILD(r, WASM_GET_LOCAL(1));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(-111, *i)); }
 }
 
 WASM_EXEC_TEST(Int32Add) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   // 11 + 44
   BUILD(r, WASM_I32_ADD(WASM_I8(11), WASM_I8(44)));
   CHECK_EQ(55, r.Call());
 }
 
 WASM_EXEC_TEST(Int32Add_P) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(Int32Add_P_fallthru) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(Int32Add_P2) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
   //  p0 + p1
   BUILD(r, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   FOR_INT32_INPUTS(i) {
@@ -142,7 +144,7 @@
 }
 
 WASM_EXEC_TEST(Float32Add) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   // int(11.5f + 44.5f)
   BUILD(r,
         WASM_I32_SCONVERT_F32(WASM_F32_ADD(WASM_F32(11.5f), WASM_F32(44.5f))));
@@ -150,21 +152,23 @@
 }
 
 WASM_EXEC_TEST(Float64Add) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   // 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) {
+void TestInt32Binop(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                    int32_t expected, int32_t a, int32_t b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // K op K
     BUILD(r, WASM_BINOP(opcode, WASM_I32V(a), WASM_I32V(b)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                          MachineType::Int32());
     // a op b
     BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
     CHECK_EQ(expected, r.Call(a, b));
@@ -172,46 +176,48 @@
 }
 
 WASM_EXEC_TEST(Int32Binops) {
-  TestInt32Binop(kExprI32Add, 88888888, 33333333, 55555555);
-  TestInt32Binop(kExprI32Sub, -1111111, 7777777, 8888888);
-  TestInt32Binop(kExprI32Mul, 65130756, 88734, 734);
-  TestInt32Binop(kExprI32DivS, -66, -4777344, 72384);
-  TestInt32Binop(kExprI32DivU, 805306368, 0xF0000000, 5);
-  TestInt32Binop(kExprI32RemS, -3, -3003, 1000);
-  TestInt32Binop(kExprI32RemU, 4, 4004, 1000);
-  TestInt32Binop(kExprI32And, 0xEE, 0xFFEE, 0xFF0000FF);
-  TestInt32Binop(kExprI32Ior, 0xF0FF00FF, 0xF0F000EE, 0x000F0011);
-  TestInt32Binop(kExprI32Xor, 0xABCDEF01, 0xABCDEFFF, 0xFE);
-  TestInt32Binop(kExprI32Shl, 0xA0000000, 0xA, 28);
-  TestInt32Binop(kExprI32ShrU, 0x07000010, 0x70000100, 4);
-  TestInt32Binop(kExprI32ShrS, 0xFF000000, 0x80000000, 7);
-  TestInt32Binop(kExprI32Ror, 0x01000000, 0x80000000, 7);
-  TestInt32Binop(kExprI32Ror, 0x01000000, 0x80000000, 39);
-  TestInt32Binop(kExprI32Rol, 0x00000040, 0x80000000, 7);
-  TestInt32Binop(kExprI32Rol, 0x00000040, 0x80000000, 39);
-  TestInt32Binop(kExprI32Eq, 1, -99, -99);
-  TestInt32Binop(kExprI32Ne, 0, -97, -97);
+  TestInt32Binop(execution_mode, kExprI32Add, 88888888, 33333333, 55555555);
+  TestInt32Binop(execution_mode, kExprI32Sub, -1111111, 7777777, 8888888);
+  TestInt32Binop(execution_mode, kExprI32Mul, 65130756, 88734, 734);
+  TestInt32Binop(execution_mode, kExprI32DivS, -66, -4777344, 72384);
+  TestInt32Binop(execution_mode, kExprI32DivU, 805306368, 0xF0000000, 5);
+  TestInt32Binop(execution_mode, kExprI32RemS, -3, -3003, 1000);
+  TestInt32Binop(execution_mode, kExprI32RemU, 4, 4004, 1000);
+  TestInt32Binop(execution_mode, kExprI32And, 0xEE, 0xFFEE, 0xFF0000FF);
+  TestInt32Binop(execution_mode, kExprI32Ior, 0xF0FF00FF, 0xF0F000EE,
+                 0x000F0011);
+  TestInt32Binop(execution_mode, kExprI32Xor, 0xABCDEF01, 0xABCDEFFF, 0xFE);
+  TestInt32Binop(execution_mode, kExprI32Shl, 0xA0000000, 0xA, 28);
+  TestInt32Binop(execution_mode, kExprI32ShrU, 0x07000010, 0x70000100, 4);
+  TestInt32Binop(execution_mode, kExprI32ShrS, 0xFF000000, 0x80000000, 7);
+  TestInt32Binop(execution_mode, kExprI32Ror, 0x01000000, 0x80000000, 7);
+  TestInt32Binop(execution_mode, kExprI32Ror, 0x01000000, 0x80000000, 39);
+  TestInt32Binop(execution_mode, kExprI32Rol, 0x00000040, 0x80000000, 7);
+  TestInt32Binop(execution_mode, kExprI32Rol, 0x00000040, 0x80000000, 39);
+  TestInt32Binop(execution_mode, kExprI32Eq, 1, -99, -99);
+  TestInt32Binop(execution_mode, kExprI32Ne, 0, -97, -97);
 
-  TestInt32Binop(kExprI32LtS, 1, -4, 4);
-  TestInt32Binop(kExprI32LeS, 0, -2, -3);
-  TestInt32Binop(kExprI32LtU, 1, 0, -6);
-  TestInt32Binop(kExprI32LeU, 1, 98978, 0xF0000000);
+  TestInt32Binop(execution_mode, kExprI32LtS, 1, -4, 4);
+  TestInt32Binop(execution_mode, kExprI32LeS, 0, -2, -3);
+  TestInt32Binop(execution_mode, kExprI32LtU, 1, 0, -6);
+  TestInt32Binop(execution_mode, kExprI32LeU, 1, 98978, 0xF0000000);
 
-  TestInt32Binop(kExprI32GtS, 1, 4, -4);
-  TestInt32Binop(kExprI32GeS, 0, -3, -2);
-  TestInt32Binop(kExprI32GtU, 1, -6, 0);
-  TestInt32Binop(kExprI32GeU, 1, 0xF0000000, 98978);
+  TestInt32Binop(execution_mode, kExprI32GtS, 1, 4, -4);
+  TestInt32Binop(execution_mode, kExprI32GeS, 0, -3, -2);
+  TestInt32Binop(execution_mode, kExprI32GtU, 1, -6, 0);
+  TestInt32Binop(execution_mode, kExprI32GeU, 1, 0xF0000000, 98978);
 }
 
-void TestInt32Unop(WasmOpcode opcode, int32_t expected, int32_t a) {
+void TestInt32Unop(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                   int32_t expected, int32_t a) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return op K
     BUILD(r, WASM_UNOP(opcode, WASM_I32V(a)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Int32());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
     // return op a
     BUILD(r, WASM_UNOP(opcode, WASM_GET_LOCAL(0)));
     CHECK_EQ(expected, r.Call(a));
@@ -219,95 +225,96 @@
 }
 
 WASM_EXEC_TEST(Int32Clz) {
-  TestInt32Unop(kExprI32Clz, 0, 0x80001000);
-  TestInt32Unop(kExprI32Clz, 1, 0x40000500);
-  TestInt32Unop(kExprI32Clz, 2, 0x20000300);
-  TestInt32Unop(kExprI32Clz, 3, 0x10000003);
-  TestInt32Unop(kExprI32Clz, 4, 0x08050000);
-  TestInt32Unop(kExprI32Clz, 5, 0x04006000);
-  TestInt32Unop(kExprI32Clz, 6, 0x02000000);
-  TestInt32Unop(kExprI32Clz, 7, 0x010000a0);
-  TestInt32Unop(kExprI32Clz, 8, 0x00800c00);
-  TestInt32Unop(kExprI32Clz, 9, 0x00400000);
-  TestInt32Unop(kExprI32Clz, 10, 0x0020000d);
-  TestInt32Unop(kExprI32Clz, 11, 0x00100f00);
-  TestInt32Unop(kExprI32Clz, 12, 0x00080000);
-  TestInt32Unop(kExprI32Clz, 13, 0x00041000);
-  TestInt32Unop(kExprI32Clz, 14, 0x00020020);
-  TestInt32Unop(kExprI32Clz, 15, 0x00010300);
-  TestInt32Unop(kExprI32Clz, 16, 0x00008040);
-  TestInt32Unop(kExprI32Clz, 17, 0x00004005);
-  TestInt32Unop(kExprI32Clz, 18, 0x00002050);
-  TestInt32Unop(kExprI32Clz, 19, 0x00001700);
-  TestInt32Unop(kExprI32Clz, 20, 0x00000870);
-  TestInt32Unop(kExprI32Clz, 21, 0x00000405);
-  TestInt32Unop(kExprI32Clz, 22, 0x00000203);
-  TestInt32Unop(kExprI32Clz, 23, 0x00000101);
-  TestInt32Unop(kExprI32Clz, 24, 0x00000089);
-  TestInt32Unop(kExprI32Clz, 25, 0x00000041);
-  TestInt32Unop(kExprI32Clz, 26, 0x00000022);
-  TestInt32Unop(kExprI32Clz, 27, 0x00000013);
-  TestInt32Unop(kExprI32Clz, 28, 0x00000008);
-  TestInt32Unop(kExprI32Clz, 29, 0x00000004);
-  TestInt32Unop(kExprI32Clz, 30, 0x00000002);
-  TestInt32Unop(kExprI32Clz, 31, 0x00000001);
-  TestInt32Unop(kExprI32Clz, 32, 0x00000000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 0, 0x80001000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 1, 0x40000500);
+  TestInt32Unop(execution_mode, kExprI32Clz, 2, 0x20000300);
+  TestInt32Unop(execution_mode, kExprI32Clz, 3, 0x10000003);
+  TestInt32Unop(execution_mode, kExprI32Clz, 4, 0x08050000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 5, 0x04006000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 6, 0x02000000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 7, 0x010000a0);
+  TestInt32Unop(execution_mode, kExprI32Clz, 8, 0x00800c00);
+  TestInt32Unop(execution_mode, kExprI32Clz, 9, 0x00400000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 10, 0x0020000d);
+  TestInt32Unop(execution_mode, kExprI32Clz, 11, 0x00100f00);
+  TestInt32Unop(execution_mode, kExprI32Clz, 12, 0x00080000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 13, 0x00041000);
+  TestInt32Unop(execution_mode, kExprI32Clz, 14, 0x00020020);
+  TestInt32Unop(execution_mode, kExprI32Clz, 15, 0x00010300);
+  TestInt32Unop(execution_mode, kExprI32Clz, 16, 0x00008040);
+  TestInt32Unop(execution_mode, kExprI32Clz, 17, 0x00004005);
+  TestInt32Unop(execution_mode, kExprI32Clz, 18, 0x00002050);
+  TestInt32Unop(execution_mode, kExprI32Clz, 19, 0x00001700);
+  TestInt32Unop(execution_mode, kExprI32Clz, 20, 0x00000870);
+  TestInt32Unop(execution_mode, kExprI32Clz, 21, 0x00000405);
+  TestInt32Unop(execution_mode, kExprI32Clz, 22, 0x00000203);
+  TestInt32Unop(execution_mode, kExprI32Clz, 23, 0x00000101);
+  TestInt32Unop(execution_mode, kExprI32Clz, 24, 0x00000089);
+  TestInt32Unop(execution_mode, kExprI32Clz, 25, 0x00000041);
+  TestInt32Unop(execution_mode, kExprI32Clz, 26, 0x00000022);
+  TestInt32Unop(execution_mode, kExprI32Clz, 27, 0x00000013);
+  TestInt32Unop(execution_mode, kExprI32Clz, 28, 0x00000008);
+  TestInt32Unop(execution_mode, kExprI32Clz, 29, 0x00000004);
+  TestInt32Unop(execution_mode, kExprI32Clz, 30, 0x00000002);
+  TestInt32Unop(execution_mode, kExprI32Clz, 31, 0x00000001);
+  TestInt32Unop(execution_mode, kExprI32Clz, 32, 0x00000000);
 }
 
 WASM_EXEC_TEST(Int32Ctz) {
-  TestInt32Unop(kExprI32Ctz, 32, 0x00000000);
-  TestInt32Unop(kExprI32Ctz, 31, 0x80000000);
-  TestInt32Unop(kExprI32Ctz, 30, 0x40000000);
-  TestInt32Unop(kExprI32Ctz, 29, 0x20000000);
-  TestInt32Unop(kExprI32Ctz, 28, 0x10000000);
-  TestInt32Unop(kExprI32Ctz, 27, 0xa8000000);
-  TestInt32Unop(kExprI32Ctz, 26, 0xf4000000);
-  TestInt32Unop(kExprI32Ctz, 25, 0x62000000);
-  TestInt32Unop(kExprI32Ctz, 24, 0x91000000);
-  TestInt32Unop(kExprI32Ctz, 23, 0xcd800000);
-  TestInt32Unop(kExprI32Ctz, 22, 0x09400000);
-  TestInt32Unop(kExprI32Ctz, 21, 0xaf200000);
-  TestInt32Unop(kExprI32Ctz, 20, 0xac100000);
-  TestInt32Unop(kExprI32Ctz, 19, 0xe0b80000);
-  TestInt32Unop(kExprI32Ctz, 18, 0x9ce40000);
-  TestInt32Unop(kExprI32Ctz, 17, 0xc7920000);
-  TestInt32Unop(kExprI32Ctz, 16, 0xb8f10000);
-  TestInt32Unop(kExprI32Ctz, 15, 0x3b9f8000);
-  TestInt32Unop(kExprI32Ctz, 14, 0xdb4c4000);
-  TestInt32Unop(kExprI32Ctz, 13, 0xe9a32000);
-  TestInt32Unop(kExprI32Ctz, 12, 0xfca61000);
-  TestInt32Unop(kExprI32Ctz, 11, 0x6c8a7800);
-  TestInt32Unop(kExprI32Ctz, 10, 0x8ce5a400);
-  TestInt32Unop(kExprI32Ctz, 9, 0xcb7d0200);
-  TestInt32Unop(kExprI32Ctz, 8, 0xcb4dc100);
-  TestInt32Unop(kExprI32Ctz, 7, 0xdfbec580);
-  TestInt32Unop(kExprI32Ctz, 6, 0x27a9db40);
-  TestInt32Unop(kExprI32Ctz, 5, 0xde3bcb20);
-  TestInt32Unop(kExprI32Ctz, 4, 0xd7e8a610);
-  TestInt32Unop(kExprI32Ctz, 3, 0x9afdbc88);
-  TestInt32Unop(kExprI32Ctz, 2, 0x9afdbc84);
-  TestInt32Unop(kExprI32Ctz, 1, 0x9afdbc82);
-  TestInt32Unop(kExprI32Ctz, 0, 0x9afdbc81);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 32, 0x00000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 31, 0x80000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 30, 0x40000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 29, 0x20000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 28, 0x10000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 27, 0xa8000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 26, 0xf4000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 25, 0x62000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 24, 0x91000000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 23, 0xcd800000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 22, 0x09400000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 21, 0xaf200000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 20, 0xac100000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 19, 0xe0b80000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 18, 0x9ce40000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 17, 0xc7920000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 16, 0xb8f10000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 15, 0x3b9f8000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 14, 0xdb4c4000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 13, 0xe9a32000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 12, 0xfca61000);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 11, 0x6c8a7800);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 10, 0x8ce5a400);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 9, 0xcb7d0200);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 8, 0xcb4dc100);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 7, 0xdfbec580);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 6, 0x27a9db40);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 5, 0xde3bcb20);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 4, 0xd7e8a610);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 3, 0x9afdbc88);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 2, 0x9afdbc84);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 1, 0x9afdbc82);
+  TestInt32Unop(execution_mode, kExprI32Ctz, 0, 0x9afdbc81);
 }
 
 WASM_EXEC_TEST(Int32Popcnt) {
-  TestInt32Unop(kExprI32Popcnt, 32, 0xffffffff);
-  TestInt32Unop(kExprI32Popcnt, 0, 0x00000000);
-  TestInt32Unop(kExprI32Popcnt, 1, 0x00008000);
-  TestInt32Unop(kExprI32Popcnt, 13, 0x12345678);
-  TestInt32Unop(kExprI32Popcnt, 19, 0xfedcba09);
+  TestInt32Unop(execution_mode, kExprI32Popcnt, 32, 0xffffffff);
+  TestInt32Unop(execution_mode, kExprI32Popcnt, 0, 0x00000000);
+  TestInt32Unop(execution_mode, kExprI32Popcnt, 1, 0x00008000);
+  TestInt32Unop(execution_mode, kExprI32Popcnt, 13, 0x12345678);
+  TestInt32Unop(execution_mode, kExprI32Popcnt, 19, 0xfedcba09);
 }
 
 WASM_EXEC_TEST(I32Eqz) {
-  TestInt32Unop(kExprI32Eqz, 0, 1);
-  TestInt32Unop(kExprI32Eqz, 0, -1);
-  TestInt32Unop(kExprI32Eqz, 0, -827343);
-  TestInt32Unop(kExprI32Eqz, 0, 8888888);
-  TestInt32Unop(kExprI32Eqz, 1, 0);
+  TestInt32Unop(execution_mode, kExprI32Eqz, 0, 1);
+  TestInt32Unop(execution_mode, kExprI32Eqz, 0, -1);
+  TestInt32Unop(execution_mode, kExprI32Eqz, 0, -827343);
+  TestInt32Unop(execution_mode, kExprI32Eqz, 0, 8888888);
+  TestInt32Unop(execution_mode, kExprI32Eqz, 1, 0);
 }
 
 WASM_EXEC_TEST(I32Shl) {
-  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Uint32(),
+                         MachineType::Uint32());
   BUILD(r, WASM_I32_SHL(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_UINT32_INPUTS(i) {
@@ -319,7 +326,8 @@
 }
 
 WASM_EXEC_TEST(I32Shr) {
-  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Uint32(),
+                         MachineType::Uint32());
   BUILD(r, WASM_I32_SHR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_UINT32_INPUTS(i) {
@@ -331,7 +339,8 @@
 }
 
 WASM_EXEC_TEST(I32Sar) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
   BUILD(r, WASM_I32_SAR(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_INT32_INPUTS(i) {
@@ -343,7 +352,8 @@
 }
 
 WASM_EXEC_TEST(Int32DivS_trap) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -354,7 +364,8 @@
 }
 
 WASM_EXEC_TEST(Int32RemS_trap) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -365,7 +376,8 @@
 }
 
 WASM_EXEC_TEST(Int32DivU_trap) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -376,7 +388,8 @@
 }
 
 WASM_EXEC_TEST(Int32RemU_trap) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
   BUILD(r, WASM_I32_REMU(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   CHECK_EQ(17, r.Call(217, 100));
   const int32_t kMin = std::numeric_limits<int32_t>::min();
@@ -387,10 +400,10 @@
 }
 
 WASM_EXEC_TEST(Int32DivS_byzero_const) {
-  for (int8_t denom = -2; denom < 8; denom++) {
-    WasmRunner<int32_t> r(MachineType::Int32());
+  for (int8_t denom = -2; denom < 8; ++denom) {
+    WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
     BUILD(r, WASM_I32_DIVS(WASM_GET_LOCAL(0), WASM_I8(denom)));
-    for (int32_t val = -7; val < 8; val++) {
+    for (int32_t val = -7; val < 8; ++val) {
       if (denom == 0) {
         CHECK_TRAP(r.Call(val));
       } else {
@@ -401,11 +414,11 @@
 }
 
 WASM_EXEC_TEST(Int32DivU_byzero_const) {
-  for (uint32_t denom = 0xfffffffe; denom < 8; denom++) {
-    WasmRunner<uint32_t> r(MachineType::Uint32());
+  for (uint32_t denom = 0xfffffffe; denom < 8; ++denom) {
+    WasmRunner<uint32_t> r(execution_mode, MachineType::Uint32());
     BUILD(r, WASM_I32_DIVU(WASM_GET_LOCAL(0), WASM_I32V_1(denom)));
 
-    for (uint32_t val = 0xfffffff0; val < 8; val++) {
+    for (uint32_t val = 0xfffffff0; val < 8; ++val) {
       if (denom == 0) {
         CHECK_TRAP(r.Call(val));
       } else {
@@ -416,7 +429,7 @@
 }
 
 WASM_EXEC_TEST(Int32DivS_trap_effect) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32(), MachineType::Int32());
 
@@ -434,32 +447,36 @@
   CHECK_TRAP(r.Call(0, 0));
 }
 
-void TestFloat32Binop(WasmOpcode opcode, int32_t expected, float a, float b) {
+void TestFloat32Binop(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                      int32_t expected, float a, float b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return K op K
     BUILD(r, WASM_BINOP(opcode, WASM_F32(a), WASM_F32(b)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float32(), MachineType::Float32());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float32(),
+                          MachineType::Float32());
     // return a op b
     BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
     CHECK_EQ(expected, r.Call(a, b));
   }
 }
 
-void TestFloat32BinopWithConvert(WasmOpcode opcode, int32_t expected, float a,
+void TestFloat32BinopWithConvert(WasmExecutionMode execution_mode,
+                                 WasmOpcode opcode, int32_t expected, float a,
                                  float b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return int(K op K)
     BUILD(r,
           WASM_I32_SCONVERT_F32(WASM_BINOP(opcode, WASM_F32(a), WASM_F32(b))));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float32(), MachineType::Float32());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float32(),
+                          MachineType::Float32());
     // return int(a op b)
     BUILD(r, WASM_I32_SCONVERT_F32(
                  WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))));
@@ -467,62 +484,68 @@
   }
 }
 
-void TestFloat32UnopWithConvert(WasmOpcode opcode, int32_t expected, float a) {
+void TestFloat32UnopWithConvert(WasmExecutionMode execution_mode,
+                                WasmOpcode opcode, int32_t expected, float a) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return int(op(K))
     BUILD(r, WASM_I32_SCONVERT_F32(WASM_UNOP(opcode, WASM_F32(a))));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float32());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float32());
     // return int(op(a))
     BUILD(r, WASM_I32_SCONVERT_F32(WASM_UNOP(opcode, WASM_GET_LOCAL(0))));
     CHECK_EQ(expected, r.Call(a));
   }
 }
 
-void TestFloat64Binop(WasmOpcode opcode, int32_t expected, double a, double b) {
+void TestFloat64Binop(WasmExecutionMode execution_mode, WasmOpcode opcode,
+                      int32_t expected, double a, double b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return K op K
     BUILD(r, WASM_BINOP(opcode, WASM_F64(a), WASM_F64(b)));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float64(), MachineType::Float64());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float64(),
+                          MachineType::Float64());
     // return a op b
     BUILD(r, WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
     CHECK_EQ(expected, r.Call(a, b));
   }
 }
 
-void TestFloat64BinopWithConvert(WasmOpcode opcode, int32_t expected, double a,
+void TestFloat64BinopWithConvert(WasmExecutionMode execution_mode,
+                                 WasmOpcode opcode, int32_t expected, double a,
                                  double b) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return int(K op K)
     BUILD(r,
           WASM_I32_SCONVERT_F64(WASM_BINOP(opcode, WASM_F64(a), WASM_F64(b))));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float64(), MachineType::Float64());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float64(),
+                          MachineType::Float64());
     BUILD(r, WASM_I32_SCONVERT_F64(
                  WASM_BINOP(opcode, WASM_GET_LOCAL(0), WASM_GET_LOCAL(1))));
     CHECK_EQ(expected, r.Call(a, b));
   }
 }
 
-void TestFloat64UnopWithConvert(WasmOpcode opcode, int32_t expected, double a) {
+void TestFloat64UnopWithConvert(WasmExecutionMode execution_mode,
+                                WasmOpcode opcode, int32_t expected, double a) {
   {
-    WasmRunner<int32_t> r;
+    WasmRunner<int32_t> r(execution_mode);
     // return int(op(K))
     BUILD(r, WASM_I32_SCONVERT_F64(WASM_UNOP(opcode, WASM_F64(a))));
     CHECK_EQ(expected, r.Call());
   }
   {
-    WasmRunner<int32_t> r(MachineType::Float64());
+    WasmRunner<int32_t> r(execution_mode, MachineType::Float64());
     // return int(op(a))
     BUILD(r, WASM_I32_SCONVERT_F64(WASM_UNOP(opcode, WASM_GET_LOCAL(0))));
     CHECK_EQ(expected, r.Call(a));
@@ -530,49 +553,50 @@
 }
 
 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);
-  TestFloat32Binop(kExprF32Le, 1, -1111.0f, -1111.0f);
-  TestFloat32Binop(kExprF32Gt, 1, -9.0f, -9.5f);
-  TestFloat32Binop(kExprF32Ge, 1, -1111.0f, -1111.0f);
+  TestFloat32Binop(execution_mode, kExprF32Eq, 1, 8.125f, 8.125f);
+  TestFloat32Binop(execution_mode, kExprF32Ne, 1, 8.125f, 8.127f);
+  TestFloat32Binop(execution_mode, kExprF32Lt, 1, -9.5f, -9.0f);
+  TestFloat32Binop(execution_mode, kExprF32Le, 1, -1111.0f, -1111.0f);
+  TestFloat32Binop(execution_mode, kExprF32Gt, 1, -9.0f, -9.5f);
+  TestFloat32Binop(execution_mode, kExprF32Ge, 1, -1111.0f, -1111.0f);
 
-  TestFloat32BinopWithConvert(kExprF32Add, 10, 3.5f, 6.5f);
-  TestFloat32BinopWithConvert(kExprF32Sub, 2, 44.5f, 42.5f);
-  TestFloat32BinopWithConvert(kExprF32Mul, -66, -132.1f, 0.5f);
-  TestFloat32BinopWithConvert(kExprF32Div, 11, 22.1f, 2.0f);
+  TestFloat32BinopWithConvert(execution_mode, kExprF32Add, 10, 3.5f, 6.5f);
+  TestFloat32BinopWithConvert(execution_mode, kExprF32Sub, 2, 44.5f, 42.5f);
+  TestFloat32BinopWithConvert(execution_mode, kExprF32Mul, -66, -132.1f, 0.5f);
+  TestFloat32BinopWithConvert(execution_mode, kExprF32Div, 11, 22.1f, 2.0f);
 }
 
 WASM_EXEC_TEST(Float32Unops) {
-  TestFloat32UnopWithConvert(kExprF32Abs, 8, 8.125f);
-  TestFloat32UnopWithConvert(kExprF32Abs, 9, -9.125f);
-  TestFloat32UnopWithConvert(kExprF32Neg, -213, 213.125f);
-  TestFloat32UnopWithConvert(kExprF32Sqrt, 12, 144.4f);
+  TestFloat32UnopWithConvert(execution_mode, kExprF32Abs, 8, 8.125f);
+  TestFloat32UnopWithConvert(execution_mode, kExprF32Abs, 9, -9.125f);
+  TestFloat32UnopWithConvert(execution_mode, kExprF32Neg, -213, 213.125f);
+  TestFloat32UnopWithConvert(execution_mode, kExprF32Sqrt, 12, 144.4f);
 }
 
 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);
-  TestFloat64Binop(kExprF64Le, 1, -88.9, -88.9);
-  TestFloat64Binop(kExprF64Gt, 1, 11.7, -32.4);
-  TestFloat64Binop(kExprF64Ge, 1, -88.9, -88.9);
+  TestFloat64Binop(execution_mode, kExprF64Eq, 1, 16.25, 16.25);
+  TestFloat64Binop(execution_mode, kExprF64Ne, 1, 16.25, 16.15);
+  TestFloat64Binop(execution_mode, kExprF64Lt, 1, -32.4, 11.7);
+  TestFloat64Binop(execution_mode, kExprF64Le, 1, -88.9, -88.9);
+  TestFloat64Binop(execution_mode, kExprF64Gt, 1, 11.7, -32.4);
+  TestFloat64Binop(execution_mode, kExprF64Ge, 1, -88.9, -88.9);
 
-  TestFloat64BinopWithConvert(kExprF64Add, 100, 43.5, 56.5);
-  TestFloat64BinopWithConvert(kExprF64Sub, 200, 12200.1, 12000.1);
-  TestFloat64BinopWithConvert(kExprF64Mul, -33, 134, -0.25);
-  TestFloat64BinopWithConvert(kExprF64Div, -1111, -2222.3, 2);
+  TestFloat64BinopWithConvert(execution_mode, kExprF64Add, 100, 43.5, 56.5);
+  TestFloat64BinopWithConvert(execution_mode, kExprF64Sub, 200, 12200.1,
+                              12000.1);
+  TestFloat64BinopWithConvert(execution_mode, kExprF64Mul, -33, 134, -0.25);
+  TestFloat64BinopWithConvert(execution_mode, kExprF64Div, -1111, -2222.3, 2);
 }
 
 WASM_EXEC_TEST(Float64Unops) {
-  TestFloat64UnopWithConvert(kExprF64Abs, 108, 108.125);
-  TestFloat64UnopWithConvert(kExprF64Abs, 209, -209.125);
-  TestFloat64UnopWithConvert(kExprF64Neg, -209, 209.125);
-  TestFloat64UnopWithConvert(kExprF64Sqrt, 13, 169.4);
+  TestFloat64UnopWithConvert(execution_mode, kExprF64Abs, 108, 108.125);
+  TestFloat64UnopWithConvert(execution_mode, kExprF64Abs, 209, -209.125);
+  TestFloat64UnopWithConvert(execution_mode, kExprF64Neg, -209, 209.125);
+  TestFloat64UnopWithConvert(execution_mode, kExprF64Sqrt, 13, 169.4);
 }
 
 WASM_EXEC_TEST(Float32Neg) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_NEG(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -582,22 +606,47 @@
 }
 
 WASM_EXEC_TEST(Float32SubMinusZero) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_SUB(WASM_F32(-0.0), WASM_GET_LOCAL(0)));
 
-  CHECK_EQ(0x7fe00000, bit_cast<uint32_t>(r.Call(bit_cast<float>(0x7fa00000))));
+  uint32_t sNanValue =
+      bit_cast<uint32_t>(std::numeric_limits<float>::signaling_NaN());
+  uint32_t qNanValue =
+      bit_cast<uint32_t>(std::numeric_limits<float>::quiet_NaN());
+  uint32_t payload = 0x00200000;
+
+  uint32_t expected = (qNanValue & 0xffc00000) | payload;
+  uint32_t operand = (sNanValue & 0xffc00000) | payload;
+  CHECK_EQ(expected, bit_cast<uint32_t>(r.Call(bit_cast<float>(operand))));
+
+  // Change the sign of the NaN.
+  expected |= 0x80000000;
+  operand |= 0x80000000;
+  CHECK_EQ(expected, bit_cast<uint32_t>(r.Call(bit_cast<float>(operand))));
 }
 
 WASM_EXEC_TEST(Float64SubMinusZero) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, 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))));
+  uint64_t sNanValue =
+      bit_cast<uint64_t>(std::numeric_limits<double>::signaling_NaN());
+  uint64_t qNanValue =
+      bit_cast<uint64_t>(std::numeric_limits<double>::quiet_NaN());
+  uint64_t payload = 0x0000123456789abc;
+
+  uint64_t expected = (qNanValue & 0xfff8000000000000) | payload;
+  uint64_t operand = (sNanValue & 0xfff8000000000000) | payload;
+  CHECK_EQ(expected, bit_cast<uint64_t>(r.Call(bit_cast<double>(operand))));
+
+  // Change the sign of the NaN.
+  expected |= 0x8000000000000000;
+  operand |= 0x8000000000000000;
+  CHECK_EQ(expected, bit_cast<uint64_t>(r.Call(bit_cast<double>(operand))));
 }
 
 WASM_EXEC_TEST(Float64Neg) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_F64_NEG(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -607,7 +656,7 @@
 }
 
 WASM_EXEC_TEST(IfElse_P) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // if (p0) return 11; else return 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
                         WASM_I8(11),        // --
@@ -619,33 +668,37 @@
 }
 
 WASM_EXEC_TEST(If_empty1) {
-  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  WasmRunner<uint32_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(IfElse_empty1) {
-  WasmRunner<uint32_t> r(MachineType::Uint32(), MachineType::Uint32());
+  WasmRunner<uint32_t> r(execution_mode, 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());
+  WasmRunner<uint32_t> r(execution_mode, 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());
+  WasmRunner<uint32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -653,7 +706,8 @@
 }
 
 WASM_EXEC_TEST(If_chain_set) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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))),
@@ -665,7 +719,7 @@
 }
 
 WASM_EXEC_TEST(IfElse_Unreachable1) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
   // if (0) unreachable; else return 22;
   BUILD(r, WASM_IF_ELSE(WASM_ZERO,         // --
                         WASM_UNREACHABLE,  // --
@@ -674,21 +728,21 @@
 }
 
 WASM_EXEC_TEST(Return12) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
 
   BUILD(r, RET_I8(12));
   CHECK_EQ(12, r.Call());
 }
 
 WASM_EXEC_TEST(Return17) {
-  WasmRunner<int32_t> r;
+  WasmRunner<int32_t> r(execution_mode);
 
   BUILD(r, B1(RET_I8(17)));
   CHECK_EQ(17, r.Call());
 }
 
 WASM_EXEC_TEST(Return_I32) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
 
@@ -696,7 +750,7 @@
 }
 
 WASM_EXEC_TEST(Return_F32) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
 
@@ -712,7 +766,7 @@
 }
 
 WASM_EXEC_TEST(Return_F64) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
 
   BUILD(r, RET(WASM_GET_LOCAL(0)));
 
@@ -728,7 +782,7 @@
 }
 
 WASM_EXEC_TEST(Select) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // return select(11, 22, a);
   BUILD(r, WASM_SELECT(WASM_I8(11), WASM_I8(22), WASM_GET_LOCAL(0)));
   FOR_INT32_INPUTS(i) {
@@ -738,7 +792,7 @@
 }
 
 WASM_EXEC_TEST(Select_strict1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // select(a=0, a=1, a=2); return a
   BUILD(r, B2(WASM_SELECT(WASM_SET_LOCAL(0, WASM_I8(0)),
                           WASM_SET_LOCAL(0, WASM_I8(1)),
@@ -748,7 +802,7 @@
 }
 
 WASM_EXEC_TEST(Select_strict2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   r.AllocateLocal(kAstI32);
   r.AllocateLocal(kAstI32);
   // select(b=5, c=6, a)
@@ -761,7 +815,7 @@
 }
 
 WASM_EXEC_TEST(Select_strict3) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   r.AllocateLocal(kAstI32);
   r.AllocateLocal(kAstI32);
   // select(b=5, c=6, a=b)
@@ -775,7 +829,7 @@
 }
 
 WASM_EXEC_TEST(BrIf_strict) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(
       r,
       B2(B1(WASM_BRV_IF(0, WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_I8(99)))),
@@ -785,14 +839,14 @@
 }
 
 WASM_EXEC_TEST(BrTable0a) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(BrTable0b) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 1, BR_TARGET(0), BR_TARGET(0))),
            WASM_I8(92)));
@@ -800,7 +854,7 @@
 }
 
 WASM_EXEC_TEST(BrTable0c) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(
       r,
       B2(B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 1, BR_TARGET(0), BR_TARGET(1))),
@@ -813,13 +867,13 @@
 }
 
 WASM_EXEC_TEST(BrTable1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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)); }
 }
 
 WASM_EXEC_TEST(BrTable_loop) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         B2(WASM_LOOP(1, WASM_BR_TABLE(WASM_INC_LOCAL_BY(0, 1), 2, BR_TARGET(2),
                                       BR_TARGET(1), BR_TARGET(0))),
@@ -833,7 +887,7 @@
 }
 
 WASM_EXEC_TEST(BrTable_br) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 1, BR_TARGET(1), BR_TARGET(0))),
            RET_I8(91)),
@@ -845,7 +899,7 @@
 }
 
 WASM_EXEC_TEST(BrTable_br2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
 
   BUILD(r, B2(B2(B2(B1(WASM_BR_TABLE(WASM_GET_LOCAL(0), 3, BR_TARGET(1),
                                      BR_TARGET(2), BR_TARGET(3), BR_TARGET(0))),
@@ -862,8 +916,8 @@
 }
 
 WASM_EXEC_TEST(BrTable4) {
-  for (int i = 0; i < 4; i++) {
-    for (int t = 0; t < 4; t++) {
+  for (int i = 0; i < 4; ++i) {
+    for (int t = 0; t < 4; ++t) {
       uint32_t cases[] = {0, 1, 2, 3};
       cases[i] = t;
       byte code[] = {B2(B2(B2(B2(B1(WASM_BR_TABLE(
@@ -876,10 +930,10 @@
                         RET_I8(73)),
                      WASM_I8(75)};
 
-      WasmRunner<int32_t> r(MachineType::Int32());
+      WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
       r.Build(code, code + arraysize(code));
 
-      for (int x = -3; x < 50; x++) {
+      for (int x = -3; x < 50; ++x) {
         int index = (x > 3 || x < 0) ? 3 : x;
         int32_t expected = 70 + cases[index];
         CHECK_EQ(expected, r.Call(x));
@@ -889,11 +943,11 @@
 }
 
 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++) {
-        for (byte d = 0; d < 4; d++) {
-          for (int i = 0; i < 4; i++) {
+  for (byte a = 0; a < 4; ++a) {
+    for (byte b = 0; b < 4; ++b) {
+      for (byte c = 0; c < 4; ++c) {
+        for (byte d = 0; d < 4; ++d) {
+          for (int i = 0; i < 4; ++i) {
             uint32_t cases[] = {a, b, c, d};
             byte code[] = {
                 B2(B2(B2(B2(B1(WASM_BR_TABLE(
@@ -906,10 +960,10 @@
                    RET_I8(53)),
                 WASM_I8(55)};
 
-            WasmRunner<int32_t> r(MachineType::Int32());
+            WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
             r.Build(code, code + arraysize(code));
 
-            for (int x = -6; x < 47; x++) {
+            for (int x = -6; x < 47; ++x) {
               int index = (x > 3 || x < 0) ? 3 : x;
               int32_t expected = 50 + cases[index];
               CHECK_EQ(expected, r.Call(x));
@@ -931,7 +985,8 @@
          WASM_INC_LOCAL_BY(1, 8)),
       WASM_GET_LOCAL(1)};
 
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
   r.Build(code, code + arraysize(code));
 
   CHECK_EQ(15, r.Call(0, 0));
@@ -948,7 +1003,7 @@
 }
 
 WASM_EXEC_TEST(F32ReinterpretI32) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module);
 
@@ -963,7 +1018,7 @@
 }
 
 WASM_EXEC_TEST(I32ReinterpretF32) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
 
@@ -980,7 +1035,7 @@
 }
 
 WASM_EXEC_TEST(ReturnStore) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module);
 
@@ -999,7 +1054,7 @@
 
   // Build the test function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.v_v(), &module);
   BUILD(t, kExprNop);
   uint32_t index = t.CompileAndAdd();
@@ -1017,7 +1072,7 @@
   // We use a wrapper function because WasmRunner<void> does not exist.
   // Build the test function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.v_v(), &module);
   BUILD(t, WASM_RETURN0);
   uint32_t index = t.CompileAndAdd();
@@ -1032,37 +1087,38 @@
 }
 
 WASM_EXEC_TEST(Block_empty) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, kExprBlock, kExprEnd, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(Block_empty_br1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<uint32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // { if (p0) return 51; return 52; }
   BUILD(r, B2(                                     // --
                WASM_IF(WASM_GET_LOCAL(0),          // --
@@ -1075,31 +1131,32 @@
 }
 
 WASM_EXEC_TEST(Loop_empty) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, kExprLoop, kExprEnd, WASM_GET_LOCAL(0));
   FOR_INT32_INPUTS(i) { CHECK_EQ(*i, r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(Loop_empty_br1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<uint32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, B2(WASM_BRV_IF(0, WASM_I8(51), WASM_GET_LOCAL(0)), WASM_I8(52)));
   FOR_INT32_INPUTS(i) {
     int32_t expected = *i ? 51 : 52;
@@ -1108,7 +1165,7 @@
 }
 
 WASM_EXEC_TEST(Block_IfElse_P_assign) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // { if (p0) p0 = 71; else p0 = 72; return p0; }
   BUILD(r, B2(                                                // --
                WASM_IF_ELSE(WASM_GET_LOCAL(0),                // --
@@ -1122,7 +1179,7 @@
 }
 
 WASM_EXEC_TEST(Block_IfElse_P_return) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // if (p0) return 81; else return 82;
   BUILD(r,                               // --
         WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
@@ -1135,7 +1192,7 @@
 }
 
 WASM_EXEC_TEST(Block_If_P_assign) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // { if (p0) p0 = 61; p0; }
   BUILD(r, WASM_BLOCK(
                2, WASM_IF(WASM_GET_LOCAL(0), WASM_SET_LOCAL(0, WASM_I8(61))),
@@ -1147,14 +1204,14 @@
 }
 
 WASM_EXEC_TEST(DanglingAssign) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // { return 0; p0 = 0; }
   BUILD(r, B2(RET_I8(99), WASM_SET_LOCAL(0, WASM_ZERO)));
   CHECK_EQ(99, r.Call(1));
 }
 
 WASM_EXEC_TEST(ExprIf_P) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // p0 ? 11 : 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
                         WASM_I8(11),        // --
@@ -1166,7 +1223,7 @@
 }
 
 WASM_EXEC_TEST(ExprIf_P_fallthru) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // p0 ? 11 : 22;
   BUILD(r, WASM_IF_ELSE(WASM_GET_LOCAL(0),  // --
                         WASM_I8(11),        // --
@@ -1178,7 +1235,7 @@
 }
 
 WASM_EXEC_TEST(CountDown) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(
             2, WASM_LOOP(
@@ -1193,7 +1250,7 @@
 }
 
 WASM_EXEC_TEST(CountDown_fallthru) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(
             2, WASM_LOOP(3, WASM_IF(WASM_NOT(WASM_GET_LOCAL(0)), WASM_BREAK(1)),
@@ -1207,7 +1264,7 @@
 }
 
 WASM_EXEC_TEST(WhileCountDown) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, WASM_BLOCK(
                2, WASM_WHILE(WASM_GET_LOCAL(0),
                              WASM_SET_LOCAL(0, WASM_I32_SUB(WASM_GET_LOCAL(0),
@@ -1219,7 +1276,7 @@
 }
 
 WASM_EXEC_TEST(Loop_if_break1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   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)));
@@ -1230,7 +1287,7 @@
 }
 
 WASM_EXEC_TEST(Loop_if_break2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, B2(WASM_LOOP(2, WASM_BR_IF(1, WASM_GET_LOCAL(0)),
                         WASM_SET_LOCAL(0, WASM_I8(99))),
               WASM_GET_LOCAL(0)));
@@ -1241,7 +1298,7 @@
 }
 
 WASM_EXEC_TEST(Loop_if_break_fallthru) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, B1(WASM_LOOP(2, WASM_IF(WASM_GET_LOCAL(0), WASM_BREAK(1)),
                         WASM_SET_LOCAL(0, WASM_I8(93)))),
         WASM_GET_LOCAL(0));
@@ -1252,7 +1309,7 @@
 }
 
 WASM_EXEC_TEST(IfBreak1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -1261,7 +1318,7 @@
 }
 
 WASM_EXEC_TEST(IfBreak2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
@@ -1270,7 +1327,7 @@
 }
 
 WASM_EXEC_TEST(LoadMemI32) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   module.RandomizeMemory(1111);
@@ -1287,8 +1344,29 @@
   CHECK_EQ(77777777, r.Call(0));
 }
 
+WASM_EXEC_TEST(LoadMemI32_alignment) {
+  TestingModule module(execution_mode);
+  int32_t* memory = module.AddMemoryElems<int32_t>(8);
+  for (byte alignment = 0; alignment <= 2; ++alignment) {
+    WasmRunner<int32_t> r(&module, MachineType::Int32());
+    module.RandomizeMemory(1111);
+
+    BUILD(r,
+          WASM_LOAD_MEM_ALIGNMENT(MachineType::Int32(), WASM_I8(0), alignment));
+
+    memory[0] = 0x1a2b3c4d;
+    CHECK_EQ(0x1a2b3c4d, r.Call(0));
+
+    memory[0] = 0x5e6f7a8b;
+    CHECK_EQ(0x5e6f7a8b, r.Call(0));
+
+    memory[0] = 0x9ca0b1c2;
+    CHECK_EQ(0x9ca0b1c2, r.Call(0));
+  }
+}
+
 WASM_EXEC_TEST(LoadMemI32_oob) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(8);
   WasmRunner<int32_t> r(&module, MachineType::Uint32());
   module.RandomizeMemory(1111);
@@ -1297,17 +1375,17 @@
 
   memory[0] = 88888888;
   CHECK_EQ(88888888, r.Call(0u));
-  for (uint32_t offset = 29; offset < 40; offset++) {
+  for (uint32_t offset = 29; offset < 40; ++offset) {
     CHECK_TRAP(r.Call(offset));
   }
 
-  for (uint32_t offset = 0x80000000; offset < 0x80000010; offset++) {
+  for (uint32_t offset = 0x80000000; offset < 0x80000010; ++offset) {
     CHECK_TRAP(r.Call(offset));
   }
 }
 
 WASM_EXEC_TEST(LoadMem_offset_oob) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   module.AddMemoryElems<int32_t>(8);
 
   static const MachineType machineTypes[] = {
@@ -1316,7 +1394,7 @@
       MachineType::Int64(),  MachineType::Uint64(), MachineType::Float32(),
       MachineType::Float64()};
 
-  for (size_t m = 0; m < arraysize(machineTypes); m++) {
+  for (size_t m = 0; m < arraysize(machineTypes); ++m) {
     module.RandomizeMemory(1116 + static_cast<int>(m));
     WasmRunner<int32_t> r(&module, MachineType::Uint32());
     uint32_t boundary = 24 - WasmOpcodes::MemSize(machineTypes[m]);
@@ -1326,14 +1404,14 @@
 
     CHECK_EQ(0, r.Call(boundary));  // in bounds.
 
-    for (uint32_t offset = boundary + 1; offset < boundary + 19; offset++) {
+    for (uint32_t offset = boundary + 1; offset < boundary + 19; ++offset) {
       CHECK_TRAP(r.Call(offset));  // out of bounds.
     }
   }
 }
 
 WASM_EXEC_TEST(LoadMemI32_offset) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(4);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   module.RandomizeMemory(1111);
@@ -1357,14 +1435,12 @@
   CHECK_EQ(44444444, r.Call(8));
 }
 
-#if !V8_TARGET_ARCH_MIPS && !V8_TARGET_ARCH_MIPS64
-
 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++) {
-    for (int index = 0; index < kMemSize + 5; index++) {
-      TestingModule module;
+  for (int offset = 0; offset < kMemSize + 5; ++offset) {
+    for (int index = 0; index < kMemSize + 5; ++index) {
+      TestingModule module(execution_mode);
       module.AddMemoryElems<byte>(kMemSize);
 
       WasmRunner<int32_t> r(&module);
@@ -1382,13 +1458,11 @@
   }
 }
 
-#endif
-
 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) {
-      TestingModule module;
+      TestingModule module(execution_mode);
       module.AddMemoryElems<byte>(kMemSize);
 
       WasmRunner<int32_t> r(&module);
@@ -1406,8 +1480,25 @@
   }
 }
 
+WASM_EXEC_TEST(StoreMemI32_alignment) {
+  TestingModule module(execution_mode);
+  int32_t* memory = module.AddMemoryElems<int32_t>(4);
+  const int32_t kWritten = 0x12345678;
+
+  for (byte i = 0; i <= 2; ++i) {
+    WasmRunner<int32_t> r(&module, MachineType::Int32());
+    BUILD(r, WASM_STORE_MEM_ALIGNMENT(MachineType::Int32(), WASM_ZERO, i,
+                                      WASM_GET_LOCAL(0)));
+    module.RandomizeMemory(1111);
+    memory[0] = 0;
+
+    CHECK_EQ(kWritten, r.Call(kWritten));
+    CHECK_EQ(kWritten, memory[0]);
+  }
+}
+
 WASM_EXEC_TEST(StoreMemI32_offset) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(4);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   const int32_t kWritten = 0xaabbccdd;
@@ -1415,7 +1506,7 @@
   BUILD(r, WASM_STORE_MEM_OFFSET(MachineType::Int32(), 4, WASM_GET_LOCAL(0),
                                  WASM_I32V_5(kWritten)));
 
-  for (int i = 0; i < 2; i++) {
+  for (int i = 0; i < 2; ++i) {
     module.RandomizeMemory(1111);
     memory[0] = 66666666;
     memory[1] = 77777777;
@@ -1430,23 +1521,16 @@
 }
 
 WASM_EXEC_TEST(StoreMem_offset_oob) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   byte* memory = module.AddMemoryElems<byte>(32);
 
-#if WASM_64
-  static const MachineType machineTypes[] = {
-      MachineType::Int8(),   MachineType::Uint8(),  MachineType::Int16(),
-      MachineType::Uint16(), MachineType::Int32(),  MachineType::Uint32(),
-      MachineType::Int64(),  MachineType::Uint64(), MachineType::Float32(),
-      MachineType::Float64()};
-#else
+  // 64-bit cases are handled in test-run-wasm-64.cc
   static const MachineType machineTypes[] = {
       MachineType::Int8(),    MachineType::Uint8(),  MachineType::Int16(),
       MachineType::Uint16(),  MachineType::Int32(),  MachineType::Uint32(),
       MachineType::Float32(), MachineType::Float64()};
-#endif
 
-  for (size_t m = 0; m < arraysize(machineTypes); m++) {
+  for (size_t m = 0; m < arraysize(machineTypes); ++m) {
     module.RandomizeMemory(1119 + static_cast<int>(m));
     WasmRunner<int32_t> r(&module, MachineType::Uint32());
 
@@ -1459,7 +1543,7 @@
     CHECK_EQ(0, r.Call(boundary));  // in bounds.
     CHECK_EQ(0, memcmp(&memory[0], &memory[8 + boundary], memsize));
 
-    for (uint32_t offset = boundary + 1; offset < boundary + 19; offset++) {
+    for (uint32_t offset = boundary + 1; offset < boundary + 19; ++offset) {
       CHECK_TRAP(r.Call(offset));  // out of bounds.
     }
   }
@@ -1467,21 +1551,21 @@
 
 WASM_EXEC_TEST(LoadMemI32_P) {
   const int kNumElems = 8;
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* memory = module.AddMemoryElems<int32_t>(kNumElems);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   module.RandomizeMemory(2222);
 
   BUILD(r, WASM_LOAD_MEM(MachineType::Int32(), WASM_GET_LOCAL(0)));
 
-  for (int i = 0; i < kNumElems; i++) {
+  for (int i = 0; i < kNumElems; ++i) {
     CHECK_EQ(memory[i], r.Call(i * 4));
   }
 }
 
 WASM_EXEC_TEST(MemI32_Sum) {
   const int kNumElems = 20;
-  TestingModule module;
+  TestingModule module(execution_mode);
   uint32_t* memory = module.AddMemoryElems<uint32_t>(kNumElems);
   WasmRunner<uint32_t> r(&module, MachineType::Int32());
   const byte kSum = r.AllocateLocal(kAstI32);
@@ -1500,20 +1584,20 @@
                WASM_GET_LOCAL(1)));
 
   // Run 4 trials.
-  for (int i = 0; i < 3; i++) {
+  for (int i = 0; i < 3; ++i) {
     module.RandomizeMemory(i * 33);
     uint32_t expected = 0;
-    for (size_t j = kNumElems - 1; j > 0; j--) {
+    for (size_t j = kNumElems - 1; j > 0; --j) {
       expected += memory[j];
     }
-    uint32_t result = r.Call(static_cast<int>(4 * (kNumElems - 1)));
+    uint32_t result = r.Call(4 * (kNumElems - 1));
     CHECK_EQ(expected, result);
   }
 }
 
 WASM_EXEC_TEST(CheckMachIntsZero) {
   const int kNumElems = 55;
-  TestingModule module;
+  TestingModule module(execution_mode);
   module.AddMemoryElems<uint32_t>(kNumElems);
   WasmRunner<uint32_t> r(&module, MachineType::Int32());
 
@@ -1528,7 +1612,7 @@
 
 WASM_EXEC_TEST(MemF32_Sum) {
   const int kSize = 5;
-  TestingModule module;
+  TestingModule module(execution_mode);
   module.AddMemoryElems<float>(kSize);
   float* buffer = module.raw_mem_start<float>();
   buffer[0] = -99.25;
@@ -1560,11 +1644,12 @@
 }
 
 template <typename T>
-T GenerateAndRunFold(WasmOpcode binop, T* buffer, size_t size,
-                     LocalType astType, MachineType memType) {
-  TestingModule module;
+T GenerateAndRunFold(WasmExecutionMode execution_mode, WasmOpcode binop,
+                     T* buffer, uint32_t size, LocalType astType,
+                     MachineType memType) {
+  TestingModule module(execution_mode);
   module.AddMemoryElems<T>(size);
-  for (size_t i = 0; i < size; i++) {
+  for (uint32_t i = 0; i < size; ++i) {
     module.raw_mem_start<T>()[i] = buffer[i];
   }
   WasmRunner<int32_t> r(&module, MachineType::Int32());
@@ -1592,19 +1677,20 @@
 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,
-                                             kAstF64, MachineType::Float64());
+  double result =
+      GenerateAndRunFold<double>(execution_mode, kExprF64Mul, buffer, kSize,
+                                 kAstF64, MachineType::Float64());
   CHECK_EQ(32, result);
 }
 
-TEST(Build_Wasm_Infinite_Loop) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+WASM_EXEC_TEST(Build_Wasm_Infinite_Loop) {
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   // Only build the graph and compile, don't run.
   BUILD(r, WASM_INFINITE_LOOP);
 }
 
-TEST(Build_Wasm_Infinite_Loop_effect) {
-  TestingModule module;
+WASM_EXEC_TEST(Build_Wasm_Infinite_Loop_effect) {
+  TestingModule module(execution_mode);
   module.AddMemoryElems<int8_t>(16);
   WasmRunner<int32_t> r(&module, MachineType::Int32());
 
@@ -1613,47 +1699,47 @@
 }
 
 WASM_EXEC_TEST(Unreachable0a) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
 }
 
 WASM_EXEC_TEST(Unreachable0b) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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());
+  WasmRunner<int32_t> r(kExecuteCompiled, MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE);
 }
 
 TEST(Build_Wasm_Unreachable2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(kExecuteCompiled, MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE, WASM_UNREACHABLE);
 }
 
 TEST(Build_Wasm_Unreachable3) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(kExecuteCompiled, MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE, WASM_UNREACHABLE, WASM_UNREACHABLE);
 }
 
 TEST(Build_Wasm_UnreachableIf1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(kExecuteCompiled, 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());
+  WasmRunner<int32_t> r(kExecuteCompiled, MachineType::Int32());
   BUILD(r, WASM_UNREACHABLE,
         WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_GET_LOCAL(0), WASM_UNREACHABLE));
 }
 
 WASM_EXEC_TEST(Unreachable_Load) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, B2(WASM_BRV(0, WASM_GET_LOCAL(0)),
               WASM_LOAD_MEM(MachineType::Int8(), WASM_GET_LOCAL(0))));
   CHECK_EQ(11, r.Call(11));
@@ -1661,14 +1747,14 @@
 }
 
 WASM_EXEC_TEST(Infinite_Loop_not_taken1) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
 }
 
 WASM_EXEC_TEST(Infinite_Loop_not_taken2) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   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.
@@ -1676,7 +1762,7 @@
 }
 
 WASM_EXEC_TEST(Infinite_Loop_not_taken2_brif) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         B2(WASM_BRV_IF(0, WASM_I8(45), WASM_GET_LOCAL(0)), WASM_INFINITE_LOOP));
   // Run the code, but don't go into the infinite loop.
@@ -1719,7 +1805,7 @@
 }
 
 WASM_EXEC_TEST(Int32LoadInt8_signext) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   const int kNumElems = 16;
   int8_t* memory = module.AddMemoryElems<int8_t>(kNumElems);
   module.RandomizeMemory();
@@ -1727,13 +1813,13 @@
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   BUILD(r, WASM_LOAD_MEM(MachineType::Int8(), WASM_GET_LOCAL(0)));
 
-  for (size_t i = 0; i < kNumElems; i++) {
-    CHECK_EQ(memory[i], r.Call(static_cast<int>(i)));
+  for (int i = 0; i < kNumElems; ++i) {
+    CHECK_EQ(memory[i], r.Call(i));
   }
 }
 
 WASM_EXEC_TEST(Int32LoadInt8_zeroext) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   const int kNumElems = 16;
   byte* memory = module.AddMemory(kNumElems);
   module.RandomizeMemory(77);
@@ -1741,13 +1827,13 @@
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   BUILD(r, WASM_LOAD_MEM(MachineType::Uint8(), WASM_GET_LOCAL(0)));
 
-  for (size_t i = 0; i < kNumElems; i++) {
-    CHECK_EQ(memory[i], r.Call(static_cast<int>(i)));
+  for (int i = 0; i < kNumElems; ++i) {
+    CHECK_EQ(memory[i], r.Call(i));
   }
 }
 
 WASM_EXEC_TEST(Int32LoadInt16_signext) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   const int kNumBytes = 16;
   byte* memory = module.AddMemory(kNumBytes);
   module.RandomizeMemory(888);
@@ -1755,14 +1841,14 @@
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   BUILD(r, WASM_LOAD_MEM(MachineType::Int16(), WASM_GET_LOCAL(0)));
 
-  for (size_t i = 0; i < kNumBytes; i += 2) {
+  for (int i = 0; i < kNumBytes; i += 2) {
     int32_t expected = memory[i] | (static_cast<int8_t>(memory[i + 1]) << 8);
-    CHECK_EQ(expected, r.Call(static_cast<int>(i)));
+    CHECK_EQ(expected, r.Call(i));
   }
 }
 
 WASM_EXEC_TEST(Int32LoadInt16_zeroext) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   const int kNumBytes = 16;
   byte* memory = module.AddMemory(kNumBytes);
   module.RandomizeMemory(9999);
@@ -1770,14 +1856,14 @@
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   BUILD(r, WASM_LOAD_MEM(MachineType::Uint16(), WASM_GET_LOCAL(0)));
 
-  for (size_t i = 0; i < kNumBytes; i += 2) {
+  for (int i = 0; i < kNumBytes; i += 2) {
     int32_t expected = memory[i] | (memory[i + 1] << 8);
-    CHECK_EQ(expected, r.Call(static_cast<int>(i)));
+    CHECK_EQ(expected, r.Call(i));
   }
 }
 
 WASM_EXEC_TEST(Int32Global) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* global = module.AddGlobal<int32_t>(MachineType::Int32());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   // global = global + p0
@@ -1794,12 +1880,12 @@
 
 WASM_EXEC_TEST(Int32Globals_DontAlias) {
   const int kNumGlobals = 3;
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* globals[] = {module.AddGlobal<int32_t>(MachineType::Int32()),
                         module.AddGlobal<int32_t>(MachineType::Int32()),
                         module.AddGlobal<int32_t>(MachineType::Int32())};
 
-  for (int g = 0; g < kNumGlobals; g++) {
+  for (int g = 0; g < kNumGlobals; ++g) {
     // global = global + p0
     WasmRunner<int32_t> r(&module, MachineType::Int32());
     BUILD(r, WASM_STORE_GLOBAL(
@@ -1810,9 +1896,9 @@
     int32_t before[kNumGlobals];
     for (int i = 9; i < 444444; i += 111113) {
       int32_t sum = *globals[g] + i;
-      for (int j = 0; j < kNumGlobals; j++) before[j] = *globals[j];
+      for (int j = 0; j < kNumGlobals; ++j) before[j] = *globals[j];
       r.Call(i);
-      for (int j = 0; j < kNumGlobals; j++) {
+      for (int j = 0; j < kNumGlobals; ++j) {
         int32_t expected = j == g ? sum : before[j];
         CHECK_EQ(expected, *globals[j]);
       }
@@ -1821,7 +1907,7 @@
 }
 
 WASM_EXEC_TEST(Float32Global) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   float* global = module.AddGlobal<float>(MachineType::Float32());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   // global = global + p0
@@ -1839,7 +1925,7 @@
 }
 
 WASM_EXEC_TEST(Float64Global) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   double* global = module.AddGlobal<double>(MachineType::Float64());
   WasmRunner<int32_t> r(&module, MachineType::Int32());
   // global = global + p0
@@ -1857,7 +1943,7 @@
 }
 
 WASM_EXEC_TEST(MixedGlobals) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   int32_t* unused = module.AddGlobal<int32_t>(MachineType::Int32());
   byte* memory = module.AddMemory(32);
 
@@ -1914,7 +2000,7 @@
   const int32_t kExpected = -414444;
   // Build the target function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.i_v(), &module);
   BUILD(t, WASM_I32V_3(kExpected));
   uint32_t index = t.CompileAndAdd();
@@ -1930,9 +2016,9 @@
 WASM_EXEC_TEST(CallF32StackParameter) {
   // Build the target function.
   LocalType param_types[20];
-  for (int i = 0; i < 20; i++) param_types[i] = kAstF32;
+  for (int i = 0; i < 20; ++i) param_types[i] = kAstF32;
   FunctionSig sig(1, 19, param_types);
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(&sig, &module);
   BUILD(t, WASM_GET_LOCAL(17));
   uint32_t index = t.CompileAndAdd();
@@ -1954,9 +2040,9 @@
 WASM_EXEC_TEST(CallF64StackParameter) {
   // Build the target function.
   LocalType param_types[20];
-  for (int i = 0; i < 20; i++) param_types[i] = kAstF64;
+  for (int i = 0; i < 20; ++i) param_types[i] = kAstF64;
   FunctionSig sig(1, 19, param_types);
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(&sig, &module);
   BUILD(t, WASM_GET_LOCAL(17));
   uint32_t index = t.CompileAndAdd();
@@ -1981,7 +2067,7 @@
   const int32_t kExpected = -414444;
   // Build the target function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   module.AddMemory(16);
   module.RandomizeMemory();
   WasmFunctionCompiler t(sigs.v_v(), &module);
@@ -2002,7 +2088,7 @@
 WASM_EXEC_TEST(Call_Int32Add) {
   // Build the target function.
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.i_ii(), &module);
   BUILD(t, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   uint32_t index = t.CompileAndAdd();
@@ -2022,7 +2108,7 @@
 
 WASM_EXEC_TEST(Call_Float32Sub) {
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t(sigs.f_ff(), &module);
 
   // Build the target function.
@@ -2039,7 +2125,7 @@
 }
 
 WASM_EXEC_TEST(Call_Float64Sub) {
-  TestingModule module;
+  TestingModule module(execution_mode);
   double* memory = module.AddMemoryElems<double>(16);
   WasmRunner<int32_t> r(&module);
 
@@ -2069,34 +2155,26 @@
 #define ADD_CODE(vec, ...)                                              \
   do {                                                                  \
     byte __buf[] = {__VA_ARGS__};                                       \
-    for (size_t i = 0; i < sizeof(__buf); i++) vec.push_back(__buf[i]); \
+    for (size_t i = 0; i < sizeof(__buf); ++i) vec.push_back(__buf[i]); \
   } while (false)
 
-static void Run_WasmMixedCall_N(int start) {
+static void Run_WasmMixedCall_N(WasmExecutionMode execution_mode, int start) {
   const int kExpected = 6333;
   const int kElemSize = 8;
   TestSignatures sigs;
 
-#if WASM_64
-  static MachineType mixed[] = {
-      MachineType::Int32(),   MachineType::Float32(), MachineType::Int64(),
-      MachineType::Float64(), MachineType::Float32(), MachineType::Int64(),
-      MachineType::Int32(),   MachineType::Float64(), MachineType::Float32(),
-      MachineType::Float64(), MachineType::Int32(),   MachineType::Int64(),
-      MachineType::Int32(),   MachineType::Int32()};
-#else
+  // 64-bit cases handled in test-run-wasm-64.cc.
   static MachineType mixed[] = {
       MachineType::Int32(),   MachineType::Float32(), MachineType::Float64(),
       MachineType::Float32(), MachineType::Int32(),   MachineType::Float64(),
       MachineType::Float32(), MachineType::Float64(), MachineType::Int32(),
       MachineType::Int32(),   MachineType::Int32()};
-#endif
 
   int num_params = static_cast<int>(arraysize(mixed)) - start;
-  for (int which = 0; which < num_params; which++) {
+  for (int which = 0; which < num_params; ++which) {
     v8::base::AccountingAllocator allocator;
     Zone zone(&allocator);
-    TestingModule module;
+    TestingModule module(execution_mode);
     module.AddMemory(1024);
     MachineType* memtypes = &mixed[start];
     MachineType result = memtypes[which];
@@ -2107,7 +2185,7 @@
     uint32_t index;
     FunctionSig::Builder b(&zone, 1, num_params);
     b.AddReturn(WasmOpcodes::LocalTypeFor(result));
-    for (int i = 0; i < num_params; i++) {
+    for (int i = 0; i < num_params; ++i) {
       b.AddParam(WasmOpcodes::LocalTypeFor(memtypes[i]));
     }
     WasmFunctionCompiler t(b.Build(), &module);
@@ -2124,7 +2202,7 @@
     ADD_CODE(code, WASM_ZERO);
 
     // Load the arguments.
-    for (int i = 0; i < num_params; i++) {
+    for (int i = 0; i < num_params; ++i) {
       int offset = (i + 1) * kElemSize;
       ADD_CODE(code, WASM_LOAD_MEM(memtypes[i], WASM_I8(offset)));
     }
@@ -2144,12 +2222,12 @@
     r.Build(&code[0], &code[0] + code.size());
 
     // Run the code.
-    for (int t = 0; t < 10; t++) {
+    for (int t = 0; t < 10; ++t) {
       module.RandomizeMemory();
       CHECK_EQ(kExpected, r.Call());
 
       int size = WasmOpcodes::MemSize(result);
-      for (int i = 0; i < size; i++) {
+      for (int i = 0; i < size; ++i) {
         int base = (which + 1) * kElemSize;
         byte expected = module.raw_mem_at<byte>(base + i);
         byte result = module.raw_mem_at<byte>(i);
@@ -2159,14 +2237,14 @@
   }
 }
 
-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); }
+WASM_EXEC_TEST(MixedCall_0) { Run_WasmMixedCall_N(execution_mode, 0); }
+WASM_EXEC_TEST(MixedCall_1) { Run_WasmMixedCall_N(execution_mode, 1); }
+WASM_EXEC_TEST(MixedCall_2) { Run_WasmMixedCall_N(execution_mode, 2); }
+WASM_EXEC_TEST(MixedCall_3) { Run_WasmMixedCall_N(execution_mode, 3); }
 
 WASM_EXEC_TEST(AddCall) {
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
   WasmFunctionCompiler t1(sigs.i_ii(), &module);
   BUILD(t1, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
   t1.CompileAndAdd();
@@ -2175,9 +2253,9 @@
   byte local = r.AllocateLocal(kAstI32);
   BUILD(r, B2(WASM_SET_LOCAL(local, WASM_I8(99)),
               WASM_I32_ADD(
-                  WASM_CALL_FUNCTION2(t1.function_index_, WASM_GET_LOCAL(0),
+                  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_CALL_FUNCTION2(t1.function_index(), WASM_GET_LOCAL(1),
                                       WASM_GET_LOCAL(local)))));
 
   CHECK_EQ(198, r.Call(0));
@@ -2186,7 +2264,7 @@
 }
 
 WASM_EXEC_TEST(CountDown_expr) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, WASM_LOOP(
                3, WASM_IF(WASM_NOT(WASM_GET_LOCAL(0)),
                           WASM_BREAKV(1, WASM_GET_LOCAL(0))),
@@ -2198,35 +2276,35 @@
 }
 
 WASM_EXEC_TEST(ExprBlock2a) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   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));
 }
 
 WASM_EXEC_TEST(ExprBlock2b) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   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));
 }
 
 WASM_EXEC_TEST(ExprBlock2c) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
 }
 
 WASM_EXEC_TEST(ExprBlock2d) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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));
 }
 
 WASM_EXEC_TEST(ExprBlock_ManualSwitch) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r, WASM_BLOCK(6, WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(1)),
                                  WASM_BRV(1, WASM_I8(11))),
                       WASM_IF(WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(2)),
@@ -2248,7 +2326,7 @@
 }
 
 WASM_EXEC_TEST(ExprBlock_ManualSwitch_brif) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
   BUILD(r,
         WASM_BLOCK(6, WASM_BRV_IF(0, WASM_I8(11),
                                   WASM_I32_EQ(WASM_GET_LOCAL(0), WASM_I8(1))),
@@ -2271,7 +2349,8 @@
 }
 
 WASM_EXEC_TEST(nested_ifs) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
 
   BUILD(r, WASM_IF_ELSE(
                WASM_GET_LOCAL(0),
@@ -2285,7 +2364,7 @@
 }
 
 WASM_EXEC_TEST(ExprBlock_if) {
-  WasmRunner<int32_t> r(MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32());
 
   BUILD(r, B1(WASM_IF_ELSE(WASM_GET_LOCAL(0), WASM_BRV(0, WASM_I8(11)),
                            WASM_BRV(1, WASM_I8(14)))));
@@ -2295,7 +2374,8 @@
 }
 
 WASM_EXEC_TEST(ExprBlock_nested_ifs) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
 
   BUILD(r, WASM_BLOCK(
                1, WASM_IF_ELSE(
@@ -2312,7 +2392,8 @@
 }
 
 WASM_EXEC_TEST(ExprLoop_nested_ifs) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Int32(),
+                        MachineType::Int32());
 
   BUILD(r, WASM_LOOP(
                1, WASM_IF_ELSE(
@@ -2330,7 +2411,7 @@
 
 WASM_EXEC_TEST(SimpleCallIndirect) {
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
 
   WasmFunctionCompiler t1(sigs.i_ii(), &module);
   BUILD(t1, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -2361,7 +2442,7 @@
 
 WASM_EXEC_TEST(MultipleCallIndirect) {
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
 
   WasmFunctionCompiler t1(sigs.i_ii(), &module);
   BUILD(t1, WASM_I32_ADD(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
@@ -2403,7 +2484,7 @@
 
 WASM_EXEC_TEST(CallIndirect_NoTable) {
   TestSignatures sigs;
-  TestingModule module;
+  TestingModule module(execution_mode);
 
   // One function.
   WasmFunctionCompiler t1(sigs.i_ii(), &module);
@@ -2424,63 +2505,64 @@
 }
 
 WASM_EXEC_TEST(F32Floor) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_FLOOR(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(floorf(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F32Ceil) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_CEIL(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(ceilf(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F32Trunc) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_TRUNC(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(truncf(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F32NearestInt) {
-  WasmRunner<float> r(MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_F32_NEARESTINT(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) { CHECK_FLOAT_EQ(nearbyintf(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F64Floor) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_F64_FLOOR(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(floor(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F64Ceil) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_F64_CEIL(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(ceil(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F64Trunc) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_F64_TRUNC(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(trunc(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F64NearestInt) {
-  WasmRunner<double> r(MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_F64_NEARESTINT(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) { CHECK_DOUBLE_EQ(nearbyint(*i), r.Call(*i)); }
 }
 
 WASM_EXEC_TEST(F32Min) {
-  WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32(),
+                      MachineType::Float32());
   BUILD(r, WASM_F32_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -2503,7 +2585,8 @@
 }
 
 WASM_EXEC_TEST(F64Min) {
-  WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64(),
+                       MachineType::Float64());
   BUILD(r, WASM_F64_MIN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -2526,7 +2609,8 @@
 }
 
 WASM_EXEC_TEST(F32Max) {
-  WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32(),
+                      MachineType::Float32());
   BUILD(r, WASM_F32_MAX(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -2549,7 +2633,8 @@
 }
 
 WASM_EXEC_TEST(F64Max) {
-  WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64(),
+                       MachineType::Float64());
   BUILD(r, WASM_F64_MAX(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -2577,13 +2662,13 @@
 WASM_EXEC_TEST(F32Min_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
-    WasmRunner<float> r;
+    WasmRunner<float> r(execution_mode);
     BUILD(r,
           WASM_F32_MIN(WASM_F32(bit_cast<float>(0xff80f1e2)), WASM_F32(57.67)));
     CHECK_EQ(0xffc0f1e2, bit_cast<uint32_t>(r.Call()));
   }
   {
-    WasmRunner<float> r;
+    WasmRunner<float> r(execution_mode);
     BUILD(r,
           WASM_F32_MIN(WASM_F32(45.73), WASM_F32(bit_cast<float>(0x7f80f1e2))));
     CHECK_EQ(0x7fc0f1e2, bit_cast<uint32_t>(r.Call()));
@@ -2593,13 +2678,13 @@
 WASM_EXEC_TEST(F32Max_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
-    WasmRunner<float> r;
+    WasmRunner<float> r(execution_mode);
     BUILD(r,
           WASM_F32_MAX(WASM_F32(bit_cast<float>(0xff80f1e2)), WASM_F32(57.67)));
     CHECK_EQ(0xffc0f1e2, bit_cast<uint32_t>(r.Call()));
   }
   {
-    WasmRunner<float> r;
+    WasmRunner<float> r(execution_mode);
     BUILD(r,
           WASM_F32_MAX(WASM_F32(45.73), WASM_F32(bit_cast<float>(0x7f80f1e2))));
     CHECK_EQ(0x7fc0f1e2, bit_cast<uint32_t>(r.Call()));
@@ -2609,13 +2694,13 @@
 WASM_EXEC_TEST(F64Min_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
-    WasmRunner<double> r;
+    WasmRunner<double> r(execution_mode);
     BUILD(r, WASM_F64_MIN(WASM_F64(bit_cast<double>(0xfff000000000f1e2)),
                           WASM_F64(57.67)));
     CHECK_EQ(0xfff800000000f1e2, bit_cast<uint64_t>(r.Call()));
   }
   {
-    WasmRunner<double> r;
+    WasmRunner<double> r(execution_mode);
     BUILD(r, WASM_F64_MIN(WASM_F64(45.73),
                           WASM_F64(bit_cast<double>(0x7ff000000000f1e2))));
     CHECK_EQ(0x7ff800000000f1e2, bit_cast<uint64_t>(r.Call()));
@@ -2625,13 +2710,13 @@
 WASM_EXEC_TEST(F64Max_Snan) {
   // Test that the instruction does not return a signalling NaN.
   {
-    WasmRunner<double> r;
+    WasmRunner<double> r(execution_mode);
     BUILD(r, WASM_F64_MAX(WASM_F64(bit_cast<double>(0xfff000000000f1e2)),
                           WASM_F64(57.67)));
     CHECK_EQ(0xfff800000000f1e2, bit_cast<uint64_t>(r.Call()));
   }
   {
-    WasmRunner<double> r;
+    WasmRunner<double> r(execution_mode);
     BUILD(r, WASM_F64_MAX(WASM_F64(45.73),
                           WASM_F64(bit_cast<double>(0x7ff000000000f1e2))));
     CHECK_EQ(0x7ff800000000f1e2, bit_cast<uint64_t>(r.Call()));
@@ -2641,7 +2726,7 @@
 #endif
 
 WASM_EXEC_TEST(I32SConvertF32) {
-  WasmRunner<int32_t> r(MachineType::Float32());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I32_SCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -2655,7 +2740,7 @@
 }
 
 WASM_EXEC_TEST(I32SConvertF64) {
-  WasmRunner<int32_t> r(MachineType::Float64());
+  WasmRunner<int32_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I32_SCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -2669,7 +2754,7 @@
 }
 
 WASM_EXEC_TEST(I32UConvertF32) {
-  WasmRunner<uint32_t> r(MachineType::Float32());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Float32());
   BUILD(r, WASM_I32_UCONVERT_F32(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -2682,7 +2767,7 @@
 }
 
 WASM_EXEC_TEST(I32UConvertF64) {
-  WasmRunner<uint32_t> r(MachineType::Float64());
+  WasmRunner<uint32_t> r(execution_mode, MachineType::Float64());
   BUILD(r, WASM_I32_UCONVERT_F64(WASM_GET_LOCAL(0)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -2695,7 +2780,8 @@
 }
 
 WASM_EXEC_TEST(F64CopySign) {
-  WasmRunner<double> r(MachineType::Float64(), MachineType::Float64());
+  WasmRunner<double> r(execution_mode, MachineType::Float64(),
+                       MachineType::Float64());
   BUILD(r, WASM_F64_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT64_INPUTS(i) {
@@ -2704,7 +2790,8 @@
 }
 
 WASM_EXEC_TEST(F32CopySign) {
-  WasmRunner<float> r(MachineType::Float32(), MachineType::Float32());
+  WasmRunner<float> r(execution_mode, MachineType::Float32(),
+                      MachineType::Float32());
   BUILD(r, WASM_F32_COPYSIGN(WASM_GET_LOCAL(0), WASM_GET_LOCAL(1)));
 
   FOR_FLOAT32_INPUTS(i) {
@@ -2712,15 +2799,15 @@
   }
 }
 
-void CompileCallIndirectMany(LocalType param) {
+static void CompileCallIndirectMany(LocalType param) {
   // Make sure we don't run out of registers when compiling indirect calls
   // with many many parameters.
   TestSignatures sigs;
-  for (byte num_params = 0; num_params < 40; num_params++) {
+  for (byte num_params = 0; num_params < 40; ++num_params) {
     v8::base::AccountingAllocator allocator;
     Zone zone(&allocator);
     HandleScope scope(CcTest::InitIsolateOnce());
-    TestingModule module;
+    TestingModule module(kExecuteCompiled);
     FunctionSig* sig = sigs.many(&zone, kAstStmt, param, num_params);
 
     module.AddSignature(sig);
@@ -2731,7 +2818,7 @@
 
     std::vector<byte> code;
     ADD_CODE(code, kExprI8Const, 0);
-    for (byte p = 0; p < num_params; p++) {
+    for (byte p = 0; p < num_params; ++p) {
       ADD_CODE(code, kExprGetLocal, p);
     }
     ADD_CODE(code, kExprCallIndirect, static_cast<byte>(num_params), 1);
@@ -2743,16 +2830,13 @@
 
 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); }
 
 WASM_EXEC_TEST(Int32RemS_dead) {
-  WasmRunner<int32_t> r(MachineType::Int32(), MachineType::Int32());
+  WasmRunner<int32_t> r(execution_mode, 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();
   CHECK_EQ(0, r.Call(133, 100));
diff --git a/test/cctest/wasm/test-wasm-function-name-table.cc b/test/cctest/wasm/test-wasm-function-name-table.cc
index 2f1e251..1ae78dc 100644
--- a/test/cctest/wasm/test-wasm-function-name-table.cc
+++ b/test/cctest/wasm/test-wasm-function-name-table.cc
@@ -30,17 +30,20 @@
 
   WasmModule module;
   std::vector<char> all_names;
+  // No name should have offset 0, because that encodes unnamed functions.
+  // In real wasm binary, offset 0 is impossible anyway.
+  all_names.push_back('\0');
 
   uint32_t func_index = 0;
   for (Vector<const char> name : names) {
-    size_t name_offset = all_names.size();
+    size_t name_offset = name.start() ? all_names.size() : 0;
     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});
+    module.functions.push_back({nullptr, 0, 0,
+                                static_cast<uint32_t>(name_offset),
+                                static_cast<uint32_t>(name.length()), 0, 0});
     ++func_index;
   }
 
@@ -53,19 +56,21 @@
 
   func_index = 0;
   for (Vector<const char> name : names) {
-    Handle<Object> string_obj = GetWasmFunctionNameFromTable(
+    MaybeHandle<String> string = 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));
+    if (name.start()) {
+      CHECK(string.ToHandleChecked()->IsUtf8EqualTo(name));
+    } else {
+      CHECK(string.is_null());
+    }
     ++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));
+  for (const char *name : names)
+    names_vec.push_back(name ? CStrVector(name) : Vector<const char>());
   testFunctionNameTable(Vector<Vector<const char>>(
       names_vec.data(), static_cast<int>(names_vec.size())));
 }
@@ -108,3 +113,8 @@
   const char *names[] = {"↱fun↰", "↺", "alpha:α beta:β"};
   testFunctionNameTable(ArrayVector(names));
 }
+
+TEST(UnnamedVsEmptyNames) {
+  const char *names[] = {"", nullptr, nullptr, ""};
+  testFunctionNameTable(ArrayVector(names));
+}
diff --git a/test/cctest/wasm/test-wasm-stack.cc b/test/cctest/wasm/test-wasm-stack.cc
index b6cd674..f2a8481 100644
--- a/test/cctest/wasm/test-wasm-stack.cc
+++ b/test/cctest/wasm/test-wasm-stack.cc
@@ -51,10 +51,10 @@
 };
 
 template <int N>
-void CheckExceptionInfos(Isolate* isolate, Handle<Object> exc,
+void CheckExceptionInfos(Handle<Object> exc,
                          const ExceptionInfo (&excInfos)[N]) {
   // Check that it's indeed an Error object.
-  CHECK(Object::IsErrorObject(isolate, exc));
+  CHECK(exc->IsJSError());
 
   // Extract stack frame from the exception.
   Local<v8::Value> localExc = Utils::ToLocal(exc);
@@ -110,16 +110,15 @@
       Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
   CHECK(returnObjMaybe.is_null());
 
-  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  // The column is 1-based, so add 1 to the actual byte offset.
   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}                               // -
+      {"a", 3, 8},                                            // -
+      {"js", 4, 2},                                           // -
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index), 3},    // -
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index_2), 2},  // -
+      {"callFn", 1, 24}                                       // -
   };
-  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
-                      expected_exceptions);
+  CheckExceptionInfos(maybe_exc.ToHandleChecked(), expected_exceptions);
 }
 
 // Trigger a trap in WASM, stack should be JS -> WASM -> WASM.
@@ -155,12 +154,11 @@
       Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
   CHECK(maybe_return_obj.is_null());
 
-  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  // The column is 1-based, so add 1 to the actual byte offset.
   ExceptionInfo expected_exceptions[] = {
-      {"<WASM>", static_cast<int>(wasm_index), 1},    // -
-      {"<WASM>", static_cast<int>(wasm_index_2), 1},  // -
-      {"callFn", 1, 24}                               //-
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index), 2},    // -
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index_2), 2},  // -
+      {"callFn", 1, 24}                                       //-
   };
-  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
-                      expected_exceptions);
+  CheckExceptionInfos(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
index 13f2929..30f5d48 100644
--- a/test/cctest/wasm/test-wasm-trap-position.cc
+++ b/test/cctest/wasm/test-wasm-trap-position.cc
@@ -38,10 +38,10 @@
 };
 
 template <int N>
-void CheckExceptionInfos(Isolate* isolate, Handle<Object> exc,
+void CheckExceptionInfos(Handle<Object> exc,
                          const ExceptionInfo (&excInfos)[N]) {
   // Check that it's indeed an Error object.
-  CHECK(Object::IsErrorObject(isolate, exc));
+  CHECK(exc->IsJSError());
 
   // Extract stack frame from the exception.
   Local<v8::Value> localExc = Utils::ToLocal(exc);
@@ -88,12 +88,12 @@
       Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
   CHECK(returnObjMaybe.is_null());
 
+  // The column is 1-based, so add 1 to the actual byte offset.
   ExceptionInfo expected_exceptions[] = {
-      {"<WASM>", static_cast<int>(wasm_index), 1},  // --
-      {"callFn", 1, 24}                             // --
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index), 2},  // --
+      {"callFn", 1, 24}                                     // --
   };
-  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
-                      expected_exceptions);
+  CheckExceptionInfos(maybe_exc.ToHandleChecked(), expected_exceptions);
 }
 
 // Trigger a trap for loading from out-of-bounds.
@@ -129,12 +129,11 @@
       Execution::TryCall(isolate, js_trampoline, global, 1, args, &maybe_exc);
   CHECK(returnObjMaybe.is_null());
 
-  // Line number is 1-based, with 0 == kNoLineNumberInfo.
+  // The column is 1-based, so add 1 to the actual byte offset.
   ExceptionInfo expected_exceptions[] = {
-      {"<WASM>", static_cast<int>(wasm_index), 6},    // --
-      {"<WASM>", static_cast<int>(wasm_index_2), 2},  // --
-      {"callFn", 1, 24}                               // --
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index), 7},    // --
+      {"<WASM UNNAMED>", static_cast<int>(wasm_index_2), 3},  // --
+      {"callFn", 1, 24}                                       // --
   };
-  CheckExceptionInfos(isolate, maybe_exc.ToHandleChecked(),
-                      expected_exceptions);
+  CheckExceptionInfos(maybe_exc.ToHandleChecked(), expected_exceptions);
 }
diff --git a/test/cctest/wasm/wasm-run-utils.h b/test/cctest/wasm/wasm-run-utils.h
index a92c9ff..1f758bb 100644
--- a/test/cctest/wasm/wasm-run-utils.h
+++ b/test/cctest/wasm/wasm-run-utils.h
@@ -9,6 +9,7 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "src/base/accounting-allocator.h"
 #include "src/base/utils/random-number-generator.h"
 
 #include "src/compiler/graph-visualizer.h"
@@ -20,6 +21,7 @@
 #include "src/compiler/zone-pool.h"
 
 #include "src/wasm/ast-decoder.h"
+#include "src/wasm/wasm-interpreter.h"
 #include "src/wasm/wasm-js.h"
 #include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-module.h"
@@ -31,15 +33,10 @@
 #include "test/cctest/compiler/call-tester.h"
 #include "test/cctest/compiler/graph-builder-tester.h"
 
-// TODO(titzer): pull WASM_64 up to a common header.
-#if !V8_TARGET_ARCH_32_BIT || V8_TARGET_ARCH_X64
-#define WASM_64 1
-#else
-#define WASM_64 0
-#endif
-
 static const uint32_t kMaxFunctions = 10;
 
+enum WasmExecutionMode { kExecuteInterpreted, kExecuteCompiled };
+
 // TODO(titzer): check traps more robustly in tests.
 // Currently, in tests, we just return 0xdeadbeef from the function in which
 // the trap occurs if the runtime context is not available to throw a JavaScript
@@ -72,16 +69,21 @@
 // {WasmModuleInstance}.
 class TestingModule : public ModuleEnv {
  public:
-  TestingModule() : instance_(&module_), global_offset(0) {
-    module_.shared_isolate = CcTest::InitIsolateOnce();
+  explicit TestingModule(WasmExecutionMode mode = kExecuteCompiled)
+      : execution_mode_(mode),
+        instance_(&module_),
+        isolate_(CcTest::InitIsolateOnce()),
+        global_offset(0),
+        interpreter_(mode == kExecuteInterpreted
+                         ? new WasmInterpreter(&instance_, &allocator_)
+                         : nullptr) {
     module = &module_;
     instance = &instance_;
     instance->module = &module_;
     instance->globals_start = global_data;
-    instance->globals_size = kMaxGlobalsSize;
+    module_.globals_size = kMaxGlobalsSize;
     instance->mem_start = nullptr;
     instance->mem_size = 0;
-    linker = nullptr;
     origin = kWasmOrigin;
     memset(global_data, 0, sizeof(global_data));
   }
@@ -90,9 +92,10 @@
     if (instance->mem_start) {
       free(instance->mem_start);
     }
+    if (interpreter_) delete interpreter_;
   }
 
-  byte* AddMemory(size_t size) {
+  byte* AddMemory(uint32_t size) {
     CHECK_NULL(instance->mem_start);
     CHECK_EQ(0, instance->mem_size);
     instance->mem_start = reinterpret_cast<byte*>(malloc(size));
@@ -103,19 +106,19 @@
   }
 
   template <typename T>
-  T* AddMemoryElems(size_t count) {
+  T* AddMemoryElems(uint32_t count) {
     AddMemory(count * sizeof(T));
     return raw_mem_start<T>();
   }
 
   template <typename T>
   T* AddGlobal(MachineType mem_type) {
-    WasmGlobal* global = AddGlobal(mem_type);
+    const WasmGlobal* global = AddGlobal(mem_type);
     return reinterpret_cast<T*>(instance->globals_start + global->offset);
   }
 
   byte AddSignature(FunctionSig* sig) {
-    module->signatures.push_back(sig);
+    module_.signatures.push_back(sig);
     size_t size = module->signatures.size();
     CHECK(size < 127);
     return static_cast<byte>(size - 1);
@@ -165,11 +168,16 @@
     if (module->functions.size() == 0) {
       // TODO(titzer): Reserving space here to avoid the underlying WasmFunction
       // structs from moving.
-      module->functions.reserve(kMaxFunctions);
+      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, false});
+    module_.functions.push_back({sig, index, 0, 0, 0, 0, 0});
     instance->function_code.push_back(code);
+    if (interpreter_) {
+      const WasmFunction* function = &module->functions.back();
+      int interpreter_index = interpreter_->AddFunctionForTesting(function);
+      CHECK_EQ(index, static_cast<uint32_t>(interpreter_index));
+    }
     DCHECK_LT(index, kMaxFunctions);  // limited for testing.
     return index;
   }
@@ -178,23 +186,21 @@
     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,
+    Handle<Code> code = CompileWasmToJSWrapper(isolate_, 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<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,
+    WasmJs::InstallWasmFunctionMap(isolate_, isolate_->native_context());
+    return compiler::CompileJSToWasmWrapper(isolate_, this, name, code,
                                             module_object, index);
   }
 
@@ -203,13 +209,12 @@
   }
 
   void AddIndirectFunctionTable(int* functions, int table_size) {
-    Isolate* isolate = module->shared_isolate;
     Handle<FixedArray> fixed =
-        isolate->factory()->NewFixedArray(2 * table_size);
+        isolate_->factory()->NewFixedArray(2 * table_size);
     instance->function_table = fixed;
     DCHECK_EQ(0u, module->function_table.size());
     for (int i = 0; i < table_size; i++) {
-      module->function_table.push_back(functions[i]);
+      module_.function_table.push_back(functions[i]);
     }
   }
 
@@ -218,23 +223,31 @@
     int table_size = static_cast<int>(module->function_table.size());
     for (int i = 0; i < table_size; i++) {
       int function_index = module->function_table[i];
-      WasmFunction* function = &module->functions[function_index];
+      const WasmFunction* function = &module->functions[function_index];
       instance->function_table->set(i, Smi::FromInt(function->sig_index));
       instance->function_table->set(i + table_size,
                                     *instance->function_code[function_index]);
     }
   }
+  WasmFunction* GetFunctionAt(int index) { return &module_.functions[index]; }
+
+  WasmInterpreter* interpreter() { return interpreter_; }
+  WasmExecutionMode execution_mode() { return execution_mode_; }
 
  private:
+  WasmExecutionMode execution_mode_;
   WasmModule module_;
   WasmModuleInstance instance_;
+  Isolate* isolate_;
+  v8::base::AccountingAllocator allocator_;
   uint32_t global_offset;
   V8_ALIGNED(8) byte global_data[kMaxGlobalsSize];  // preallocated global data.
+  WasmInterpreter* interpreter_;
 
-  WasmGlobal* AddGlobal(MachineType mem_type) {
+  const WasmGlobal* AddGlobal(MachineType mem_type) {
     byte size = WasmOpcodes::MemSize(mem_type);
     global_offset = (global_offset + size - 1) & ~(size - 1);  // align
-    module->globals.push_back({0, 0, mem_type, global_offset, false});
+    module_.globals.push_back({0, 0, mem_type, global_offset, false});
     global_offset += size;
     // limit number of globals.
     CHECK_LT(global_offset, kMaxGlobalsSize);
@@ -408,14 +421,41 @@
 // A helper for compiling WASM functions for testing. This class can create a
 // standalone function if {module} is NULL or a function within a
 // {TestingModule}. It contains the internal state for compilation (i.e.
-// TurboFan graph) and, later, interpretation.
+// TurboFan graph) and interpretation (by adding to the interpreter manually).
 class WasmFunctionCompiler : public HandleAndZoneScope,
                              private GraphAndBuilders {
  public:
   explicit WasmFunctionCompiler(
+      FunctionSig* sig, WasmExecutionMode mode,
+      Vector<const char> debug_name = ArrayVector("<WASM UNNAMED>"))
+      : GraphAndBuilders(main_zone()),
+        execution_mode_(mode),
+        jsgraph(this->isolate(), this->graph(), this->common(), nullptr,
+                nullptr, this->machine()),
+        sig(sig),
+        descriptor_(nullptr),
+        testing_module_(nullptr),
+        debug_name_(debug_name),
+        local_decls(main_zone(), sig),
+        source_position_table_(this->graph()),
+        interpreter_(nullptr) {
+    // Create our own function.
+    function_ = new WasmFunction();
+    function_->sig = sig;
+    function_->func_index = 0;
+    function_->sig_index = 0;
+    if (mode == kExecuteInterpreted) {
+      interpreter_ = new WasmInterpreter(nullptr, zone()->allocator());
+      int index = interpreter_->AddFunctionForTesting(function_);
+      CHECK_EQ(0, index);
+    }
+  }
+
+  explicit WasmFunctionCompiler(
       FunctionSig* sig, TestingModule* module,
       Vector<const char> debug_name = ArrayVector("<WASM UNNAMED>"))
       : GraphAndBuilders(main_zone()),
+        execution_mode_(module->execution_mode()),
         jsgraph(this->isolate(), this->graph(), this->common(), nullptr,
                 nullptr, this->machine()),
         sig(sig),
@@ -423,23 +463,20 @@
         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;
-      function_index_ = module->AddFunction(sig, Handle<Code>::null());
-    } else {
-      // Create our own function.
-      function_ = new WasmFunction();
-      function_->sig = sig;
-      function_index_ = 0;
-    }
+        source_position_table_(this->graph()),
+        interpreter_(module->interpreter()) {
+    // Get a new function from the testing module.
+    int index = module->AddFunction(sig, Handle<Code>::null());
+    function_ = testing_module_->GetFunctionAt(index);
   }
 
   ~WasmFunctionCompiler() {
-    if (function_) delete function_;
+    if (testing_module_) return;  // testing module owns the below things.
+    delete function_;
+    if (interpreter_) delete interpreter_;
   }
 
+  WasmExecutionMode execution_mode_;
   JSGraph jsgraph;
   FunctionSig* sig;
   // The call descriptor is initialized when the function is compiled.
@@ -447,9 +484,9 @@
   TestingModule* testing_module_;
   Vector<const char> debug_name_;
   WasmFunction* function_;
-  int function_index_;
   LocalDeclEncoder local_decls;
   SourcePositionTable source_position_table_;
+  WasmInterpreter* interpreter_;
 
   Isolate* isolate() { return main_isolate(); }
   Graph* graph() const { return main_graph_; }
@@ -462,13 +499,17 @@
     }
   }
   CallDescriptor* descriptor() { return descriptor_; }
+  uint32_t function_index() { return function_->func_index; }
 
   void Build(const byte* start, const byte* end) {
     // Build the TurboFan graph.
-    local_decls.Prepend(&start, &end);
+    local_decls.Prepend(main_zone(), &start, &end);
     TestBuildingGraph(main_zone(), &jsgraph, testing_module_, sig,
                       &source_position_table_, start, end);
-    delete[] start;
+    if (interpreter_) {
+      // Add the code to the interpreter.
+      CHECK(interpreter_->SetFunctionCodeForTesting(function_, start, end));
+    }
   }
 
   byte AllocateLocal(LocalType type) {
@@ -494,13 +535,13 @@
 
     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.
+    // 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(1, Smi::FromInt(static_cast<int>(function_index())));
     deopt_data->set_length(2);
     code->set_deoptimization_data(*deopt_data);
 
@@ -516,15 +557,10 @@
 
   uint32_t CompileAndAdd(uint16_t sig_index = 0) {
     CHECK(testing_module_);
-    function()->sig_index = sig_index;
+    function_->sig_index = sig_index;
     Handle<Code> code = Compile();
-    testing_module_->SetFunctionCode(function_index_, code);
-    return static_cast<uint32_t>(function_index_);
-  }
-
-  WasmFunction* function() {
-    if (function_) return function_;
-    return &testing_module_->module->functions[function_index_];
+    testing_module_->SetFunctionCode(function_index(), code);
+    return function_index();
   }
 
   // Set the context, such that e.g. runtime functions can be called.
@@ -543,7 +579,8 @@
 template <typename ReturnType>
 class WasmRunner {
  public:
-  WasmRunner(MachineType p0 = MachineType::None(),
+  WasmRunner(WasmExecutionMode execution_mode,
+             MachineType p0 = MachineType::None(),
              MachineType p1 = MachineType::None(),
              MachineType p2 = MachineType::None(),
              MachineType p3 = MachineType::None())
@@ -551,7 +588,7 @@
         compiled_(false),
         signature_(MachineTypeForC<ReturnType>() == MachineType::None() ? 0 : 1,
                    GetParameterCount(p0, p1, p2, p3), storage_),
-        compiler_(&signature_, nullptr) {
+        compiler_(&signature_, execution_mode) {
     InitSigStorage(p0, p1, p2, p3);
   }
 
@@ -594,51 +631,102 @@
   void Build(const byte* start, const byte* end) {
     CHECK(!compiled_);
     compiled_ = true;
-
-    // Build the TF graph within the compiler.
     compiler_.Build(start, end);
-    // Generate code.
-    Handle<Code> code = compiler_.Compile();
 
-    if (compiler_.testing_module_) {
-      // Update the table of function code in the module.
-      compiler_.testing_module_->SetFunctionCode(compiler_.function_index_,
-                                                 code);
+    if (!interpret()) {
+      // Compile machine code and install it into the module.
+      Handle<Code> code = compiler_.Compile();
+
+      if (compiler_.testing_module_) {
+        // Update the table of function code in the module.
+        compiler_.testing_module_->SetFunctionCode(
+            compiler_.function_->func_index, code);
+      }
+
+      wrapper_.SetInnerCode(code);
     }
-
-    wrapper_.SetInnerCode(code);
   }
 
-  ReturnType Call() { return Call(0, 0, 0, 0); }
+  ReturnType Call() {
+    if (interpret()) {
+      return CallInterpreter(Vector<WasmVal>(nullptr, 0));
+    } else {
+      return Call(0, 0, 0, 0);
+    }
+  }
 
   template <typename P0>
   ReturnType Call(P0 p0) {
-    return Call(p0, 0, 0, 0);
+    if (interpret()) {
+      WasmVal args[] = {WasmVal(p0)};
+      return CallInterpreter(ArrayVector(args));
+    } else {
+      return Call(p0, 0, 0, 0);
+    }
   }
 
   template <typename P0, typename P1>
   ReturnType Call(P0 p0, P1 p1) {
-    return Call(p0, p1, 0, 0);
+    if (interpret()) {
+      WasmVal args[] = {WasmVal(p0), WasmVal(p1)};
+      return CallInterpreter(ArrayVector(args));
+    } else {
+      return Call(p0, p1, 0, 0);
+    }
   }
 
   template <typename P0, typename P1, typename P2>
   ReturnType Call(P0 p0, P1 p1, P2 p2) {
-    return Call(p0, p1, p2, 0);
+    if (interpret()) {
+      WasmVal args[] = {WasmVal(p0), WasmVal(p1), WasmVal(p2)};
+      return CallInterpreter(ArrayVector(args));
+    } else {
+      return Call(p0, p1, p2, 0);
+    }
   }
 
   template <typename P0, typename P1, typename P2, typename P3>
   ReturnType Call(P0 p0, P1 p1, P2 p2, P3 p3) {
-    CodeRunner<int32_t> runner(CcTest::InitIsolateOnce(),
-                               wrapper_.GetWrapperCode(), wrapper_.signature());
-    ReturnType return_value;
-    int32_t result = runner.Call<void*, void*, void*, void*, void*>(
-        &p0, &p1, &p2, &p3, &return_value);
-    CHECK_EQ(WASM_WRAPPER_RETURN_VALUE, result);
-    return return_value;
+    if (interpret()) {
+      WasmVal args[] = {WasmVal(p0), WasmVal(p1), WasmVal(p2), WasmVal(p3)};
+      return CallInterpreter(ArrayVector(args));
+    } else {
+      CodeRunner<int32_t> runner(CcTest::InitIsolateOnce(),
+                                 wrapper_.GetWrapperCode(),
+                                 wrapper_.signature());
+      ReturnType return_value;
+      int32_t result = runner.Call<void*, void*, void*, void*, void*>(
+          &p0, &p1, &p2, &p3, &return_value);
+      CHECK_EQ(WASM_WRAPPER_RETURN_VALUE, result);
+      return return_value;
+    }
+  }
+
+  ReturnType CallInterpreter(Vector<WasmVal> args) {
+    CHECK_EQ(args.length(),
+             static_cast<int>(compiler_.function_->sig->parameter_count()));
+    WasmInterpreter::Thread* thread = interpreter()->GetThread(0);
+    thread->Reset();
+    thread->PushFrame(compiler_.function_, args.start());
+    if (thread->Run() == WasmInterpreter::FINISHED) {
+      WasmVal val = thread->GetReturnValue();
+      return val.to<ReturnType>();
+    } else if (thread->state() == WasmInterpreter::TRAPPED) {
+      // TODO(titzer): return the correct trap code
+      int64_t result = 0xdeadbeefdeadbeef;
+      return static_cast<ReturnType>(result);
+    } else {
+      // TODO(titzer): falling off end
+      ReturnType val = 0;
+      return val;
+    }
   }
 
   byte AllocateLocal(LocalType type) { return compiler_.AllocateLocal(type); }
 
+  WasmFunction* function() { return compiler_.function_; }
+  WasmInterpreter* interpreter() { return compiler_.interpreter_; }
+
  protected:
   v8::base::AccountingAllocator allocator_;
   Zone zone;
@@ -648,6 +736,8 @@
   WasmFunctionCompiler compiler_;
   WasmFunctionWrapper<ReturnType> wrapper_;
 
+  bool interpret() { return compiler_.execution_mode_ == kExecuteInterpreted; }
+
   static size_t GetParameterCount(MachineType p0, MachineType p1,
                                   MachineType p2, MachineType p3) {
     if (p0 == MachineType::None()) return 0;
@@ -662,10 +752,11 @@
 // 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()
+#define WASM_EXEC_TEST(name)                                               \
+  void RunWasm_##name(WasmExecutionMode execution_mode);                   \
+  TEST(RunWasmCompiled_##name) { RunWasm_##name(kExecuteCompiled); }       \
+  TEST(RunWasmInterpreted_##name) { RunWasm_##name(kExecuteInterpreted); } \
+  void RunWasm_##name(WasmExecutionMode execution_mode)
 
 }  // namespace
 
diff --git a/test/fuzzer/fuzzer-support.cc b/test/fuzzer/fuzzer-support.cc
index 5df0bd8..ea9fb09 100644
--- a/test/fuzzer/fuzzer-support.cc
+++ b/test/fuzzer/fuzzer-support.cc
@@ -40,7 +40,7 @@
 FuzzerSupport::FuzzerSupport(int* argc, char*** argv) {
   v8::internal::FLAG_expose_gc = true;
   v8::V8::SetFlagsFromCommandLine(argc, *argv, true);
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation((*argv)[0]);
   v8::V8::InitializeExternalStartupData((*argv)[0]);
   platform_ = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform_);
diff --git a/test/fuzzer/fuzzer.gyp b/test/fuzzer/fuzzer.gyp
index b125ec2..c7c4cb4 100644
--- a/test/fuzzer/fuzzer.gyp
+++ b/test/fuzzer/fuzzer.gyp
@@ -9,7 +9,7 @@
   'includes': ['../../gypfiles/toolchain.gypi', '../../gypfiles/features.gypi'],
   'targets': [
     {
-      'target_name': 'json_fuzzer',
+      'target_name': 'v8_simple_json_fuzzer',
       'type': 'executable',
       'dependencies': [
         'json_fuzzer_lib',
@@ -35,7 +35,7 @@
       ],
     },
     {
-      'target_name': 'parser_fuzzer',
+      'target_name': 'v8_simple_parser_fuzzer',
       'type': 'executable',
       'dependencies': [
         'parser_fuzzer_lib',
@@ -61,7 +61,7 @@
       ],
     },
     {
-      'target_name': 'regexp_fuzzer',
+      'target_name': 'v8_simple_regexp_fuzzer',
       'type': 'executable',
       'dependencies': [
         'regexp_fuzzer_lib',
@@ -87,7 +87,7 @@
       ],
     },
     {
-      'target_name': 'wasm_fuzzer',
+      'target_name': 'v8_simple_wasm_fuzzer',
       'type': 'executable',
       'dependencies': [
         'wasm_fuzzer_lib',
@@ -113,7 +113,7 @@
       ],
     },
     {
-      'target_name': 'wasm_asmjs_fuzzer',
+      'target_name': 'v8_simple_wasm_asmjs_fuzzer',
       'type': 'executable',
       'dependencies': [
         'wasm_asmjs_fuzzer_lib',
@@ -169,9 +169,11 @@
           'target_name': 'fuzzer_run',
           'type': 'none',
           'dependencies': [
-            'json_fuzzer',
-            'parser_fuzzer',
-            'regexp_fuzzer',
+            'v8_simple_json_fuzzer',
+            'v8_simple_parser_fuzzer',
+            'v8_simple_regexp_fuzzer',
+            'v8_simple_wasm_fuzzer',
+            'v8_simple_wasm_asmjs_fuzzer',
           ],
           'includes': [
             '../../gypfiles/isolate.gypi',
diff --git a/test/fuzzer/fuzzer.isolate b/test/fuzzer/fuzzer.isolate
index 4e98edd..2611c72 100644
--- a/test/fuzzer/fuzzer.isolate
+++ b/test/fuzzer/fuzzer.isolate
@@ -5,11 +5,11 @@
 {
   'variables': {
     'files': [
-      '<(PRODUCT_DIR)/json_fuzzer<(EXECUTABLE_SUFFIX)',
-      '<(PRODUCT_DIR)/parser_fuzzer<(EXECUTABLE_SUFFIX)',
-      '<(PRODUCT_DIR)/regexp_fuzzer<(EXECUTABLE_SUFFIX)',
-      '<(PRODUCT_DIR)/wasm_fuzzer<(EXECUTABLE_SUFFIX)',
-      '<(PRODUCT_DIR)/wasm_asmjs_fuzzer<(EXECUTABLE_SUFFIX)',
+      '<(PRODUCT_DIR)/v8_simple_json_fuzzer<(EXECUTABLE_SUFFIX)',
+      '<(PRODUCT_DIR)/v8_simple_parser_fuzzer<(EXECUTABLE_SUFFIX)',
+      '<(PRODUCT_DIR)/v8_simple_regexp_fuzzer<(EXECUTABLE_SUFFIX)',
+      '<(PRODUCT_DIR)/v8_simple_wasm_fuzzer<(EXECUTABLE_SUFFIX)',
+      '<(PRODUCT_DIR)/v8_simple_wasm_asmjs_fuzzer<(EXECUTABLE_SUFFIX)',
       './fuzzer.status',
       './testcfg.py',
       './json/',
diff --git a/test/fuzzer/regexp.cc b/test/fuzzer/regexp.cc
index 64c03ae..40e3470 100644
--- a/test/fuzzer/regexp.cc
+++ b/test/fuzzer/regexp.cc
@@ -30,7 +30,6 @@
   v8::Context::Scope context_scope(support->GetContext());
   v8::TryCatch try_catch(isolate);
 
-  i::FLAG_harmony_unicode_regexps = true;
   i::FLAG_harmony_regexp_lookbehind = true;
 
   i::Isolate* i_isolate = reinterpret_cast<i::Isolate*>(isolate);
diff --git a/test/fuzzer/testcfg.py b/test/fuzzer/testcfg.py
index 35a5abb..85a38ed 100644
--- a/test/fuzzer/testcfg.py
+++ b/test/fuzzer/testcfg.py
@@ -26,7 +26,7 @@
   def ListTests(self, context):
     tests = []
     for subtest in FuzzerTestSuite.SUB_TESTS:
-      shell = '%s_fuzzer' % subtest
+      shell = 'v8_simple_%s_fuzzer' % subtest
       for fname in os.listdir(os.path.join(self.root, subtest)):
         if not os.path.isfile(os.path.join(self.root, subtest, fname)):
           continue
diff --git a/test/fuzzer/wasm-asmjs.cc b/test/fuzzer/wasm-asmjs.cc
index 3f7477b..cb8b86b 100644
--- a/test/fuzzer/wasm-asmjs.cc
+++ b/test/fuzzer/wasm-asmjs.cc
@@ -33,7 +33,7 @@
   v8::TryCatch try_catch(isolate);
   v8::internal::WasmJs::InstallWasmFunctionMap(i_isolate,
                                                i_isolate->native_context());
-  v8::internal::wasm::CompileAndRunWasmModule(i_isolate, data, data + size,
-                                              true);
+  v8::internal::wasm::testing::CompileAndRunWasmModule(i_isolate, data,
+                                                       data + size, true);
   return 0;
 }
diff --git a/test/fuzzer/wasm.cc b/test/fuzzer/wasm.cc
index 8750cbf..27259c6 100644
--- a/test/fuzzer/wasm.cc
+++ b/test/fuzzer/wasm.cc
@@ -33,7 +33,7 @@
   v8::TryCatch try_catch(isolate);
   v8::internal::WasmJs::InstallWasmFunctionMap(i_isolate,
                                                i_isolate->native_context());
-  v8::internal::wasm::CompileAndRunWasmModule(i_isolate, data, data + size,
-                                              false);
+  v8::internal::wasm::testing::CompileAndRunWasmModule(i_isolate, data,
+                                                       data + size, false);
   return 0;
 }
diff --git a/test/intl/date-format/parse-MMMdy.js b/test/intl/date-format/parse-MMMdy.js
index f713b36..f8291f4 100644
--- a/test/intl/date-format/parse-MMMdy.js
+++ b/test/intl/date-format/parse-MMMdy.js
@@ -43,11 +43,17 @@
 assertEquals(1, date.getUTCMonth());
 assertEquals(4, date.getUTCDate());
 
-// Missing , in the pattern.
-assertEquals(undefined, dtf.v8Parse('Feb 4 1974'));
+// Can deal with a missing ','.
+date = dtf.v8Parse('Feb 4 1974');
+assertEquals(1974, date.getUTCFullYear());
+assertEquals(1, date.getUTCMonth());
+assertEquals(4, date.getUTCDate());
 
 // Extra "th" after 4 in the pattern.
 assertEquals(undefined, dtf.v8Parse('Feb 4th, 1974'));
 
-// Wrong pattern.
-assertEquals(undefined, dtf.v8Parse('2/4/1974'));
+// TODO(jshin): Make sure if this is what's supposed to be.
+date = dtf.v8Parse('2/4/1974');
+assertEquals(1974, date.getUTCFullYear());
+assertEquals(1, date.getUTCMonth());
+assertEquals(4, date.getUTCDate());
diff --git a/test/intl/date-format/parse-mdyhms.js b/test/intl/date-format/parse-mdyhms.js
index 73efb62..766f719 100644
--- a/test/intl/date-format/parse-mdyhms.js
+++ b/test/intl/date-format/parse-mdyhms.js
@@ -26,6 +26,8 @@
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 // Testing v8Parse method for date and time pattern.
+//
+// Flags: --intl-extra
 
 var dtf = new Intl.DateTimeFormat(['en'],
                                   {year: 'numeric', month: 'numeric',
@@ -34,7 +36,7 @@
                                    timeZone: 'UTC'});
 
 // Make sure we have pattern we expect (may change in the future).
-assertEquals('M/d/y h:mm:ss a', dtf.resolved.pattern);
+assertEquals('M/d/y, h:mm:ss a', dtf.resolved.pattern);
 
 var date = dtf.v8Parse('2/4/74 12:30:42 pm');
 assertEquals(1974, date.getUTCFullYear());
@@ -44,14 +46,20 @@
 assertEquals(30, date.getUTCMinutes());
 assertEquals(42, date.getUTCSeconds());
 
+// Can deal with '-' vs '/'.
+date = dtf.v8Parse('2-4-74 12:30:42 am');
+assertEquals(1974, date.getUTCFullYear());
+assertEquals(1, date.getUTCMonth());
+assertEquals(4, date.getUTCDate());
+assertEquals(0, date.getUTCHours());
+assertEquals(30, date.getUTCMinutes());
+assertEquals(42, date.getUTCSeconds());
+
 // AM/PM were not specified.
-assertEquals(undefined, dtf.v8Parse('2/4/74 12:30:12'));
+assertEquals(undefined, dtf.v8Parse('2/4/74 12:30:42'));
 
 // Time was not specified.
 assertEquals(undefined, dtf.v8Parse('2/4/74'));
 
 // Month is numeric, so it fails on "Feb".
 assertEquals(undefined, dtf.v8Parse('Feb 4th 1974'));
-
-// Wrong date delimiter.
-assertEquals(undefined, dtf.v8Parse('2-4-74 12:30:12 am'));
diff --git a/test/intl/intl.status b/test/intl/intl.status
index 02ee26b..7ef6b0d 100644
--- a/test/intl/intl.status
+++ b/test/intl/intl.status
@@ -29,12 +29,6 @@
 [ALWAYS, {
   # TODO(jochen): The following test is flaky.
   'overrides/caching': [PASS, FAIL],
-
-  # BUG(v8:3454).
-  'date-format/parse-MMMdy': [FAIL],
-  'date-format/parse-mdyhms': [FAIL],
-  'number-format/parse-decimal': [FAIL],
-  'number-format/parse-percent': [FAIL],
 }],  # ALWAYS
 
 ['arch == arm64 and mode == debug and simulator_run == True', {
diff --git a/test/intl/number-format/parse-decimal.js b/test/intl/number-format/parse-decimal.js
index ea3f8dd..62f4728 100644
--- a/test/intl/number-format/parse-decimal.js
+++ b/test/intl/number-format/parse-decimal.js
@@ -24,16 +24,29 @@
 // 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: --intl-extra
 
 var nf = new Intl.NumberFormat(['en'], {style: 'decimal'});
 
 assertEquals(123.43, nf.v8Parse('123.43'));
 assertEquals(123, nf.v8Parse('123'));
 assertEquals(NaN, nf.v8Parse(NaN));
-assertEquals(12323, nf.v8Parse('123,23'));
-assertEquals(12323.456, nf.v8Parse('123,23.456'));
-assertEquals(12323.456, nf.v8Parse('0000000123,23.456'));
-assertEquals(-12323.456, nf.v8Parse('-123,23.456'));
+assertEquals(12323, nf.v8Parse('12,323'));
+assertEquals(12323, nf.v8Parse('12323'));
+assertEquals(12323.456, nf.v8Parse('12,323.456'));
+assertEquals(12323.456, nf.v8Parse('000000012323.456'));
+assertEquals(12323.456, nf.v8Parse('000,000,012,323.456'));
+assertEquals(-12323.456, nf.v8Parse('-12,323.456'));
 
-// Scientific notation gets ignored.
-assertEquals(123.456, nf.v8Parse('123.456e-3'));
+assertEquals(12323, nf.v8Parse('000000012323'));
+assertEquals(12323, nf.v8Parse('000,000,012,323'));
+assertEquals(undefined, nf.v8Parse('000000012,323.456'));
+
+// not tolerant of a misplaced thousand separator
+assertEquals(undefined, nf.v8Parse('123,23.456'));
+assertEquals(undefined, nf.v8Parse('0000000123,23.456'));
+assertEquals(undefined, nf.v8Parse('-123,23.456'));
+
+// Scientific notation is supported.
+assertEquals(0.123456, nf.v8Parse('123.456e-3'));
diff --git a/test/intl/number-format/parse-percent.js b/test/intl/number-format/parse-percent.js
index 4964da4..0dc36d3 100644
--- a/test/intl/number-format/parse-percent.js
+++ b/test/intl/number-format/parse-percent.js
@@ -25,12 +25,22 @@
 // (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
+
 var nf = new Intl.NumberFormat(['en'], {style: 'percent'});
 
 assertEquals(1.2343, nf.v8Parse('123.43%'));
 assertEquals(1.23, nf.v8Parse('123%'));
 assertEquals(NaN, nf.v8Parse(NaN));
-assertEquals(123.23, nf.v8Parse('123,23%'));
-assertEquals(123.23456, nf.v8Parse('123,23.456%'));
-assertEquals(123.23456, nf.v8Parse('0000000123,23.456%'));
-assertEquals(-123.23456, nf.v8Parse('-123,23.456%'));
+assertEquals(123.23, nf.v8Parse('12,323%'));
+assertEquals(123.23456, nf.v8Parse('12,323.456%'));
+assertEquals(123.23456, nf.v8Parse('000000012323.456%'));
+assertEquals(-123.23456, nf.v8Parse('-12,323.456%'));
+
+// Not tolerant of misplaced group separators.
+assertEquals(undefined, nf.v8Parse('123,23%'));
+assertEquals(undefined, nf.v8Parse('123,23.456%'));
+assertEquals(undefined, nf.v8Parse('0000000123,23.456%'));
+assertEquals(undefined, nf.v8Parse('-123,23.456%'));
+assertEquals(undefined, nf.v8Parse('0000000123,23.456%'));
+assertEquals(undefined, nf.v8Parse('-123,23.456%'));
diff --git a/test/js-perf-test/Generators/generators.js b/test/js-perf-test/Generators/generators.js
new file mode 100644
index 0000000..d49dee3
--- /dev/null
+++ b/test/js-perf-test/Generators/generators.js
@@ -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.
+
+
+new BenchmarkSuite('Generators', [1000], [
+  new Benchmark('Basic', false, false, 0, Basic),
+  new Benchmark('Loop', false, false, 0, Loop),
+  new Benchmark('Input', false, false, 0, Input),
+  new Benchmark('YieldStar', false, false, 0, YieldStar),
+]);
+
+
+// ----------------------------------------------------------------------------
+// Benchmark: Basic
+// ----------------------------------------------------------------------------
+
+function* five() {
+  yield 1;
+  yield 2;
+  yield 3;
+  yield 4;
+  yield 5;
+}
+
+function Basic() {
+  let g = five();
+  let sum = 0;
+  sum += g.next().value;
+  sum += g.next().value;
+  sum += g.next().value;
+  sum += g.next().value;
+  sum += g.next().value;
+  if (sum != 15 || !g.next().done) throw "wrong";
+}
+
+
+// ----------------------------------------------------------------------------
+// Benchmark: Loop
+// ----------------------------------------------------------------------------
+
+function* fibonacci() {
+  let x = 0;
+  let y = 1;
+  yield x;
+  while (true) {
+    yield y;
+    let tmp = x;
+    x = y;
+    y += tmp;
+  }
+}
+
+function Loop() {
+  let n = 0;
+  let x;
+  for (x of fibonacci()) {
+    if (++n === 42) break;
+  }
+  if (x != 165580141) throw "wrong";
+}
+
+
+
+// ----------------------------------------------------------------------------
+// Benchmark: Input
+// ----------------------------------------------------------------------------
+
+function* multiples(x) {
+  let skip = function.sent || 0;
+  let next = 0;
+  while (true) {
+    if (skip === 0) {
+      skip = yield next;
+    } else {
+      skip--;
+    }
+    next += x;
+  }
+}
+
+function Input() {
+  let g = multiples(3);
+  results = [g.next(2), g.next(0), g.next(5), g.next(10)];
+  if (results.slice(-1)[0].value != 60) throw "wrong";
+}
+
+
+// ----------------------------------------------------------------------------
+// Benchmark: YieldStar
+// ----------------------------------------------------------------------------
+
+function* infix(node) {
+  if (node) {
+    yield* infix(node.left);
+    yield node.label;
+    yield* infix(node.right);
+  }
+}
+
+class Node {
+  constructor(label, left, right) {
+    this.label = label;
+    this.left = left;
+    this.right = right;
+  }
+}
+
+function YieldStar() {
+  let tree = new Node(1,
+      new Node(2,
+          new Node(3,
+              new Node(4,
+                  new Node(16,
+                      new Node(5,
+                          new Node(23,
+                              new Node(0),
+                              new Node(17)),
+                          new Node(44, new Node(20)))),
+                  new Node(7,
+                      undefined,
+                      new Node(23,
+                          new Node(0),
+                          new Node(41, undefined, new Node(11))))),
+              new Node(8)),
+          new Node(5)),
+      new Node(6, undefined, new Node(7)));
+  let labels = [...(infix(tree))];
+  // 0,23,17,5,20,44,16,4,7,0,23,41,11,3,8,2,5,1,6,7
+  if (labels[0] != 0) throw "wrong";
+}
diff --git a/test/js-perf-test/Generators/run.js b/test/js-perf-test/Generators/run.js
new file mode 100644
index 0000000..6feb6f7
--- /dev/null
+++ b/test/js-perf-test/Generators/run.js
@@ -0,0 +1,26 @@
+// 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('generators.js');
+
+var success = true;
+
+function PrintResult(name, result) {
+  print(name + '-Generators(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/js-perf-test/JSTests.json b/test/js-perf-test/JSTests.json
index f8ab369..ed471bb 100644
--- a/test/js-perf-test/JSTests.json
+++ b/test/js-perf-test/JSTests.json
@@ -9,6 +9,40 @@
   "resources": ["base.js"],
   "tests": [
     {
+      "name": "Generators",
+      "path": ["Generators"],
+      "main": "run.js",
+      "resources": ["generators.js"],
+      "flags": ["--harmony-function-sent"],
+      "results_regexp": "^Generators\\-Generators\\(Score\\): (.+)$"
+    },
+    {
+      "name": "GeneratorsIgnition",
+      "path": ["Generators"],
+      "main": "run.js",
+      "resources": ["generators.js"],
+      "flags": [
+        "--harmony-function-sent",
+        "--ignition",
+        "--ignition-generators"
+      ],
+      "results_regexp": "^Generators\\-Generators\\(Score\\): (.+)$"
+    },
+    {
+      "name": "GeneratorsIgnitionTurbofan",
+      "path": ["Generators"],
+      "main": "run.js",
+      "resources": ["generators.js"],
+      "flags": [
+        "--harmony-function-sent",
+        "--ignition",
+        "--ignition-generators",
+        "--turbo",
+        "--turbo-from-bytecode"
+      ],
+      "results_regexp": "^Generators\\-Generators\\(Score\\): (.+)$"
+    },
+    {
       "name": "RestParameters",
       "path": ["RestParameters"],
       "main": "run.js",
diff --git a/test/memory/Memory.json b/test/memory/Memory.json
index 1cdc148..c6b8cd5 100644
--- a/test/memory/Memory.json
+++ b/test/memory/Memory.json
@@ -12,7 +12,7 @@
     },
     {
       "name": "ReservedMemoryContext",
-      "results_regexp": "(\\d+) bytes per context$"
+      "results_regexp": "(\\d+) bytes per context #0$"
     },
     {
       "name": "SnapshotSizeStartup",
@@ -20,7 +20,7 @@
     },
     {
       "name": "SnapshotSizeContext",
-      "results_regexp": "(\\d+) bytes for context$"
+      "results_regexp": "(\\d+) bytes for context #0$"
     }
   ]
 }
diff --git a/test/message/generators-throw1.js b/test/message/generators-throw1.js
new file mode 100644
index 0000000..f544d33
--- /dev/null
+++ b/test/message/generators-throw1.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: --ignition-generators
+
+function* f() { yield }
+
+f().throw(42);
diff --git a/test/message/generators-throw1.out b/test/message/generators-throw1.out
new file mode 100644
index 0000000..aeb9645
--- /dev/null
+++ b/test/message/generators-throw1.out
@@ -0,0 +1,3 @@
+*%(basename)s:7: 42
+function* f() { yield }
+           ^
diff --git a/test/message/generators-throw2.js b/test/message/generators-throw2.js
new file mode 100644
index 0000000..b805bbc
--- /dev/null
+++ b/test/message/generators-throw2.js
@@ -0,0 +1,11 @@
+// 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-generators
+
+function* f() { yield }
+
+let g = f();
+g.next();
+g.throw(42);
diff --git a/test/message/generators-throw2.out b/test/message/generators-throw2.out
new file mode 100644
index 0000000..96353a5
--- /dev/null
+++ b/test/message/generators-throw2.out
@@ -0,0 +1,3 @@
+*%(basename)s:7: 42
+function* f() { yield }
+                ^
diff --git a/test/message/instanceof-noncallable.js b/test/message/instanceof-noncallable.js
index 571a2b0..d82b416 100644
--- a/test/message/instanceof-noncallable.js
+++ b/test/message/instanceof-noncallable.js
@@ -25,6 +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-instanceof
+
 
 1 instanceof {};
diff --git a/test/message/instanceof-nonobject.js b/test/message/instanceof-nonobject.js
index 4715257..ef8e0ae 100644
--- a/test/message/instanceof-nonobject.js
+++ b/test/message/instanceof-nonobject.js
@@ -25,6 +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-instanceof
+
 
 1 instanceof 2;
diff --git a/test/message/message.status b/test/message/message.status
index 051911c..e4db83d 100644
--- a/test/message/message.status
+++ b/test/message/message.status
@@ -27,8 +27,6 @@
 
 [
 [ALWAYS, {
-  # All tests in the bug directory are expected to fail.
-  'bugs/*': [FAIL],
   # We don't parse RegExps at scanning time, so we can't fail on octal
   # escapes (we need to parse to distinguish octal escapes from valid
   # back-references).
diff --git a/test/mjsunit/array-sort.js b/test/mjsunit/array-sort.js
index ae9f6ef..fdd2333 100644
--- a/test/mjsunit/array-sort.js
+++ b/test/mjsunit/array-sort.js
@@ -479,3 +479,68 @@
   }
 }
 TestSortOnProxy();
+
+
+// Test special prototypes
+(function testSortSpecialPrototypes() {
+  function test(proto, length, expected) {
+    var result = {
+       length: length,
+       __proto__: proto,
+     };
+    Array.prototype.sort.call(result);
+    assertEquals(expected.length, result.length, "result.length");
+    for (var i = 0; i<expected.length; i++) {
+      assertEquals(expected[i], result[i], "result["+i+"]");
+    }
+  }
+
+  (function fast() {
+    // Fast elements, non-empty
+    test(arguments, 0, []);
+    test(arguments, 1, [2]);
+    test(arguments, 2, [1, 2]);
+    test(arguments, 4, [1, 2, 3, 4]);
+    delete arguments[0]
+    // sort copies down the properties to the receiver, hence result[1]
+    // is read on the arguments through the hole on the receiver.
+    test(arguments, 2, [1, 1]);
+    arguments[0] = undefined;
+    test(arguments, 2, [1, undefined]);
+  })(2, 1, 4, 3);
+
+  (function fastSloppy(a) {
+    // Fast sloppy
+    test(arguments, 0, []);
+    test(arguments, 1, [2]);
+    test(arguments, 2, [1, 2]);
+    delete arguments[0]
+    test(arguments, 2, [1, 1]);
+    arguments[0] = undefined;
+    test(arguments, 2, [1, undefined]);
+  })(2, 1);
+
+  (function fastEmpty() {
+    test(arguments, 0, []);
+    test(arguments, 1, [undefined]);
+    test(arguments, 2, [undefined, undefined]);
+  })();
+
+  (function stringWrapper() {
+    // cannot redefine string wrapper properties
+    assertThrows(() => test(new String('cba'), 3, []), TypeError);
+  })();
+
+  (function typedArrys() {
+    test(new Int32Array(0), 0, []);
+    test(new Int32Array(1), 1, [0]);
+    var array = new Int32Array(3);
+    array[0] = 2;
+    array[1] = 1;
+    array[2] = 3;
+    test(array, 1, [2]);
+    test(array, 2, [1, 2]);
+    test(array, 3, [1, 2, 3]);
+  })()
+
+})();
diff --git a/test/mjsunit/asm/construct-double.js b/test/mjsunit/asm/construct-double.js
deleted file mode 100644
index 8bb5000..0000000
--- a/test/mjsunit/asm/construct-double.js
+++ /dev/null
@@ -1,33 +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: --allow-natives-syntax
-
-var stdlib = this;
-var foreign = {};
-var heap = new ArrayBuffer(64 * 1024);
-
-
-var m = (function(stdlib, foreign, heap) {
-  "use asm";
-  function cd1(i, j) {
-    i = i|0;
-    j = j|0;
-    return +%_ConstructDouble(i, j);
-  }
-  function cd2(i) {
-    i = i|0;
-    return +%_ConstructDouble(0, i);
-  }
-  return { cd1: cd1, cd2: cd2 };
-})(stdlib, foreign, heap);
-
-assertEquals(0.0, m.cd1(0, 0));
-assertEquals(%ConstructDouble(0, 1), m.cd2(1));
-for (var i = -2147483648; i < 2147483648; i += 3999773) {
-  assertEquals(%ConstructDouble(0, i), m.cd2(i));
-  for (var j = -2147483648; j < 2147483648; j += 3999773) {
-    assertEquals(%ConstructDouble(i, j), m.cd1(i, j));
-  }
-}
diff --git a/test/mjsunit/compiler/dont-constant-fold-deopting-checks.js b/test/mjsunit/compiler/dont-constant-fold-deopting-checks.js
new file mode 100644
index 0000000..02bd8d9
--- /dev/null
+++ b/test/mjsunit/compiler/dont-constant-fold-deopting-checks.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
+
+function bar(a) { a[0](true); }
+function foo(a) { return bar(1); }
+%OptimizeFunctionOnNextCall(foo);
+assertThrows(function() {bar([foo])}, TypeError);
diff --git a/test/mjsunit/compiler/inline-dead-jscreate.js b/test/mjsunit/compiler/inline-dead-jscreate.js
new file mode 100644
index 0000000..a977875
--- /dev/null
+++ b/test/mjsunit/compiler/inline-dead-jscreate.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.
+
+var bar = 0;
+
+function baz() { return this; }
+
+function foo() {
+  bar += 1;
+  if (bar === 2) throw new baz();
+}
+
+foo();
diff --git a/test/mjsunit/compiler/optimized-instanceof-1.js b/test/mjsunit/compiler/optimized-instanceof-1.js
index 538b0ef..242b4be 100644
--- a/test/mjsunit/compiler/optimized-instanceof-1.js
+++ b/test/mjsunit/compiler/optimized-instanceof-1.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 --harmony-instanceof
+// Flags: --allow-natives-syntax
 
 function F() {}
 var f = new F
diff --git a/test/mjsunit/compiler/optimized-instanceof-2.js b/test/mjsunit/compiler/optimized-instanceof-2.js
index 80bbdcd..38a35b7 100644
--- a/test/mjsunit/compiler/optimized-instanceof-2.js
+++ b/test/mjsunit/compiler/optimized-instanceof-2.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 --harmony-instanceof
+// Flags: --allow-natives-syntax
 
 function F() {}
 var f = new F
diff --git a/test/mjsunit/compiler/regress-5074.js b/test/mjsunit/compiler/regress-5074.js
new file mode 100644
index 0000000..903b54a
--- /dev/null
+++ b/test/mjsunit/compiler/regress-5074.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: --allow-natives-syntax
+
+var s = [,0.1];
+
+function foo(a, b) {
+  var x = s[a];
+  s[1] = 0.1;
+  return x + b;
+}
+
+assertEquals(2.1, foo(1, 2));
+assertEquals(2.1, foo(1, 2));
+%OptimizeFunctionOnNextCall(foo);
+assertEquals("undefined2", foo(0, "2"));
diff --git a/test/mjsunit/compiler/regress-5100.js b/test/mjsunit/compiler/regress-5100.js
new file mode 100644
index 0000000..694cd8a
--- /dev/null
+++ b/test/mjsunit/compiler/regress-5100.js
@@ -0,0 +1,51 @@
+// 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 = [0, 1];
+a["true"] = "true";
+a["false"] = "false";
+a["null"] = "null";
+a["undefined"] = "undefined";
+
+// Ensure we don't accidentially truncate true when used to index arrays.
+(function() {
+  function f(x) { return a[x]; }
+
+  assertEquals(0, f(0));
+  assertEquals(0, f(0));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("true", f(true));
+})();
+
+// Ensure we don't accidentially truncate false when used to index arrays.
+(function() {
+  function f( x) { return a[x]; }
+
+  assertEquals(0, f(0));
+  assertEquals(0, f(0));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("false", f(false));
+})();
+
+// Ensure we don't accidentially truncate null when used to index arrays.
+(function() {
+  function f( x) { return a[x]; }
+
+  assertEquals(0, f(0));
+  assertEquals(0, f(0));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("null", f(null));
+})();
+
+// Ensure we don't accidentially truncate undefined when used to index arrays.
+(function() {
+  function f( x) { return a[x]; }
+
+  assertEquals(0, f(0));
+  assertEquals(0, f(0));
+  %OptimizeFunctionOnNextCall(f);
+  assertEquals("undefined", f(undefined));
+})();
diff --git a/test/mjsunit/compiler/regress-5129.js b/test/mjsunit/compiler/regress-5129.js
new file mode 100644
index 0000000..1d100ab
--- /dev/null
+++ b/test/mjsunit/compiler/regress-5129.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: --allow-natives-syntax
+
+function foo($a,$b) {
+ $a = $a|0;
+ $b = $b|0;
+ var $sub = $a - $b;
+ return ($sub|0) < 0;
+}
+
+%OptimizeFunctionOnNextCall(foo);
+assertTrue(foo(0x7fffffff,-1));
diff --git a/test/mjsunit/compiler/regress-621423.js b/test/mjsunit/compiler/regress-621423.js
new file mode 100644
index 0000000..962176f
--- /dev/null
+++ b/test/mjsunit/compiler/regress-621423.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 a = [0, ""];
+a[0] = 0;
+
+function g(array) {
+  array[1] = undefined;
+}
+
+function f() {
+  g(function() {});
+  g(a);
+}
+
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/compiler/regress-number-is-hole-nan.js b/test/mjsunit/compiler/regress-number-is-hole-nan.js
new file mode 100644
index 0000000..368c837
--- /dev/null
+++ b/test/mjsunit/compiler/regress-number-is-hole-nan.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: --allow-natives-syntax
+
+var a = [, 2.121736758e-314];
+
+function foo() { return a[1]; }
+
+assertEquals(2.121736758e-314, foo());
+assertEquals(2.121736758e-314, foo());
+%OptimizeFunctionOnNextCall(foo);
+assertEquals(2.121736758e-314, foo());
diff --git a/test/mjsunit/compiler/regress-store-holey-double-array.js b/test/mjsunit/compiler/regress-store-holey-double-array.js
new file mode 100644
index 0000000..8123198
--- /dev/null
+++ b/test/mjsunit/compiler/regress-store-holey-double-array.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: --allow-natives-syntax
+
+(function StoreHoleBitPattern() {
+  function g(src, dst, i) {
+    dst[i] = src[i];
+  }
+
+  var b = new ArrayBuffer(16);
+  var i32 = new Int32Array(b);
+  i32[0] = 0xFFF7FFFF;
+  i32[1] = 0xFFF7FFFF;
+  i32[3] = 0xFFF7FFFF;
+  i32[4] = 0xFFF7FFFF;
+  var f64 = new Float64Array(b);
+
+  var a = [,0.1];
+
+  g(f64, a, 1);
+  g(f64, a, 1);
+  %OptimizeFunctionOnNextCall(g);
+  g(f64, a, 0);
+
+  assertTrue(Number.isNaN(a[0]));
+})();
+
+
+(function ConvertHoleToNumberAndStore() {
+  function g(a, i) {
+    var x = a[i];
+    a[i] = +x;
+  }
+
+  var a=[,0.1];
+  g(a, 1);
+  g(a, 1);
+  %OptimizeFunctionOnNextCall(g);
+  g(a, 0);
+  assertTrue(Number.isNaN(a[0]));
+})();
diff --git a/test/mjsunit/compiler/regress-string-to-number-add.js b/test/mjsunit/compiler/regress-string-to-number-add.js
new file mode 100644
index 0000000..e872401
--- /dev/null
+++ b/test/mjsunit/compiler/regress-string-to-number-add.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: --allow-natives-syntax --turbo-type-feedback
+
+function f(x) {
+  var s = x ? "0" : "1";
+  return 1 + Number(s);
+}
+
+f(0);
+f(0);
+%OptimizeFunctionOnNextCall(f);
+assertEquals(2, f(0));
diff --git a/test/mjsunit/compiler/regress-truncate-number-or-undefined-to-float64.js b/test/mjsunit/compiler/regress-truncate-number-or-undefined-to-float64.js
new file mode 100644
index 0000000..1dc3042
--- /dev/null
+++ b/test/mjsunit/compiler/regress-truncate-number-or-undefined-to-float64.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
+
+function g(a, b) {
+  a = +a;
+  if (b) {
+    a = undefined;
+  }
+  print(a);
+  return +a;
+}
+
+g(0);
+g(0);
+%OptimizeFunctionOnNextCall(g);
+assertTrue(Number.isNaN(g(0, true)));
diff --git a/test/mjsunit/compiler/turbo-number-feedback.js b/test/mjsunit/compiler/turbo-number-feedback.js
new file mode 100644
index 0000000..059a0ca
--- /dev/null
+++ b/test/mjsunit/compiler/turbo-number-feedback.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: --allow-natives-syntax --turbo-type-feedback
+
+(function AddSubtractSmis() {
+  function f0(a, b, c) {
+    return a + b - c;
+  }
+
+  assertEquals(4, f0(3, 2, 1));
+  assertEquals(4, f0(3, 2, 1));
+  %OptimizeFunctionOnNextCall(f0);
+  assertEquals(4, f0(3, 2, 1));
+})();
+
+(function AddSubtractDoubles() {
+  function f1(a, b, c) {
+    return a + b - c;
+  }
+
+  assertEquals(4.5, f1(3.5, 2.5, 1.5));
+  assertEquals(4.5, f1(3.5, 2.5, 1.5));
+  %OptimizeFunctionOnNextCall(f1);
+  assertEquals(4.5, f1(3.5, 2.5, 1.5));
+  assertEquals(4, f1(3, 2, 1));
+  assertTrue(isNaN(f1(3, 2, undefined)));
+  assertTrue(isNaN(f1(3, undefined, 1)));
+})();
+
+(function CheckUint32ToInt32Conv() {
+  function f2(a) {
+    return (a >>> 0) + 1;
+  }
+
+  assertEquals(1, f2(0));
+  assertEquals(1, f2(0));
+  %OptimizeFunctionOnNextCall(f2);
+  assertEquals(1, f2(0));
+  assertEquals(4294967295, f2(-2));
+})();
+
+(function CheckFloat64ToInt32Conv() {
+  function f3(a, b) {
+    var x = 0;
+    if (a) {
+      x = 0.5;
+    }
+    return x + b;
+  }
+
+  assertEquals(1, f3(0, 1));
+  assertEquals(1, f3(0, 1));
+  %OptimizeFunctionOnNextCall(f3);
+  assertEquals(1, f3(0, 1));
+  assertEquals(1.5, f3(1, 1));
+})();
diff --git a/test/mjsunit/debug-generator-break-on-stack.js b/test/mjsunit/debug-generator-break-on-stack.js
new file mode 100644
index 0000000..b743488
--- /dev/null
+++ b/test/mjsunit/debug-generator-break-on-stack.js
@@ -0,0 +1,46 @@
+// 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 --ignition-generators
+
+var Debug = debug.Debug;
+
+var break_count = 0;
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    break_count++;
+    var line = exec_state.frame(0).sourceLineText();
+    print(line);
+    assertTrue(line.indexOf(`B${break_count}`) > 0);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+
+function* g() {
+  setbreaks();
+  yield 1;  // B1
+}
+
+function* f() {
+  yield* g();
+  return 2;  // B2
+}
+
+function setbreaks() {
+  Debug.setListener(listener);
+  Debug.setBreakPoint(g, 2);
+  Debug.setBreakPoint(f, 2);
+}
+
+for (let _ of f()) { }
+
+assertEquals(2, break_count);
+assertNull(exception);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/debug-generator-break.js b/test/mjsunit/debug-generator-break.js
new file mode 100644
index 0000000..4ab601b
--- /dev/null
+++ b/test/mjsunit/debug-generator-break.js
@@ -0,0 +1,44 @@
+// 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 --ignition-generators
+
+var Debug = debug.Debug;
+
+var break_count = 0;
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    break_count++;
+    var line = exec_state.frame(0).sourceLineText();
+    assertTrue(line.indexOf(`B${break_count}`) > 0);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+function* g() {
+  yield 1;
+}
+
+function* f() {
+  yield* g();                    // B1
+  assertEquals(2, break_count);  // B2
+  return 1;                      // B3
+}
+
+Debug.setBreakPoint(f, 1);
+Debug.setBreakPoint(f, 2);
+Debug.setBreakPoint(f, 3);
+
+for (let _ of f()) { }
+
+assertEquals(3, break_count);
+assertNull(exception);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/debug-handle.js b/test/mjsunit/debug-handle.js
index 1582b9f..ca02592 100644
--- a/test/mjsunit/debug-handle.js
+++ b/test/mjsunit/debug-handle.js
@@ -108,7 +108,7 @@
     var handle_a = evaluateRequest(exec_state, '{"expression":"b","frame":1}');
     assertEquals(handle_o, handle_a);
     assertEquals(handle_a, handle_b);
-    assertFalse(handle_o == handle_p, "o and p have he same handle");
+    assertFalse(handle_o == handle_p, "o and p have the same handle");
 
     var response;
     var count;
@@ -140,7 +140,7 @@
     var handle_g = evaluateRequest(exec_state, '{"expression":"g"}');
     var handle_caller = evaluateRequest(exec_state, '{"expression":"f.caller"}');
 
-    assertFalse(handle_f == handle_g, "f and g have he same handle");
+    assertFalse(handle_f == handle_g, "f and g have the same handle");
     assertEquals(handle_g, handle_caller, "caller for f should be g");
 
     response = lookupRequest(exec_state, '{"handles":[' + handle_f + ']}', true);
diff --git a/test/mjsunit/debug-script.js b/test/mjsunit/debug-script.js
index 5396415..3bedb74 100644
--- a/test/mjsunit/debug-script.js
+++ b/test/mjsunit/debug-script.js
@@ -84,11 +84,6 @@
 assertEquals('native math.js', math_script.name);
 assertEquals(Debug.ScriptType.Native, math_script.type);
 
-// Test a builtins delay loaded script.
-var date_delay_script = Debug.findScript('native json.js');
-assertEquals('native json.js', date_delay_script.name);
-assertEquals(Debug.ScriptType.Native, date_delay_script.type);
-
 // Test a debugger script.
 var debug_delay_script = Debug.findScript('native debug.js');
 assertEquals('native debug.js', debug_delay_script.name);
diff --git a/test/mjsunit/debug-sourceinfo.js b/test/mjsunit/debug-sourceinfo.js
index cb41107..b79fb8e 100644
--- a/test/mjsunit/debug-sourceinfo.js
+++ b/test/mjsunit/debug-sourceinfo.js
@@ -63,12 +63,11 @@
 
 // This is the last position in the entire file (note: this equals
 // file size of <debug-sourceinfo.js> - 1, since starting at 0).
-var last_position = 11519;
+var last_position = 8126;
 // This is the last line of entire file (note: starting at 0).
-var last_line = 269;
-// This is the last column of last line (note: starting at 0 and +1, due
-// to trailing <LF>).
-var last_column = 1;
+var last_line = 200;
+// This is the last column of last line (note: starting at 0).
+var last_column = 71;
 
 // This magic number is the length or the first line comment (actually number
 // of characters before 'function a(...'.
@@ -168,66 +167,6 @@
 assertEquals(11, script.locationFromPosition(start_d).line - comment_lines);
 assertEquals(10, script.locationFromPosition(start_d).column);
 
-// Test first line.
-assertEquals(0, script.locationFromLine().position);
-assertEquals(0, script.locationFromLine().line);
-assertEquals(0, script.locationFromLine().column);
-assertEquals(0, script.locationFromLine(0).position);
-assertEquals(0, script.locationFromLine(0).line);
-assertEquals(0, script.locationFromLine(0).column);
-
-// Test first line column 1.
-assertEquals(1, script.locationFromLine(0, 1).position);
-assertEquals(0, script.locationFromLine(0, 1).line);
-assertEquals(1, script.locationFromLine(0, 1).column);
-
-// Test first line offset 1.
-assertEquals(1, script.locationFromLine(0, 0, 1).position);
-assertEquals(0, script.locationFromLine(0, 0, 1).line);
-assertEquals(1, script.locationFromLine(0, 0, 1).column);
-
-// Test offset function a().
-assertEquals(start_a, script.locationFromLine(void 0, void 0, start_a).position);
-assertEquals(0, script.locationFromLine(void 0, void 0, start_a).line - comment_lines);
-assertEquals(10, script.locationFromLine(void 0, void 0, start_a).column);
-assertEquals(start_a, script.locationFromLine(0, void 0, start_a).position);
-assertEquals(0, script.locationFromLine(0, void 0, start_a).line - comment_lines);
-assertEquals(10, script.locationFromLine(0, void 0, start_a).column);
-assertEquals(start_a, script.locationFromLine(0, 0, start_a).position);
-assertEquals(0, script.locationFromLine(0, 0, start_a).line - comment_lines);
-assertEquals(10, script.locationFromLine(0, 0, start_a).column);
-
-// Test second line offset function a().
-assertEquals(start_a + 13, script.locationFromLine(1, 0, start_a).position);
-assertEquals(1, script.locationFromLine(1, 0, start_a).line - comment_lines);
-assertEquals(0, script.locationFromLine(1, 0, start_a).column);
-
-// Test second line column 2 offset function a().
-assertEquals(start_a + 13 + 1, script.locationFromLine(1, 1, start_a).position);
-assertEquals(1, script.locationFromLine(1, 2, start_a).line - comment_lines);
-assertEquals(2, script.locationFromLine(1, 2, start_a).column);
-
-// Test offset function b().
-assertEquals(start_b, script.locationFromLine(0, 0, start_b).position);
-assertEquals(1, script.locationFromLine(0, 0, start_b).line - comment_lines);
-assertEquals(13, script.locationFromLine(0, 0, start_b).column);
-
-// Test second line offset function b().
-assertEquals(start_b + 5, script.locationFromLine(1, 0, start_b).position);
-assertEquals(2, script.locationFromLine(1, 0, start_b).line - comment_lines);
-assertEquals(0, script.locationFromLine(1, 0, start_b).column);
-
-// Test second line column 10 offset function b().
-assertEquals(start_b + 5 + 10, script.locationFromLine(1, 10, start_b).position);
-assertEquals(2, script.locationFromLine(1, 10, start_b).line - comment_lines);
-assertEquals(10, script.locationFromLine(1, 10, start_b).column);
-
-// Test second line column 11 offset function b. Second line in b is 10 long
-// using column 11 wraps to next line.
-assertEquals(start_b + 5 + 11, script.locationFromLine(1, 11, start_b).position);
-assertEquals(3, script.locationFromLine(1, 11, start_b).line - comment_lines);
-assertEquals(0, script.locationFromLine(1, 11, start_b).column);
-
 // Test the Debug.findSourcePosition which wraps SourceManager.
 assertEquals(0 + start_a, Debug.findFunctionSourceLocation(a, 0, 0).position);
 assertEquals(0 + start_b, Debug.findFunctionSourceLocation(b, 0, 0).position);
@@ -260,11 +199,3 @@
 assertEquals(last_line + 1,
              script.locationFromPosition(last_position + 1).line);
 assertEquals(0, script.locationFromPosition(last_position + 1).column);
-
-// Test that script.sourceLine(line) works.
-var location;
-
-for (line = 0; line < num_lines_d; line++) {
-  var line_content_regexp = new RegExp("  x = " + (line + 1));
-  assertTrue(line_content_regexp.test(script.sourceLine(start_line_d + line)));
-}
diff --git a/test/mjsunit/debug-sourceslice.js b/test/mjsunit/debug-sourceslice.js
deleted file mode 100644
index db9a3e7..0000000
--- a/test/mjsunit/debug-sourceslice.js
+++ /dev/null
@@ -1,74 +0,0 @@
-// Copyright 2008 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: --expose-debug-as debug
-// Source lines for test.
-var lines = [ 'function a() { b(); };\n',
-              'function    b() {\n',
-              '  c(true);\n',
-              '};\n',
-              '  function c(x) {\n',
-              '    if (x) {\n',
-              '      return 1;\n',
-              '    } else {\n',
-              '      return 1;\n',
-              '    }\n',
-              '  };\n' ];
-
-// Build source by putting all lines together
-var source = '';
-for (var i = 0; i < lines.length; i++) {
-  source += lines[i];
-}
-eval(source);
-
-// Flags: --expose-debug-as debug
-// Get the Debug object exposed from the debug context global object.
-Debug = debug.Debug
-
-// Get the script object from one of the functions in the source.
-var script = Debug.findScript(a);
-
-// Make sure that the source is as expected.
-assertEquals(source, script.source);
-assertEquals(source, script.sourceSlice().sourceText());
-
-// Try all possible line interval slices.
-for (var slice_size = 0; slice_size < lines.length; slice_size++) {
-  for (var n = 0; n < lines.length - slice_size; n++) {
-    var slice = script.sourceSlice(n, n + slice_size);
-    assertEquals(n, slice.from_line);
-    assertEquals(n + slice_size, slice.to_line);
-
-    var text = slice.sourceText();
-    var expected = '';
-    for (var i = 0; i < slice_size; i++) {
-      expected += lines[n + i];
-    }
-    assertEquals(expected, text);
-  }
-}
diff --git a/test/mjsunit/dictionary-properties.js b/test/mjsunit/dictionary-properties.js
index 0659268..33360d7 100644
--- a/test/mjsunit/dictionary-properties.js
+++ b/test/mjsunit/dictionary-properties.js
@@ -39,7 +39,13 @@
 SlowPrototype.prototype.bar = 2;
 SlowPrototype.prototype.baz = 3;
 delete SlowPrototype.prototype.baz;
-new SlowPrototype;
+assertFalse(%HasFastProperties(SlowPrototype.prototype));
+var slow_proto = new SlowPrototype;
+// ICs make prototypes fast.
+function ic() { return slow_proto.bar; }
+ic();
+ic();
+assertTrue(%HasFastProperties(slow_proto.__proto__));
 
 // Prototypes stay fast even after deleting properties.
 assertTrue(%HasFastProperties(SlowPrototype.prototype));
diff --git a/test/mjsunit/double-intrinsics.js b/test/mjsunit/double-intrinsics.js
index 16d6538..b50038e 100644
--- a/test/mjsunit/double-intrinsics.js
+++ b/test/mjsunit/double-intrinsics.js
@@ -7,10 +7,10 @@
 function assertDoubleBits(hi, lo, x) {
   hi = hi | 0;
   lo = lo | 0;
-  assertEquals(x, %_ConstructDouble(hi, lo));
+  assertEquals(x, %ConstructDouble(hi, lo));
   assertEquals(hi, %_DoubleHi(x));
   assertEquals(lo, %_DoubleLo(x));
-  assertEquals(x, %_ConstructDouble(%_DoubleHi(x), %_DoubleLo(x)));
+  assertEquals(x, %ConstructDouble(%_DoubleHi(x), %_DoubleLo(x)));
 }
 
 
diff --git a/test/mjsunit/harmony/array-species-constructor-accessor.js b/test/mjsunit/es6/array-species-constructor-accessor.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-constructor-accessor.js
rename to test/mjsunit/es6/array-species-constructor-accessor.js
index 4c852f0..7ebf328 100644
--- a/test/mjsunit/harmony/array-species-constructor-accessor.js
+++ b/test/mjsunit/es6/array-species-constructor-accessor.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting the constructor of an instance updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-constructor-delete.js b/test/mjsunit/es6/array-species-constructor-delete.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-constructor-delete.js
rename to test/mjsunit/es6/array-species-constructor-delete.js
index f341282..fff22a2 100644
--- a/test/mjsunit/harmony/array-species-constructor-delete.js
+++ b/test/mjsunit/es6/array-species-constructor-delete.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting the constructor of an instance updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-constructor.js b/test/mjsunit/es6/array-species-constructor.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-constructor.js
rename to test/mjsunit/es6/array-species-constructor.js
index d766e09..0d888f4 100644
--- a/test/mjsunit/harmony/array-species-constructor.js
+++ b/test/mjsunit/es6/array-species-constructor.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting the constructor of an instance updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-delete.js b/test/mjsunit/es6/array-species-delete.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-delete.js
rename to test/mjsunit/es6/array-species-delete.js
index ba49414..16a2fa2 100644
--- a/test/mjsunit/harmony/array-species-delete.js
+++ b/test/mjsunit/es6/array-species-delete.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting the constructor of an instance updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-modified.js b/test/mjsunit/es6/array-species-modified.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-modified.js
rename to test/mjsunit/es6/array-species-modified.js
index 73c52b9..58feb31 100644
--- a/test/mjsunit/harmony/array-species-modified.js
+++ b/test/mjsunit/es6/array-species-modified.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting Array[Symbol.species] updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-parent-constructor.js b/test/mjsunit/es6/array-species-parent-constructor.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-parent-constructor.js
rename to test/mjsunit/es6/array-species-parent-constructor.js
index 347732e..b4fb1d5 100644
--- a/test/mjsunit/harmony/array-species-parent-constructor.js
+++ b/test/mjsunit/es6/array-species-parent-constructor.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting Array.prototype.constructor updates the protector
 
diff --git a/test/mjsunit/harmony/array-species-proto.js b/test/mjsunit/es6/array-species-proto.js
similarity index 94%
rename from test/mjsunit/harmony/array-species-proto.js
rename to test/mjsunit/es6/array-species-proto.js
index 70db751..6b55881 100644
--- a/test/mjsunit/harmony/array-species-proto.js
+++ b/test/mjsunit/es6/array-species-proto.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Overwriting an array instance's __proto__ updates the protector
 
diff --git a/test/mjsunit/harmony/array-species.js b/test/mjsunit/es6/array-species.js
similarity index 99%
rename from test/mjsunit/harmony/array-species.js
rename to test/mjsunit/es6/array-species.js
index 19ed1d8..25edf55 100644
--- a/test/mjsunit/harmony/array-species.js
+++ b/test/mjsunit/es6/array-species.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-species
-
 // Test the ES2015 @@species feature
 
 'use strict';
diff --git a/test/mjsunit/harmony/arraybuffer-species.js b/test/mjsunit/es6/arraybuffer-species.js
similarity index 97%
rename from test/mjsunit/harmony/arraybuffer-species.js
rename to test/mjsunit/es6/arraybuffer-species.js
index 0445a4b..1ac6efb 100644
--- a/test/mjsunit/harmony/arraybuffer-species.js
+++ b/test/mjsunit/es6/arraybuffer-species.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-species
-
 // ArrayBuffer.prototype.slice makes subclass and checks length
 
 class MyArrayBuffer extends ArrayBuffer { }
diff --git a/test/mjsunit/es6/block-eval-var-over-let.js b/test/mjsunit/es6/block-eval-var-over-let.js
index febc83f..b68dbdd 100644
--- a/test/mjsunit/es6/block-eval-var-over-let.js
+++ b/test/mjsunit/es6/block-eval-var-over-let.js
@@ -8,13 +8,13 @@
 assertThrows(function() {
   let x = 1;
   eval('var x');
-}, TypeError);
+}, SyntaxError);
 
 // If the eval is in its own block scope, throws
 assertThrows(function() {
   let y = 1;
   { eval('var y'); }
-}, TypeError);
+}, SyntaxError);
 
 // If the let is in its own block scope, with the eval, throws
 assertThrows(function() {
@@ -22,7 +22,7 @@
     let x = 1;
     eval('var x');
   }
-}, TypeError);
+}, SyntaxError);
 
 // Legal if the let is no longer visible
 assertDoesNotThrow(function() {
@@ -37,13 +37,13 @@
 assertThrows(function() {
   const x = 1;
   eval('var x');
-}, TypeError);
+}, SyntaxError);
 
 // If the eval is in its own block scope, throws
 assertThrows(function() {
   const y = 1;
   { eval('var y'); }
-}, TypeError);
+}, SyntaxError);
 
 // If the const is in its own block scope, with the eval, throws
 assertThrows(function() {
@@ -51,7 +51,7 @@
     const x = 1;
     eval('var x');
   }
-}, TypeError);
+}, SyntaxError);
 
 // Legal if the const is no longer visible
 assertDoesNotThrow(function() {
diff --git a/test/mjsunit/es6/classes-subclass-builtins.js b/test/mjsunit/es6/classes-subclass-builtins.js
index 7669ef3..dca514c 100644
--- a/test/mjsunit/es6/classes-subclass-builtins.js
+++ b/test/mjsunit/es6/classes-subclass-builtins.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: --allow-natives-syntax --harmony-regexp-subclass
-// Flags: --expose-gc
+// Flags: --allow-natives-syntax --expose-gc
 
 "use strict";
 
diff --git a/test/mjsunit/es6/debug-promises/async-task-event.js b/test/mjsunit/es6/debug-promises/async-task-event.js
index 88030a2..0b0fa1e 100644
--- a/test/mjsunit/es6/debug-promises/async-task-event.js
+++ b/test/mjsunit/es6/debug-promises/async-task-event.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: --expose-debug-as debug --allow-natives-syntax
 
 Debug = debug.Debug;
 
@@ -16,8 +16,8 @@
   "didHandle #1",
   "willHandle #2",
   "then #2",
-  "enqueue #3",
   "didHandle #2",
+  "enqueue #3",
   "willHandle #3",
   "didHandle #3"
 ];
@@ -58,4 +58,6 @@
 });
 resolver();
 
+%RunMicrotasks();
+
 assertNull(exception);
diff --git a/test/mjsunit/es6/debug-promises/evaluate-across-microtasks.js b/test/mjsunit/es6/debug-promises/evaluate-across-microtasks.js
new file mode 100644
index 0000000..73718ee
--- /dev/null
+++ b/test/mjsunit/es6/debug-promises/evaluate-across-microtasks.js
@@ -0,0 +1,66 @@
+// 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: --expose-debug-as debug --allow-natives-syntax
+
+var Debug = debug.Debug;
+var listenerComplete = false;
+var exception = null;
+var count = 0;
+var log = [];
+var done = false;
+
+function LogX(x) {
+  var stored_count = count;
+  return function() {
+    log.push(`[${stored_count}] ${x}`);
+  };
+}
+
+function DebuggerStatement() {
+  log.push(`[${count}] debugger`);
+  if (count++ < 3) {
+    debugger;
+  }
+}
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var p = Promise.resolve();
+    var q = p.then(LogX("then 1"));
+    p.then(LogX("then 2"));
+    q.then(LogX("then 3"));
+    q.then(DebuggerStatement);
+    var r = q.then(() => { throw 1; });
+    r.catch(LogX("catch"));
+    listenerComplete = true;
+  } catch (e) {
+    exception = e;
+    print(e, e.stack);
+    quit(1);
+  };
+};
+
+// Add the debug event listener.
+Debug.setListener(listener);
+
+DebuggerStatement();
+LogX("start")();
+
+// Make sure that the debug event listener was invoked.
+assertTrue(listenerComplete);
+
+%RunMicrotasks();
+
+var expectation =
+  [ "[0] debugger", "[1] start", "[1] then 1",
+    "[1] then 2", "[1] then 3", "[1] debugger",
+    "[2] then 1", "[2] then 2", "[1] catch",
+    "[2] then 3", "[2] debugger", "[3] then 1",
+    "[3] then 2", "[2] catch", "[3] then 3",
+    "[3] debugger", "[3] catch",
+  ];
+
+assertEquals(expectation, log);
diff --git a/test/mjsunit/es6/debug-step-into-regexp-subclass.js b/test/mjsunit/es6/debug-step-into-regexp-subclass.js
index 599fe05..5e5eb47 100644
--- a/test/mjsunit/es6/debug-step-into-regexp-subclass.js
+++ b/test/mjsunit/es6/debug-step-into-regexp-subclass.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 --harmony-regexp-subclass
+// Flags: --expose-debug-as debug
 
 Debug = debug.Debug
 
diff --git a/test/mjsunit/es6/debug-stepin-generators.js b/test/mjsunit/es6/debug-stepin-generators.js
index 081dfb7..6e548b4 100644
--- a/test/mjsunit/es6/debug-stepin-generators.js
+++ b/test/mjsunit/es6/debug-stepin-generators.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: --expose-debug-as debug --ignition-generators
 
 Debug = debug.Debug
 var exception = null;
diff --git a/test/mjsunit/harmony/function-name.js b/test/mjsunit/es6/function-name.js
similarity index 99%
rename from test/mjsunit/harmony/function-name.js
rename to test/mjsunit/es6/function-name.js
index 66a69e0..152a631 100644
--- a/test/mjsunit/harmony/function-name.js
+++ b/test/mjsunit/es6/function-name.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-function-name
 
 (function testVariableDeclarationsFunction() {
   'use strict';
diff --git a/test/mjsunit/es6/generators-debug-liveedit.js b/test/mjsunit/es6/generators-debug-liveedit.js
index 987a42c..2bbbfc2 100644
--- a/test/mjsunit/es6/generators-debug-liveedit.js
+++ b/test/mjsunit/es6/generators-debug-liveedit.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 --allow-natives-syntax
+// Flags: --expose-debug-as debug --allow-natives-syntax --ignition-generators
 
 var Debug = debug.Debug;
 var LiveEdit = Debug.LiveEdit;
diff --git a/test/mjsunit/es6/generators-debug-scopes.js b/test/mjsunit/es6/generators-debug-scopes.js
index 126572d..b2a1ded 100644
--- a/test/mjsunit/es6/generators-debug-scopes.js
+++ b/test/mjsunit/es6/generators-debug-scopes.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: --expose-debug-as debug --ignition-generators
 
 var Debug = debug.Debug;
 
diff --git a/test/mjsunit/es6/generators-iteration.js b/test/mjsunit/es6/generators-iteration.js
index ae4c682..8f0a774 100644
--- a/test/mjsunit/es6/generators-iteration.js
+++ b/test/mjsunit/es6/generators-iteration.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: --expose-gc
+// Flags: --expose-gc --ignition-generators
 
 // Test generator iteration.
 
diff --git a/test/mjsunit/es6/generators-mirror.js b/test/mjsunit/es6/generators-mirror.js
index bf21f4d..62fbae0 100644
--- a/test/mjsunit/es6/generators-mirror.js
+++ b/test/mjsunit/es6/generators-mirror.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: --expose-debug-as debug --ignition-generators
 // Test the mirror object for functions.
 
 function *generator(f) {
diff --git a/test/mjsunit/es6/generators-objects.js b/test/mjsunit/es6/generators-objects.js
index 2d23841..9a07518 100644
--- a/test/mjsunit/es6/generators-objects.js
+++ b/test/mjsunit/es6/generators-objects.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
+// Flags: --allow-natives-syntax --ignition-generators
 
 // Test instantations of generators.
 
@@ -113,3 +113,17 @@
   assertSame(generator_prototype, Object.getPrototypeOf(g()));
 }
 TestPrototype();
+
+
+function TestComputedPropertyNames() {
+  function* f1() { return {[yield]: 42} }
+  var g1 = f1();
+  g1.next();
+  assertEquals(42, g1.next('a').value.a);
+
+  function* f2() { return {['a']: yield} }
+  var g2 = f2();
+  g2.next();
+  assertEquals(42, g2.next(42).value.a);
+}
+TestComputedPropertyNames();
diff --git a/test/mjsunit/es6/generators-parsing.js b/test/mjsunit/es6/generators-parsing.js
index f3f8cad..143c3d7 100644
--- a/test/mjsunit/es6/generators-parsing.js
+++ b/test/mjsunit/es6/generators-parsing.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: --ignition-generators
+
 // Test basic generator syntax.
 
 // Yield statements.
diff --git a/test/mjsunit/es6/generators-poisoned-properties.js b/test/mjsunit/es6/generators-poisoned-properties.js
index e861022..5a0c652 100644
--- a/test/mjsunit/es6/generators-poisoned-properties.js
+++ b/test/mjsunit/es6/generators-poisoned-properties.js
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Flags: --ignition-generators
+
 (function testRestrictedPropertiesStrict() {
   function* generator() { "use strict"; }
   assertFalse(generator.hasOwnProperty("arguments"));
diff --git a/test/mjsunit/es6/generators-relocation.js b/test/mjsunit/es6/generators-relocation.js
index 2636f52..28311a8 100644
--- a/test/mjsunit/es6/generators-relocation.js
+++ b/test/mjsunit/es6/generators-relocation.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: --expose-debug-as debug --ignition-generators
 
 var Debug = debug.Debug;
 
diff --git a/test/mjsunit/es6/generators-runtime.js b/test/mjsunit/es6/generators-runtime.js
index 5c426b2..0cdbfca 100644
--- a/test/mjsunit/es6/generators-runtime.js
+++ b/test/mjsunit/es6/generators-runtime.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: --ignition-generators
+
 // Test aspects of the generator runtime.
 
 // See:
diff --git a/test/mjsunit/es6/generators-states.js b/test/mjsunit/es6/generators-states.js
index 4e8c580..fb6b14a 100644
--- a/test/mjsunit/es6/generators-states.js
+++ b/test/mjsunit/es6/generators-states.js
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+// Flags: --ignition-generators
+
 // Test generator states.
 
 function Foo() {}
diff --git a/test/mjsunit/harmony/instanceof-es6.js b/test/mjsunit/es6/instanceof.js
similarity index 97%
rename from test/mjsunit/harmony/instanceof-es6.js
rename to test/mjsunit/es6/instanceof.js
index 4971c9c..6bf2259 100644
--- a/test/mjsunit/harmony/instanceof-es6.js
+++ b/test/mjsunit/es6/instanceof.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-instanceof
-
 // Make sure it's an error if @@hasInstance isn't a function.
 (function() {
   var F = {};
diff --git a/test/mjsunit/harmony/iterator-close.js b/test/mjsunit/es6/iterator-close.js
similarity index 99%
rename from test/mjsunit/harmony/iterator-close.js
rename to test/mjsunit/es6/iterator-close.js
index 03cdeac..1a96bee 100644
--- a/test/mjsunit/harmony/iterator-close.js
+++ b/test/mjsunit/es6/iterator-close.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-iterator-close
-
 
 function* g() { yield 42; return 88 };
 
diff --git a/test/mjsunit/es6/json.js b/test/mjsunit/es6/json.js
index 4c1ada8..c049a25 100644
--- a/test/mjsunit/es6/json.js
+++ b/test/mjsunit/es6/json.js
@@ -9,5 +9,7 @@
   assertTrue(desc.configurable);
   assertFalse(desc.writable);
   assertEquals("JSON", desc.value);
+  delete JSON[Symbol.toStringTag];
+  assertEquals('[object Object]', "" + JSON);
 }
 testJSONToString();
diff --git a/test/mjsunit/es6/legacy-subclassing.js b/test/mjsunit/es6/legacy-subclassing.js
deleted file mode 100644
index dbf666d..0000000
--- a/test/mjsunit/es6/legacy-subclassing.js
+++ /dev/null
@@ -1,38 +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: --noharmony-species
-
-// Before Symbol.species was added, ArrayBuffer subclasses constructed
-// ArrayBuffers, and Array subclasses constructed Arrays, but TypedArray and
-// Promise subclasses constructed an instance of the subclass.
-
-'use strict';
-
-assertEquals(undefined, Symbol.species);
-
-class MyArray extends Array { }
-let myArray = new MyArray();
-assertEquals(MyArray, myArray.constructor);
-assertEquals(Array, myArray.map(x => x + 1).constructor);
-assertEquals(Array, myArray.concat().constructor);
-
-class MyUint8Array extends Uint8Array { }
-Object.defineProperty(MyUint8Array.prototype, "BYTES_PER_ELEMENT", {value: 1});
-let myTypedArray = new MyUint8Array(3);
-assertEquals(MyUint8Array, myTypedArray.constructor);
-assertEquals(MyUint8Array, myTypedArray.map(x => x + 1).constructor);
-
-class MyArrayBuffer extends ArrayBuffer { }
-let myBuffer = new MyArrayBuffer(0);
-assertEquals(MyArrayBuffer, myBuffer.constructor);
-assertEquals(ArrayBuffer, myBuffer.slice().constructor);
-
-class MyPromise extends Promise { }
-let myPromise = new MyPromise(() => {});
-assertEquals(MyPromise, myPromise.constructor);
-assertEquals(MyPromise, myPromise.then().constructor);
-
-// However, subarray instantiates members of the parent class
-assertEquals(Uint8Array, myTypedArray.subarray(1).constructor);
diff --git a/test/mjsunit/es6/math-log2-log10.js b/test/mjsunit/es6/math-log2-log10.js
index b1a7736..ea17a79 100644
--- a/test/mjsunit/es6/math-log2-log10.js
+++ b/test/mjsunit/es6/math-log2-log10.js
@@ -57,13 +57,13 @@
 var n = -1074;
 // This loop covers n from -1074 to -1043
 for (var lowbits = 1; lowbits <= 0x80000000; lowbits *= 2) {
-  var x = %_ConstructDouble(0, lowbits);
+  var x = %ConstructDouble(0, lowbits);
   assertEquals(n, Math.log2(x));
   n++;
 }
 // This loop covers n from -1042 to -1023
 for (var hibits = 1; hibits <= 0x80000; hibits *= 2) {
-  var x = %_ConstructDouble(hibits, 0);
+  var x = %ConstructDouble(hibits, 0);
   assertEquals(n, Math.log2(x));
   n++;
 }
diff --git a/test/mjsunit/es6/math.js b/test/mjsunit/es6/math.js
index cb43bd5..dc761d6 100644
--- a/test/mjsunit/es6/math.js
+++ b/test/mjsunit/es6/math.js
@@ -9,5 +9,7 @@
   assertTrue(desc.configurable);
   assertFalse(desc.writable);
   assertEquals("Math", desc.value);
+  delete Math[Symbol.toStringTag];
+  assertEquals('[object Object]', "" + Math);
 }
 testMathToString();
diff --git a/test/mjsunit/es6/no-unicode-regexp-flag.js b/test/mjsunit/es6/no-unicode-regexp-flag.js
deleted file mode 100644
index 82d070e..0000000
--- a/test/mjsunit/es6/no-unicode-regexp-flag.js
+++ /dev/null
@@ -1,24 +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.
-
-// Before Unicode RegExps are shipped, we shouldn't have the 'unicode'
-// property on RegExp.prototype, or read it from 'flags'.
-// mjsunit/es6/regexp-flags tests that the property is there when the
-// flag is on.
-
-// Flags: --no-harmony-unicode-regexps
-
-'use strict';
-
-assertFalse(RegExp.prototype.hasOwnProperty('unicode'));
-
-// If we were going to be really strict, we could have a test like this,
-// with the assertTrue replaced by assertFalse, since flags shouldn't
-// Get the 'unicode' property. However, it is probably OK to omit this
-// detailed fix.
-var x = /a/;
-var y = false;
-Object.defineProperty(x, 'unicode', { get() { y = true; } });
-assertEquals("", x.flags);
-assertTrue(y);
diff --git a/test/mjsunit/es6/object-tostring.js b/test/mjsunit/es6/object-tostring.js
index 29d07f2..bc7d968 100644
--- a/test/mjsunit/es6/object-tostring.js
+++ b/test/mjsunit/es6/object-tostring.js
@@ -15,15 +15,16 @@
   RegExp:   [ RegExp ],
   Error:    [ Error, TypeError, RangeError, SyntaxError, ReferenceError,
               EvalError, URIError ]
-}
-for (f in funs) {
-  for (i in funs[f]) {
+};
+for (var f in funs) {
+  for (var i in funs[f]) {
+
     assertEquals("[object " + f + "]",
-                 Object.prototype.toString.call(new funs[f][i]),
-                 funs[f][i]);
+      Object.prototype.toString.call(new funs[f][i]),
+      funs[f][i]);
     assertEquals("[object Function]",
-                 Object.prototype.toString.call(funs[f][i]),
-                 funs[f][i]);
+      Object.prototype.toString.call(funs[f][i]),
+      funs[f][i]);
   }
 }
 
@@ -130,11 +131,11 @@
 }
 testObjectToStringPropertyDesc();
 
-function testObjectToStringOwnNonStringValue() {
-  var obj = Object.defineProperty({}, Symbol.toStringTag, { value: 1 });
+function testObjectToStringOnNonStringValue(obj) {
+  Object.defineProperty(obj, Symbol.toStringTag, { value: 1 });
   assertEquals("[object Object]", ({}).toString.call(obj));
 }
-testObjectToStringOwnNonStringValue();
+testObjectToStringOnNonStringValue({});
 
 
 // Proxies
@@ -149,11 +150,77 @@
 assertTag("Foo", new Proxy(() => 42, {get() {return "Foo"}}));
 assertTag("Function", new Proxy(() => 42, {get() {return 666}}));
 
-revocable = Proxy.revocable([], {});
+var revocable = Proxy.revocable([], {});
 revocable.revoke();
 assertThrows(() => Object.prototype.toString.call(revocable.proxy), TypeError);
 
-handler = {};
+var handler = {};
 revocable = Proxy.revocable([], handler);
+// The first get() call, i.e., toString() revokes the proxy
 handler.get = () => revocable.revoke();
+assertEquals("[object Array]", Object.prototype.toString.call(revocable.proxy));
 assertThrows(() => Object.prototype.toString.call(revocable.proxy), TypeError);
+
+revocable = Proxy.revocable([], handler);
+handler.get = () => {revocable.revoke(); return "value";};
+assertEquals("[object value]", Object.prototype.toString.call(revocable.proxy));
+assertThrows(() => Object.prototype.toString.call(revocable.proxy), TypeError);
+
+
+revocable = Proxy.revocable(function() {}, handler);
+handler.get = () => revocable.revoke();
+assertEquals("[object Function]", Object.prototype.toString.call(revocable.proxy));
+assertThrows(() => Object.prototype.toString.call(revocable.proxy), TypeError);
+
+function* gen() { yield 1; }
+
+assertTag("GeneratorFunction", gen);
+Object.defineProperty(gen, Symbol.toStringTag, {writable: true});
+gen[Symbol.toStringTag] = "different string";
+assertTag("different string", gen);
+gen[Symbol.toStringTag] = 1;
+assertTag("Function", gen);
+
+function overwriteToStringTagWithNonStringValue(tag, obj) {
+  assertTag(tag, obj);
+
+  Object.defineProperty(obj, Symbol.toStringTag, {
+    configurable: true,
+    value: "different string"
+  });
+  assertTag("different string", obj);
+
+  testObjectToStringOnNonStringValue(obj);
+}
+
+overwriteToStringTagWithNonStringValue("global", global);
+overwriteToStringTagWithNonStringValue("Generator", gen());
+
+var arrayBuffer = new ArrayBuffer();
+overwriteToStringTagWithNonStringValue("ArrayBuffer", arrayBuffer);
+overwriteToStringTagWithNonStringValue("DataView", new DataView(arrayBuffer));
+
+overwriteToStringTagWithNonStringValue("Int8Array", new Int8Array());
+overwriteToStringTagWithNonStringValue("Uint8Array", new Uint8Array());
+overwriteToStringTagWithNonStringValue("Uint8ClampedArray",
+  new Uint8ClampedArray());
+overwriteToStringTagWithNonStringValue("Int16Array", new Int16Array());
+overwriteToStringTagWithNonStringValue("Uint16Array", new Uint16Array());
+overwriteToStringTagWithNonStringValue("Int32Array", new Int32Array());
+overwriteToStringTagWithNonStringValue("Uint32Array", new Uint32Array());
+overwriteToStringTagWithNonStringValue("Float32Array", new Float32Array());
+overwriteToStringTagWithNonStringValue("Float64Array", new Float64Array());
+
+var set = new Set();
+var map = new Map();
+
+overwriteToStringTagWithNonStringValue("Set", set);
+overwriteToStringTagWithNonStringValue("Map", map);
+
+overwriteToStringTagWithNonStringValue("Set Iterator", set[Symbol.iterator]());
+overwriteToStringTagWithNonStringValue("Map Iterator", map[Symbol.iterator]());
+
+overwriteToStringTagWithNonStringValue("WeakSet", new WeakSet());
+overwriteToStringTagWithNonStringValue("WeakMap", new WeakMap());
+
+overwriteToStringTagWithNonStringValue("Promise", new Promise(function() {}));
diff --git a/test/mjsunit/es6/pattern-brand-check.js b/test/mjsunit/es6/pattern-brand-check.js
index 9b0c011..2e32294 100644
--- a/test/mjsunit/es6/pattern-brand-check.js
+++ b/test/mjsunit/es6/pattern-brand-check.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-regexp-subclass
-
 function createNonRegExp(calls) {
   return {
     get [Symbol.match]() {
diff --git a/test/mjsunit/harmony/promise-species.js b/test/mjsunit/es6/promise-species.js
similarity index 95%
rename from test/mjsunit/harmony/promise-species.js
rename to test/mjsunit/es6/promise-species.js
index 12244f2..f6f2e7a 100644
--- a/test/mjsunit/harmony/promise-species.js
+++ b/test/mjsunit/es6/promise-species.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-species --allow-natives-syntax
+// Flags: --allow-natives-syntax
 
 // Test that Promises use @@species appropriately
 
diff --git a/test/mjsunit/es6/proxies-for.js b/test/mjsunit/es6/proxies-for.js
index a171227..2b3060b 100644
--- a/test/mjsunit/es6/proxies-for.js
+++ b/test/mjsunit/es6/proxies-for.js
@@ -151,7 +151,7 @@
   object.__proto__ = proxy;
   assertEquals(["0"], keys(object));
 
-  // The Proxy doesn't set his ownKeys enumerable.
+  // The Proxy doesn't set its ownKeys enumerable.
   delete object[0];
   assertEquals([], keys(object));
 
diff --git a/test/mjsunit/es6/proxies-json.js b/test/mjsunit/es6/proxies-json.js
index d48d539..6b40e3e 100644
--- a/test/mjsunit/es6/proxies-json.js
+++ b/test/mjsunit/es6/proxies-json.js
@@ -35,7 +35,10 @@
   // Test fast case that bails out to slow case.
   assertEquals(expected, JSON.stringify(object));
   // Test slow case.
-  assertEquals(expected, JSON.stringify(object, undefined, 0));
+  assertEquals(expected, JSON.stringify(object, (key, value) => value));
+  // Test gap.
+  assertEquals(JSON.stringify(object, null, "="),
+               JSON.stringify(object, (key, value) => value, "="));
 }
 
 
@@ -67,6 +70,7 @@
 
 var parent1a = { b: proxy1 };
 testStringify('{"b":{"a":"A","b":"B","c":"C"}}', parent1a);
+testStringify('{"b":{"a":"A","b":"B","c":"C"}}', parent1a);
 
 var parent1b = { a: 123, b: proxy1, c: true };
 testStringify('{"a":123,"b":{"a":"A","b":"B","c":"C"},"c":true}', parent1b);
@@ -503,3 +507,56 @@
 assertEquals(["get", target, "length", proxy], log[0]);
 assertEquals(["get", target, "0", proxy], log[1]);
 assertEquals(["deleteProperty", target, "0"], log[2]);
+
+proxy = new Proxy([], {
+  get: function(target, property) {
+    if (property == "length") return 7;
+    return 0;
+  },
+});
+assertEquals('[[0,0,0,0,0,0,0]]', JSON.stringify([proxy]));
+
+proxy = new Proxy([], {
+  get: function(target, property) {
+    if (property == "length") return 1E40;
+    return 0;
+  },
+});
+assertThrows(() => JSON.stringify([proxy]), RangeError);
+
+log = [];
+proxy = new Proxy({}, {
+  ownKeys: function() {
+    log.push("ownKeys");
+    return ["0", "a", "b"];
+  },
+  get: function(target, property) {
+    log.push("get " + property);
+    return property.toUpperCase();
+  },
+  getOwnPropertyDescriptor: function(target, property) {
+    log.push("descriptor " + property);
+    return {enumerable: true, configurable: true};
+  },
+  isExtensible: assertUnreachable,
+  has: assertUnreachable,
+  getPrototypeOf: assertUnreachable,
+  setPrototypeOf: assertUnreachable,
+  preventExtensions: assertUnreachable,
+  setPrototypeOf: assertUnreachable,
+  defineProperty: assertUnreachable,
+  set: assertUnreachable,
+  deleteProperty: assertUnreachable,
+  apply: assertUnreachable,
+  construct: assertUnreachable,
+});
+
+assertEquals('[{"0":"0","a":"A","b":"B"}]', JSON.stringify([proxy]));
+assertEquals(['get toJSON',
+              'ownKeys',
+              'descriptor 0',
+              'descriptor a',
+              'descriptor b',
+              'get 0',
+              'get a',
+              'get b'], log);
diff --git a/test/mjsunit/es6/proxies-keys.js b/test/mjsunit/es6/proxies-keys.js
index 65dea6a..2635ac3 100644
--- a/test/mjsunit/es6/proxies-keys.js
+++ b/test/mjsunit/es6/proxies-keys.js
@@ -48,3 +48,31 @@
   assertEquals(["1","2"], Object.getOwnPropertyNames(p));
   assertEquals([symbol], Object.getOwnPropertySymbols(p));
 })();
+
+(function testNoProxyTraps() {
+  var test_sym = Symbol("sym1");
+  var test_sym2 = Symbol("sym2");
+  var target = {
+    one: 1,
+    two: 2,
+    [test_sym]: 4,
+    0: 0,
+  };
+  Object.defineProperty(
+      target, "non-enum",
+      { enumerable: false, value: "nope", configurable: true, writable: true });
+  target.__proto__ = {
+    target_proto: 3,
+    1: 1,
+    [test_sym2]: 5
+  };
+  Object.defineProperty(
+      target.__proto__, "non-enum2",
+      { enumerable: false, value: "nope", configurable: true, writable: true });
+  var proxy = new Proxy(target, {});
+
+  assertEquals(["0", "one", "two"], Object.keys(proxy));
+  assertEquals(["0", "one", "two", "non-enum"],
+               Object.getOwnPropertyNames(proxy));
+  assertEquals([test_sym], Object.getOwnPropertySymbols(proxy));
+})();
diff --git a/test/mjsunit/es6/reflect.js b/test/mjsunit/es6/reflect.js
index ee272b0..d597a78 100644
--- a/test/mjsunit/es6/reflect.js
+++ b/test/mjsunit/es6/reflect.js
@@ -541,6 +541,13 @@
       [s2]: 0, "-1": 0, "88": 0, "aaa": 0 };
   assertEquals(["0", "42", "88", "bla", "-1", "aaa", s1, s2],
       Reflect.ownKeys(obj));
+  // Force dict-mode elements.
+  delete obj[0];
+  assertEquals(["42", "88", "bla", "-1", "aaa", s1, s2],
+      Reflect.ownKeys(obj));
+  // Force dict-mode properties.
+  delete obj["bla"];
+  assertEquals(["42", "88", "-1", "aaa", s1, s2], Reflect.ownKeys(obj));
 })();
 
 
diff --git a/test/mjsunit/es6/regexp-constructor.js b/test/mjsunit/es6/regexp-constructor.js
index 559ac00..b685ff2 100644
--- a/test/mjsunit/es6/regexp-constructor.js
+++ b/test/mjsunit/es6/regexp-constructor.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-regexp-subclass
-
 "use strict";
 
 function should_not_be_called() {
diff --git a/test/mjsunit/es6/regexp-flags.js b/test/mjsunit/es6/regexp-flags.js
index 480222d..2bcccfa 100644
--- a/test/mjsunit/es6/regexp-flags.js
+++ b/test/mjsunit/es6/regexp-flags.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-unicode-regexps
-
 var r1 = /abc/gi;
 assertEquals("abc", r1.source);
 assertTrue(r1.global);
diff --git a/test/mjsunit/harmony/species.js b/test/mjsunit/es6/species.js
similarity index 97%
rename from test/mjsunit/harmony/species.js
rename to test/mjsunit/es6/species.js
index da1df43..39156a4 100644
--- a/test/mjsunit/harmony/species.js
+++ b/test/mjsunit/es6/species.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-species
-
 // Test the ES2015 @@species feature
 
 'use strict';
diff --git a/test/mjsunit/harmony/string-match.js b/test/mjsunit/es6/string-match.js
similarity index 94%
rename from test/mjsunit/harmony/string-match.js
rename to test/mjsunit/es6/string-match.js
index 25a3ca2..2c7affe 100644
--- a/test/mjsunit/harmony/string-match.js
+++ b/test/mjsunit/es6/string-match.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-regexp-subclass
-
 var pattern = {};
 pattern[Symbol.match] = function(string) {
   return string.length;
diff --git a/test/mjsunit/harmony/string-replace.js b/test/mjsunit/es6/string-replace.js
similarity index 94%
rename from test/mjsunit/harmony/string-replace.js
rename to test/mjsunit/es6/string-replace.js
index 208c483..0beb57a 100644
--- a/test/mjsunit/harmony/string-replace.js
+++ b/test/mjsunit/es6/string-replace.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-regexp-subclass
-
 var pattern = {
   [Symbol.replace]: (string, newValue) => string + newValue
 };
diff --git a/test/mjsunit/es6/string-search.js b/test/mjsunit/es6/string-search.js
index dc02982..cbdf33d 100644
--- a/test/mjsunit/es6/string-search.js
+++ b/test/mjsunit/es6/string-search.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-regexp-subclass
-
 var pattern = {};
 pattern[Symbol.search] = function(string) {
   return string.length;
diff --git a/test/mjsunit/harmony/string-split.js b/test/mjsunit/es6/string-split.js
similarity index 94%
rename from test/mjsunit/harmony/string-split.js
rename to test/mjsunit/es6/string-split.js
index 1240d84..8ca655c 100644
--- a/test/mjsunit/harmony/string-split.js
+++ b/test/mjsunit/es6/string-split.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-regexp-subclass
-
 var pattern = {};
 var limit = { value: 3 };
 pattern[Symbol.split] = function(string, limit) {
diff --git a/test/mjsunit/es6/symbols.js b/test/mjsunit/es6/symbols.js
index 9bac41f..a21afb3 100644
--- a/test/mjsunit/es6/symbols.js
+++ b/test/mjsunit/es6/symbols.js
@@ -555,7 +555,9 @@
 
 function TestStringify(expected, input) {
   assertEquals(expected, JSON.stringify(input));
-  assertEquals(expected, JSON.stringify(input, null, 0));
+  assertEquals(expected, JSON.stringify(input, (key, value) => value));
+  assertEquals(JSON.stringify(input, null, "="),
+               JSON.stringify(input, (key, value) => value, "="));
 }
 
 TestStringify(undefined, Symbol("a"));
diff --git a/test/mjsunit/es6/tail-call-megatest.js b/test/mjsunit/es6/tail-call-megatest.js
index 1de8ec6..3d2ecb8 100644
--- a/test/mjsunit/es6/tail-call-megatest.js
+++ b/test/mjsunit/es6/tail-call-megatest.js
@@ -10,6 +10,7 @@
   return error.message + "\n    at " + stack.join("\n    at ");
 }
 
+var verbose = typeof(arguments) !== "undefined" && arguments.indexOf("-v") >= 0;
 
 function checkStackTrace(expected) {
   var e = new Error();
@@ -340,32 +341,32 @@
     return source;
   }
 
-  var f_args_variants = ["", "1", "1, 2"];
-  var g_args_variants = ["", "10", "10, 20"];
+  var f_args_variants = [/*"", "1",*/ "1, 2"];
+  var g_args_variants = [/*"", "10",*/ "10, 20"];
   var f_inlinable_variants = [true, false];
   var g_inlinable_variants = [true, false];
   // This is to avoid bailing out because of referencing new.target.
-  var check_new_target_variants = [true, false];
+  var check_new_target_variants = [/*true,*/ false];
   var deopt_mode_variants = ["none", "f", "g", "test"];
   var f_variants = [
       f_cfg_sloppy,
       f_cfg_strict,
       f_cfg_bound,
       f_cfg_proxy,
-      f_cfg_possibly_eval,
+//      f_cfg_possibly_eval,
   ];
   var g_variants = [
       g_cfg_normal,
-      g_cfg_reflect_apply,
+//      g_cfg_reflect_apply,
       g_cfg_function_apply,
-      g_cfg_function_apply_arguments_object,
+//      g_cfg_function_apply_arguments_object,
       g_cfg_function_call,
   ];
   var test_warmup_counts = [0, 1, 2];
 
   var iter = 0;
   var tests_executed = 0;
-  if (shard !== undefined) {
+  if (verbose && shard !== undefined) {
     print("Running shard #" + shard);
   }
   f_variants.forEach((f_cfg) => {
@@ -378,7 +379,9 @@
                 g_inlinable_variants.forEach((g_inlinable) => {
                   test_warmup_counts.forEach((test_warmup_count) => {
                     if (shard !== undefined && (iter++) % SHARDS_COUNT != shard) {
-                      print("skipping...");
+                      if (verbose) {
+                        print("skipping...");
+                      }
                       return;
                     }
                     tests_executed++;
@@ -396,8 +399,10 @@
                       deopt_mode,
                     };
                     var source = test_template(cfg);
-                    print("====================");
-                    print(source);
+                    if (verbose) {
+                      // print("====================");
+                      // print(source);
+                    }
                     eval(source);
                   });
                 });
@@ -408,7 +413,9 @@
       });
     });
   });
-  print("Number of tests executed: " + tests_executed);
+  if (verbose) {
+    print("Number of tests executed: " + tests_executed);
+  }
 }
 
 // Uncomment to run all the tests at once or use shard runners.
diff --git a/test/mjsunit/es6/typedarray-set-length-internal.js b/test/mjsunit/es6/typedarray-set-length-internal.js
new file mode 100644
index 0000000..22b8f67
--- /dev/null
+++ b/test/mjsunit/es6/typedarray-set-length-internal.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.
+
+var typedArrayConstructors = [
+  Uint8Array,
+  Int8Array,
+  Uint16Array,
+  Int16Array,
+  Uint32Array,
+  Int32Array,
+  Uint8ClampedArray,
+  Float32Array,
+  Float64Array
+];
+
+var descriptor = { get: function() { throw new Error("accessed length"); } };
+
+for (var constructor of typedArrayConstructors) {
+  var differentConstructor =
+    constructor === Uint8Array ? Int8Array : Uint8Array;
+  var target = new constructor(16);
+  Object.defineProperty(target, "length", descriptor);
+
+  var sameBuffer = new differentConstructor(target.buffer, 0, 2);
+  Object.defineProperty(sameBuffer, "length", descriptor);
+  target.set(sameBuffer);
+
+  var differentBuffer = new differentConstructor(16);
+  Object.defineProperty(differentBuffer, "length", descriptor);
+  target.set(differentBuffer);
+
+  var array = [0, 1, 2];
+  target.set(array);
+}
diff --git a/test/mjsunit/harmony/typedarray-species.js b/test/mjsunit/es6/typedarray-species.js
similarity index 98%
rename from test/mjsunit/harmony/typedarray-species.js
rename to test/mjsunit/es6/typedarray-species.js
index 35a9ea1..020d65c 100644
--- a/test/mjsunit/harmony/typedarray-species.js
+++ b/test/mjsunit/es6/typedarray-species.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-species
-
 // Subclasses of %TypedArray% construct themselves under map, etc
 
 var typedArrayConstructors = [
diff --git a/test/mjsunit/harmony/unicode-character-ranges.js b/test/mjsunit/es6/unicode-character-ranges.js
similarity index 98%
rename from test/mjsunit/harmony/unicode-character-ranges.js
rename to test/mjsunit/es6/unicode-character-ranges.js
index e4f5247..f39004f 100644
--- a/test/mjsunit/harmony/unicode-character-ranges.js
+++ b/test/mjsunit/es6/unicode-character-ranges.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-unicode-regexps --harmony-regexp-lookbehind
+// Flags: --harmony-regexp-lookbehind
 
 function execl(expectation, regexp, subject) {
   if (regexp instanceof String) regexp = new RegExp(regexp, "u");
diff --git a/test/mjsunit/harmony/unicode-escapes-in-regexps.js b/test/mjsunit/es6/unicode-escapes-in-regexps.js
similarity index 99%
rename from test/mjsunit/harmony/unicode-escapes-in-regexps.js
rename to test/mjsunit/es6/unicode-escapes-in-regexps.js
index 7ea6f62..2d2d118 100644
--- a/test/mjsunit/harmony/unicode-escapes-in-regexps.js
+++ b/test/mjsunit/es6/unicode-escapes-in-regexps.js
@@ -4,8 +4,6 @@
 
 // ES6 extends the \uxxxx escape and also allows \u{xxxxx}.
 
-// Flags: --harmony-unicode-regexps
-
 function testRegexpHelper(r) {
   assertTrue(r.test("foo"));
   assertTrue(r.test("boo"));
diff --git a/test/mjsunit/harmony/unicode-regexp-backrefs.js b/test/mjsunit/es6/unicode-regexp-backrefs.js
similarity index 96%
rename from test/mjsunit/harmony/unicode-regexp-backrefs.js
rename to test/mjsunit/es6/unicode-regexp-backrefs.js
index e02301b..56b9c5e 100644
--- a/test/mjsunit/harmony/unicode-regexp-backrefs.js
+++ b/test/mjsunit/es6/unicode-regexp-backrefs.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-unicode-regexps --harmony-regexp-lookbehind
+// Flags: --harmony-regexp-lookbehind
 
 // Back reference does not end in the middle of a surrogate pair.
 function replace(string) {
diff --git a/test/mjsunit/harmony/unicode-regexp-ignore-case-noi18n.js b/test/mjsunit/es6/unicode-regexp-ignore-case-noi18n.js
similarity index 97%
rename from test/mjsunit/harmony/unicode-regexp-ignore-case-noi18n.js
rename to test/mjsunit/es6/unicode-regexp-ignore-case-noi18n.js
index a4cb9dc..a998942 100644
--- a/test/mjsunit/harmony/unicode-regexp-ignore-case-noi18n.js
+++ b/test/mjsunit/es6/unicode-regexp-ignore-case-noi18n.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-unicode-regexps
-
 // Non-unicode use toUpperCase mappings.
 assertFalse(/[\u00e5]/i.test("\u212b"));
 assertFalse(/[\u212b]/i.test("\u00e5\u1234"));
diff --git a/test/mjsunit/harmony/unicode-regexp-ignore-case.js b/test/mjsunit/es6/unicode-regexp-ignore-case.js
similarity index 98%
rename from test/mjsunit/harmony/unicode-regexp-ignore-case.js
rename to test/mjsunit/es6/unicode-regexp-ignore-case.js
index 291b866..dd02ca9 100644
--- a/test/mjsunit/harmony/unicode-regexp-ignore-case.js
+++ b/test/mjsunit/es6/unicode-regexp-ignore-case.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-unicode-regexps
-
 // Non-unicode use toUpperCase mappings.
 assertFalse(/[\u00e5]/i.test("\u212b"));
 assertFalse(/[\u212b]/i.test("\u00e5\u1234"));
diff --git a/test/mjsunit/harmony/unicode-regexp-last-index.js b/test/mjsunit/es6/unicode-regexp-last-index.js
similarity index 97%
rename from test/mjsunit/harmony/unicode-regexp-last-index.js
rename to test/mjsunit/es6/unicode-regexp-last-index.js
index 4a075d4..67fbac7 100644
--- a/test/mjsunit/harmony/unicode-regexp-last-index.js
+++ b/test/mjsunit/es6/unicode-regexp-last-index.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-unicode-regexps --harmony-regexp-lookbehind
+// Flags: --harmony-regexp-lookbehind
 
 var r = /./ug;
 assertEquals(["\ud800\udc00"], r.exec("\ud800\udc00\ud801\udc01"));
diff --git a/test/mjsunit/harmony/unicode-regexp-restricted-syntax.js b/test/mjsunit/es6/unicode-regexp-restricted-syntax.js
similarity index 97%
rename from test/mjsunit/harmony/unicode-regexp-restricted-syntax.js
rename to test/mjsunit/es6/unicode-regexp-restricted-syntax.js
index d129cc3..dd4fa39 100644
--- a/test/mjsunit/harmony/unicode-regexp-restricted-syntax.js
+++ b/test/mjsunit/es6/unicode-regexp-restricted-syntax.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-unicode-regexps
-
 // test262/data/test/language/literals/regexp/u-dec-esc
 assertThrows("/\\1/u", SyntaxError);
 // test262/language/literals/regexp/u-invalid-char-range-a
diff --git a/test/mjsunit/harmony/unicode-regexp-unanchored-advance.js b/test/mjsunit/es6/unicode-regexp-unanchored-advance.js
similarity index 87%
rename from test/mjsunit/harmony/unicode-regexp-unanchored-advance.js
rename to test/mjsunit/es6/unicode-regexp-unanchored-advance.js
index 97960e1..c471122 100644
--- a/test/mjsunit/harmony/unicode-regexp-unanchored-advance.js
+++ b/test/mjsunit/es6/unicode-regexp-unanchored-advance.js
@@ -2,7 +2,5 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-unicode-regexps
-
 var s = "a".repeat(1E7) + "\u1234";
 assertEquals(["\u1234", "\u1234"], /(\u1234)/u.exec(s));
diff --git a/test/mjsunit/harmony/unicode-regexp-zero-length.js b/test/mjsunit/es6/unicode-regexp-zero-length.js
similarity index 97%
rename from test/mjsunit/harmony/unicode-regexp-zero-length.js
rename to test/mjsunit/es6/unicode-regexp-zero-length.js
index bbc17dc..42bb2d7 100644
--- a/test/mjsunit/harmony/unicode-regexp-zero-length.js
+++ b/test/mjsunit/es6/unicode-regexp-zero-length.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-unicode-regexps
-
 var L = "\ud800";
 var T = "\udc00";
 var x = "x";
diff --git a/test/mjsunit/es7/array-includes.js b/test/mjsunit/es7/array-includes.js
index 303042a..3981797 100644
--- a/test/mjsunit/es7/array-includes.js
+++ b/test/mjsunit/es7/array-includes.js
@@ -673,3 +673,8 @@
   assertFalse(Array.prototype.includes.call(new Uint8Array([1, 2, 3]), 4));
   assertFalse(Array.prototype.includes.call(new Uint8Array([1, 2, 3]), 2, 2));
 })();
+
+
+(function testUnscopable() {
+  assertTrue(Array.prototype[Symbol.unscopables].includes);
+})();
diff --git a/test/mjsunit/es8/syntactic-tail-call-parsing.js b/test/mjsunit/es8/syntactic-tail-call-parsing.js
index 9ceff9c..486c3e1 100644
--- a/test/mjsunit/es8/syntactic-tail-call-parsing.js
+++ b/test/mjsunit/es8/syntactic-tail-call-parsing.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Flags: --allow-natives-syntax --harmony-explicit-tailcalls
-// Flags: --harmony-do-expressions
+// Flags: --harmony-do-expressions --harmony-async-await
 "use strict";
 
 var SyntaxErrorTests = [
@@ -128,7 +128,10 @@
         err: `                    ^^^^^^^^^^^^^^`,
       },
       { src: `()=>{ function* G() { yield continue foo(); } }`,
-        err: `                            ^^^^^^^^^^^^^^`,
+        err: `                                     ^^^^^`,
+      },
+      { src: `()=>{ function* G() { return continue foo(); } }`,
+        err: `                                      ^^^^^`,
       },
       { src: `()=>{ (1, 2, 3, continue f() ) => {} }`,
         err: `                ^^^^^^^^^^^^`,
@@ -235,6 +238,9 @@
       { src: `class A extends continue f () {}; }`,
         err: `                ^^^^^^^^^^^^^`,
       },
+      { src: `async() => continue foo()`,
+        err: `                    ^^^^^`,
+      },
     ],
   },
   { msg: "Tail call expression in try block",
@@ -311,7 +317,6 @@
   `()=>{ 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() ; }() }`,
diff --git a/test/mjsunit/fast-prototype.js b/test/mjsunit/fast-prototype.js
index 7432ecc..aa0a62e 100644
--- a/test/mjsunit/fast-prototype.js
+++ b/test/mjsunit/fast-prototype.js
@@ -46,14 +46,20 @@
 
 
 function DoProtoMagic(proto, set__proto__) {
+  var receiver;
   if (set__proto__) {
-    (new Sub()).__proto__ = proto;
+    receiver = new Sub();
+    receiver.__proto__ = proto;
   } else {
     Sub.prototype = proto;
     // Need to instantiate Sub to mark .prototype as prototype. Make sure the
     // instantiated object is used so that the allocation is not optimized away.
-    %DebugPrint(new Sub());
+    receiver = new Sub();
   }
+  // Prototypes are made fast when ICs encounter them.
+  function ic() { return typeof receiver.foo; }
+  ic();
+  ic();
 }
 
 
diff --git a/test/mjsunit/harmony/async-await-basic.js b/test/mjsunit/harmony/async-await-basic.js
index d0888ea..ba0350f 100644
--- a/test/mjsunit/harmony/async-await-basic.js
+++ b/test/mjsunit/harmony/async-await-basic.js
@@ -343,5 +343,27 @@
 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));
+assertEquals("async foo() { }",
+             Function.prototype.toString.call(AsyncMethod.prototype.foo));
+assertEquals("async foo() { }",
+             Function.prototype.toString.call({async foo() { }}.foo));
+
+// Async functions are not constructible
+assertThrows(() => class extends (async function() {}) {}, TypeError);
+
+// Regress v8:5148
+assertEqualsAsync("1", () => (async({ a = NaN }) => a)({ a: "1" }));
+assertEqualsAsync(
+    "10", () => (async(foo, { a = NaN }) => foo + a)("1", { a: "0" }));
+assertEqualsAsync("2", () => (async({ a = "2" }) => a)({ a: undefined }));
+assertEqualsAsync(
+    "20", () => (async(foo, { a = "0" }) => foo + a)("2", { a: undefined }));
+assertThrows(() => eval("async({ foo = 1 })"), SyntaxError);
+assertThrows(() => eval("async(a, { foo = 1 })"), SyntaxError);
+
+// https://bugs.chromium.org/p/chromium/issues/detail?id=638019
+async function gaga() {
+  let i = 1;
+  while (i-- > 0) { await 42 }
+}
+assertDoesNotThrow(gaga);
diff --git a/test/mjsunit/harmony/async-debug-basic.js b/test/mjsunit/harmony/async-debug-basic.js
new file mode 100644
index 0000000..a490972
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-basic.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.
+
+// Flags:  --harmony-async-await --allow-natives-syntax --expose-debug-as debug
+
+// Get the Debug object exposed from the debug context global object.
+Debug = debug.Debug
+
+listenerComplete = false;
+breakPointCount = 0;
+
+async function f() {
+  await (async function() { var a = "a"; await 1; debugger; })();
+
+  var b = "b";
+
+  assertTrue(listenerDone);
+  assertFalse(exception);
+  assertEquals(1, breakpointCount);
+}
+
+function listener(event, exec_state, event_data, data) {
+  try {
+    if (event != Debug.DebugEvent.Break) return;
+
+    breakpointCount++;
+    listenerDone = true;
+    assertEquals("a", exec_state.frame(0).evaluate("a"));
+    assertEquals("b", exec_state.frame(1).evaluate("b"));
+    assertEquals("c", exec_state.frame(2).evaluate("c"));
+  } catch (e) {
+    exception = e;
+  };
+};
+
+Debug.setListener(listener);
+
+var c = "c";
+f();
diff --git a/test/mjsunit/harmony/async-debug-step-abort-at-break.js b/test/mjsunit/harmony/async-debug-step-abort-at-break.js
new file mode 100644
index 0000000..be1f805
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-abort-at-break.js
@@ -0,0 +1,55 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise( // B3 StepOut
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;          // B0 StepNext
+  a +=               // B1 StepNext
+       await         // B4 StepNext
+             g();    // B2 StepIn
+  return a;
+}
+
+f();
+
+// Starting a new step action at an intermediate break point
+// means that we will abort the current async step.
+debugger;            // B5 StepNext
+
+late_resolve(3);     // B6 Continue
+
+%RunMicrotasks();
+
+assertEquals(7, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-continue-at-break.js b/test/mjsunit/harmony/async-debug-step-continue-at-break.js
new file mode 100644
index 0000000..5099b2f
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-continue-at-break.js
@@ -0,0 +1,55 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise( // B3 StepOut
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;          // B0 StepNext
+  a +=               // B1 StepNext
+       await         // B4 StepNext
+             g();    // B2 StepIn
+  return a;          // B6 StepNext
+}                    // B7 Continue
+
+f();
+
+// Continuing at an intermediate break point means that we will
+// carry on with the current async step.
+debugger;            // B5 Continue
+
+late_resolve(3);
+
+%RunMicrotasks();
+
+assertEquals(8, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-in-and-out.js b/test/mjsunit/harmony/async-debug-step-in-and-out.js
new file mode 100644
index 0000000..30fe2d6
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-in-and-out.js
@@ -0,0 +1,51 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise(  // B3 StepOut
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;            // B0 StepNext
+  a +=                 // B1 StepNext
+       await           // B4 StepNext
+             g();      // B2 StepIn
+  return a;            // B5 StepNext
+}                      // B6 Continue
+
+f();
+
+late_resolve(3);
+
+%RunMicrotasks();
+
+assertEquals(7, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-in-out-out.js b/test/mjsunit/harmony/async-debug-step-in-out-out.js
new file mode 100644
index 0000000..c2f34bb
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-in-out-out.js
@@ -0,0 +1,51 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise( // B3 StepOut
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;        // B0 StepNext
+  a +=             // B1 StepNext
+       await       // B4 StepOut
+             g();  // B2 StepIn
+  return a;
+}
+
+f();
+
+late_resolve(3);   // B5 Continue
+
+%RunMicrotasks();
+
+assertEquals(6, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-in.js b/test/mjsunit/harmony/async-debug-step-in.js
new file mode 100644
index 0000000..0a7de1a
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-in.js
@@ -0,0 +1,51 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise(  // B3 StepIn
+    function(res, rej) {
+      late_resolve = res;  // B4 StepIn
+    }                      // B5 StepIn
+  );
+}                      // B6 StepIn
+
+async function f() {
+  var a = 1;
+  debugger;            // B0 StepNext
+  a +=                 // B1 StepIn
+       await           // B7 StepIn
+             g();      // B2 StepIn
+  return a;            // B8 StepIn
+}                      // B9 Continue
+
+f().then(value => assertEquals(4, value));
+
+late_resolve(3);
+
+%RunMicrotasks();
+
+assertEquals(10, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-nested.js b/test/mjsunit/harmony/async-debug-step-nested.js
new file mode 100644
index 0000000..adf7a51
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-nested.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: --expose-debug-as debug --allow-natives-syntax --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise( // B4 StepOut
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f1() {
+  var a = 1;
+  debugger;          // B0 StepNext
+  a +=               // B1 StepNext
+       await         // B6 StepNext
+             f2();   // B2 StepIn
+  return a;          // B7 StepNext
+}                    // B8 Continue
+
+async function f2() {
+  var b =
+          await      // B5 StepOut
+                g(); // B3 StepIn
+  return b;
+}
+
+f1();
+
+late_resolve(3);
+
+%RunMicrotasks();
+
+assertEquals(9, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-next-constant.js b/test/mjsunit/harmony/async-debug-step-next-constant.js
new file mode 100644
index 0000000..cea86d7
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-next-constant.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 --allow-natives-syntax --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+async function f() {
+  var a = 1;
+  debugger;          // B0 StepNext
+  a +=               // B1 StepNext
+       await         // B3 StepNext
+             5;      // B2 StepNext
+  return a;          // B4 StepNext
+}                    // B5 Continue
+
+f();
+
+%RunMicrotasks();
+
+assertEquals(6, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-next.js b/test/mjsunit/harmony/async-debug-step-next.js
new file mode 100644
index 0000000..952d88d
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-next.js
@@ -0,0 +1,51 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise(
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;        // B0 StepNext
+  a +=             // B1 StepNext
+       await       // B3 StepNext
+             g();  // B2 StepNext
+  return a;        // B4 StepNext
+}                  // B5 Continue
+
+f();
+
+late_resolve(3);
+
+%RunMicrotasks();
+
+assertEquals(6, step_count);
diff --git a/test/mjsunit/harmony/async-debug-step-out.js b/test/mjsunit/harmony/async-debug-step-out.js
new file mode 100644
index 0000000..41779ac
--- /dev/null
+++ b/test/mjsunit/harmony/async-debug-step-out.js
@@ -0,0 +1,49 @@
+// 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 --harmony-async-await
+
+var Debug = debug.Debug;
+var step_count = 0;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var line = execState.frame(0).sourceLineText();
+    print(line);
+    var [match, expected_count, step] = /\/\/ B(\d) (\w+)$/.exec(line);
+    assertEquals(step_count++, parseInt(expected_count));
+    if (step != "Continue") execState.prepareStep(Debug.StepAction[step]);
+  } catch (e) {
+    print(e, e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var late_resolve;
+
+function g() {
+  return new Promise(
+    function(res, rej) {
+      late_resolve = res;
+    }
+  );
+}
+
+async function f() {
+  var a = 1;
+  debugger;        // B0 StepNext
+  a += await g();  // B1 StepOut
+  return a;
+}
+
+f();
+
+late_resolve(3);   // B2 Continue
+
+%RunMicrotasks();
+
+assertEquals(3, step_count);
diff --git a/test/mjsunit/harmony/async-function-debug-evaluate.js b/test/mjsunit/harmony/async-function-debug-evaluate.js
new file mode 100644
index 0000000..edf7bca
--- /dev/null
+++ b/test/mjsunit/harmony/async-function-debug-evaluate.js
@@ -0,0 +1,139 @@
+// 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 --expose-debug-as debug
+
+var Debug = debug.Debug;
+var breakPointCount = 0;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  ++breakPointCount;
+  try {
+    if (breakPointCount === 1) {
+      assertEquals(
+          "inner", exec_state.frame(0).evaluate("inner").value());
+      assertThrows(() => exec_state.frame(0).evaluate("letInner").value(),
+                   ReferenceError);
+      assertThrows(() => exec_state.frame(0).evaluate("constInner").value(),
+                   ReferenceError);
+
+      assertEquals("outer", exec_state.frame(0).evaluate("outer").value());
+      assertEquals(
+          "const outer", exec_state.frame(0).evaluate("constOuter").value());
+      assertEquals(
+          "let outer", exec_state.frame(0).evaluate("letOuter").value());
+
+      assertEquals("outer", exec_state.frame(1).evaluate("outer").value());
+      assertEquals(
+          "const outer", exec_state.frame(1).evaluate("constOuter").value());
+      assertEquals(
+          "let outer", exec_state.frame(1).evaluate("letOuter").value());
+
+      assertThrows(() => exec_state.frame(0).evaluate("withVar").value(),
+                   ReferenceError);
+
+    } else if (breakPointCount === 2) {
+      assertEquals(
+          "inner", exec_state.frame(0).evaluate("inner").value());
+      assertThrows(() => exec_state.frame(0).evaluate("letInner").value(),
+                   ReferenceError);
+      assertThrows(() => exec_state.frame(0).evaluate("constInner").value(),
+                   ReferenceError);
+
+      assertEquals(57, exec_state.frame(0).evaluate("x").value());
+      assertEquals(100, exec_state.frame(0).evaluate("y").value());
+
+      // From breakPointCount === 1 and later, it's not possible to access
+      // earlier framestates.
+      assertEquals("outer", exec_state.frame(0).evaluate("outer").value());
+      assertEquals(
+          "const outer", exec_state.frame(0).evaluate("constOuter").value());
+      assertEquals(
+          "let outer", exec_state.frame(0).evaluate("letOuter").value());
+
+      exec_state.frame(0).evaluate("x = `x later(${x})`");
+      exec_state.frame(0).evaluate("y = `y later(${y})`");
+      exec_state.frame(0).evaluate("z = `ZEE`");
+
+    } else if (breakPointCount === 3) {
+      assertEquals(
+          "inner", exec_state.frame(0).evaluate("inner").value());
+      assertEquals(
+          "let inner", exec_state.frame(0).evaluate("letInner").value());
+      assertEquals(
+          "const inner", exec_state.frame(0).evaluate("constInner").value());
+
+    } else if (breakPointCount === 4) {
+      assertEquals(
+          "oop", exec_state.frame(0).evaluate("error.message").value());
+      assertEquals(
+          "Error",
+          exec_state.frame(0).evaluate("error.constructor.name").value());
+      assertEquals("floof", exec_state.frame(0).evaluate("bun").value());
+      assertThrows(() => exec_state.frame(0).evaluate("cow").value(),
+                   ReferenceError);
+
+      assertEquals("outer", exec_state.frame(0).evaluate("outer").value());
+      assertEquals(
+          "const outer", exec_state.frame(0).evaluate("constOuter").value());
+      assertEquals(
+          "let outer", exec_state.frame(0).evaluate("letOuter").value());
+    }
+  } catch (e) {
+    print(e.stack);
+    quit(1);
+  }
+}
+
+Debug.setListener(listener);
+
+var outer = "outer";
+const constOuter = "const outer";
+let letOuter = "let outer"
+
+async function thrower() {
+  return Promise.reject(new Error("oop"));
+}
+
+async function testLater() {
+  return { x: 57, y: 100 };
+}
+
+async function test() {
+  var inner = "inner";
+  debugger;
+
+  let withVar = await testLater();
+  with (withVar) {
+    debugger;
+  }
+
+  assertEquals("x later(57)", withVar.x);
+  assertEquals("y later(100)", withVar.y);
+  assertEquals(undefined, withVar.z);
+  assertEquals("ZEE", z);
+
+  let letInner = "let inner";
+  const constInner = "const inner";
+  debugger;
+
+  try {
+    await thrower();
+  } catch (error) {
+    const bun = "floof";
+    debugger;
+    let cow = "moo";
+  }
+}
+
+test().
+then(x => {
+  Debug.setListener(null);
+}).
+catch(error => {
+  print(error.stack);
+  quit(1);
+  Debug.setListener(null);
+});
diff --git a/test/mjsunit/harmony/async-function-debug-scopes.js b/test/mjsunit/harmony/async-function-debug-scopes.js
new file mode 100644
index 0000000..3d72549
--- /dev/null
+++ b/test/mjsunit/harmony/async-function-debug-scopes.js
@@ -0,0 +1,616 @@
+// 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 --expose-debug-as debug
+
+var Debug = debug.Debug;
+
+var AsyncFunction = (async function() {}).constructor;
+
+async function thrower() { throw 'Exception'; }
+
+async function test(name, func, args, handler, continuation) {
+  var handler_called = false;
+  var exception = null;
+
+  function listener(event, exec_state, event_data, data) {
+    try {
+      if (event == Debug.DebugEvent.Break) {
+        handler_called = true;
+        handler(exec_state);
+      }
+    } catch (e) {
+      exception = e;
+    }
+  }
+
+  Debug.setListener(listener);
+
+  var result;
+  if (typeof func === "object")
+    result = await func.method.apply(func, args);
+  else
+    result = await func.apply(null, args);
+
+  if (typeof continuation === "function") {
+    await continuation(result);
+  }
+
+  assertTrue(handler_called, `Expected ${name} handler to be called`);
+  if (exception) {
+    exception.message = `${name} / ${exception.message}`;
+    print(exception.stack);
+    quit(1);
+  }
+
+  Debug.setListener(null);
+}
+
+async function runTests() {
+
+// Simple
+await test(
+    "(AsyncFunctionExpression) Local 1",
+    async function() { debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 1 --- resume normal",
+    async function() { let z = await 2; debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({z: 2}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 1 --- resume throw",
+    async function() { let q = await 1;
+                       try { let z = await thrower(); }
+                       catch (e) { debugger; } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e: 'Exception'}, 0, exec_state);
+      CheckScopeContent({q: 1}, 1, exec_state);
+
+    });
+
+// Simple With Parameter
+await test(
+    "(AsyncFunctionExpression) Local 2",
+    async function(a) { debugger; }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ a: 1 }, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 2 --- resume normal",
+    async function(a) { let z = await 2; debugger; }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ a: 1, z: 2 }, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 2 --- resume throw",
+    async function(a) { let z = await 2;
+                        try { await thrower(); } catch (e) { debugger; } }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ e: 'Exception' }, 0, exec_state);
+      CheckScopeContent({ a: 1, z: 2 }, 1, exec_state);
+    });
+
+// Simple With Parameter and Variable
+await test(
+    "(AsyncFunctionExpression) Local 3",
+    async function(a) { var b = 2; debugger; }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ a: 1, b: 2 }, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 3 --- resume normal",
+    async function(a) { let y = await 3; var b = 2; let z = await 4;
+                        debugger; }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ a: 1, b: 2, y: 3, z: 4 }, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 3 --- resume throw",
+    async function(a) { let y = await 3;
+                        try { var b = 2; let z = await thrower(); }
+                        catch (e) { debugger; } }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ e: 'Exception' }, 0, exec_state);
+      CheckScopeContent({ a: 1, b: 2, y: 3 }, 1, exec_state);
+    });
+
+// Local scope with parameters and local variables.
+await test(
+    "(AsyncFunctionExpression) Local 4",
+    async function(a, b) { var x = 3; var y = 4; debugger; }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1,b:2,x:3,y:4}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 4 --- resume normal",
+    async function(a, b) { let q = await 5; var x = 3; var y = 4;
+                           let r = await 6; debugger; }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1,b:2,x:3,y:4, q: 5, r: 6}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 4 --- resume throw",
+    async function(a, b) { let q = await 5; var x = 3; var y = 4;
+                           try { let r = await thrower(); }
+                           catch (e) { debugger; } }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e: 'Exception'}, 0, exec_state);
+      CheckScopeContent({a:1,b:2,x:3,y:4, q: 5}, 1, exec_state);
+    });
+
+// Empty local scope with use of eval.
+await test(
+    "(AsyncFunctionExpression) Local 5",
+    async function() { eval(""); debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 5 --- resume normal",
+    async function() { let x = await 1; eval(""); let y = await 2;
+                       debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ x: 1, y: 2 }, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 5 --- resume throw",
+    async function() { let x = await 1; eval("");
+                       try { let y = await thrower(); }
+                       catch (e) { debugger; } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ e: 'Exception' }, 0, exec_state);
+      CheckScopeContent({ x: 1 }, 1, exec_state);
+    });
+
+// Local introducing local variable using eval.
+await test(
+    "(AsyncFunctionExpression) Local 6",
+    async function() { eval("var i = 5"); debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({i:5}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 6 --- resume normal",
+    async function() { let x = await 1; eval("var i = 5"); let y = await 2;
+                       debugger; }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({i:5, x: 1, y: 2}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 6 --- resume throw",
+    async function() { let x = await 1; eval("var i = 5");
+                       try { let y = await thrower(); }
+                       catch (e) { debugger; } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e: 'Exception' }, 0, exec_state);
+      CheckScopeContent({i:5, x: 1}, 1, exec_state);
+    });
+
+// Local scope with parameters, local variables and local variable introduced
+// using eval.
+await test(
+    "(AsyncFunctionExpression) Local 7",
+    async function(a, b) { var x = 3; var y = 4;
+                           eval("var i = 5;"); eval("var j = 6");
+                           debugger; }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1,b:2,x:3,y:4,i:5,j:6}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 7 --- resume normal",
+    async function(a, b) { let z = await 7; var x = 3; var y = 4;
+                           eval("var i = 5;"); eval("var j = 6");
+                           let q = await 8;
+                           debugger; }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1,b:2,x:3,y:4,i:5,j:6, z:7, q:8}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Local 7 --- resume throw",
+    async function(a, b) { let z = await 7; var x = 3; var y = 4;
+                           eval("var i = 5;"); eval("var j = 6");
+                           try { let q = await thrower(); }
+                           catch (e) { debugger; } }, [1, 2],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e: 'Exception'}, 0, exec_state);
+      //CheckScopeContent({a:1,b:2,x:3,y:4,i:5,j:6, z:7}, 1, exec_state);
+    });
+
+// Nested empty with blocks.
+await test(
+    "(AsyncFunctionExpression) With",
+    async function() { with ({}) { with ({}) { debugger; } } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.With,
+                       debug.ScopeType.With,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({}, 0, exec_state);
+      CheckScopeContent({}, 1, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) With --- resume normal",
+    async function() { let x = await 1; with ({}) { with ({}) {
+                       let y = await 2; debugger; } } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Block,
+                       debug.ScopeType.With,
+                       debug.ScopeType.With,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({y:2}, 0, exec_state);
+      CheckScopeContent({}, 1, exec_state);
+      CheckScopeContent({}, 2, exec_state);
+      CheckScopeContent({x:1}, 3, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) With --- resume throw",
+    async function() { let x = await 1; with ({}) { with ({}) {
+                       try { let y = await thrower(); }
+                       catch (e) { debugger; } } } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.With,
+                       debug.ScopeType.With,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({ e: 'Exception'}, 0, exec_state);
+      CheckScopeContent({}, 1, exec_state);
+      CheckScopeContent({}, 2, exec_state);
+      CheckScopeContent({x:1}, 3, exec_state);
+    });
+
+// Simple closure formed by returning an inner function referering the outer
+// functions arguments.
+await test(
+    "(AsyncFunctionExpression) Closure 1",
+    async function(a) { return function() { debugger; return a; } }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1}, 1, exec_state);
+    },
+    result => result());
+
+await test(
+    "(AsyncFunctionExpression) Closure 1 --- resume normal",
+    async function(a) { let x = await 2;
+                        return function() { debugger; return a; } }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({a:1, x: 2}, 1, exec_state);
+    },
+    result => result());
+
+await test(
+    "(AsyncFunctionExpression) Closure 1 --- resume throw",
+    async function(a) { let x = await 2;
+                        return async function() {
+                            try { await thrower(); }
+                            catch (e) { debugger; } return a; }; }, [1],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e: 'Exception'}, 0, exec_state);
+      CheckScopeContent({a:1, x: 2}, 2, exec_state);
+    },
+    result => result());
+
+await test(
+    "(AsyncFunctionExpression) Catch block 1",
+    async function() { try { throw 'Exception'; } catch (e) { debugger; } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e:'Exception'}, 0, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Catch block 1 --- resume normal",
+    async function() {
+      let x = await 1;
+      try { throw 'Exception'; } catch (e) { let y = await 2; debugger; } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Block,
+                       debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({y: 2}, 0, exec_state);
+      CheckScopeContent({e:'Exception'}, 1, exec_state);
+      CheckScopeContent({x: 1}, 2, exec_state);
+    });
+
+await test(
+    "(AsyncFunctionExpression) Catch block 1 --- resume throw",
+    async function() {
+      let x = await 1;
+      try { throw 'Exception!'; } catch (e) {
+        try { let y = await thrower(); } catch (e) { debugger; } } }, [],
+    exec_state => {
+      CheckScopeChain([debug.ScopeType.Catch,
+                       debug.ScopeType.Catch,
+                       debug.ScopeType.Local,
+                       debug.ScopeType.Closure,
+                       debug.ScopeType.Script,
+                       debug.ScopeType.Global], exec_state);
+      CheckScopeContent({e:'Exception'}, 0, exec_state);
+      CheckScopeContent({e:'Exception!'}, 1, exec_state);
+      CheckScopeContent({x: 1}, 2, exec_state);
+    });
+}
+
+runTests().catch(error => {
+  print(error.stack);
+  quit(1);
+})
+
+// Check that two scope are the same.
+function assertScopeMirrorEquals(scope1, scope2) {
+  assertEquals(scope1.scopeType(), scope2.scopeType());
+  assertEquals(scope1.frameIndex(), scope2.frameIndex());
+  assertEquals(scope1.scopeIndex(), scope2.scopeIndex());
+  assertPropertiesEqual(
+      scope1.scopeObject().value(), scope2.scopeObject().value());
+}
+
+function CheckFastAllScopes(scopes, exec_state) {
+  var fast_all_scopes = exec_state.frame().allScopes(true);
+  var length = fast_all_scopes.length;
+  assertTrue(scopes.length >= length);
+  for (var i = 0; i < scopes.length && i < length; i++) {
+    var scope = fast_all_scopes[length - i - 1];
+    assertTrue(scope.isScope());
+    assertEquals(scopes[scopes.length - i - 1], scope.scopeType());
+  }
+}
+
+// Check that the scope chain contains the expected types of scopes.
+function CheckScopeChain(scopes, exec_state) {
+  var all_scopes = exec_state.frame().allScopes();
+  assertEquals(
+      scopes.length, all_scopes.length, "FrameMirror.allScopes length");
+  for (var i = 0; i < scopes.length; i++) {
+    var scope = exec_state.frame().scope(i);
+    assertTrue(scope.isScope());
+    assertEquals(scopes[i], scope.scopeType());
+    assertScopeMirrorEquals(all_scopes[i], scope);
+
+    // Check the global object when hitting the global scope.
+    if (scopes[i] == debug.ScopeType.Global) {
+      // Objects don't have same class (one is "global", other is "Object",
+      // so just check the properties directly.
+      assertPropertiesEqual(this, scope.scopeObject().value());
+    }
+  }
+  CheckFastAllScopes(scopes, exec_state);
+
+  // Get the debug command processor.
+  var dcp = exec_state.debugCommandProcessor("unspecified_running_state");
+
+  // Send a scopes request and check the result.
+  var json;
+  var request_json = '{"seq":0,"type":"request","command":"scopes"}';
+  var response_json = dcp.processDebugJSONRequest(request_json);
+  var response = JSON.parse(response_json);
+  assertEquals(scopes.length, response.body.scopes.length);
+  for (var i = 0; i < scopes.length; i++) {
+    var scopeRef = response.body.scopes[i].object.ref;
+    assertEquals(i, response.body.scopes[i].index);
+    assertEquals(scopes[i], response.body.scopes[i].type);
+    if (scopes[i] == debug.ScopeType.Local ||
+        scopes[i] == debug.ScopeType.Script ||
+        scopes[i] == debug.ScopeType.Closure) {
+      assertTrue(response.body.scopes[i].object.ref < 0);
+    } else {
+      assertTrue(response.body.scopes[i].object.ref >= 0);
+    }
+    var found = false;
+    for (var j = 0; j < response.refs.length && !found; j++) {
+      found = response.refs[j].handle == response.body.scopes[i].object.ref;
+    }
+    assertTrue(found, `Scope object ${scopeRef} not found`);
+  }
+}
+
+// Check that the content of the scope is as expected. For functions just check
+// that there is a function.
+function CheckScopeContent(content, number, exec_state) {
+  var scope = exec_state.frame().scope(number);
+  var count = 0;
+  for (var p in content) {
+    var property_mirror = scope.scopeObject().property(p);
+    assertFalse(property_mirror.isUndefined(),
+                `property ${p} not found in scope`);
+    if (typeof(content[p]) === 'function') {
+      assertTrue(property_mirror.value().isFunction());
+    } else {
+      assertEquals(content[p], property_mirror.value().value(),
+                   `property ${p} has unexpected value`);
+    }
+    count++;
+  }
+
+  // 'arguments' and might be exposed in the local and closure scope. Just
+  // ignore this.
+  var scope_size = scope.scopeObject().properties().length;
+  if (!scope.scopeObject().property('arguments').isUndefined()) {
+    scope_size--;
+  }
+  // Skip property with empty name.
+  if (!scope.scopeObject().property('').isUndefined()) {
+    scope_size--;
+  }
+
+  if (count != scope_size) {
+    print('Names found in scope:');
+    var names = scope.scopeObject().propertyNames();
+    for (var i = 0; i < names.length; i++) {
+      print(names[i]);
+    }
+  }
+  assertEquals(count, scope_size);
+
+  // Get the debug command processor.
+  var dcp = exec_state.debugCommandProcessor("unspecified_running_state");
+
+  // Send a scope request for information on a single scope and check the
+  // result.
+  var request_json = `{
+    "seq": 0,
+    "type": "request",
+    "command": "scope",
+    "arguments": {
+      "number": `;
+  request_json += scope.scopeIndex();
+  request_json += '}}';
+  var response_json = dcp.processDebugJSONRequest(request_json);
+  var response = JSON.parse(response_json);
+  assertEquals(scope.scopeType(), response.body.type);
+  assertEquals(number, response.body.index);
+  if (scope.scopeType() == debug.ScopeType.Local ||
+      scope.scopeType() == debug.ScopeType.Script ||
+      scope.scopeType() == debug.ScopeType.Closure) {
+    assertTrue(response.body.object.ref < 0);
+  } else {
+    assertTrue(response.body.object.ref >= 0);
+  }
+  var found = false;
+  for (var i = 0; i < response.refs.length && !found; i++) {
+    found = response.refs[i].handle == response.body.object.ref;
+  }
+  assertTrue(found, "Scope object " + response.body.object.ref + " not found");
+}
diff --git a/test/mjsunit/harmony/async-function-stacktrace.js b/test/mjsunit/harmony/async-function-stacktrace.js
new file mode 100644
index 0000000..50df44d
--- /dev/null
+++ b/test/mjsunit/harmony/async-function-stacktrace.js
@@ -0,0 +1,115 @@
+// 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
+
+async function test(func, funcs) {
+  try {
+    await func();
+    throw new Error("Expected " + func.toString() + " to throw");
+  } catch (e) {
+    var stack = e.stack.split('\n').
+        slice(1).
+        map(line => line.trim()).
+        map(line => line.match(/at (?:(.*) )?.*$/)[1]).
+        filter(x => typeof x === 'string' && x.length);
+
+    assertEquals(funcs, stack, `Unexpected stack trace ${e.stack}`);
+  }
+}
+
+function thrower() { throw new Error("NOPE"); }
+function reject() { return Promise.reject(new Error("NOPE")); }
+
+async function runTests() {
+  await test(async function a() {
+    throw new Error("FAIL");
+  },
+  ["a", "test", "runTests"]);
+
+  await test(async function a2() {
+    await 1;
+    throw new Error("FAIL");
+  }, ["a2"]);
+
+  await test(async function a3() {
+    await 1;
+    try { await thrower(); } catch (e) { throw new Error("FAIL"); }
+  }, ["a3"]);
+
+  await test(async function a4() {
+    await 1;
+    try { await reject(); } catch (e) { throw new Error("FAIL"); }
+  }, ["a4"]);
+
+  await test({ async b() {
+    throw new Error("FAIL");
+  }}.b,
+  ["b", "test", "runTests"]);
+
+  await test({ async b2() {
+    await 1;
+    throw new Error("FAIL");
+  }}.b2, ["b2"]);
+
+  await test({ async b3() {
+    await 1;
+    try { await thrower(); } catch (e) { throw new Error("FAIL"); }
+  } }.b3, ["b3"]);
+
+  await test({ async b4() {
+    await 1;
+    try { await reject(); } catch (e) { throw new Error("FAIL"); }
+  } }.b4, ["b4"]);
+
+  await test((new class { async c() {
+    throw new Error("FAIL");
+  } }).c,
+  ["c", "test", "runTests"]);
+
+  await test((new class { async c2() {
+    await 1;
+    throw new Error("FAIL");
+  } }).c2, ["c2"]);
+
+  await test((new class { async c3() {
+    await 1;
+    try { await thrower(); } catch (e) { throw new Error("FAIL"); }
+  } }).c3, ["c3"]);
+
+  await test((new class { async c4() {
+    await 1;
+    try { await reject(); } catch (e) { throw new Error("FAIL"); }
+  } }).c4, ["c4"]);
+
+  // TODO(caitp): `async` probably shouldn't be the inferred name for async
+  // arrow functions...
+  await test(async() => { throw new Error("FAIL") },
+  ["async", "test", "runTests"]);
+
+  await test(async() => { await 1; throw new Error("FAIL") }, ["async"]);
+
+  await test(async() => {
+    await 1;
+    try {
+      await thrower();
+    } catch (e) {
+      throw new Error("FAIL");
+    }
+  }, ["e"]); // TODO(caitp): FuncNameInferer is doing some weird stuff...
+
+  await test(async() => {
+    await 1;
+    try {
+      await reject();
+    } catch (e) {
+      throw new Error("FAIL");
+    }
+  }, ["e"]);
+}
+
+runTests().catch(e => {
+  print(e);
+  quit(1);
+});
diff --git a/test/mjsunit/harmony/debug-async-break-on-stack.js b/test/mjsunit/harmony/debug-async-break-on-stack.js
new file mode 100644
index 0000000..d3d9d8b
--- /dev/null
+++ b/test/mjsunit/harmony/debug-async-break-on-stack.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-debug-as debug
+// Flags: --harmony-async-await --allow-natives-syntax
+
+var Debug = debug.Debug;
+
+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 " + 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 break_count = 0;
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    break_count++;
+    var line = exec_state.frame(0).sourceLineText();
+    print(line);
+    assertTrue(line.indexOf(`B${break_count}`) > 0);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+
+async function g() {
+  setbreaks();
+  throw 1;  // B1
+}
+
+async function f() {
+  try {
+    await g();
+  } catch (e) {}
+  return 2;  // B2
+}
+
+function setbreaks() {
+  Debug.setListener(listener);
+  Debug.setBreakPoint(g, 2);
+  Debug.setBreakPoint(f, 4);
+}
+
+f();
+
+%RunMicrotasks();
+
+assertEqualsAsync(2, async () => break_count);
+assertEqualsAsync(null, async () => exception);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/harmony/debug-async-break.js b/test/mjsunit/harmony/debug-async-break.js
new file mode 100644
index 0000000..3b6b71b
--- /dev/null
+++ b/test/mjsunit/harmony/debug-async-break.js
@@ -0,0 +1,76 @@
+// 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
+// Flags: --harmony-async-await --allow-natives-syntax
+
+var Debug = debug.Debug;
+
+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 " + 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 break_count = 0;
+var exception = null;
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    break_count++;
+    var line = exec_state.frame(0).sourceLineText();
+    assertTrue(line.indexOf(`B${break_count}`) > 0);
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+async function g() {
+  throw 1;
+}
+
+async function f() {
+  try {
+    await g();                   // B1
+  } catch (e) {}
+  assertEquals(2, break_count);  // B2
+  return 1;                      // B3
+}
+
+Debug.setBreakPoint(f, 2);
+Debug.setBreakPoint(f, 4);
+Debug.setBreakPoint(f, 5);
+
+f();
+
+%RunMicrotasks();
+
+assertEqualsAsync(3, async () => break_count);
+assertEqualsAsync(null, async () => exception);
+
+Debug.setListener(null);
diff --git a/test/mjsunit/harmony/debug-async-function-async-task-event.js b/test/mjsunit/harmony/debug-async-function-async-task-event.js
new file mode 100644
index 0000000..249f02f
--- /dev/null
+++ b/test/mjsunit/harmony/debug-async-function-async-task-event.js
@@ -0,0 +1,70 @@
+// 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 --expose-debug-as debug --allow-natives-syntax
+
+Debug = debug.Debug;
+
+var base_id = -1;
+var exception = null;
+var expected = [
+  "enqueue #1",
+  "willHandle #1",
+  "then #1",
+  "enqueue #2",
+  "enqueue #3",
+  "didHandle #1",
+  "willHandle #2",
+  "then #2",
+  "didHandle #2",
+  "willHandle #3",
+  "enqueue #4",
+  "didHandle #3",
+  "willHandle #4",
+  "didHandle #4",
+];
+
+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;
+    assertTrue("Promise.resolve" == event_data.name() ||
+               "PromiseResolveThenableJob" == event_data.name());
+    assertLog(event_data.type() + " #" + id);
+  } catch (e) {
+    print(e + e.stack)
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+var resolver;
+var p = new Promise(function(resolve, reject) {
+  resolver = resolve;
+});
+
+async function main() {
+  await p;
+  assertLog("then #1");
+  await undefined;
+  assertLog("then #2");
+}
+main();
+resolver();
+
+%RunMicrotasks();
+
+assertNull(exception);
diff --git a/test/mjsunit/harmony/debug-async-liveedit.js b/test/mjsunit/harmony/debug-async-liveedit.js
new file mode 100644
index 0000000..c651ddb
--- /dev/null
+++ b/test/mjsunit/harmony/debug-async-liveedit.js
@@ -0,0 +1,133 @@
+// 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
+// Flags: --expose-debug-as debug --allow-natives-syntax --ignition-generators
+
+var Debug = debug.Debug;
+var LiveEdit = Debug.LiveEdit;
+
+unique_id = 0;
+
+var AsyncFunction = (async function(){}).constructor;
+
+function assertPromiseValue(value, promise) {
+  promise.then(resolve => {
+    went = true;
+    if (resolve !== value) {
+      print(`expected ${value} found ${resolve}`);
+      quit(1);
+    }
+  }, reject => {
+    print(`rejected ${reject}`);
+    quit(1);
+  });
+}
+
+function MakeAsyncFunction() {
+  // Prevents eval script caching.
+  unique_id++;
+  return AsyncFunction('callback',
+      "/* " + unique_id + "*/\n" +
+      "await callback();\n" +
+      "return 'Cat';\n");
+}
+
+function MakeFunction() {
+  // Prevents eval script caching.
+  unique_id++;
+  return Function('callback',
+      "/* " + unique_id + "*/\n" +
+      "callback();\n" +
+      "return 'Cat';\n");
+}
+
+// First, try MakeGenerator with no perturbations.
+(function(){
+  var asyncfn = MakeAsyncFunction();
+  function callback() {};
+  var promise = asyncfn(callback);
+  assertPromiseValue('Cat', promise);
+})();
+
+function patch(fun, from, to) {
+  function debug() {
+    var log = new Array();
+    var script = Debug.findScript(fun);
+    var pos = script.source.indexOf(from);
+    print(`pos ${pos}`);
+    try {
+      LiveEdit.TestApi.ApplySingleChunkPatch(script, pos, from.length, to,
+                                             log);
+    } finally {
+      print("Change log: " + JSON.stringify(log) + "\n");
+    }
+  }
+  %ExecuteInDebugContext(debug);
+}
+
+// Try to edit a MakeAsyncFunction while it's running, then again while it's
+// stopped.
+(function(){
+  var asyncfn = MakeAsyncFunction();
+
+  var patch_attempted = false;
+  function attempt_patch() {
+    assertFalse(patch_attempted);
+    patch_attempted = true;
+    assertThrows(function() { patch(asyncfn, "'Cat'", "'Capybara'") },
+                 LiveEdit.Failure);
+  };
+  var promise = asyncfn(attempt_patch);
+  // Patch should not succeed because there is a live async function activation
+  // on the stack.
+  assertPromiseValue("Cat", promise);
+  assertTrue(patch_attempted);
+
+  %RunMicrotasks();
+
+  // At this point one iterator is live, but closed, so the patch will succeed.
+  patch(asyncfn, "'Cat'", "'Capybara'");
+  promise = asyncfn(function(){});
+  // Patch successful.
+  assertPromiseValue("Capybara", promise);
+
+  // Patching will fail however when an async function is suspended.
+  var resolve;
+  promise = asyncfn(function(){return new Promise(function(r){resolve = r})});
+  assertThrows(function() { patch(asyncfn, "'Capybara'", "'Tapir'") },
+               LiveEdit.Failure);
+  resolve();
+  assertPromiseValue("Capybara", promise);
+
+  // Try to patch functions with activations inside and outside async
+  // function activations.  We should succeed in the former case, but not in the
+  // latter.
+  var fun_outside = MakeFunction();
+  var fun_inside = MakeFunction();
+  var fun_patch_attempted = false;
+  var fun_patch_restarted = false;
+  function attempt_fun_patches() {
+    if (fun_patch_attempted) {
+      assertFalse(fun_patch_restarted);
+      fun_patch_restarted = true;
+      return;
+    }
+    fun_patch_attempted = true;
+    // Patching outside an async function activation must fail.
+    assertThrows(function() { patch(fun_outside, "'Cat'", "'Cobra'") },
+                 LiveEdit.Failure);
+    // Patching inside an async function activation may succeed.
+    patch(fun_inside, "'Cat'", "'Koala'");
+  }
+  promise = asyncfn(function() { return fun_inside(attempt_fun_patches) });
+  assertEquals('Cat',
+               fun_outside(function () {
+                 assertPromiseValue('Capybara', promise);
+                 assertTrue(fun_patch_restarted);
+                 assertTrue(fun_inside.toString().includes("'Koala'"));
+               }));
+})();
+
+%RunMicrotasks();
diff --git a/test/mjsunit/harmony/generators-turbo.js b/test/mjsunit/harmony/generators-turbo.js
new file mode 100644
index 0000000..23913e4
--- /dev/null
+++ b/test/mjsunit/harmony/generators-turbo.js
@@ -0,0 +1,655 @@
+// 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 --ignition-generators --harmony-do-expressions
+// Flags: --allow-natives-syntax --turbo --turbo-from-bytecode
+
+
+// This file is identical to mjsunit/harmony/generators.js, except for its Flags
+// lines. The purpose is to explicitly mention --turbo-from-bytecode such that
+// Clusterfuzz can thoroughly test the new generators implementation.
+
+
+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
+
+  let g = function*() {
+    try {yield 1} catch (error) {assertEquals("caught", error)}
+  };
+
+  assertThrowsEquals(() => Throw(g(), "not caught"), "not caught");
+
+  {
+    let x = g();
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Throw(x, "caught"));
+  }
+
+  {
+    let x = g();
+    assertEquals({value: 1, done: false}, Next(x));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertThrowsEquals(() => Throw(x, "not caught"), "not caught");
+  }
+}
+
+
+{ // return that doesn't close
+  let g = function*() { try {return 42} finally {yield 43} };
+
+  {
+    let x = g();
+    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 {Throw(x, 666)} };
+
+  {
+    x = g();
+    assertThrows(() => Next(x), TypeError);  // still executing
+  }
+}
+
+
+{ // yield in try-finally, finally clause performs return
+
+  let g = function*() { try {yield 42} finally {return 13} };
+
+  { // "return" closes at suspendedStart
+    let x = g();
+    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(() => 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}, 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}, 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}, Next(x));
+    assertEquals({value: 13, done: true}, Throw(x, 666));
+    assertThrowsEquals(() => Throw(x, 666), 666);
+    assertEquals({value: undefined, done: true}, Next(x, 666));
+  }
+}
+
+
+{ // yield in try-finally, finally clause doesn't perform return
+
+  let g = function*() { try {yield 42} finally {13} };
+
+  { // "return" closes at suspendedStart
+    let x = g();
+    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(() => 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}, 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}, 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}, 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));
+  }
+}
+
+
+{ // yield in try-finally, finally clause yields and performs return
+
+  let g = function*() { try {yield 42} finally {yield 43; return 13} };
+
+  {
+    let x = g();
+    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}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+  }
+}
+
+
+{ // yield in try-finally, finally clause yields and doesn't perform return
+
+  let g = function*() { try {yield 42} finally {yield 43; 13} };
+
+  {
+    let x = g();
+    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}, Return(x, 666));
+    assertEquals({value: undefined, done: true}, Next(x));
+    assertEquals({value: 666, done: true}, Return(x, 666));
+  }
+}
+
+
+{ // yield*, finally clause performs return
+
+  let h = function*() { try {yield 42} finally {yield 43; return 13} };
+  let g = function*() { yield 1; yield yield* h(); };
+
+  {
+    let x = g();
+    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}, 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}, 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));
+  }
+}
+
+
+{ // yield*, finally clause does not perform return
+
+  let h = function*() { try {yield 42} finally {yield 43; 13} };
+  let g = function*() { yield 1; yield yield* h(); };
+
+  {
+    let x = g();
+    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}, 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}, Next(x));
+    assertEquals({value: 42, done: false}, Next(x));
+    assertEquals({value: 43, done: false}, Throw(x, 666));
+    assertThrowsEquals(() => Next(x), 666);
+  }
+}
+
+
+{ // yield*, .return argument is final result
+
+  function* inner() {
+    yield 2;
+  }
+
+  function* g() {
+    yield 1;
+    return yield* inner();
+  }
+
+  {
+    let x = g();
+    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));
+}
diff --git a/test/mjsunit/harmony/generators.js b/test/mjsunit/harmony/generators.js
index 895a248..eb4e51e 100644
--- a/test/mjsunit/harmony/generators.js
+++ b/test/mjsunit/harmony/generators.js
@@ -648,15 +648,3 @@
   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/mirror-async-function-promise.js b/test/mjsunit/harmony/mirror-async-function-promise.js
new file mode 100644
index 0000000..966b0ce
--- /dev/null
+++ b/test/mjsunit/harmony/mirror-async-function-promise.js
@@ -0,0 +1,93 @@
+// 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 --harmony-async-await --allow-natives-syntax
+// Test the mirror object for promises.
+
+var AsyncFunction = (async function() {}).constructor;
+
+function MirrorRefCache(json_refs) {
+  var tmp = eval('(' + json_refs + ')');
+  this.refs_ = [];
+  for (var i = 0; i < tmp.length; i++) {
+    this.refs_[tmp[i].handle] = tmp[i];
+  }
+}
+
+MirrorRefCache.prototype.lookup = function(handle) {
+  return this.refs_[handle];
+}
+
+function testPromiseMirror(promise, status, value) {
+  // Create mirror and JSON representation.
+  var mirror = debug.MakeMirror(promise);
+  var serializer = debug.MakeMirrorSerializer();
+  var json = JSON.stringify(serializer.serializeValue(mirror));
+  var refs = new MirrorRefCache(
+      JSON.stringify(serializer.serializeReferencedObjects()));
+
+  // Check the mirror hierachy.
+  assertTrue(mirror instanceof debug.Mirror);
+  assertTrue(mirror instanceof debug.ValueMirror);
+  assertTrue(mirror instanceof debug.ObjectMirror);
+  assertTrue(mirror instanceof debug.PromiseMirror);
+
+  // Check the mirror properties.
+  assertEquals(status, mirror.status());
+  assertTrue(mirror.isPromise());
+  assertEquals('promise', mirror.type());
+  assertFalse(mirror.isPrimitive());
+  assertEquals("Object", mirror.className());
+  assertEquals("#<Promise>", mirror.toText());
+  assertSame(promise, mirror.value());
+  assertTrue(mirror.promiseValue() instanceof debug.Mirror);
+  assertEquals(value, mirror.promiseValue().value());
+
+  // Parse JSON representation and check.
+  var fromJSON = eval('(' + json + ')');
+  assertEquals('promise', fromJSON.type);
+  assertEquals('Object', fromJSON.className);
+  assertEquals('function', refs.lookup(fromJSON.constructorFunction.ref).type);
+  assertEquals('Promise', refs.lookup(fromJSON.constructorFunction.ref).name);
+  assertEquals(status, fromJSON.status);
+  assertEquals(value, refs.lookup(fromJSON.promiseValue.ref).value);
+}
+
+// Test a number of different promises.
+var resolved = (async function() {})();
+var rejected = (async function() { throw undefined; })();
+var pending = (async function() { await 1; })();
+
+testPromiseMirror(resolved, "resolved", undefined);
+testPromiseMirror(rejected, "rejected", undefined);
+testPromiseMirror(pending, "pending", undefined);
+
+var resolvedv = (async function() { return "resolve"; })();
+var rejectedv = (async function() { return Promise.reject("reject"); })();
+var thrownv = (async function() { throw "throw"; })();
+
+testPromiseMirror(resolvedv, "resolved", 'resolve');
+testPromiseMirror(rejectedv, "rejected", 'reject');
+testPromiseMirror(thrownv, "rejected", 'throw');
+
+// Test internal properties of different promises.
+var m1 = debug.MakeMirror((async function() { return 1; })());
+var ip = m1.internalProperties();
+assertEquals(2, ip.length);
+assertEquals("[[PromiseStatus]]", ip[0].name());
+assertEquals("[[PromiseValue]]", ip[1].name());
+assertEquals("resolved", ip[0].value().value());
+assertEquals(1, ip[1].value().value());
+
+var m2 = debug.MakeMirror((async function() { throw 2; })());
+ip = m2.internalProperties();
+assertEquals("rejected", ip[0].value().value());
+assertEquals(2, ip[1].value().value());
+
+var m3 = debug.MakeMirror((async function() { await 1; })());
+ip = m3.internalProperties();
+assertEquals("pending", ip[0].value().value());
+assertEquals("undefined", typeof(ip[1].value().value()));
+
+%RunMicrotasks();
diff --git a/test/mjsunit/harmony/mirror-async-function.js b/test/mjsunit/harmony/mirror-async-function.js
new file mode 100644
index 0000000..b4ba831
--- /dev/null
+++ b/test/mjsunit/harmony/mirror-async-function.js
@@ -0,0 +1,76 @@
+// 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 --harmony-async-await --allow-natives-syntax
+// Test the mirror object for functions.
+
+var AsyncFunction = (async function() {}).constructor;
+
+function MirrorRefCache(json_refs) {
+  var tmp = eval('(' + json_refs + ')');
+  this.refs_ = [];
+  for (var i = 0; i < tmp.length; i++) {
+    this.refs_[tmp[i].handle] = tmp[i];
+  }
+}
+
+MirrorRefCache.prototype.lookup = function(handle) {
+  return this.refs_[handle];
+}
+
+function testFunctionMirror(f) {
+  // Create mirror and JSON representation.
+  var mirror = debug.MakeMirror(f);
+  var serializer = debug.MakeMirrorSerializer();
+  var json = JSON.stringify(serializer.serializeValue(mirror));
+  var refs = new MirrorRefCache(
+      JSON.stringify(serializer.serializeReferencedObjects()));
+
+  // Check the mirror hierachy.
+  assertTrue(mirror instanceof debug.Mirror);
+  assertTrue(mirror instanceof debug.ValueMirror);
+  assertTrue(mirror instanceof debug.ObjectMirror);
+  assertTrue(mirror instanceof debug.FunctionMirror);
+
+  // Check the mirror properties.
+  assertTrue(mirror.isFunction());
+  assertEquals('function', mirror.type());
+  assertFalse(mirror.isPrimitive());
+  assertEquals("Function", mirror.className());
+  assertEquals(f.name, mirror.name());
+  assertTrue(mirror.resolved());
+  assertEquals(f.toString(), mirror.source());
+  assertTrue(mirror.constructorFunction() instanceof debug.ObjectMirror);
+  assertTrue(mirror.protoObject() instanceof debug.Mirror);
+  assertTrue(mirror.prototypeObject() instanceof debug.Mirror);
+
+  // Test text representation
+  assertEquals(f.toString(), mirror.toText());
+
+  // Parse JSON representation and check.
+  var fromJSON = eval('(' + json + ')');
+  assertEquals('function', fromJSON.type);
+  assertEquals('Function', fromJSON.className);
+  assertEquals('function', refs.lookup(fromJSON.constructorFunction.ref).type);
+  assertEquals('AsyncFunction',
+               refs.lookup(fromJSON.constructorFunction.ref).name);
+  assertTrue(fromJSON.resolved);
+  assertEquals(f.name, fromJSON.name);
+  assertEquals(f.toString(), fromJSON.source);
+
+  // Check the formatted text (regress 1142074).
+  assertEquals(f.toString(), fromJSON.text);
+}
+
+
+// Test a number of different functions.
+testFunctionMirror(async function(){});
+testFunctionMirror(AsyncFunction());
+testFunctionMirror(new AsyncFunction());
+testFunctionMirror(async() => {});
+testFunctionMirror(async function a(){return 1;});
+testFunctionMirror(({ async foo() {} }).foo);
+testFunctionMirror((async function(){}).bind({}), "Object");
+
+%RunMicrotasks();
diff --git a/test/mjsunit/harmony/regexp-change-exec.js b/test/mjsunit/harmony/regexp-change-exec.js
index 4c9757e..ff84506 100644
--- a/test/mjsunit/harmony/regexp-change-exec.js
+++ b/test/mjsunit/harmony/regexp-change-exec.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-regexp-exec
-
 class MyError extends Error { }
 RegExp.prototype.exec = () => { throw new MyError() };
 assertThrows(() => "foo".match(/bar/), MyError);
diff --git a/test/mjsunit/harmony/regexp-named-captures.js b/test/mjsunit/harmony/regexp-named-captures.js
new file mode 100644
index 0000000..ced8e4b
--- /dev/null
+++ b/test/mjsunit/harmony/regexp-named-captures.js
@@ -0,0 +1,76 @@
+// 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-regexp-named-captures
+
+// Malformed named captures.
+assertThrows("/(?<>a)/u");  // Empty name.
+assertThrows("/(?<aa)/u");  // Unterminated name.
+assertThrows("/(?<42a>a)/u");  // Name starting with digits.
+assertThrows("/(?<:a>a)/u");  // Name starting with invalid char.
+assertThrows("/(?<a:>a)/u");  // Name containing with invalid char.
+assertThrows("/(?<a>a)(?<a>a)/u");  // Duplicate name.
+assertThrows("/(?<a>a)(?<b>b)(?<a>a)/u");  // Duplicate name.
+assertThrows("/\\k<a>/u");  // Invalid reference.
+assertThrows("/(?<a>a)\\k<ab>/u");  // Invalid reference.
+assertThrows("/(?<ab>a)\\k<a>/u");  // Invalid reference.
+assertThrows("/\\k<a>(?<ab>a)/u");  // Invalid reference.
+
+// Fallback behavior in non-unicode mode.
+assertThrows("/(?<>a)/");
+assertThrows("/(?<aa)/");
+assertThrows("/(?<42a>a)/");
+assertThrows("/(?<:a>a)/");
+assertThrows("/(?<a:>a)/");
+assertThrows("/(?<a>a)(?<a>a)/");
+assertThrows("/(?<a>a)(?<b>b)(?<a>a)/");
+assertThrows("/(?<a>a)\\k<ab>/");
+assertThrows("/(?<ab>a)\\k<a>/");
+
+assertEquals(["k<a>"], "xxxk<a>xxx".match(/\k<a>/));
+assertEquals(["k<a"], "xxxk<a>xxx".match(/\k<a/));
+
+// Basic named groups.
+assertEquals(["a", "a"], "bab".match(/(?<a>a)/u));
+assertEquals(["a", "a"], "bab".match(/(?<a42>a)/u));
+assertEquals(["a", "a"], "bab".match(/(?<_>a)/u));
+assertEquals(["a", "a"], "bab".match(/(?<$>a)/u));
+assertEquals(["bab", "a"], "bab".match(/.(?<$>a)./u));
+assertEquals(["bab", "a", "b"], "bab".match(/.(?<a>a)(.)/u));
+assertEquals(["bab", "a", "b"], "bab".match(/.(?<a>a)(?<b>.)/u));
+assertEquals(["bab", "ab"], "bab".match(/.(?<a>\w\w)/u));
+assertEquals(["bab", "bab"], "bab".match(/(?<a>\w\w\w)/u));
+assertEquals(["bab", "ba", "b"], "bab".match(/(?<a>\w\w)(?<b>\w)/u));
+
+assertEquals("bab".match(/(a)/u), "bab".match(/(?<a>a)/u));
+assertEquals("bab".match(/(a)/u), "bab".match(/(?<a42>a)/u));
+assertEquals("bab".match(/(a)/u), "bab".match(/(?<_>a)/u));
+assertEquals("bab".match(/(a)/u), "bab".match(/(?<$>a)/u));
+assertEquals("bab".match(/.(a)./u), "bab".match(/.(?<$>a)./u));
+assertEquals("bab".match(/.(a)(.)/u), "bab".match(/.(?<a>a)(.)/u));
+assertEquals("bab".match(/.(a)(.)/u), "bab".match(/.(?<a>a)(?<b>.)/u));
+assertEquals("bab".match(/.(\w\w)/u), "bab".match(/.(?<a>\w\w)/u));
+assertEquals("bab".match(/(\w\w\w)/u), "bab".match(/(?<a>\w\w\w)/u));
+assertEquals("bab".match(/(\w\w)(\w)/u), "bab".match(/(?<a>\w\w)(?<b>\w)/u));
+
+assertEquals(["bab", "b"], "bab".match(/(?<b>b).\1/u));
+assertEquals(["baba", "b", "a"], "baba".match(/(.)(?<a>a)\1\2/u));
+assertEquals(["baba", "b", "a", "b", "a"],
+    "baba".match(/(.)(?<a>a)(?<b>\1)(\2)/u));
+assertEquals(["<a", "<"], "<a".match(/(?<lt><)a/u));
+assertEquals([">a", ">"], ">a".match(/(?<gt>>)a/u));
+
+// Named references.
+assertEquals(["bab", "b"], "bab".match(/(?<b>.).\k<b>/u));
+assertNull("baa".match(/(?<b>.).\k<b>/u));
+
+// Nested groups.
+assertEquals(["bab", "bab", "ab", "b"], "bab".match(/(?<a>.(?<b>.(?<c>.)))/u));
+
+// Reference inside group.
+assertEquals(["bab", "b"], "bab".match(/(?<a>\k<a>\w)../u));
+
+// Reference before group.
+assertEquals(["bab", "b"], "bab".match(/\k<a>(?<a>b)\w\k<a>/u));
+assertEquals(["bab", "b", "a"], "bab".match(/(?<b>b)\k<a>(?<a>a)\k<b>/u));
diff --git a/test/mjsunit/harmony/regexp-no-change-exec.js b/test/mjsunit/harmony/regexp-no-change-exec.js
deleted file mode 100644
index 30b5050..0000000
--- a/test/mjsunit/harmony/regexp-no-change-exec.js
+++ /dev/null
@@ -1,9 +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: --no-harmony-regexp-exec
-
-class MyError extends Error { }
-RegExp.prototype.exec = () => { throw new MyError() };
-assertEquals(null, "foo".match(/bar/));
diff --git a/test/mjsunit/harmony/regexp-property-binary.js b/test/mjsunit/harmony/regexp-property-binary.js
index d0894b7..c0b4426 100644
--- a/test/mjsunit/harmony/regexp-property-binary.js
+++ b/test/mjsunit/harmony/regexp-property-binary.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-regexp-property --harmony-unicode-regexps
+// Flags: --harmony-regexp-property
 
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
diff --git a/test/mjsunit/harmony/regexp-property-blocks.js b/test/mjsunit/harmony/regexp-property-blocks.js
index f41c06e..de3fd1e 100644
--- a/test/mjsunit/harmony/regexp-property-blocks.js
+++ b/test/mjsunit/harmony/regexp-property-blocks.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-regexp-property --harmony-unicode-regexps
+// Flags: --harmony-regexp-property
 
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
diff --git a/test/mjsunit/harmony/regexp-property-char-class.js b/test/mjsunit/harmony/regexp-property-char-class.js
index 6162012..c70e826 100644
--- a/test/mjsunit/harmony/regexp-property-char-class.js
+++ b/test/mjsunit/harmony/regexp-property-char-class.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-unicode-regexps --harmony-regexp-property
+// Flags: --harmony-regexp-property
 
 assertThrows("/[\\p]/u");
 assertThrows("/[\\p{garbage}]/u");
diff --git a/test/mjsunit/harmony/regexp-property-disabled.js b/test/mjsunit/harmony/regexp-property-disabled.js
index 7a3158c..f471ef4 100644
--- a/test/mjsunit/harmony/regexp-property-disabled.js
+++ b/test/mjsunit/harmony/regexp-property-disabled.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-unicode-regexps --no-harmony-regexp-property
+// Flags: --no-harmony-regexp-property
 
 function test(source, message) {
   try {
diff --git a/test/mjsunit/harmony/regexp-property-enumerated.js b/test/mjsunit/harmony/regexp-property-enumerated.js
index e4a81a4..dba8397 100644
--- a/test/mjsunit/harmony/regexp-property-enumerated.js
+++ b/test/mjsunit/harmony/regexp-property-enumerated.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-regexp-property --harmony-unicode-regexps
+// Flags: --harmony-regexp-property
 
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
diff --git a/test/mjsunit/harmony/regexp-property-exact-match.js b/test/mjsunit/harmony/regexp-property-exact-match.js
index fe233f2..0d1f704 100644
--- a/test/mjsunit/harmony/regexp-property-exact-match.js
+++ b/test/mjsunit/harmony/regexp-property-exact-match.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-regexp-property --harmony-unicode-regexps
+// Flags: --harmony-regexp-property
 
 assertThrows("/\\p{In CJK}/u");
 assertThrows("/\\p{InCJKUnifiedIdeographs}/u");
@@ -15,7 +15,7 @@
 assertThrows("/\\p{InCyrillicSupplementary}/u");
 assertThrows("/\\p{InCyrillic_supplementary}/u");
 
-assertDoesNotThrow("/\\pC/u");
+assertDoesNotThrow("/\\p{C}/u");
 assertDoesNotThrow("/\\p{Other}/u");
 assertDoesNotThrow("/\\p{Cc}/u");
 assertDoesNotThrow("/\\p{Control}/u");
diff --git a/test/mjsunit/harmony/regexp-property-general-category.js b/test/mjsunit/harmony/regexp-property-general-category.js
index e2015ad..e4fb8b5 100644
--- a/test/mjsunit/harmony/regexp-property-general-category.js
+++ b/test/mjsunit/harmony/regexp-property-general-category.js
@@ -2,16 +2,20 @@
 // 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
+// Flags: --harmony-regexp-property
 
 assertThrows("/\\p/u");
 assertThrows("/\\p{garbage}/u");
 assertThrows("/\\p{}/u");
 assertThrows("/\\p{/u");
 assertThrows("/\\p}/u");
-assertThrows("/\p{Math}/u");
-assertThrows("/\p{Bidi_M}/u");
-assertThrows("/\p{Hex}/u");
+assertThrows("/\\pL/u");
+assertThrows("/\\P/u");
+assertThrows("/\\P{garbage}/u");
+assertThrows("/\\P{}/u");
+assertThrows("/\\P{/u");
+assertThrows("/\\P}/u");
+assertThrows("/\\PL/u");
 
 assertTrue(/\p{Ll}/u.test("a"));
 assertFalse(/\P{Ll}/u.test("a"));
@@ -26,10 +30,10 @@
 assertTrue(/\p{Ll}/iu.test("\u{118D4}"));
 assertTrue(/\p{Ll}/iu.test("A"));
 assertTrue(/\p{Ll}/iu.test("\u{118B4}"));
-assertFalse(/\P{Ll}/iu.test("a"));
-assertFalse(/\P{Ll}/iu.test("\u{118D4}"));
-assertFalse(/\P{Ll}/iu.test("A"));
-assertFalse(/\P{Ll}/iu.test("\u{118B4}"));
+assertTrue(/\P{Ll}/iu.test("a"));
+assertTrue(/\P{Ll}/iu.test("\u{118D4}"));
+assertTrue(/\P{Ll}/iu.test("A"));
+assertTrue(/\P{Ll}/iu.test("\u{118B4}"));
 
 assertTrue(/\p{Lu}/u.test("A"));
 assertFalse(/\P{Lu}/u.test("A"));
@@ -44,22 +48,16 @@
 assertTrue(/\p{Lu}/iu.test("\u{118D4}"));
 assertTrue(/\p{Lu}/iu.test("A"));
 assertTrue(/\p{Lu}/iu.test("\u{118B4}"));
-assertFalse(/\P{Lu}/iu.test("a"));
-assertFalse(/\P{Lu}/iu.test("\u{118D4}"));
-assertFalse(/\P{Lu}/iu.test("A"));
-assertFalse(/\P{Lu}/iu.test("\u{118B4}"));
+assertTrue(/\P{Lu}/iu.test("a"));
+assertTrue(/\P{Lu}/iu.test("\u{118D4}"));
+assertTrue(/\P{Lu}/iu.test("A"));
+assertTrue(/\P{Lu}/iu.test("\u{118B4}"));
 
 assertTrue(/\p{Sm}/u.test("+"));
 assertFalse(/\P{Sm}/u.test("+"));
 assertTrue(/\p{Sm}/u.test("\u{1D6C1}"));
 assertFalse(/\P{Sm}/u.test("\u{1D6C1}"));
 
-assertTrue(/\pL/u.test("a"));
-assertFalse(/\PL/u.test("a"));
-assertFalse(/\pL/u.test("1"));
-assertTrue(/\PL/u.test("1"));
-assertTrue(/\pL/u.test("\u1FAB"));
-assertFalse(/\PL/u.test("\u1FAB"));
 assertFalse(/\p{L}/u.test("\uA6EE"));
 assertTrue(/\P{L}/u.test("\uA6EE"));
 
diff --git a/test/mjsunit/harmony/regexp-property-lu-ui.js b/test/mjsunit/harmony/regexp-property-lu-ui.js
new file mode 100644
index 0000000..115e064
--- /dev/null
+++ b/test/mjsunit/harmony/regexp-property-lu-ui.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-regexp-property
+
+const regexp = /\P{Lu}/ui;
+const regexpu = /[\0-@\[-\xBF\xD7\xDF-\xFF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9-\u01BB\u01BD-\u01C3\u01C5\u01C6\u01C8\u01C9\u01CB\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F2\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u036F\u0371\u0373-\u0375\u0377-\u037E\u0380-\u0385\u0387\u038B\u038D\u0390\u03A2\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F6\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481-\u0489\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0529\u052B\u052D\u052F\u0530\u0557-\u109F\u10C6\u10C8-\u10CC\u10CE-\u139F\u13F6-\u1DFF\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F17\u1F1E-\u1F27\u1F30-\u1F37\u1F40-\u1F47\u1F4E-\u1F58\u1F5A\u1F5C\u1F5E\u1F60-\u1F67\u1F70-\u1FB7\u1FBC-\u1FC7\u1FCC-\u1FD7\u1FDC-\u1FE7\u1FED-\u1FF7\u1FFC-\u2101\u2103-\u2106\u2108-\u210A\u210E\u210F\u2113\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u212F\u2134-\u213D\u2140-\u2144\u2146-\u2182\u2184-\u2BFF\u2C2F-\u2C5F\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7D\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3-\u2CEA\u2CEC\u2CEE-\u2CF1\u2CF3-\uA63F\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D-\uA67F\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA699\uA69B-\uA721\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787-\uA78A\uA78C\uA78E\uA78F\uA791\uA793-\uA795\uA797\uA799\uA79B\uA79D\uA79F\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7AE\uA7AF\uA7B5\uA7B7-\uFF20\uFF3B-\u{103FF}\u{10428}-\u{10C7F}\u{10CB3}-\u{1189F}\u{118C0}-\u{1D3FF}\u{1D41A}-\u{1D433}\u{1D44E}-\u{1D467}\u{1D482}-\u{1D49B}\u{1D49D}\u{1D4A0}\u{1D4A1}\u{1D4A3}\u{1D4A4}\u{1D4A7}\u{1D4A8}\u{1D4AD}\u{1D4B6}-\u{1D4CF}\u{1D4EA}-\u{1D503}\u{1D506}\u{1D50B}\u{1D50C}\u{1D515}\u{1D51D}-\u{1D537}\u{1D53A}\u{1D53F}\u{1D545}\u{1D547}-\u{1D549}\u{1D551}-\u{1D56B}\u{1D586}-\u{1D59F}\u{1D5BA}-\u{1D5D3}\u{1D5EE}-\u{1D607}\u{1D622}-\u{1D63B}\u{1D656}-\u{1D66F}\u{1D68A}-\u{1D6A7}\u{1D6C1}-\u{1D6E1}\u{1D6FB}-\u{1D71B}\u{1D735}-\u{1D755}\u{1D76F}-\u{1D78F}\u{1D7A9}-\u{1D7C9}\u{1D7CB}-\u{10FFFF}]/ui;
+
+for (let codePoint = 0; codePoint <= 0x10FFFF; codePoint++) {
+  const string = String.fromCodePoint(codePoint);
+  assertEquals(regexp.test(string), regexpu.test(string));
+}
diff --git a/test/mjsunit/harmony/regexp-property-scripts.js b/test/mjsunit/harmony/regexp-property-scripts.js
index ec2b11d..565a59a 100644
--- a/test/mjsunit/harmony/regexp-property-scripts.js
+++ b/test/mjsunit/harmony/regexp-property-scripts.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-regexp-property --harmony-unicode-regexps
+// Flags: --harmony-regexp-property
 
 function t(re, s) { assertTrue(re.test(s)); }
 function f(re, s) { assertFalse(re.test(s)); }
diff --git a/test/mjsunit/harmony/regexp-property-special.js b/test/mjsunit/harmony/regexp-property-special.js
new file mode 100644
index 0000000..204b77f
--- /dev/null
+++ b/test/mjsunit/harmony/regexp-property-special.js
@@ -0,0 +1,51 @@
+// 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
+
+function t(re, s) { assertTrue(re.test(s)); }
+function f(re, s) { assertFalse(re.test(s)); }
+
+t(/\p{ASCII}+/u, "abc123");
+f(/\p{ASCII}+/u, "ⓐⓑⓒ①②③");
+f(/\p{ASCII}+/u, "🄰🄱🄲①②③");
+f(/\P{ASCII}+/u, "abcd123");
+t(/\P{ASCII}+/u, "ⓐⓑⓒ①②③");
+t(/\P{ASCII}+/u, "🄰🄱🄲①②③");
+
+f(/[^\p{ASCII}]+/u, "abc123");
+f(/[\p{ASCII}]+/u, "ⓐⓑⓒ①②③");
+f(/[\p{ASCII}]+/u, "🄰🄱🄲①②③");
+t(/[^\P{ASCII}]+/u, "abcd123");
+t(/[\P{ASCII}]+/u, "ⓐⓑⓒ①②③");
+f(/[^\P{ASCII}]+/u, "🄰🄱🄲①②③");
+
+t(/\p{Any}+/u, "🄰🄱🄲①②③");
+
+assertEquals(["\ud800"], /\p{Any}/u.exec("\ud800\ud801"));
+assertEquals(["\udc00"], /\p{Any}/u.exec("\udc00\udc01"));
+assertEquals(["\ud800\udc01"], /\p{Any}/u.exec("\ud800\udc01"));
+assertEquals(["\udc01"], /\p{Any}/u.exec("\udc01"));
+
+f(/\P{Any}+/u, "123");
+f(/[\P{Any}]+/u, "123");
+t(/[\P{Any}\d]+/u, "123");
+t(/[^\P{Any}]+/u, "123");
+
+t(/\p{Assigned}+/u, "123");
+t(/\p{Assigned}+/u, "🄰🄱🄲");
+f(/\p{Assigned}+/u, "\ufdd0");
+f(/\p{Assigned}+/u, "\u{fffff}");
+
+f(/\P{Assigned}+/u, "123");
+f(/\P{Assigned}+/u, "🄰🄱🄲");
+t(/\P{Assigned}+/u, "\ufdd0");
+t(/\P{Assigned}+/u, "\u{fffff}");
+f(/\P{Assigned}/u, "");
+
+t(/[^\P{Assigned}]+/u, "123");
+f(/[\P{Assigned}]+/u, "🄰🄱🄲");
+f(/[^\P{Assigned}]+/u, "\ufdd0");
+t(/[\P{Assigned}]+/u, "\u{fffff}");
+f(/[\P{Assigned}]/u, "");
diff --git a/test/mjsunit/harmony/regress/regress-618603.js b/test/mjsunit/harmony/regress/regress-618603.js
new file mode 100644
index 0000000..7b23ef4
--- /dev/null
+++ b/test/mjsunit/harmony/regress/regress-618603.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-async-await --ignition-generators
+
+try {
+} catch(e) {; }
+function __f_7(expected, run) {
+  var __v_10 = run();
+};
+__f_7("[1,2,3]", () => (function() {
+      return (async () => {[...await arguments] })();
+      })());
diff --git a/test/mjsunit/harmony/regress/regress-crbug-621111.js b/test/mjsunit/harmony/regress/regress-crbug-621111.js
new file mode 100644
index 0000000..58a0d5c
--- /dev/null
+++ b/test/mjsunit/harmony/regress/regress-crbug-621111.js
@@ -0,0 +1,6 @@
+// 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.
+
+(y = 1[1, [...[]]]) => 1;   // will core dump, if not fixed
+(y = 1[1, [...[]]]) => {};  // will core dump, if not fixed
diff --git a/test/mjsunit/harmony/regress/regress-crbug-621496.js b/test/mjsunit/harmony/regress/regress-crbug-621496.js
new file mode 100644
index 0000000..4db7a95
--- /dev/null
+++ b/test/mjsunit/harmony/regress/regress-crbug-621496.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 testIllegalSpreadAsSingleArrowParameter() {
+  assertThrows("(...[42]) => 42)", SyntaxError)  // will core dump, if not fixed
+})();
diff --git a/test/mjsunit/harmony/simd.js b/test/mjsunit/harmony/simd.js
index 1868050..a3d4615 100644
--- a/test/mjsunit/harmony/simd.js
+++ b/test/mjsunit/harmony/simd.js
@@ -622,7 +622,9 @@
 
 function TestStringify(expected, input) {
   assertEquals(expected, JSON.stringify(input));
-  assertEquals(expected, JSON.stringify(input, null, 0));
+  assertEquals(expected, JSON.stringify(input, (key, value) => value));
+  assertEquals(JSON.stringify(input, null, "="),
+               JSON.stringify(input, (key, value) => value, "="));
 }
 
 TestStringify(undefined, SIMD.Float32x4(1, 2, 3, 4));
diff --git a/test/mjsunit/harmony/sloppy-legacy-duplicate-generators.js b/test/mjsunit/harmony/sloppy-legacy-duplicate-generators.js
new file mode 100644
index 0000000..1fde475
--- /dev/null
+++ b/test/mjsunit/harmony/sloppy-legacy-duplicate-generators.js
@@ -0,0 +1,60 @@
+// 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-harmony-restrictive-generators
+
+// In legacy mode, generators get sloppy-mode block-scoped function hoisting
+
+// Hoisting to the global scope
+
+{
+  function* foo() {}
+  assertEquals('function', typeof foo);
+}
+//assertEquals('function', typeof foo);
+
+// Hoisting within a function scope
+(function() {
+  { function* bar() {} }
+  assertEquals('function', typeof bar);
+})();
+
+// Lexical shadowing allowed; hoisting happens
+(function() {
+  function* x() { yield 1; }
+  { function* x() { yield 2 } }
+  assertEquals(2, x().next().value);
+})();
+
+// Duplicates allowed
+(function() {
+  function* y() { yield 1; }
+  function* y() { yield 2 }
+  assertEquals(2, y().next().value);
+})();
+
+// Functions and generators may duplicate each other
+(function() {
+  function* z() { yield 1; }
+  function z() { return 2 }
+  assertEquals(2, z());
+
+  function a() { return 1; }
+  function* a() { yield 2 }
+  assertEquals(2, a().next().value);
+})();
+
+// In strict mode, none of this happens
+
+(function() {
+  'use strict';
+
+  { function* bar() {} }
+  assertEquals('undefined', typeof bar);
+
+  // Lexical shadowing allowed; hoisting happens
+  function* x() { yield 1; }
+  { function* x() { yield 2 } }
+  assertEquals(1, x().next().value);
+})();
diff --git a/test/mjsunit/harmony/sloppy-no-duplicate-async.js b/test/mjsunit/harmony/sloppy-no-duplicate-async.js
new file mode 100644
index 0000000..97411c0
--- /dev/null
+++ b/test/mjsunit/harmony/sloppy-no-duplicate-async.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: --harmony-async-await
+
+// Async functions don't get sloppy-mode block-scoped function hoisting
+
+// No hoisting to the global scope
+
+{
+  async function foo() {}
+  assertEquals('function', typeof foo);
+}
+assertEquals('undefined', typeof foo);
+
+// No hoisting within a function scope
+(function() {
+  { async function bar() {} }
+  assertEquals('undefined', typeof bar);
+})();
+
+// Lexical shadowing allowed, no hoisting
+(function() {
+  var y;
+  async function x() { y = 1; }
+  { async function x() { y = 2; } }
+  x();
+  assertEquals(1, y);
+})();
diff --git a/test/mjsunit/harmony/sloppy-no-duplicate-generators.js b/test/mjsunit/harmony/sloppy-no-duplicate-generators.js
new file mode 100644
index 0000000..de2e461
--- /dev/null
+++ b/test/mjsunit/harmony/sloppy-no-duplicate-generators.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-restrictive-generators
+
+// Generators don't get sloppy-mode block-scoped function hoisting
+
+// No hoisting to the global scope
+
+{
+  function* foo() {}
+  assertEquals('function', typeof foo);
+}
+assertEquals('undefined', typeof foo);
+
+// No hoisting within a function scope
+(function() {
+  { function* bar() {} }
+  assertEquals('undefined', typeof bar);
+})();
+
+// Lexical shadowing allowed, no hoisting
+(function() {
+  function* x() { yield 1; }
+  { function* x() { yield 2 } }
+  assertEquals(1, x().next().value);
+})();
diff --git a/test/mjsunit/ignition/elided-instruction-no-ignition.js b/test/mjsunit/ignition/elided-instruction-no-ignition.js
deleted file mode 100644
index 50ad528..0000000
--- a/test/mjsunit/ignition/elided-instruction-no-ignition.js
+++ /dev/null
@@ -1,37 +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: --no-ignition --expose-debug-as debug
-
-Debug = debug.Debug
-
-var exception = null;
-var break_count = 0;
-
-function listener(event, exec_state, event_data, data) {
-  if (event != Debug.DebugEvent.Break) return;
-  try {
-    print(event_data.sourceLineText());
-    var column = event_data.sourceColumn();
-    assertTrue(event_data.sourceLineText().indexOf(
-        `Break ${break_count++}. ${column}.`) > 0);
-    exec_state.prepareStep(Debug.StepAction.StepIn);
-  } catch (e) {
-    print(e + e.stack);
-    exception = e;
-  }
-};
-
-function f() {
-  var a = 1;                     // Break 2. 10.
-  return a;                      // Break 3. 2.
-}                                // Break 4. 0.
-
-Debug.setListener(listener);
-debugger;                        // Break 0. 0.
-f();                             // Break 1. 0.
-Debug.setListener(null);         // Break 5. 0.
-
-assertNull(exception);
-assertEquals(6, break_count);
diff --git a/test/mjsunit/ignition/elided-instruction.js b/test/mjsunit/ignition/elided-instruction.js
index a047f41..d31150b 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: --ignition --expose-debug-as debug
+// Flags: --expose-debug-as debug
 
 Debug = debug.Debug
 
@@ -25,17 +25,13 @@
 
 function f() {
   var a = 1;                     // Break 2. 10.
-  // This return statement emits no bytecode instruction for the evaluation of
-  // the to-be-returned expression. Therefore we cannot set a break location
-  // before the statement and a second break location immediately before
-  // returning to the caller.
-  return a;
-}                                // Break 3. 0.
+  return a;                      // Break 3. 2.
+}                                // Break 4. 0.
 
 Debug.setListener(listener);
 debugger;                        // Break 0. 0.
 f();                             // Break 1. 0.
-Debug.setListener(null);         // Break 4. 0.
+Debug.setListener(null);         // Break 5. 0.
 
 assertNull(exception);
-assertEquals(5, break_count);
+assertEquals(6, break_count);
diff --git a/test/mjsunit/ignition/regress-612386-smi-to-double-transition.js b/test/mjsunit/ignition/regress-612386-smi-to-double-transition.js
new file mode 100644
index 0000000..275f7d6
--- /dev/null
+++ b/test/mjsunit/ignition/regress-612386-smi-to-double-transition.js
@@ -0,0 +1,29 @@
+// 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-inline-new
+
+function keyed_store(obj, key, value) {
+  obj[key] = value;
+}
+
+function foo() {
+  obj = {};
+  obj.smi = 1;
+  obj.dbl = 1.5;
+  obj.obj = {a:1};
+
+  // Transition keyed store IC to polymorphic.
+  keyed_store(obj, "smi", 100);
+  keyed_store(obj, "dbl", 100);
+  keyed_store(obj, "obj", 100);
+
+  // Now call with a FAST_SMI_ELEMENTS object.
+  var smi_array = [5, 1, 1];
+  keyed_store(smi_array, 1, 6);
+  // Transition from FAST_SMI_ELEMENTS to FAST_DOUBLE_ELEMENTS.
+  keyed_store(smi_array, 2, 1.2);
+}
+
+foo();
diff --git a/test/mjsunit/ignition/regress-616064.js b/test/mjsunit/ignition/regress-616064.js
new file mode 100644
index 0000000..06de873
--- /dev/null
+++ b/test/mjsunit/ignition/regress-616064.js
@@ -0,0 +1,26 @@
+// 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 foo() {
+  if (this.Worker) {
+    function __f_0() { this.s = a; }
+    function __f_1() {
+      this.l = __f_0;
+    }
+
+    with ( 'source' , Object ) throw function __f_0(__f_0) {
+      return Worker.__f_0(-2147483648, __f_0);
+    };
+
+    var __v_9 = new Worker('');
+    __f_1 = {s: Math.s, __f_1: true};
+  }
+}
+
+try {
+  foo();
+} catch(e) {
+}
diff --git a/test/mjsunit/json-replacer-order.js b/test/mjsunit/json-replacer-order.js
index 8cb6441..19b69bf 100644
--- a/test/mjsunit/json-replacer-order.js
+++ b/test/mjsunit/json-replacer-order.js
@@ -20,7 +20,6 @@
 });
 
 JSON.stringify('', replacer, space);
-
 assertEquals(2, log.length);
 assertEquals('get 0', log[0]);
 assertEquals('toString', log[1]);
diff --git a/test/mjsunit/json-stringify-holder.js b/test/mjsunit/json-stringify-holder.js
new file mode 100644
index 0000000..2f06d77
--- /dev/null
+++ b/test/mjsunit/json-stringify-holder.js
@@ -0,0 +1,104 @@
+// 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 testBasic() {
+  var stack = [];
+  var object = {a: false};
+  var replaced = {a: false, replaced: true};
+
+  function replacer(key, value) {
+    stack.push({ holder: this, key, value });
+    if (stack.length === 1) return replaced;
+    if (key === "a") return true;
+    return value;
+  }
+
+  assertEquals(`{"a":true,"replaced":true}`, JSON.stringify(object, replacer));
+
+  assertEquals([
+    {
+      holder: { "": { a: false } },
+      key: "",
+      value: { a: false }
+    },
+    {
+      holder: { a: false, replaced: true },
+      key: "a",
+      value: false
+    },
+    {
+      holder: { a: false, replaced: true },
+      key: "replaced",
+      value: true
+    }
+  ], stack);
+
+  assertSame(stack[0].holder[""], object);
+  assertSame(stack[0].value, object);
+  assertSame(stack[1].holder, replaced);
+  assertSame(stack[2].holder, replaced);
+})();
+
+(function testToJSON() {
+  var stack = [];
+  var object = {a: false, toJSON };
+  var nested = { toJSON: nestedToJSON };
+  var replaced = {a: false, replaced: true, nested };
+  var toJSONd = {a: false, toJSONd: true }
+  var nestedToJSONd = { nestedToJSONd: true };
+
+  function toJSON(key, value) {
+    return toJSONd;
+  }
+
+  function nestedToJSON(key, value) {
+    return nestedToJSONd;
+  }
+
+  function replacer(key, value) {
+    stack.push({ holder: this, key, value });
+    if (stack.length === 1) return replaced;
+    if (key === "a") return true;
+    return value;
+  }
+
+  assertEquals(`{"a":true,"replaced":true,"nested":{"nestedToJSONd":true}}`,
+               JSON.stringify(object, replacer));
+
+  assertEquals([
+    {
+      holder: { "": { a: false, toJSON: toJSON } },
+      key: "",
+      value: { a: false, toJSONd: true }
+    },
+    {
+      holder: { a: false, replaced: true, nested: { toJSON: nestedToJSON } },
+      key: "a",
+      value: false
+    },
+    {
+      holder: { a: false, replaced: true, nested: { toJSON: nestedToJSON } },
+      key: "replaced",
+      value: true
+    },
+    {
+      holder: { a: false, replaced: true, nested: { toJSON: nestedToJSON } },
+      key: "nested",
+      value: { nestedToJSONd: true }
+    },
+    {
+      holder: { nestedToJSONd: true },
+      key: "nestedToJSONd",
+      value: true
+    }
+  ], stack);
+
+  assertSame(stack[0].holder[""], object);
+  assertSame(stack[0].value, toJSONd);
+  assertSame(stack[1].holder, replaced);
+  assertSame(stack[2].holder, replaced);
+  assertSame(stack[3].holder, replaced);
+  assertSame(stack[3].value, nestedToJSONd);
+  assertSame(stack[4].holder, nestedToJSONd);
+})();
diff --git a/test/mjsunit/json.js b/test/mjsunit/json.js
index 84f2056..3652feb 100644
--- a/test/mjsunit/json.js
+++ b/test/mjsunit/json.js
@@ -234,7 +234,9 @@
 
 function TestStringify(expected, input) {
   assertEquals(expected, JSON.stringify(input));
-  assertEquals(expected, JSON.stringify(input, null, 0));
+  assertEquals(expected, JSON.stringify(input, (key, value) => value));
+  assertEquals(JSON.stringify(input, null, "="),
+               JSON.stringify(input, (key, value) => value, "="));
 }
 
 TestStringify("true", true);
@@ -451,8 +453,8 @@
 // RegExps are not callable, so they are stringified as objects.
 TestStringify('{}', /regexp/);
 TestStringify('42', counter);
-assertEquals(2, getCount);
-assertEquals(2, callCount);
+assertEquals(4, getCount);
+assertEquals(4, callCount);
 
 var oddball2 = Object(42);
 var oddball3 = Object("foo");
@@ -518,3 +520,6 @@
   return p === "" ? v : 42;
 }
 assertEquals({a: 0, b: 1}, JSON.parse('{"a":0,"b":1}', reviver));
+
+reviver = (k, v) => (v === Infinity) ? "inf" : v;
+assertEquals('{"":"inf"}', JSON.stringify({"":Infinity}, reviver));
diff --git a/test/mjsunit/json2.js b/test/mjsunit/json2.js
index f68c76c..75e25f8 100644
--- a/test/mjsunit/json2.js
+++ b/test/mjsunit/json2.js
@@ -35,7 +35,9 @@
 // Test JSON.stringify of array in dictionary mode.
 function TestStringify(expected, input) {
   assertEquals(expected, JSON.stringify(input));
-  assertEquals(expected, JSON.stringify(input, null, 0));
+  assertEquals(expected, JSON.stringify(input, (key, value) => value));
+  assertEquals(JSON.stringify(input, null, "="),
+               JSON.stringify(input, (key, value) => value, "="));
 }
 
 var array_1 = [];
@@ -76,7 +78,7 @@
                          return 123;
                        } };
 TestStringify('{"getter":123}', getter_obj);
-assertEquals(2, counter);
+assertEquals(4, counter);
 
 // Test toJSON function.
 var tojson_obj = { toJSON: function() {
@@ -85,7 +87,7 @@
                            },
                    a: 1};
 TestStringify('[1,2]', tojson_obj);
-assertEquals(4, counter);
+assertEquals(8, counter);
 
 // Test that we don't recursively look for the toJSON function.
 var tojson_proto_obj = { a: 'fail' };
diff --git a/test/mjsunit/lithium/SeqStringSetChar.js b/test/mjsunit/lithium/SeqStringSetChar.js
deleted file mode 100644
index c5bd145..0000000
--- a/test/mjsunit/lithium/SeqStringSetChar.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// Copyright 2013 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: --allow-natives-syntax
-
-function MyStringFromCharCode(code, i) {
-  var one_byte = %NewString(3, true);
-  %_OneByteSeqStringSetChar(0, code, one_byte);
-  %_OneByteSeqStringSetChar(1, code, one_byte);
-  %_OneByteSeqStringSetChar(i, code, one_byte);
-  var two_byte = %NewString(3, false);
-  %_TwoByteSeqStringSetChar(0, code, two_byte);
-  %_TwoByteSeqStringSetChar(1, code, two_byte);
-  %_TwoByteSeqStringSetChar(i, code, two_byte);
-  return one_byte + two_byte;
-}
-
-MyStringFromCharCode(65, 2);
-var r1 = MyStringFromCharCode(65, 2);
-%OptimizeFunctionOnNextCall(MyStringFromCharCode);
-var r2 = MyStringFromCharCode(65, 2);
-assertEquals(r1, r2);
diff --git a/test/mjsunit/messages.js b/test/mjsunit/messages.js
index d40994d..30abc19 100644
--- a/test/mjsunit/messages.js
+++ b/test/mjsunit/messages.js
@@ -3,7 +3,7 @@
 // found in the LICENSE file.
 
 // Flags: --stack-size=100 --harmony
-// Flags: --harmony-simd --harmony-instanceof
+// Flags: --harmony-simd
 
 function test(f, expected, type) {
   try {
diff --git a/test/mjsunit/mirror-regexp.js b/test/mjsunit/mirror-regexp.js
index 7aae1c6..0711ff9 100644
--- a/test/mjsunit/mirror-regexp.js
+++ b/test/mjsunit/mirror-regexp.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: --expose-debug-as debug --harmony-unicode-regexps
+// Flags: --expose-debug-as debug
 // Test the mirror object for regular expression values
 
 var dont_enum = debug.PropertyAttribute.DontEnum;
diff --git a/test/mjsunit/mirror-script.js b/test/mjsunit/mirror-script.js
index ed0dd12..7e3891a 100644
--- a/test/mjsunit/mirror-script.js
+++ b/test/mjsunit/mirror-script.js
@@ -83,16 +83,7 @@
 
 
 // Test the script mirror for different functions.
-testScriptMirror(function(){}, 'mirror-script.js', 99, 2, 0);
+testScriptMirror(function(){}, 'mirror-script.js', 90, 2, 0);
 testScriptMirror(Math.abs, 'native math.js', -1, 0, 0);
 testScriptMirror(eval('(function(){})'), null, 1, 2, 1, '(function(){})', 87);
 testScriptMirror(eval('(function(){\n  })'), null, 2, 2, 1, '(function(){\n  })', 88);
-
-// Test taking slices of source.
-var mirror = debug.MakeMirror(eval('(function(){\n  1;\n})')).script();
-assertEquals('(function(){\n', mirror.sourceSlice(0, 1).sourceText());
-assertEquals('  1;\n', mirror.sourceSlice(1, 2).sourceText());
-assertEquals('})', mirror.sourceSlice(2, 3).sourceText());
-assertEquals('(function(){\n  1;\n', mirror.sourceSlice(0, 2).sourceText());
-assertEquals('  1;\n})', mirror.sourceSlice(1, 3).sourceText());
-assertEquals('(function(){\n  1;\n})', mirror.sourceSlice(0, 3).sourceText());
diff --git a/test/mjsunit/mjsunit.isolate b/test/mjsunit/mjsunit.isolate
index 18b73c2..6ebd801 100644
--- a/test/mjsunit/mjsunit.isolate
+++ b/test/mjsunit/mjsunit.isolate
@@ -13,7 +13,8 @@
       '../../tools/profile_view.js',
       '../../tools/profviz/composer.js',
       '../../tools/splaytree.js',
-      '../../tools/tickprocessor.js'
+      '../../tools/tickprocessor.js',
+      '../../tools/dumpcpp.js'
     ],
   },
   'includes': [
diff --git a/test/mjsunit/mjsunit.status b/test/mjsunit/mjsunit.status
index 228832b..017fa4d 100644
--- a/test/mjsunit/mjsunit.status
+++ b/test/mjsunit/mjsunit.status
@@ -94,14 +94,12 @@
   'debug-evaluate-locals-optimized': [PASS, NO_VARIANTS],
   'debug-evaluate-locals-optimized-double': [PASS, NO_VARIANTS],
   'debug-evaluate-recursive': [PASS, NO_VARIANTS],  # only in no-snap debug.
-  'debug-ignore-breakpoints': [PASS, NO_VARIANTS],  # only in no-snap debug.
   'debug-setbreakpoint': [PASS, NO_VARIANTS],  # only in no-snap debug.
   'debug-step': [PASS, NO_VARIANTS],  # windows only.
   'debug-step-2': [PASS, NO_VARIANTS],  # flaky in no-snap mode.
   'debug-step-3': [PASS, NO_VARIANTS],  # flaky in no-snap mode.
   'debug-stepframe-clearing': [PASS, NO_VARIANTS],  # only in no-snap debug.
   'debug-stepin-call-function-stub': [PASS, NO_VARIANTS],  # only in no-snap debug.
-  'debug-stepin-positions': [PASS, NO_VARIANTS],  # only due to inlining.
   'regress/regress-3717': [PASS, NO_VARIANTS],  # only in no-snap mode.
   'regress/regress-2451': [PASS, NO_VARIANTS],  # with custom snapshot and gc-stress.
   'debug-multiple-breakpoints': [PASS, NO_VARIANTS],  # with custom snapshot and gc-stress.
@@ -124,7 +122,6 @@
   'mirror-script': [PASS, NO_VARIANTS],  # on ARM64 only.
 
   # TODO(jarin/mstarzinger): Investigate debugger issues with TurboFan.
-  'debug-evaluate-const': [PASS, NO_VARIANTS],
   'debug-evaluate-locals': [PASS, NO_VARIANTS],
   'debug-evaluate-locals-capturing': [PASS, NO_VARIANTS],
   'debug-liveedit-check-stack': [PASS, NO_VARIANTS],  # only in no-snap mode.
@@ -194,11 +191,6 @@
   'regress/regress-crbug-482998': [PASS, NO_VARIANTS, ['arch == arm or arch == arm64 or arch == android_arm or arch == android_arm64 or arch == mipsel or arch == mips64el or arch == mips', SKIP]],
 
   ##############################################################################
-  # This test expects to reach a certain recursion depth, which may not work
-  # for debug mode.
-  'json-recursive': [PASS, ['mode == debug', PASS, FAIL]],
-
-  ##############################################################################
   # Skip long running tests that time out in debug mode.
   'generated-transition-stub': [PASS, ['mode == debug', SKIP]],
   'migrations': [SKIP],
@@ -214,6 +206,7 @@
   # that, it doesn't make sense to run several variants of d8-os anyways.
   'd8-os': [PASS, NO_VARIANTS, ['isolates or arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]],
   'tools/tickprocessor': [PASS, NO_VARIANTS, ['arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]],
+  'tools/dumpcpp': [PASS, NO_VARIANTS, ['arch == android_arm or arch == android_arm64 or arch == android_ia32', SKIP]],
 
   ##############################################################################
   # Long running test that reproduces memory leak and should be run manually.
@@ -228,7 +221,6 @@
   # Tests with different versions for release and debug.
   'compiler/alloc-number': [PASS, ['mode == debug', SKIP]],
   'compiler/alloc-number-debug': [PASS, ['mode == release', SKIP]],
-  'regress/regress-634': [PASS, ['mode == debug', SKIP]],
   'regress/regress-634-debug': [PASS, ['mode == release', SKIP]],
 
   # BUG(336820). TODO(bmeurer): Investigate.
@@ -261,7 +253,7 @@
   'readonly': [PASS, SLOW],
   'regress/regress-1200351': [PASS, ['mode == debug', SLOW]],
   'regress/regress-crbug-474297': [PASS, ['mode == debug', SLOW]],
-  'es6/tail-call-megatest*': [PASS, FAST_VARIANTS],
+  'es6/tail-call-megatest*': [PASS, SLOW, FAST_VARIANTS, ['tsan', SKIP]],
 
   # TODO(titzer): ASM->WASM tests on these platforms
   'wasm/asm-wasm': [PASS, ['arch in [arm, arm64, mips, mipsel, mips64, mips64el]', SKIP]],
@@ -276,12 +268,16 @@
   'wasm/embenchen/*': [PASS, ['arch == arm64', SKIP], ['ignition == True', SKIP]],
 
   # 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]],
+  'es6/unicode-regexp-ignore-case': [PASS, ['no_i18n == True', FAIL]],
+  'es6/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]],
 
+  # TODO(bmeurer): Flaky timeouts (sometimes <1s, sometimes >3m).
+  'unicodelctest': [PASS, NO_VARIANTS],
+  'unicodelctest-no-optimization': [PASS, NO_VARIANTS],
+
   ############################################################################
   # Ignition
 
@@ -296,12 +292,6 @@
   # 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],
 
@@ -336,6 +326,10 @@
   'smi-mul-const': [PASS, NO_IGNITION],
   'smi-mul': [PASS, NO_IGNITION],
   'unary-minus-deopt': [PASS, NO_IGNITION],
+
+  # TODO(rmcilroy,5038): Crashes in Deoptimizer::PatchCodeForDeoptimization on
+  # nosnap builds when --stress-opt and --turbo-from-bytecode is enabled.
+  'harmony/generators-turbo': [PASS, FAST_VARIANTS],
 }],  # ALWAYS
 
 ['novfp3 == True', {
@@ -382,7 +376,6 @@
   # TODO(mstarzinger): Takes too long with TF.
   'array-sort': [PASS, NO_VARIANTS],
   'regress/regress-91008': [PASS, NO_VARIANTS],
-  'regress/regress-417709a': [PASS, ['arch == arm64', NO_VARIANTS]],
   'regress/regress-transcendental': [PASS, ['arch == arm64', NO_VARIANTS]],
   'compiler/osr-regress-max-locals': [PASS, NO_VARIANTS],
   'math-floor-of-div': [PASS, NO_VARIANTS],
@@ -415,6 +408,9 @@
 
   # BUG(v8:4779): Crashes flakily with stress mode on arm64.
   'array-splice': [PASS, SLOW, ['arch == arm64', FAST_VARIANTS]],
+
+  # BUG(v8:5053).
+  'wasm/embenchen/fasta': [PASS, FAST_VARIANTS],
 }],  # 'gc_stress == True'
 
 ##############################################################################
@@ -431,8 +427,6 @@
   'asm/sqlite3/*': [SKIP],
   # TODO(mips-team): Fix Wasm for big-endian.
   'wasm/*': [SKIP],
-  'regress/regress-599717': [SKIP],
-  'regress/regress-599719': [SKIP],
 }],  # 'byteorder == big'
 
 ##############################################################################
@@ -454,15 +448,12 @@
   'big-object-literal': [SKIP],
   'compiler/regress-arguments': [SKIP],
   'compiler/regress-gvn': [SKIP],
-  'compiler/regress-max-locals-for-osr': [SKIP],
   'compiler/regress-4': [SKIP],
   'compiler/regress-or': [SKIP],
   'compiler/regress-rep-change': [SKIP],
   'regress/regress-1117': [SKIP],
-  'regress/regress-1145': [SKIP],
   'regress/regress-1849': [SKIP],
   'regress/regress-3247124': [SKIP],
-  'regress/regress-634': [SKIP],
   'regress/regress-91008': [SKIP],
   'regress/regress-91010': [SKIP],
   'regress/regress-91013': [SKIP],
@@ -518,11 +509,9 @@
 ['arch == arm64 and mode == debug and simulator_run == True', {
 
   # Pass but take too long with the simulator in debug mode.
-  'array-iterate-backwards': [PASS, TIMEOUT],
   'array-sort': [PASS, TIMEOUT],
   'packed-elements': [SKIP],
   'regexp-global': [SKIP],
-  'compiler/alloc-numbers': [SKIP],
   'math-floor-of-div': [PASS, TIMEOUT],
   'math-floor-of-div-nosudiv': [PASS, TIMEOUT],
   'unicodelctest': [PASS, TIMEOUT],
@@ -532,7 +521,6 @@
 
   # 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'
 
@@ -567,6 +555,9 @@
   'try': [PASS, NO_IGNITION],
   # Too slow for interpreter and msan.
   'es6/tail-call-megatest*': [PASS, NO_IGNITION],
+
+  # Too slow.
+  'harmony/regexp-property-lu-ui': [SKIP],
 }],  # 'msan == True'
 
 ##############################################################################
@@ -590,7 +581,6 @@
   'big-object-literal': [SKIP],
   'compiler/alloc-number': [SKIP],
   'regress/regress-490': [SKIP],
-  'regress/regress-634': [SKIP],
   'regress/regress-create-exception': [SKIP],
   'regress/regress-3247124': [SKIP],
 
@@ -639,7 +629,6 @@
   # the buildbot.
   'compiler/alloc-number': [SKIP],
   'regress/regress-490': [SKIP],
-  'regress/regress-634': [SKIP],
   'regress/regress-create-exception': [SKIP],
   'regress/regress-3247124': [SKIP],
 
@@ -702,7 +691,6 @@
   'compiler/regress-3249650': [PASS, SLOW],
   'compiler/simple-deopt': [PASS, SLOW],
   'regress/regress-490': [PASS, SLOW],
-  'regress/regress-634': [PASS, SLOW],
   'regress/regress-create-exception': [PASS, SLOW],
   'regress/regress-3218915': [PASS, SLOW],
   'regress/regress-3247124': [PASS, SLOW],
@@ -722,7 +710,6 @@
   'big-object-literal': [PASS, ['mode == debug', SKIP]],
   'math-floor-of-div': [PASS, ['mode == debug', SKIP]],
   'math-floor-of-div-nosudiv': [PASS, ['mode == debug', SKIP]],
-  'osr-regress-max-locals': [PASS, ['mode == debug', SKIP]],
   'unicodelctest': [PASS, ['mode == debug', SKIP]],
 
   # BUG(v8:3435)
@@ -767,7 +754,6 @@
   'regress/regress-1257': [PASS, NO_VARIANTS],
   'regress/regress-2618': [PASS, NO_VARIANTS],
   'regress/regress-298269': [PASS, NO_VARIANTS],
-  'regress/regress-634': [PASS, NO_VARIANTS],
   'regress/regress-91008': [PASS, NO_VARIANTS],
   'compiler/osr-alignment': [PASS, NO_VARIANTS],
   'compiler/osr-one': [PASS, NO_VARIANTS],
@@ -852,18 +838,23 @@
   # till it is optimized. So test timeouts.
   'array-literal-transitions': [SKIP],
 
-  # 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],
-
   'wasm/asm-wasm-f32': [PASS, ['arch in [arm64]', SKIP]],
   'wasm/asm-wasm-f64': [PASS, ['arch in [arm64]', SKIP]],
 
   # TODO(rmcilroy,titzer): Times out after
   # https://codereview.chromium.org/1951013002 .
   'regress/regress-599717': [PASS, ['tsan', SKIP]],
+
+  # TODO(rmcilroy,5038): Crashes in Deoptimizer::PatchCodeForDeoptimization on
+  # nosnap builds when --stress-opt and --turbo-from-bytecode is enabled.
+  'harmony/generators-turbo': [PASS, FAST_VARIANTS],
+  'regress/regress-crbug-352058': [SKIP],
+
+  # TODO(jarin): No truncations on CheckFloat64Hole.
+  'getters-on-elements': [SKIP],
+
+  # TODO(rmcilroy): Flaky OOM.
+  'unicodelctest-no-optimization': [SKIP],
 }],  # ignition or ignition_turbofan
 
 ['(ignition or ignition_turbofan) and arch == arm64', {
diff --git a/test/mjsunit/object-literal.js b/test/mjsunit/object-literal.js
index 19860ff..b861d44 100644
--- a/test/mjsunit/object-literal.js
+++ b/test/mjsunit/object-literal.js
@@ -24,8 +24,6 @@
 // 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-function-name
 
 var obj = {
     a: 7,
diff --git a/test/mjsunit/realm-property-access.js b/test/mjsunit/realm-property-access.js
new file mode 100644
index 0000000..679886d
--- /dev/null
+++ b/test/mjsunit/realm-property-access.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.
+
+var r = Realm.create();
+var f = Realm.eval(r, "function f() { return this }; f()");
+assertEquals(f, Realm.global(r));
+
+// Cross-origin property access throws
+assertThrows(() => f.a, TypeError);
+assertThrows(() => { 'use strict'; f.a = 1 }, TypeError);
+
+var r2 = Realm.createAllowCrossRealmAccess();
+var f2 = Realm.eval(r2, "function f() { return this }; f()");
+assertEquals(f2, Realm.global(r2));
+
+// Same-origin property access doesn't throw
+assertEquals(undefined, f2.a);
+f2.a = 1;
+assertEquals(1, f2.a);
diff --git a/test/mjsunit/regexp-string-methods.js b/test/mjsunit/regexp-string-methods.js
index fa01a33..d5ad9c3 100644
--- a/test/mjsunit/regexp-string-methods.js
+++ b/test/mjsunit/regexp-string-methods.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: --no-harmony-regexp-exec
-
 // Regexp shouldn't use String.prototype.slice()
 var s = new String("foo");
 assertEquals("f", s.slice(0,1));
@@ -43,11 +41,3 @@
 var f2 = new RegExp("[g]", "i");
 assertEquals(["G"], f2.exec("G"));
 assertTrue(f2.ignoreCase);
-
-// On the other hand test is defined in a semi-coherent way as a call to exec.
-// 15.10.6.3
-// We match other browsers in using the original value of RegExp.prototype.exec.
-// I.e., RegExp.prototype.test shouldn't use the current value of
-// RegExp.prototype.exec.
-RegExp.prototype.exec = function(string) { return 'x'; };
-assertFalse(/f/.test('x'));
diff --git a/test/mjsunit/regress/regress-449070.js b/test/mjsunit/regress-crbug-619476.js
similarity index 61%
rename from test/mjsunit/regress/regress-449070.js
rename to test/mjsunit/regress-crbug-619476.js
index 7a0f0a8..33204ae 100644
--- a/test/mjsunit/regress/regress-449070.js
+++ b/test/mjsunit/regress-crbug-619476.js
@@ -1,10 +1,7 @@
 // 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: --allow-natives-syntax
 
-try {
-  %NormalizeElements(this);
-} catch(e) {
-}
+var x = {};
+// Crashes in debug mode if an erroneous DCHECK in dfb8d333 is not removed.
+eval, x[eval];
diff --git a/test/mjsunit/regress/redeclaration-error-types.js b/test/mjsunit/regress/redeclaration-error-types.js
new file mode 100644
index 0000000..72e097d
--- /dev/null
+++ b/test/mjsunit/regress/redeclaration-error-types.js
@@ -0,0 +1,145 @@
+// 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 doTest(scripts, expectedError) {
+  var realm = Realm.create();
+
+  for (var i = 0; i < scripts.length - 1; i++) {
+    Realm.eval(realm, scripts[i]);
+  }
+  assertThrows(function() {
+    Realm.eval(realm, scripts[scripts.length - 1]);
+  }, Realm.eval(realm, expectedError));
+
+  Realm.dispose(realm);
+}
+
+var tests = [
+  {
+    // ES#sec-globaldeclarationinstantiation 5.a:
+    // If envRec.HasVarDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    scripts: [
+      "var a;",
+      "let a;",
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-globaldeclarationinstantiation 6.a:
+    // If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    scripts: [
+      "let a;",
+      "var a;",
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-globaldeclarationinstantiation 5.b:
+    // If envRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    scripts: [
+      "let a;",
+      "let a;",
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 5.a.i.1:
+    // If varEnvRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    scripts: [
+      'let a; eval("var a;");',
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 5.a.i.1:
+    // If varEnvRec.HasLexicalDeclaration(name) is true, throw a SyntaxError
+    // exception.
+    scripts: [
+      'let a; eval("function a() {}");',
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 5.d.ii.2.a.i:
+    // Throw a SyntaxError exception.
+    scripts: [
+      '(function() { let a; eval("var a;"); })();',
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 5.d.ii.2.a.i:
+    // Throw a SyntaxError exception.
+    scripts: [
+      '(function() { let a; eval("function a() {}"); })();',
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-globaldeclarationinstantiation 5.d:
+    // If hasRestrictedGlobal is true, throw a SyntaxError exception.
+    scripts: [
+      'let NaN;',
+    ],
+    expectedError: "SyntaxError",
+  },
+  {
+    // ES#sec-globaldeclarationinstantiation 5.d:
+    // If hasRestrictedGlobal is true, throw a SyntaxError exception.
+    scripts: [
+      'function NaN() {}',
+    ],
+    expectedError: "SyntaxError",
+  },
+
+  {
+    // ES#sec-evaldeclarationinstantiation 8.a.iv.1.b:
+    // If fnDefinable is false, throw a TypeError exception.
+    scripts: [
+      'eval("function NaN() {}");',
+    ],
+    expectedError: "TypeError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 8.a.iv.1.b:
+    // If fnDefinable is false, throw a TypeError exception.
+    scripts: [
+      `
+        let a;
+        try {
+          eval("function a() {}");
+        } catch (e) {}
+        eval("function NaN() {}");
+      `,
+    ],
+    expectedError: "TypeError",
+  },
+  {
+    // ES#sec-evaldeclarationinstantiation 8.a.iv.1.b:
+    // If fnDefinable is false, throw a TypeError exception.
+    scripts: [
+      `
+        eval("
+          function f() {
+            function b() {
+              (0, eval)('function NaN() {}');
+            }
+            b();
+          }
+          f();
+        ");
+      `.replace(/"/g, '`'),
+    ],
+    expectedError: "TypeError",
+  },
+];
+
+tests.forEach(function(test) {
+  doTest(test.scripts, test.expectedError);
+});
diff --git a/test/mjsunit/regress/regress-1132.js b/test/mjsunit/regress/regress-1132.js
index a5cb0a1..adb56b0 100644
--- a/test/mjsunit/regress/regress-1132.js
+++ b/test/mjsunit/regress/regress-1132.js
@@ -28,7 +28,7 @@
 // Test the case when exception is thrown from the parser when lazy
 // compiling a function.
 
-// Flags: --stack-size=46
+// Flags: --stack-size=100
 // NOTE: stack size constant above has been empirically chosen.
 // If the test starts to fail in Genesis, consider increasing this constant.
 
diff --git a/test/mjsunit/regress/regress-1246.js b/test/mjsunit/regress/regress-1246.js
deleted file mode 100644
index ca425ec..0000000
--- a/test/mjsunit/regress/regress-1246.js
+++ /dev/null
@@ -1,82 +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.
-
-// This regression tests the behaviour of the parseInt function when
-// the given radix is not a SMI.
-
-// Flags: --allow-natives-syntax
-
-var nonSmi10 = Math.log(Math.exp(10));
-var nonSmi16 = Math.log(Math.exp(16));
-
-assertTrue(!%_IsSmi(nonSmi10) && nonSmi10 == 10);
-assertTrue(!%_IsSmi(nonSmi16) && nonSmi16 == 16);
-
-// Giving these values as the radix argument triggers radix detection.
-var radix_detect = [0, -0, NaN, Infinity, -Infinity, undefined, null,
-                    "0", "-0", "a"];
-
-// These values will result in an integer radix outside of the valid range.
-var radix_invalid = [1, 37, -2, "-2", "37"];
-
-// These values will trigger decimal parsing.
-var radix10 = [10, 10.1, "10", "10.1", nonSmi10];
-
-// These values will trigger hexadecimal parsing.
-var radix16 = [16, 16.1, 0x10, "0X10", nonSmi16];
-
-for (var i = 0; i < radix_detect.length; i++) {
-  var radix = radix_detect[i];
-  assertEquals(NaN, parseInt("", radix));
-  assertEquals(23, parseInt("23", radix));
-  assertEquals(0xaf, parseInt("0xaf", radix));
-  assertEquals(NaN, parseInt("af", radix));
-}
-
-for (var i = 0; i < radix_invalid.length; i++) {
-  var radix = radix_invalid[i];
-  assertEquals(NaN, parseInt("", radix));
-  assertEquals(NaN, parseInt("23", radix));
-  assertEquals(NaN, parseInt("0xaf", radix));
-  assertEquals(NaN, parseInt("af", radix));
-}
-
-for (var i = 0; i < radix10.length; i++) {
-  var radix = radix10[i];
-  assertEquals(NaN, parseInt("", radix));
-  assertEquals(23, parseInt("23", radix));
-  assertEquals(0, parseInt("0xaf", radix));
-  assertEquals(NaN, parseInt("af", radix));
-}
-
-for (var i = 0; i < radix16.length; i++) {
-  var radix = radix16[i];
-  assertEquals(NaN, parseInt("", radix));
-  assertEquals(0x23, parseInt("23", radix));
-  assertEquals(0xaf, parseInt("0xaf", radix));
-  assertEquals(0xaf, parseInt("af", radix));
-}
diff --git a/test/mjsunit/regress/regress-403292.js b/test/mjsunit/regress/regress-403292.js
deleted file mode 100644
index 2e24d48..0000000
--- a/test/mjsunit/regress/regress-403292.js
+++ /dev/null
@@ -1,55 +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: --allow-natives-syntax --expose-natives-as=builtins --expose-gc
-
-var SetIterator = builtins.ImportNow("SetIterator");
-var MapIterator = builtins.ImportNow("MapIterator");
-var __v_7 = [];
-var __v_8 = {};
-var __v_10 = {};
-var __v_11 = this;
-var __v_12 = {};
-var __v_13 = {};
-var __v_14 = "";
-var __v_15 = {};
-try {
-__v_1 = {x:0};
-%OptimizeFunctionOnNextCall(__f_1);
-assertEquals("good", __f_1());
-delete __v_1.x;
-assertEquals("good", __f_1());
-} catch(e) { print("Caught: " + e); }
-try {
-__v_3 = new Set();
-__v_5 = new SetIterator(__v_3, -12);
-__v_4 = new Map();
-__v_6 = new MapIterator(__v_4, 2);
-__f_3(Array);
-} catch(e) { print("Caught: " + e); }
-function __f_4(__v_8, filter) {
-  function __f_6(v) {
-    for (var __v_4 in v) {
-      for (var __v_4 in v) {}
-    }
-    %OptimizeFunctionOnNextCall(filter);
-    return filter(v);
-  }
-  var __v_7 = eval(__v_8);
-  gc();
-  return __f_6(__v_7);
-}
-function __f_5(__v_6) {
-  var __v_5 = new Array(__v_6);
-  for (var __v_4 = 0; __v_4 < __v_6; __v_4++) __v_5.push('{}');
-  return __v_5;
-}
-try {
-try {
-  __v_8.test("\x80");
-  assertUnreachable();
-} catch (e) {
-}
-gc();
-} catch(e) { print("Caught: " + e); }
diff --git a/test/mjsunit/regress/regress-4659.js b/test/mjsunit/regress/regress-4659.js
index ff436be..8992bb8 100644
--- a/test/mjsunit/regress/regress-4659.js
+++ b/test/mjsunit/regress/regress-4659.js
@@ -1,8 +1,6 @@
 // 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-function-name
 
 var obj = {
   get longerName(){
diff --git a/test/mjsunit/regress/regress-4665-2.js b/test/mjsunit/regress/regress-4665-2.js
deleted file mode 100644
index b94301e..0000000
--- a/test/mjsunit/regress/regress-4665-2.js
+++ /dev/null
@@ -1,33 +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-species
-
-// First test case
-
-function FirstBuffer () {}
-FirstBuffer.prototype.__proto__ = Uint8Array.prototype
-FirstBuffer.__proto__ = Uint8Array
-
-var buf = new Uint8Array(10)
-buf.__proto__ = FirstBuffer.prototype
-
-var buf2 = buf.subarray(2)
-assertEquals(8, buf2.length);
-
-// Second test case
-
-function SecondBuffer (arg) {
-  var arr = new Uint8Array(arg)
-  arr.__proto__ = SecondBuffer.prototype
-  return arr
-}
-SecondBuffer.prototype.__proto__ = Uint8Array.prototype
-SecondBuffer.__proto__ = Uint8Array
-
-var buf3 = new SecondBuffer(10)
-
-var buf4 = buf3.subarray(2)
-
-assertEquals(8, buf4.length);
diff --git a/test/mjsunit/regress/regress-4665.js b/test/mjsunit/regress/regress-4665.js
index 9d7307a..a75d68f 100644
--- a/test/mjsunit/regress/regress-4665.js
+++ b/test/mjsunit/regress/regress-4665.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: --noharmony-species
-
 // First test case
 
 function FirstBuffer () {}
diff --git a/test/mjsunit/regress/regress-4703.js b/test/mjsunit/regress/regress-4703.js
new file mode 100644
index 0000000..dad8a97
--- /dev/null
+++ b/test/mjsunit/regress/regress-4703.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
+
+function listener(event, exec_state, event_data, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    var all_scopes = exec_state.frame().allScopes();
+    assertEquals([ debug.ScopeType.Block,
+                   debug.ScopeType.Local,
+                   debug.ScopeType.Script,
+                   debug.ScopeType.Global ],
+                 all_scopes.map(scope => scope.scopeType()));
+  } catch (e) {
+    exception = e;
+  }
+}
+
+debug.Debug.setListener(listener);
+
+(function(arg, ...rest) {
+  var one = 1;
+  function inner() {
+    one;
+    arg;
+  }
+  debugger;
+})();
diff --git a/test/mjsunit/regress/regress-4815.js b/test/mjsunit/regress/regress-4815.js
new file mode 100644
index 0000000..00e61cb
--- /dev/null
+++ b/test/mjsunit/regress/regress-4815.js
@@ -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.
+
+var thrower = { [Symbol.toPrimitive]: () => FAIL };
+
+// Tests that a native conversion function is included in the
+// stack trace.
+function testTraceNativeConversion(nativeFunc) {
+  var nativeFuncName = nativeFunc.name;
+  try {
+    nativeFunc(thrower);
+    assertUnreachable(nativeFuncName);
+  } catch (e) {
+    assertTrue(e.stack.indexOf(nativeFuncName) >= 0, nativeFuncName);
+  }
+}
+
+testTraceNativeConversion(Math.max);
+testTraceNativeConversion(Math.min);
+
+function testBuiltinInStackTrace(script, nativeFuncName) {
+  try {
+    eval(script);
+    assertUnreachable(nativeFuncName);
+  } catch (e) {
+    assertTrue(e.stack.indexOf(nativeFuncName) >= 0, nativeFuncName);
+  }
+}
+
+// Use the full name ('String.getDate') in order to avoid false pass
+// results when the method name is mentioned in the error message itself.
+// This occurs, e.g., for Date.prototype.getYear, which uses a different code
+// path and never hits the Generate_DatePrototype_GetField builtin.
+testBuiltinInStackTrace("Date.prototype.getDate.call('')", "String.getDate");
+testBuiltinInStackTrace("Date.prototype.getUTCDate.call('')",
+                        "String.getUTCDate");
+testBuiltinInStackTrace("Date.prototype.getTime.call('')", "String.getTime");
diff --git a/test/mjsunit/regress/regress-5004.js b/test/mjsunit/regress/regress-5004.js
new file mode 100644
index 0000000..234f5d4
--- /dev/null
+++ b/test/mjsunit/regress/regress-5004.js
@@ -0,0 +1,27 @@
+// 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: --allow-natives-syntax
+
+function assertAsync(b, s) {
+  if (!b) {
+    %AbortJS(" FAILED!")
+  }
+}
+
+class P extends Promise {
+  constructor() {
+    super(...arguments)
+    return new Proxy(this, {
+      get: (_, key) => {
+        return key == 'then' ?
+            this.then.bind(this) :
+            this.constructor.resolve(20)
+      }
+    })
+  }
+}
+
+let p = P.resolve(10)
+p.key.then(v => assertAsync(v === 20));
diff --git a/test/mjsunit/regress/regress-5018.js b/test/mjsunit/regress/regress-5018.js
new file mode 100644
index 0000000..22025dc
--- /dev/null
+++ b/test/mjsunit/regress/regress-5018.js
@@ -0,0 +1,29 @@
+// 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 dv = new DataView(new ArrayBuffer(4), 2);
+
+function getByteLength(a) {
+  return a.byteLength;
+}
+
+assertEquals(2, getByteLength(dv));
+assertEquals(2, getByteLength(dv));
+
+Object.defineProperty(dv.__proto__, 'byteLength', {value: 42});
+
+assertEquals(42, dv.byteLength);
+assertEquals(42, getByteLength(dv));
+
+function getByteOffset(a) {
+  return a.byteOffset;
+}
+
+assertEquals(2, getByteOffset(dv));
+assertEquals(2, getByteOffset(dv));
+
+Object.defineProperty(dv.__proto__, 'byteOffset', {value: 42});
+
+assertEquals(42, dv.byteOffset);
+assertEquals(42, getByteOffset(dv));
diff --git a/test/mjsunit/regress/regress-5036.js b/test/mjsunit/regress/regress-5036.js
index 036edd9..77bd242 100644
--- a/test/mjsunit/regress/regress-5036.js
+++ b/test/mjsunit/regress/regress-5036.js
@@ -2,6 +2,4 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-// Flags: --harmony-unicode-regexps
-
 assertEquals(["1\u212a"], /\d\w/ui.exec("1\u212a"));
diff --git a/test/mjsunit/regress/regress-5071.js b/test/mjsunit/regress/regress-5071.js
new file mode 100644
index 0000000..41c1250
--- /dev/null
+++ b/test/mjsunit/regress/regress-5071.js
@@ -0,0 +1,26 @@
+// 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) {
+  assertEquals(2, exec_state.frameCount());
+  assertEquals("a", exec_state.frame(0).localName(0));
+  assertEquals("1", exec_state.frame(0).localValue(0).value());
+  assertEquals(1, exec_state.frame(0).localCount());
+}
+
+Debug.setListener(listener);
+
+function f() {
+  var a = 1;
+  {
+    let b = 2;
+    debugger;
+  }
+}
+
+f();
diff --git a/test/mjsunit/regress/regress-5085.js b/test/mjsunit/regress/regress-5085.js
new file mode 100644
index 0000000..0ed034d
--- /dev/null
+++ b/test/mjsunit/regress/regress-5085.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: --allow-natives-syntax
+
+function foo(x) {
+  return x instanceof Proxy;
+}
+
+assertFalse(foo({}));
+assertFalse(foo({}));
+%OptimizeFunctionOnNextCall(foo);
+assertFalse(foo({}));
diff --git a/test/mjsunit/regress/regress-5106.js b/test/mjsunit/regress/regress-5106.js
new file mode 100644
index 0000000..52d550a
--- /dev/null
+++ b/test/mjsunit/regress/regress-5106.js
@@ -0,0 +1,29 @@
+// 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* g1() {
+  try {
+    throw {};
+  } catch ({a = class extends (yield) {}}) {
+  }
+}
+g1().next();  // crashes without fix
+
+function* g2() {
+  let x = function(){};
+  try {
+    throw {};
+  } catch ({b = class extends x {}}) {
+  }
+}
+g2().next();  // crashes without fix
+
+function* g3() {
+  let x = 42;
+  try {
+    throw {};
+  } catch ({c = (function() { return x })()}) {
+  }
+}
+g3().next();  // throws a ReferenceError without fix
diff --git a/test/mjsunit/regress/regress-5174.js b/test/mjsunit/regress/regress-5174.js
new file mode 100644
index 0000000..390d24e
--- /dev/null
+++ b/test/mjsunit/regress/regress-5174.js
@@ -0,0 +1,6 @@
+// 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.
+
+assertEquals([], Object.keys(new Proxy([], {})));
+assertEquals([], Object.keys(new Proxy(/regex/, {})));
diff --git a/test/mjsunit/regress/regress-544991.js b/test/mjsunit/regress/regress-544991.js
index 911d8ac..a9fd809 100644
--- a/test/mjsunit/regress/regress-544991.js
+++ b/test/mjsunit/regress/regress-544991.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-species
-
 'use strict';
 
 var typedArray = new Int8Array(1);
diff --git a/test/mjsunit/regress/regress-612146.js b/test/mjsunit/regress/regress-612146.js
new file mode 100644
index 0000000..1bd3f0b
--- /dev/null
+++ b/test/mjsunit/regress/regress-612146.js
@@ -0,0 +1,33 @@
+// 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() {
+  var arguments_ = arguments;
+  if (undefined) {
+    while (true) {
+      arguments_[0];
+    }
+  } else {
+    %DeoptimizeNow();
+    return arguments_[0];
+  }
+};
+
+f(0);
+f(0);
+%OptimizeFunctionOnNextCall(f);
+assertEquals(1, f(1));
+
+function g() {
+    var a = arguments;
+    %DeoptimizeNow();
+    return a.length;
+}
+
+g(1);
+g(1);
+%OptimizeFunctionOnNextCall(g);
+assertEquals(1, g(1));
diff --git a/test/mjsunit/regress/regress-612412.js b/test/mjsunit/regress/regress-612412.js
new file mode 100644
index 0000000..3debe66
--- /dev/null
+++ b/test/mjsunit/regress/regress-612412.js
@@ -0,0 +1,20 @@
+// 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: --allow-natives-syntax
+
+function counter() { return {x: 0} || this }
+
+var f = (function() {
+  "use asm";
+  return function g(c1, c2) {
+    for (var x = 0 ; x < 10; ++x) {
+      if (x == 5) %OptimizeOsr();
+      c1();
+    }
+  }
+})();
+
+g = (function() { f((Array), counter()); });
+g();
diff --git a/test/mjsunit/regress/regress-615776.js b/test/mjsunit/regress/regress-615776.js
new file mode 100644
index 0000000..7e89b56
--- /dev/null
+++ b/test/mjsunit/regress/regress-615776.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.
+
+Object.defineProperty(Int32Array.prototype.__proto__, 'length', {
+  get: function() { throw new Error('Custom length property'); }
+});
+
+var a = Math.random();
+
+// This tests MathRandomRaw.
+var v0 = new Set();
+var v1 = new Object();
+v0.add(v1);
diff --git a/test/mjsunit/regress/regress-617525.js b/test/mjsunit/regress/regress-617525.js
new file mode 100644
index 0000000..bb77e06
--- /dev/null
+++ b/test/mjsunit/regress/regress-617525.js
@@ -0,0 +1,11 @@
+// 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_14() {
+  "use asm";
+  function __f_15() { return 0; }
+  function __f_15() { return 137; }  // redeclared function
+  return {};
+}
+assertThrows(function() { Wasm.instantiateModuleFromAsm(__f_14.toString()) });
diff --git a/test/mjsunit/regress/regress-617529.js b/test/mjsunit/regress/regress-617529.js
new file mode 100644
index 0000000..415e6c7
--- /dev/null
+++ b/test/mjsunit/regress/regress-617529.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 __f_71(stdlib, buffer) {
+  "use asm";
+  var __v_22 = new stdlib.Float64Array(buffer);
+  function __f_26() {
+    __v_22 = __v_22;
+  }
+  return {__f_26: __f_26};
+}
+
+assertThrows(function() { Wasm.instantiateModuleFromAsm( __f_71.toString()); });
diff --git a/test/mjsunit/regress/regress-618657.js b/test/mjsunit/regress/regress-618657.js
new file mode 100644
index 0000000..2882cff
--- /dev/null
+++ b/test/mjsunit/regress/regress-618657.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: --ignition --ignition-generators --ignition-filter=-foo
+
+function* foo() { yield 42 }
+function* goo() { yield 42 }
+var f = foo();
+var g = goo();
+assertEquals(42, f.next().value);
+assertEquals(42, g.next().value);
+assertEquals(true, f.next().done);
+assertEquals(true, g.next().done);
diff --git a/test/mjsunit/regress/regress-620750.js b/test/mjsunit/regress/regress-620750.js
new file mode 100644
index 0000000..ab8fbd9
--- /dev/null
+++ b/test/mjsunit/regress/regress-620750.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: --es-staging
+
+function push_a_lot(arr) {
+  for (var i = 0; i < 2e4; i++) {
+    arr.push(i);
+  }
+  return arr;
+}
+
+__v_13 = push_a_lot([]);
diff --git a/test/mjsunit/regress/regress-622663.js b/test/mjsunit/regress/regress-622663.js
new file mode 100644
index 0000000..9606bd8
--- /dev/null
+++ b/test/mjsunit/regress/regress-622663.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: --no-lazy
+
+(function() {
+  try { (y = [...[]]) => {} } catch(_) {}  // will core dump, if not fixed
+})();
+
+(function() {
+  try { ((y = [...[]]) => {})(); } catch(_) {}  // will core dump, if not fixed,
+                                                // even without --no-lazy
+})();
diff --git a/test/mjsunit/regress/regress-crbug-320922.js b/test/mjsunit/regress/regress-crbug-320922.js
deleted file mode 100644
index f199628..0000000
--- a/test/mjsunit/regress/regress-crbug-320922.js
+++ /dev/null
@@ -1,50 +0,0 @@
-// Copyright 2013 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: --allow-natives-syntax
-
-var string = "internalized dummy";
-var expected = "internalized dummy";
-string = "hello world";
-expected = "Hello " + "world";
-function Capitalize() {
-  %_OneByteSeqStringSetChar(0, 0x48, string);
-}
-Capitalize();
-assertEquals(expected, string);
-Capitalize();
-assertEquals(expected, string);
-
-var twobyte = "\u20ACello world";
-
-function TwoByteCapitalize() {
-  %_TwoByteSeqStringSetChar(0, 0x48, twobyte);
-}
-TwoByteCapitalize();
-assertEquals(expected, twobyte);
-TwoByteCapitalize();
-assertEquals(expected, twobyte);
diff --git a/test/mjsunit/regress/regress-crbug-495493.js b/test/mjsunit/regress/regress-crbug-495493.js
new file mode 100644
index 0000000..3dba236
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-495493.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: --nofold-constants --enable-slow-asserts --debug-code
+
+function foo(p) {
+  for (var i = 0; i < 100000; ++i) {
+    p = Math.min(-1, 0);
+  }
+}
+foo(0);
diff --git a/test/mjsunit/regress/regress-crbug-498142.js b/test/mjsunit/regress/regress-crbug-498142.js
deleted file mode 100644
index fcec5d1..0000000
--- a/test/mjsunit/regress/regress-crbug-498142.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: --allow-natives-syntax --harmony-sharedarraybuffer
-
-var sab = new SharedArrayBuffer(16);
-assertThrows(function() { %ArrayBufferNeuter(sab); });
diff --git a/test/mjsunit/regress/regress-crbug-600995.js b/test/mjsunit/regress/regress-crbug-600995.js
deleted file mode 100644
index c532608..0000000
--- a/test/mjsunit/regress/regress-crbug-600995.js
+++ /dev/null
@@ -1,10 +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: --noharmony-iterator-close
-
-// The {Set} function will produce a different type feedback vector layout
-// depending on whether Harmony iterator finalization is enabled or not.
-
-new Set();
diff --git a/test/mjsunit/regress/regress-crbug-605862.js b/test/mjsunit/regress/regress-crbug-605862.js
index 3124c06..82a5d45 100644
--- a/test/mjsunit/regress/regress-crbug-605862.js
+++ b/test/mjsunit/regress/regress-crbug-605862.js
@@ -2,7 +2,5 @@
 // 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-612109.js b/test/mjsunit/regress/regress-crbug-612109.js
new file mode 100644
index 0000000..202bd96
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-612109.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.
+
+
+s = "string for triggering osr in __f_0";
+for (var i = 0; i < 16; i++) s = s + s;
+decodeURI(encodeURI(s));
diff --git a/test/mjsunit/regress/regress-crbug-613494.js b/test/mjsunit/regress/regress-crbug-613494.js
new file mode 100644
index 0000000..6fcc1e9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-613494.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: --allow-natives-syntax --turbo-escape --noanalyze-environment-liveness
+
+function f() {
+  var bound = 0;
+  function g() { return bound }
+}
+f();
+f();
+%OptimizeFunctionOnNextCall(f);
+f();
diff --git a/test/mjsunit/regress/regress-crbug-613570.js b/test/mjsunit/regress/regress-crbug-613570.js
new file mode 100644
index 0000000..3cd9857
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-613570.js
@@ -0,0 +1,6 @@
+// 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.
+
+assertEquals("[\n\u26031,\n\u26032\n]",
+             JSON.stringify([1, 2], null, "\u2603"));
diff --git a/test/mjsunit/regress/regress-crbug-613905.js b/test/mjsunit/regress/regress-crbug-613905.js
new file mode 100644
index 0000000..8bb38c9
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-613905.js
@@ -0,0 +1,11 @@
+// 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 = (e,s) => s;
+var CallSiteConstructor = Error().stack[0].constructor;
+
+try {
+  (new CallSiteConstructor(3, 6)).toString();
+} catch (e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-613919.js b/test/mjsunit/regress/regress-crbug-613919.js
new file mode 100644
index 0000000..cbd3e43
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-613919.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: --allow-natives-syntax --turbo-escape
+
+function g(a) {
+  if (a) return arguments;
+  %DeoptimizeNow();
+  return 23;
+}
+function f() {
+  return g(false);
+}
+assertEquals(23, f());
+assertEquals(23, f());
+%OptimizeFunctionOnNextCall(f);
+assertEquals(23, f());
diff --git a/test/mjsunit/regress/regress-crbug-614292.js b/test/mjsunit/regress/regress-crbug-614292.js
new file mode 100644
index 0000000..3a67c17
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-614292.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: --allow-natives-syntax
+
+function foo() {
+  return [] | 0 && values[0] || false;
+}
+
+%OptimizeFunctionOnNextCall(foo);
+try {
+  foo();
+} catch (e) {}
diff --git a/test/mjsunit/regress/regress-crbug-614727.js b/test/mjsunit/regress/regress-crbug-614727.js
new file mode 100644
index 0000000..0845afc
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-614727.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.
+
+"use strict";
+
+function f(a, b, c) { return arguments }
+function g(...args) { return args }
+
+// On 64-bit machine this produces a 768K array which is sufficiently small to
+// not cause a stack overflow, but big enough to move the allocated arguments
+// object into large object space (kMaxRegularHeapObjectSize == 600K).
+var length = Math.pow(2, 15) * 3;
+var args = new Array(length);
+assertEquals(length, f.apply(null, args).length);
+assertEquals(length, g.apply(null, args).length);
+
+// On 32-bit machines this produces an equally sized array, however it might in
+// turn trigger a stack overflow on 64-bit machines, which we need to catch.
+var length = Math.pow(2, 16) * 3;
+var args = new Array(length);
+try { f.apply(null, args) } catch(e) {}
+try { g.apply(null, args) } catch(e) {}
diff --git a/test/mjsunit/regress/regress-crbug-615774.js b/test/mjsunit/regress/regress-crbug-615774.js
new file mode 100644
index 0000000..ea5e675
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-615774.js
@@ -0,0 +1,11 @@
+// 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 = (e,s) => s;
+var CallSiteConstructor = Error().stack[0].constructor;
+
+try {
+  (new CallSiteConstructor(CallSiteConstructor, 6)).toString();
+} catch (e) {
+}
diff --git a/test/mjsunit/regress/regress-crbug-617527.js b/test/mjsunit/regress/regress-crbug-617527.js
new file mode 100644
index 0000000..cf46628
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-617527.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: --enable-slow-asserts
+
+Object.defineProperty(Array.prototype, "1", { get: toLocaleString });
+assertThrows(_ => new RegExp(0, 0));
diff --git a/test/mjsunit/regress/regress-crbug-617567.js b/test/mjsunit/regress/regress-crbug-617567.js
new file mode 100644
index 0000000..f0c696e
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-617567.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: --turbo-filter=* --allow-natives-syntax
+
+var v1 = {};
+function g() {
+  v1 = [];
+  for (var i = 0; i < 1; i++) {
+    v1[i]();
+  }
+}
+
+var v2 = {};
+var v3 = {};
+function f() {
+  v3 = v2;
+  g();
+}
+
+assertThrows(g);
+%OptimizeFunctionOnNextCall(f);
+assertThrows(f);
diff --git a/test/mjsunit/regress/regress-crbug-618788.js b/test/mjsunit/regress/regress-crbug-618788.js
new file mode 100644
index 0000000..a104d8d
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-618788.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.
+
+// Slice and splice both try to set the length property of their return
+// value. Add a bogus setter to allow that.
+Object.defineProperty(Int32Array.prototype, 'length', { set(v) { } });
+
+(function testSlice() {
+  var a = new Array();
+  a.constructor = Int32Array;
+  a.length = 1000; // Make the length >= 1000 so UseSparseVariant returns true.
+  assertTrue(a.slice() instanceof Int32Array);
+})();
+
+(function testSplice() {
+  var a = new Array();
+  a.constructor = Int32Array;
+  a.length = 1000; // Make the length >= 1000 so UseSparseVariant returns true.
+  assertTrue(a.splice(1) instanceof Int32Array);
+})();
diff --git a/test/mjsunit/regress/regress-crbug-618845.js b/test/mjsunit/regress/regress-crbug-618845.js
new file mode 100644
index 0000000..ea3baba
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-618845.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: --allow-natives-syntax
+
+function Foo() {}
+Object.defineProperty(Foo.prototype, "name",
+                      {get: function() { return "FooName"; }});
+
+function ic(f) {
+  return f.prototype.name;
+}
+
+assertEquals("FooName", ic(Foo));
+assertEquals("FooName", ic(Foo));  // Don't crash, don't time out.
diff --git a/test/mjsunit/regress/regress-crbug-620253.js b/test/mjsunit/regress/regress-crbug-620253.js
new file mode 100644
index 0000000..811a4e7
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-620253.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: --throws
+
+load("test/mjsunit/regress/regress-crbug-620253.js");
diff --git a/test/mjsunit/regress/regress-crbug-620650.js b/test/mjsunit/regress/regress-crbug-620650.js
new file mode 100644
index 0000000..25a92ca
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-620650.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() {
+  function f(src, dst, i) {
+    dst[i] = src[i];
+  }
+  var buf = new ArrayBuffer(16);
+  var view_int32 = new Int32Array(buf);
+  view_int32[1] = 0xFFF7FFFF;
+  var view_f64 = new Float64Array(buf);
+  var arr = [,0.1];
+  f(view_f64, arr, -1);
+  f(view_f64, arr, 0);
+})();
diff --git a/test/mjsunit/regress/regress-crbug-621361.js b/test/mjsunit/regress/regress-crbug-621361.js
new file mode 100644
index 0000000..f9496ae
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-621361.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.
+
+// Flags: --expose-debug-as debug
+
+var Debug = debug.Debug;
+var steps = 0;
+var exception = null;
+
+function listener(event, execState, eventData, data) {
+  if (event != Debug.DebugEvent.Break) return;
+  try {
+    assertEquals([ debug.ScopeType.Local,
+                   debug.ScopeType.Script,
+                   debug.ScopeType.Global],
+                 execState.frame().allScopes().map(s => s.scopeType()));
+    var x_value = execState.frame().evaluate("x").value();
+    if (steps < 2) {
+      assertEquals(undefined, x_value);
+      execState.prepareStep(Debug.StepAction.StepIn);
+    } else {
+      assertEquals("l => l", x_value.toString());
+    }
+    steps++;
+  } catch (e) {
+    exception = e;
+  }
+}
+
+Debug.setListener(listener);
+
+(function() {
+  debugger;
+  var x = l => l;
+})();
+
+Debug.setListener(null);
+assertNull(exception);
+assertEquals(3, steps);
diff --git a/test/mjsunit/regress/regress-crbug-621611.js b/test/mjsunit/regress/regress-crbug-621611.js
new file mode 100644
index 0000000..bf9a460
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-621611.js
@@ -0,0 +1,11 @@
+// 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.
+
+assertEquals(Math.E, Math.exp(1));
+assertEquals(Math.LN10, Math.log(10));
+assertEquals(Math.LN2, Math.log(2));
+assertEquals(Math.LOG10E, Math.log10(Math.E));
+assertEquals(Math.LOG2E, Math.log2(Math.E));
+assertEquals(Math.SQRT1_2, Math.sqrt(0.5));
+assertEquals(Math.SQRT2, Math.sqrt(2));
diff --git a/test/mjsunit/regress/regress-crbug-621816.js b/test/mjsunit/regress/regress-crbug-621816.js
new file mode 100644
index 0000000..ca7f5ac
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-621816.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: --allow-natives-syntax --turbo
+
+function f() {
+  var o = {};
+  o.a = 1;
+}
+function g() {
+  var o = { ['a']: function(){} };
+  f();
+}
+f();
+f();
+%OptimizeFunctionOnNextCall(g);
+g();
diff --git a/test/mjsunit/regress/regress-crbug-633585.js b/test/mjsunit/regress/regress-crbug-633585.js
new file mode 100644
index 0000000..c483e47
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-633585.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 --turbo --always-opt
+
+function f() { this.x = this.x.x; }
+gc();
+f.prototype.x = { x:1 }
+new f();
+new f();
+
+function g() {
+  function h() {};
+  h.prototype = { set x(value) { } };
+  new f();
+}
+g();
diff --git a/test/mjsunit/regress/regress-crbug-642056.js b/test/mjsunit/regress/regress-crbug-642056.js
new file mode 100644
index 0000000..ca9fc78
--- /dev/null
+++ b/test/mjsunit/regress/regress-crbug-642056.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
+
+function f(o) {
+  return o.x instanceof Array;
+}
+
+var o = { x : 1.5 };
+o.x = 0;
+
+f(o);
+f(o);
+%OptimizeFunctionOnNextCall(f);
+f(o);
diff --git a/test/mjsunit/regress/regress-put-prototype-transition.js b/test/mjsunit/regress/regress-put-prototype-transition.js
index 70f0074..c5b4c5a 100644
--- a/test/mjsunit/regress/regress-put-prototype-transition.js
+++ b/test/mjsunit/regress/regress-put-prototype-transition.js
@@ -30,7 +30,7 @@
     __f_4(__v_1);
     assertFalse(%HasFastProperties(__v_1));
     __f_0(__v_1, __v_6);
-    assertTrue(%HasFastProperties(__v_1));
+    assertFalse(%HasFastProperties(__v_1));
   } else {
     __f_0(__v_1, __v_6);
     assertTrue(%HasFastProperties(__v_1));
diff --git a/test/mjsunit/regress/regress-seqstrsetchar-ex1.js b/test/mjsunit/regress/regress-seqstrsetchar-ex1.js
deleted file mode 100644
index 444fe4b..0000000
--- a/test/mjsunit/regress/regress-seqstrsetchar-ex1.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// Copyright 2013 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: --allow-natives-syntax
-
-// stubbed version of ToNumber
-function ToNumber(x) {
-  return 311;
-}
-
-// Reduced version of String.fromCharCode;
-// does not actually do the same calculation but exhibits untagging bug.
-function StringFromCharCode(code) {
-  var n = arguments.length;
-  var one_byte = %NewString(n, true);
-  var i;
-  for (i = 0; i < n; i++) {
-    var code = arguments[i];
-    if (!%_IsSmi(code)) code = ToNumber(code) & 0xffff;
-    if (code > 0xff) break;
-  }
-
-  var two_byte = %NewString(n - i, false);
-  for (var j = 0; i < n; i++, j++) {
-    var code = arguments[i];
-    %_TwoByteSeqStringSetChar(j, code, two_byte);
-  }
-  return one_byte + two_byte;
-}
-
-StringFromCharCode(0xFFF, 0xFFF);
-StringFromCharCode(0x7C, 0x7C);
-%OptimizeFunctionOnNextCall(StringFromCharCode);
-StringFromCharCode(0x7C, 0x7C);
-StringFromCharCode(0xFFF, 0xFFF);
diff --git a/test/mjsunit/regress/regress-seqstrsetchar-ex3.js b/test/mjsunit/regress/regress-seqstrsetchar-ex3.js
deleted file mode 100644
index 0a6b211..0000000
--- a/test/mjsunit/regress/regress-seqstrsetchar-ex3.js
+++ /dev/null
@@ -1,44 +0,0 @@
-// Copyright 2013 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: --allow-natives-syntax
-
-function test() {
-  var string = %NewString(10, true);
-  for (var i = 0; i < 10; i++) {
-    %_OneByteSeqStringSetChar(i, 65, string);
-    %_OneByteSeqStringSetChar(i, 66, string);
-  }
-  for (var i = 0; i < 10; i++) {
-    assertEquals("B", string[i]);
-  }
-}
-
-test();
-test();
-%OptimizeFunctionOnNextCall(test);
-test();
diff --git a/test/mjsunit/regress/regress-string-from-char-code-tonumber.js b/test/mjsunit/regress/regress-string-from-char-code-tonumber.js
new file mode 100644
index 0000000..a02a277
--- /dev/null
+++ b/test/mjsunit/regress/regress-string-from-char-code-tonumber.js
@@ -0,0 +1,26 @@
+// 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 thrower = { [Symbol.toPrimitive]: function() { FAIL } };
+
+function testTrace(func) {
+  try {
+    func(thrower);
+    assertUnreachable();
+  } catch (e) {
+    assertTrue(e.stack.indexOf("fromCharCode") >= 0);
+  }
+}
+
+testTrace(String.fromCharCode);
+
+function foo(x) { return String.fromCharCode(x); }
+
+foo(1);
+foo(2);
+testTrace(foo);
+%OptimizeFunctionOnNextCall(foo);
+testTrace(foo);
diff --git a/test/mjsunit/regress/regress-typedarray-length.js b/test/mjsunit/regress/regress-typedarray-length.js
index a0b9998..0dde61f 100644
--- a/test/mjsunit/regress/regress-typedarray-length.js
+++ b/test/mjsunit/regress/regress-typedarray-length.js
@@ -108,13 +108,13 @@
   assertEquals("blah", get(a));
 })();
 
-// Ensure we cannot delete length, byteOffset, byteLength.
+// Ensure we can delete length, byteOffset, byteLength.
 assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("length"));
 assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteOffset"));
 assertTrue(Int32Array.prototype.__proto__.hasOwnProperty("byteLength"));
-assertFalse(delete Int32Array.prototype.__proto__.length);
-assertFalse(delete Int32Array.prototype.__proto__.byteOffset);
-assertFalse(delete Int32Array.prototype.__proto__.byteLength);
+assertTrue(delete Int32Array.prototype.__proto__.length);
+assertTrue(delete Int32Array.prototype.__proto__.byteOffset);
+assertTrue(delete Int32Array.prototype.__proto__.byteLength);
 
 a = new Int32Array(100);
 
@@ -122,28 +122,28 @@
   return a.length;
 }
 
-assertEquals(100, get(a));
-assertEquals(100, get(a));
-assertEquals(100, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
 %OptimizeFunctionOnNextCall(get);
-assertEquals(100, get(a));
+assertEquals(undefined, get(a));
 
 get = function(a) {
   return a.byteLength;
 }
 
-assertEquals(400, get(a));
-assertEquals(400, get(a));
-assertEquals(400, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
 %OptimizeFunctionOnNextCall(get);
-assertEquals(400, get(a));
+assertEquals(undefined, get(a));
 
 get = function(a) {
   return a.byteOffset;
 }
 
-assertEquals(0, get(a));
-assertEquals(0, get(a));
-assertEquals(0, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
+assertEquals(undefined, get(a));
 %OptimizeFunctionOnNextCall(get);
-assertEquals(0, get(a));
+assertEquals(undefined, get(a));
diff --git a/test/mjsunit/regress/string-set-char-deopt.js b/test/mjsunit/regress/string-set-char-deopt.js
deleted file mode 100644
index 8956e28..0000000
--- a/test/mjsunit/regress/string-set-char-deopt.js
+++ /dev/null
@@ -1,85 +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: --allow-natives-syntax
-
-(function OneByteSeqStringSetCharDeoptOsr() {
-  function deopt() {
-    %DeoptimizeFunction(f);
-  }
-
-  function f(string, osr) {
-    var world = " world";
-    %_OneByteSeqStringSetChar(0, (deopt(), 0x48), string);
-
-    for (var i = 0; osr && i < 2; i++) %OptimizeOsr();
-
-    return string + world;
-  }
-
-  assertEquals("Hello " + "world", f("hello", false));
-  %OptimizeFunctionOnNextCall(f);
-  assertEquals("Hello " + "world", f("hello", true));
-})();
-
-
-(function OneByteSeqStringSetCharDeopt() {
-  function deopt() {
-    %DeoptimizeFunction(f);
-  }
-
-  function g(x) {
-  }
-
-  function f(string) {
-    g(%_OneByteSeqStringSetChar(0, (deopt(), 0x48), string));
-    return string;
-  }
-
-  assertEquals("Hell" + "o", f("hello"));
-  %OptimizeFunctionOnNextCall(f);
-  assertEquals("Hell" + "o", f("hello"));
-})();
-
-
-(function TwoByteSeqStringSetCharDeopt() {
-  function deopt() {
-    %DeoptimizeFunction(f);
-  }
-
-  function g(x) {
-  }
-
-  function f(string) {
-    g(%_TwoByteSeqStringSetChar(0, (deopt(), 0x48), string));
-    return string;
-  }
-
-  assertEquals("Hell" + "o", f("\u20ACello"));
-  %OptimizeFunctionOnNextCall(f);
-  assertEquals("Hell" + "o", f("\u20ACello"));
-})();
diff --git a/test/mjsunit/string-natives.js b/test/mjsunit/string-natives.js
deleted file mode 100644
index 40fe9c6..0000000
--- a/test/mjsunit/string-natives.js
+++ /dev/null
@@ -1,79 +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: --expose-gc --allow-natives-syntax
-
-function test() {
-  var s1 = %NewString(26, true);
-  for (i = 0; i < 26; i++) %_OneByteSeqStringSetChar(i, 65, s1);
-  assertEquals("AAAAAAAAAAAAAAAAAAAAAAAAAA", s1);
-  %_OneByteSeqStringSetChar(25, 66, s1);
-  assertEquals("AAAAAAAAAAAAAAAAAAAAAAAAAB", s1);
-  for (i = 0; i < 26; i++) %_OneByteSeqStringSetChar(i, i+65, s1);
-  assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZ", s1);
-  s1 = %TruncateString(s1, 13);
-  assertEquals("ABCDEFGHIJKLM", s1);
-
-  var s2 = %NewString(26, false);
-  for (i = 0; i < 26; i++) %_TwoByteSeqStringSetChar(i, 65, s2);
-  assertEquals("AAAAAAAAAAAAAAAAAAAAAAAAAA", s2);
-  %_TwoByteSeqStringSetChar(25, 66, s2);
-  assertEquals("AAAAAAAAAAAAAAAAAAAAAAAAAB", s2);
-  for (i = 0; i < 26; i++) %_TwoByteSeqStringSetChar(i, i+65, s2);
-  assertEquals("ABCDEFGHIJKLMNOPQRSTUVWXYZ", s2);
-  s2 = %TruncateString(s2, 13);
-  assertEquals("ABCDEFGHIJKLM", s2);
-
-  var s3 = %NewString(26, false);
-  for (i = 0; i < 26; i++) %_TwoByteSeqStringSetChar(i, i+1000, s3);
-  for (i = 0; i < 26; i++) assertEquals(s3[i], String.fromCharCode(i+1000));
-
-  var a = [];
-  for (var i = 0; i < 1000; i++) {
-    var s = %NewString(10000, i % 2 == 1);
-    a.push(s);
-  }
-
-  gc();
-
-  for (var i = 0; i < 1000; i++) {
-    assertEquals(10000, a[i].length);
-    a[i] = %TruncateString(a[i], 5000);
-  }
-
-  gc();
-
-  for (var i = 0; i < 1000; i++) {
-    assertEquals(5000, a[i].length);
-  }
-}
-
-
-test();
-test();
-%OptimizeFunctionOnNextCall(test);
-test();
diff --git a/test/mjsunit/tools/dumpcpp.js b/test/mjsunit/tools/dumpcpp.js
new file mode 100644
index 0000000..49b4675
--- /dev/null
+++ b/test/mjsunit/tools/dumpcpp.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.
+
+// Load implementations from <project root>/tools.
+// Files: tools/splaytree.js tools/codemap.js tools/csvparser.js
+// Files: tools/consarray.js tools/profile.js tools/profile_view.js
+// Files: tools/logreader.js tools/tickprocessor.js
+// Files: tools/dumpcpp.js
+// Env: TEST_FILE_NAME
+
+(function testProcessSharedLibrary() {
+  var oldLoadSymbols = UnixCppEntriesProvider.prototype.loadSymbols;
+
+  UnixCppEntriesProvider.prototype.loadSymbols = function(libName) {
+    this.symbols = [[
+      '00000100 00000001 t v8::internal::Runtime_StringReplaceRegExpWithString(v8::internal::Arguments)',
+      '00000110 00000001 T v8::internal::Runtime::GetElementOrCharAt(v8::internal::Handle<v8::internal::Object>, unsigned int)',
+      '00000120 00000001 t v8::internal::Runtime_DebugGetPropertyDetails(v8::internal::Arguments)',
+      '00000130 00000001 W v8::internal::RegExpMacroAssembler::CheckPosition(int, v8::internal::Label*)'
+    ].join('\n'), ''];
+  };
+
+  var testCppProcessor = new CppProcessor(new UnixCppEntriesProvider(),
+                                          false, false);
+  testCppProcessor.processSharedLibrary(
+    '/usr/local/google/home/lpy/v8/out/native/d8',
+    0x00000100, 0x00000400, 0);
+
+  var staticEntries = testCppProcessor.codeMap_.getAllStaticEntriesWithAddresses();
+  var total = staticEntries.length;
+  assertEquals(total, 3);
+  assertEquals(staticEntries[0],
+               [288,{size:1,
+                     name:'v8::internal::Runtime_DebugGetPropertyDetails(v8::internal::Arguments)',
+                     type:'CPP',
+                     nameUpdated_:false}
+               ]);
+  assertEquals(staticEntries[1],
+               [272,{size:1,
+                     name:'v8::internal::Runtime::GetElementOrCharAt(v8::internal::Handle<v8::internal::Object>, unsigned int)',
+                     type:'CPP',
+                     nameUpdated_:false}
+               ]);
+  assertEquals(staticEntries[2],
+              [256,{size:1,
+                    name:'v8::internal::Runtime_StringReplaceRegExpWithString(v8::internal::Arguments)',
+                    type:'CPP',
+                    nameUpdated_:false}
+              ]);
+
+  UnixCppEntriesProvider.prototype.loadSymbols = oldLoadSymbols;
+})();
diff --git a/test/mjsunit/wasm/adapter-frame.js b/test/mjsunit/wasm/adapter-frame.js
index 39164c7..e595c3f 100644
--- a/test/mjsunit/wasm/adapter-frame.js
+++ b/test/mjsunit/wasm/adapter-frame.js
@@ -26,12 +26,9 @@
   }
 
   var builder = new WasmModuleBuilder();
-  var sig = new Array();
-  sig.push(args);
-  for (var i = 0; i < args; i++) sig.push(type);
-  sig.push(1);
-  sig.push(type);
-  builder.addFunction("select", sig)
+  var params = [];
+  for (var i = 0; i < args; i++) params.push(type);
+  builder.addFunction("select", makeSig(params, [type]))
     .addBody([kExprGetLocal, which])
     .exportFunc();
 
diff --git a/test/mjsunit/wasm/asm-wasm.js b/test/mjsunit/wasm/asm-wasm.js
index 54d7d7a..4c28b61 100644
--- a/test/mjsunit/wasm/asm-wasm.js
+++ b/test/mjsunit/wasm/asm-wasm.js
@@ -682,6 +682,7 @@
 
 assertWasm(28, TestModDoubleNegative);
 
+
 (function () {
 function TestNamedFunctions() {
   "use asm";
@@ -707,6 +708,7 @@
 assertEquals(77.5, module.add());
 })();
 
+
 (function () {
 function TestGlobalsWithInit() {
   "use asm";
@@ -1358,6 +1360,38 @@
 })();
 
 
+(function TestBadAssignDoubleFromIntish() {
+  function Module(stdlib, foreign, heap) {
+    "use asm";
+    function func() {
+      var a = 1;
+      var b = 3.0;
+      b = a;
+    }
+    return {func: func};
+  }
+  assertThrows(function() {
+    Wasm.instantiateModuleFromAsm(Module.toString());
+  });
+})();
+
+
+(function TestBadAssignIntFromDouble() {
+  function Module(stdlib, foreign, heap) {
+    "use asm";
+    function func() {
+      var a = 1;
+      var b = 3.0;
+      a = b;
+    }
+    return {func: func};
+  }
+  assertThrows(function() {
+    Wasm.instantiateModuleFromAsm(Module.toString());
+  });
+})();
+
+
 (function TestBadMultiplyIntish() {
   function Module(stdlib, foreign, heap) {
     "use asm";
diff --git a/test/mjsunit/wasm/default-func-call.js b/test/mjsunit/wasm/default-func-call.js
new file mode 100644
index 0000000..14567d3
--- /dev/null
+++ b/test/mjsunit/wasm/default-func-call.js
@@ -0,0 +1,56 @@
+// 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: --expose-wasm
+// Flags: --wasm-jit-prototype
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+var module = (function () {
+  var builder = new WasmModuleBuilder();
+
+  var sig_index = builder.addType(kSig_i_ii);
+  builder.addPadFunctionTable(512);
+  builder.addImport("add", sig_index);
+  builder.addFunction("add", sig_index)
+    .addBody([
+      kExprGetLocal, 0, kExprGetLocal, 1, kExprCallImport, kArity2, 0
+    ]);
+  builder.addFunction("sub", sig_index)
+    .addBody([
+      kExprGetLocal, 0,             // --
+      kExprGetLocal, 1,             // --
+      kExprI32Sub,                  // --
+    ]);
+  builder.addFunction("main", kSig_i_iii)
+    .addBody([
+      kExprGetLocal, 0,
+      kExprGetLocal, 1,
+      kExprGetLocal, 2,
+      kExprCallIndirect, kArity2, sig_index
+    ])
+    .exportFunc()
+  builder.appendToTable([0, 1, 2]);
+
+  return builder.instantiate({add: function(a, b) { return a + b | 0; }});
+})();
+
+// Check the module exists.
+assertFalse(module === undefined);
+assertFalse(module === null);
+assertFalse(module === 0);
+assertEquals("object", typeof module.exports);
+assertEquals("function", typeof module.exports.main);
+
+assertEquals(5, module.exports.main(1, 12, 7));
+assertEquals(19, module.exports.main(0, 12, 7));
+
+assertTraps(kTrapFuncSigMismatch, "module.exports.main(2, 12, 33)");
+assertTraps(kTrapFuncSigMismatch, "module.exports.main(4, 12, 33)");
+assertTraps(kTrapFuncSigMismatch, "module.exports.main(511, 12, 33)");
+assertTraps(kTrapFuncInvalid, "module.exports.main(512, 12, 33)");
+assertTraps(kTrapFuncInvalid, "module.exports.main(1025, 12, 33)");
+assertTraps(kTrapFuncInvalid, "module.exports.main(-1, 12, 33)");
diff --git a/test/mjsunit/wasm/export-table.js b/test/mjsunit/wasm/export-table.js
index a41d85d..2084ddf 100644
--- a/test/mjsunit/wasm/export-table.js
+++ b/test/mjsunit/wasm/export-table.js
@@ -72,3 +72,18 @@
 
   assertEquals(kReturnValue, module.exports["0"]());
 })();
+
+(function testExportNameClash() {
+  var builder = new WasmModuleBuilder();
+
+  builder.addFunction("one",   kSig_v_v).addBody([kExprNop]).exportAs("main");
+  builder.addFunction("two",   kSig_v_v).addBody([kExprNop]).exportAs("other");
+  builder.addFunction("three", kSig_v_v).addBody([kExprNop]).exportAs("main");
+
+  try {
+    builder.instantiate();
+    assertUnreachable("should have thrown an exception");
+  } catch (e) {
+    assertContains("Duplicate export", e.toString());
+  }
+})();
diff --git a/test/mjsunit/wasm/ffi.js b/test/mjsunit/wasm/ffi.js
index 87dfe3b..9db8ea6 100644
--- a/test/mjsunit/wasm/ffi.js
+++ b/test/mjsunit/wasm/ffi.js
@@ -10,7 +10,7 @@
 function testCallFFI(func, check) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature(kSig_i_dd);
+  var sig_index = builder.addType(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
diff --git a/test/mjsunit/wasm/function-names.js b/test/mjsunit/wasm/function-names.js
new file mode 100644
index 0000000..15771d8
--- /dev/null
+++ b/test/mjsunit/wasm/function-names.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
+
+load("test/mjsunit/wasm/wasm-constants.js");
+load("test/mjsunit/wasm/wasm-module-builder.js");
+
+var builder = new WasmModuleBuilder();
+
+var last_func_index = builder.addFunction("exec_unreachable", kSig_v_v)
+  .addBody([kExprUnreachable])
+
+var illegal_func_name = [0xff];
+var func_names = [ "☠", illegal_func_name, "some math: (½)² = ¼", "" ];
+var expected_names = ["exec_unreachable", "☠", null,
+                      "some math: (½)² = ¼", "", "main"];
+
+for (var func_name of func_names) {
+  last_func_index = builder.addFunction(func_name, kSig_v_v)
+    .addBody([kExprCallFunction, kArity0, last_func_index]).index;
+}
+
+builder.addFunction("main", kSig_v_v)
+  .addBody([kExprCallFunction, kArity0, last_func_index])
+  .exportFunc();
+
+var module = builder.instantiate();
+
+(function testFunctionNamesAsString() {
+  var names = expected_names.concat(["testFunctionNamesAsString", null]);
+  try {
+    module.exports.main();
+    assertFalse("should throw");
+  } catch (e) {
+    var lines = e.stack.split(/\r?\n/);
+    lines.shift();
+    assertEquals(names.length, lines.length);
+    for (var i = 0; i < names.length; ++i) {
+      var line = lines[i].trim();
+      if (names[i] === null) continue;
+      var printed_name = names[i] === undefined ? "<WASM UNNAMED>" : names[i]
+      var expected_start = "at " + printed_name + " (";
+      assertTrue(line.startsWith(expected_start),
+          "should start with '" + expected_start + "': '" + line + "'");
+    }
+  }
+})();
+
+// For the remaining tests, collect the Callsite objects instead of just a
+// string:
+Error.prepareStackTrace = function(error, frames) {
+  return frames;
+};
+
+
+(function testFunctionNamesAsCallSites() {
+  var names = expected_names.concat(["testFunctionNamesAsCallSites", null]);
+  try {
+    module.exports.main();
+    assertFalse("should throw");
+  } catch (e) {
+    assertEquals(names.length, e.stack.length);
+    for (var i = 0; i < names.length; ++i) {
+      assertEquals(names[i], e.stack[i].getFunctionName());
+    }
+  }
+})();
diff --git a/test/mjsunit/wasm/gc-frame.js b/test/mjsunit/wasm/gc-frame.js
index 5fa9b05..9c37fe4 100644
--- a/test/mjsunit/wasm/gc-frame.js
+++ b/test/mjsunit/wasm/gc-frame.js
@@ -10,7 +10,7 @@
 function makeFFI(func, t) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature([10,t,t,t,t,t,t,t,t,t,t,1,t]);
+  var sig_index = builder.addType(makeSig([t,t,t,t,t,t,t,t,t,t], [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
@@ -66,9 +66,32 @@
   }
 })();
 
-(function I32Test() {
+(function F64Test() {
   var main = makeFFI(print10, kAstF64);
   for (var i = 1; i < 2e+80; i *= -1137) {
     main(i - 1, i, i + 2, i + 3, i + 4, i + 5, i + 6, i + 7, i + 8);
   }
 })();
+
+(function GCInJSToWasmTest() {
+  var builder = new WasmModuleBuilder();
+
+  var sig_index = builder.addType(kSig_i_i);
+  builder.addFunction("main", sig_index)
+    .addBody([
+      kExprGetLocal, 0,         // --
+    ])                          // --
+    .exportFunc();
+
+  var main = builder.instantiate({}).exports.main;
+
+  var gc_object = {
+      valueOf: function() {
+        // Call the GC in valueOf, which is called within the JSToWasm wrapper.
+        gc();
+        return {};
+      }
+  };
+
+  main(gc_object);
+})();
diff --git a/test/mjsunit/wasm/import-table.js b/test/mjsunit/wasm/import-table.js
index c3f8cb9..ebba040 100644
--- a/test/mjsunit/wasm/import-table.js
+++ b/test/mjsunit/wasm/import-table.js
@@ -10,7 +10,7 @@
 function testCallImport(func, check) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature(kSig_i_dd);
+  var sig_index = builder.addType(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
diff --git a/test/mjsunit/wasm/indirect-calls.js b/test/mjsunit/wasm/indirect-calls.js
index 80bee41..1e87c6f 100644
--- a/test/mjsunit/wasm/indirect-calls.js
+++ b/test/mjsunit/wasm/indirect-calls.js
@@ -10,7 +10,7 @@
 var module = (function () {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature(kSig_i_ii);
+  var sig_index = builder.addType(kSig_i_ii);
   builder.addImport("add", sig_index);
   builder.addFunction("add", sig_index)
     .addBody([
@@ -30,7 +30,7 @@
       kExprCallIndirect, kArity2, sig_index
     ])
     .exportFunc()
-  builder.appendToFunctionTable([0, 1, 2]);
+  builder.appendToTable([0, 1, 2]);
 
   return builder.instantiate({add: function(a, b) { return a + b | 0; }});
 })();
diff --git a/test/mjsunit/wasm/instantiate-module-basic.js b/test/mjsunit/wasm/instantiate-module-basic.js
index 800dcc1..72a3425 100644
--- a/test/mjsunit/wasm/instantiate-module-basic.js
+++ b/test/mjsunit/wasm/instantiate-module-basic.js
@@ -7,44 +7,54 @@
 load("test/mjsunit/wasm/wasm-constants.js");
 load("test/mjsunit/wasm/wasm-module-builder.js");
 
-var kReturnValue = 117;
+let kReturnValue = 117;
 
-var module = (function Build() {
-  var builder = new WasmModuleBuilder();
-
+let buffer = (() => {
+  let builder = new WasmModuleBuilder();
   builder.addMemory(1, 1, true);
   builder.addFunction("main", kSig_i)
     .addBody([kExprI8Const, kReturnValue])
     .exportFunc();
 
-  return builder.instantiate();
-})();
+  return builder.toBuffer();
+})()
 
-// Check the module exists.
-assertFalse(module === undefined);
-assertFalse(module === null);
-assertFalse(module === 0);
-assertEquals("object", typeof module);
+function CheckInstance(instance) {
+  assertFalse(instance === undefined);
+  assertFalse(instance === null);
+  assertFalse(instance === 0);
+  assertEquals("object", typeof instance);
 
-// 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);
+  // Check the memory is an ArrayBuffer.
+  var mem = instance.exports.memory;
+  assertFalse(mem === undefined);
+  assertFalse(mem === null);
+  assertFalse(mem === 0);
+  assertEquals("object", typeof mem);
+  assertTrue(mem instanceof ArrayBuffer);
+  for (let i = 0; i < 4; i++) {
+    instance.exports.memory = 0;  // should be ignored
+    assertSame(mem, instance.exports.memory);
+  }
+
+  assertEquals(65536, instance.exports.memory.byteLength);
+
+  // Check the properties of the main function.
+  let main = instance.exports.main;
+  assertFalse(main === undefined);
+  assertFalse(main === null);
+  assertFalse(main === 0);
+  assertEquals("function", typeof main);
+
+  assertEquals(kReturnValue, main());
 }
 
-assertEquals(65536, module.exports.memory.byteLength);
+// Deprecated experimental API.
+CheckInstance(Wasm.instantiateModule(buffer));
 
-// Check the properties of the main function.
-var main = module.exports.main;
-assertFalse(main === undefined);
-assertFalse(main === null);
-assertFalse(main === 0);
-assertEquals("function", typeof main);
+// Official API
+let module = new WebAssembly.Module(buffer);
+CheckInstance(new WebAssembly.Instance(module));
 
-assertEquals(kReturnValue, main());
+let promise = WebAssembly.compile(buffer);
+promise.then(module => CheckInstance(new WebAssembly.Instance(module)));
diff --git a/test/mjsunit/wasm/params.js b/test/mjsunit/wasm/params.js
index 180ab1c..fe1b7d4 100644
--- a/test/mjsunit/wasm/params.js
+++ b/test/mjsunit/wasm/params.js
@@ -79,7 +79,7 @@
     print("type = " + t + ", which = " + which);
 
     var builder = new WasmModuleBuilder();
-    builder.addFunction("select", [10,t,t,t,t,t,t,t,t,t,t,1,t])
+    builder.addFunction("select", makeSig([t,t,t,t,t,t,t,t,t,t], [t]))
       .addBody([kExprGetLocal, which])
       .exportFunc();
 
diff --git a/test/mjsunit/wasm/stack.js b/test/mjsunit/wasm/stack.js
index a45db94..4ff0d1d 100644
--- a/test/mjsunit/wasm/stack.js
+++ b/test/mjsunit/wasm/stack.js
@@ -16,10 +16,8 @@
 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[1], frames[i].getFunctionName(),
+        "["+i+"].getFunctionName()");
     assertEquals(exp[2], frames[i].getLineNumber(), "["+i+"].getLineNumber()");
     if (exp[0])
       assertEquals(exp[3], frames[i].getPosition(),
@@ -27,8 +25,7 @@
     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] + ")";
+      toString = exp[1] + " (<WASM>[" + exp[2] + "]+" + exp[3] + ")";
     } else {
       toString = exp[4] + ":" + exp[2] + ":";
     }
@@ -71,10 +68,10 @@
 (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";                       // --
+    "    at STACK (stack.js:39:11)\n" +           // --
+    "    at main (<WASM>[0]+1)\n" +               // --
+    "    at testSimpleStack (stack.js:76:18)\n" + // --
+    "    at stack.js:78:3";                       // --
 
   module.exports.main();
   assertEquals(expected_string, stripPath(stack));
@@ -91,10 +88,10 @@
 
   verifyStack(stack, [
       // isWasm           function   line  pos        file
-      [   false,           "STACK",    42,   0, "stack.js"],
+      [   false,           "STACK",    39,   0, "stack.js"],
       [    true,            "main",     0,   1,       null],
-      [   false, "testStackFrames",    90,   0, "stack.js"],
-      [   false,              null,    99,   0, "stack.js"]
+      [   false, "testStackFrames",    87,   0, "stack.js"],
+      [   false,              null,    96,   0, "stack.js"]
   ]);
 })();
 
@@ -107,8 +104,8 @@
     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"]
+        [   false, "testWasmUnreachable",  100,    0, "stack.js"],
+        [   false,                  null,  111,    0, "stack.js"]
     ]);
   }
 })();
@@ -121,10 +118,10 @@
     assertContains("out of bounds", e.message);
     verifyStack(e.stack, [
         // isWasm                  function   line  pos        file
-        [    true,                      "?",     2,   3,       null],
+        [    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"]
+        [   false, "testWasmMemOutOfBounds",   115,   0, "stack.js"],
+        [   false,                     null,   127,   0, "stack.js"]
     ]);
   }
 })();
diff --git a/test/mjsunit/wasm/stackwalk.js b/test/mjsunit/wasm/stackwalk.js
index 5e5a1ef..913269f 100644
--- a/test/mjsunit/wasm/stackwalk.js
+++ b/test/mjsunit/wasm/stackwalk.js
@@ -10,7 +10,7 @@
 function makeFFI(func) {
   var builder = new WasmModuleBuilder();
 
-  var sig_index = builder.addSignature(kSig_i_dd);
+  var sig_index = builder.addType(kSig_i_dd);
   builder.addImport("func", sig_index);
   builder.addFunction("main", sig_index)
     .addBody([
diff --git a/test/mjsunit/wasm/start-function.js b/test/mjsunit/wasm/start-function.js
index 3c5707a..c4d299e 100644
--- a/test/mjsunit/wasm/start-function.js
+++ b/test/mjsunit/wasm/start-function.js
@@ -65,8 +65,8 @@
   var func = builder.addFunction("", kSig_v_v)
     .addBody([kExprNop]);
 
-  builder.addExplicitSection([kDeclStartFunction, 0]);
-  builder.addExplicitSection([kDeclStartFunction, 0]);
+  builder.addExplicitSection([kDeclStart, 0]);
+  builder.addExplicitSection([kDeclStart, 0]);
 
   assertThrows(builder.instantiate);
 })();
@@ -98,7 +98,7 @@
   }};
 
   var builder = new WasmModuleBuilder();
-  var sig_index = builder.addSignature(kSig_v_v);
+  var sig_index = builder.addType(kSig_v_v);
 
   builder.addImport("foo", sig_index);
   var func = builder.addFunction("", sig_index)
diff --git a/test/mjsunit/wasm/test-wasm-module-builder.js b/test/mjsunit/wasm/test-wasm-module-builder.js
index 969b550..72d5a7a 100644
--- a/test/mjsunit/wasm/test-wasm-module-builder.js
+++ b/test/mjsunit/wasm/test-wasm-module-builder.js
@@ -91,7 +91,7 @@
         .addBody([kExprGetLocal,
                   0, kExprGetLocal, 1, kExprGetLocal, 2, kExprCallIndirect, kArity2, 0])
         .exportAs("main");
-    module.appendToFunctionTable([0]);
+    module.appendToTable([0]);
 
     var instance = module.instantiate();
     assertEquals(44, instance.exports.main(0, 11, 33));
diff --git a/test/mjsunit/wasm/trap-location.js b/test/mjsunit/wasm/trap-location.js
index 5e3661d..0440af9 100644
--- a/test/mjsunit/wasm/trap-location.js
+++ b/test/mjsunit/wasm/trap-location.js
@@ -14,7 +14,7 @@
 
 var builder = new WasmModuleBuilder();
 
-var sig_index = builder.addSignature(kSig_i_v)
+var sig_index = builder.addType(kSig_i_v)
 
 // Build a function to resemble this code:
 //   if (idx < 2) {
diff --git a/test/mjsunit/wasm/wasm-constants.js b/test/mjsunit/wasm/wasm-constants.js
index 389383e..319cadc 100644
--- a/test/mjsunit/wasm/wasm-constants.js
+++ b/test/mjsunit/wasm/wasm-constants.js
@@ -52,18 +52,19 @@
 
 // Section declaration constants
 var kDeclMemory = 0x00;
-var kDeclSignatures = 0x01;
+var kDeclTypes = 0x01;
 var kDeclFunctions = 0x02;
 var kDeclGlobals = 0x03;
-var kDeclDataSegments = 0x04;
-var kDeclFunctionTable = 0x05;
+var kDeclData = 0x04;
+var kDeclTable = 0x05;
 var kDeclEnd = 0x06;
-var kDeclStartFunction = 0x07;
-var kDeclImportTable = 0x08;
-var kDeclExportTable = 0x09;
-var kDeclFunctionSignatures = 0x0a;
-var kDeclFunctionBodies = 0x0b;
+var kDeclStart = 0x07;
+var kDeclImports = 0x08;
+var kDeclExports = 0x09;
+var kDeclFunctions = 0x0a;
+var kDeclCode = 0x0b;
 var kDeclNames = 0x0c;
+var kDeclFunctionTablePad = 0x0d;
 
 var kArity0 = 0;
 var kArity1 = 1;
@@ -74,7 +75,7 @@
 var section_names = [
   "memory", "type", "old_function", "global", "data",
   "table", "end", "start", "import", "export",
-  "function", "code", "name"];
+  "function", "code", "name", "table_pad"];
 
 // Function declaration flags
 var kDeclFunctionName   = 0x01;
@@ -90,31 +91,39 @@
 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];
+var kSig_i = makeSig([], [kAstI32]);
+var kSig_d = makeSig([], [kAstF64]);
+var kSig_i_i = makeSig([kAstI32], [kAstI32]);
+var kSig_i_ii = makeSig([kAstI32, kAstI32], [kAstI32]);
+var kSig_i_iii = makeSig([kAstI32, kAstI32, kAstI32], [kAstI32]);
+var kSig_d_dd = makeSig([kAstF64, kAstF64], [kAstF64]);
+var kSig_l_ll = makeSig([kAstI64, kAstI64], [kAstI64]);
+var kSig_i_dd = makeSig([kAstF64, kAstF64], [kAstI32]);
+var kSig_v_v = makeSig([], []);
+var kSig_i_v = makeSig([], [kAstI32]);
 
-function makeSig_v_xx(x) {
-  return [2, x, x, 0];
+function makeSig(params, results) {
+  return {params: params, results: results};
 }
 
 function makeSig_v_x(x) {
-  return [1, x, 0];
+  return makeSig([x], []);
 }
 
-function makeSig_r_xx(r, x) {
-  return [2, x, x, 1, r];
+function makeSig_v_xx(x) {
+  return makeSig([x, x], []);
+}
+
+function makeSig_r_v(r) {
+  return makeSig([], [r]);
 }
 
 function makeSig_r_x(r, x) {
-  return [1, x, 1, r];
+  return makeSig([x], [r]);
+}
+
+function makeSig_r_xx(r, x) {
+  return makeSig([x, x], [r]);
 }
 
 // Opcodes
diff --git a/test/mjsunit/wasm/wasm-module-builder.js b/test/mjsunit/wasm/wasm-module-builder.js
index bfc4460..5c5df79 100644
--- a/test/mjsunit/wasm/wasm-module-builder.js
+++ b/test/mjsunit/wasm/wasm-module-builder.js
@@ -2,351 +2,373 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-function WasmFunctionBuilder(name, sig_index) {
-    this.name = name;
-    this.sig_index = sig_index;
-    this.exports = [];
-}
+class Binary extends Array {
+  emit_u8(val) {
+    this.push(val);
+  }
 
-WasmFunctionBuilder.prototype.exportAs = function(name) {
-    this.exports.push(name);
-    return this;
-}
+  emit_u16(val) {
+    this.push(val & 0xff);
+    this.push((val >> 8) & 0xff);
+  }
 
-WasmFunctionBuilder.prototype.exportFunc = function() {
-  this.exports.push(this.name);
-  return this;
-}
+  emit_u32(val) {
+    this.push(val & 0xff);
+    this.push((val >> 8) & 0xff);
+    this.push((val >> 16) & 0xff);
+    this.push((val >> 24) & 0xff);
+  }
 
-WasmFunctionBuilder.prototype.addBody = function(body) {
-    this.body = body;
-    return this;
-}
+  emit_varint(val) {
+    while (true) {
+      let v = val & 0xff;
+      val = val >>> 7;
+      if (val == 0) {
+        this.push(v);
+        break;
+      }
+      this.push(v | 0x80);
+    }
+  }
 
-WasmFunctionBuilder.prototype.addLocals = function(locals) {
-    this.locals = locals;
-    return this;
-}
+  emit_bytes(data) {
+    for (let i = 0; i < data.length; i++) {
+      this.push(data[i] & 0xff);
+    }
+  }
 
-function WasmModuleBuilder() {
-    this.signatures = [];
-    this.imports = [];
-    this.functions = [];
-    this.exports = [];
-    this.function_table = [];
-    this.data_segments = [];
-    this.explicit = [];
-    return this;
-}
-
-WasmModuleBuilder.prototype.addStart = function(start_index) {
-    this.start_index = start_index;
-}
-
-WasmModuleBuilder.prototype.addMemory = function(min, max, exp) {
-    this.memory = {min: min, max: max, exp: exp};
-    return this;
-}
-
-WasmModuleBuilder.prototype.addExplicitSection = function(bytes) {
-  this.explicit.push(bytes);
-  return this;
-}
-
-// Add a signature; format is [param_count, param0, param1, ..., retcount, ret0]
-WasmModuleBuilder.prototype.addSignature = function(sig) {
-    // TODO: canonicalize signatures?
-    this.signatures.push(sig);
-    return this.signatures.length - 1;
-}
-
-WasmModuleBuilder.prototype.addFunction = function(name, sig) {
-    var sig_index = (typeof sig) == "number" ? sig : this.addSignature(sig);
-    var func = new WasmFunctionBuilder(name, sig_index);
-    func.index = this.functions.length;
-    this.functions.push(func);
-    return func;
-}
-
-WasmModuleBuilder.prototype.addImportWithModule = function(module, name, sig) {
-  var sig_index = (typeof sig) == "number" ? sig : this.addSignature(sig);
-  this.imports.push({module: module, name: name, sig_index: sig_index});
-  return this.imports.length - 1;
-}
-
-WasmModuleBuilder.prototype.addImport = function(name, sig) {
-  this.addImportWithModule(name, undefined, sig);
-}
-
-WasmModuleBuilder.prototype.addDataSegment = function(addr, data, init) {
-    this.data_segments.push({addr: addr, data: data, init: init});
-    return this.data_segments.length - 1;
-}
-
-WasmModuleBuilder.prototype.appendToFunctionTable = function(array) {
-    this.function_table = this.function_table.concat(array);
-    return this;
-}
-
-function emit_u8(bytes, val) {
-    bytes.push(val & 0xff);
-}
-
-function emit_u16(bytes, val) {
-    bytes.push(val & 0xff);
-    bytes.push((val >> 8) & 0xff);
-}
-
-function emit_u32(bytes, val) {
-    bytes.push(val & 0xff);
-    bytes.push((val >> 8) & 0xff);
-    bytes.push((val >> 16) & 0xff);
-    bytes.push((val >> 24) & 0xff);
-}
-
-function emit_string(bytes, string) {
+  emit_string(string) {
     // When testing illegal names, we pass a byte array directly.
     if (string instanceof Array) {
-      emit_varint(bytes, string.length);
-      emit_bytes(bytes, string);
+      this.emit_varint(string.length);
+      this.emit_bytes(string);
       return;
     }
 
-    // This is the hacky way to convert a JavaScript scring to a UTF8 encoded
+    // This is the hacky way to convert a JavaScript string 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));
+    let string_utf8 = unescape(encodeURIComponent(string));
+    this.emit_varint(string_utf8.length);
+    for (let i = 0; i < string_utf8.length; i++) {
+      this.emit_u8(string_utf8.charCodeAt(i));
     }
-}
+  }
 
-function emit_varint(bytes, val) {
-    while (true) {
-        var v = val & 0xff;
-        val = val >>> 7;
-        if (val == 0) {
-            bytes.push(v);
-            break;
-        }
-        bytes.push(v | 0x80);
-    }
-}
+  emit_header() {
+    this.push(kWasmH0, kWasmH1, kWasmH2, kWasmH3,
+              kWasmV0, kWasmV1, kWasmV2, kWasmV3);
+  }
 
-function emit_bytes(bytes, data) {
-  for (var i = 0; i < data.length; i++) {
-    bytes.push(data[i] & 0xff);
+  emit_section(section_code, content_generator) {
+    // Emit section name.
+    this.emit_string(section_names[section_code]);
+    // Emit the section to a temporary buffer: its full length isn't know yet.
+    let section = new Binary;
+    content_generator(section);
+    // Emit section length.
+    this.emit_varint(section.length);
+    // Copy the temporary buffer.
+    this.push(...section);
   }
 }
 
-function emit_section(bytes, section_code, content_generator) {
-    // 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 = [];
-    content_generator(tmp_bytes);
-    // Emit section length.
-    emit_varint(bytes, tmp_bytes.length);
-    // Copy the temporary buffer.
-    Array.prototype.push.apply(bytes, tmp_bytes);
+class WasmFunctionBuilder {
+  constructor(name, type_index) {
+    this.name = name;
+    this.type_index = type_index;
+    this.exports = [];
+  }
+
+  exportAs(name) {
+    this.exports.push(name);
+    return this;
+  }
+
+  exportFunc() {
+    this.exports.push(this.name);
+    return this;
+  }
+
+  addBody(body) {
+    this.body = body;
+    return this;
+  }
+
+  addLocals(locals) {
+    this.locals = locals;
+    return this;
+  }
 }
 
-WasmModuleBuilder.prototype.toArray = function(debug) {
-    // Add header bytes
-    var bytes = [];
-    bytes = bytes.concat([kWasmH0, kWasmH1, kWasmH2, kWasmH3,
-                          kWasmV0, kWasmV1, kWasmV2, kWasmV3]);
+class WasmModuleBuilder {
+  constructor() {
+    this.types = [];
+    this.imports = [];
+    this.functions = [];
+    this.exports = [];
+    this.table = [];
+    this.segments = [];
+    this.explicit = [];
+    this.pad = null;
+    return this;
+  }
 
-    var wasm = this;
+  addStart(start_index) {
+    this.start_index = start_index;
+  }
 
-    // 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) {
-                emit_u8(bytes, kWasmFunctionTypeForm);
-                for (var j = 0; j < sig.length; j++) {
-                    emit_u8(bytes, sig[j]);
-                }
-            }
-        });
+  addMemory(min, max, exp) {
+    this.memory = {min: min, max: max, exp: exp};
+    return this;
+  }
+
+  addPadFunctionTable(size) {
+    this.pad = size;
+    return this;
+  }
+
+  addExplicitSection(bytes) {
+    this.explicit.push(bytes);
+    return this;
+  }
+
+  addType(type) {
+    // TODO: canonicalize types?
+    this.types.push(type);
+    return this.types.length - 1;
+  }
+
+  addFunction(name, type) {
+    let type_index = (typeof type) == "number" ? type : this.addType(type);
+    let func = new WasmFunctionBuilder(name, type_index);
+    func.index = this.functions.length;
+    this.functions.push(func);
+    return func;
+  }
+
+  addImportWithModule(module, name, type) {
+    let type_index = (typeof type) == "number" ? type : this.addType(type);
+    this.imports.push({module: module, name: name, type: type_index});
+    return this.imports.length - 1;
+  }
+
+  addImport(name, type) {
+    return this.addImportWithModule(name, undefined, type);
+  }
+
+  addDataSegment(addr, data, init) {
+    this.segments.push({addr: addr, data: data, init: init});
+    return this.segments.length - 1;
+  }
+
+  appendToTable(array) {
+    this.table.push(...array);
+    return this;
+  }
+
+  toArray(debug) {
+    let binary = new Binary;
+    let wasm = this;
+
+    // Add header
+    binary.emit_header();
+
+    // Add type section
+    if (wasm.types.length > 0) {
+      if (debug) print("emitting types @ " + binary.length);
+      binary.emit_section(kDeclTypes, section => {
+        section.emit_varint(wasm.types.length);
+        for (let type of wasm.types) {
+          section.emit_u8(kWasmFunctionTypeForm);
+          section.emit_varint(type.params.length);
+          for (let param of type.params) {
+            section.emit_u8(param);
+          }
+          section.emit_varint(type.results.length);
+          for (let result of type.results) {
+            section.emit_u8(result);
+          }
+        }
+      });
     }
 
     // Add imports section
     if (wasm.imports.length > 0) {
-        if (debug) print("emitting imports @ " + bytes.length);
-        emit_section(bytes, kDeclImportTable, function(bytes) {
-            emit_varint(bytes, wasm.imports.length);
-            for (imp of wasm.imports) {
-                emit_varint(bytes, imp.sig_index);
-                emit_string(bytes, imp.module);
-                emit_string(bytes, imp.name || '');
-            }
-        });
+      if (debug) print("emitting imports @ " + binary.length);
+      binary.emit_section(kDeclImports, section => {
+        section.emit_varint(wasm.imports.length);
+        for (let imp of wasm.imports) {
+          section.emit_varint(imp.type);
+          section.emit_string(imp.module);
+          section.emit_string(imp.name || '');
+        }
+      });
     }
 
     // Add functions declarations
-    var names = false;
-    var exports = 0;
+    let has_names = false;
+    let names = false;
+    let exports = 0;
     if (wasm.functions.length > 0) {
-        var has_names = false;
-
-        // emit function signatures
-        if (debug) print("emitting function sigs @ " + bytes.length);
-        emit_section(bytes, kDeclFunctionSignatures, function(bytes) {
-            emit_varint(bytes, wasm.functions.length);
-            for (func of wasm.functions) {
-              has_names = has_names || (func.name != undefined &&
-                                        func.name.length > 0);
-              exports += func.exports.length;
-
-              emit_varint(bytes, func.sig_index);
-            }
-        });
-
+      if (debug) print("emitting function decls @ " + binary.length);
+      binary.emit_section(kDeclFunctions, section => {
+        section.emit_varint(wasm.functions.length);
+        for (let func of wasm.functions) {
+          has_names = has_names || (func.name != undefined &&
+                                   func.name.length > 0);
+          exports += func.exports.length;
+          section.emit_varint(func.type_index);
+        }
+      });
     }
 
-    // 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 table.
+    if (wasm.table.length > 0) {
+      if (debug) print("emitting table @ " + binary.length);
+      binary.emit_section(kDeclTable, section => {
+        section.emit_varint(wasm.table.length);
+        for (let index of wasm.table) {
+          section.emit_varint(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);
-        });
+      if (debug) print("emitting memory @ " + binary.length);
+      binary.emit_section(kDeclMemory, section => {
+        section.emit_varint(wasm.memory.min);
+        section.emit_varint(wasm.memory.max);
+        section.emit_u8(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);
-                }
-            }
-        });
+      if (debug) print("emitting exports @ " + binary.length);
+      binary.emit_section(kDeclExports, section => {
+        section.emit_varint(exports);
+        for (let func of wasm.functions) {
+          for (let exp of func.exports) {
+            section.emit_varint(func.index);
+            section.emit_string(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);
-        });
+      if (debug) print("emitting start function @ " + binary.length);
+      binary.emit_section(kDeclStart, section => {
+        section.emit_varint(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) {
-            emit_varint(bytes, wasm.functions.length);
-            for (func of wasm.functions) {
-                // Function body length will be patched later.
-                var local_decls = [];
-                var l = func.locals;
-                if (l != undefined) {
-                  var local_decls_count = 0;
-                  if (l.i32_count > 0) {
-                    local_decls.push({count: l.i32_count, type: kAstI32});
-                  }
-                  if (l.i64_count > 0) {
-                    local_decls.push({count: l.i64_count, type: kAstI64});
-                  }
-                  if (l.f32_count > 0) {
-                    local_decls.push({count: l.f32_count, type: kAstF32});
-                  }
-                  if (l.f64_count > 0) {
-                    local_decls.push({count: l.f64_count, type: kAstF64});
-                  }
-                }
-                var header = new Array();
-
-                emit_varint(header, local_decls.length);
-                for (decl of local_decls) {
-                  emit_varint(header, decl.count);
-                  emit_u8(header, decl.type);
-                }
-
-                emit_varint(bytes, header.length + func.body.length);
-                emit_bytes(bytes, header);
-                emit_bytes(bytes, func.body);
+      // emit function bodies
+      if (debug) print("emitting code @ " + binary.length);
+      binary.emit_section(kDeclCode, section => {
+        section.emit_varint(wasm.functions.length);
+        for (let func of wasm.functions) {
+          // Function body length will be patched later.
+          let local_decls = [];
+          let l = func.locals;
+          if (l != undefined) {
+            let local_decls_count = 0;
+            if (l.i32_count > 0) {
+              local_decls.push({count: l.i32_count, type: kAstI32});
             }
-        });
+            if (l.i64_count > 0) {
+              local_decls.push({count: l.i64_count, type: kAstI64});
+            }
+            if (l.f32_count > 0) {
+              local_decls.push({count: l.f32_count, type: kAstF32});
+            }
+            if (l.f64_count > 0) {
+              local_decls.push({count: l.f64_count, type: kAstF64});
+            }
+          }
+
+          let header = new Binary;
+          header.emit_varint(local_decls.length);
+          for (let decl of local_decls) {
+            header.emit_varint(decl.count);
+            header.emit_u8(decl.type);
+          }
+
+          section.emit_varint(header.length + func.body.length);
+          section.emit_bytes(header);
+          section.emit_bytes(func.body);
+        }
+      });
     }
 
     // Add data segments.
-    if (wasm.data_segments.length > 0) {
-        if (debug) print("emitting data segments @ " + bytes.length);
-        emit_section(bytes, kDeclDataSegments, function(bytes) {
-            emit_varint(bytes, wasm.data_segments.length);
-            for (seg of wasm.data_segments) {
-                emit_varint(bytes, seg.addr);
-                emit_varint(bytes, seg.data.length);
-                emit_bytes(bytes, seg.data);
-            }
-        });
+    if (wasm.segments.length > 0) {
+      if (debug) print("emitting data segments @ " + binary.length);
+      binary.emit_section(kDeclData, section => {
+        section.emit_varint(wasm.segments.length);
+        for (let seg of wasm.segments) {
+          section.emit_varint(seg.addr);
+          section.emit_varint(seg.data.length);
+          section.emit_bytes(seg.data);
+        }
+      });
     }
 
     // Add any explicitly added sections
-    for (exp of wasm.explicit) {
-        if (debug) print("emitting explicit @ " + bytes.length);
-        emit_bytes(bytes, exp);
+    for (let exp of wasm.explicit) {
+      if (debug) print("emitting explicit @ " + binary.length);
+      binary.emit_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
-            }
-        });
+      if (debug) print("emitting names @ " + binary.length);
+      binary.emit_section(kDeclNames, section => {
+        section.emit_varint(wasm.functions.length);
+        for (let func of wasm.functions) {
+          var name = func.name == undefined ? "" : func.name;
+          section.emit_string(name);
+          section.emit_u8(0);  // local names count == 0
+        }
+      });
+    }
+
+    // Add an indirect function table pad section.
+    if (wasm.pad !== null) {
+      if (debug)
+        print("emitting indirect function table pad @ " + binary.length);
+      binary.emit_section(kDeclFunctionTablePad, section => {
+        section.emit_varint(wasm.pad);
+      });
     }
 
     // End the module.
-    if (debug) print("emitting end @ " + bytes.length);
-    emit_section(bytes, kDeclEnd, function(bytes) {});
+    if (debug) print("emitting end @ " + binary.length);
+    binary.emit_section(kDeclEnd, section => {});
 
-    return bytes;
-}
+    return binary;
+  }
 
-WasmModuleBuilder.prototype.toBuffer = function(debug) {
-    var bytes = this.toArray(debug);
-    var buffer = new ArrayBuffer(bytes.length);
-    var view = new Uint8Array(buffer);
-    for (var i = 0; i < bytes.length; i++) {
-        var val = bytes[i];
-        if ((typeof val) == "string") val = val.charCodeAt(0);
-        view[i] = val | 0;
+  toBuffer(debug) {
+    let bytes = this.toArray(debug);
+    let buffer = new ArrayBuffer(bytes.length);
+    let view = new Uint8Array(buffer);
+    for (let i = 0; i < bytes.length; i++) {
+      let val = bytes[i];
+      if ((typeof val) == "string") val = val.charCodeAt(0);
+      view[i] = val | 0;
     }
     return buffer;
-}
+  }
 
-WasmModuleBuilder.prototype.instantiate = function(ffi, memory) {
-    var buffer = this.toBuffer();
-    if (memory != undefined) {
-      return Wasm.instantiateModule(buffer, ffi, memory);
-    } else {
-      return Wasm.instantiateModule(buffer, ffi);
-    }
+  instantiate(...args) {
+    let module = new WebAssembly.Module(this.toBuffer());
+    let instance = new WebAssembly.Instance(module, ...args);
+    return instance;
+  }
 }
diff --git a/test/mjsunit/wasm/wasm-object-api.js b/test/mjsunit/wasm/wasm-object-api.js
index 96088b8..510b571 100644
--- a/test/mjsunit/wasm/wasm-object-api.js
+++ b/test/mjsunit/wasm/wasm-object-api.js
@@ -11,3 +11,8 @@
 assertEquals("function", typeof Wasm.instantiateModule);
 assertEquals("function", typeof Wasm.instantiateModuleFromAsm);
 assertFalse(undefined == Wasm.experimentalVersion);
+
+assertEquals('object', typeof WebAssembly);
+assertEquals('function', typeof WebAssembly.Module);
+assertEquals('function', typeof WebAssembly.Instance);
+assertEquals('function', typeof WebAssembly.compile);
diff --git a/test/test262/BUILD.gn b/test/test262/BUILD.gn
new file mode 100644
index 0000000..9aaa777
--- /dev/null
+++ b/test/test262/BUILD.gn
@@ -0,0 +1,34 @@
+# 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("../../gni/isolate.gni")
+
+if (v8_test_isolation_mode != "noop") {
+  action("archive_test262") {
+    visibility = [ ":*" ]
+
+    script = "archive.py"
+
+    inputs = [
+      "list.py",
+    ]
+
+    sources = exec_script("list.py", [], "list lines")
+
+    outputs = [
+      "$target_gen_dir/test262_archiving.stamp",
+    ]
+
+    args = rebase_path(outputs, root_build_dir)
+  }
+}
+
+v8_isolate_run("test262") {
+  deps = [
+    ":archive_test262",
+    "../..:d8_run",
+  ]
+
+  isolate = "test262.isolate"
+}
diff --git a/test/test262/archive.py b/test/test262/archive.py
index c265b32..9a52d6c 100755
--- a/test/test262/archive.py
+++ b/test/test262/archive.py
@@ -4,7 +4,13 @@
 # found in the LICENSE file.
 
 import os
+import sys
 import tarfile
+import time
+
+# In GN we expect the path to a stamp file as an argument.
+if len(sys.argv) == 2:
+  STAMP_FILE = os.path.abspath(sys.argv[1])
 
 os.chdir(os.path.dirname(os.path.abspath(__file__)))
 
@@ -21,3 +27,10 @@
 
 with tarfile.open('data.tar', 'w') as tar:
   tar.add('data', filter=filter_git)
+
+# Workaround for GN. We can't specify the tarfile as output because it's
+# not in the product directory. Therefore we track running of this script
+# with an extra stamp file in the product directory.
+if len(sys.argv) == 2:
+  with open(STAMP_FILE, 'w') as f:
+    f.write(str(time.time()))
diff --git a/test/test262/test262.status b/test/test262/test262.status
index 27b56d4..2933e15 100644
--- a/test/test262/test262.status
+++ b/test/test262/test262.status
@@ -71,6 +71,10 @@
   'language/expressions/assignment/S11.13.1_A6*': [FAIL],
 
   # https://bugs.chromium.org/p/v8/issues/detail?id=4709
+  'built-ins/Promise/reject-function-name': [FAIL],
+  'built-ins/Promise/resolve-function-name': [FAIL],
+  'built-ins/Promise/all/resolve-element-function-name': [FAIL],
+  'built-ins/Promise/executor-function-name': [FAIL],
   'built-ins/Proxy/revocable/revocation-function-name': [FAIL],
   'language/expressions/assignment/fn-name-lhs-cover': [FAIL],
   'language/expressions/assignment/fn-name-lhs-member': [FAIL],
@@ -100,28 +104,8 @@
   'language/asi/S7.9_A5.7_T1': [PASS, FAIL_OK],
 
   ###### BEGIN REGEXP SUBCLASSING SECTION ######
-  # Spec change in progress https://github.com/tc39/ecma262/pull/494
-  # RegExpBuiltinMatch reads flags from [[OriginalFlags]]
-  'built-ins/RegExp/prototype/Symbol.match/builtin-coerce-sticky': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/builtin-get-global-err': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/builtin-get-sticky-err': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/builtin-success-g-set-lastindex-err': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/coerce-sticky': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.match/get-sticky-err': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.replace/coerce-global': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.replace/coerce-unicode': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.replace/get-sticky-coerce': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.replace/get-sticky-err': [SKIP],
-  'built-ins/RegExp/prototype/Symbol.search/get-sticky-coerce': [FAIL],
-  'built-ins/RegExp/prototype/Symbol.search/get-sticky-err': [FAIL],
-  'built-ins/RegExp/prototype/exec/get-sticky-coerce': [FAIL],
-  'built-ins/RegExp/prototype/exec/get-sticky-err': [FAIL],
-  'built-ins/RegExp/prototype/test/get-sticky-err': [FAIL],
-
   # Times out
   'built-ins/RegExp/prototype/Symbol.match/coerce-global': [SKIP],
-  'built-ins/RegExp/prototype/Symbol.match/builtin-coerce-global': [SKIP],
 
   # Sticky support busted
   'built-ins/RegExp/prototype/Symbol.replace/y-init-lastindex': [FAIL],
@@ -131,6 +115,7 @@
   # 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-g-set-lastindex-err': [SKIP],
   '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],
@@ -146,6 +131,10 @@
   # happens to be thrown for some other reason.
   'built-ins/RegExp/prototype/Symbol.split/str-result-get-length-err': [SKIP],
 
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5123
+  'built-ins/RegExp/prototype/Symbol.replace/coerce-global': [FAIL],
+  'built-ins/RegExp/prototype/Symbol.replace/coerce-unicode': [FAIL],
+
   ###### END REGEXP SUBCLASSING SECTION ######
 
   # https://code.google.com/p/v8/issues/detail?id=4360
@@ -153,67 +142,12 @@
   'intl402/DateTimeFormat/12.1.1_1': [FAIL],
   'intl402/NumberFormat/11.1.1_1': [FAIL],
 
-  # https://code.google.com/p/v8/issues/detail?id=4476
-  # 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/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],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Azeri': [FAIL],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Lithuanian': [FAIL],
-  'intl402/String/prototype/toLocaleUpperCase/special_casing_Turkish': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4628
-  'language/eval-code/non-definable-function-with-variable': [FAIL],
-  'language/eval-code/non-definable-function-with-function': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4592
-  'built-ins/ArrayBuffer/length-is-absent': [FAIL],
-  'built-ins/ArrayBuffer/length-is-not-number': [FAIL],
-  'built-ins/ArrayBuffer/positive-integer-length': [FAIL],
-  'language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4633
-  'built-ins/Promise/reject-function-name': [FAIL],
-  'built-ins/Promise/resolve-function-name': [FAIL],
-  'built-ins/Promise/all/resolve-element-function-name': [FAIL],
-  'built-ins/Promise/executor-function-name': [FAIL],
-
-  # https://bugs.chromium.org/p/v8/issues/detail?id=4634
-  'built-ins/DataView/prototype/setFloat64/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setFloat32/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setInt16/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setInt32/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setUint16/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setUint32/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setUint8/index-check-before-value-conversion': [FAIL],
-  'built-ins/DataView/prototype/setInt8/index-check-before-value-conversion': [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],
-  'built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1': [FAIL],
-  'built-ins/RegExp/prototype/multiline/15.10.7.4-1': [FAIL],
-
   # https://bugs.chromium.org/p/v8/issues/detail?id=4727
-  'built-ins/TypedArrays/length-arg-is-undefined-throws': [FAIL],
   'built-ins/TypedArrays/length-arg-is-symbol-throws': [FAIL],
-  'built-ins/TypedArrays/length-arg-is-float-throws-rangeerror': [FAIL],
-  'built-ins/TypedArrays/length-arg-is-nan-throws-rangeerror': [FAIL],
 
   # 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],
+  'built-ins/TypedArray/prototype/set/typedarray-arg-negative-integer-offset-throws': [FAIL],
+  'built-ins/TypedArray/prototype/set/array-arg-negative-integer-offset-throws': [FAIL],
 
   # https://bugs.chromium.org/p/v8/issues/detail?id=4901
   'built-ins/TypedArrays/internals/DefineOwnProperty/key-is-greater-than-last-index': [FAIL],
@@ -234,11 +168,61 @@
   '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/filter/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/reduce/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/reduceRight/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-get-src-value-throws': [FAIL],
+  'built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-on-tointeger-offset-throws': [FAIL],
+  'built-ins/TypedArray/prototype/set/array-arg-targetbuffer-detached-throws': [FAIL],
+  'built-ins/TypedArray/prototype/set/typedarray-arg-srcbuffer-detached-during-tointeger-offset-throws': [FAIL],
+  'built-ins/TypedArray/prototype/set/typedarray-arg-targetbuffer-detached-during-tointeger-offset-throws': [FAIL],
+  'built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-other-targettype': [FAIL],
+  'built-ins/TypedArray/prototype/slice/detached-buffer-custom-ctor-same-targettype': [FAIL],
+  'built-ins/TypedArray/prototype/slice/detached-buffer-get-ctor': [FAIL],
+  'built-ins/TypedArray/prototype/slice/detached-buffer-speciesctor-get-species-custom-ctor-throws': [FAIL],
   'built-ins/TypedArray/prototype/some/callbackfn-detachbuffer': [FAIL],
+  'built-ins/TypedArray/prototype/sort/detached-buffer-comparefn': [FAIL],
+  # DataView functions should also throw on detached buffers
+  'built-ins/DataView/prototype/getFloat32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getFloat32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getFloat64/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getFloat64/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt16/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getInt16/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getInt32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt8/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getInt8/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint16/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getUint16/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getUint32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint8/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/getUint8/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setFloat32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setFloat32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setFloat64/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setFloat64/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt16/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setInt16/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setInt32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt8/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setInt8/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint16/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setUint16/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint32/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setUint32/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint8/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/setUint8/detached-buffer-before-outofrange-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/byteLength/detached-buffer': [FAIL],
+  'built-ins/DataView/prototype/byteOffset/detached-buffer': [FAIL],
+  'built-ins/DataView/detached-buffer': [FAIL],
+  'built-ins/ArrayBuffer/prototype/byteLength/detached-buffer': [FAIL],
 
   # https://bugs.chromium.org/p/v8/issues/detail?id=4648
   'built-ins/TypedArray/prototype/copyWithin/detached-buffer': [FAIL],
@@ -256,7 +240,6 @@
   '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],
@@ -265,69 +248,67 @@
   '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],
+  'language/expressions/assignment/dstr-array-elem-iter-rtrn-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-iter-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-iter-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-iter-thrw-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-iter-thrw-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
+  'language/expressions/assignment/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-iter-rtrn-close-null': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-iter-thrw-close': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-iter-thrw-close-err': [FAIL],
+  'language/expressions/assignment/dstr-array-rest-lref-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-iter-rtrn-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-iter-rtrn-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-iter-rtrn-close-null': [FAIL],
+  'language/statements/for-of/dstr-array-elem-iter-thrw-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-iter-thrw-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-list-rtrn-close-null': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-list-thrw-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-rtrn-close-null': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close': [FAIL],
+  'language/statements/for-of/dstr-array-elem-trlg-iter-rest-thrw-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-rest-iter-rtrn-close': [FAIL],
+  'language/statements/for-of/dstr-array-rest-iter-rtrn-close-err': [FAIL],
+  'language/statements/for-of/dstr-array-rest-iter-rtrn-close-null': [FAIL],
+  'language/statements/for-of/dstr-array-rest-iter-thrw-close': [FAIL],
+  'language/statements/for-of/dstr-array-rest-iter-thrw-close-err': [FAIL],
+  'language/statements/for-of/dstr-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
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4628
   '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],
 
@@ -355,9 +336,159 @@
   '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],
+  # https://bugs.chromium.org/p/v8/issues/detail?id=1569
+  'language/module-code/*': [SKIP],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5111
+  'annexB/language/function-code/block-decl-func-skip-param': [FAIL],
+  'annexB/language/function-code/if-decl-else-decl-a-func-skip-param': [FAIL],
+  'annexB/language/function-code/if-decl-else-decl-b-func-skip-param': [FAIL],
+  'annexB/language/function-code/if-decl-else-stmt-func-skip-param': [FAIL],
+  'annexB/language/function-code/if-decl-no-else-func-skip-param': [FAIL],
+  'annexB/language/function-code/if-stmt-else-decl-func-skip-param': [FAIL],
+  'annexB/language/function-code/switch-case-func-skip-param': [FAIL],
+  'annexB/language/function-code/switch-dflt-func-skip-param': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5112
+  'language/statements/try/scope-catch-block-lex-open': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5012
+  'intl402/Intl/getCanonicalLocales/*': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5113
+  'built-ins/TypedArray/prototype/toLocaleString/calls-tolocalestring-from-each-value': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/calls-tostring-from-each-value': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/calls-valueof-from-each-value': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tolocalestring': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-tostring': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-firstelement-valueof': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tolocalestring': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-tostring': [FAIL],
+  'built-ins/TypedArray/prototype/toLocaleString/return-abrupt-from-nextelement-valueof': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5115
+  'language/statements/class/subclass/class-definition-null-proto-missing-return-override': [FAIL],
+  'language/statements/class/subclass/class-definition-null-proto-this': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5116
+  'built-ins/Object/internals/DefineOwnProperty/nan-equivalence': [PASS, FAIL],
+  'built-ins/TypedArray/prototype/fill/fill-values-conversion-operations-consistent-nan': [PASS, FAIL],
+  'built-ins/TypedArrays/internals/DefineOwnProperty/conversion-operation-consistent-nan': [PASS, FAIL],
+  'built-ins/TypedArrays/internals/Set/conversion-operation-consistent-nan': [PASS, FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5070
+  'annexB/built-ins/Object/prototype/__defineGetter__/define-non-configurable': [FAIL],
+  'annexB/built-ins/Object/prototype/__defineGetter__/define-non-extensible': [FAIL],
+  'annexB/built-ins/Object/prototype/__defineGetter__/this-non-obj': [FAIL],
+  'annexB/built-ins/Object/prototype/__defineSetter__/define-non-configurable': [FAIL],
+  'annexB/built-ins/Object/prototype/__defineSetter__/define-non-extensible': [FAIL],
+  'annexB/built-ins/Object/prototype/__defineSetter__/this-non-obj': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/this-non-obj': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/this-non-obj': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5120
+  'built-ins/DataView/negative-bytelength-throws': [FAIL],
+  'built-ins/DataView/prototype/getFloat32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getFloat64/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt16/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getInt8/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint16/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/getUint8/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setFloat32/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setFloat32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setFloat64/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setFloat64/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt16/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setInt16/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt32/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setInt32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setInt8/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setInt8/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint16/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setUint16/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint32/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setUint32/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/prototype/setUint8/no-value-arg': [FAIL],
+  'built-ins/DataView/prototype/setUint8/toindex-byteoffset': [FAIL],
+  'built-ins/DataView/toindex-byteoffset': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5121
+  'language/expressions/assignment/destructuring/obj-prop-__proto__dup': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5124
+  'built-ins/TypedArrays/length-arg-toindex-length': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4973
+  'language/literals/numeric/non-octal-decimal-integer-strict': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5130
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-own-data': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-own-get-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-own-proto-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-proto-data': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-proto-get-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupGetter__/lookup-proto-proto-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-own-data': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-own-get-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-own-proto-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-proto-data': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-proto-get-err': [FAIL],
+  'annexB/built-ins/Object/prototype/__lookupSetter__/lookup-proto-proto-err': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5134
+  'built-ins/Array/prototype/concat/is-concat-spreadable-is-array-proxy-revoked': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=4451
+  'annexB/language/eval-code/direct/global-block-decl-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-if-decl-else-decl-a-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-if-decl-else-decl-b-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-if-decl-else-stmt-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-if-decl-no-else-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-if-stmt-else-decl-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-switch-case-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/direct/global-switch-dflt-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-block-decl-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-if-decl-else-decl-a-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-if-decl-else-decl-b-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-if-decl-else-stmt-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-if-decl-no-else-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-if-stmt-else-decl-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-switch-case-eval-global-exsting-global-init': [FAIL],
+  'annexB/language/eval-code/indirect/global-switch-dflt-eval-global-exsting-global-init': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5135
+  'annexB/language/eval-code/direct/func-block-decl-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-if-decl-else-decl-a-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-if-decl-else-decl-b-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-if-decl-else-stmt-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-if-decl-no-else-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-if-stmt-else-decl-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-switch-case-eval-func-block-scoping': [FAIL],
+  'annexB/language/eval-code/direct/func-switch-dflt-eval-func-block-scoping': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5136
+  'annexB/language/comments/multi-line-html-close': [FAIL],
+  'annexB/language/comments/single-line-html-close': [FAIL],
+  'annexB/language/comments/single-line-html-close-asi': [FAIL],
+  'annexB/language/comments/single-line-html-open': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5137
+  'annexB/built-ins/RegExp/prototype/compile/flags-undefined': [FAIL],
+  'annexB/built-ins/RegExp/prototype/compile/pattern-regexp-distinct': [FAIL],
+  'annexB/built-ins/RegExp/prototype/compile/pattern-regexp-same': [FAIL],
+  'annexB/built-ins/RegExp/prototype/compile/pattern-undefined': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5138
+  'annexB/built-ins/RegExp/prototype/compile/pattern-regexp-immutable-lastindex': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5139
+  'annexB/built-ins/Date/prototype/setYear/time-clip': [FAIL],
+  'annexB/built-ins/Date/prototype/setYear/year-number-relative': [FAIL],
+
+  # https://bugs.chromium.org/p/v8/issues/detail?id=5140
+  'annexB/built-ins/String/prototype/substr/start-to-int-err': [FAIL],
 
   ######################## NEEDS INVESTIGATION ###########################
 
@@ -370,7 +501,6 @@
   'intl402/Collator/10.1.2_a': [PASS, FAIL],
   'intl402/Collator/10.2.3_b': [PASS, FAIL],
   'intl402/Collator/prototype/10.3_a': [FAIL],
-  'intl402/DateTimeFormat/12.1.1': [FAIL],
   'intl402/DateTimeFormat/12.1.2': [PASS, FAIL],
   'intl402/DateTimeFormat/12.1.2.1_4': [FAIL],
   'intl402/DateTimeFormat/12.2.3_b': [FAIL],
@@ -420,6 +550,15 @@
   # Test262 Bug: https://bugs.ecmascript.org/show_bug.cgi?id=596
   'built-ins/Array/prototype/sort/bug_596_1': [PASS, FAIL_OK],
 
+  # https://github.com/tc39/test262/issues/677
+  'built-ins/RegExp/prototype/source/15.10.7.1-1': [FAIL],
+  'built-ins/RegExp/prototype/global/15.10.7.2-1': [FAIL],
+  'built-ins/RegExp/prototype/ignoreCase/15.10.7.3-1': [FAIL],
+  'built-ins/RegExp/prototype/multiline/15.10.7.4-1': [FAIL],
+
+  # https://github.com/tc39/test262/issues/694
+  'language/statements/class/subclass/builtin-objects/ArrayBuffer/regular-subclassing': [FAIL],
+
   ############################ SKIPPED TESTS #############################
 
   # These tests take a looong time to run.
@@ -496,6 +635,7 @@
   # https://bugs.chromium.org/p/v8/issues/detail?id=4639
   # The failed allocation causes an asan/msan/tsan error
   'built-ins/ArrayBuffer/allocation-limit': [SKIP],
+  'built-ins/ArrayBuffer/length-is-too-large-throws': [SKIP],
 }],  # asan == True or msan == True or tsan == True
 
 ]
diff --git a/test/unittests/BUILD.gn b/test/unittests/BUILD.gn
new file mode 100644
index 0000000..b962673
--- /dev/null
+++ b/test/unittests/BUILD.gn
@@ -0,0 +1,182 @@
+# 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.
+
+# Please keep this file in sync with unittests.gyp.
+
+import("../../gni/v8.gni")
+
+v8_executable("unittests") {
+  testonly = true
+
+  sources = [
+    "base/atomic-utils-unittest.cc",
+    "base/bits-unittest.cc",
+    "base/cpu-unittest.cc",
+    "base/division-by-constant-unittest.cc",
+    "base/flags-unittest.cc",
+    "base/functional-unittest.cc",
+    "base/ieee754-unittest.cc",
+    "base/iterator-unittest.cc",
+    "base/logging-unittest.cc",
+    "base/platform/condition-variable-unittest.cc",
+    "base/platform/mutex-unittest.cc",
+    "base/platform/platform-unittest.cc",
+    "base/platform/semaphore-unittest.cc",
+    "base/platform/time-unittest.cc",
+    "base/sys-info-unittest.cc",
+    "base/utils/random-number-generator-unittest.cc",
+    "cancelable-tasks-unittest.cc",
+    "char-predicates-unittest.cc",
+    "compiler/branch-elimination-unittest.cc",
+    "compiler/checkpoint-elimination-unittest.cc",
+    "compiler/common-operator-reducer-unittest.cc",
+    "compiler/common-operator-unittest.cc",
+    "compiler/compiler-test-utils.h",
+    "compiler/control-equivalence-unittest.cc",
+    "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",
+    "compiler/graph-trimmer-unittest.cc",
+    "compiler/graph-unittest.cc",
+    "compiler/graph-unittest.h",
+    "compiler/instruction-selector-unittest.cc",
+    "compiler/instruction-selector-unittest.h",
+    "compiler/instruction-sequence-unittest.cc",
+    "compiler/instruction-sequence-unittest.h",
+    "compiler/int64-lowering-unittest.cc",
+    "compiler/js-builtin-reducer-unittest.cc",
+    "compiler/js-create-lowering-unittest.cc",
+    "compiler/js-intrinsic-lowering-unittest.cc",
+    "compiler/js-operator-unittest.cc",
+    "compiler/js-typed-lowering-unittest.cc",
+    "compiler/linkage-tail-call-unittest.cc",
+    "compiler/live-range-unittest.cc",
+    "compiler/liveness-analyzer-unittest.cc",
+    "compiler/load-elimination-unittest.cc",
+    "compiler/loop-peeling-unittest.cc",
+    "compiler/machine-operator-reducer-unittest.cc",
+    "compiler/machine-operator-unittest.cc",
+    "compiler/move-optimizer-unittest.cc",
+    "compiler/node-cache-unittest.cc",
+    "compiler/node-matchers-unittest.cc",
+    "compiler/node-properties-unittest.cc",
+    "compiler/node-test-utils.cc",
+    "compiler/node-test-utils.h",
+    "compiler/node-unittest.cc",
+    "compiler/opcodes-unittest.cc",
+    "compiler/register-allocator-unittest.cc",
+    "compiler/schedule-unittest.cc",
+    "compiler/scheduler-rpo-unittest.cc",
+    "compiler/scheduler-unittest.cc",
+    "compiler/simplified-operator-reducer-unittest.cc",
+    "compiler/simplified-operator-unittest.cc",
+    "compiler/state-values-utils-unittest.cc",
+    "compiler/tail-call-optimization-unittest.cc",
+    "compiler/typer-unittest.cc",
+    "compiler/value-numbering-reducer-unittest.cc",
+    "compiler/zone-pool-unittest.cc",
+    "counters-unittest.cc",
+    "heap/bitmap-unittest.cc",
+    "heap/gc-idle-time-handler-unittest.cc",
+    "heap/gc-tracer-unittest.cc",
+    "heap/heap-unittest.cc",
+    "heap/memory-reducer-unittest.cc",
+    "heap/scavenge-job-unittest.cc",
+    "heap/slot-set-unittest.cc",
+    "interpreter/bytecode-array-builder-unittest.cc",
+    "interpreter/bytecode-array-iterator-unittest.cc",
+    "interpreter/bytecode-array-writer-unittest.cc",
+    "interpreter/bytecode-dead-code-optimizer-unittest.cc",
+    "interpreter/bytecode-peephole-optimizer-unittest.cc",
+    "interpreter/bytecode-pipeline-unittest.cc",
+    "interpreter/bytecode-register-allocator-unittest.cc",
+    "interpreter/bytecode-register-optimizer-unittest.cc",
+    "interpreter/bytecodes-unittest.cc",
+    "interpreter/constant-array-builder-unittest.cc",
+    "interpreter/interpreter-assembler-unittest.cc",
+    "interpreter/interpreter-assembler-unittest.h",
+    "interpreter/source-position-table-unittest.cc",
+    "libplatform/default-platform-unittest.cc",
+    "libplatform/task-queue-unittest.cc",
+    "libplatform/worker-thread-unittest.cc",
+    "locked-queue-unittest.cc",
+    "register-configuration-unittest.cc",
+    "run-all-unittests.cc",
+    "test-utils.cc",
+    "test-utils.h",
+    "wasm/asm-types-unittest.cc",
+    "wasm/ast-decoder-unittest.cc",
+    "wasm/control-transfer-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",
+  ]
+
+  if (v8_target_cpu == "arm") {
+    sources += [ "compiler/arm/instruction-selector-arm-unittest.cc" ]
+  } else if (v8_target_cpu == "arm64") {
+    sources += [ "compiler/arm64/instruction-selector-arm64-unittest.cc" ]
+  } else if (v8_target_cpu == "x86") {
+    sources += [ "compiler/ia32/instruction-selector-ia32-unittest.cc" ]
+  } else if (v8_target_cpu == "mips" || v8_target_cpu == "mipsel") {
+    sources += [ "compiler/mips/instruction-selector-mips-unittest.cc" ]
+  } else if (v8_target_cpu == "mips64" || v8_target_cpu == "mips64el") {
+    sources += [ "compiler/mips64/instruction-selector-mips64-unittest.cc" ]
+  } else if (v8_target_cpu == "x64") {
+    sources += [ "compiler/x64/instruction-selector-x64-unittest.cc" ]
+  } else if (v8_target_cpu == "ppc" || v8_target_cpu == "ppc64") {
+    sources += [ "compiler/ppc/instruction-selector-ppc-unittest.cc" ]
+  } else if (v8_target_cpu == "s390" || v8_target_cpu == "s390x") {
+    sources += [ "compiler/s390/instruction-selector-s390-unittest.cc" ]
+  }
+
+  configs = [
+    "../..:external_config",
+    "../..:internal_config_base",
+  ]
+
+  # TODO(machenbach): Translate from gyp.
+  #['OS=="aix"', {
+  #  'ldflags': [ '-Wl,-bbigtoc' ],
+  #}],
+
+  deps = [
+    "../..:v8_libplatform",
+    "//build/config/sanitizers:deps",
+    "//build/win:default_exe_manifest",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+
+  if (is_component_build) {
+    # compiler-unittests can't be built against a shared library, so we
+    # need to depend on the underlying static target in that case.
+    deps += [ "../..:v8_maybe_snapshot" ]
+  } else {
+    deps += [ "../..:v8" ]
+  }
+
+  if (is_win) {
+    # This warning is benignly triggered by the U16 and U32 macros in
+    # bytecode-utils.h.
+    # C4309: 'static_cast': truncation of constant value
+    cflags = [ "/wd4309" ]
+
+    # Suppress warnings about importing locally defined symbols.
+    if (is_component_build) {
+      ldflags = [
+        "/ignore:4049",
+        "/ignore:4217",
+      ]
+    }
+  }
+}
diff --git a/test/unittests/base/ieee754-unittest.cc b/test/unittests/base/ieee754-unittest.cc
new file mode 100644
index 0000000..8c71b57
--- /dev/null
+++ b/test/unittests/base/ieee754-unittest.cc
@@ -0,0 +1,323 @@
+// 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 <limits>
+
+#include "src/base/ieee754.h"
+#include "src/base/macros.h"
+#include "testing/gmock-support.h"
+#include "testing/gtest-support.h"
+
+using testing::BitEq;
+using testing::IsNaN;
+
+namespace v8 {
+namespace base {
+namespace ieee754 {
+
+namespace {
+
+double const kE = 2.718281828459045;
+double const kPI = 3.141592653589793;
+double const kTwo120 = 1.329227995784916e+36;
+
+}  // namespace
+
+TEST(Ieee754, Atan) {
+  EXPECT_THAT(atan(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(atan(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(atan(-0.0), BitEq(-0.0));
+  EXPECT_THAT(atan(0.0), BitEq(0.0));
+  EXPECT_DOUBLE_EQ(1.5707963267948966,
+                   atan(std::numeric_limits<double>::infinity()));
+  EXPECT_DOUBLE_EQ(-1.5707963267948966,
+                   atan(-std::numeric_limits<double>::infinity()));
+}
+
+TEST(Ieee754, Atan2) {
+  EXPECT_THAT(atan2(std::numeric_limits<double>::quiet_NaN(),
+                    std::numeric_limits<double>::quiet_NaN()),
+              IsNaN());
+  EXPECT_THAT(atan2(std::numeric_limits<double>::quiet_NaN(),
+                    std::numeric_limits<double>::signaling_NaN()),
+              IsNaN());
+  EXPECT_THAT(atan2(std::numeric_limits<double>::signaling_NaN(),
+                    std::numeric_limits<double>::quiet_NaN()),
+              IsNaN());
+  EXPECT_THAT(atan2(std::numeric_limits<double>::signaling_NaN(),
+                    std::numeric_limits<double>::signaling_NaN()),
+              IsNaN());
+  EXPECT_DOUBLE_EQ(0.7853981633974483,
+                   atan2(std::numeric_limits<double>::infinity(),
+                         std::numeric_limits<double>::infinity()));
+  EXPECT_DOUBLE_EQ(2.356194490192345,
+                   atan2(std::numeric_limits<double>::infinity(),
+                         -std::numeric_limits<double>::infinity()));
+  EXPECT_DOUBLE_EQ(-0.7853981633974483,
+                   atan2(-std::numeric_limits<double>::infinity(),
+                         std::numeric_limits<double>::infinity()));
+  EXPECT_DOUBLE_EQ(-2.356194490192345,
+                   atan2(-std::numeric_limits<double>::infinity(),
+                         -std::numeric_limits<double>::infinity()));
+}
+
+TEST(Ieee754, Atanh) {
+  EXPECT_THAT(atanh(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(atanh(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(atanh(std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), atanh(1));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), atanh(-1));
+  EXPECT_DOUBLE_EQ(0.54930614433405478, atanh(0.5));
+}
+
+TEST(Ieee754, Cos) {
+  // Test values mentioned in the EcmaScript spec.
+  EXPECT_THAT(cos(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(cos(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(cos(std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(cos(-std::numeric_limits<double>::infinity()), IsNaN());
+
+  // Tests for cos for |x| < pi/4
+  EXPECT_EQ(1.0, 1 / cos(-0.0));
+  EXPECT_EQ(1.0, 1 / cos(0.0));
+  // cos(x) = 1 for |x| < 2^-27
+  EXPECT_EQ(1, cos(2.3283064365386963e-10));
+  EXPECT_EQ(1, cos(-2.3283064365386963e-10));
+  // Test KERNELCOS for |x| < 0.3.
+  // cos(pi/20) = sqrt(sqrt(2)*sqrt(sqrt(5)+5)+4)/2^(3/2)
+  EXPECT_EQ(0.9876883405951378, cos(0.15707963267948966));
+  // Test KERNELCOS for x ~= 0.78125
+  EXPECT_EQ(0.7100335477927638, cos(0.7812504768371582));
+  EXPECT_EQ(0.7100338835660797, cos(0.78125));
+  // Test KERNELCOS for |x| > 0.3.
+  // cos(pi/8) = sqrt(sqrt(2)+1)/2^(3/4)
+  EXPECT_EQ(0.9238795325112867, cos(0.39269908169872414));
+  // Test KERNELTAN for |x| < 0.67434.
+  EXPECT_EQ(0.9238795325112867, cos(-0.39269908169872414));
+
+  // Tests for cos.
+  EXPECT_EQ(1, cos(3.725290298461914e-9));
+  // Cover different code paths in KERNELCOS.
+  EXPECT_EQ(0.9689124217106447, cos(0.25));
+  EXPECT_EQ(0.8775825618903728, cos(0.5));
+  EXPECT_EQ(0.7073882691671998, cos(0.785));
+  // Test that cos(Math.PI/2) != 0 since Math.PI is not exact.
+  EXPECT_EQ(6.123233995736766e-17, cos(1.5707963267948966));
+  // Test cos for various phases.
+  EXPECT_EQ(0.7071067811865474, cos(7.0 / 4 * kPI));
+  EXPECT_EQ(0.7071067811865477, cos(9.0 / 4 * kPI));
+  EXPECT_EQ(-0.7071067811865467, cos(11.0 / 4 * kPI));
+  EXPECT_EQ(-0.7071067811865471, cos(13.0 / 4 * kPI));
+  EXPECT_EQ(0.9367521275331447, cos(1000000.0));
+  EXPECT_EQ(-3.435757038074824e-12, cos(1048575.0 / 2 * kPI));
+
+  // Test Hayne-Panek reduction.
+  EXPECT_EQ(-0.9258790228548379e0, cos(kTwo120));
+  EXPECT_EQ(-0.9258790228548379e0, cos(-kTwo120));
+}
+
+TEST(Ieee754, Exp) {
+  EXPECT_THAT(exp(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(exp(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_EQ(0.0, exp(-std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(0.0, exp(-1000));
+  EXPECT_EQ(0.0, exp(-745.1332191019412));
+  EXPECT_EQ(2.2250738585072626e-308, exp(-708.39641853226408));
+  EXPECT_EQ(3.307553003638408e-308, exp(-708.0));
+  EXPECT_EQ(4.9406564584124654e-324, exp(-7.45133219101941108420e+02));
+  EXPECT_EQ(0.36787944117144233, exp(-1.0));
+  EXPECT_EQ(1.0, exp(-0.0));
+  EXPECT_EQ(1.0, exp(0.0));
+  EXPECT_EQ(1.0, exp(2.2250738585072014e-308));
+
+  // Test that exp(x) is monotonic near 1.
+  EXPECT_GE(exp(1.0), exp(0.9999999999999999));
+  EXPECT_LE(exp(1.0), exp(1.0000000000000002));
+
+  // Test that we produce the correctly rounded result for 1.
+  EXPECT_EQ(kE, exp(1.0));
+
+  EXPECT_EQ(7.38905609893065e0, exp(2.0));
+  EXPECT_EQ(1.7976931348622732e308, exp(7.09782712893383973096e+02));
+  EXPECT_EQ(2.6881171418161356e+43, exp(100.0));
+  EXPECT_EQ(8.218407461554972e+307, exp(709.0));
+  EXPECT_EQ(1.7968190737295725e308, exp(709.7822265625e0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), exp(709.7827128933841e0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), exp(710.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), exp(1000.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            exp(std::numeric_limits<double>::infinity()));
+}
+
+TEST(Ieee754, Expm1) {
+  EXPECT_THAT(expm1(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(expm1(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_EQ(-1.0, expm1(-std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            expm1(std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(0.0, expm1(-0.0));
+  EXPECT_EQ(0.0, expm1(0.0));
+  EXPECT_EQ(1.718281828459045, expm1(1.0));
+  EXPECT_EQ(2.6881171418161356e+43, expm1(100.0));
+  EXPECT_EQ(8.218407461554972e+307, expm1(709.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), expm1(710.0));
+}
+
+TEST(Ieee754, Log) {
+  EXPECT_THAT(log(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(log(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(log(-std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(log(-1.0), IsNaN());
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log(-0.0));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log(0.0));
+  EXPECT_EQ(0.0, log(1.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            log(std::numeric_limits<double>::infinity()));
+
+  // Test that log(E) produces the correctly rounded result.
+  EXPECT_EQ(1.0, log(kE));
+}
+
+TEST(Ieee754, Log1p) {
+  EXPECT_THAT(log1p(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(log1p(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(log1p(-std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log1p(-1.0));
+  EXPECT_EQ(0.0, log1p(0.0));
+  EXPECT_EQ(-0.0, log1p(-0.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            log1p(std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(6.9756137364252422e-03, log1p(0.007));
+  EXPECT_EQ(709.782712893384, log1p(1.7976931348623157e308));
+  EXPECT_EQ(2.7755575615628914e-17, log1p(2.7755575615628914e-17));
+  EXPECT_EQ(9.313225741817976e-10, log1p(9.313225746154785e-10));
+  EXPECT_EQ(-0.2876820724517809, log1p(-0.25));
+  EXPECT_EQ(0.22314355131420976, log1p(0.25));
+  EXPECT_EQ(2.3978952727983707, log1p(10));
+  EXPECT_EQ(36.841361487904734, log1p(10e15));
+  EXPECT_EQ(37.08337388996168, log1p(12738099905822720));
+  EXPECT_EQ(37.08336444902049, log1p(12737979646738432));
+  EXPECT_EQ(1.3862943611198906, log1p(3));
+  EXPECT_EQ(1.3862945995384413, log1p(3 + 9.5367431640625e-7));
+  EXPECT_EQ(0.5596157879354227, log1p(0.75));
+  EXPECT_EQ(0.8109302162163288, log1p(1.25));
+}
+
+TEST(Ieee754, Log2) {
+  EXPECT_THAT(log2(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(log2(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(log2(-std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(log2(-1.0), IsNaN());
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log2(0.0));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log2(-0.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            log2(std::numeric_limits<double>::infinity()));
+}
+
+TEST(Ieee754, Log10) {
+  EXPECT_THAT(log10(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(log10(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(log10(-std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(log10(-1.0), IsNaN());
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log10(0.0));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), log10(-0.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            log10(std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(3.0, log10(1000.0));
+  EXPECT_EQ(14.0, log10(100000000000000));  // log10(10 ^ 14)
+  EXPECT_EQ(3.7389561269540406, log10(5482.2158));
+  EXPECT_EQ(14.661551142893833, log10(458723662312872.125782332587));
+  EXPECT_EQ(-0.9083828622192334, log10(0.12348583358871));
+  EXPECT_EQ(5.0, log10(100000.0));
+}
+
+TEST(Ieee754, Cbrt) {
+  EXPECT_THAT(cbrt(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(cbrt(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_EQ(std::numeric_limits<double>::infinity(),
+            cbrt(std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(),
+            cbrt(-std::numeric_limits<double>::infinity()));
+  EXPECT_EQ(1.4422495703074083, cbrt(3));
+  EXPECT_EQ(100, cbrt(100 * 100 * 100));
+  EXPECT_EQ(46.415888336127786, cbrt(100000));
+}
+
+TEST(Ieee754, Sin) {
+  // Test values mentioned in the EcmaScript spec.
+  EXPECT_THAT(sin(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(sin(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(sin(std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(sin(-std::numeric_limits<double>::infinity()), IsNaN());
+
+  // Tests for sin for |x| < pi/4
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), 1 / sin(-0.0));
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), 1 / sin(0.0));
+  // sin(x) = x for x < 2^-27
+  EXPECT_EQ(2.3283064365386963e-10, sin(2.3283064365386963e-10));
+  EXPECT_EQ(-2.3283064365386963e-10, sin(-2.3283064365386963e-10));
+  // sin(pi/8) = sqrt(sqrt(2)-1)/2^(3/4)
+  EXPECT_EQ(0.3826834323650898, sin(0.39269908169872414));
+  EXPECT_EQ(-0.3826834323650898, sin(-0.39269908169872414));
+
+  // Tests for sin.
+  EXPECT_EQ(0.479425538604203, sin(0.5));
+  EXPECT_EQ(-0.479425538604203, sin(-0.5));
+  EXPECT_EQ(1, sin(kPI / 2.0));
+  EXPECT_EQ(-1, sin(-kPI / 2.0));
+  // Test that sin(Math.PI) != 0 since Math.PI is not exact.
+  EXPECT_EQ(1.2246467991473532e-16, sin(kPI));
+  EXPECT_EQ(-7.047032979958965e-14, sin(2200.0 * kPI));
+  // Test sin for various phases.
+  EXPECT_EQ(-0.7071067811865477, sin(7.0 / 4.0 * kPI));
+  EXPECT_EQ(0.7071067811865474, sin(9.0 / 4.0 * kPI));
+  EXPECT_EQ(0.7071067811865483, sin(11.0 / 4.0 * kPI));
+  EXPECT_EQ(-0.7071067811865479, sin(13.0 / 4.0 * kPI));
+  EXPECT_EQ(-3.2103381051568376e-11, sin(1048576.0 / 4 * kPI));
+
+  // Test Hayne-Panek reduction.
+  EXPECT_EQ(0.377820109360752e0, sin(kTwo120));
+  EXPECT_EQ(-0.377820109360752e0, sin(-kTwo120));
+}
+
+TEST(Ieee754, Tan) {
+  // Test values mentioned in the EcmaScript spec.
+  EXPECT_THAT(tan(std::numeric_limits<double>::quiet_NaN()), IsNaN());
+  EXPECT_THAT(tan(std::numeric_limits<double>::signaling_NaN()), IsNaN());
+  EXPECT_THAT(tan(std::numeric_limits<double>::infinity()), IsNaN());
+  EXPECT_THAT(tan(-std::numeric_limits<double>::infinity()), IsNaN());
+
+  // Tests for tan for |x| < pi/4
+  EXPECT_EQ(std::numeric_limits<double>::infinity(), 1 / tan(0.0));
+  EXPECT_EQ(-std::numeric_limits<double>::infinity(), 1 / tan(-0.0));
+  // tan(x) = x for |x| < 2^-28
+  EXPECT_EQ(2.3283064365386963e-10, tan(2.3283064365386963e-10));
+  EXPECT_EQ(-2.3283064365386963e-10, tan(-2.3283064365386963e-10));
+  // Test KERNELTAN for |x| > 0.67434.
+  EXPECT_EQ(0.8211418015898941, tan(11.0 / 16.0));
+  EXPECT_EQ(-0.8211418015898941, tan(-11.0 / 16.0));
+  EXPECT_EQ(0.41421356237309503, tan(0.39269908169872414));
+  // crbug/427468
+  EXPECT_EQ(0.7993357819992383, tan(0.6743358));
+
+  // Tests for tan.
+  EXPECT_EQ(3.725290298461914e-9, tan(3.725290298461914e-9));
+  // Test that tan(PI/2) != Infinity since PI is not exact.
+  EXPECT_EQ(1.633123935319537e16, tan(kPI / 2));
+  // Cover different code paths in KERNELTAN (tangent and cotangent)
+  EXPECT_EQ(0.5463024898437905, tan(0.5));
+  EXPECT_EQ(2.0000000000000027, tan(1.107148717794091));
+  EXPECT_EQ(-1.0000000000000004, tan(7.0 / 4.0 * kPI));
+  EXPECT_EQ(0.9999999999999994, tan(9.0 / 4.0 * kPI));
+  EXPECT_EQ(-6.420676210313675e-11, tan(1048576.0 / 2.0 * kPI));
+  EXPECT_EQ(2.910566692924059e11, tan(1048575.0 / 2.0 * kPI));
+
+  // Test Hayne-Panek reduction.
+  EXPECT_EQ(-0.40806638884180424e0, tan(kTwo120));
+  EXPECT_EQ(0.40806638884180424e0, tan(-kTwo120));
+}
+
+}  // namespace ieee754
+}  // namespace base
+}  // namespace v8
diff --git a/test/unittests/base/platform/time-unittest.cc b/test/unittests/base/platform/time-unittest.cc
index 784fbf8..9aa609f 100644
--- a/test/unittests/base/platform/time-unittest.cc
+++ b/test/unittests/base/platform/time-unittest.cc
@@ -15,6 +15,8 @@
 #include "src/base/win32-headers.h"
 #endif
 
+#include <vector>
+
 #include "src/base/platform/elapsed-timer.h"
 #include "src/base/platform/platform.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -185,7 +187,7 @@
 
 
 // Disable on windows until it is implemented.
-#if V8_OS_ANDROID || V8_OS_WIN
+#if V8_OS_ANDROID
 #define MAYBE_ThreadNow DISABLED_ThreadNow
 #else
 #define MAYBE_ThreadNow ThreadNow
@@ -210,5 +212,50 @@
   }
 }
 
+
+#if V8_OS_WIN
+TEST(TimeTicks, TimerPerformance) {
+  // Verify that various timer mechanisms can always complete quickly.
+  // Note:  This is a somewhat arbitrary test.
+  const int kLoops = 10000;
+
+  typedef TimeTicks (*TestFunc)();
+  struct TestCase {
+    TestFunc func;
+    const char *description;
+  };
+  // Cheating a bit here:  assumes sizeof(TimeTicks) == sizeof(Time)
+  // in order to create a single test case list.
+  static_assert(sizeof(TimeTicks) == sizeof(Time),
+                "TimeTicks and Time must be the same size");
+  std::vector<TestCase> cases;
+  cases.push_back({reinterpret_cast<TestFunc>(&Time::Now), "Time::Now"});
+  cases.push_back({&TimeTicks::Now, "TimeTicks::Now"});
+
+  if (ThreadTicks::IsSupported()) {
+    ThreadTicks::WaitUntilInitialized();
+    cases.push_back(
+        {reinterpret_cast<TestFunc>(&ThreadTicks::Now), "ThreadTicks::Now"});
+  }
+
+  for (const auto& test_case : cases) {
+    TimeTicks start = TimeTicks::Now();
+    for (int index = 0; index < kLoops; index++)
+      test_case.func();
+    TimeTicks stop = TimeTicks::Now();
+    // Turning off the check for acceptible delays.  Without this check,
+    // the test really doesn't do much other than measure.  But the
+    // measurements are still useful for testing timers on various platforms.
+    // The reason to remove the check is because the tests run on many
+    // buildbots, some of which are VMs.  These machines can run horribly
+    // slow, and there is really no value for checking against a max timer.
+    // const int kMaxTime = 35;  // Maximum acceptible milliseconds for test.
+    // EXPECT_LT((stop - start).InMilliseconds(), kMaxTime);
+    printf("%s: %1.2fus per call\n", test_case.description,
+           (stop - start).InMillisecondsF() * 1000 / kLoops);
+  }
+}
+#endif  // V8_OS_WIN
+
 }  // 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 b088d8e..fa03039 100644
--- a/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
+++ b/test/unittests/compiler/arm/instruction-selector-arm-unittest.cc
@@ -1392,8 +1392,8 @@
     EXPECT_EQ(memacc.str_opcode, s[0]->arch_opcode());
     EXPECT_EQ(kMode_Offset_RI, 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());
   }
 }
@@ -1403,6 +1403,39 @@
                         InstructionSelectorMemoryAccessTest,
                         ::testing::ValuesIn(kMemoryAccesses));
 
+TEST_F(InstructionSelectorMemoryAccessTest, LoadWithShiftedIndex) {
+  TRACED_FORRANGE(int, immediate_shift, 1, 31) {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Pointer(),
+                    MachineType::Int32());
+    Node* const index =
+        m.Word32Shl(m.Parameter(1), m.Int32Constant(immediate_shift));
+    m.Return(m.Load(MachineType::Int32(), m.Parameter(0), index));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArmLdr, 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());
+  }
+}
+
+TEST_F(InstructionSelectorMemoryAccessTest, StoreWithShiftedIndex) {
+  TRACED_FORRANGE(int, immediate_shift, 1, 31) {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Pointer(),
+                    MachineType::Int32(), MachineType::Int32());
+    Node* const index =
+        m.Word32Shl(m.Parameter(1), m.Int32Constant(immediate_shift));
+    m.Store(MachineRepresentation::kWord32, m.Parameter(0), index,
+            m.Parameter(2), kNoWriteBarrier);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArmStr, 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());
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Conversions.
@@ -2228,7 +2261,7 @@
                   MachineType::Int32(), MachineType::Int32());
   m.Return(
       m.Int32Sub(m.Parameter(0), m.Int32Mul(m.Parameter(1), m.Parameter(2))));
-  Stream s = m.Build(MLS);
+  Stream s = m.Build(ARMv7);
   ASSERT_EQ(1U, s.size());
   EXPECT_EQ(kArmMls, s[0]->arch_opcode());
   EXPECT_EQ(1U, s[0]->OutputCount());
@@ -2324,7 +2357,7 @@
   StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
                   MachineType::Int32());
   m.Return(m.Int32Mod(m.Parameter(0), m.Parameter(1)));
-  Stream s = m.Build(MLS, SUDIV);
+  Stream s = m.Build(ARMv7, SUDIV);
   ASSERT_EQ(2U, s.size());
   EXPECT_EQ(kArmSdiv, s[0]->arch_opcode());
   ASSERT_EQ(1U, s[0]->OutputCount());
@@ -2530,7 +2563,7 @@
   StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
                   MachineType::Int32());
   m.Return(m.Uint32Mod(m.Parameter(0), m.Parameter(1)));
-  Stream s = m.Build(MLS, SUDIV);
+  Stream s = m.Build(ARMv7, SUDIV);
   ASSERT_EQ(2U, s.size());
   EXPECT_EQ(kArmUdiv, s[0]->arch_opcode());
   ASSERT_EQ(1U, s[0]->OutputCount());
@@ -3026,6 +3059,36 @@
   EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
 }
 
+TEST_F(InstructionSelectorTest, Float32Neg) {
+  StreamBuilder m(this, MachineType::Float32(), MachineType::Float32());
+  Node* const p0 = m.Parameter(0);
+  // Don't use m.Float32Neg() as that generates an explicit sub.
+  Node* const n = m.AddNode(m.machine()->Float32Neg().op(), m.Parameter(0));
+  m.Return(n);
+  Stream s = m.Build();
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmVnegF32, s[0]->arch_opcode());
+  ASSERT_EQ(1U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
+TEST_F(InstructionSelectorTest, Float64Neg) {
+  StreamBuilder m(this, MachineType::Float64(), MachineType::Float64());
+  Node* const p0 = m.Parameter(0);
+  // Don't use m.Float64Neg() as that generates an explicit sub.
+  Node* const n = m.AddNode(m.machine()->Float64Neg().op(), m.Parameter(0));
+  m.Return(n);
+  Stream s = m.Build();
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArmVnegF64, s[0]->arch_opcode());
+  ASSERT_EQ(1U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  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 1c638b2..5fc210b 100644
--- a/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc
+++ b/test/unittests/compiler/arm64/instruction-selector-arm64-unittest.cc
@@ -184,8 +184,11 @@
     {&RawMachineAssembler::Int32AddWithOverflow, "Int32AddWithOverflow",
      kArm64Add32, MachineType::Int32()},
     {&RawMachineAssembler::Int32SubWithOverflow, "Int32SubWithOverflow",
-     kArm64Sub32, MachineType::Int32()}};
-
+     kArm64Sub32, MachineType::Int32()},
+    {&RawMachineAssembler::Int64AddWithOverflow, "Int64AddWithOverflow",
+     kArm64Add, MachineType::Int64()},
+    {&RawMachineAssembler::Int64SubWithOverflow, "Int64SubWithOverflow",
+     kArm64Sub, MachineType::Int64()}};
 
 // ARM64 shift instructions.
 const Shift kShiftInstructions[] = {
@@ -1178,7 +1181,6 @@
   }
 }
 
-
 TEST_F(InstructionSelectorTest, Word32AndBranchWithOneBitMaskOnLeft) {
   TRACED_FORRANGE(int, bit, 0, 31) {
     uint32_t mask = 1 << bit;
@@ -1261,6 +1263,91 @@
   }
 }
 
+TEST_F(InstructionSelectorTest, Word32EqualZeroAndBranchWithOneBitMask) {
+  TRACED_FORRANGE(int, bit, 0, 31) {
+    uint32_t mask = 1 << bit;
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+    RawMachineLabel a, b;
+    m.Branch(m.Word32Equal(m.Word32And(m.Int32Constant(mask), m.Parameter(0)),
+                           m.Int32Constant(0)),
+             &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int32Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64TestAndBranch32, s[0]->arch_opcode());
+    EXPECT_EQ(kEqual, s[0]->flags_condition());
+    EXPECT_EQ(4U, s[0]->InputCount());
+    EXPECT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(1)->kind());
+    EXPECT_EQ(bit, s.ToInt32(s[0]->InputAt(1)));
+  }
+
+  TRACED_FORRANGE(int, bit, 0, 31) {
+    uint32_t mask = 1 << bit;
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+    RawMachineLabel a, b;
+    m.Branch(
+        m.Word32NotEqual(m.Word32And(m.Int32Constant(mask), m.Parameter(0)),
+                         m.Int32Constant(0)),
+        &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int32Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64TestAndBranch32, s[0]->arch_opcode());
+    EXPECT_EQ(kNotEqual, s[0]->flags_condition());
+    EXPECT_EQ(4U, s[0]->InputCount());
+    EXPECT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(1)->kind());
+    EXPECT_EQ(bit, s.ToInt32(s[0]->InputAt(1)));
+  }
+}
+
+TEST_F(InstructionSelectorTest, Word64EqualZeroAndBranchWithOneBitMask) {
+  TRACED_FORRANGE(int, bit, 0, 63) {
+    uint64_t mask = V8_UINT64_C(1) << bit;
+    StreamBuilder m(this, MachineType::Int64(), MachineType::Int64());
+    RawMachineLabel a, b;
+    m.Branch(m.Word64Equal(m.Word64And(m.Int64Constant(mask), m.Parameter(0)),
+                           m.Int64Constant(0)),
+             &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int64Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int64Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64TestAndBranch, s[0]->arch_opcode());
+    EXPECT_EQ(kEqual, s[0]->flags_condition());
+    EXPECT_EQ(4U, s[0]->InputCount());
+    EXPECT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(1)->kind());
+    EXPECT_EQ(bit, s.ToInt64(s[0]->InputAt(1)));
+  }
+
+  TRACED_FORRANGE(int, bit, 0, 63) {
+    uint64_t mask = V8_UINT64_C(1) << bit;
+    StreamBuilder m(this, MachineType::Int64(), MachineType::Int64());
+    RawMachineLabel a, b;
+    m.Branch(
+        m.Word64NotEqual(m.Word64And(m.Int64Constant(mask), m.Parameter(0)),
+                         m.Int64Constant(0)),
+        &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int64Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int64Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64TestAndBranch, s[0]->arch_opcode());
+    EXPECT_EQ(kNotEqual, s[0]->flags_condition());
+    EXPECT_EQ(4U, s[0]->InputCount());
+    EXPECT_EQ(InstructionOperand::IMMEDIATE, s[0]->InputAt(1)->kind());
+    EXPECT_EQ(bit, s.ToInt64(s[0]->InputAt(1)));
+  }
+}
 
 TEST_F(InstructionSelectorTest, CompareAgainstZeroAndBranch) {
   {
@@ -1298,6 +1385,75 @@
   }
 }
 
+TEST_F(InstructionSelectorTest, EqualZeroAndBranch) {
+  {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+    RawMachineLabel a, b;
+    Node* p0 = m.Parameter(0);
+    m.Branch(m.Word32Equal(p0, m.Int32Constant(0)), &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int32Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64CompareAndBranch32, s[0]->arch_opcode());
+    EXPECT_EQ(kEqual, s[0]->flags_condition());
+    EXPECT_EQ(3U, s[0]->InputCount());
+    EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  }
+
+  {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+    RawMachineLabel a, b;
+    Node* p0 = m.Parameter(0);
+    m.Branch(m.Word32NotEqual(p0, m.Int32Constant(0)), &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int32Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int32Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64CompareAndBranch32, s[0]->arch_opcode());
+    EXPECT_EQ(kNotEqual, s[0]->flags_condition());
+    EXPECT_EQ(3U, s[0]->InputCount());
+    EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  }
+
+  {
+    StreamBuilder m(this, MachineType::Int64(), MachineType::Int64());
+    RawMachineLabel a, b;
+    Node* p0 = m.Parameter(0);
+    m.Branch(m.Word64Equal(p0, m.Int64Constant(0)), &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int64Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int64Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64CompareAndBranch, s[0]->arch_opcode());
+    EXPECT_EQ(kEqual, s[0]->flags_condition());
+    EXPECT_EQ(3U, s[0]->InputCount());
+    EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  }
+
+  {
+    StreamBuilder m(this, MachineType::Int64(), MachineType::Int64());
+    RawMachineLabel a, b;
+    Node* p0 = m.Parameter(0);
+    m.Branch(m.Word64NotEqual(p0, m.Int64Constant(0)), &a, &b);
+    m.Bind(&a);
+    m.Return(m.Int64Constant(1));
+    m.Bind(&b);
+    m.Return(m.Int64Constant(0));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64CompareAndBranch, s[0]->arch_opcode());
+    EXPECT_EQ(kNotEqual, s[0]->flags_condition());
+    EXPECT_EQ(3U, s[0]->InputCount());
+    EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  }
+}
 
 // -----------------------------------------------------------------------------
 // Add and subtract instructions with overflow.
@@ -1453,6 +1609,29 @@
   }
 }
 
+TEST_P(InstructionSelectorOvfAddSubTest, RORShift) {
+  // ADD and SUB do not support ROR shifts, make sure we do not try
+  // to merge them into the ADD/SUB instruction.
+  const MachInst2 dpi = GetParam();
+  const MachineType type = dpi.machine_type;
+  auto rotate = &RawMachineAssembler::Word64Ror;
+  ArchOpcode rotate_opcode = kArm64Ror;
+  if (type == MachineType::Int32()) {
+    rotate = &RawMachineAssembler::Word32Ror;
+    rotate_opcode = kArm64Ror32;
+  }
+  TRACED_FORRANGE(int32_t, imm, -32, 63) {
+    StreamBuilder m(this, type, type, type);
+    Node* const p0 = m.Parameter(0);
+    Node* const p1 = m.Parameter(1);
+    Node* r = (m.*rotate)(p1, m.Int32Constant(imm));
+    m.Return((m.*dpi.constructor)(p0, r));
+    Stream s = m.Build();
+    ASSERT_EQ(2U, s.size());
+    EXPECT_EQ(rotate_opcode, s[0]->arch_opcode());
+    EXPECT_EQ(dpi.arch_opcode, s[1]->arch_opcode());
+  }
+}
 
 INSTANTIATE_TEST_CASE_P(InstructionSelectorTest,
                         InstructionSelectorOvfAddSubTest,
@@ -2846,6 +3025,7 @@
 struct IntegerCmp {
   MachInst2 mi;
   FlagsCondition cond;
+  FlagsCondition commuted_cond;
 };
 
 
@@ -2858,19 +3038,24 @@
 const IntegerCmp kIntegerCmpInstructions[] = {
     {{&RawMachineAssembler::Word32Equal, "Word32Equal", kArm64Cmp32,
       MachineType::Int32()},
+     kEqual,
      kEqual},
     {{&RawMachineAssembler::Int32LessThan, "Int32LessThan", kArm64Cmp32,
       MachineType::Int32()},
-     kSignedLessThan},
+     kSignedLessThan,
+     kSignedGreaterThan},
     {{&RawMachineAssembler::Int32LessThanOrEqual, "Int32LessThanOrEqual",
       kArm64Cmp32, MachineType::Int32()},
-     kSignedLessThanOrEqual},
+     kSignedLessThanOrEqual,
+     kSignedGreaterThanOrEqual},
     {{&RawMachineAssembler::Uint32LessThan, "Uint32LessThan", kArm64Cmp32,
       MachineType::Uint32()},
-     kUnsignedLessThan},
+     kUnsignedLessThan,
+     kUnsignedGreaterThan},
     {{&RawMachineAssembler::Uint32LessThanOrEqual, "Uint32LessThanOrEqual",
       kArm64Cmp32, MachineType::Uint32()},
-     kUnsignedLessThanOrEqual}};
+     kUnsignedLessThanOrEqual,
+     kUnsignedGreaterThanOrEqual}};
 
 }  // namespace
 
@@ -2907,6 +3092,156 @@
   }
 }
 
+TEST_F(InstructionSelectorTest, CmpWithImmediateOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    TRACED_FOREACH(int32_t, imm, kAddSubImmediates) {
+      // kEqual and kNotEqual trigger the cbz/cbnz optimization, which
+      // is tested elsewhere.
+      if (cmp.cond == kEqual || cmp.cond == kNotEqual) continue;
+      StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+      Node* const p0 = m.Parameter(0);
+      RawMachineLabel a, b;
+      m.Branch((m.*cmp.mi.constructor)(m.Int32Constant(imm), p0), &a, &b);
+      m.Bind(&a);
+      m.Return(m.Int32Constant(1));
+      m.Bind(&b);
+      m.Return(m.Int32Constant(0));
+      Stream s = m.Build();
+      ASSERT_EQ(1U, s.size());
+      EXPECT_EQ(kArm64Cmp32, s[0]->arch_opcode());
+      ASSERT_LE(2U, s[0]->InputCount());
+      EXPECT_EQ(kFlags_branch, s[0]->flags_mode());
+      EXPECT_EQ(cmp.commuted_cond, s[0]->flags_condition());
+      EXPECT_EQ(imm, s.ToInt32(s[0]->InputAt(1)));
+    }
+  }
+}
+
+TEST_F(InstructionSelectorTest, CmnWithImmediateOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    TRACED_FOREACH(int32_t, imm, kAddSubImmediates) {
+      // kEqual and kNotEqual trigger the cbz/cbnz optimization, which
+      // is tested elsewhere.
+      if (cmp.cond == kEqual || cmp.cond == kNotEqual) continue;
+      StreamBuilder m(this, MachineType::Int32(), MachineType::Int32());
+      Node* sub = m.Int32Sub(m.Int32Constant(0), m.Parameter(0));
+      RawMachineLabel a, b;
+      m.Branch((m.*cmp.mi.constructor)(m.Int32Constant(imm), sub), &a, &b);
+      m.Bind(&a);
+      m.Return(m.Int32Constant(1));
+      m.Bind(&b);
+      m.Return(m.Int32Constant(0));
+      Stream s = m.Build();
+      ASSERT_EQ(1U, s.size());
+      EXPECT_EQ(kArm64Cmn32, s[0]->arch_opcode());
+      ASSERT_LE(2U, s[0]->InputCount());
+      EXPECT_EQ(kFlags_branch, s[0]->flags_mode());
+      EXPECT_EQ(cmp.cond, s[0]->flags_condition());
+      EXPECT_EQ(imm, s.ToInt32(s[0]->InputAt(1)));
+    }
+  }
+}
+
+TEST_F(InstructionSelectorTest, CmpSignedExtendByteOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
+                    MachineType::Int32());
+    Node* extend = m.Word32Sar(m.Word32Shl(m.Parameter(0), m.Int32Constant(24)),
+                               m.Int32Constant(24));
+    m.Return((m.*cmp.mi.constructor)(extend, m.Parameter(1)));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64Cmp32, s[0]->arch_opcode());
+    EXPECT_EQ(kFlags_set, s[0]->flags_mode());
+    EXPECT_EQ(cmp.commuted_cond, s[0]->flags_condition());
+    EXPECT_EQ(kMode_Operand2_R_SXTB, s[0]->addressing_mode());
+  }
+}
+
+TEST_F(InstructionSelectorTest, CmnSignedExtendByteOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
+                    MachineType::Int32());
+    Node* sub = m.Int32Sub(m.Int32Constant(0), m.Parameter(0));
+    Node* extend = m.Word32Sar(m.Word32Shl(m.Parameter(0), m.Int32Constant(24)),
+                               m.Int32Constant(24));
+    m.Return((m.*cmp.mi.constructor)(extend, sub));
+    Stream s = m.Build();
+    ASSERT_EQ(1U, s.size());
+    EXPECT_EQ(kArm64Cmn32, s[0]->arch_opcode());
+    EXPECT_EQ(kFlags_set, s[0]->flags_mode());
+    EXPECT_EQ(cmp.cond, s[0]->flags_condition());
+    EXPECT_EQ(kMode_Operand2_R_SXTB, s[0]->addressing_mode());
+  }
+}
+
+TEST_F(InstructionSelectorTest, CmpShiftByImmediateOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    TRACED_FOREACH(Shift, shift, kShiftInstructions) {
+      // Only test relevant shifted operands.
+      if (shift.mi.machine_type != MachineType::Int32()) continue;
+
+      // The available shift operand range is `0 <= imm < 32`, but we also test
+      // that immediates outside this range are handled properly (modulo-32).
+      TRACED_FORRANGE(int, imm, -32, 63) {
+        StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
+                        MachineType::Int32());
+        m.Return((m.*cmp.mi.constructor)(
+            (m.*shift.mi.constructor)(m.Parameter(1), m.Int32Constant(imm)),
+            m.Parameter(0)));
+        Stream s = m.Build();
+        // Cmp does not support ROR shifts.
+        if (shift.mi.arch_opcode == kArm64Ror32) {
+          ASSERT_EQ(2U, s.size());
+          continue;
+        }
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(kArm64Cmp32, s[0]->arch_opcode());
+        EXPECT_EQ(shift.mode, s[0]->addressing_mode());
+        EXPECT_EQ(3U, s[0]->InputCount());
+        EXPECT_EQ(imm, s.ToInt64(s[0]->InputAt(2)));
+        EXPECT_EQ(1U, s[0]->OutputCount());
+        EXPECT_EQ(kFlags_set, s[0]->flags_mode());
+        EXPECT_EQ(cmp.commuted_cond, s[0]->flags_condition());
+      }
+    }
+  }
+}
+
+TEST_F(InstructionSelectorTest, CmnShiftByImmediateOnLeft) {
+  TRACED_FOREACH(IntegerCmp, cmp, kIntegerCmpInstructions) {
+    TRACED_FOREACH(Shift, shift, kShiftInstructions) {
+      // Only test relevant shifted operands.
+      if (shift.mi.machine_type != MachineType::Int32()) continue;
+
+      // The available shift operand range is `0 <= imm < 32`, but we also test
+      // that immediates outside this range are handled properly (modulo-32).
+      TRACED_FORRANGE(int, imm, -32, 63) {
+        StreamBuilder m(this, MachineType::Int32(), MachineType::Int32(),
+                        MachineType::Int32());
+        Node* sub = m.Int32Sub(m.Int32Constant(0), m.Parameter(0));
+        m.Return((m.*cmp.mi.constructor)(
+            (m.*shift.mi.constructor)(m.Parameter(1), m.Int32Constant(imm)),
+            sub));
+        Stream s = m.Build();
+        // Cmn does not support ROR shifts.
+        if (shift.mi.arch_opcode == kArm64Ror32) {
+          ASSERT_EQ(2U, s.size());
+          continue;
+        }
+        ASSERT_EQ(1U, s.size());
+        EXPECT_EQ(kArm64Cmn32, s[0]->arch_opcode());
+        EXPECT_EQ(shift.mode, s[0]->addressing_mode());
+        EXPECT_EQ(3U, s[0]->InputCount());
+        EXPECT_EQ(imm, s.ToInt64(s[0]->InputAt(2)));
+        EXPECT_EQ(1U, s[0]->OutputCount());
+        EXPECT_EQ(kFlags_set, s[0]->flags_mode());
+        EXPECT_EQ(cmp.cond, s[0]->flags_condition());
+      }
+    }
+  }
+}
+
 
 // -----------------------------------------------------------------------------
 // Miscellaneous
@@ -3574,6 +3909,36 @@
   EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
 }
 
+TEST_F(InstructionSelectorTest, Float32Neg) {
+  StreamBuilder m(this, MachineType::Float32(), MachineType::Float32());
+  Node* const p0 = m.Parameter(0);
+  // Don't use m.Float32Neg() as that generates an explicit sub.
+  Node* const n = m.AddNode(m.machine()->Float32Neg().op(), m.Parameter(0));
+  m.Return(n);
+  Stream s = m.Build();
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArm64Float32Neg, s[0]->arch_opcode());
+  ASSERT_EQ(1U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  ASSERT_EQ(1U, s[0]->OutputCount());
+  EXPECT_EQ(s.ToVreg(n), s.ToVreg(s[0]->Output()));
+}
+
+TEST_F(InstructionSelectorTest, Float64Neg) {
+  StreamBuilder m(this, MachineType::Float64(), MachineType::Float64());
+  Node* const p0 = m.Parameter(0);
+  // Don't use m.Float64Neg() as that generates an explicit sub.
+  Node* const n = m.AddNode(m.machine()->Float64Neg().op(), m.Parameter(0));
+  m.Return(n);
+  Stream s = m.Build();
+  ASSERT_EQ(1U, s.size());
+  EXPECT_EQ(kArm64Float64Neg, s[0]->arch_opcode());
+  ASSERT_EQ(1U, s[0]->InputCount());
+  EXPECT_EQ(s.ToVreg(p0), s.ToVreg(s[0]->InputAt(0)));
+  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/checkpoint-elimination-unittest.cc b/test/unittests/compiler/checkpoint-elimination-unittest.cc
new file mode 100644
index 0000000..a201fc9
--- /dev/null
+++ b/test/unittests/compiler/checkpoint-elimination-unittest.cc
@@ -0,0 +1,59 @@
+// 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/checkpoint-elimination.h"
+#include "src/compiler/common-operator.h"
+#include "src/compiler/operator.h"
+#include "test/unittests/compiler/graph-reducer-unittest.h"
+#include "test/unittests/compiler/graph-unittest.h"
+#include "test/unittests/compiler/node-test-utils.h"
+
+using testing::StrictMock;
+
+namespace v8 {
+namespace internal {
+namespace compiler {
+
+class CheckpointEliminationTest : public GraphTest {
+ public:
+  CheckpointEliminationTest() : GraphTest() {}
+  ~CheckpointEliminationTest() override {}
+
+ protected:
+  Reduction Reduce(AdvancedReducer::Editor* editor, Node* node) {
+    CheckpointElimination reducer(editor);
+    return reducer.Reduce(node);
+  }
+
+  Reduction Reduce(Node* node) {
+    StrictMock<MockAdvancedReducerEditor> editor;
+    return Reduce(&editor, node);
+  }
+};
+
+namespace {
+
+const Operator kOpNoWrite(0, Operator::kNoWrite, "OpNoWrite", 0, 1, 0, 0, 1, 0);
+
+}  // namespace
+
+// -----------------------------------------------------------------------------
+// Checkpoint
+
+TEST_F(CheckpointEliminationTest, CheckpointChain) {
+  Node* const control = graph()->start();
+  Node* frame_state = EmptyFrameState();
+  Node* checkpoint1 = graph()->NewNode(common()->Checkpoint(), frame_state,
+                                       graph()->start(), control);
+  Node* effect_link = graph()->NewNode(&kOpNoWrite, checkpoint1);
+  Node* checkpoint2 = graph()->NewNode(common()->Checkpoint(), frame_state,
+                                       effect_link, control);
+  Reduction r = Reduce(checkpoint2);
+  ASSERT_TRUE(r.Changed());
+  EXPECT_EQ(effect_link, r.replacement());
+}
+
+}  // namespace compiler
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/compiler/coalesced-live-ranges-unittest.cc b/test/unittests/compiler/coalesced-live-ranges-unittest.cc
deleted file mode 100644
index fe8fac4..0000000
--- a/test/unittests/compiler/coalesced-live-ranges-unittest.cc
+++ /dev/null
@@ -1,268 +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/coalesced-live-ranges.h"
-#include "test/unittests/compiler/live-range-builder.h"
-#include "test/unittests/test-utils.h"
-
-namespace v8 {
-namespace internal {
-namespace compiler {
-
-
-class CoalescedLiveRangesTest : public TestWithZone {
- public:
-  CoalescedLiveRangesTest() : TestWithZone(), ranges_(zone()) {}
-  bool HasNoConflicts(const LiveRange* range);
-  bool ConflictsPreciselyWith(const LiveRange* range, int id);
-  bool ConflictsPreciselyWith(const LiveRange* range, int id1, int id2);
-
-  CoalescedLiveRanges& ranges() { return ranges_; }
-  const CoalescedLiveRanges& ranges() const { return ranges_; }
-  bool AllocationsAreValid() const;
-  void RemoveConflicts(LiveRange* range);
-
- private:
-  typedef ZoneSet<int> LiveRangeIDs;
-  bool IsRangeConflictingWith(const LiveRange* range, const LiveRangeIDs& ids);
-  CoalescedLiveRanges ranges_;
-};
-
-
-bool CoalescedLiveRangesTest::ConflictsPreciselyWith(const LiveRange* range,
-                                                     int id) {
-  LiveRangeIDs set(zone());
-  set.insert(id);
-  return IsRangeConflictingWith(range, set);
-}
-
-
-bool CoalescedLiveRangesTest::ConflictsPreciselyWith(const LiveRange* range,
-                                                     int id1, int id2) {
-  LiveRangeIDs set(zone());
-  set.insert(id1);
-  set.insert(id2);
-  return IsRangeConflictingWith(range, set);
-}
-
-
-bool CoalescedLiveRangesTest::HasNoConflicts(const LiveRange* range) {
-  LiveRangeIDs set(zone());
-  return IsRangeConflictingWith(range, set);
-}
-
-
-void CoalescedLiveRangesTest::RemoveConflicts(LiveRange* range) {
-  auto conflicts = ranges().GetConflicts(range);
-  LiveRangeIDs seen(zone());
-  for (auto c = conflicts.Current(); c != nullptr;
-       c = conflicts.RemoveCurrentAndGetNext()) {
-    int id = c->TopLevel()->vreg();
-    EXPECT_FALSE(seen.count(id) > 0);
-    seen.insert(c->TopLevel()->vreg());
-  }
-}
-
-
-bool CoalescedLiveRangesTest::AllocationsAreValid() const {
-  return ranges().VerifyAllocationsAreValidForTesting();
-}
-
-
-bool CoalescedLiveRangesTest::IsRangeConflictingWith(const LiveRange* range,
-                                                     const LiveRangeIDs& ids) {
-  LiveRangeIDs found_ids(zone());
-
-  auto conflicts = ranges().GetConflicts(range);
-  for (auto conflict = conflicts.Current(); conflict != nullptr;
-       conflict = conflicts.GetNext()) {
-    found_ids.insert(conflict->TopLevel()->vreg());
-  }
-  return found_ids == ids;
-}
-
-
-TEST_F(CoalescedLiveRangesTest, VisitEmptyAllocations) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(1, 5);
-  ASSERT_TRUE(ranges().empty());
-  ASSERT_TRUE(AllocationsAreValid());
-  ASSERT_TRUE(HasNoConflicts(range));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, CandidateBeforeAfterAllocations) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(5, 6);
-  ranges().AllocateRange(range);
-  ASSERT_FALSE(ranges().empty());
-  ASSERT_TRUE(AllocationsAreValid());
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(1, 2);
-  ASSERT_TRUE(HasNoConflicts(query));
-  query = TestRangeBuilder(zone()).Id(3).Build(1, 5);
-  ASSERT_TRUE(HasNoConflicts(query));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, CandidateBeforeAfterManyAllocations) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(5, 7).Add(10, 12).Build();
-  ranges().AllocateRange(range);
-  ASSERT_FALSE(ranges().empty());
-  ASSERT_TRUE(AllocationsAreValid());
-  LiveRange* query =
-      TestRangeBuilder(zone()).Id(2).Add(1, 2).Add(13, 15).Build();
-  ASSERT_TRUE(HasNoConflicts(query));
-  query = TestRangeBuilder(zone()).Id(3).Add(1, 5).Add(12, 15).Build();
-  ASSERT_TRUE(HasNoConflicts(query));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, SelfConflictsPreciselyWithSelf) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(1, 5);
-  ranges().AllocateRange(range);
-  ASSERT_FALSE(ranges().empty());
-  ASSERT_TRUE(AllocationsAreValid());
-  ASSERT_TRUE(ConflictsPreciselyWith(range, 1));
-  range = TestRangeBuilder(zone()).Id(2).Build(8, 10);
-  ranges().AllocateRange(range);
-  ASSERT_TRUE(ConflictsPreciselyWith(range, 2));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryStartsBeforeConflict) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(2, 5);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(1, 3);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-  range = TestRangeBuilder(zone()).Id(3).Build(8, 10);
-  ranges().AllocateRange(range);
-  query = TestRangeBuilder(zone()).Id(4).Build(6, 9);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 3));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryStartsInConflict) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(2, 5);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(3, 6);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-  range = TestRangeBuilder(zone()).Id(3).Build(8, 10);
-  ranges().AllocateRange(range);
-  query = TestRangeBuilder(zone()).Id(4).Build(9, 11);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 3));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryContainedInConflict) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(1, 5);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(2, 3);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryContainsConflict) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(2, 3);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(1, 5);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryCoversManyIntervalsSameRange) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(7, 9).Add(20, 25).Build();
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(2).Build(2, 8);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryCoversManyIntervalsDifferentRanges) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(20, 25).Build();
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Build(7, 10);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(3).Build(2, 22);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1, 2));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, QueryFitsInGaps) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(10, 15).Add(20, 25).Build();
-  ranges().AllocateRange(range);
-  LiveRange* query =
-      TestRangeBuilder(zone()).Id(3).Add(5, 10).Add(16, 19).Add(27, 30).Build();
-  ASSERT_TRUE(HasNoConflicts(query));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, DeleteConflictBefore) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Add(1, 4).Add(5, 6).Build();
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Build(40, 50);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(3).Build(3, 7);
-  RemoveConflicts(query);
-  query = TestRangeBuilder(zone()).Id(4).Build(0, 60);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 2));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, DeleteConflictAfter) {
-  LiveRange* range = TestRangeBuilder(zone()).Id(1).Build(1, 5);
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Add(40, 50).Add(60, 70).Build();
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(3).Build(45, 60);
-  RemoveConflicts(query);
-  query = TestRangeBuilder(zone()).Id(4).Build(0, 60);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 1));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, DeleteConflictStraddle) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(10, 20).Build();
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Build(40, 50);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(3).Build(4, 15);
-  RemoveConflicts(query);
-  query = TestRangeBuilder(zone()).Id(4).Build(0, 60);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 2));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, DeleteConflictManyOverlapsBefore) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(6, 10).Add(10, 20).Build();
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Build(40, 50);
-  ranges().AllocateRange(range);
-  LiveRange* query = TestRangeBuilder(zone()).Id(3).Build(4, 15);
-  RemoveConflicts(query);
-  query = TestRangeBuilder(zone()).Id(4).Build(0, 60);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 2));
-}
-
-
-TEST_F(CoalescedLiveRangesTest, DeleteWhenConflictRepeatsAfterNonConflict) {
-  LiveRange* range =
-      TestRangeBuilder(zone()).Id(1).Add(1, 5).Add(6, 10).Add(20, 30).Build();
-  ranges().AllocateRange(range);
-  range = TestRangeBuilder(zone()).Id(2).Build(12, 15);
-  ranges().AllocateRange(range);
-  LiveRange* query =
-      TestRangeBuilder(zone()).Id(3).Add(1, 8).Add(22, 25).Build();
-  RemoveConflicts(query);
-  query = TestRangeBuilder(zone()).Id(4).Build(0, 60);
-  ASSERT_TRUE(ConflictsPreciselyWith(query, 2));
-}
-
-
-}  // namespace compiler
-}  // namespace internal
-}  // namespace v8
diff --git a/test/unittests/compiler/common-operator-unittest.cc b/test/unittests/compiler/common-operator-unittest.cc
index 0a55a2e..52f99a5 100644
--- a/test/unittests/compiler/common-operator-unittest.cc
+++ b/test/unittests/compiler/common-operator-unittest.cc
@@ -362,15 +362,26 @@
 
 
 TEST_F(CommonOperatorTest, BeginRegion) {
-  const Operator* op = common()->BeginRegion();
-  EXPECT_EQ(1, op->EffectInputCount());
-  EXPECT_EQ(1, OperatorProperties::GetTotalInputCount(op));
-  EXPECT_EQ(0, op->ControlOutputCount());
-  EXPECT_EQ(1, op->EffectOutputCount());
-  EXPECT_EQ(0, op->ValueOutputCount());
+  {
+    const Operator* op =
+        common()->BeginRegion(RegionObservability::kObservable);
+    EXPECT_EQ(1, op->EffectInputCount());
+    EXPECT_EQ(1, OperatorProperties::GetTotalInputCount(op));
+    EXPECT_EQ(0, op->ControlOutputCount());
+    EXPECT_EQ(1, op->EffectOutputCount());
+    EXPECT_EQ(0, op->ValueOutputCount());
+  }
+  {
+    const Operator* op =
+        common()->BeginRegion(RegionObservability::kNotObservable);
+    EXPECT_EQ(1, op->EffectInputCount());
+    EXPECT_EQ(1, OperatorProperties::GetTotalInputCount(op));
+    EXPECT_EQ(0, op->ControlOutputCount());
+    EXPECT_EQ(1, op->EffectOutputCount());
+    EXPECT_EQ(0, op->ValueOutputCount());
+  }
 }
 
-
 TEST_F(CommonOperatorTest, FinishRegion) {
   const Operator* op = common()->FinishRegion();
   EXPECT_EQ(1, op->ValueInputCount());
@@ -381,6 +392,19 @@
   EXPECT_EQ(1, op->ValueOutputCount());
 }
 
+TEST_F(CommonOperatorTest, Projection) {
+  TRACED_FORRANGE(size_t, index, 0, 3) {
+    const Operator* op = common()->Projection(index);
+    EXPECT_EQ(index, ProjectionIndexOf(op));
+    EXPECT_EQ(1, op->ValueInputCount());
+    EXPECT_EQ(1, op->ControlInputCount());
+    EXPECT_EQ(2, OperatorProperties::GetTotalInputCount(op));
+    EXPECT_EQ(0, op->ControlOutputCount());
+    EXPECT_EQ(0, op->EffectOutputCount());
+    EXPECT_EQ(1, op->ValueOutputCount());
+  }
+}
+
 }  // 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 4c17ef2..9b584a2 100644
--- a/test/unittests/compiler/escape-analysis-unittest.cc
+++ b/test/unittests/compiler/escape-analysis-unittest.cc
@@ -48,7 +48,8 @@
       effect = effect_;
     }
 
-    return effect_ = graph()->NewNode(common()->BeginRegion(), effect);
+    return effect_ = graph()->NewNode(
+               common()->BeginRegion(RegionObservability::kObservable), effect);
   }
 
   Node* FinishRegion(Node* value, Node* effect = nullptr) {
diff --git a/test/unittests/compiler/graph-unittest.h b/test/unittests/compiler/graph-unittest.h
index 31bae6d..d4248e4 100644
--- a/test/unittests/compiler/graph-unittest.h
+++ b/test/unittests/compiler/graph-unittest.h
@@ -48,6 +48,9 @@
 
   Node* EmptyFrameState();
 
+  Matcher<Node*> IsBooleanConstant(bool value) {
+    return value ? IsTrueConstant() : IsFalseConstant();
+  }
   Matcher<Node*> IsFalseConstant();
   Matcher<Node*> IsTrueConstant();
   Matcher<Node*> IsUndefinedConstant();
diff --git a/test/unittests/compiler/instruction-selector-unittest.cc b/test/unittests/compiler/instruction-selector-unittest.cc
index 69ae768..936a94e 100644
--- a/test/unittests/compiler/instruction-selector-unittest.cc
+++ b/test/unittests/compiler/instruction-selector-unittest.cc
@@ -45,9 +45,8 @@
   selector.SelectInstructions();
   if (FLAG_trace_turbo) {
     OFStream out(stdout);
-    PrintableInstructionSequence printable = {
-        RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN),
-        &sequence};
+    PrintableInstructionSequence printable = {RegisterConfiguration::Turbofan(),
+                                              &sequence};
     out << "=== Code sequence after instruction selection ===" << std::endl
         << printable;
   }
@@ -94,12 +93,12 @@
   }
   for (auto i : s.virtual_registers_) {
     int const virtual_register = i.second;
-    if (sequence.IsFloat(virtual_register)) {
+    if (sequence.IsFP(virtual_register)) {
       EXPECT_FALSE(sequence.IsReference(virtual_register));
       s.doubles_.insert(virtual_register);
     }
     if (sequence.IsReference(virtual_register)) {
-      EXPECT_FALSE(sequence.IsFloat(virtual_register));
+      EXPECT_FALSE(sequence.IsFP(virtual_register));
       s.references_.insert(virtual_register);
     }
   }
@@ -333,7 +332,8 @@
   Node* p2 = m2.Parameter(0);
   m2.Return(m2.AddNode(
       m2.machine()->Load(MachineType::Int32()), p2, m2.Int32Constant(0),
-      m2.AddNode(m2.common()->BeginRegion(), m2.graph()->start())));
+      m2.AddNode(m2.common()->BeginRegion(RegionObservability::kObservable),
+                 m2.graph()->start())));
   Stream s2 = m2.Build(kAllInstructions);
   EXPECT_LE(3U, s1.size());
   ASSERT_EQ(s1.size(), s2.size());
@@ -480,7 +480,7 @@
   EXPECT_EQ(0, s.ToInt32(call_instr->InputAt(4)));  // This should be a context.
                                                     // We inserted 0 here.
   EXPECT_EQ(0.5, s.ToFloat64(call_instr->InputAt(5)));
-  EXPECT_TRUE(s.ToHeapObject(call_instr->InputAt(6))->IsUndefined());
+  EXPECT_TRUE(s.ToHeapObject(call_instr->InputAt(6))->IsUndefined(isolate()));
   EXPECT_EQ(MachineType::AnyTagged(),
             desc_before->GetType(0));  // function is always
                                        // tagged/any.
diff --git a/test/unittests/compiler/instruction-sequence-unittest.cc b/test/unittests/compiler/instruction-sequence-unittest.cc
index 9360ca4..619e0aa 100644
--- a/test/unittests/compiler/instruction-sequence-unittest.cc
+++ b/test/unittests/compiler/instruction-sequence-unittest.cc
@@ -67,8 +67,11 @@
   if (config_.is_empty()) {
     config_.Reset(new RegisterConfiguration(
         num_general_registers_, num_double_registers_, num_general_registers_,
-        num_double_registers_, num_double_registers_, allocatable_codes,
-        allocatable_double_codes, general_register_names_,
+        num_double_registers_, allocatable_codes, allocatable_double_codes,
+        kSimpleFPAliasing ? RegisterConfiguration::OVERLAP
+                          : RegisterConfiguration::COMBINE,
+        general_register_names_,
+        double_register_names_,  // float register names
         double_register_names_));
   }
   return config_.get();
diff --git a/test/unittests/compiler/int64-lowering-unittest.cc b/test/unittests/compiler/int64-lowering-unittest.cc
index 8bc02c5..804c399 100644
--- a/test/unittests/compiler/int64-lowering-unittest.cc
+++ b/test/unittests/compiler/int64-lowering-unittest.cc
@@ -133,6 +133,7 @@
              MachineRepresentation::kWord64);
 
   Capture<Node*> high_word_load;
+#if defined(V8_TARGET_LITTLE_ENDIAN)
   Matcher<Node*> high_word_load_matcher =
       IsLoad(MachineType::Int32(), IsInt32Constant(base),
              IsInt32Add(IsInt32Constant(index), IsInt32Constant(0x4)), start(),
@@ -146,6 +147,21 @@
                        start()),
                 AllOf(CaptureEq(&high_word_load), high_word_load_matcher),
                 start(), start()));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+  Matcher<Node*> high_word_load_matcher =
+      IsLoad(MachineType::Int32(), IsInt32Constant(base),
+             IsInt32Constant(index), start(), start());
+
+  EXPECT_THAT(
+      graph()->end()->InputAt(1),
+      IsReturn2(
+          IsLoad(MachineType::Int32(), IsInt32Constant(base),
+                 IsInt32Add(IsInt32Constant(index), IsInt32Constant(0x4)),
+                 AllOf(CaptureEq(&high_word_load), high_word_load_matcher),
+                 start()),
+          AllOf(CaptureEq(&high_word_load), high_word_load_matcher), start(),
+          start()));
+#endif
 }
 
 TEST_F(Int64LoweringTest, Int64Store) {
@@ -177,6 +193,7 @@
   const StoreRepresentation rep(MachineRepresentation::kWord32,
                                 kNoWriteBarrier);
 
+#if defined(V8_TARGET_LITTLE_ENDIAN)
   EXPECT_THAT(
       graph()->end()->InputAt(1),
       IsReturn(
@@ -189,6 +206,20 @@
                       IsInt32Constant(high_word_value(0)), start(), start()),
               start()),
           start()));
+#elif defined(V8_TARGET_BIG_ENDIAN)
+  EXPECT_THAT(
+      graph()->end()->InputAt(1),
+      IsReturn(
+          IsInt32Constant(return_value),
+          IsStore(
+              rep, IsInt32Constant(base),
+              IsInt32Add(IsInt32Constant(index), IsInt32Constant(4)),
+              IsInt32Constant(low_word_value(0)),
+              IsStore(rep, IsInt32Constant(base), IsInt32Constant(index),
+                      IsInt32Constant(high_word_value(0)), start(), start()),
+              start()),
+          start()));
+#endif
 }
 
 TEST_F(Int64LoweringTest, Int64And) {
@@ -526,12 +557,13 @@
       IsStore(StoreRepresentation(MachineRepresentation::kWord32,
                                   WriteBarrierKind::kNoWriteBarrier),
               AllOf(CaptureEq(&stack_slot_capture), stack_slot_matcher),
-              IsInt32Constant(0), IsInt32Constant(low_word_value(0)),
+              IsInt32Constant(Int64Lowering::kLowerWordOffset),
+              IsInt32Constant(low_word_value(0)),
               IsStore(StoreRepresentation(MachineRepresentation::kWord32,
                                           WriteBarrierKind::kNoWriteBarrier),
                       AllOf(CaptureEq(&stack_slot_capture), stack_slot_matcher),
-                      IsInt32Constant(4), IsInt32Constant(high_word_value(0)),
-                      start(), start()),
+                      IsInt32Constant(Int64Lowering::kHigherWordOffset),
+                      IsInt32Constant(high_word_value(0)), start(), start()),
               start());
 
   EXPECT_THAT(
@@ -563,11 +595,11 @@
       graph()->end()->InputAt(1),
       IsReturn2(IsLoad(MachineType::Int32(),
                        AllOf(CaptureEq(&stack_slot), stack_slot_matcher),
-                       IsInt32Constant(0),
+                       IsInt32Constant(Int64Lowering::kLowerWordOffset),
                        AllOf(CaptureEq(&store), store_matcher), start()),
                 IsLoad(MachineType::Int32(),
                        AllOf(CaptureEq(&stack_slot), stack_slot_matcher),
-                       IsInt32Constant(0x4),
+                       IsInt32Constant(Int64Lowering::kHigherWordOffset),
                        AllOf(CaptureEq(&store), store_matcher), start()),
                 start(), start()));
 }
diff --git a/test/unittests/compiler/js-builtin-reducer-unittest.cc b/test/unittests/compiler/js-builtin-reducer-unittest.cc
index 0f8eed7..9a1378a 100644
--- a/test/unittests/compiler/js-builtin-reducer-unittest.cc
+++ b/test/unittests/compiler/js-builtin-reducer-unittest.cc
@@ -49,6 +49,19 @@
     return HeapConstant(f);
   }
 
+  Node* StringFunction(const char* name) {
+    Handle<Object> m =
+        JSObject::GetProperty(
+            isolate()->global_object(),
+            isolate()->factory()->NewStringFromAsciiChecked("String"))
+            .ToHandleChecked();
+    Handle<JSFunction> f = Handle<JSFunction>::cast(
+        Object::GetProperty(
+            m, isolate()->factory()->NewStringFromAsciiChecked(name))
+            .ToHandleChecked());
+    return HeapConstant(f);
+  }
+
   JSOperatorBuilder* javascript() { return &javascript_; }
 
  private:
@@ -74,10 +87,519 @@
 
 
 // -----------------------------------------------------------------------------
+// Math.abs
+
+TEST_F(JSBuiltinReducerTest, MathAbsWithNumber) {
+  Node* function = MathFunction("abs");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberAbs(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathAbsWithPlainPrimitive) {
+  Node* function = MathFunction("abs");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberAbs(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.atan
+
+TEST_F(JSBuiltinReducerTest, MathAtanWithNumber) {
+  Node* function = MathFunction("atan");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberAtan(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathAtanWithPlainPrimitive) {
+  Node* function = MathFunction("atan");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberAtan(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.atan2
+
+TEST_F(JSBuiltinReducerTest, MathAtan2WithNumber) {
+  Node* function = MathFunction("atan2");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    TRACED_FOREACH(Type*, t1, kNumberTypes) {
+      Node* p1 = Parameter(t1, 0);
+      Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                    UndefinedConstant(), p0, p1, context,
+                                    frame_state, effect, control);
+      Reduction r = Reduce(call);
+
+      ASSERT_TRUE(r.Changed());
+      EXPECT_THAT(r.replacement(), IsNumberAtan2(p0, p1));
+    }
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathAtan2WithPlainPrimitive) {
+  Node* function = MathFunction("atan2");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* p1 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                UndefinedConstant(), p0, p1, context,
+                                frame_state, effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberAtan2(IsPlainPrimitiveToNumber(p0),
+                                             IsPlainPrimitiveToNumber(p1)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.ceil
+
+TEST_F(JSBuiltinReducerTest, MathCeilWithNumber) {
+  Node* function = MathFunction("ceil");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberCeil(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathCeilWithPlainPrimitive) {
+  Node* function = MathFunction("ceil");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberCeil(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.clz32
+
+TEST_F(JSBuiltinReducerTest, MathClz32WithUnsigned32) {
+  Node* function = MathFunction("clz32");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::Unsigned32(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberClz32(p0));
+}
+
+TEST_F(JSBuiltinReducerTest, MathClz32WithNumber) {
+  Node* function = MathFunction("clz32");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::Number(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberClz32(IsNumberToUint32(p0)));
+}
+
+TEST_F(JSBuiltinReducerTest, MathClz32WithPlainPrimitive) {
+  Node* function = MathFunction("clz32");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(),
+              IsNumberClz32(IsNumberToUint32(IsPlainPrimitiveToNumber(p0))));
+}
+
+// -----------------------------------------------------------------------------
+// Math.cos
+
+TEST_F(JSBuiltinReducerTest, MathCosWithNumber) {
+  Node* function = MathFunction("cos");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberCos(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathCosWithPlainPrimitive) {
+  Node* function = MathFunction("cos");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberCos(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.exp
+
+TEST_F(JSBuiltinReducerTest, MathExpWithNumber) {
+  Node* function = MathFunction("exp");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberExp(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathExpWithPlainPrimitive) {
+  Node* function = MathFunction("exp");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberExp(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.floor
+
+TEST_F(JSBuiltinReducerTest, MathFloorWithNumber) {
+  Node* function = MathFunction("floor");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberFloor(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathFloorWithPlainPrimitive) {
+  Node* function = MathFunction("floor");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberFloor(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.fround
+
+TEST_F(JSBuiltinReducerTest, MathFroundWithNumber) {
+  Node* function = MathFunction("fround");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberFround(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathFroundWithPlainPrimitive) {
+  Node* function = MathFunction("fround");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberFround(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.imul
+
+TEST_F(JSBuiltinReducerTest, MathImulWithUnsigned32) {
+  Node* function = MathFunction("imul");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::Unsigned32(), 0);
+  Node* p1 = Parameter(Type::Unsigned32(), 1);
+  Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                UndefinedConstant(), p0, p1, context,
+                                frame_state, effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberImul(p0, p1));
+}
+
+TEST_F(JSBuiltinReducerTest, MathImulWithNumber) {
+  Node* function = MathFunction("imul");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::Number(), 0);
+  Node* p1 = Parameter(Type::Number(), 1);
+  Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                UndefinedConstant(), p0, p1, context,
+                                frame_state, effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(),
+              IsNumberImul(IsNumberToUint32(p0), IsNumberToUint32(p1)));
+}
+
+TEST_F(JSBuiltinReducerTest, MathImulWithPlainPrimitive) {
+  Node* function = MathFunction("imul");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* p1 = Parameter(Type::PlainPrimitive(), 1);
+  Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                UndefinedConstant(), p0, p1, context,
+                                frame_state, effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(),
+              IsNumberImul(IsNumberToUint32(IsPlainPrimitiveToNumber(p0)),
+                           IsNumberToUint32(IsPlainPrimitiveToNumber(p1))));
+}
+
+// -----------------------------------------------------------------------------
+// Math.log
+
+TEST_F(JSBuiltinReducerTest, MathLogWithNumber) {
+  Node* function = MathFunction("log");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberLog(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathLogWithPlainPrimitive) {
+  Node* function = MathFunction("log");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberLog(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.log1p
+
+TEST_F(JSBuiltinReducerTest, MathLog1pWithNumber) {
+  Node* function = MathFunction("log1p");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberLog1p(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathLog1pWithPlainPrimitive) {
+  Node* function = MathFunction("log1p");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberLog1p(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
 // Math.max
 
-
-TEST_F(JSBuiltinReducerTest, MathMax0) {
+TEST_F(JSBuiltinReducerTest, MathMaxWithNoArguments) {
   Node* function = MathFunction("max");
 
   Node* effect = graph()->start();
@@ -86,15 +608,14 @@
   Node* frame_state = graph()->start();
   Node* call = graph()->NewNode(javascript()->CallFunction(2), function,
                                 UndefinedConstant(), context, frame_state,
-                                frame_state, effect, control);
+                                effect, control);
   Reduction r = Reduce(call);
 
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsNumberConstant(-V8_INFINITY));
 }
 
-
-TEST_F(JSBuiltinReducerTest, MathMax1) {
+TEST_F(JSBuiltinReducerTest, MathMaxWithNumber) {
   Node* function = MathFunction("max");
 
   Node* effect = graph()->start();
@@ -105,7 +626,7 @@
     Node* p0 = Parameter(t0, 0);
     Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
                                   UndefinedConstant(), p0, context, frame_state,
-                                  frame_state, effect, control);
+                                  effect, control);
     Reduction r = Reduce(call);
 
     ASSERT_TRUE(r.Changed());
@@ -113,8 +634,24 @@
   }
 }
 
+TEST_F(JSBuiltinReducerTest, MathMaxWithPlainPrimitive) {
+  Node* function = MathFunction("max");
 
-TEST_F(JSBuiltinReducerTest, MathMax2) {
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsPlainPrimitiveToNumber(p0));
+}
+
+TEST_F(JSBuiltinReducerTest, MathMaxWithIntegral32) {
   Node* function = MathFunction("max");
 
   Node* effect = graph()->start();
@@ -127,7 +664,7 @@
       Node* p1 = Parameter(t1, 1);
       Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
                                     UndefinedConstant(), p0, p1, context,
-                                    frame_state, frame_state, effect, control);
+                                    frame_state, effect, control);
       Reduction r = Reduce(call);
 
       ASSERT_TRUE(r.Changed());
@@ -137,41 +674,27 @@
   }
 }
 
-
 // -----------------------------------------------------------------------------
-// Math.imul
+// Math.min
 
-
-TEST_F(JSBuiltinReducerTest, MathImul) {
-  Node* function = MathFunction("imul");
+TEST_F(JSBuiltinReducerTest, MathMinWithNoArguments) {
+  Node* function = MathFunction("min");
 
   Node* effect = graph()->start();
   Node* control = graph()->start();
   Node* context = UndefinedConstant();
   Node* frame_state = graph()->start();
-  TRACED_FOREACH(Type*, t0, kNumberTypes) {
-    TRACED_FOREACH(Type*, t1, kNumberTypes) {
-      Node* p0 = Parameter(t0, 0);
-      Node* p1 = Parameter(t1, 1);
-      Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
-                                    UndefinedConstant(), p0, p1, context,
-                                    frame_state, frame_state, effect, control);
-      Reduction r = Reduce(call);
+  Node* call = graph()->NewNode(javascript()->CallFunction(2), function,
+                                UndefinedConstant(), context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
 
-      ASSERT_TRUE(r.Changed());
-      EXPECT_THAT(r.replacement(),
-                  IsNumberImul(IsNumberToUint32(p0), IsNumberToUint32(p1)));
-    }
-  }
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberConstant(V8_INFINITY));
 }
 
-
-// -----------------------------------------------------------------------------
-// Math.fround
-
-
-TEST_F(JSBuiltinReducerTest, MathFround) {
-  Node* function = MathFunction("fround");
+TEST_F(JSBuiltinReducerTest, MathMinWithNumber) {
+  Node* function = MathFunction("min");
 
   Node* effect = graph()->start();
   Node* control = graph()->start();
@@ -181,14 +704,289 @@
     Node* p0 = Parameter(t0, 0);
     Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
                                   UndefinedConstant(), p0, context, frame_state,
-                                  frame_state, effect, control);
+                                  effect, control);
     Reduction r = Reduce(call);
 
     ASSERT_TRUE(r.Changed());
-    EXPECT_THAT(r.replacement(), IsTruncateFloat64ToFloat32(p0));
+    EXPECT_THAT(r.replacement(), p0);
   }
 }
 
+TEST_F(JSBuiltinReducerTest, MathMinWithPlainPrimitive) {
+  Node* function = MathFunction("min");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsPlainPrimitiveToNumber(p0));
+}
+
+TEST_F(JSBuiltinReducerTest, MathMinWithIntegral32) {
+  Node* function = MathFunction("min");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kIntegral32Types) {
+    TRACED_FOREACH(Type*, t1, kIntegral32Types) {
+      Node* p0 = Parameter(t0, 0);
+      Node* p1 = Parameter(t1, 1);
+      Node* call = graph()->NewNode(javascript()->CallFunction(4), function,
+                                    UndefinedConstant(), p0, p1, context,
+                                    frame_state, effect, control);
+      Reduction r = Reduce(call);
+
+      ASSERT_TRUE(r.Changed());
+      EXPECT_THAT(r.replacement(), IsSelect(MachineRepresentation::kNone,
+                                            IsNumberLessThan(p1, p0), p1, p0));
+    }
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Math.round
+
+TEST_F(JSBuiltinReducerTest, MathRoundWithNumber) {
+  Node* function = MathFunction("round");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberRound(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathRoundWithPlainPrimitive) {
+  Node* function = MathFunction("round");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberRound(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.sin
+
+TEST_F(JSBuiltinReducerTest, MathSinWithNumber) {
+  Node* function = MathFunction("sin");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberSin(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathSinWithPlainPrimitive) {
+  Node* function = MathFunction("sin");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberSin(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.sqrt
+
+TEST_F(JSBuiltinReducerTest, MathSqrtWithNumber) {
+  Node* function = MathFunction("sqrt");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberSqrt(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathSqrtWithPlainPrimitive) {
+  Node* function = MathFunction("sqrt");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberSqrt(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.tan
+
+TEST_F(JSBuiltinReducerTest, MathTanWithNumber) {
+  Node* function = MathFunction("tan");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberTan(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathTanWithPlainPrimitive) {
+  Node* function = MathFunction("tan");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberTan(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// Math.trunc
+
+TEST_F(JSBuiltinReducerTest, MathTruncWithNumber) {
+  Node* function = MathFunction("trunc");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsNumberTrunc(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, MathTruncWithPlainPrimitive) {
+  Node* function = MathFunction("trunc");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(), IsNumberTrunc(IsPlainPrimitiveToNumber(p0)));
+}
+
+// -----------------------------------------------------------------------------
+// String.fromCharCode
+
+TEST_F(JSBuiltinReducerTest, StringFromCharCodeWithNumber) {
+  Node* function = StringFunction("fromCharCode");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  TRACED_FOREACH(Type*, t0, kNumberTypes) {
+    Node* p0 = Parameter(t0, 0);
+    Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                  UndefinedConstant(), p0, context, frame_state,
+                                  effect, control);
+    Reduction r = Reduce(call);
+
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsStringFromCharCode(p0));
+  }
+}
+
+TEST_F(JSBuiltinReducerTest, StringFromCharCodeWithPlainPrimitive) {
+  Node* function = StringFunction("fromCharCode");
+
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* context = UndefinedConstant();
+  Node* frame_state = graph()->start();
+  Node* p0 = Parameter(Type::PlainPrimitive(), 0);
+  Node* call = graph()->NewNode(javascript()->CallFunction(3), function,
+                                UndefinedConstant(), p0, context, frame_state,
+                                effect, control);
+  Reduction r = Reduce(call);
+
+  ASSERT_TRUE(r.Changed());
+  EXPECT_THAT(r.replacement(),
+              IsStringFromCharCode(IsPlainPrimitiveToNumber(p0)));
+}
+
 }  // namespace compiler
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/compiler/js-create-lowering-unittest.cc b/test/unittests/compiler/js-create-lowering-unittest.cc
index 5d95d0d..6e6245d 100644
--- a/test/unittests/compiler/js-create-lowering-unittest.cc
+++ b/test/unittests/compiler/js-create-lowering-unittest.cc
@@ -139,7 +139,7 @@
   Node* const context = UndefinedConstant();
   Node* const effect = graph()->start();
   Node* const control = graph()->start();
-  Handle<SharedFunctionInfo> shared(isolate()->object_function()->shared());
+  Handle<SharedFunctionInfo> shared(isolate()->number_function()->shared());
   Reduction r =
       Reduce(graph()->NewNode(javascript()->CreateClosure(shared, NOT_TENURED),
                               context, effect, control));
diff --git a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
index 7c2f459..7024559 100644
--- a/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
+++ b/test/unittests/compiler/js-intrinsic-lowering-unittest.cc
@@ -43,13 +43,6 @@
     return reducer.Reduce(node);
   }
 
-  Node* EmptyFrameState() {
-    MachineOperatorBuilder machine(zone());
-    JSGraph jsgraph(isolate(), graph(), common(), javascript(), nullptr,
-                    &machine);
-    return jsgraph.EmptyFrameState();
-  }
-
   JSOperatorBuilder* javascript() { return &javascript_; }
 
  private:
@@ -58,27 +51,6 @@
 
 
 // -----------------------------------------------------------------------------
-// %_ConstructDouble
-
-
-TEST_F(JSIntrinsicLoweringTest, InlineOptimizedConstructDouble) {
-  Node* const input0 = Parameter(0);
-  Node* const input1 = Parameter(1);
-  Node* const context = Parameter(2);
-  Node* const effect = graph()->start();
-  Node* const control = graph()->start();
-  Reduction const r = Reduce(graph()->NewNode(
-      javascript()->CallRuntime(Runtime::kInlineConstructDouble, 2), input0,
-      input1, context, effect, control));
-  ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsFloat64InsertHighWord32(
-                                   IsFloat64InsertLowWord32(
-                                       IsNumberConstant(BitEq(0.0)), input1),
-                                   input0));
-}
-
-
-// -----------------------------------------------------------------------------
 // %_DoubleLo
 
 
diff --git a/test/unittests/compiler/js-operator-unittest.cc b/test/unittests/compiler/js-operator-unittest.cc
index 28df6a9..d5f30ef 100644
--- a/test/unittests/compiler/js-operator-unittest.cc
+++ b/test/unittests/compiler/js-operator-unittest.cc
@@ -40,22 +40,12 @@
         control_input_count, value_output_count, effect_output_count,        \
         control_output_count                                                 \
   }
-    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::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),
-    SHARED(GreaterThanOrEqual, Operator::kNoProperties, 2, 2, 1, 1, 1, 1, 2),
     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::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::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),
 #undef SHARED
diff --git a/test/unittests/compiler/js-typed-lowering-unittest.cc b/test/unittests/compiler/js-typed-lowering-unittest.cc
index 904d5f7..3a8e778 100644
--- a/test/unittests/compiler/js-typed-lowering-unittest.cc
+++ b/test/unittests/compiler/js-typed-lowering-unittest.cc
@@ -87,8 +87,9 @@
     // TODO(titzer): mock the GraphReducer here for better unit testing.
     GraphReducer graph_reducer(zone(), graph());
     JSTypedLowering reducer(&graph_reducer, &deps_,
-                            JSTypedLowering::kDeoptimizationEnabled, &jsgraph,
-                            zone());
+                            JSTypedLowering::kDeoptimizationEnabled |
+                                JSTypedLowering::kTypeFeedbackEnabled,
+                            &jsgraph, zone());
     return reducer.Reduce(node);
   }
 
@@ -320,8 +321,7 @@
       Reduce(graph()->NewNode(javascript()->ToNumber(), input, context,
                               EmptyFrameState(), effect, control));
   ASSERT_TRUE(r.Changed());
-  EXPECT_THAT(r.replacement(), IsToNumber(input, IsNumberConstant(BitEq(0.0)),
-                                          graph()->start(), control));
+  EXPECT_THAT(r.replacement(), IsPlainPrimitiveToNumber(input));
 }
 
 
@@ -384,8 +384,9 @@
   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));
+    Reduction r = Reduce(graph()->NewNode(
+        javascript()->StrictEqual(CompareOperationHints::Any()), lhs, the_hole,
+        context));
     ASSERT_TRUE(r.Changed());
     EXPECT_THAT(r.replacement(), IsFalseConstant());
   }
@@ -396,8 +397,9 @@
   Node* const lhs = Parameter(Type::Unique(), 0);
   Node* const rhs = Parameter(Type::Unique(), 1);
   Node* const context = Parameter(Type::Any(), 2);
-  Reduction r =
-      Reduce(graph()->NewNode(javascript()->StrictEqual(), lhs, rhs, context));
+  Reduction r = Reduce(
+      graph()->NewNode(javascript()->StrictEqual(CompareOperationHints::Any()),
+                       lhs, rhs, context));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsReferenceEqual(Type::Unique(), lhs, rhs));
 }
@@ -602,9 +604,9 @@
     Node* context = UndefinedConstant();
     Node* effect = graph()->start();
     Node* control = graph()->start();
-    Reduction r = Reduce(graph()->NewNode(
-        javascript()->LoadProperty(feedback), base, key, vector, context,
-        EmptyFrameState(), EmptyFrameState(), effect, control));
+    Reduction r = Reduce(graph()->NewNode(javascript()->LoadProperty(feedback),
+                                          base, key, vector, context,
+                                          EmptyFrameState(), effect, control));
 
     Matcher<Node*> offset_matcher =
         element_size == 1
@@ -643,9 +645,9 @@
     Node* context = UndefinedConstant();
     Node* effect = graph()->start();
     Node* control = graph()->start();
-    Reduction r = Reduce(graph()->NewNode(
-        javascript()->LoadProperty(feedback), base, key, vector, context,
-        EmptyFrameState(), EmptyFrameState(), effect, control));
+    Reduction r = Reduce(graph()->NewNode(javascript()->LoadProperty(feedback),
+                                          base, key, vector, context,
+                                          EmptyFrameState(), effect, control));
 
     ASSERT_TRUE(r.Changed());
     EXPECT_THAT(
@@ -684,8 +686,7 @@
       VectorSlotPair feedback;
       const Operator* op = javascript()->StoreProperty(language_mode, feedback);
       Node* node = graph()->NewNode(op, base, key, value, vector, context,
-                                    EmptyFrameState(), EmptyFrameState(),
-                                    effect, control);
+                                    EmptyFrameState(), effect, control);
       Reduction r = Reduce(node);
 
       Matcher<Node*> offset_matcher =
@@ -725,11 +726,14 @@
       Node* context = UndefinedConstant();
       Node* effect = graph()->start();
       Node* control = graph()->start();
+      // TODO(mstarzinger): Once the effect-control-linearizer provides a frame
+      // state we can get rid of this checkpoint again. The reducer won't care.
+      Node* checkpoint = graph()->NewNode(common()->Checkpoint(),
+                                          EmptyFrameState(), effect, control);
       VectorSlotPair feedback;
       const Operator* op = javascript()->StoreProperty(language_mode, feedback);
       Node* node = graph()->NewNode(op, base, key, value, vector, context,
-                                    EmptyFrameState(), EmptyFrameState(),
-                                    effect, control);
+                                    EmptyFrameState(), checkpoint, control);
       Reduction r = Reduce(node);
 
       Matcher<Node*> offset_matcher =
@@ -738,7 +742,7 @@
               : IsWord32Shl(key, IsInt32Constant(WhichPowerOf2(element_size)));
 
       Matcher<Node*> value_matcher =
-          IsToNumber(value, context, effect, control);
+          IsToNumber(value, context, checkpoint, control);
       Matcher<Node*> effect_matcher = value_matcher;
 
       ASSERT_TRUE(r.Changed());
@@ -778,8 +782,7 @@
       VectorSlotPair feedback;
       const Operator* op = javascript()->StoreProperty(language_mode, feedback);
       Node* node = graph()->NewNode(op, base, key, value, vector, context,
-                                    EmptyFrameState(), EmptyFrameState(),
-                                    effect, control);
+                                    EmptyFrameState(), effect, control);
       Reduction r = Reduce(node);
 
       ASSERT_TRUE(r.Changed());
@@ -805,9 +808,9 @@
   Node* const context = UndefinedConstant();
   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));
+  Reduction const r = Reduce(
+      graph()->NewNode(javascript()->LoadNamed(name, feedback), receiver,
+                       vector, context, EmptyFrameState(), effect, control));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsLoadField(AccessBuilder::ForStringLength(),
                                            receiver, effect, control));
@@ -838,6 +841,52 @@
                        lhs, rhs, context, frame_state0, effect, control));
 }
 
+TEST_F(JSTypedLoweringTest, JSAddSmis) {
+  BinaryOperationHints const hints(BinaryOperationHints::kSignedSmall,
+                                   BinaryOperationHints::kSignedSmall,
+                                   BinaryOperationHints::kSignedSmall);
+  TRACED_FOREACH(LanguageMode, language_mode, kLanguageModes) {
+    Node* lhs = Parameter(Type::Number(), 0);
+    Node* rhs = Parameter(Type::Number(), 1);
+    Node* context = Parameter(Type::Any(), 2);
+    Node* frame_state0 = EmptyFrameState();
+    Node* frame_state1 = EmptyFrameState();
+    Node* effect = graph()->start();
+    Node* control = graph()->start();
+    Reduction r =
+        Reduce(graph()->NewNode(javascript()->Add(hints), lhs, rhs, context,
+                                frame_state0, frame_state1, effect, control));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsSpeculativeNumberAdd(BinaryOperationHints::kSignedSmall, lhs,
+                                       rhs, effect, control));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// JSSubtract
+
+TEST_F(JSTypedLoweringTest, JSSubtractSmis) {
+  BinaryOperationHints const hints(BinaryOperationHints::kSignedSmall,
+                                   BinaryOperationHints::kSignedSmall,
+                                   BinaryOperationHints::kSignedSmall);
+  TRACED_FOREACH(LanguageMode, language_mode, kLanguageModes) {
+    Node* lhs = Parameter(Type::Number(), 0);
+    Node* rhs = Parameter(Type::Number(), 1);
+    Node* context = Parameter(Type::Any(), 2);
+    Node* frame_state0 = EmptyFrameState();
+    Node* frame_state1 = EmptyFrameState();
+    Node* effect = graph()->start();
+    Node* control = graph()->start();
+    Reduction r = Reduce(graph()->NewNode(javascript()->Subtract(hints), lhs,
+                                          rhs, context, frame_state0,
+                                          frame_state1, effect, control));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsSpeculativeNumberSubtract(BinaryOperationHints::kSignedSmall,
+                                            lhs, rhs, effect, control));
+  }
+}
 
 // -----------------------------------------------------------------------------
 // JSInstanceOf
diff --git a/test/unittests/compiler/machine-operator-reducer-unittest.cc b/test/unittests/compiler/machine-operator-reducer-unittest.cc
index 8b65e04..05156ed 100644
--- a/test/unittests/compiler/machine-operator-reducer-unittest.cc
+++ b/test/unittests/compiler/machine-operator-reducer-unittest.cc
@@ -2,10 +2,11 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
+#include "src/compiler/machine-operator-reducer.h"
 #include "src/base/bits.h"
 #include "src/base/division-by-constant.h"
+#include "src/base/ieee754.h"
 #include "src/compiler/js-graph.h"
-#include "src/compiler/machine-operator-reducer.h"
 #include "src/compiler/typer.h"
 #include "src/conversions-inl.h"
 #include "test/unittests/compiler/graph-unittest.h"
@@ -16,6 +17,7 @@
 using testing::BitEq;
 using testing::Capture;
 using testing::CaptureEq;
+using testing::NanSensitiveDoubleEq;
 
 namespace v8 {
 namespace internal {
@@ -848,8 +850,24 @@
 
 
 // -----------------------------------------------------------------------------
-// Word32Shl
+// Word32Shr
 
+TEST_F(MachineOperatorReducerTest, Word32ShrWithWord32And) {
+  Node* const p0 = Parameter(0);
+  TRACED_FORRANGE(int32_t, shift, 1, 31) {
+    uint32_t mask = (1 << shift) - 1;
+    Node* node = graph()->NewNode(
+        machine()->Word32Shr(),
+        graph()->NewNode(machine()->Word32And(), p0, Int32Constant(mask)),
+        Int32Constant(shift));
+    Reduction r = Reduce(node);
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(), IsInt32Constant(0));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Word32Shl
 
 TEST_F(MachineOperatorReducerTest, Word32ShlWithZeroShift) {
   Node* p0 = Parameter(0);
@@ -1266,28 +1284,31 @@
 
 
 TEST_F(MachineOperatorReducerTest, Int32AddWithOverflowWithZero) {
+  Node* control = graph()->start();
   Node* p0 = Parameter(0);
   {
     Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(),
-                                 Int32Constant(0), p0);
+                                 Int32Constant(0), p0, control);
 
-    Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add));
+    Reduction r =
+        Reduce(graph()->NewNode(common()->Projection(1), add, control));
     ASSERT_TRUE(r.Changed());
     EXPECT_THAT(r.replacement(), IsInt32Constant(0));
 
-    r = Reduce(graph()->NewNode(common()->Projection(0), add));
+    r = Reduce(graph()->NewNode(common()->Projection(0), add, control));
     ASSERT_TRUE(r.Changed());
     EXPECT_EQ(p0, r.replacement());
   }
   {
     Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(), p0,
-                                 Int32Constant(0));
+                                 Int32Constant(0), control);
 
-    Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add));
+    Reduction r =
+        Reduce(graph()->NewNode(common()->Projection(1), add, control));
     ASSERT_TRUE(r.Changed());
     EXPECT_THAT(r.replacement(), IsInt32Constant(0));
 
-    r = Reduce(graph()->NewNode(common()->Projection(0), add));
+    r = Reduce(graph()->NewNode(common()->Projection(0), add, control));
     ASSERT_TRUE(r.Changed());
     EXPECT_EQ(p0, r.replacement());
   }
@@ -1295,18 +1316,20 @@
 
 
 TEST_F(MachineOperatorReducerTest, Int32AddWithOverflowWithConstant) {
+  Node* control = graph()->start();
   TRACED_FOREACH(int32_t, x, kInt32Values) {
     TRACED_FOREACH(int32_t, y, kInt32Values) {
       int32_t z;
       Node* add = graph()->NewNode(machine()->Int32AddWithOverflow(),
-                                   Int32Constant(x), Int32Constant(y));
+                                   Int32Constant(x), Int32Constant(y), control);
 
-      Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add));
+      Reduction r =
+          Reduce(graph()->NewNode(common()->Projection(1), add, control));
       ASSERT_TRUE(r.Changed());
       EXPECT_THAT(r.replacement(),
                   IsInt32Constant(base::bits::SignedAddOverflow32(x, y, &z)));
 
-      r = Reduce(graph()->NewNode(common()->Projection(0), add));
+      r = Reduce(graph()->NewNode(common()->Projection(0), add, control));
       ASSERT_TRUE(r.Changed());
       EXPECT_THAT(r.replacement(), IsInt32Constant(z));
     }
@@ -1319,33 +1342,36 @@
 
 
 TEST_F(MachineOperatorReducerTest, Int32SubWithOverflowWithZero) {
+  Node* control = graph()->start();
   Node* p0 = Parameter(0);
-  Node* add =
-      graph()->NewNode(machine()->Int32SubWithOverflow(), p0, Int32Constant(0));
+  Node* add = graph()->NewNode(machine()->Int32SubWithOverflow(), p0,
+                               Int32Constant(0), control);
 
-  Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add));
+  Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add, control));
   ASSERT_TRUE(r.Changed());
   EXPECT_THAT(r.replacement(), IsInt32Constant(0));
 
-  r = Reduce(graph()->NewNode(common()->Projection(0), add));
+  r = Reduce(graph()->NewNode(common()->Projection(0), add, control));
   ASSERT_TRUE(r.Changed());
   EXPECT_EQ(p0, r.replacement());
 }
 
 
 TEST_F(MachineOperatorReducerTest, Int32SubWithOverflowWithConstant) {
+  Node* control = graph()->start();
   TRACED_FOREACH(int32_t, x, kInt32Values) {
     TRACED_FOREACH(int32_t, y, kInt32Values) {
       int32_t z;
       Node* add = graph()->NewNode(machine()->Int32SubWithOverflow(),
-                                   Int32Constant(x), Int32Constant(y));
+                                   Int32Constant(x), Int32Constant(y), control);
 
-      Reduction r = Reduce(graph()->NewNode(common()->Projection(1), add));
+      Reduction r =
+          Reduce(graph()->NewNode(common()->Projection(1), add, control));
       ASSERT_TRUE(r.Changed());
       EXPECT_THAT(r.replacement(),
                   IsInt32Constant(base::bits::SignedSubOverflow32(x, y, &z)));
 
-      r = Reduce(graph()->NewNode(common()->Projection(0), add));
+      r = Reduce(graph()->NewNode(common()->Projection(0), add, control));
       ASSERT_TRUE(r.Changed());
       EXPECT_THAT(r.replacement(), IsInt32Constant(z));
     }
@@ -1399,8 +1425,133 @@
 
 
 // -----------------------------------------------------------------------------
-// Float64InsertLowWord32
+// Float64Atan
 
+TEST_F(MachineOperatorReducerTest, Float64AtanWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Atan(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(
+        r.replacement(),
+        IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::atan(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Atan2
+
+TEST_F(MachineOperatorReducerTest, Float64Atan2WithConstant) {
+  TRACED_FOREACH(double, y, kFloat64Values) {
+    TRACED_FOREACH(double, x, kFloat64Values) {
+      Reduction const r = Reduce(graph()->NewNode(
+          machine()->Float64Atan2(), Float64Constant(y), Float64Constant(x)));
+      ASSERT_TRUE(r.Changed());
+      EXPECT_THAT(
+          r.replacement(),
+          IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::atan2(y, x))));
+    }
+  }
+}
+
+TEST_F(MachineOperatorReducerTest, Float64Atan2WithNaN) {
+  Node* const p0 = Parameter(0);
+  Node* const nan = Float64Constant(std::numeric_limits<double>::quiet_NaN());
+  {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Atan2(), p0, nan));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_EQ(nan, r.replacement());
+  }
+  {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Atan2(), nan, p0));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_EQ(nan, r.replacement());
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Cos
+
+TEST_F(MachineOperatorReducerTest, Float64CosWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Cos(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::cos(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Exp
+
+TEST_F(MachineOperatorReducerTest, Float64ExpWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Exp(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::exp(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Log
+
+TEST_F(MachineOperatorReducerTest, Float64LogWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Log(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::log(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Log1p
+
+TEST_F(MachineOperatorReducerTest, Float64Log1pWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Log1p(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(
+        r.replacement(),
+        IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::log1p(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Sin
+
+TEST_F(MachineOperatorReducerTest, Float64SinWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Sin(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::sin(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64Tan
+
+TEST_F(MachineOperatorReducerTest, Float64TanWithConstant) {
+  TRACED_FOREACH(double, x, kFloat64Values) {
+    Reduction const r =
+        Reduce(graph()->NewNode(machine()->Float64Tan(), Float64Constant(x)));
+    ASSERT_TRUE(r.Changed());
+    EXPECT_THAT(r.replacement(),
+                IsFloat64Constant(NanSensitiveDoubleEq(base::ieee754::tan(x))));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// Float64InsertLowWord32
 
 TEST_F(MachineOperatorReducerTest, Float64InsertLowWord32WithConstant) {
   TRACED_FOREACH(double, x, kFloat64Values) {
diff --git a/test/unittests/compiler/machine-operator-unittest.cc b/test/unittests/compiler/machine-operator-unittest.cc
index 59eb484..4367705 100644
--- a/test/unittests/compiler/machine-operator-unittest.cc
+++ b/test/unittests/compiler/machine-operator-unittest.cc
@@ -208,9 +208,7 @@
     PURE(Word64Ror, 2, 0, 1),                 // --
     PURE(Word64Equal, 2, 0, 1),               // --
     PURE(Int32Add, 2, 0, 1),                  // --
-    PURE(Int32AddWithOverflow, 2, 0, 2),      // --
     PURE(Int32Sub, 2, 0, 1),                  // --
-    PURE(Int32SubWithOverflow, 2, 0, 2),      // --
     PURE(Int32Mul, 2, 0, 1),                  // --
     PURE(Int32MulHigh, 2, 0, 1),              // --
     PURE(Int32Div, 2, 1, 1),                  // --
@@ -327,6 +325,8 @@
     OPTIONAL_ENTRY(Float64RoundDown, 1, 0, 1),      // --
     OPTIONAL_ENTRY(Float64RoundTruncate, 1, 0, 1),  // --
     OPTIONAL_ENTRY(Float64RoundTiesAway, 1, 0, 1),  // --
+    OPTIONAL_ENTRY(Float32Neg, 1, 0, 1),            // --
+    OPTIONAL_ENTRY(Float64Neg, 1, 0, 1),            // --
 #undef OPTIONAL_ENTRY
 };
 }  // namespace
diff --git a/test/unittests/compiler/move-optimizer-unittest.cc b/test/unittests/compiler/move-optimizer-unittest.cc
index 5ccd0c6..4c69384 100644
--- a/test/unittests/compiler/move-optimizer-unittest.cc
+++ b/test/unittests/compiler/move-optimizer-unittest.cc
@@ -106,11 +106,9 @@
 
 TEST_F(MoveOptimizerTest, RemovesRedundantExplicit) {
   int first_reg_index =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(0);
+      RegisterConfiguration::Turbofan()->GetAllocatableGeneralCode(0);
   int second_reg_index =
-      RegisterConfiguration::ArchDefault(RegisterConfiguration::TURBOFAN)
-          ->GetAllocatableGeneralCode(1);
+      RegisterConfiguration::Turbofan()->GetAllocatableGeneralCode(1);
 
   StartBlock();
   auto first_instr = EmitNop();
diff --git a/test/unittests/compiler/node-test-utils.cc b/test/unittests/compiler/node-test-utils.cc
index 6adacc1..e700080 100644
--- a/test/unittests/compiler/node-test-utils.cc
+++ b/test/unittests/compiler/node-test-utils.cc
@@ -800,6 +800,40 @@
   const Matcher<Node*> rhs_matcher_;
 };
 
+class IsSpeculativeBinopMatcher final : public NodeMatcher {
+ public:
+  IsSpeculativeBinopMatcher(
+      IrOpcode::Value opcode,
+      const Matcher<BinaryOperationHints::Hint>& hint_matcher,
+      const Matcher<Node*>& lhs_matcher, const Matcher<Node*>& rhs_matcher,
+      const Matcher<Node*>& effect_matcher,
+      const Matcher<Node*>& control_matcher)
+      : NodeMatcher(opcode),
+        lhs_matcher_(lhs_matcher),
+        rhs_matcher_(rhs_matcher),
+        effect_matcher_(effect_matcher),
+        control_matcher_(control_matcher) {}
+
+  bool MatchAndExplain(Node* node, MatchResultListener* listener) const final {
+    return (NodeMatcher::MatchAndExplain(node, listener) &&
+            // TODO(bmeurer): The type parameter is currently ignored.
+            PrintMatchAndExplain(NodeProperties::GetValueInput(node, 0), "lhs",
+                                 lhs_matcher_, listener) &&
+            PrintMatchAndExplain(NodeProperties::GetValueInput(node, 1), "rhs",
+                                 rhs_matcher_, listener) &&
+            PrintMatchAndExplain(NodeProperties::GetEffectInput(node), "effect",
+                                 effect_matcher_, listener) &&
+            PrintMatchAndExplain(NodeProperties::GetControlInput(node),
+                                 "control", control_matcher_, listener));
+  }
+
+ private:
+  const Matcher<Type*> type_matcher_;
+  const Matcher<Node*> lhs_matcher_;
+  const Matcher<Node*> rhs_matcher_;
+  const Matcher<Node*> effect_matcher_;
+  const Matcher<Node*> control_matcher_;
+};
 
 class IsAllocateMatcher final : public NodeMatcher {
  public:
@@ -2029,6 +2063,25 @@
       new IsReferenceEqualMatcher(type_matcher, lhs_matcher, rhs_matcher));
 }
 
+Matcher<Node*> IsSpeculativeNumberAdd(
+    const Matcher<BinaryOperationHints::Hint>& hint_matcher,
+    const Matcher<Node*>& lhs_matcher, const Matcher<Node*>& rhs_matcher,
+    const Matcher<Node*>& effect_matcher,
+    const Matcher<Node*>& control_matcher) {
+  return MakeMatcher(new IsSpeculativeBinopMatcher(
+      IrOpcode::kSpeculativeNumberAdd, hint_matcher, lhs_matcher, rhs_matcher,
+      effect_matcher, control_matcher));
+}
+
+Matcher<Node*> IsSpeculativeNumberSubtract(
+    const Matcher<BinaryOperationHints::Hint>& hint_matcher,
+    const Matcher<Node*>& lhs_matcher, const Matcher<Node*>& rhs_matcher,
+    const Matcher<Node*>& effect_matcher,
+    const Matcher<Node*>& control_matcher) {
+  return MakeMatcher(new IsSpeculativeBinopMatcher(
+      IrOpcode::kSpeculativeNumberSubtract, hint_matcher, lhs_matcher,
+      rhs_matcher, effect_matcher, control_matcher));
+}
 
 Matcher<Node*> IsAllocate(const Matcher<Node*>& size_matcher,
                           const Matcher<Node*>& effect_matcher,
@@ -2197,6 +2250,7 @@
 IS_BINOP_MATCHER(NumberShiftRight)
 IS_BINOP_MATCHER(NumberShiftRightLogical)
 IS_BINOP_MATCHER(NumberImul)
+IS_BINOP_MATCHER(NumberAtan2)
 IS_BINOP_MATCHER(Word32And)
 IS_BINOP_MATCHER(Word32Or)
 IS_BINOP_MATCHER(Word32Xor)
@@ -2256,10 +2310,32 @@
 IS_UNOP_MATCHER(Float64RoundTiesAway)
 IS_UNOP_MATCHER(Float64ExtractLowWord32)
 IS_UNOP_MATCHER(Float64ExtractHighWord32)
+IS_UNOP_MATCHER(NumberAbs)
+IS_UNOP_MATCHER(NumberAtan)
+IS_UNOP_MATCHER(NumberAtanh)
+IS_UNOP_MATCHER(NumberCeil)
+IS_UNOP_MATCHER(NumberClz32)
+IS_UNOP_MATCHER(NumberCbrt)
+IS_UNOP_MATCHER(NumberCos)
+IS_UNOP_MATCHER(NumberExp)
+IS_UNOP_MATCHER(NumberExpm1)
+IS_UNOP_MATCHER(NumberFloor)
+IS_UNOP_MATCHER(NumberFround)
+IS_UNOP_MATCHER(NumberLog)
+IS_UNOP_MATCHER(NumberLog1p)
+IS_UNOP_MATCHER(NumberLog10)
+IS_UNOP_MATCHER(NumberLog2)
+IS_UNOP_MATCHER(NumberRound)
+IS_UNOP_MATCHER(NumberSin)
+IS_UNOP_MATCHER(NumberSqrt)
+IS_UNOP_MATCHER(NumberTan)
+IS_UNOP_MATCHER(NumberTrunc)
 IS_UNOP_MATCHER(NumberToInt32)
 IS_UNOP_MATCHER(NumberToUint32)
+IS_UNOP_MATCHER(PlainPrimitiveToNumber)
 IS_UNOP_MATCHER(ObjectIsReceiver)
 IS_UNOP_MATCHER(ObjectIsSmi)
+IS_UNOP_MATCHER(StringFromCharCode)
 IS_UNOP_MATCHER(Word32Clz)
 IS_UNOP_MATCHER(Word32Ctz)
 IS_UNOP_MATCHER(Word32Popcnt)
diff --git a/test/unittests/compiler/node-test-utils.h b/test/unittests/compiler/node-test-utils.h
index 4979bd5..60a0895 100644
--- a/test/unittests/compiler/node-test-utils.h
+++ b/test/unittests/compiler/node-test-utils.h
@@ -6,6 +6,7 @@
 #define V8_UNITTESTS_COMPILER_NODE_TEST_UTILS_H_
 
 #include "src/compiler/machine-operator.h"
+#include "src/compiler/type-hints.h"
 #include "src/machine-type.h"
 #include "testing/gmock/include/gmock/gmock.h"
 
@@ -199,6 +200,18 @@
                              const Matcher<Node*>& rhs_matcher);
 Matcher<Node*> IsNumberLessThan(const Matcher<Node*>& lhs_matcher,
                                 const Matcher<Node*>& rhs_matcher);
+Matcher<Node*> IsNumberAdd(const Matcher<Node*>& lhs_matcher,
+                           const Matcher<Node*>& rhs_matcher);
+Matcher<Node*> IsSpeculativeNumberAdd(
+    const Matcher<BinaryOperationHints::Hint>& hint_matcher,
+    const Matcher<Node*>& lhs_matcher, const Matcher<Node*>& rhs_matcher,
+    const Matcher<Node*>& effect_matcher,
+    const Matcher<Node*>& control_matcher);
+Matcher<Node*> IsSpeculativeNumberSubtract(
+    const Matcher<BinaryOperationHints::Hint>& hint_matcher,
+    const Matcher<Node*>& lhs_matcher, const Matcher<Node*>& rhs_matcher,
+    const Matcher<Node*>& effect_matcher,
+    const Matcher<Node*>& control_matcher);
 Matcher<Node*> IsNumberSubtract(const Matcher<Node*>& lhs_matcher,
                                 const Matcher<Node*>& rhs_matcher);
 Matcher<Node*> IsNumberMultiply(const Matcher<Node*>& lhs_matcher,
@@ -211,6 +224,29 @@
                                          const Matcher<Node*>& rhs_matcher);
 Matcher<Node*> IsNumberImul(const Matcher<Node*>& lhs_matcher,
                             const Matcher<Node*>& rhs_matcher);
+Matcher<Node*> IsNumberAbs(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberAtan(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberAtan2(const Matcher<Node*>& lhs_matcher,
+                             const Matcher<Node*>& rhs_matcher);
+Matcher<Node*> IsNumberAtanh(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberCeil(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberClz32(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberCos(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberExp(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberExpm1(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberFloor(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberFround(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberLog(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberLog1p(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberLog2(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberLog10(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberRound(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberCbrt(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberSin(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberSqrt(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberTan(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsNumberTrunc(const Matcher<Node*>& value_matcher);
+Matcher<Node*> IsStringFromCharCode(const Matcher<Node*>& value_matcher);
 Matcher<Node*> IsAllocate(const Matcher<Node*>& size_matcher,
                           const Matcher<Node*>& effect_matcher,
                           const Matcher<Node*>& control_matcher);
@@ -361,6 +397,7 @@
 Matcher<Node*> IsParameter(const Matcher<int> index_matcher);
 Matcher<Node*> IsLoadFramePointer();
 Matcher<Node*> IsLoadParentFramePointer();
+Matcher<Node*> IsPlainPrimitiveToNumber(const Matcher<Node*>& input_matcher);
 
 Matcher<Node*> IsInt32PairAdd(const Matcher<Node*>& a_matcher,
                               const Matcher<Node*>& b_matcher,
diff --git a/test/unittests/compiler/register-allocator-unittest.cc b/test/unittests/compiler/register-allocator-unittest.cc
index c5ff90f..71a726f 100644
--- a/test/unittests/compiler/register-allocator-unittest.cc
+++ b/test/unittests/compiler/register-allocator-unittest.cc
@@ -678,8 +678,7 @@
 
   Allocate();
   // TODO(mtrofin): at the moment, the linear allocator spills var1 and var2,
-  // so only var3 is spilled in deferred blocks. Greedy avoids spilling 1&2.
-  // Expand the test once greedy is back online with this facility.
+  // so only var3 is spilled in deferred blocks.
   const int var3_reg = 2;
   const int var3_slot = 2;
 
diff --git a/test/unittests/compiler/simplified-operator-reducer-unittest.cc b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
index eec39ab..f84b9bf 100644
--- a/test/unittests/compiler/simplified-operator-reducer-unittest.cc
+++ b/test/unittests/compiler/simplified-operator-reducer-unittest.cc
@@ -32,7 +32,8 @@
     JSOperatorBuilder javascript(zone());
     JSGraph jsgraph(isolate(), graph(), common(), &javascript, simplified(),
                     &machine);
-    SimplifiedOperatorReducer reducer(&jsgraph);
+    GraphReducer graph_reducer(zone(), graph());
+    SimplifiedOperatorReducer reducer(&graph_reducer, &jsgraph);
     return reducer.Reduce(node);
   }
 
@@ -91,26 +92,6 @@
     1866841746, 2032089723, 2147483647};
 
 
-const uint32_t kUint32Values[] = {
-    0x0,        0x5,        0x8,        0xc,        0xd,        0x26,
-    0x28,       0x29,       0x30,       0x34,       0x3e,       0x42,
-    0x50,       0x5b,       0x63,       0x71,       0x77,       0x7c,
-    0x83,       0x88,       0x96,       0x9c,       0xa3,       0xfa,
-    0x7a7,      0x165d,     0x234d,     0x3acb,     0x43a5,     0x4573,
-    0x5b4f,     0x5f14,     0x6996,     0x6c6e,     0x7289,     0x7b9a,
-    0x7bc9,     0x86bb,     0xa839,     0xaa41,     0xb03b,     0xc942,
-    0xce68,     0xcf4c,     0xd3ad,     0xdea3,     0xe90c,     0xed86,
-    0xfba5,     0x172dcc6,  0x114d8fc1, 0x182d6c9d, 0x1b1e3fad, 0x1db033bf,
-    0x1e1de755, 0x1f625c80, 0x28f6cf00, 0x2acb6a94, 0x2c20240e, 0x2f0fe54e,
-    0x31863a7c, 0x33325474, 0x3532fae3, 0x3bab82ea, 0x4c4b83a2, 0x4cd93d1e,
-    0x4f7331d4, 0x5491b09b, 0x57cc6ff9, 0x60d3b4dc, 0x653f5904, 0x690ae256,
-    0x69fe3276, 0x6bebf0ba, 0x6e2c69a3, 0x73b84ff7, 0x7b3a1924, 0x7ed032d9,
-    0x84dd734b, 0x8552ea53, 0x8680754f, 0x8e9660eb, 0x94fe2b9c, 0x972d30cf,
-    0x9b98c482, 0xb158667e, 0xb432932c, 0xb5b70989, 0xb669971a, 0xb7c359d1,
-    0xbeb15c0d, 0xc171c53d, 0xc743dd38, 0xc8e2af50, 0xc98e2df0, 0xd9d1cdf9,
-    0xdcc91049, 0xe46f396d, 0xee991950, 0xef64e521, 0xf7aeefc9, 0xffffffff};
-
-
 const double kNaNs[] = {-std::numeric_limits<double>::quiet_NaN(),
                         std::numeric_limits<double>::quiet_NaN(),
                         bit_cast<double>(V8_UINT64_C(0x7FFFFFFFFFFFFFFF)),
@@ -314,26 +295,6 @@
 }
 
 
-TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithConstant) {
-  TRACED_FOREACH(double, n, kFloat64Values) {
-    Reduction reduction = Reduce(graph()->NewNode(
-        simplified()->ChangeTaggedToInt32(), NumberConstant(n)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(reduction.replacement(), IsInt32Constant(DoubleToInt32(n)));
-  }
-}
-
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToInt32WithNaNConstant) {
-  TRACED_FOREACH(double, nan, kNaNs) {
-    Reduction reduction = Reduce(graph()->NewNode(
-        simplified()->ChangeTaggedToInt32(), NumberConstant(nan)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
-  }
-}
-
-
 // -----------------------------------------------------------------------------
 // ChangeTaggedToUint32
 
@@ -360,41 +321,6 @@
 }
 
 
-TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithConstant) {
-  TRACED_FOREACH(double, n, kFloat64Values) {
-    Reduction reduction = Reduce(graph()->NewNode(
-        simplified()->ChangeTaggedToUint32(), NumberConstant(n)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(reduction.replacement(),
-                IsInt32Constant(bit_cast<int32_t>(DoubleToUint32(n))));
-  }
-}
-
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeTaggedToUint32WithNaNConstant) {
-  TRACED_FOREACH(double, nan, kNaNs) {
-    Reduction reduction = Reduce(graph()->NewNode(
-        simplified()->ChangeTaggedToUint32(), NumberConstant(nan)));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(reduction.replacement(), IsInt32Constant(0));
-  }
-}
-
-
-// -----------------------------------------------------------------------------
-// ChangeUint32ToTagged
-
-
-TEST_F(SimplifiedOperatorReducerTest, ChangeUint32ToTagged) {
-  TRACED_FOREACH(uint32_t, n, kUint32Values) {
-    Reduction reduction =
-        Reduce(graph()->NewNode(simplified()->ChangeUint32ToTagged(),
-                                Int32Constant(bit_cast<int32_t>(n))));
-    ASSERT_TRUE(reduction.Changed());
-    EXPECT_THAT(reduction.replacement(), IsNumberConstant(BitEq(FastUI2D(n))));
-  }
-}
-
 // -----------------------------------------------------------------------------
 // TruncateTaggedToWord32
 
@@ -417,6 +343,116 @@
   }
 }
 
+// -----------------------------------------------------------------------------
+// CheckTaggedPointer
+
+TEST_F(SimplifiedOperatorReducerTest, CheckTaggedPointerWithChangeBitToTagged) {
+  Node* param0 = Parameter(0);
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* value = graph()->NewNode(simplified()->ChangeBitToTagged(), param0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->CheckTaggedPointer(), value, effect, control));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_EQ(value, reduction.replacement());
+}
+
+TEST_F(SimplifiedOperatorReducerTest, CheckTaggedPointerWithHeapConstant) {
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Handle<HeapObject> kHeapObjects[] = {
+      factory()->empty_string(), factory()->null_value(),
+      factory()->species_symbol(), factory()->undefined_value()};
+  TRACED_FOREACH(Handle<HeapObject>, object, kHeapObjects) {
+    Node* value = HeapConstant(object);
+    Reduction reduction = Reduce(graph()->NewNode(
+        simplified()->CheckTaggedPointer(), value, effect, control));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_EQ(value, reduction.replacement());
+  }
+}
+
+// -----------------------------------------------------------------------------
+// CheckTaggedSigned
+
+TEST_F(SimplifiedOperatorReducerTest,
+       CheckTaggedSignedWithChangeInt31ToTaggedSigned) {
+  Node* param0 = Parameter(0);
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* value =
+      graph()->NewNode(simplified()->ChangeInt31ToTaggedSigned(), param0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->CheckTaggedSigned(), value, effect, control));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_EQ(value, reduction.replacement());
+}
+
+TEST_F(SimplifiedOperatorReducerTest, CheckTaggedSignedWithNumberConstant) {
+  Node* effect = graph()->start();
+  Node* control = graph()->start();
+  Node* value = NumberConstant(1.0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->CheckTaggedSigned(), value, effect, control));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_EQ(value, reduction.replacement());
+}
+
+// -----------------------------------------------------------------------------
+// NumberAbs
+
+TEST_F(SimplifiedOperatorReducerTest, NumberAbsWithNumberConstant) {
+  TRACED_FOREACH(double, n, kFloat64Values) {
+    Reduction reduction =
+        Reduce(graph()->NewNode(simplified()->NumberAbs(), NumberConstant(n)));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_THAT(reduction.replacement(), IsNumberConstant(std::fabs(n)));
+  }
+}
+
+// -----------------------------------------------------------------------------
+// ObjectIsSmi
+
+TEST_F(SimplifiedOperatorReducerTest, ObjectIsSmiWithChangeBitToTagged) {
+  Node* param0 = Parameter(0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->ObjectIsSmi(),
+      graph()->NewNode(simplified()->ChangeBitToTagged(), param0)));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_THAT(reduction.replacement(), IsFalseConstant());
+}
+
+TEST_F(SimplifiedOperatorReducerTest,
+       ObjectIsSmiWithChangeInt31ToTaggedSigned) {
+  Node* param0 = Parameter(0);
+  Reduction reduction = Reduce(graph()->NewNode(
+      simplified()->ObjectIsSmi(),
+      graph()->NewNode(simplified()->ChangeInt31ToTaggedSigned(), param0)));
+  ASSERT_TRUE(reduction.Changed());
+  EXPECT_THAT(reduction.replacement(), IsTrueConstant());
+}
+
+TEST_F(SimplifiedOperatorReducerTest, ObjectIsSmiWithHeapConstant) {
+  Handle<HeapObject> kHeapObjects[] = {
+      factory()->empty_string(), factory()->null_value(),
+      factory()->species_symbol(), factory()->undefined_value()};
+  TRACED_FOREACH(Handle<HeapObject>, o, kHeapObjects) {
+    Reduction reduction =
+        Reduce(graph()->NewNode(simplified()->ObjectIsSmi(), HeapConstant(o)));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_THAT(reduction.replacement(), IsFalseConstant());
+  }
+}
+
+TEST_F(SimplifiedOperatorReducerTest, ObjectIsSmiWithNumberConstant) {
+  TRACED_FOREACH(double, n, kFloat64Values) {
+    Reduction reduction = Reduce(
+        graph()->NewNode(simplified()->ObjectIsSmi(), NumberConstant(n)));
+    ASSERT_TRUE(reduction.Changed());
+    EXPECT_THAT(reduction.replacement(), IsBooleanConstant(IsSmiDouble(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 ba404a9..3343c8f 100644
--- a/test/unittests/compiler/simplified-operator-unittest.cc
+++ b/test/unittests/compiler/simplified-operator-unittest.cc
@@ -156,7 +156,8 @@
   const Operator* op = simplified.LoadBuffer(access);
 
   EXPECT_EQ(IrOpcode::kLoadBuffer, op->opcode());
-  EXPECT_EQ(Operator::kNoThrow | Operator::kNoWrite, op->properties());
+  EXPECT_EQ(Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
+            op->properties());
   EXPECT_EQ(access, BufferAccessOf(op));
 
   EXPECT_EQ(3, op->ValueInputCount());
@@ -176,7 +177,8 @@
   const Operator* op = simplified.StoreBuffer(access);
 
   EXPECT_EQ(IrOpcode::kStoreBuffer, op->opcode());
-  EXPECT_EQ(Operator::kNoRead | Operator::kNoThrow, op->properties());
+  EXPECT_EQ(Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,
+            op->properties());
   EXPECT_EQ(access, BufferAccessOf(op));
 
   EXPECT_EQ(4, op->ValueInputCount());
@@ -258,7 +260,8 @@
   const Operator* op = simplified.LoadElement(access);
 
   EXPECT_EQ(IrOpcode::kLoadElement, op->opcode());
-  EXPECT_EQ(Operator::kNoThrow | Operator::kNoWrite, op->properties());
+  EXPECT_EQ(Operator::kNoDeopt | Operator::kNoThrow | Operator::kNoWrite,
+            op->properties());
   EXPECT_EQ(access, ElementAccessOf(op));
 
   EXPECT_EQ(2, op->ValueInputCount());
@@ -278,7 +281,8 @@
   const Operator* op = simplified.StoreElement(access);
 
   EXPECT_EQ(IrOpcode::kStoreElement, op->opcode());
-  EXPECT_EQ(Operator::kNoRead | Operator::kNoThrow, op->properties());
+  EXPECT_EQ(Operator::kNoDeopt | Operator::kNoRead | Operator::kNoThrow,
+            op->properties());
   EXPECT_EQ(access, ElementAccessOf(op));
 
   EXPECT_EQ(3, op->ValueInputCount());
diff --git a/test/unittests/compiler/typer-unittest.cc b/test/unittests/compiler/typer-unittest.cc
index 9d664a6..61e00a5 100644
--- a/test/unittests/compiler/typer-unittest.cc
+++ b/test/unittests/compiler/typer-unittest.cc
@@ -290,44 +290,51 @@
 
 
 TEST_F(TyperTest, TypeJSLessThan) {
-  TestBinaryCompareOp(javascript_.LessThan(), std::less<double>());
+  TestBinaryCompareOp(javascript_.LessThan(CompareOperationHints::Any()),
+                      std::less<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSLessThanOrEqual) {
-  TestBinaryCompareOp(javascript_.LessThanOrEqual(), std::less_equal<double>());
+  TestBinaryCompareOp(javascript_.LessThanOrEqual(CompareOperationHints::Any()),
+                      std::less_equal<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSGreaterThan) {
-  TestBinaryCompareOp(javascript_.GreaterThan(), std::greater<double>());
+  TestBinaryCompareOp(javascript_.GreaterThan(CompareOperationHints::Any()),
+                      std::greater<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSGreaterThanOrEqual) {
-  TestBinaryCompareOp(javascript_.GreaterThanOrEqual(),
-                      std::greater_equal<double>());
+  TestBinaryCompareOp(
+      javascript_.GreaterThanOrEqual(CompareOperationHints::Any()),
+      std::greater_equal<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSEqual) {
-  TestBinaryCompareOp(javascript_.Equal(), std::equal_to<double>());
+  TestBinaryCompareOp(javascript_.Equal(CompareOperationHints::Any()),
+                      std::equal_to<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSNotEqual) {
-  TestBinaryCompareOp(javascript_.NotEqual(), std::not_equal_to<double>());
+  TestBinaryCompareOp(javascript_.NotEqual(CompareOperationHints::Any()),
+                      std::not_equal_to<double>());
 }
 
 
 // For numbers there's no difference between strict and non-strict equality.
 TEST_F(TyperTest, TypeJSStrictEqual) {
-  TestBinaryCompareOp(javascript_.StrictEqual(), std::equal_to<double>());
+  TestBinaryCompareOp(javascript_.StrictEqual(CompareOperationHints::Any()),
+                      std::equal_to<double>());
 }
 
 
 TEST_F(TyperTest, TypeJSStrictNotEqual) {
-  TestBinaryCompareOp(javascript_.StrictNotEqual(),
+  TestBinaryCompareOp(javascript_.StrictNotEqual(CompareOperationHints::Any()),
                       std::not_equal_to<double>());
 }
 
@@ -335,10 +342,9 @@
 //------------------------------------------------------------------------------
 // Monotonicity
 
-
-#define TEST_BINARY_MONOTONICITY(name)          \
-  TEST_F(TyperTest, Monotonicity_##name) {      \
-    TestBinaryMonotonicity(javascript_.name()); \
+#define TEST_BINARY_MONOTONICITY(name)                                      \
+  TEST_F(TyperTest, Monotonicity_##name) {                                  \
+    TestBinaryMonotonicity(javascript_.name(CompareOperationHints::Any())); \
   }
 TEST_BINARY_MONOTONICITY(Equal)
 TEST_BINARY_MONOTONICITY(NotEqual)
diff --git a/test/unittests/heap/slot-set-unittest.cc b/test/unittests/heap/slot-set-unittest.cc
index 26a26f0..cfb1f1f 100644
--- a/test/unittests/heap/slot-set-unittest.cc
+++ b/test/unittests/heap/slot-set-unittest.cc
@@ -142,23 +142,29 @@
 TEST(TypedSlotSet, Iterate) {
   TypedSlotSet set(0);
   const int kDelta = 10000001;
+  const int kHostDelta = 50001;
   int added = 0;
-  for (uint32_t i = 0; i < TypedSlotSet::kMaxOffset; i += kDelta) {
+  uint32_t j = 0;
+  for (uint32_t i = 0; i < TypedSlotSet::kMaxOffset;
+       i += kDelta, j += kHostDelta) {
     SlotType type = static_cast<SlotType>(i % NUMBER_OF_SLOT_TYPES);
-    set.Insert(type, i);
+    set.Insert(type, j, i);
     ++added;
   }
   int iterated = 0;
-  set.Iterate([&iterated, kDelta](SlotType type, Address addr) {
+  set.Iterate([&iterated, kDelta, kHostDelta](SlotType type, Address host_addr,
+                                              Address addr) {
     uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr));
+    uint32_t j = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(host_addr));
     EXPECT_EQ(i % NUMBER_OF_SLOT_TYPES, static_cast<uint32_t>(type));
     EXPECT_EQ(0, i % kDelta);
+    EXPECT_EQ(0, j % kHostDelta);
     ++iterated;
     return i % 2 == 0 ? KEEP_SLOT : REMOVE_SLOT;
   });
   EXPECT_EQ(added, iterated);
   iterated = 0;
-  set.Iterate([&iterated](SlotType type, Address addr) {
+  set.Iterate([&iterated](SlotType type, Address host_addr, Address addr) {
     uint32_t i = static_cast<uint32_t>(reinterpret_cast<uintptr_t>(addr));
     EXPECT_EQ(0, i % 2);
     ++iterated;
diff --git a/test/unittests/interpreter/bytecode-array-builder-unittest.cc b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
index a569c94..7bbef45 100644
--- a/test/unittests/interpreter/bytecode-array-builder-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-builder-unittest.cc
@@ -6,6 +6,7 @@
 
 #include "src/interpreter/bytecode-array-builder.h"
 #include "src/interpreter/bytecode-array-iterator.h"
+#include "src/interpreter/bytecode-label.h"
 #include "src/interpreter/bytecode-register-allocator.h"
 #include "test/unittests/test-utils.h"
 
@@ -47,7 +48,7 @@
       .LoadLiteral(factory->NewStringFromStaticChars("A constant"))
       .StoreAccumulatorInRegister(reg)
       .LoadUndefined()
-      .StoreAccumulatorInRegister(reg)
+      .Debugger()  // Prevent peephole optimization LdaNull, Star -> LdrNull.
       .LoadNull()
       .StoreAccumulatorInRegister(reg)
       .LoadTheHole()
@@ -57,11 +58,12 @@
       .LoadFalse()
       .StoreAccumulatorInRegister(wide);
 
+  // Emit Ldar and Star taking care to foil the register optimizer.
   builder.StackCheck(0)
       .LoadAccumulatorWithRegister(other)
+      .BinaryOperation(Token::ADD, reg)
       .StoreAccumulatorInRegister(reg)
-      .LoadNull()
-      .StoreAccumulatorInRegister(reg);
+      .LoadNull();
 
   // Emit register-register transfer.
   builder.MoveRegister(reg, other);
@@ -69,8 +71,8 @@
 
   // Emit global load / store operations.
   Handle<String> name = factory->NewStringFromStaticChars("var_name");
-  builder.LoadGlobal(name, 1, TypeofMode::NOT_INSIDE_TYPEOF)
-      .LoadGlobal(name, 1, TypeofMode::INSIDE_TYPEOF)
+  builder.LoadGlobal(1, TypeofMode::NOT_INSIDE_TYPEOF)
+      .LoadGlobal(1, TypeofMode::INSIDE_TYPEOF)
       .StoreGlobal(name, 1, LanguageMode::SLOPPY)
       .StoreGlobal(name, 1, LanguageMode::STRICT);
 
@@ -169,26 +171,34 @@
   // Emit control flow. Return must be the last instruction.
   BytecodeLabel start;
   builder.Bind(&start);
-  // Short jumps with Imm8 operands
-  builder.Jump(&start)
-      .JumpIfNull(&start)
-      .JumpIfUndefined(&start)
-      .JumpIfNotHole(&start);
+  {
+    // Short jumps with Imm8 operands
+    BytecodeLabel after_jump;
+    builder.Jump(&start)
+        .Bind(&after_jump)
+        .JumpIfNull(&start)
+        .JumpIfUndefined(&start)
+        .JumpIfNotHole(&start);
+  }
 
   // Longer jumps with constant operands
   BytecodeLabel end[8];
-  builder.Jump(&end[0])
-      .LoadTrue()
-      .JumpIfTrue(&end[1])
-      .LoadTrue()
-      .JumpIfFalse(&end[2])
-      .LoadLiteral(Smi::FromInt(0))
-      .JumpIfTrue(&end[3])
-      .LoadLiteral(Smi::FromInt(0))
-      .JumpIfFalse(&end[4])
-      .JumpIfNull(&end[5])
-      .JumpIfUndefined(&end[6])
-      .JumpIfNotHole(&end[7]);
+  {
+    BytecodeLabel after_jump;
+    builder.Jump(&end[0])
+        .Bind(&after_jump)
+        .LoadTrue()
+        .JumpIfTrue(&end[1])
+        .LoadTrue()
+        .JumpIfFalse(&end[2])
+        .LoadLiteral(Smi::FromInt(0))
+        .JumpIfTrue(&end[3])
+        .LoadLiteral(Smi::FromInt(0))
+        .JumpIfFalse(&end[4])
+        .JumpIfNull(&end[5])
+        .JumpIfUndefined(&end[6])
+        .JumpIfNotHole(&end[7]);
+  }
 
   // Perform an operation that returns boolean value to
   // generate JumpIfTrue/False
@@ -207,20 +217,26 @@
     builder.LoadTrue();
   }
   // Longer jumps requiring Constant operand
-  builder.Jump(&start).JumpIfNull(&start).JumpIfUndefined(&start).JumpIfNotHole(
-      &start);
-  // Perform an operation that returns boolean value to
-  // generate JumpIfTrue/False
-  builder.CompareOperation(Token::Value::EQ, reg)
-      .JumpIfTrue(&start)
-      .CompareOperation(Token::Value::EQ, reg)
-      .JumpIfFalse(&start);
-  // Perform an operation that returns a non-boolean operation to
-  // generate JumpIfToBooleanTrue/False.
-  builder.BinaryOperation(Token::Value::ADD, reg)
-      .JumpIfTrue(&start)
-      .BinaryOperation(Token::Value::ADD, reg)
-      .JumpIfFalse(&start);
+  {
+    BytecodeLabel after_jump;
+    builder.Jump(&start)
+        .Bind(&after_jump)
+        .JumpIfNull(&start)
+        .JumpIfUndefined(&start)
+        .JumpIfNotHole(&start);
+    // Perform an operation that returns boolean value to
+    // generate JumpIfTrue/False
+    builder.CompareOperation(Token::Value::EQ, reg)
+        .JumpIfTrue(&start)
+        .CompareOperation(Token::Value::EQ, reg)
+        .JumpIfFalse(&start);
+    // Perform an operation that returns a non-boolean operation to
+    // generate JumpIfToBooleanTrue/False.
+    builder.BinaryOperation(Token::Value::ADD, reg)
+        .JumpIfTrue(&start)
+        .BinaryOperation(Token::Value::ADD, reg)
+        .JumpIfFalse(&start);
+  }
 
   // Emit stack check bytecode.
   builder.StackCheck(0);
@@ -228,9 +244,9 @@
   // 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.
   BytecodeLabel after_throw;
-  builder.Jump(&after_throw).Throw().Bind(&after_throw);
+  builder.Throw().Bind(&after_throw);
   BytecodeLabel after_rethrow;
-  builder.Jump(&after_rethrow).ReThrow().Bind(&after_rethrow);
+  builder.ReThrow().Bind(&after_rethrow);
 
   builder.ForInPrepare(reg)
       .ForInDone(reg, reg)
@@ -250,14 +266,14 @@
   Handle<String> wide_name = factory->NewStringFromStaticChars("var_wide_name");
 
   // Emit wide global load / store operations.
-  builder.LoadGlobal(name, 1024, TypeofMode::NOT_INSIDE_TYPEOF)
-      .LoadGlobal(name, 1024, TypeofMode::INSIDE_TYPEOF)
-      .LoadGlobal(name, 1024, TypeofMode::INSIDE_TYPEOF)
+  builder.LoadGlobal(1024, TypeofMode::NOT_INSIDE_TYPEOF)
+      .LoadGlobal(1024, TypeofMode::INSIDE_TYPEOF)
+      .LoadGlobal(1024, TypeofMode::INSIDE_TYPEOF)
       .StoreGlobal(name, 1024, LanguageMode::SLOPPY)
       .StoreGlobal(wide_name, 1, LanguageMode::STRICT);
 
   // Emit extra wide global load.
-  builder.LoadGlobal(name, 1024 * 1024, TypeofMode::NOT_INSIDE_TYPEOF);
+  builder.LoadGlobal(1024 * 1024, TypeofMode::NOT_INSIDE_TYPEOF);
 
   // Emit wide load / store property operations.
   builder.LoadNamedProperty(reg, wide_name, 0)
@@ -276,6 +292,19 @@
       .StoreLookupSlot(wide_name, LanguageMode::SLOPPY)
       .StoreLookupSlot(wide_name, LanguageMode::STRICT);
 
+  // Emit loads which will be transformed to Ldr equivalents by the peephole
+  // optimizer.
+  builder.LoadNamedProperty(reg, name, 0)
+      .StoreAccumulatorInRegister(reg)
+      .LoadKeyedProperty(reg, 0)
+      .StoreAccumulatorInRegister(reg)
+      .LoadContextSlot(reg, 1)
+      .StoreAccumulatorInRegister(reg)
+      .LoadGlobal(0, TypeofMode::NOT_INSIDE_TYPEOF)
+      .StoreAccumulatorInRegister(reg)
+      .LoadUndefined()
+      .StoreAccumulatorInRegister(reg);
+
   // CreateClosureWide
   Handle<SharedFunctionInfo> shared_info2 = factory->NewSharedFunctionInfo(
       factory->NewStringFromStaticChars("function_b"), MaybeHandle<Code>(),
@@ -289,14 +318,22 @@
       .CreateObjectLiteral(factory->NewFixedArray(2), 0, 0);
 
   // Longer jumps requiring ConstantWide operand
-  builder.Jump(&start).JumpIfNull(&start).JumpIfUndefined(&start).JumpIfNotHole(
-      &start);
+  {
+    BytecodeLabel after_jump;
+    builder.Jump(&start)
+        .Bind(&after_jump)
+        .JumpIfNull(&start)
+        .JumpIfUndefined(&start)
+        .JumpIfNotHole(&start);
+  }
+
   // Perform an operation that returns boolean value to
   // generate JumpIfTrue/False
   builder.CompareOperation(Token::Value::EQ, reg)
       .JumpIfTrue(&start)
       .CompareOperation(Token::Value::EQ, reg)
       .JumpIfFalse(&start);
+
   // Perform an operation that returns a non-boolean operation to
   // generate JumpIfToBooleanTrue/False.
   builder.BinaryOperation(Token::Value::ADD, reg)
@@ -349,6 +386,21 @@
   // Insert entry for nop bytecode as this often gets optimized out.
   scorecard[Bytecodes::ToByte(Bytecode::kNop)] = 1;
 
+  if (!FLAG_ignition_peephole) {
+    // Insert entries for bytecodes only emitted by peephole optimizer.
+    scorecard[Bytecodes::ToByte(Bytecode::kLdrNamedProperty)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kLdrKeyedProperty)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kLdrGlobal)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kLdrContextSlot)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kLdrUndefined)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kLogicalNot)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kJump)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kJumpIfTrue)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kJumpIfFalse)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kJumpIfTrueConstant)] = 1;
+    scorecard[Bytecodes::ToByte(Bytecode::kJumpIfFalseConstant)] = 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);
@@ -370,9 +422,20 @@
         BytecodeArrayBuilder builder(isolate(), zone(), 0, contexts, locals);
         BytecodeRegisterAllocator temporaries(
             zone(), builder.temporary_register_allocator());
+        for (int i = 0; i < locals + contexts; i++) {
+          builder.LoadLiteral(Smi::FromInt(0));
+          builder.StoreAccumulatorInRegister(Register(i));
+        }
         for (int i = 0; i < temps; i++) {
+          builder.LoadLiteral(Smi::FromInt(0));
           builder.StoreAccumulatorInRegister(temporaries.NewRegister());
         }
+        if (temps > 0) {
+          // Ensure temporaries are used so not optimized away by the
+          // register optimizer.
+          builder.New(Register(locals + contexts), Register(locals + contexts),
+                      static_cast<size_t>(temps));
+        }
         builder.Return();
 
         Handle<BytecodeArray> the_array = builder.ToBytecodeArray();
@@ -398,6 +461,7 @@
 
 TEST_F(BytecodeArrayBuilderTest, Parameters) {
   BytecodeArrayBuilder builder(isolate(), zone(), 10, 0, 0);
+
   Register param0(builder.Parameter(0));
   Register param9(builder.Parameter(9));
   CHECK_EQ(param9.index() - param0.index(), 9);
@@ -429,6 +493,7 @@
 
 TEST_F(BytecodeArrayBuilderTest, Constants) {
   BytecodeArrayBuilder builder(isolate(), zone(), 0, 0, 0);
+
   Factory* factory = isolate()->factory();
   Handle<HeapObject> heap_num_1 = factory->NewHeapNumber(3.14);
   Handle<HeapObject> heap_num_2 = factory->NewHeapNumber(5.2);
@@ -447,16 +512,24 @@
   CHECK_EQ(array->constant_pool()->length(), 3);
 }
 
+static Bytecode PeepholeToBoolean(Bytecode jump_bytecode) {
+  return FLAG_ignition_peephole
+             ? Bytecodes::GetJumpWithoutToBoolean(jump_bytecode)
+             : jump_bytecode;
+}
 
 TEST_F(BytecodeArrayBuilderTest, ForwardJumps) {
   static const int kFarJumpDistance = 256;
 
   BytecodeArrayBuilder builder(isolate(), zone(), 0, 0, 1);
+
   Register reg(0);
   BytecodeLabel far0, far1, far2, far3, far4;
   BytecodeLabel near0, near1, near2, near3, near4;
+  BytecodeLabel after_jump0, after_jump1;
 
   builder.Jump(&near0)
+      .Bind(&after_jump0)
       .CompareOperation(Token::Value::EQ, reg)
       .JumpIfTrue(&near1)
       .CompareOperation(Token::Value::EQ, reg)
@@ -471,6 +544,7 @@
       .Bind(&near3)
       .Bind(&near4)
       .Jump(&far0)
+      .Bind(&after_jump1)
       .CompareOperation(Token::Value::EQ, reg)
       .JumpIfTrue(&far1)
       .CompareOperation(Token::Value::EQ, reg)
@@ -496,14 +570,16 @@
   // Ignore compare operation.
   iterator.Advance();
 
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfTrue);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanTrue));
   CHECK_EQ(iterator.GetImmediateOperand(0), 14);
   iterator.Advance();
 
   // Ignore compare operation.
   iterator.Advance();
 
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfFalse);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanFalse));
   CHECK_EQ(iterator.GetImmediateOperand(0), 10);
   iterator.Advance();
 
@@ -529,7 +605,8 @@
   // Ignore compare operation.
   iterator.Advance();
 
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfTrueConstant);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanTrueConstant));
   CHECK_EQ(*iterator.GetConstantForIndexOperand(0),
            Smi::FromInt(kFarJumpDistance - 4));
   iterator.Advance();
@@ -537,7 +614,8 @@
   // Ignore compare operation.
   iterator.Advance();
 
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfFalseConstant);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanFalseConstant));
   CHECK_EQ(*iterator.GetConstantForIndexOperand(0),
            Smi::FromInt(kFarJumpDistance - 8));
   iterator.Advance();
@@ -563,6 +641,7 @@
 
 TEST_F(BytecodeArrayBuilderTest, BackwardJumps) {
   BytecodeArrayBuilder builder(isolate(), zone(), 0, 0, 1);
+
   Register reg(0);
 
   BytecodeLabel label0, label1, label2, label3, label4;
@@ -581,7 +660,8 @@
       .BinaryOperation(Token::Value::ADD, reg)
       .JumpIfFalse(&label4);
   for (int i = 0; i < 63; i++) {
-    builder.Jump(&label4);
+    BytecodeLabel after_jump;
+    builder.Jump(&label4).Bind(&after_jump);
   }
 
   // Add padding to force wide backwards jumps.
@@ -594,6 +674,8 @@
   builder.CompareOperation(Token::Value::EQ, reg).JumpIfFalse(&label2);
   builder.CompareOperation(Token::Value::EQ, reg).JumpIfTrue(&label1);
   builder.Jump(&label0);
+  BytecodeLabel end;
+  builder.Bind(&end);
   builder.Return();
 
   Handle<BytecodeArray> array = builder.ToBytecodeArray();
@@ -603,13 +685,15 @@
   iterator.Advance();
   // Ignore compare operation.
   iterator.Advance();
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfTrue);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanTrue));
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
   CHECK_EQ(iterator.GetImmediateOperand(0), -2);
   iterator.Advance();
   // Ignore compare operation.
   iterator.Advance();
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfFalse);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanFalse));
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
   CHECK_EQ(iterator.GetImmediateOperand(0), -2);
   iterator.Advance();
@@ -650,13 +734,15 @@
   iterator.Advance();
   // Ignore compare operation.
   iterator.Advance();
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfFalse);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanFalse));
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kDouble);
   CHECK_EQ(iterator.GetImmediateOperand(0), -409);
   iterator.Advance();
   // Ignore compare operation.
   iterator.Advance();
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kJumpIfTrue);
+  CHECK_EQ(iterator.current_bytecode(),
+           PeepholeToBoolean(Bytecode::kJumpIfToBooleanTrue));
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kDouble);
   CHECK_EQ(iterator.GetImmediateOperand(0), -419);
   iterator.Advance();
@@ -675,9 +761,15 @@
 
   // Labels can only have 1 forward reference, but
   // can be referred to mulitple times once bound.
-  BytecodeLabel label;
+  BytecodeLabel label, after_jump0, after_jump1;
 
-  builder.Jump(&label).Bind(&label).Jump(&label).Jump(&label).Return();
+  builder.Jump(&label)
+      .Bind(&label)
+      .Jump(&label)
+      .Bind(&after_jump0)
+      .Jump(&label)
+      .Bind(&after_jump1)
+      .Return();
 
   Handle<BytecodeArray> array = builder.ToBytecodeArray();
   BytecodeArrayIterator iterator(array);
@@ -701,8 +793,13 @@
 
   BytecodeArrayBuilder builder(isolate(), zone(), 0, 0, 0);
   for (int i = 0; i < kRepeats; i++) {
-    BytecodeLabel label;
-    builder.Jump(&label).Bind(&label).Jump(&label).Jump(&label);
+    BytecodeLabel label, after_jump0, after_jump1;
+    builder.Jump(&label)
+        .Bind(&label)
+        .Jump(&label)
+        .Bind(&after_jump0)
+        .Jump(&label)
+        .Bind(&after_jump1);
   }
   builder.Return();
 
diff --git a/test/unittests/interpreter/bytecode-array-iterator-unittest.cc b/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
index aa9effe..6b7374e 100644
--- a/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-iterator-unittest.cc
@@ -47,14 +47,16 @@
       .LoadLiteral(smi_1)
       .StoreAccumulatorInRegister(reg_1)
       .LoadAccumulatorWithRegister(reg_0)
+      .BinaryOperation(Token::Value::ADD, reg_0)
       .StoreAccumulatorInRegister(reg_1)
       .LoadNamedProperty(reg_1, name, feedback_slot)
+      .BinaryOperation(Token::Value::ADD, reg_0)
       .StoreAccumulatorInRegister(param)
       .CallRuntimeForPair(Runtime::kLoadLookupSlotForCall, param, 1, reg_0)
       .ForInPrepare(reg_0)
       .CallRuntime(Runtime::kLoadIC_Miss, reg_0, 1)
       .Debugger()
-      .LoadGlobal(name, 0x10000000, TypeofMode::NOT_INSIDE_TYPEOF)
+      .LoadGlobal(0x10000000, TypeofMode::NOT_INSIDE_TYPEOF)
       .Return();
 
   // Test iterator sees the expected output from the builder.
@@ -155,6 +157,15 @@
   offset += Bytecodes::Size(Bytecode::kLdar, OperandScale::kSingle);
   iterator.Advance();
 
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kAdd);
+  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::kStar);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
@@ -164,14 +175,23 @@
   offset += Bytecodes::Size(Bytecode::kStar, OperandScale::kSingle);
   iterator.Advance();
 
-  CHECK_EQ(iterator.current_bytecode(), Bytecode::kLoadIC);
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaNamedProperty);
   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.GetIndexOperand(1), name_index);
   CHECK_EQ(iterator.GetIndexOperand(2), feedback_slot);
   CHECK(!iterator.done());
-  offset += Bytecodes::Size(Bytecode::kLoadIC, OperandScale::kSingle);
+  offset += Bytecodes::Size(Bytecode::kLdaNamedProperty, OperandScale::kSingle);
+  iterator.Advance();
+
+  CHECK_EQ(iterator.current_bytecode(), Bytecode::kAdd);
+  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::kStar);
@@ -209,8 +229,7 @@
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kCallRuntime);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kSingle);
-  CHECK_EQ(static_cast<Runtime::FunctionId>(iterator.GetRuntimeIdOperand(0)),
-           Runtime::kLoadIC_Miss);
+  CHECK_EQ(iterator.GetRuntimeIdOperand(0), Runtime::kLoadIC_Miss);
   CHECK_EQ(iterator.GetRegisterOperand(1).index(), reg_0.index());
   CHECK_EQ(iterator.GetRegisterCountOperand(2), 1);
   CHECK(!iterator.done());
@@ -227,8 +246,8 @@
   CHECK_EQ(iterator.current_bytecode(), Bytecode::kLdaGlobal);
   CHECK_EQ(iterator.current_offset(), offset);
   CHECK_EQ(iterator.current_operand_scale(), OperandScale::kQuadruple);
-  CHECK_EQ(iterator.current_bytecode_size(), 10);
-  CHECK_EQ(iterator.GetIndexOperand(1), 0x10000000);
+  CHECK_EQ(iterator.current_bytecode_size(), 6);
+  CHECK_EQ(iterator.GetIndexOperand(0), 0x10000000);
   offset += Bytecodes::Size(Bytecode::kLdaGlobal, OperandScale::kQuadruple) +
             kPrefixByteSize;
   iterator.Advance();
diff --git a/test/unittests/interpreter/bytecode-array-writer-unittest.cc b/test/unittests/interpreter/bytecode-array-writer-unittest.cc
index a1b4910..90a91ce 100644
--- a/test/unittests/interpreter/bytecode-array-writer-unittest.cc
+++ b/test/unittests/interpreter/bytecode-array-writer-unittest.cc
@@ -4,7 +4,11 @@
 
 #include "src/v8.h"
 
+#include "src/api.h"
+#include "src/factory.h"
 #include "src/interpreter/bytecode-array-writer.h"
+#include "src/interpreter/bytecode-label.h"
+#include "src/interpreter/constant-array-builder.h"
 #include "src/interpreter/source-position-table.h"
 #include "src/isolate.h"
 #include "src/utils.h"
@@ -18,39 +22,45 @@
 class BytecodeArrayWriterUnittest : public TestWithIsolateAndZone {
  public:
   BytecodeArrayWriterUnittest()
-      : source_position_builder_(isolate(), zone()),
-        bytecode_array_writer_(zone(), &source_position_builder_) {}
+      : constant_array_builder_(isolate(), zone()),
+        bytecode_array_writer_(isolate(), zone(), &constant_array_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,
+  void Write(Bytecode bytecode, uint32_t operand0,
              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,
+             uint32_t operand2,
              const BytecodeSourceInfo& info = BytecodeSourceInfo());
   void Write(Bytecode bytecode, uint32_t operand0, uint32_t operand1,
-             uint32_t operand2, uint32_t operand3, OperandScale operand_scale,
+             uint32_t operand2, uint32_t operand3,
              const BytecodeSourceInfo& info = BytecodeSourceInfo());
 
-  SourcePositionTableBuilder* source_position_builder() {
-    return &source_position_builder_;
-  }
+  void WriteJump(Bytecode bytecode, BytecodeLabel* label,
+
+                 const BytecodeSourceInfo& info = BytecodeSourceInfo());
+
   BytecodeArrayWriter* writer() { return &bytecode_array_writer_; }
+  ZoneVector<unsigned char>* bytecodes() { return writer()->bytecodes(); }
+  SourcePositionTableBuilder* source_position_table_builder() {
+    return writer()->source_position_table_builder();
+  }
+  int max_register_count() { return writer()->max_register_count(); }
 
  private:
-  SourcePositionTableBuilder source_position_builder_;
+  ConstantArrayBuilder constant_array_builder_;
   BytecodeArrayWriter bytecode_array_writer_;
 };
 
 void BytecodeArrayWriterUnittest::Write(BytecodeNode* node,
                                         const BytecodeSourceInfo& info) {
   if (info.is_valid()) {
-    node->source_info().Update(info);
+    node->source_info().Clone(info);
   }
   writer()->Write(node);
 }
@@ -62,72 +72,76 @@
 }
 
 void BytecodeArrayWriterUnittest::Write(Bytecode bytecode, uint32_t operand0,
-                                        OperandScale operand_scale,
                                         const BytecodeSourceInfo& info) {
-  BytecodeNode node(bytecode, operand0, operand_scale);
+  BytecodeNode node(bytecode, operand0);
   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);
+  BytecodeNode node(bytecode, operand0, operand1);
   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);
+  BytecodeNode node(bytecode, operand0, operand1, operand2);
   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);
+  BytecodeNode node(bytecode, operand0, operand1, operand2, operand3);
   Write(&node, info);
 }
 
+void BytecodeArrayWriterUnittest::WriteJump(Bytecode bytecode,
+                                            BytecodeLabel* label,
+                                            const BytecodeSourceInfo& info) {
+  BytecodeNode node(bytecode, 0);
+  if (info.is_valid()) {
+    node.source_info().Clone(info);
+  }
+  writer()->WriteJump(&node, label);
+}
+
 TEST_F(BytecodeArrayWriterUnittest, SimpleExample) {
-  CHECK_EQ(writer()->bytecodes()->size(), 0);
+  CHECK_EQ(bytecodes()->size(), 0);
 
   Write(Bytecode::kStackCheck, {10, false});
-  CHECK_EQ(writer()->bytecodes()->size(), 1);
-  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 0);
+  CHECK_EQ(bytecodes()->size(), 1);
+  CHECK_EQ(max_register_count(), 0);
 
-  Write(Bytecode::kLdaSmi, 0xff, OperandScale::kSingle, {55, true});
-  CHECK_EQ(writer()->bytecodes()->size(), 3);
-  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 0);
+  Write(Bytecode::kLdaSmi, 127, {55, true});
+  CHECK_EQ(bytecodes()->size(), 3);
+  CHECK_EQ(max_register_count(), 0);
 
-  Write(Bytecode::kLdar, Register(1).ToOperand(), OperandScale::kDouble);
-  CHECK_EQ(writer()->bytecodes()->size(), 7);
-  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+  Write(Bytecode::kLdar, Register(200).ToOperand());
+  CHECK_EQ(bytecodes()->size(), 7);
+  CHECK_EQ(max_register_count(), 201);
 
   Write(Bytecode::kReturn, {70, true});
-  CHECK_EQ(writer()->bytecodes()->size(), 8);
-  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 2 * kPointerSize);
+  CHECK_EQ(bytecodes()->size(), 8);
+  CHECK_EQ(max_register_count(), 201);
 
-  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));
+  static const uint8_t bytes[] = {B(StackCheck), B(LdaSmi), U8(127),  B(Wide),
+                                  B(Ldar),       R16(200),  B(Return)};
+  CHECK_EQ(bytecodes()->size(), arraysize(bytes));
   for (size_t i = 0; i < arraysize(bytes); ++i) {
-    CHECK_EQ(writer()->bytecodes()->at(i), bytes[i]);
+    CHECK_EQ(bytecodes()->at(i), bytes[i]);
   }
 
-  CHECK_EQ(writer()->FlushForOffset(), arraysize(bytes));
-  writer()->FlushBasicBlock();
-  CHECK_EQ(writer()->bytecodes()->size(), arraysize(bytes));
+  writer()->ToBytecodeArray(0, 0, factory()->empty_fixed_array());
+  CHECK_EQ(bytecodes()->size(), arraysize(bytes));
 
   PositionTableEntry expected_positions[] = {
       {0, 10, false}, {1, 55, true}, {7, 70, true}};
   Handle<ByteArray> source_positions =
-      source_position_builder()->ToSourcePositionTable();
+      source_position_table_builder()->ToSourcePositionTable();
   SourcePositionTableIterator source_iterator(*source_positions);
   for (size_t i = 0; i < arraysize(expected_positions); ++i) {
     const PositionTableEntry& expected = expected_positions[i];
@@ -173,50 +187,57 @@
       {0, 30, false}, {1, 42, true},   {3, 42, false}, {5, 68, true},
       {17, 63, true}, {31, 54, false}, {36, 85, true}, {44, 85, true}};
 
+  BytecodeLabel back_jump, jump_for_in, jump_end_1, jump_end_2, jump_end_3;
+
 #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::kLdaConstant, U8(0), {42, true});
+  CHECK_EQ(max_register_count(), 0);
+  Write(Bytecode::kStar, R(1), {42, false});
+  CHECK_EQ(max_register_count(), 2);
+  WriteJump(Bytecode::kJumpIfUndefined, &jump_end_1, {68, true});
+  WriteJump(Bytecode::kJumpIfNull, &jump_end_2);
   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);
+  CHECK_EQ(max_register_count(), 2);
+  Write(Bytecode::kStar, R(3));
+  CHECK_EQ(max_register_count(), 4);
+  Write(Bytecode::kForInPrepare, R(4));
+  CHECK_EQ(max_register_count(), 7);
   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);
+  CHECK_EQ(max_register_count(), 7);
+  Write(Bytecode::kStar, R(7));
+  CHECK_EQ(max_register_count(), 8);
+  writer()->BindLabel(&back_jump);
+  Write(Bytecode::kForInDone, R(7), R(6), {63, true});
+  CHECK_EQ(max_register_count(), 8);
+  WriteJump(Bytecode::kJumpIfTrue, &jump_end_3);
+  Write(Bytecode::kForInNext, R(3), R(7), R(4), U8(1));
+  WriteJump(Bytecode::kJumpIfUndefined, &jump_for_in);
+  Write(Bytecode::kStar, R(0));
   Write(Bytecode::kStackCheck, {54, false});
-  Write(Bytecode::kLdar, R(0), OperandScale::kSingle);
-  Write(Bytecode::kStar, R(2), OperandScale::kSingle);
+  Write(Bytecode::kLdar, R(0));
+  Write(Bytecode::kStar, R(2));
   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);
+  writer()->BindLabel(&jump_for_in);
+  Write(Bytecode::kForInStep, R(7));
+  Write(Bytecode::kStar, R(7));
+  WriteJump(Bytecode::kJump, &back_jump);
+  writer()->BindLabel(&jump_end_1);
+  writer()->BindLabel(&jump_end_2);
+  writer()->BindLabel(&jump_end_3);
   Write(Bytecode::kLdaUndefined);
   Write(Bytecode::kReturn, {85, true});
-  CHECK_EQ(writer()->GetMaximumFrameSizeUsed(), 8 * kPointerSize);
+  CHECK_EQ(max_register_count(), 8);
 #undef R
 
-  CHECK_EQ(writer()->bytecodes()->size(), arraysize(expected_bytes));
+  CHECK_EQ(bytecodes()->size(), arraysize(expected_bytes));
   for (size_t i = 0; i < arraysize(expected_bytes); ++i) {
-    CHECK_EQ(static_cast<int>(writer()->bytecodes()->at(i)),
+    CHECK_EQ(static_cast<int>(bytecodes()->at(i)),
              static_cast<int>(expected_bytes[i]));
   }
 
   Handle<ByteArray> source_positions =
-      source_position_builder()->ToSourcePositionTable();
+      source_position_table_builder()->ToSourcePositionTable();
   SourcePositionTableIterator source_iterator(*source_positions);
   for (size_t i = 0; i < arraysize(expected_positions); ++i) {
     const PositionTableEntry& expected = expected_positions[i];
diff --git a/test/unittests/interpreter/bytecode-dead-code-optimizer-unittest.cc b/test/unittests/interpreter/bytecode-dead-code-optimizer-unittest.cc
new file mode 100644
index 0000000..915c23d
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-dead-code-optimizer-unittest.cc
@@ -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.
+
+#include "src/v8.h"
+
+#include "src/interpreter/bytecode-dead-code-optimizer.h"
+#include "src/interpreter/bytecode-label.h"
+#include "src/objects.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class BytecodeDeadCodeOptimizerTest : public BytecodePipelineStage,
+                                      public TestWithIsolateAndZone {
+ public:
+  BytecodeDeadCodeOptimizerTest() : dead_code_optimizer_(this) {}
+  ~BytecodeDeadCodeOptimizerTest() override {}
+
+  void Write(BytecodeNode* node) override {
+    write_count_++;
+    last_written_.Clone(node);
+  }
+
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override {
+    write_count_++;
+    last_written_.Clone(node);
+  }
+
+  void BindLabel(BytecodeLabel* label) override {}
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override {}
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handle_table) override {
+    return Handle<BytecodeArray>();
+  }
+
+  BytecodeDeadCodeOptimizer* optimizer() { return &dead_code_optimizer_; }
+
+  int write_count() const { return write_count_; }
+  const BytecodeNode& last_written() const { return last_written_; }
+
+ private:
+  BytecodeDeadCodeOptimizer dead_code_optimizer_;
+
+  int write_count_ = 0;
+  BytecodeNode last_written_;
+};
+
+TEST_F(BytecodeDeadCodeOptimizerTest, LiveCodeKept) {
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(add, last_written());
+
+  BytecodeLabel target;
+  BytecodeNode jump(Bytecode::kJump, 0);
+  optimizer()->WriteJump(&jump, &target);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(jump, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, DeadCodeAfterReturnEliminated) {
+  BytecodeNode ret(Bytecode::kReturn);
+  optimizer()->Write(&ret);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, DeadCodeAfterThrowEliminated) {
+  BytecodeNode thrw(Bytecode::kThrow);
+  optimizer()->Write(&thrw);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(thrw, last_written());
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(thrw, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, DeadCodeAfterReThrowEliminated) {
+  BytecodeNode rethrow(Bytecode::kReThrow);
+  optimizer()->Write(&rethrow);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(rethrow, last_written());
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(rethrow, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, DeadCodeAfterJumpEliminated) {
+  BytecodeLabel target;
+  BytecodeNode jump(Bytecode::kJump, 0);
+  optimizer()->WriteJump(&jump, &target);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(jump, last_written());
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(jump, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, DeadCodeStillDeadAfterConditinalJump) {
+  BytecodeNode ret(Bytecode::kReturn);
+  optimizer()->Write(&ret);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+
+  BytecodeLabel target;
+  BytecodeNode jump(Bytecode::kJumpIfTrue, 0);
+  optimizer()->WriteJump(&jump, &target);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+}
+
+TEST_F(BytecodeDeadCodeOptimizerTest, CodeLiveAfterLabelBind) {
+  BytecodeNode ret(Bytecode::kReturn);
+  optimizer()->Write(&ret);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(ret, last_written());
+
+  BytecodeLabel target;
+  optimizer()->BindLabel(&target);
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(add, last_written());
+}
+
+}  // 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
index cf4a920..671bdf8 100644
--- a/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc
+++ b/test/unittests/interpreter/bytecode-peephole-optimizer-unittest.cc
@@ -5,6 +5,7 @@
 #include "src/v8.h"
 
 #include "src/factory.h"
+#include "src/interpreter/bytecode-label.h"
 #include "src/interpreter/bytecode-peephole-optimizer.h"
 #include "src/interpreter/constant-array-builder.h"
 #include "src/objects-inl.h"
@@ -23,23 +24,31 @@
         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);
   }
 
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override {
+    write_count_++;
+    last_written_.Clone(node);
+  }
+
+  void BindLabel(BytecodeLabel* label) override {}
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override {}
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handle_table) override {
+    return Handle<BytecodeArray>();
+  }
+
+  void Flush() {
+    optimizer()->ToBytecodeArray(0, 0, factory()->empty_fixed_array());
+  }
+
   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_; }
 
@@ -47,96 +56,98 @@
   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, FlushOnJump) {
+  CHECK_EQ(write_count(), 0);
+
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  CHECK_EQ(write_count(), 0);
+
+  BytecodeLabel target;
+  BytecodeNode jump(Bytecode::kJump, 0);
+  optimizer()->WriteJump(&jump, &target);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(jump, last_written());
 }
 
-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);
+TEST_F(BytecodePeepholeOptimizerTest, FlushOnBind) {
   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);
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
   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();
+  BytecodeLabel target;
+  optimizer()->BindLabel(&target);
   CHECK_EQ(write_count(), 1);
-  CHECK_EQ(node, last_written());
+  CHECK_EQ(add, last_written());
+}
+
+// Nop elimination tests.
+
+TEST_F(BytecodePeepholeOptimizerTest, ElideEmptyNop) {
+  BytecodeNode nop(Bytecode::kNop);
+  optimizer()->Write(&nop);
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  Flush();
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(add, last_written());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, ElideExpressionNop) {
+  BytecodeNode nop(Bytecode::kNop);
+  nop.source_info().MakeExpressionPosition(3);
+  optimizer()->Write(&nop);
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  optimizer()->Write(&add);
+  Flush();
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(add, last_written());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, KeepStatementNop) {
+  BytecodeNode nop(Bytecode::kNop);
+  nop.source_info().MakeStatementPosition(3);
+  optimizer()->Write(&nop);
+  BytecodeNode add(Bytecode::kAdd, Register(0).ToOperand());
+  add.source_info().MakeExpressionPosition(3);
+  optimizer()->Write(&add);
+  Flush();
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(add, last_written());
 }
 
 // Tests covering BytecodePeepholeOptimizer::UpdateCurrentBytecode().
 
 TEST_F(BytecodePeepholeOptimizerTest, KeepJumpIfToBooleanTrue) {
   BytecodeNode first(Bytecode::kLdaNull);
-  BytecodeNode second(Bytecode::kJumpIfToBooleanTrue, 3, OperandScale::kSingle);
+  BytecodeNode second(Bytecode::kJumpIfToBooleanTrue, 3);
   optimizer()->Write(&first);
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   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);
+  BytecodeNode second(Bytecode::kJumpIfToBooleanTrue, 3);
   optimizer()->Write(&first);
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 2);
   CHECK_EQ(last_written().bytecode(), Bytecode::kJumpIfTrue);
   CHECK_EQ(last_written().operand(0), second.operand(0));
@@ -150,7 +161,7 @@
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 2);
   CHECK_EQ(last_written(), second);
 }
@@ -163,95 +174,81 @@
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   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);
+TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRy) {
+  BytecodeNode first(Bytecode::kStar, Register(0).ToOperand());
+  BytecodeNode second(Bytecode::kLdar, Register(1).ToOperand());
   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();
+  Flush();
   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);
+TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRx) {
+  BytecodeLabel label;
+  BytecodeNode first(Bytecode::kStar, Register(0).ToOperand());
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand());
   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();
+  Flush();
   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});
+TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRxStatement) {
+  BytecodeNode first(Bytecode::kStar, Register(0).ToOperand());
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand());
+  second.source_info().MakeStatementPosition(0);
   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();
+  Flush();
   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});
+TEST_F(BytecodePeepholeOptimizerTest, StarRxLdarRxStatementStarRy) {
+  BytecodeLabel label;
+  BytecodeNode first(Bytecode::kStar, Register(0).ToOperand());
+  BytecodeNode second(Bytecode::kLdar, Register(0).ToOperand());
+  BytecodeNode third(Bytecode::kStar, Register(3).ToOperand());
+  second.source_info().MakeStatementPosition(0);
   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();
+  Flush();
   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 first(Bytecode::kLdar, Register(0).ToOperand());
   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();
+  Flush();
   CHECK_EQ(write_count(), 2);
   CHECK_EQ(last_written(), second);
 }
@@ -264,7 +261,7 @@
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
 }
 
@@ -276,7 +273,7 @@
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), first);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
 }
 
@@ -284,50 +281,34 @@
   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 first(Bytecode::kLdaConstant, static_cast<uint32_t>(index));
   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();
+  Flush();
   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 first(Bytecode::kLdaConstant, static_cast<uint32_t>(index));
   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();
+  Flush();
   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);
@@ -335,23 +316,24 @@
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 0);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), second);
 }
 
 TEST_F(BytecodePeepholeOptimizerTest, LdaTrueStatementLdaFalse) {
   BytecodeNode first(Bytecode::kLdaTrue);
-  first.source_info().Update({3, false});
+  first.source_info().MakeExpressionPosition(3);
   BytecodeNode second(Bytecode::kLdaFalse);
   optimizer()->Write(&first);
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 0);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
-  second.source_info().Update(first.source_info());
   CHECK_EQ(last_written(), second);
+  CHECK(second.source_info().is_expression());
+  CHECK_EQ(second.source_info().source_position(), 3);
 }
 
 TEST_F(BytecodePeepholeOptimizerTest, NopStackCheck) {
@@ -361,25 +343,152 @@
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 0);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
   CHECK_EQ(last_written(), second);
 }
 
 TEST_F(BytecodePeepholeOptimizerTest, NopStatementStackCheck) {
   BytecodeNode first(Bytecode::kNop);
-  first.source_info().Update({3, false});
+  first.source_info().MakeExpressionPosition(3);
   BytecodeNode second(Bytecode::kStackCheck);
   optimizer()->Write(&first);
   CHECK_EQ(write_count(), 0);
   optimizer()->Write(&second);
   CHECK_EQ(write_count(), 0);
-  optimizer()->FlushBasicBlock();
+  Flush();
   CHECK_EQ(write_count(), 1);
-  second.source_info().Update(first.source_info());
+  second.source_info().MakeExpressionPosition(
+      first.source_info().source_position());
   CHECK_EQ(last_written(), second);
 }
 
+// Tests covering BytecodePeepholeOptimizer::UpdateLastAndCurrentBytecodes().
+
+TEST_F(BytecodePeepholeOptimizerTest, MergeLoadICStar) {
+  const uint32_t operands[] = {
+      static_cast<uint32_t>(Register(31).ToOperand()), 32, 33,
+      static_cast<uint32_t>(Register(256).ToOperand())};
+  const int expected_operand_count = static_cast<int>(arraysize(operands));
+
+  BytecodeNode first(Bytecode::kLdaNamedProperty, operands[0], operands[1],
+                     operands[2]);
+  BytecodeNode second(Bytecode::kStar, operands[3]);
+  BytecodeNode third(Bytecode::kReturn);
+  optimizer()->Write(&first);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdrNamedProperty);
+  CHECK_EQ(last_written().operand_count(), expected_operand_count);
+  for (int i = 0; i < expected_operand_count; ++i) {
+    CHECK_EQ(last_written().operand(i), operands[i]);
+  }
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdar);
+  CHECK_EQ(last_written().operand(0), operands[expected_operand_count - 1]);
+  Flush();
+  CHECK_EQ(last_written().bytecode(), third.bytecode());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, MergeLdaKeyedPropertyStar) {
+  const uint32_t operands[] = {static_cast<uint32_t>(Register(31).ToOperand()),
+                               9999997,
+                               static_cast<uint32_t>(Register(1).ToOperand())};
+  const int expected_operand_count = static_cast<int>(arraysize(operands));
+
+  BytecodeNode first(Bytecode::kLdaKeyedProperty, operands[0], operands[1]);
+  BytecodeNode second(Bytecode::kStar, operands[2]);
+  BytecodeNode third(Bytecode::kReturn);
+  optimizer()->Write(&first);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdrKeyedProperty);
+  CHECK_EQ(last_written().operand_count(), expected_operand_count);
+  for (int i = 0; i < expected_operand_count; ++i) {
+    CHECK_EQ(last_written().operand(i), operands[i]);
+  }
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdar);
+  CHECK_EQ(last_written().operand(0), operands[expected_operand_count - 1]);
+  Flush();
+  CHECK_EQ(last_written().bytecode(), third.bytecode());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, MergeLdaGlobalStar) {
+  const uint32_t operands[] = {19191,
+                               static_cast<uint32_t>(Register(1).ToOperand())};
+  const int expected_operand_count = static_cast<int>(arraysize(operands));
+
+  BytecodeNode first(Bytecode::kLdaGlobal, operands[0]);
+  BytecodeNode second(Bytecode::kStar, operands[1]);
+  BytecodeNode third(Bytecode::kReturn);
+  optimizer()->Write(&first);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdrGlobal);
+  CHECK_EQ(last_written().operand_count(), expected_operand_count);
+  for (int i = 0; i < expected_operand_count; ++i) {
+    CHECK_EQ(last_written().operand(i), operands[i]);
+  }
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdar);
+  CHECK_EQ(last_written().operand(0), operands[expected_operand_count - 1]);
+  Flush();
+  CHECK_EQ(last_written().bytecode(), third.bytecode());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, MergeLdaContextSlotStar) {
+  const uint32_t operands[] = {
+      static_cast<uint32_t>(Register(200000).ToOperand()), 55005500,
+      static_cast<uint32_t>(Register(1).ToOperand())};
+  const int expected_operand_count = static_cast<int>(arraysize(operands));
+
+  BytecodeNode first(Bytecode::kLdaContextSlot, operands[0], operands[1]);
+  BytecodeNode second(Bytecode::kStar, operands[2]);
+  BytecodeNode third(Bytecode::kReturn);
+  optimizer()->Write(&first);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdrContextSlot);
+  CHECK_EQ(last_written().operand_count(), expected_operand_count);
+  for (int i = 0; i < expected_operand_count; ++i) {
+    CHECK_EQ(last_written().operand(i), operands[i]);
+  }
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdar);
+  CHECK_EQ(last_written().operand(0), operands[expected_operand_count - 1]);
+  Flush();
+  CHECK_EQ(last_written().bytecode(), third.bytecode());
+}
+
+TEST_F(BytecodePeepholeOptimizerTest, MergeLdaUndefinedStar) {
+  const uint32_t operands[] = {
+      static_cast<uint32_t>(Register(100000).ToOperand())};
+  const int expected_operand_count = static_cast<int>(arraysize(operands));
+
+  BytecodeNode first(Bytecode::kLdaUndefined);
+  BytecodeNode second(Bytecode::kStar, operands[0]);
+  BytecodeNode third(Bytecode::kReturn);
+  optimizer()->Write(&first);
+  optimizer()->Write(&second);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdrUndefined);
+  CHECK_EQ(last_written().operand_count(), expected_operand_count);
+  for (int i = 0; i < expected_operand_count; ++i) {
+    CHECK_EQ(last_written().operand(i), operands[i]);
+  }
+  optimizer()->Write(&third);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(last_written().bytecode(), Bytecode::kLdar);
+  CHECK_EQ(last_written().operand(0), operands[expected_operand_count - 1]);
+  Flush();
+  CHECK_EQ(last_written().bytecode(), third.bytecode());
+}
+
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/interpreter/bytecode-pipeline-unittest.cc b/test/unittests/interpreter/bytecode-pipeline-unittest.cc
index f12391c..663b7e5 100644
--- a/test/unittests/interpreter/bytecode-pipeline-unittest.cc
+++ b/test/unittests/interpreter/bytecode-pipeline-unittest.cc
@@ -24,7 +24,7 @@
   CHECK_EQ(x.is_statement(), false);
   CHECK_EQ(x.is_valid(), false);
 
-  x.Update({1, true});
+  x.MakeStatementPosition(1);
   BytecodeSourceInfo y(1, true);
   CHECK(x == y);
   CHECK(!(x != y));
@@ -33,20 +33,20 @@
   CHECK(!(x == y));
   CHECK(x != y);
 
-  y.Update({2, false});
+  y.MakeStatementPosition(1);
   CHECK_EQ(y.source_position(), 1);
   CHECK_EQ(y.is_statement(), true);
 
-  y.Update({2, true});
+  y.MakeStatementPosition(2);
   CHECK_EQ(y.source_position(), 2);
   CHECK_EQ(y.is_statement(), true);
 
   y.set_invalid();
-  y.Update({3, false});
+  y.MakeExpressionPosition(3);
   CHECK_EQ(y.source_position(), 3);
   CHECK_EQ(y.is_statement(), false);
 
-  y.Update({3, true});
+  y.MakeStatementPosition(3);
   CHECK_EQ(y.source_position(), 3);
   CHECK_EQ(y.is_statement(), true);
 }
@@ -61,100 +61,88 @@
   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);
+  BytecodeNode node(Bytecode::kJumpIfTrue, operands[0]);
   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);
+  uint32_t operands[] = {0x11};
+  BytecodeNode node(Bytecode::kLdaGlobal, operands[0]);
   CHECK_EQ(node.bytecode(), Bytecode::kLdaGlobal);
-  CHECK_EQ(node.operand_count(), 2);
+  CHECK_EQ(node.operand_count(), 1);
   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);
+  BytecodeNode node(Bytecode::kLdaNamedProperty, operands[0], operands[1],
+                    operands[2]);
   CHECK_EQ(node.operand_count(), 3);
-  CHECK_EQ(node.bytecode(), Bytecode::kLoadIC);
+  CHECK_EQ(node.bytecode(), Bytecode::kLdaNamedProperty);
   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);
+                    operands[3]);
   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);
+                    operands[3]);
   CHECK_EQ(node, node);
   BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
-                     operands[2], operands[3], OperandScale::kDouble);
+                     operands[2], operands[3]);
   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});
+                    operands[3]);
+  node.source_info().MakeStatementPosition(3);
   CHECK_EQ(node, node);
   BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
-                     operands[2], operands[3], OperandScale::kDouble);
-  other.source_info().Update({3, true});
+                     operands[2], operands[3]);
+  other.source_info().MakeStatementPosition(3);
   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});
+                    operands[3]);
+  node.source_info().MakeStatementPosition(3);
   BytecodeNode other(Bytecode::kForInNext, operands[0], operands[1],
-                     operands[2], operands[3], OperandScale::kDouble);
+                     operands[2], operands[3]);
   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);
+                    operands[3]);
   BytecodeNode clone;
   clone.Clone(&node);
   CHECK_EQ(clone, node);
@@ -163,33 +151,32 @@
 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);
+                    operands[3]);
   BytecodeSourceInfo source_info(77, false);
-  node.source_info().Update(source_info);
+  node.source_info().Clone(source_info);
+  CHECK_EQ(node.source_info(), 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);
+                    operands[3]);
   BytecodeSourceInfo source_info(77, false);
-  node.source_info().Update(source_info);
+  node.source_info().Clone(source_info);
 
   BytecodeNode clone;
   clone.Clone(&node);
-  clone.set_bytecode(Bytecode::kJump, 0x01aabbcc, OperandScale::kQuadruple);
+  clone.set_bytecode(Bytecode::kJump, 0x01aabbcc);
   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);
 }
 
diff --git a/test/unittests/interpreter/bytecode-register-optimizer-unittest.cc b/test/unittests/interpreter/bytecode-register-optimizer-unittest.cc
new file mode 100644
index 0000000..795bee8
--- /dev/null
+++ b/test/unittests/interpreter/bytecode-register-optimizer-unittest.cc
@@ -0,0 +1,219 @@
+// 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-label.h"
+#include "src/interpreter/bytecode-register-optimizer.h"
+#include "src/objects-inl.h"
+#include "src/objects.h"
+#include "test/unittests/test-utils.h"
+
+namespace v8 {
+namespace internal {
+namespace interpreter {
+
+class BytecodeRegisterOptimizerTest : public BytecodePipelineStage,
+                                      public TestWithIsolateAndZone {
+ public:
+  BytecodeRegisterOptimizerTest() {}
+  ~BytecodeRegisterOptimizerTest() override { delete register_allocator_; }
+
+  void Initialize(int number_of_parameters, int number_of_locals) {
+    register_allocator_ =
+        new TemporaryRegisterAllocator(zone(), number_of_locals);
+    register_optimizer_ = new (zone()) BytecodeRegisterOptimizer(
+        zone(), register_allocator_, number_of_parameters, this);
+  }
+
+  void Write(BytecodeNode* node) override { output_.push_back(*node); }
+  void WriteJump(BytecodeNode* node, BytecodeLabel* label) override {
+    output_.push_back(*node);
+  }
+  void BindLabel(BytecodeLabel* label) override {}
+  void BindLabel(const BytecodeLabel& target, BytecodeLabel* label) override {}
+  Handle<BytecodeArray> ToBytecodeArray(
+      int fixed_register_count, int parameter_count,
+      Handle<FixedArray> handle_table) override {
+    return Handle<BytecodeArray>();
+  }
+
+  TemporaryRegisterAllocator* allocator() { return register_allocator_; }
+  BytecodeRegisterOptimizer* optimizer() { return register_optimizer_; }
+
+  Register NewTemporary() {
+    return Register(allocator()->BorrowTemporaryRegister());
+  }
+
+  void KillTemporary(Register reg) {
+    allocator()->ReturnTemporaryRegister(reg.index());
+  }
+
+  size_t write_count() const { return output_.size(); }
+  const BytecodeNode& last_written() const { return output_.back(); }
+  const std::vector<BytecodeNode>* output() { return &output_; }
+
+ private:
+  TemporaryRegisterAllocator* register_allocator_;
+  BytecodeRegisterOptimizer* register_optimizer_;
+
+  std::vector<BytecodeNode> output_;
+};
+
+// Sanity tests.
+
+TEST_F(BytecodeRegisterOptimizerTest, WriteNop) {
+  Initialize(1, 1);
+  BytecodeNode node(Bytecode::kNop);
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(node, last_written());
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, WriteNopExpression) {
+  Initialize(1, 1);
+  BytecodeNode node(Bytecode::kNop);
+  node.source_info().MakeExpressionPosition(3);
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(node, last_written());
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, WriteNopStatement) {
+  Initialize(1, 1);
+  BytecodeNode node(Bytecode::kNop);
+  node.source_info().MakeStatementPosition(3);
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(node, last_written());
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, TemporaryMaterializedForJump) {
+  Initialize(1, 1);
+  Register temp = NewTemporary();
+  BytecodeNode node(Bytecode::kStar, temp.ToOperand());
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 0);
+  BytecodeLabel label;
+  BytecodeNode jump(Bytecode::kJump, 0);
+  optimizer()->WriteJump(&jump, &label);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kStar);
+  CHECK_EQ(output()->at(0).operand(0), temp.ToOperand());
+  CHECK_EQ(output()->at(1).bytecode(), Bytecode::kJump);
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, TemporaryMaterializedForBind) {
+  Initialize(1, 1);
+  Register temp = NewTemporary();
+  BytecodeNode node(Bytecode::kStar, temp.ToOperand());
+  optimizer()->Write(&node);
+  CHECK_EQ(write_count(), 0);
+  BytecodeLabel label;
+  optimizer()->BindLabel(&label);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kStar);
+  CHECK_EQ(output()->at(0).operand(0), temp.ToOperand());
+}
+
+// Basic Register Optimizations
+
+TEST_F(BytecodeRegisterOptimizerTest, TemporaryNotEmitted) {
+  Initialize(3, 1);
+  Register parameter = Register::FromParameterIndex(1, 3);
+  BytecodeNode node0(Bytecode::kLdar, parameter.ToOperand());
+  optimizer()->Write(&node0);
+  CHECK_EQ(write_count(), 0);
+  Register temp = NewTemporary();
+  BytecodeNode node1(Bytecode::kStar, NewTemporary().ToOperand());
+  optimizer()->Write(&node1);
+  CHECK_EQ(write_count(), 0);
+  KillTemporary(temp);
+  CHECK_EQ(write_count(), 0);
+  BytecodeNode node2(Bytecode::kReturn);
+  optimizer()->Write(&node2);
+  CHECK_EQ(write_count(), 2);
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kLdar);
+  CHECK_EQ(output()->at(0).operand(0), parameter.ToOperand());
+  CHECK_EQ(output()->at(1).bytecode(), Bytecode::kReturn);
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, StoresToLocalsImmediate) {
+  Initialize(3, 1);
+  Register parameter = Register::FromParameterIndex(1, 3);
+  BytecodeNode node0(Bytecode::kLdar, parameter.ToOperand());
+  optimizer()->Write(&node0);
+  CHECK_EQ(write_count(), 0);
+  Register local = Register(0);
+  BytecodeNode node1(Bytecode::kStar, local.ToOperand());
+  optimizer()->Write(&node1);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kMov);
+  CHECK_EQ(output()->at(0).operand(0), parameter.ToOperand());
+  CHECK_EQ(output()->at(0).operand(1), local.ToOperand());
+
+  BytecodeNode node2(Bytecode::kReturn);
+  optimizer()->Write(&node2);
+  CHECK_EQ(write_count(), 3);
+  CHECK_EQ(output()->at(1).bytecode(), Bytecode::kLdar);
+  CHECK_EQ(output()->at(1).operand(0), local.ToOperand());
+  CHECK_EQ(output()->at(2).bytecode(), Bytecode::kReturn);
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, TemporaryNotMaterializedForInput) {
+  Initialize(3, 1);
+  Register parameter = Register::FromParameterIndex(1, 3);
+  Register temp0 = NewTemporary();
+  Register temp1 = NewTemporary();
+  BytecodeNode node0(Bytecode::kMov, parameter.ToOperand(), temp0.ToOperand());
+  optimizer()->Write(&node0);
+  BytecodeNode node1(Bytecode::kMov, parameter.ToOperand(), temp1.ToOperand());
+  optimizer()->Write(&node1);
+  CHECK_EQ(write_count(), 0);
+  BytecodeNode node2(Bytecode::kCallJSRuntime, 0, temp0.ToOperand(), 1);
+  optimizer()->Write(&node2);
+  CHECK_EQ(write_count(), 1);
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kCallJSRuntime);
+  CHECK_EQ(output()->at(0).operand(0), 0);
+  CHECK_EQ(output()->at(0).operand(1), parameter.ToOperand());
+  CHECK_EQ(output()->at(0).operand(2), 1);
+}
+
+TEST_F(BytecodeRegisterOptimizerTest, RangeOfTemporariesMaterializedForInput) {
+  Initialize(3, 1);
+  Register parameter = Register::FromParameterIndex(1, 3);
+  Register temp0 = NewTemporary();
+  Register temp1 = NewTemporary();
+  BytecodeNode node0(Bytecode::kLdaSmi, 3);
+  optimizer()->Write(&node0);
+  CHECK_EQ(write_count(), 1);
+  BytecodeNode node1(Bytecode::kStar, temp0.ToOperand());
+  optimizer()->Write(&node1);
+  BytecodeNode node2(Bytecode::kMov, parameter.ToOperand(), temp1.ToOperand());
+  optimizer()->Write(&node2);
+  CHECK_EQ(write_count(), 1);
+  BytecodeNode node3(Bytecode::kCallJSRuntime, 0, temp0.ToOperand(), 2);
+  optimizer()->Write(&node3);
+  CHECK_EQ(write_count(), 4);
+
+  CHECK_EQ(output()->at(0).bytecode(), Bytecode::kLdaSmi);
+  CHECK_EQ(output()->at(0).operand(0), 3);
+
+  CHECK_EQ(output()->at(1).bytecode(), Bytecode::kStar);
+  CHECK_EQ(output()->at(1).operand(0), temp0.ToOperand());
+
+  CHECK_EQ(output()->at(2).bytecode(), Bytecode::kMov);
+  CHECK_EQ(output()->at(2).operand(0), parameter.ToOperand());
+  CHECK_EQ(output()->at(2).operand(1), temp1.ToOperand());
+
+  CHECK_EQ(output()->at(3).bytecode(), Bytecode::kCallJSRuntime);
+  CHECK_EQ(output()->at(3).operand(0), 0);
+  CHECK_EQ(output()->at(3).operand(1), temp0.ToOperand());
+  CHECK_EQ(output()->at(3).operand(2), 2);
+}
+
+}  // namespace interpreter
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/interpreter/bytecodes-unittest.cc b/test/unittests/interpreter/bytecodes-unittest.cc
index eebacb2..74a2bb3 100644
--- a/test/unittests/interpreter/bytecodes-unittest.cc
+++ b/test/unittests/interpreter/bytecodes-unittest.cc
@@ -254,35 +254,6 @@
   }
 }
 
-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);
@@ -366,7 +337,6 @@
   names.insert(Bytecodes::AccumulatorUseToString(AccumulatorUse::kReadWrite));
   CHECK_EQ(names.size(), 4);
 }
-
 }  // namespace interpreter
 }  // namespace internal
 }  // namespace v8
diff --git a/test/unittests/interpreter/constant-array-builder-unittest.cc b/test/unittests/interpreter/constant-array-builder-unittest.cc
index 7122437..c48ac58 100644
--- a/test/unittests/interpreter/constant-array-builder-unittest.cc
+++ b/test/unittests/interpreter/constant-array-builder-unittest.cc
@@ -89,7 +89,7 @@
     }
     for (size_t i = 0; i < reserved; i++) {
       size_t index = k8BitCapacity - reserved + i;
-      CHECK(builder.At(index)->IsTheHole());
+      CHECK(builder.At(index)->IsTheHole(isolate()));
     }
 
     // Now make reservations, and commit them with unique entries.
diff --git a/test/unittests/interpreter/interpreter-assembler-unittest.cc b/test/unittests/interpreter/interpreter-assembler-unittest.cc
index cd21f09..1bc80c0 100644
--- a/test/unittests/interpreter/interpreter-assembler-unittest.cc
+++ b/test/unittests/interpreter/interpreter-assembler-unittest.cc
@@ -428,6 +428,10 @@
             EXPECT_THAT(m.BytecodeOperandRuntimeId(i),
                         m.IsUnsignedOperand(offset, operand_size));
             break;
+          case interpreter::OperandType::kIntrinsicId:
+            EXPECT_THAT(m.BytecodeOperandIntrinsicId(i),
+                        m.IsUnsignedOperand(offset, operand_size));
+            break;
           case interpreter::OperandType::kNone:
             UNREACHABLE();
             break;
@@ -692,16 +696,14 @@
         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 -
-                                  kHeapObjectTag));
+    Matcher<Node*> load_literals_matcher = m.IsLoad(
+        MachineType::AnyTagged(), load_function_matcher,
+        IsIntPtrConstant(JSFunction::kLiteralsOffset - kHeapObjectTag));
 
-    EXPECT_THAT(
-        feedback_vector,
-        m.IsLoad(MachineType::AnyTagged(), load_shared_function_info_matcher,
-                 IsIntPtrConstant(SharedFunctionInfo::kFeedbackVectorOffset -
-                                  kHeapObjectTag)));
+    EXPECT_THAT(feedback_vector,
+                m.IsLoad(MachineType::AnyTagged(), load_literals_matcher,
+                         IsIntPtrConstant(LiteralsArray::kFeedbackVectorOffset -
+                                          kHeapObjectTag)));
   }
 }
 
diff --git a/test/unittests/interpreter/source-position-table-unittest.cc b/test/unittests/interpreter/source-position-table-unittest.cc
index 230e57d..87d58fd 100644
--- a/test/unittests/interpreter/source-position-table-unittest.cc
+++ b/test/unittests/interpreter/source-position-table-unittest.cc
@@ -56,23 +56,26 @@
 TEST_F(SourcePositionTableTest, EncodeAscending) {
   SourcePositionTableBuilder builder(isolate(), zone());
 
-  int accumulator = 0;
+  int code_offset = 0;
+  int source_position = 0;
   for (int i = 0; i < arraysize(offsets); i++) {
-    accumulator += offsets[i];
+    code_offset += offsets[i];
+    source_position += offsets[i];
     if (i % 2) {
-      builder.AddPosition(accumulator, accumulator, true);
+      builder.AddPosition(code_offset, source_position, true);
     } else {
-      builder.AddPosition(accumulator, accumulator, false);
+      builder.AddPosition(code_offset, source_position, false);
     }
   }
 
-  // Also test negative offsets:
+  // Also test negative offsets for source positions:
   for (int i = 0; i < arraysize(offsets); i++) {
-    accumulator -= offsets[i];
+    code_offset += offsets[i];
+    source_position -= offsets[i];
     if (i % 2) {
-      builder.AddPosition(accumulator, accumulator, true);
+      builder.AddPosition(code_offset, source_position, true);
     } else {
-      builder.AddPosition(accumulator, accumulator, false);
+      builder.AddPosition(code_offset, source_position, false);
     }
   }
 
diff --git a/test/unittests/register-configuration-unittest.cc b/test/unittests/register-configuration-unittest.cc
new file mode 100644
index 0000000..31333ee
--- /dev/null
+++ b/test/unittests/register-configuration-unittest.cc
@@ -0,0 +1,130 @@
+// 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/register-configuration.h"
+#include "testing/gtest-support.h"
+
+namespace v8 {
+namespace internal {
+
+const MachineRepresentation kFloat32 = MachineRepresentation::kFloat32;
+const MachineRepresentation kFloat64 = MachineRepresentation::kFloat64;
+
+class RegisterConfigurationUnitTest : public ::testing::Test {
+ public:
+  RegisterConfigurationUnitTest() {}
+  virtual ~RegisterConfigurationUnitTest() {}
+
+ private:
+};
+
+TEST_F(RegisterConfigurationUnitTest, BasicProperties) {
+  const int kNumGeneralRegs = 3;
+  const int kNumDoubleRegs = 4;
+  const int kNumAllocatableGeneralRegs = 2;
+  const int kNumAllocatableDoubleRegs = 2;
+  int general_codes[kNumAllocatableGeneralRegs] = {1, 2};
+  int double_codes[kNumAllocatableDoubleRegs] = {2, 3};
+
+  RegisterConfiguration test(
+      kNumGeneralRegs, kNumDoubleRegs, kNumAllocatableGeneralRegs,
+      kNumAllocatableDoubleRegs, general_codes, double_codes,
+      RegisterConfiguration::OVERLAP, nullptr, nullptr, nullptr);
+
+  EXPECT_EQ(test.num_general_registers(), kNumGeneralRegs);
+  EXPECT_EQ(test.num_double_registers(), kNumDoubleRegs);
+  EXPECT_EQ(test.num_allocatable_general_registers(),
+            kNumAllocatableGeneralRegs);
+  EXPECT_EQ(test.num_allocatable_double_registers(), kNumAllocatableDoubleRegs);
+  EXPECT_EQ(test.num_allocatable_float_registers(), kNumAllocatableDoubleRegs);
+
+  EXPECT_EQ(test.allocatable_general_codes_mask(),
+            (1 << general_codes[0]) | (1 << general_codes[1]));
+  EXPECT_EQ(test.GetAllocatableGeneralCode(0), general_codes[0]);
+  EXPECT_EQ(test.GetAllocatableGeneralCode(1), general_codes[1]);
+  EXPECT_EQ(test.allocatable_double_codes_mask(),
+            (1 << double_codes[0]) | (1 << double_codes[1]));
+  EXPECT_EQ(test.GetAllocatableDoubleCode(0), double_codes[0]);
+  EXPECT_EQ(test.GetAllocatableDoubleCode(1), double_codes[1]);
+}
+
+TEST_F(RegisterConfigurationUnitTest, Aliasing) {
+  const int kNumGeneralRegs = 3;
+  const int kNumDoubleRegs = 4;
+  const int kNumAllocatableGeneralRegs = 2;
+  const int kNumAllocatableDoubleRegs = 3;
+  int general_codes[] = {1, 2};
+  int double_codes[] = {2, 3, 16};  // reg 16 should not alias registers 32, 33.
+
+  RegisterConfiguration test(
+      kNumGeneralRegs, kNumDoubleRegs, kNumAllocatableGeneralRegs,
+      kNumAllocatableDoubleRegs, general_codes, double_codes,
+      RegisterConfiguration::COMBINE, nullptr, nullptr, nullptr);
+
+  // There are 3 allocatable double regs, but only 2 can alias float regs.
+  EXPECT_EQ(test.num_allocatable_float_registers(), 4);
+
+  // Test that float registers combine in pairs to form double registers.
+  EXPECT_EQ(test.GetAllocatableFloatCode(0), double_codes[0] * 2);
+  EXPECT_EQ(test.GetAllocatableFloatCode(1), double_codes[0] * 2 + 1);
+  EXPECT_EQ(test.GetAllocatableFloatCode(2), double_codes[1] * 2);
+  EXPECT_EQ(test.GetAllocatableFloatCode(3), double_codes[1] * 2 + 1);
+
+  // Registers alias themselves.
+  EXPECT_TRUE(test.AreAliases(kFloat32, 0, kFloat32, 0));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 0, kFloat64, 0));
+  // Registers don't alias other registers of the same size.
+  EXPECT_FALSE(test.AreAliases(kFloat32, 1, kFloat32, 0));
+  EXPECT_FALSE(test.AreAliases(kFloat64, 1, kFloat64, 0));
+  // Float registers combine in pairs and alias double registers.
+  EXPECT_TRUE(test.AreAliases(kFloat32, 0, kFloat64, 0));
+  EXPECT_TRUE(test.AreAliases(kFloat32, 1, kFloat64, 0));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 0, kFloat32, 0));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 0, kFloat32, 1));
+
+  EXPECT_FALSE(test.AreAliases(kFloat32, 0, kFloat64, 1));
+  EXPECT_FALSE(test.AreAliases(kFloat32, 1, kFloat64, 1));
+
+  EXPECT_TRUE(test.AreAliases(kFloat64, 0, kFloat32, 1));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 1, kFloat32, 2));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 1, kFloat32, 3));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 2, kFloat32, 4));
+  EXPECT_TRUE(test.AreAliases(kFloat64, 2, kFloat32, 5));
+
+  int alias_base_index = -1;
+  EXPECT_EQ(test.GetAliases(kFloat32, 0, kFloat32, &alias_base_index), 1);
+  EXPECT_EQ(alias_base_index, 0);
+  EXPECT_EQ(test.GetAliases(kFloat64, 1, kFloat64, &alias_base_index), 1);
+  EXPECT_EQ(alias_base_index, 1);
+  EXPECT_EQ(test.GetAliases(kFloat32, 0, kFloat64, &alias_base_index), 1);
+  EXPECT_EQ(alias_base_index, 0);
+  EXPECT_EQ(test.GetAliases(kFloat32, 1, kFloat64, &alias_base_index), 1);
+  EXPECT_EQ(test.GetAliases(kFloat32, 2, kFloat64, &alias_base_index), 1);
+  EXPECT_EQ(alias_base_index, 1);
+  EXPECT_EQ(test.GetAliases(kFloat32, 3, kFloat64, &alias_base_index), 1);
+  EXPECT_EQ(alias_base_index, 1);
+  EXPECT_EQ(test.GetAliases(kFloat64, 0, kFloat32, &alias_base_index), 2);
+  EXPECT_EQ(alias_base_index, 0);
+  EXPECT_EQ(test.GetAliases(kFloat64, 1, kFloat32, &alias_base_index), 2);
+  EXPECT_EQ(alias_base_index, 2);
+
+  // Non-allocatable codes still alias.
+  EXPECT_EQ(test.GetAliases(kFloat64, 2, kFloat32, &alias_base_index), 2);
+  EXPECT_EQ(alias_base_index, 4);
+  // High numbered double registers don't alias nonexistent single registers.
+  EXPECT_EQ(
+      test.GetAliases(kFloat64, RegisterConfiguration::kMaxFPRegisters / 2,
+                      kFloat32, &alias_base_index),
+      0);
+  EXPECT_EQ(
+      test.GetAliases(kFloat64, RegisterConfiguration::kMaxFPRegisters / 2 + 1,
+                      kFloat32, &alias_base_index),
+      0);
+  EXPECT_EQ(test.GetAliases(kFloat64, RegisterConfiguration::kMaxFPRegisters,
+                            kFloat32, &alias_base_index),
+            0);
+}
+
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/unittests.gyp b/test/unittests/unittests.gyp
index e16ebeb..d5ba353 100644
--- a/test/unittests/unittests.gyp
+++ b/test/unittests/unittests.gyp
@@ -2,6 +2,8 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+# Please keep this file in sync with BUILD.gn.
+
 {
   'variables': {
     'v8_code': 1,
@@ -29,6 +31,7 @@
         'base/division-by-constant-unittest.cc',
         'base/flags-unittest.cc',
         'base/functional-unittest.cc',
+        'base/ieee754-unittest.cc',
         'base/logging-unittest.cc',
         'base/iterator-unittest.cc',
         'base/platform/condition-variable-unittest.cc',
@@ -41,7 +44,7 @@
         'cancelable-tasks-unittest.cc',
         'char-predicates-unittest.cc',
         'compiler/branch-elimination-unittest.cc',
-        'compiler/coalesced-live-ranges-unittest.cc',
+        'compiler/checkpoint-elimination-unittest.cc',
         'compiler/common-operator-reducer-unittest.cc',
         'compiler/common-operator-unittest.cc',
         'compiler/compiler-test-utils.h',
@@ -97,9 +100,11 @@
         'interpreter/bytecode-array-builder-unittest.cc',
         'interpreter/bytecode-array-iterator-unittest.cc',
         'interpreter/bytecode-array-writer-unittest.cc',
+        'interpreter/bytecode-dead-code-optimizer-unittest.cc',
         'interpreter/bytecode-peephole-optimizer-unittest.cc',
-        'interpreter/bytecode-register-allocator-unittest.cc',
         'interpreter/bytecode-pipeline-unittest.cc',
+        'interpreter/bytecode-register-allocator-unittest.cc',
+        'interpreter/bytecode-register-optimizer-unittest.cc',
         'interpreter/constant-array-builder-unittest.cc',
         'interpreter/interpreter-assembler-unittest.cc',
         'interpreter/interpreter-assembler-unittest.h',
@@ -115,10 +120,13 @@
         'heap/scavenge-job-unittest.cc',
         'heap/slot-set-unittest.cc',
         'locked-queue-unittest.cc',
+        'register-configuration-unittest.cc',
         'run-all-unittests.cc',
         'test-utils.h',
         'test-utils.cc',
+        'wasm/asm-types-unittest.cc',
         'wasm/ast-decoder-unittest.cc',
+        'wasm/control-transfer-unittest.cc',
         'wasm/decoder-unittest.cc',
         'wasm/encoder-unittest.cc',
         'wasm/leb-helper-unittest.cc',
diff --git a/test/unittests/unittests.status b/test/unittests/unittests.status
index 84fd087..6d67439 100644
--- a/test/unittests/unittests.status
+++ b/test/unittests/unittests.status
@@ -12,4 +12,9 @@
   'AstDecoderTest.AllLoadMemCombinations': [SKIP],
   'AstDecoderTest.AllStoreMemCombinations': [SKIP],
 }],  # 'byteorder == big'
+['arch == x87', {
+  'Ieee754.Expm1': [SKIP],
+  'Ieee754.Cos': [SKIP],
+  'Ieee754.Tan': [SKIP],
+}],  # 'arch == x87'
 ]
diff --git a/test/unittests/wasm/asm-types-unittest.cc b/test/unittests/wasm/asm-types-unittest.cc
new file mode 100644
index 0000000..9b29362
--- /dev/null
+++ b/test/unittests/wasm/asm-types-unittest.cc
@@ -0,0 +1,729 @@
+// 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/asm-types.h"
+
+#include <unordered_map>
+#include <unordered_set>
+
+#include "src/base/macros.h"
+#include "test/unittests/test-utils.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace v8 {
+namespace internal {
+namespace wasm {
+namespace {
+
+using ::testing::StrEq;
+
+class AsmTypeTest : public TestWithZone {
+ public:
+  using Type = AsmType;
+
+  AsmTypeTest()
+      : parents_({
+            {Type::Uint8Array(), {Type::Heap()}},
+            {Type::Int8Array(), {Type::Heap()}},
+            {Type::Uint16Array(), {Type::Heap()}},
+            {Type::Int16Array(), {Type::Heap()}},
+            {Type::Uint32Array(), {Type::Heap()}},
+            {Type::Int32Array(), {Type::Heap()}},
+            {Type::Float32Array(), {Type::Heap()}},
+            {Type::Float64Array(), {Type::Heap()}},
+            {Type::FloatishDoubleQ(), {Type::Floatish(), Type::DoubleQ()}},
+            {Type::FloatQDoubleQ(),
+             {Type::FloatQ(), Type::Floatish(), Type::DoubleQ()}},
+            {Type::Float(), {Type::FloatQ(), Type::Floatish()}},
+            {Type::FloatQ(), {Type::Floatish()}},
+            {Type::FixNum(),
+             {Type::Signed(), Type::Extern(), Type::Unsigned(), Type::Int(),
+              Type::Intish()}},
+            {Type::Unsigned(), {Type::Int(), Type::Intish()}},
+            {Type::Signed(), {Type::Extern(), Type::Int(), Type::Intish()}},
+            {Type::Int(), {Type::Intish()}},
+            {Type::Double(), {Type::DoubleQ(), Type::Extern()}},
+        }) {}
+
+ protected:
+  std::unordered_set<Type*> ParentsOf(Type* derived) const {
+    const auto parents_iter = parents_.find(derived);
+    if (parents_iter == parents_.end()) {
+      return std::unordered_set<Type*>();
+    }
+    return parents_iter->second;
+  }
+
+  class FunctionTypeBuilder {
+   public:
+    FunctionTypeBuilder(FunctionTypeBuilder&& b)
+        : function_type_(b.function_type_) {
+      b.function_type_ = nullptr;
+    }
+
+    FunctionTypeBuilder& operator=(FunctionTypeBuilder&& b) {
+      if (this != &b) {
+        function_type_ = b.function_type_;
+        b.function_type_ = nullptr;
+      }
+      return *this;
+    }
+
+    FunctionTypeBuilder(Zone* zone, Type* return_type)
+        : function_type_(Type::Function(zone, return_type)) {}
+
+   private:
+    static void AddAllArguments(AsmFunctionType*) {}
+
+    template <typename Arg, typename... Others>
+    static void AddAllArguments(AsmFunctionType* function_type, Arg* arg,
+                                Others... others) {
+      CHECK(function_type != nullptr);
+      function_type->AddArgument((*arg)());
+      AddAllArguments(function_type, others...);
+    }
+
+   public:
+    template <typename... Args>
+    Type* operator()(Args... args) {
+      Type* ret = function_type_;
+      function_type_ = nullptr;
+      AddAllArguments(ret->AsFunctionType(), args...);
+      return ret;
+    }
+
+   private:
+    Type* function_type_;
+  };
+
+  FunctionTypeBuilder Function(Type* (*return_type)()) {
+    return FunctionTypeBuilder(zone(), (*return_type)());
+  }
+
+  template <typename... Overloads>
+  Type* Overload(Overloads... overloads) {
+    auto* ret = Type::OverloadedFunction(zone());
+    AddAllOverloads(ret->AsOverloadedFunctionType(), overloads...);
+    return ret;
+  }
+
+ private:
+  static void AddAllOverloads(AsmOverloadedFunctionType*) {}
+
+  template <typename Overload, typename... Others>
+  static void AddAllOverloads(AsmOverloadedFunctionType* function,
+                              Overload* overload, Others... others) {
+    CHECK(function != nullptr);
+    function->AddOverload(overload);
+    AddAllOverloads(function, others...);
+  }
+
+  const std::unordered_map<Type*, std::unordered_set<Type*>> parents_;
+};
+
+// AsmValueTypeParents expose the bitmasks for the parents for each value type
+// in asm's type system. It inherits from AsmValueType so that the kAsm<Foo>
+// members are available when expanding the FOR_EACH_ASM_VALUE_TYPE_LIST macro.
+class AsmValueTypeParents : private AsmValueType {
+ public:
+  enum : uint32_t {
+#define V(CamelName, string_name, number, parent_types) \
+  CamelName = parent_types,
+    FOR_EACH_ASM_VALUE_TYPE_LIST(V)
+#undef V
+  };
+
+ private:
+  DISALLOW_IMPLICIT_CONSTRUCTORS(AsmValueTypeParents);
+};
+
+TEST_F(AsmTypeTest, ValidateBits) {
+  // Generic validation tests for the bits in the type system's type
+  // definitions.
+
+  std::unordered_set<Type*> seen_types;
+  std::unordered_set<uint32_t> seen_numbers;
+  uint32_t total_types = 0;
+#define V(CamelName, string_name, number, parent_types)                      \
+  do {                                                                       \
+    ++total_types;                                                           \
+    if (AsmValueTypeParents::CamelName != 0) {                               \
+      EXPECT_NE(0, ParentsOf(AsmType::CamelName()).size()) << #CamelName;    \
+    }                                                                        \
+    seen_types.insert(Type::CamelName());                                    \
+    seen_numbers.insert(number);                                             \
+    /* Every ASM type must have a valid number. */                           \
+    EXPECT_NE(0, number) << Type::CamelName()->Name();                       \
+    /* Inheritance cycles - unlikely, but we're paranoid and check for it */ \
+    /* anyways.*/                                                            \
+    EXPECT_EQ(0, (1 << (number)) & AsmValueTypeParents::CamelName);          \
+  } while (0);
+  FOR_EACH_ASM_VALUE_TYPE_LIST(V)
+#undef V
+
+  // At least one type was expanded.
+  EXPECT_GT(total_types, 0u);
+
+  // Each value type is unique.
+  EXPECT_EQ(total_types, seen_types.size());
+
+  // Each number is unique.
+  EXPECT_EQ(total_types, seen_numbers.size());
+}
+
+TEST_F(AsmTypeTest, SaneParentsMap) {
+  // This test ensures our parents map contains all the parents types that are
+  // specified in the types' declaration. It does not report bogus inheritance.
+
+  // Handy-dandy lambda for counting bits. Code borrowed from stack overflow.
+  auto NumberOfSetBits = [](uintptr_t parent_mask) -> uint32_t {
+    uint32_t parent_mask32 = static_cast<uint32_t>(parent_mask);
+    CHECK_EQ(parent_mask, parent_mask32);
+    parent_mask32 = parent_mask32 - ((parent_mask32 >> 1) & 0x55555555);
+    parent_mask32 =
+        (parent_mask32 & 0x33333333) + ((parent_mask32 >> 2) & 0x33333333);
+    return (((parent_mask32 + (parent_mask32 >> 4)) & 0x0F0F0F0F) *
+            0x01010101) >>
+           24;
+  };
+
+#define V(CamelName, string_name, number, parent_types)                    \
+  do {                                                                     \
+    const uintptr_t parents =                                              \
+        reinterpret_cast<uintptr_t>(Type::CamelName()) & ~(1 << (number)); \
+    EXPECT_EQ(NumberOfSetBits(parents),                                    \
+              1 + ParentsOf(Type::CamelName()).size())                     \
+        << Type::CamelName()->Name() << ", parents "                       \
+        << reinterpret_cast<void*>(parents) << ", type "                   \
+        << static_cast<void*>(Type::CamelName());                          \
+  } while (0);
+  FOR_EACH_ASM_VALUE_TYPE_LIST(V)
+#undef V
+}
+
+TEST_F(AsmTypeTest, Names) {
+#define V(CamelName, string_name, number, parent_types)         \
+  do {                                                          \
+    EXPECT_THAT(Type::CamelName()->Name(), StrEq(string_name)); \
+  } while (0);
+  FOR_EACH_ASM_VALUE_TYPE_LIST(V)
+#undef V
+
+  EXPECT_THAT(Function(Type::Int)(Type::Double, Type::Float)->Name(),
+              StrEq("(double, float) -> int"));
+
+  EXPECT_THAT(Overload(Function(Type::Int)(Type::Double, Type::Float),
+                       Function(Type::Int)(Type::Int))
+                  ->Name(),
+              StrEq("(double, float) -> int /\\ (int) -> int"));
+
+  EXPECT_THAT(Type::FroundType(zone())->Name(), StrEq("fround"));
+
+  EXPECT_THAT(Type::MinMaxType(zone(), Type::Signed(), Type::Int())->Name(),
+              StrEq("(int, int...) -> signed"));
+  EXPECT_THAT(Type::MinMaxType(zone(), Type::Float(), Type::Floatish())->Name(),
+              StrEq("(floatish, floatish...) -> float"));
+  EXPECT_THAT(Type::MinMaxType(zone(), Type::Double(), Type::DoubleQ())->Name(),
+              StrEq("(double?, double?...) -> double"));
+
+  EXPECT_THAT(Type::FFIType(zone())->Name(), StrEq("Function"));
+
+  auto* ft =
+      Type::FunctionTableType(zone(), 15, Function(Type::Double)(Type::Int));
+  EXPECT_THAT(ft->Name(), StrEq("(int) -> double[15]"));
+}
+
+TEST_F(AsmTypeTest, IsExactly) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    for (size_t jj = 0; jj < arraysize(test_types); ++jj) {
+      EXPECT_EQ(ii == jj, test_types[ii]->IsExactly(test_types[jj]))
+          << test_types[ii]->Name()
+          << ((ii == jj) ? " is not exactly " : " is exactly ")
+          << test_types[jj]->Name();
+    }
+  }
+}
+
+TEST_F(AsmTypeTest, IsA) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    for (size_t jj = 0; jj < arraysize(test_types); ++jj) {
+      const bool Expected =
+          (ii == jj) || ParentsOf(test_types[ii]).count(test_types[jj]) != 0;
+      EXPECT_EQ(Expected, test_types[ii]->IsA(test_types[jj]))
+          << test_types[ii]->Name() << (Expected ? " is not a " : " is a ")
+          << test_types[jj]->Name();
+    }
+  }
+}
+
+TEST_F(AsmTypeTest, ValidateCall) {
+  auto* min_max_int = Type::MinMaxType(zone(), Type::Signed(), Type::Int());
+  auto* i2s = Function(Type::Signed)(Type::Int);
+  auto* ii2s = Function(Type::Signed)(Type::Int, Type::Int);
+  auto* iii2s = Function(Type::Signed)(Type::Int, Type::Int, Type::Int);
+  auto* iiii2s =
+      Function(Type::Signed)(Type::Int, Type::Int, Type::Int, Type::Int);
+
+  EXPECT_EQ(Type::Signed(), min_max_int->AsCallableType()->ValidateCall(
+                                min_max_int->AsFunctionType()->ReturnType(),
+                                min_max_int->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max_int->AsCallableType()->ValidateCall(
+                                ii2s->AsFunctionType()->ReturnType(),
+                                ii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max_int->AsCallableType()->ValidateCall(
+                                iii2s->AsFunctionType()->ReturnType(),
+                                iii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max_int->AsCallableType()->ValidateCall(
+                                iiii2s->AsFunctionType()->ReturnType(),
+                                iiii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), min_max_int->AsCallableType()->ValidateCall(
+                              i2s->AsFunctionType()->ReturnType(),
+                              i2s->AsFunctionType()->Arguments()));
+
+  auto* min_max_double =
+      Type::MinMaxType(zone(), Type::Double(), Type::Double());
+  auto* d2d = Function(Type::Double)(Type::Double);
+  auto* dd2d = Function(Type::Double)(Type::Double, Type::Double);
+  auto* ddd2d =
+      Function(Type::Double)(Type::Double, Type::Double, Type::Double);
+  auto* dddd2d = Function(Type::Double)(Type::Double, Type::Double,
+                                        Type::Double, Type::Double);
+  EXPECT_EQ(Type::Double(), min_max_double->AsCallableType()->ValidateCall(
+                                min_max_double->AsFunctionType()->ReturnType(),
+                                min_max_double->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max_double->AsCallableType()->ValidateCall(
+                                dd2d->AsFunctionType()->ReturnType(),
+                                dd2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max_double->AsCallableType()->ValidateCall(
+                                ddd2d->AsFunctionType()->ReturnType(),
+                                ddd2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max_double->AsCallableType()->ValidateCall(
+                                dddd2d->AsFunctionType()->ReturnType(),
+                                dddd2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), min_max_double->AsCallableType()->ValidateCall(
+                              d2d->AsFunctionType()->ReturnType(),
+                              d2d->AsFunctionType()->Arguments()));
+
+  auto* min_max = Overload(min_max_int, min_max_double);
+  EXPECT_EQ(Type::None(), min_max->AsCallableType()->ValidateCall(
+                              i2s->AsFunctionType()->ReturnType(),
+                              i2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), min_max->AsCallableType()->ValidateCall(
+                              d2d->AsFunctionType()->ReturnType(),
+                              d2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max->AsCallableType()->ValidateCall(
+                                min_max_int->AsFunctionType()->ReturnType(),
+                                min_max_int->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max->AsCallableType()->ValidateCall(
+                                ii2s->AsFunctionType()->ReturnType(),
+                                ii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max->AsCallableType()->ValidateCall(
+                                iii2s->AsFunctionType()->ReturnType(),
+                                iii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Signed(), min_max->AsCallableType()->ValidateCall(
+                                iiii2s->AsFunctionType()->ReturnType(),
+                                iiii2s->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max->AsCallableType()->ValidateCall(
+                                min_max_double->AsFunctionType()->ReturnType(),
+                                min_max_double->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max->AsCallableType()->ValidateCall(
+                                dd2d->AsFunctionType()->ReturnType(),
+                                dd2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max->AsCallableType()->ValidateCall(
+                                ddd2d->AsFunctionType()->ReturnType(),
+                                ddd2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), min_max->AsCallableType()->ValidateCall(
+                                dddd2d->AsFunctionType()->ReturnType(),
+                                dddd2d->AsFunctionType()->Arguments()));
+
+  auto* fround = Type::FroundType(zone());
+
+  ZoneVector<AsmType*> arg(zone());
+  arg.push_back(Type::Floatish());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::FloatQ());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::Float());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::DoubleQ());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::Double());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::Signed());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::Unsigned());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+  arg.clear();
+  arg.push_back(Type::FixNum());
+  EXPECT_EQ(Type::Float(),
+            fround->AsCallableType()->ValidateCall(Type::Float(), arg));
+
+  auto* idf2v = Function(Type::Void)(Type::Int, Type::Double, Type::Float);
+  auto* i2d = Function(Type::Double)(Type::Int);
+  auto* i2f = Function(Type::Float)(Type::Int);
+  auto* fi2d = Function(Type::Double)(Type::Float, Type::Int);
+  auto* idif2i =
+      Function(Type::Int)(Type::Int, Type::Double, Type::Int, Type::Float);
+  auto* overload = Overload(idf2v, i2f, /*i2d missing, */ fi2d, idif2i);
+  EXPECT_EQ(Type::Void(), overload->AsCallableType()->ValidateCall(
+                              idf2v->AsFunctionType()->ReturnType(),
+                              idf2v->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Float(), overload->AsCallableType()->ValidateCall(
+                               i2f->AsFunctionType()->ReturnType(),
+                               i2f->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Double(), overload->AsCallableType()->ValidateCall(
+                                fi2d->AsFunctionType()->ReturnType(),
+                                fi2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::Int(), overload->AsCallableType()->ValidateCall(
+                             idif2i->AsFunctionType()->ReturnType(),
+                             idif2i->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), overload->AsCallableType()->ValidateCall(
+                              i2d->AsFunctionType()->ReturnType(),
+                              i2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), i2f->AsCallableType()->ValidateCall(
+                              i2d->AsFunctionType()->ReturnType(),
+                              i2d->AsFunctionType()->Arguments()));
+
+  auto* ffi = Type::FFIType(zone());
+  AsmType* (*kReturnTypes[])() = {
+      Type::Void, Type::Double, Type::Signed,
+  };
+  AsmType* (*kParameterTypes[])() = {
+      Type::Double, Type::Signed, Type::FixNum,
+  };
+  for (size_t ii = 0; ii < arraysize(kReturnTypes); ++ii) {
+    for (size_t jj = 0; jj < arraysize(kParameterTypes); ++jj) {
+      auto* f = Function(kReturnTypes[ii])(kParameterTypes[jj]);
+      EXPECT_EQ(kReturnTypes[ii](), ffi->AsCallableType()->ValidateCall(
+                                        f->AsFunctionType()->ReturnType(),
+                                        f->AsFunctionType()->Arguments()))
+          << kReturnTypes[ii]()->Name();
+
+      // Call with non-parameter type type should fail.
+      f = Function(kReturnTypes[ii])(kParameterTypes[jj], Type::Int);
+      EXPECT_EQ(Type::None(), ffi->AsCallableType()->ValidateCall(
+                                  f->AsFunctionType()->ReturnType(),
+                                  f->AsFunctionType()->Arguments()))
+          << kReturnTypes[ii]()->Name();
+    }
+  }
+
+  auto* ft0 = Type::FunctionTableType(zone(), 10, fi2d);
+  EXPECT_EQ(Type::Double(), ft0->AsCallableType()->ValidateCall(
+                                fi2d->AsFunctionType()->ReturnType(),
+                                fi2d->AsFunctionType()->Arguments()));
+  EXPECT_EQ(Type::None(), ft0->AsCallableType()->ValidateCall(
+                              i2d->AsFunctionType()->ReturnType(),
+                              i2d->AsFunctionType()->Arguments()));
+}
+
+TEST_F(AsmTypeTest, ToReturnType) {
+  std::unordered_map<AsmType*, AsmType*> kToReturnType = {
+      {Type::Signed(), Type::Signed()}, {Type::FixNum(), Type::Signed()},
+      {Type::Double(), Type::Double()}, {Type::Float(), Type::Float()},
+      {Type::Void(), Type::Void()},
+  };
+
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    auto* return_type = Type::None();
+    auto to_return_type_iter = kToReturnType.find(test_types[ii]);
+    if (to_return_type_iter != kToReturnType.end()) {
+      return_type = to_return_type_iter->second;
+    }
+    EXPECT_EQ(return_type, test_types[ii]->ToReturnType())
+        << return_type->Name() << " != " << test_types[ii]->ToReturnType();
+  }
+}
+
+TEST_F(AsmTypeTest, IsReturnType) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  std::unordered_set<Type*> return_types{
+      Type::Double(), Type::Signed(), Type::Float(), Type::Void(),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    const bool IsReturnType = return_types.count(test_types[ii]);
+    EXPECT_EQ(IsReturnType, test_types[ii]->IsReturnType())
+        << test_types[ii]->Name()
+        << (IsReturnType ? " is not a return type" : " is a return type");
+  }
+}
+
+TEST_F(AsmTypeTest, ToParameterType) {
+  std::unordered_map<AsmType*, AsmType*> kToParameterType = {
+      {Type::Int(), Type::Int()},       {Type::Signed(), Type::Int()},
+      {Type::Unsigned(), Type::Int()},  {Type::FixNum(), Type::Int()},
+      {Type::Double(), Type::Double()}, {Type::Float(), Type::Float()},
+  };
+
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    auto* parameter_type = Type::None();
+    auto to_parameter_type_iter = kToParameterType.find(test_types[ii]);
+    if (to_parameter_type_iter != kToParameterType.end()) {
+      parameter_type = to_parameter_type_iter->second;
+    }
+    EXPECT_EQ(parameter_type, test_types[ii]->ToParameterType())
+        << parameter_type->Name()
+        << " != " << test_types[ii]->ToParameterType();
+  }
+}
+
+TEST_F(AsmTypeTest, IsParameterType) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  std::unordered_set<Type*> parameter_types{
+      Type::Double(), Type::Int(), Type::Float(),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    const bool IsParameterType = parameter_types.count(test_types[ii]);
+    EXPECT_EQ(IsParameterType, test_types[ii]->IsParameterType())
+        << test_types[ii]->Name()
+        << (IsParameterType ? " is not a parameter type"
+                            : " is a parameter type");
+  }
+}
+
+TEST_F(AsmTypeTest, IsComparableType) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  std::unordered_set<Type*> comparable_types{
+      Type::Double(), Type::Signed(), Type::Unsigned(), Type::Float(),
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    const bool IsComparableType = comparable_types.count(test_types[ii]);
+    EXPECT_EQ(IsComparableType, test_types[ii]->IsComparableType())
+        << test_types[ii]->Name()
+        << (IsComparableType ? " is not a comparable type"
+                             : " is a comparable type");
+  }
+}
+
+TEST_F(AsmTypeTest, ElementSizeInBytes) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  auto ElementSizeInBytesForType = [](Type* type) -> int32_t {
+    if (type == Type::Int8Array() || type == Type::Uint8Array()) {
+      return 1;
+    }
+    if (type == Type::Int16Array() || type == Type::Uint16Array()) {
+      return 2;
+    }
+    if (type == Type::Int32Array() || type == Type::Uint32Array() ||
+        type == Type::Float32Array()) {
+      return 4;
+    }
+    if (type == Type::Float64Array()) {
+      return 8;
+    }
+    return -1;
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    EXPECT_EQ(ElementSizeInBytesForType(test_types[ii]),
+              test_types[ii]->ElementSizeInBytes());
+  }
+}
+
+TEST_F(AsmTypeTest, LoadType) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  auto LoadTypeForType = [](Type* type) -> Type* {
+    if (type == Type::Int8Array() || type == Type::Uint8Array() ||
+        type == Type::Int16Array() || type == Type::Uint16Array() ||
+        type == Type::Int32Array() || type == Type::Uint32Array()) {
+      return Type::Intish();
+    }
+
+    if (type == Type::Float32Array()) {
+      return Type::FloatQ();
+    }
+
+    if (type == Type::Float64Array()) {
+      return Type::DoubleQ();
+    }
+
+    return Type::None();
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    EXPECT_EQ(LoadTypeForType(test_types[ii]), test_types[ii]->LoadType());
+  }
+}
+
+TEST_F(AsmTypeTest, StoreType) {
+  Type* test_types[] = {
+#define CREATE(CamelName, string_name, number, parent_types) Type::CamelName(),
+      FOR_EACH_ASM_VALUE_TYPE_LIST(CREATE)
+#undef CREATE
+          Function(Type::Int)(Type::Double),
+      Function(Type::Int)(Type::DoubleQ),
+      Overload(Function(Type::Int)(Type::Double)),
+      Function(Type::Int)(Type::Int, Type::Int),
+      Type::MinMaxType(zone(), Type::Signed(), Type::Int()),
+      Function(Type::Int)(Type::Float), Type::FroundType(zone()),
+      Type::FFIType(zone()),
+      Type::FunctionTableType(zone(), 10, Function(Type::Void)()),
+  };
+
+  auto StoreTypeForType = [](Type* type) -> Type* {
+    if (type == Type::Int8Array() || type == Type::Uint8Array() ||
+        type == Type::Int16Array() || type == Type::Uint16Array() ||
+        type == Type::Int32Array() || type == Type::Uint32Array()) {
+      return Type::Intish();
+    }
+
+    if (type == Type::Float32Array()) {
+      return Type::FloatishDoubleQ();
+    }
+
+    if (type == Type::Float64Array()) {
+      return Type::FloatQDoubleQ();
+    }
+
+    return Type::None();
+  };
+
+  for (size_t ii = 0; ii < arraysize(test_types); ++ii) {
+    EXPECT_EQ(StoreTypeForType(test_types[ii]), test_types[ii]->StoreType())
+        << test_types[ii]->Name();
+  }
+}
+
+}  // namespace
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/wasm/ast-decoder-unittest.cc b/test/unittests/wasm/ast-decoder-unittest.cc
index fe10115..8be0e41 100644
--- a/test/unittests/wasm/ast-decoder-unittest.cc
+++ b/test/unittests/wasm/ast-decoder-unittest.cc
@@ -82,7 +82,7 @@
   // verification failures.
   void Verify(ErrorCode expected, FunctionSig* sig, const byte* start,
               const byte* end) {
-    local_decls.Prepend(&start, &end);
+    local_decls.Prepend(zone(), &start, &end);
     // Verify the code.
     TreeResult result =
         VerifyWasmCode(zone()->allocator(), module, sig, start, end);
@@ -105,8 +105,6 @@
       }
       FATAL(str.str().c_str());
     }
-
-    delete[] start;  // local_decls.Prepend() allocated a new buffer.
   }
 
   void TestBinop(WasmOpcode opcode, FunctionSig* success) {
@@ -1158,7 +1156,6 @@
   TestModuleEnv() {
     instance = nullptr;
     module = &mod;
-    linker = nullptr;
   }
   byte AddGlobal(MachineType mem_type) {
     mod.globals.push_back({0, 0, mem_type, 0, false});
@@ -1171,14 +1168,13 @@
     return static_cast<byte>(mod.signatures.size() - 1);
   }
   byte AddFunction(FunctionSig* sig) {
-    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
+    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
     CHECK(mod.functions.size() <= 127);
     return static_cast<byte>(mod.functions.size() - 1);
   }
@@ -2427,7 +2423,7 @@
   local_decls.AddLocals(5, kAstF32);
   local_decls.AddLocals(1337, kAstI32);
   local_decls.AddLocals(212, kAstI64);
-  local_decls.Prepend(&data, &end);
+  local_decls.Prepend(zone(), &data, &end);
 
   AstLocalDecls decls(zone());
   bool result = DecodeLocalDecls(decls, data, end);
@@ -2439,7 +2435,6 @@
   pos = ExpectRun(map, pos, kAstF32, 5);
   pos = ExpectRun(map, pos, kAstI32, 1337);
   pos = ExpectRun(map, pos, kAstI64, 212);
-  delete[] data;
 }
 
 }  // namespace wasm
diff --git a/test/unittests/wasm/control-transfer-unittest.cc b/test/unittests/wasm/control-transfer-unittest.cc
new file mode 100644
index 0000000..2b67f12
--- /dev/null
+++ b/test/unittests/wasm/control-transfer-unittest.cc
@@ -0,0 +1,402 @@
+// 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 "testing/gmock/include/gmock/gmock.h"
+
+#include "src/v8.h"
+
+#include "src/wasm/wasm-interpreter.h"
+#include "src/wasm/wasm-macro-gen.h"
+
+using testing::MakeMatcher;
+using testing::Matcher;
+using testing::MatcherInterface;
+using testing::MatchResultListener;
+using testing::StringMatchResultListener;
+
+namespace v8 {
+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
+
+struct ExpectedTarget {
+  pc_t pc;
+  ControlTransfer expected;
+};
+
+// For nicer error messages.
+class ControlTransferMatcher : public MatcherInterface<const ControlTransfer&> {
+ public:
+  explicit ControlTransferMatcher(pc_t pc, const ControlTransfer& expected)
+      : pc_(pc), expected_(expected) {}
+
+  void DescribeTo(std::ostream* os) const override {
+    *os << "@" << pc_ << " {pcdiff = " << expected_.pcdiff
+        << ", spdiff = " << expected_.spdiff
+        << ", action = " << expected_.action << "}";
+  }
+
+  bool MatchAndExplain(const ControlTransfer& input,
+                       MatchResultListener* listener) const override {
+    if (input.pcdiff != expected_.pcdiff || input.spdiff != expected_.spdiff ||
+        input.action != expected_.action) {
+      *listener << "@" << pc_ << " {pcdiff = " << input.pcdiff
+                << ", spdiff = " << input.spdiff
+                << ", action = " << input.action << "}";
+      return false;
+    }
+    return true;
+  }
+
+ private:
+  pc_t pc_;
+  const ControlTransfer& expected_;
+};
+
+class ControlTransferTest : public TestWithZone {
+ public:
+  void CheckControlTransfers(const byte* start, const byte* end,
+                             ExpectedTarget* expected_targets,
+                             size_t num_targets) {
+    ControlTransferMap map =
+        WasmInterpreter::ComputeControlTransfersForTesting(zone(), start, end);
+    // Check all control targets in the map.
+    for (size_t i = 0; i < num_targets; i++) {
+      pc_t pc = expected_targets[i].pc;
+      auto it = map.find(pc);
+      if (it == map.end()) {
+        printf("expected control target @ +%zu\n", pc);
+        EXPECT_TRUE(false);
+      } else {
+        ControlTransfer& expected = expected_targets[i].expected;
+        ControlTransfer& target = it->second;
+        EXPECT_THAT(target,
+                    MakeMatcher(new ControlTransferMatcher(pc, expected)));
+      }
+    }
+
+    // Check there are no other control targets.
+    for (pc_t pc = 0; start + pc < end; pc++) {
+      bool found = false;
+      for (size_t i = 0; i < num_targets; i++) {
+        if (expected_targets[i].pc == pc) {
+          found = true;
+          break;
+        }
+      }
+      if (found) continue;
+      if (map.find(pc) != map.end()) {
+        printf("expected no control @ +%zu\n", pc);
+        EXPECT_TRUE(false);
+      }
+    }
+  }
+};
+
+// Macro for simplifying tests below.
+#define EXPECT_TARGETS(...)                                                    \
+  do {                                                                         \
+    ExpectedTarget pairs[] = {__VA_ARGS__};                                    \
+    CheckControlTransfers(code, code + sizeof(code), pairs, arraysize(pairs)); \
+  } while (false)
+
+TEST_F(ControlTransferTest, SimpleIf) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprEnd        // @3
+  };
+  EXPECT_TARGETS({2, {2, 0, ControlTransfer::kPushVoid}},  // --
+                 {3, {1, 0, ControlTransfer::kPushVoid}});
+}
+
+TEST_F(ControlTransferTest, SimpleIf1) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprNop,       // @3
+      kExprEnd        // @4
+  };
+  EXPECT_TARGETS({2, {3, 0, ControlTransfer::kPushVoid}},  // --
+                 {4, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleIf2) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprNop,       // @3
+      kExprNop,       // @4
+      kExprEnd        // @5
+  };
+  EXPECT_TARGETS({2, {4, 0, ControlTransfer::kPushVoid}},  // --
+                 {5, {1, 2, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleIfElse) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprElse,      // @3
+      kExprEnd        // @4
+  };
+  EXPECT_TARGETS({2, {2, 0, ControlTransfer::kNoAction}},  // --
+                 {3, {2, 0, ControlTransfer::kPushVoid}},  // --
+                 {4, {1, 0, ControlTransfer::kPushVoid}});
+}
+
+TEST_F(ControlTransferTest, SimpleIfElse1) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprNop,       // @3
+      kExprElse,      // @4
+      kExprNop,       // @5
+      kExprEnd        // @6
+  };
+  EXPECT_TARGETS({2, {3, 0, ControlTransfer::kNoAction}},      // --
+                 {4, {3, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {6, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, IfBr) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprBr,        // @3
+      ARITY_0,        //   +1
+      0,              //   +1
+      kExprEnd        // @6
+  };
+  EXPECT_TARGETS({2, {5, 0, ControlTransfer::kPushVoid}},  // --
+                 {3, {4, 0, ControlTransfer::kPushVoid}},  // --
+                 {6, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, IfBrElse) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprBr,        // @3
+      ARITY_0,        //   +1
+      0,              //   +1
+      kExprElse,      // @6
+      kExprEnd        // @7
+  };
+  EXPECT_TARGETS({2, {5, 0, ControlTransfer::kNoAction}},      // --
+                 {3, {5, 0, ControlTransfer::kPushVoid}},      // --
+                 {6, {2, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {7, {1, 0, ControlTransfer::kPushVoid}});
+}
+
+TEST_F(ControlTransferTest, IfElseBr) {
+  byte code[] = {
+      kExprI32Const,  // @0
+      0,              //   +1
+      kExprIf,        // @2
+      kExprNop,       // @3
+      kExprElse,      // @4
+      kExprBr,        // @5
+      ARITY_0,        //   +1
+      0,              //   +1
+      kExprEnd        // @8
+  };
+  EXPECT_TARGETS({2, {3, 0, ControlTransfer::kNoAction}},      // --
+                 {4, {5, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {5, {4, 0, ControlTransfer::kPushVoid}},      // --
+                 {8, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, BlockEmpty) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprEnd     // @1
+  };
+  EXPECT_TARGETS({1, {1, 0, ControlTransfer::kPushVoid}});
+}
+
+TEST_F(ControlTransferTest, Br0) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprBr,     // @1
+      ARITY_0,     //   +1
+      0,           //   +1
+      kExprEnd     // @4
+  };
+  EXPECT_TARGETS({1, {4, 0, ControlTransfer::kPushVoid}},
+                 {4, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, Br1) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprNop,    // @1
+      kExprBr,     // @2
+      ARITY_0,     //   +1
+      0,           //   +1
+      kExprEnd     // @5
+  };
+  EXPECT_TARGETS({2, {4, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {5, {1, 2, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, Br2) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprNop,    // @1
+      kExprNop,    // @2
+      kExprBr,     // @3
+      ARITY_0,     //   +1
+      0,           //   +1
+      kExprEnd     // @6
+  };
+  EXPECT_TARGETS({3, {4, 2, ControlTransfer::kPopAndRepush}},  // --
+                 {6, {1, 3, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, Br0b) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprBr,     // @1
+      ARITY_0,     //   +1
+      0,           //   +1
+      kExprNop,    // @4
+      kExprEnd     // @5
+  };
+  EXPECT_TARGETS({1, {5, 0, ControlTransfer::kPushVoid}},  // --
+                 {5, {1, 2, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, Br0c) {
+  byte code[] = {
+      kExprBlock,  // @0
+      kExprBr,     // @1
+      ARITY_0,     //   +1
+      0,           //   +1
+      kExprNop,    // @4
+      kExprNop,    // @5
+      kExprEnd     // @6
+  };
+  EXPECT_TARGETS({1, {6, 0, ControlTransfer::kPushVoid}},  // --
+                 {6, {1, 3, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleLoop1) {
+  byte code[] = {
+      kExprLoop,  // @0
+      kExprBr,    // @1
+      ARITY_0,    //   +1
+      0,          //   +1
+      kExprEnd    // @4
+  };
+  EXPECT_TARGETS({1, {-1, 0, ControlTransfer::kNoAction}},  // --
+                 {4, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleLoop2) {
+  byte code[] = {
+      kExprLoop,  // @0
+      kExprNop,   // @1
+      kExprBr,    // @2
+      ARITY_0,    //   +1
+      0,          //   +1
+      kExprEnd    // @5
+  };
+  EXPECT_TARGETS({2, {-2, 1, ControlTransfer::kNoAction}},  // --
+                 {5, {1, 2, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleLoopExit1) {
+  byte code[] = {
+      kExprLoop,  // @0
+      kExprBr,    // @1
+      ARITY_0,    //   +1
+      1,          //   +1
+      kExprEnd    // @4
+  };
+  EXPECT_TARGETS({1, {4, 0, ControlTransfer::kPushVoid}},  // --
+                 {4, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, SimpleLoopExit2) {
+  byte code[] = {
+      kExprLoop,  // @0
+      kExprNop,   // @1
+      kExprBr,    // @2
+      ARITY_0,    //   +1
+      1,          //   +1
+      kExprEnd    // @5
+  };
+  EXPECT_TARGETS({2, {4, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {5, {1, 2, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, BrTable0) {
+  byte code[] = {
+      kExprBlock,    // @0
+      kExprI8Const,  // @1
+      0,             //   +1
+      kExprBrTable,  // @3
+      ARITY_0,       //   +1
+      0,             //   +1
+      U32_LE(0),     //   +4
+      kExprEnd       // @10
+  };
+  EXPECT_TARGETS({3, {8, 0, ControlTransfer::kPushVoid}},  // --
+                 {10, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, BrTable1) {
+  byte code[] = {
+      kExprBlock,    // @0
+      kExprI8Const,  // @1
+      0,             //   +1
+      kExprBrTable,  // @3
+      ARITY_0,       //   +1
+      1,             //   +1
+      U32_LE(0),     //   +4
+      U32_LE(0),     //   +4
+      kExprEnd       // @14
+  };
+  EXPECT_TARGETS({3, {12, 0, ControlTransfer::kPushVoid}},  // --
+                 {4, {11, 0, ControlTransfer::kPushVoid}},  // --
+                 {14, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+TEST_F(ControlTransferTest, BrTable2) {
+  byte code[] = {
+      kExprBlock,    // @0
+      kExprBlock,    // @1
+      kExprI8Const,  // @2
+      0,             //   +1
+      kExprBrTable,  // @4
+      ARITY_0,       //   +1
+      2,             //   +1
+      U32_LE(0),     //   +4
+      U32_LE(0),     //   +4
+      U32_LE(1),     //   +4
+      kExprEnd,      // @19
+      kExprEnd       // @19
+  };
+  EXPECT_TARGETS({4, {16, 0, ControlTransfer::kPushVoid}},      // --
+                 {5, {15, 0, ControlTransfer::kPushVoid}},      // --
+                 {6, {15, 0, ControlTransfer::kPushVoid}},      // --
+                 {19, {1, 1, ControlTransfer::kPopAndRepush}},  // --
+                 {20, {1, 1, ControlTransfer::kPopAndRepush}});
+}
+
+}  // namespace wasm
+}  // namespace internal
+}  // namespace v8
diff --git a/test/unittests/wasm/decoder-unittest.cc b/test/unittests/wasm/decoder-unittest.cc
index 11d68f1..e298f0b 100644
--- a/test/unittests/wasm/decoder-unittest.cc
+++ b/test/unittests/wasm/decoder-unittest.cc
@@ -4,6 +4,7 @@
 
 #include "test/unittests/test-utils.h"
 
+#include "src/objects-inl.h"
 #include "src/wasm/decoder.h"
 #include "src/wasm/wasm-macro-gen.h"
 
@@ -22,7 +23,7 @@
   do {                                                                 \
     const byte data[] = {__VA_ARGS__};                                 \
     decoder.Reset(data, data + sizeof(data));                          \
-    int length;                                                        \
+    unsigned length;                                                   \
     EXPECT_EQ(expected,                                                \
               decoder.checked_read_u32v(decoder.start(), 0, &length)); \
     EXPECT_EQ(expected_length, length);                                \
@@ -32,7 +33,7 @@
   do {                                                                 \
     const byte data[] = {__VA_ARGS__};                                 \
     decoder.Reset(data, data + sizeof(data));                          \
-    int length;                                                        \
+    unsigned length;                                                   \
     EXPECT_EQ(expected,                                                \
               decoder.checked_read_i32v(decoder.start(), 0, &length)); \
     EXPECT_EQ(expected_length, length);                                \
@@ -42,7 +43,7 @@
   do {                                                                 \
     const byte data[] = {__VA_ARGS__};                                 \
     decoder.Reset(data, data + sizeof(data));                          \
-    int length;                                                        \
+    unsigned length;                                                   \
     EXPECT_EQ(expected,                                                \
               decoder.checked_read_u64v(decoder.start(), 0, &length)); \
     EXPECT_EQ(expected_length, length);                                \
@@ -52,7 +53,7 @@
   do {                                                                 \
     const byte data[] = {__VA_ARGS__};                                 \
     decoder.Reset(data, data + sizeof(data));                          \
-    int length;                                                        \
+    unsigned length;                                                   \
     EXPECT_EQ(expected,                                                \
               decoder.checked_read_i64v(decoder.start(), 0, &length)); \
     EXPECT_EQ(expected_length, length);                                \
@@ -365,7 +366,7 @@
 
 TEST_F(DecoderTest, ReadU32v_off_end1) {
   static const byte data[] = {U32V_1(11)};
-  int length = 0;
+  unsigned length = 0;
   decoder.Reset(data, data);
   decoder.checked_read_u32v(decoder.start(), 0, &length);
   EXPECT_EQ(0, length);
@@ -375,7 +376,7 @@
 TEST_F(DecoderTest, ReadU32v_off_end2) {
   static const byte data[] = {U32V_2(1111)};
   for (size_t i = 0; i < sizeof(data); i++) {
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + i);
     decoder.checked_read_u32v(decoder.start(), 0, &length);
     EXPECT_EQ(i, length);
@@ -386,7 +387,7 @@
 TEST_F(DecoderTest, ReadU32v_off_end3) {
   static const byte data[] = {U32V_3(111111)};
   for (size_t i = 0; i < sizeof(data); i++) {
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + i);
     decoder.checked_read_u32v(decoder.start(), 0, &length);
     EXPECT_EQ(i, length);
@@ -397,7 +398,7 @@
 TEST_F(DecoderTest, ReadU32v_off_end4) {
   static const byte data[] = {U32V_4(11111111)};
   for (size_t i = 0; i < sizeof(data); i++) {
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + i);
     decoder.checked_read_u32v(decoder.start(), 0, &length);
     EXPECT_EQ(i, length);
@@ -408,7 +409,7 @@
 TEST_F(DecoderTest, ReadU32v_off_end5) {
   static const byte data[] = {U32V_5(111111111)};
   for (size_t i = 0; i < sizeof(data); i++) {
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + i);
     decoder.checked_read_u32v(decoder.start(), 0, &length);
     EXPECT_EQ(i, length);
@@ -420,7 +421,7 @@
   byte data[] = {0x80, 0x80, 0x80, 0x80, 0x00};
   for (int i = 1; i < 16; i++) {
     data[4] = static_cast<byte>(i << 4);
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + sizeof(data));
     decoder.checked_read_u32v(decoder.start(), 0, &length);
     EXPECT_EQ(5, length);
@@ -430,7 +431,7 @@
 
 TEST_F(DecoderTest, ReadI32v_extra_bits_negative) {
   // OK for negative signed values to have extra ones.
-  int length = 0;
+  unsigned length = 0;
   byte data[] = {0xff, 0xff, 0xff, 0xff, 0x7f};
   decoder.Reset(data, data + sizeof(data));
   decoder.checked_read_i32v(decoder.start(), 0, &length);
@@ -440,7 +441,7 @@
 
 TEST_F(DecoderTest, ReadI32v_extra_bits_positive) {
   // Not OK for positive signed values to have extra ones.
-  int length = 0;
+  unsigned length = 0;
   byte data[] = {0x80, 0x80, 0x80, 0x80, 0x77};
   decoder.Reset(data, data + sizeof(data));
   decoder.checked_read_i32v(decoder.start(), 0, &length);
@@ -477,7 +478,7 @@
       // foreach buffer size 0...5
       for (int limit = 0; limit <= kMaxSize; limit++) {
         decoder.Reset(data, data + limit);
-        int rlen;
+        unsigned rlen;
         uint32_t result = decoder.checked_read_u32v(data, 0, &rlen);
         if (limit < length) {
           EXPECT_FALSE(decoder.ok());
@@ -533,7 +534,7 @@
 
     for (int limit = 0; limit <= kMaxSize; limit++) {
       decoder.Reset(data, data + limit);
-      int length;
+      unsigned length;
       uint64_t result = decoder.checked_read_u64v(data, 0, &length);
       if (limit <= index) {
         EXPECT_FALSE(decoder.ok());
@@ -574,7 +575,7 @@
       // foreach buffer size 0...10
       for (int limit = 0; limit <= kMaxSize; limit++) {
         decoder.Reset(data, data + limit);
-        int rlen;
+        unsigned rlen;
         uint64_t result = decoder.checked_read_u64v(data, 0, &rlen);
         if (limit < length) {
           EXPECT_FALSE(decoder.ok());
@@ -616,7 +617,7 @@
       // foreach buffer size 0...10
       for (int limit = 0; limit <= kMaxSize; limit++) {
         decoder.Reset(data, data + limit);
-        int rlen;
+        unsigned rlen;
         int64_t result = decoder.checked_read_i64v(data, 0, &rlen);
         if (limit < length) {
           EXPECT_FALSE(decoder.ok());
@@ -634,7 +635,7 @@
   byte data[] = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00};
   for (int i = 1; i < 128; i++) {
     data[9] = static_cast<byte>(i << 1);
-    int length = 0;
+    unsigned length = 0;
     decoder.Reset(data, data + sizeof(data));
     decoder.checked_read_u64v(decoder.start(), 0, &length);
     EXPECT_EQ(10, length);
@@ -644,7 +645,7 @@
 
 TEST_F(DecoderTest, ReadI64v_extra_bits_negative) {
   // OK for negative signed values to have extra ones.
-  int length = 0;
+  unsigned length = 0;
   byte data[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f};
   decoder.Reset(data, data + sizeof(data));
   decoder.checked_read_i64v(decoder.start(), 0, &length);
@@ -654,7 +655,7 @@
 
 TEST_F(DecoderTest, ReadI64v_extra_bits_positive) {
   // Not OK for positive signed values to have extra ones.
-  int length = 0;
+  unsigned length = 0;
   byte data[] = {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x77};
   decoder.Reset(data, data + sizeof(data));
   decoder.checked_read_i64v(decoder.start(), 0, &length);
diff --git a/test/unittests/wasm/leb-helper-unittest.cc b/test/unittests/wasm/leb-helper-unittest.cc
index ed9f0a3..b975933 100644
--- a/test/unittests/wasm/leb-helper-unittest.cc
+++ b/test/unittests/wasm/leb-helper-unittest.cc
@@ -4,6 +4,7 @@
 
 #include "test/unittests/test-utils.h"
 
+#include "src/objects-inl.h"
 #include "src/wasm/decoder.h"
 #include "src/wasm/leb-helper.h"
 
@@ -96,7 +97,7 @@
     EXPECT_EQ(LEBHelper::sizeof_##name(val),                               \
               static_cast<size_t>(ptr - buffer));                          \
     Decoder decoder(buffer, buffer + kSize);                               \
-    int length = 0;                                                        \
+    unsigned 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)); \
diff --git a/test/unittests/wasm/loop-assignment-analysis-unittest.cc b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
index 7d97c50..c134de8 100644
--- a/test/unittests/wasm/loop-assignment-analysis-unittest.cc
+++ b/test/unittests/wasm/loop-assignment-analysis-unittest.cc
@@ -180,6 +180,14 @@
   }
 }
 
+TEST_F(WasmLoopAssignmentAnalyzerTest, Malformed) {
+  byte code[] = {kExprLoop, kExprF32Neg, kExprBrTable, 0x0e, 'h', 'e',
+                 'l',       'l',         'o',          ',',  ' ', 'w',
+                 'o',       'r',         'l',          'd',  '!'};
+  BitVector* assigned = Analyze(code, code + arraysize(code));
+  CHECK_NULL(assigned);
+}
+
 }  // 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 7090c1f..789112a 100644
--- a/test/unittests/wasm/module-decoder-unittest.cc
+++ b/test/unittests/wasm/module-decoder-unittest.cc
@@ -4,6 +4,8 @@
 
 #include "test/unittests/test-utils.h"
 
+#include "src/handles.h"
+#include "src/objects-inl.h"
 #include "src/wasm/module-decoder.h"
 #include "src/wasm/wasm-macro-gen.h"
 #include "src/wasm/wasm-opcodes.h"
@@ -39,6 +41,38 @@
 #define EMPTY_FUNCTION_BODIES_SECTION SECTION(FUNCTION_BODIES, 1), 0
 #define EMPTY_NAMES_SECTION SECTION(NAMES, 1), 0
 
+#define X1(...) __VA_ARGS__
+#define X2(...) __VA_ARGS__, __VA_ARGS__
+#define X3(...) __VA_ARGS__, __VA_ARGS__, __VA_ARGS__
+#define X4(...) __VA_ARGS__, __VA_ARGS__, __VA_ARGS__, __VA_ARGS__
+
+#define ONE_EMPTY_FUNCTION WASM_SECTION_FUNCTION_SIGNATURES, 1 + 1 * 1, 1, X1(0)
+
+#define TWO_EMPTY_FUNCTIONS \
+  WASM_SECTION_FUNCTION_SIGNATURES, 1 + 2 * 1, 2, X2(0)
+
+#define THREE_EMPTY_FUNCTIONS \
+  WASM_SECTION_FUNCTION_SIGNATURES, 1 + 3 * 1, 3, X3(0)
+
+#define FOUR_EMPTY_FUNCTIONS \
+  WASM_SECTION_FUNCTION_SIGNATURES, 1 + 4 * 1, 4, X4(0)
+
+#define ONE_EMPTY_BODY                                              \
+  WASM_SECTION_FUNCTION_BODIES, 1 + 1 * (1 + SIZEOF_EMPTY_BODY), 1, \
+      X1(SIZEOF_EMPTY_BODY, EMPTY_BODY)
+
+#define TWO_EMPTY_BODIES                                            \
+  WASM_SECTION_FUNCTION_BODIES, 1 + 2 * (1 + SIZEOF_EMPTY_BODY), 2, \
+      X2(SIZEOF_EMPTY_BODY, EMPTY_BODY)
+
+#define THREE_EMPTY_BODIES                                          \
+  WASM_SECTION_FUNCTION_BODIES, 1 + 3 * (1 + SIZEOF_EMPTY_BODY), 3, \
+      X3(SIZEOF_EMPTY_BODY, EMPTY_BODY)
+
+#define FOUR_EMPTY_BODIES                                           \
+  WASM_SECTION_FUNCTION_BODIES, 1 + 4 * (1 + SIZEOF_EMPTY_BODY), 4, \
+      X4(SIZEOF_EMPTY_BODY, EMPTY_BODY)
+
 #define SIGNATURES_SECTION_VOID_VOID \
   SECTION(SIGNATURES, 1 + SIZEOF_SIG_ENTRY_v_v), 1, SIG_ENTRY_v_v
 
@@ -156,7 +190,7 @@
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(0, result.val->data_segments.size());
 
-    WasmGlobal* global = &result.val->globals.back();
+    const WasmGlobal* global = &result.val->globals.back();
 
     EXPECT_EQ(1, global->name_length);
     EXPECT_EQ(MachineType::Int32(), global->type);
@@ -169,6 +203,21 @@
   EXPECT_OFF_END_FAILURE(data, 1, sizeof(data));
 }
 
+TEST_F(WasmModuleVerifyTest, Global_invalid_type) {
+  static const byte data[] = {
+      SECTION(GLOBALS, 5),  // --
+      1,
+      NAME_LENGTH(1),
+      'g',  // name
+      64,   // invalid memory type
+      0,    // exported
+  };
+
+  ModuleResult result = DecodeModuleNoHeader(data, data + sizeof(data));
+  EXPECT_FALSE(result.ok());
+  if (result.val) delete result.val;
+}
+
 TEST_F(WasmModuleVerifyTest, ZeroGlobals) {
   static const byte data[] = {
       SECTION(GLOBALS, 1),  // --
@@ -262,8 +311,8 @@
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(0, result.val->data_segments.size());
 
-    WasmGlobal* g0 = &result.val->globals[0];
-    WasmGlobal* g1 = &result.val->globals[1];
+    const WasmGlobal* g0 = &result.val->globals[0];
+    const WasmGlobal* g1 = &result.val->globals[1];
 
     EXPECT_EQ(0, g0->name_length);
     EXPECT_EQ(MachineType::Float32(), g0->type);
@@ -272,7 +321,7 @@
 
     EXPECT_EQ(0, g1->name_length);
     EXPECT_EQ(MachineType::Float64(), g1->type);
-    EXPECT_EQ(0, g1->offset);
+    EXPECT_EQ(8, g1->offset);
     EXPECT_TRUE(g1->exported);
 
     if (result.val) delete result.val;
@@ -321,163 +370,6 @@
   EXPECT_OFF_END_FAILURE(data, 1, sizeof(data));
 }
 
-TEST_F(WasmModuleVerifyTest, FunctionWithoutSig) {
-  static const byte data[] = {
-      SECTION(OLD_FUNCTIONS, 25), 1,
-      // func#0 ------------------------------------------------------
-      SIG_INDEX(0),  // signature index
-      NO_NAME,       // name length
-      U32_LE(0),     // code start offset
-      U32_LE(0),     // code end offset
-      U16_LE(899),   // local int32 count
-      U16_LE(799),   // local int64 count
-      U16_LE(699),   // local float32 count
-      U16_LE(599),   // local float64 count
-      0,             // exported
-      0              // external
-  };
-
-  ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_FALSE(result.ok());
-  if (result.val) delete result.val;
-}
-
-TEST_F(WasmModuleVerifyTest, OneEmptyVoidVoidFunction) {
-  const int kCodeStartOffset = 41;
-  const int kCodeEndOffset = kCodeStartOffset + 1;
-
-  static const byte data[] = {
-      // signatures
-      SIGNATURES_SECTION_VOID_VOID,
-      // func#0 ------------------------------------------------------
-      SECTION(OLD_FUNCTIONS, 10), 1, kDeclFunctionExport | kDeclFunctionName,
-      SIG_INDEX(0),              // signature index
-      NAME_LENGTH(2), 'h', 'i',  // name
-      1, 0,                      // size
-      kExprNop,
-  };
-
-  {
-    // Should decode to exactly one function.
-    ModuleResult result = DecodeModule(data, data + arraysize(data));
-    EXPECT_OK(result);
-    EXPECT_EQ(0, result.val->globals.size());
-    EXPECT_EQ(1, result.val->signatures.size());
-    EXPECT_EQ(1, result.val->functions.size());
-    EXPECT_EQ(0, result.val->data_segments.size());
-    EXPECT_EQ(0, result.val->function_table.size());
-
-    WasmFunction* function = &result.val->functions.back();
-
-    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_TRUE(function->exported);
-
-    if (result.val) delete result.val;
-  }
-
-  EXPECT_OFF_END_FAILURE(data, 16, sizeof(data));
-}
-
-TEST_F(WasmModuleVerifyTest, OneFunctionWithNopBody) {
-  static const byte kCodeStartOffset = 38;
-  static const byte kCodeEndOffset = kCodeStartOffset + 1;
-
-  static const byte data[] = {
-      SIGNATURES_SECTION_VOID_VOID,  // --
-      SECTION(OLD_FUNCTIONS, 7), 1,
-      // func#0 ------------------------------------------------------
-      0,        // no name, no locals
-      0, 0,     // signature index
-      1, 0,     // body size
-      kExprNop  // body
-  };
-
-  ModuleResult result = DecodeModule(data, data + arraysize(data));
-  EXPECT_OK(result);
-  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_FALSE(function->exported);
-
-  if (result.val) delete result.val;
-}
-
-TEST_F(WasmModuleVerifyTest, OneGlobalOneFunctionWithNopBodyOneDataSegment) {
-  static const byte kNameOffset = 49;
-  static const byte kCodeStartOffset = 53;
-  static const byte kCodeEndOffset = kCodeStartOffset + 3;
-  static const byte kDataSegmentSourceOffset = kCodeEndOffset + 22;
-
-  static const byte data[] = {
-      // global#0 --------------------------------------------------
-      SECTION(GLOBALS, 4), 1,
-      0,       // name length
-      kMemU8,  // memory type
-      0,       // exported
-      // sig#0 -----------------------------------------------------
-      SIGNATURES_SECTION_VOID_VOID,
-      // func#0 ----------------------------------------------------
-      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, 10), 1,
-      U32V_3(0x8b3ae),  // dest addr
-      U32V_1(5),        // source size
-      0, 1, 2, 3, 4,    // data bytes
-      // rest ------------------------------------------------------
-      SECTION(END, 0),
-  };
-
-  {
-    ModuleResult result = DecodeModule(data, data + arraysize(data));
-    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());
-
-    WasmGlobal* global = &result.val->globals.back();
-
-    EXPECT_EQ(0, global->name_length);
-    EXPECT_EQ(MachineType::Uint8(), global->type);
-    EXPECT_EQ(0, global->offset);
-    EXPECT_FALSE(global->exported);
-
-    WasmFunction* function = &result.val->functions.back();
-
-    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);
-
-    WasmDataSegment* segment = &result.val->data_segments.back();
-
-    EXPECT_EQ(0x8b3ae, segment->dest_addr);
-    EXPECT_EQ(kDataSegmentSourceOffset, segment->source_offset);
-    EXPECT_EQ(5, segment->source_size);
-    EXPECT_TRUE(segment->init);
-
-    if (result.val) delete result.val;
-  }
-}
-
 TEST_F(WasmModuleVerifyTest, OneDataSegment) {
   const byte kDataSegmentSourceOffset = 30;
   const byte data[] = {
@@ -502,7 +394,7 @@
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(1, result.val->data_segments.size());
 
-    WasmDataSegment* segment = &result.val->data_segments.back();
+    const WasmDataSegment* segment = &result.val->data_segments.back();
 
     EXPECT_EQ(0x9bbaa, segment->dest_addr);
     EXPECT_EQ(kDataSegmentSourceOffset, segment->source_offset);
@@ -553,8 +445,8 @@
     EXPECT_EQ(0, result.val->functions.size());
     EXPECT_EQ(2, result.val->data_segments.size());
 
-    WasmDataSegment* s0 = &result.val->data_segments[0];
-    WasmDataSegment* s1 = &result.val->data_segments[1];
+    const WasmDataSegment* s0 = &result.val->data_segments[0];
+    const WasmDataSegment* s1 = &result.val->data_segments[1];
 
     EXPECT_EQ(0x7ffee, s0->dest_addr);
     EXPECT_EQ(kDataSegment0SourceOffset, s0->source_offset);
@@ -605,9 +497,8 @@
   static const byte data[] = {
       // sig#0 -------------------------------------------------------
       SIGNATURES_SECTION_VOID_VOID,
-      // func#0 ------------------------------------------------------
-      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION), 1,  // --
-      EMPTY_FUNCTION(0),
+      // funcs ------------------------------------------------------
+      ONE_EMPTY_FUNCTION,
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 2), 1, U32V_1(0)};
 
@@ -629,12 +520,8 @@
       2,                         // --
       SIG_ENTRY_v_v,             // void -> void
       SIG_ENTRY_v_x(kLocalI32),  // void -> i32
-      // func#0 ------------------------------------------------------
-      SECTION(OLD_FUNCTIONS, 1 + 4 * SIZEOF_EMPTY_FUNCTION), 4,  // --
-      EMPTY_FUNCTION(0),                                         // --
-      EMPTY_FUNCTION(1),                                         // --
-      EMPTY_FUNCTION(0),                                         // --
-      EMPTY_FUNCTION(1),                                         // --
+      // funcs ------------------------------------------------------
+      FOUR_EMPTY_FUNCTIONS,
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 9), 8,
       U32V_1(0),  // --
@@ -645,7 +532,7 @@
       U32V_1(1),  // --
       U32V_1(2),  // --
       U32V_1(3),  // --
-  };
+      FOUR_EMPTY_BODIES};
 
   ModuleResult result = DecodeModule(data, data + arraysize(data));
   EXPECT_OK(result);
@@ -676,8 +563,7 @@
       // sig#0 -------------------------------------------------------
       SIGNATURES_SECTION_VOID_VOID,
       // functions ---------------------------------------------------
-      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION), 1,  // --
-      EMPTY_FUNCTION(0),
+      ONE_EMPTY_FUNCTION,
       // indirect table ----------------------------------------------
       SECTION(FUNCTION_TABLE, 3), 1, 1, 0,
   };
@@ -839,7 +725,6 @@
     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->exported);
   }
 
   if (result.val) delete result.val;
@@ -983,7 +868,7 @@
   EXPECT_EQ(0, result.val->functions.size());
   EXPECT_EQ(0, result.val->data_segments.size());
 
-  WasmGlobal* global = &result.val->globals.back();
+  const WasmGlobal* global = &result.val->globals.back();
 
   EXPECT_EQ(0, global->name_length);
   EXPECT_EQ(MachineType::Int32(), global->type);
@@ -1071,22 +956,24 @@
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTable_empty1) {
-  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);
+  static const byte data[] = {// signatures
+                              SIGNATURES_SECTION_VOID_VOID, ONE_EMPTY_FUNCTION,
+                              SECTION(EXPORT_TABLE, 1),
+                              0,  // --
+                              ONE_EMPTY_BODY};
+
+  ModuleResult result = DecodeModule(data, data + arraysize(data));
+  EXPECT_OK(result);
+
+  EXPECT_EQ(1, result.val->functions.size());
+  EXPECT_EQ(0, result.val->export_table.size());
+
+  if (result.val) delete result.val;
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTable_empty2) {
   static const byte data[] = {
-      SECTION(SIGNATURES, 1),   0, SECTION(OLD_FUNCTIONS, 1), 0,
-      SECTION(EXPORT_TABLE, 1), 0  // --
+      SECTION(SIGNATURES, 1), 0, SECTION(EXPORT_TABLE, 1), 0  // --
   };
   // TODO(titzer): current behavior treats empty functions section as missing.
   EXPECT_FAILURE(data);
@@ -1105,85 +992,88 @@
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTableOne) {
-  static const byte data[] = {
-      // signatures
-      SIGNATURES_SECTION_VOID_VOID,
-      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
-      1,                  // functions
-      EMPTY_FUNCTION(0),  // --
-      SECTION(EXPORT_TABLE, 3),
-      1,              // exports
-      FUNC_INDEX(0),  // --
-      NO_NAME         // --
-  };
-  EXPECT_VERIFIES(data);
+  static const byte data[] = {// signatures
+                              SIGNATURES_SECTION_VOID_VOID,
+                              ONE_EMPTY_FUNCTION,
+                              SECTION(EXPORT_TABLE, 3),
+                              1,              // exports
+                              FUNC_INDEX(0),  // --
+                              NO_NAME,        // --
+                              ONE_EMPTY_BODY};
+  ModuleResult result = DecodeModule(data, data + arraysize(data));
+  EXPECT_OK(result);
+
+  EXPECT_EQ(1, result.val->functions.size());
+  EXPECT_EQ(1, result.val->export_table.size());
+
+  if (result.val) delete result.val;
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTableTwo) {
-  static const byte data[] = {
-      // signatures
-      SIGNATURES_SECTION_VOID_VOID,
-      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
-      1,                  // functions
-      EMPTY_FUNCTION(0),  // --
-      SECTION(EXPORT_TABLE, 12),
-      2,              // exports
-      FUNC_INDEX(0),  // --
-      NAME_LENGTH(4),
-      'n',
-      'a',
-      'm',
-      'e',            // --
-      FUNC_INDEX(0),  // --
-      NAME_LENGTH(3),
-      'n',
-      'o',
-      'm'  // --
-  };
-  EXPECT_VERIFIES(data);
+  static const byte data[] = {// signatures
+                              SIGNATURES_SECTION_VOID_VOID,
+                              ONE_EMPTY_FUNCTION,
+                              SECTION(EXPORT_TABLE, 12),
+                              2,              // exports
+                              FUNC_INDEX(0),  // --
+                              NAME_LENGTH(4),
+                              'n',
+                              'a',
+                              'm',
+                              'e',            // --
+                              FUNC_INDEX(0),  // --
+                              NAME_LENGTH(3),
+                              'n',
+                              'o',
+                              'm',  // --
+                              ONE_EMPTY_BODY};
+
+  ModuleResult result = DecodeModule(data, data + arraysize(data));
+  EXPECT_OK(result);
+
+  EXPECT_EQ(1, result.val->functions.size());
+  EXPECT_EQ(2, result.val->export_table.size());
+
+  if (result.val) delete result.val;
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTableThree) {
-  static const byte data[] = {
-      // signatures
-      SIGNATURES_SECTION_VOID_VOID,
-      SECTION(OLD_FUNCTIONS, 1 + 3 * SIZEOF_EMPTY_FUNCTION),
-      3,                  // functions
-      EMPTY_FUNCTION(0),  // --
-      EMPTY_FUNCTION(0),  // --
-      EMPTY_FUNCTION(0),  // --
-      SECTION(EXPORT_TABLE, 10),
-      3,              // exports
-      FUNC_INDEX(0),  // --
-      NAME_LENGTH(1),
-      'a',            // --
-      FUNC_INDEX(1),  // --
-      NAME_LENGTH(1),
-      'b',            // --
-      FUNC_INDEX(2),  // --
-      NAME_LENGTH(1),
-      'c'  // --
-  };
-  EXPECT_VERIFIES(data);
+  static const byte data[] = {// signatures
+                              SIGNATURES_SECTION_VOID_VOID,
+                              THREE_EMPTY_FUNCTIONS,
+                              SECTION(EXPORT_TABLE, 10),
+                              3,              // exports
+                              FUNC_INDEX(0),  // --
+                              NAME_LENGTH(1),
+                              'a',            // --
+                              FUNC_INDEX(1),  // --
+                              NAME_LENGTH(1),
+                              'b',            // --
+                              FUNC_INDEX(2),  // --
+                              NAME_LENGTH(1),
+                              'c',  // --
+                              THREE_EMPTY_BODIES};
+  ModuleResult result = DecodeModule(data, data + arraysize(data));
+  EXPECT_OK(result);
+
+  EXPECT_EQ(3, result.val->functions.size());
+  EXPECT_EQ(3, result.val->export_table.size());
+
+  if (result.val) delete result.val;
 }
 
 TEST_F(WasmModuleVerifyTest, ExportTableThreeOne) {
   for (int i = 0; i < 6; i++) {
-    const byte data[] = {
-        // signatures
-        SIGNATURES_SECTION_VOID_VOID,
-        SECTION(OLD_FUNCTIONS, 1 + 3 * SIZEOF_EMPTY_FUNCTION),
-        3,                  // functions
-        EMPTY_FUNCTION(0),  // --
-        EMPTY_FUNCTION(0),  // --
-        EMPTY_FUNCTION(0),  // --
-        SECTION(EXPORT_TABLE, 5),
-        1,              // exports
-        FUNC_INDEX(i),  // --
-        NAME_LENGTH(2),
-        'e',
-        'x',  // --
-    };
+    const byte data[] = {// signatures
+                         SIGNATURES_SECTION_VOID_VOID,
+                         THREE_EMPTY_FUNCTIONS,
+                         SECTION(EXPORT_TABLE, 5),
+                         1,              // exports
+                         FUNC_INDEX(i),  // --
+                         NAME_LENGTH(2),
+                         'e',
+                         'x',  // --
+                         THREE_EMPTY_BODIES};
 
     if (i < 3) {
       EXPECT_VERIFIES(data);
@@ -1197,9 +1087,7 @@
   static const byte data[] = {
       // signatures
       SIGNATURES_SECTION_VOID_VOID,
-      SECTION(OLD_FUNCTIONS, 1 + SIZEOF_EMPTY_FUNCTION),
-      1,                  // functions
-      EMPTY_FUNCTION(0),  // --
+      ONE_EMPTY_FUNCTION,
       SECTION(EXPORT_TABLE, 1 + 6),
       1,              // exports
       FUNC_INDEX(0),  // --
diff --git a/test/webkit/class-syntax-extends-expected.txt b/test/webkit/class-syntax-extends-expected.txt
index 45e999d..5d0dca7 100644
--- a/test/webkit/class-syntax-extends-expected.txt
+++ b/test/webkit/class-syntax-extends-expected.txt
@@ -23,8 +23,8 @@
 PASS Object.getPrototypeOf(x.prototype) is Base.prototype
 PASS x = class extends null { constructor() { } }; x.__proto__ is Function.prototype
 PASS x.__proto__ is Function.prototype
-PASS x = class extends 3 { constructor() { } }; x.__proto__ threw exception TypeError: Class extends value 3 is not a function or null.
-PASS x = class extends "abc" { constructor() { } }; x.__proto__ threw exception TypeError: Class extends value abc is not a function or null.
+PASS x = class extends 3 { constructor() { } }; x.__proto__ threw exception TypeError: Class extends value 3 is not a constructor or null.
+PASS x = class extends "abc" { constructor() { } }; x.__proto__ threw exception TypeError: Class extends value abc is not a constructor or null.
 PASS baseWithBadPrototype = function () {}; baseWithBadPrototype.prototype = 3; new baseWithBadPrototype did not throw exception.
 PASS x = class extends baseWithBadPrototype { constructor() { } } threw exception TypeError: Class extends value does not have valid prototype property 3.
 PASS baseWithBadPrototype.prototype = "abc" did not throw exception.
@@ -32,8 +32,8 @@
 PASS baseWithBadPrototype.prototype = null; x = class extends baseWithBadPrototype { constructor() { } } did not throw exception.
 PASS x = 1; c = class extends ++x { constructor() { } }; threw exception SyntaxError: Unexpected token ++.
 PASS x = 1; c = class extends x++ { constructor() { } }; threw exception SyntaxError: Unexpected token ++.
-PASS x = 1; c = class extends (++x) { constructor() { } }; threw exception TypeError: Class extends value 2 is not a function or null.
-PASS x = 1; c = class extends (x++) { constructor() { } }; threw exception TypeError: Class extends value 1 is not a function or null.
+PASS x = 1; c = class extends (++x) { constructor() { } }; threw exception TypeError: Class extends value 2 is not a constructor or null.
+PASS x = 1; c = class extends (x++) { constructor() { } }; threw exception TypeError: Class extends value 1 is not a constructor or null.
 PASS x = 1; try { c = class extends (++x) { constructor() { } } } catch (e) { }; x is 2
 PASS x = 1; try { c = class extends (x++) { constructor() { } } } catch (e) { }; x is 2
 PASS namespace = {}; namespace.A = class { }; namespace.B = class extends namespace.A { } did not throw exception.
@@ -47,17 +47,17 @@
 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (false||null||namespace.A) { constructor() { } } did not throw exception.
 PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends false||null||namespace.A { constructor() { } } threw exception SyntaxError: Unexpected token ||.
 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (x++, namespace.A) { constructor() { } }; did not throw exception.
-PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (namespace.A, x++) { constructor() { } }; threw exception TypeError: Class extends value 1 is not a function or null.
-PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A { constructor() { } } threw exception TypeError: Class extends value [object Object] is not a function or null.
-PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A() { constructor() { } } threw exception TypeError: Class extends value [object Object] is not a function or null.
+PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends (namespace.A, x++) { constructor() { } }; threw exception TypeError: Class extends value 1 is not a constructor or null.
+PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A { constructor() { } } threw exception TypeError: Class extends value [object Object] is not a constructor or null.
+PASS namespace = {}; namespace.A = class { constructor() { } }; namespace.B = class extends new namespace.A() { constructor() { } } threw exception TypeError: Class extends value [object Object] is not a constructor or null.
 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; try { namespace.B = class extends (x++, namespace.A) { constructor() { } } } catch (e) { } x is 2
 PASS x = 1; namespace = {}; namespace.A = class { constructor() { } }; try { namespace.B = class extends (namespace.A, x++) { constructor() { } } } catch (e) { } x is 2
 PASS Object.getPrototypeOf((class { constructor () { } }).prototype) is Object.prototype
 PASS Object.getPrototypeOf((class extends null { constructor () { super(); } }).prototype) is null
-PASS new (class extends undefined { constructor () { this } }) threw exception TypeError: Class extends value undefined is not a function or null.
-PASS new (class extends undefined { constructor () { super(); } }) threw exception TypeError: Class extends value undefined is not a function or null.
-PASS x = {}; new (class extends undefined { constructor () { return x; } }) threw exception TypeError: Class extends value undefined is not a function or null.
-PASS y = 12; new (class extends undefined { constructor () { return y; } }) threw exception TypeError: Class extends value undefined is not a function or null.
+PASS new (class extends undefined { constructor () { this } }) threw exception TypeError: Class extends value undefined is not a constructor or null.
+PASS new (class extends undefined { constructor () { super(); } }) threw exception TypeError: Class extends value undefined is not a constructor or null.
+PASS x = {}; new (class extends undefined { constructor () { return x; } }) threw exception TypeError: Class extends value undefined is not a constructor or null.
+PASS y = 12; new (class extends undefined { constructor () { return y; } }) threw exception TypeError: Class extends value undefined is not a constructor or null.
 PASS class x {}; new (class extends null { constructor () { return new x; } }) instanceof x is true
 PASS new (class extends null { constructor () { this; } }) threw exception ReferenceError: this is not defined.
 PASS new (class extends null { constructor () { super(); } }) threw exception TypeError: super is not a constructor.
diff --git a/test/webkit/class-syntax-extends.js b/test/webkit/class-syntax-extends.js
index ccd3f29..d505bf8 100644
--- a/test/webkit/class-syntax-extends.js
+++ b/test/webkit/class-syntax-extends.js
@@ -58,8 +58,8 @@
 shouldBe('Object.getPrototypeOf(x.prototype)', 'Base.prototype');
 shouldBe('x = class extends null { constructor() { } }; x.__proto__', 'Function.prototype');
 shouldBe('x.__proto__', 'Function.prototype');
-shouldThrow('x = class extends 3 { constructor() { } }; x.__proto__', '"TypeError: Class extends value 3 is not a function or null"');
-shouldThrow('x = class extends "abc" { constructor() { } }; x.__proto__', '"TypeError: Class extends value abc is not a function or null"');
+shouldThrow('x = class extends 3 { constructor() { } }; x.__proto__', '"TypeError: Class extends value 3 is not a constructor or null"');
+shouldThrow('x = class extends "abc" { constructor() { } }; x.__proto__', '"TypeError: Class extends value abc is not a constructor or null"');
 shouldNotThrow('baseWithBadPrototype = function () {}; baseWithBadPrototype.prototype = 3; new baseWithBadPrototype');
 shouldThrow('x = class extends baseWithBadPrototype { constructor() { } }', '"TypeError: Class extends value does not have valid prototype property 3"');
 shouldNotThrow('baseWithBadPrototype.prototype = "abc"');
@@ -92,10 +92,10 @@
 
 shouldBe('Object.getPrototypeOf((class { constructor () { } }).prototype)', 'Object.prototype');
 shouldBe('Object.getPrototypeOf((class extends null { constructor () { super(); } }).prototype)', 'null');
-shouldThrow('new (class extends undefined { constructor () { this } })', '"TypeError: Class extends value undefined is not a function or null"');
-shouldThrow('new (class extends undefined { constructor () { super(); } })', '"TypeError: Class extends value undefined is not a function or null"');
-shouldThrow('x = {}; new (class extends undefined { constructor () { return x; } })', '"TypeError: Class extends value undefined is not a function or null"');
-shouldThrow('y = 12; new (class extends undefined { constructor () { return y; } })', '"TypeError: Class extends value undefined is not a function or null"');
+shouldThrow('new (class extends undefined { constructor () { this } })', '"TypeError: Class extends value undefined is not a constructor or null"');
+shouldThrow('new (class extends undefined { constructor () { super(); } })', '"TypeError: Class extends value undefined is not a constructor or null"');
+shouldThrow('x = {}; new (class extends undefined { constructor () { return x; } })', '"TypeError: Class extends value undefined is not a constructor or null"');
+shouldThrow('y = 12; new (class extends undefined { constructor () { return y; } })', '"TypeError: Class extends value undefined is not a constructor or null"');
 shouldBeTrue ('class x {}; new (class extends null { constructor () { return new x; } }) instanceof x');
 shouldThrow('new (class extends null { constructor () { this; } })', '"ReferenceError: this is not defined"');
 shouldThrow('new (class extends null { constructor () { super(); } })', '"TypeError: super is not a constructor"');
diff --git a/test/webkit/exception-for-nonobject.js b/test/webkit/exception-for-nonobject.js
index f54915e..d39c3e0 100644
--- a/test/webkit/exception-for-nonobject.js
+++ b/test/webkit/exception-for-nonobject.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-instanceof
-
 description("Test for correct handling of exceptions from instanceof and 'new' expressions");
 
 shouldThrow("new {}.undefined");
diff --git a/test/webkit/instance-of-immediates.js b/test/webkit/instance-of-immediates.js
index be63e4b..649a29f 100644
--- a/test/webkit/instance-of-immediates.js
+++ b/test/webkit/instance-of-immediates.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-instanceof
-
 description('This test makes sure that instance of behaves correctly when the value, constructor, or its prototype are immediates.');
 
 // A Constructor to use check for instances of, and an instance called obj.
diff --git a/test/webkit/run-json-stringify-expected.txt b/test/webkit/run-json-stringify-expected.txt
index 2cd7852..bbd9f28 100644
--- a/test/webkit/run-json-stringify-expected.txt
+++ b/test/webkit/run-json-stringify-expected.txt
@@ -83,7 +83,7 @@
 function (jsonObject){
         return jsonObject.stringify({toJSON: Date.prototype.toJSON});
     }
-PASS tests[i](nativeJSON) threw exception TypeError: (var).toISOString is not a function.
+PASS tests[i](nativeJSON) threw exception TypeError: toISOString is not a function.
 function (jsonObject){
         return jsonObject.stringify({toJSON: Date.prototype.toJSON, toISOString: function(){ return "custom toISOString"; }});
     }
@@ -101,7 +101,7 @@
         d.toISOString = null;
         return jsonObject.stringify(d);
     }
-PASS tests[i](nativeJSON) threw exception TypeError: (var).toISOString is not a function.
+PASS tests[i](nativeJSON) threw exception TypeError: toISOString is not a function.
 function (jsonObject){
         var d = new Date(0);
         d.toJSON = undefined;
diff --git a/test/webkit/webkit.status b/test/webkit/webkit.status
index 3ac1600..b2b0b01 100644
--- a/test/webkit/webkit.status
+++ b/test/webkit/webkit.status
@@ -74,6 +74,10 @@
   # Too slow.
   'dfg-int-overflow-in-loop': [SKIP],
 }],  # 'arch == s390 or arch == s390x'
+['arch == x87', {
+  # Too slow.
+  'dfg-negative-array-index': [SKIP],
+}], # 'arch == x87'
 
 ##############################################################################
 ['asan == True', {
diff --git a/third_party/llvm-build/Release+Asserts/bin/clang b/third_party/llvm-build/Release+Asserts/bin/clang
index 008a7ae..691e4ba 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 26996e7..db93053 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 df5176a..867db4a 100644
--- a/third_party/llvm-build/Release+Asserts/buildlog.txt
+++ b/third_party/llvm-build/Release+Asserts/buildlog.txt
@@ -1,37807 +1,63 @@
 Diff in llvm:
-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
+?       /b/build/slave/linux_upload_clang/build/src/tools/clang/scripts/../../../third_party/llvm/compiler-rt
 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: 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
+svn: E150000: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/projects/compiler-rt' is not under version control
 Diff in llvm/projects/libcxx:
-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
+svn: E150000: '/b/build/slave/linux_upload_clang/build/src/third_party/llvm/projects/libcxx' is not under version control
 Starting build
-Updating Clang to 264915-1...
-Creating directory /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build
+Updating Clang to 268813-1...
+Creating directory /b/build/slave/linux_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/build_and_upload_clang/build/src/third_party/llvm-build-tools
+Creating directory /b/build/slave/linux_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 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.
+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.
 Building bootstrap compiler
-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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-build-tools/gcc482precise/bin/gcc
+-- Found assembler: /b/build/slave/linux_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
@@ -37858,6 +114,8 @@
 -- 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
@@ -38032,7 +290,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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Constructing LLVMBuild project information
 -- Targeting X86
 -- Clang version: 3.9.0
@@ -38043,3771 +301,3885 @@
 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/build_and_upload_clang/build/src/third_party/llvm-bootstrap
+-- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-bootstrap
 Running ninja
-[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]
+[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]
            reinterpret_cast<GetRegistry>(DL.getAddressOfSymbol(Name.c_str()));
                                                                             ^
-[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
+[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
 Running ninja check-all
-[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]
+[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]
    const KeyT &stop(unsigned i) const { return this->first[i].second; }
                                                           ^
-[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 --
+[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 --
 Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
-Testing Time: 124.45s
-  Expected Passes    : 18867
-  Expected Failures  : 50
-  Unsupported Tests  : 6522
+Testing Time: 40.44s
+  Expected Passes    : 19306
+  Expected Failures  : 49
+  Unsupported Tests  : 6654
 Running ninja install
-[1/1] Install the project...
+[0/1] Install the project...
 -- Install configuration: "Release"
--- 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
+-- 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
 Creating llvm-ranlib
 Creating llvm-lib
--- 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
+-- 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
 Creating clang++
 Creating clang-cl
--- 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
+-- 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
 Building final compiler
-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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/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
@@ -41866,6 +4238,8 @@
 -- 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
@@ -42040,13 +4414,12 @@
 -- 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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Constructing LLVMBuild project information
 -- Targeting AArch64
 -- Targeting AMDGPU
 -- Targeting ARM
 -- Targeting BPF
--- Targeting CppBackend
 -- Targeting Hexagon
 -- Targeting Mips
 -- Targeting MSP430
@@ -42056,11 +4429,1808 @@
 -- 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
-CMake Warning (dev) at /b/build/slave/build_and_upload_clang/build/src/tools/clang/CMakeLists.txt:2 (project):
+-- 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):
   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.
@@ -42078,11 +6248,12 @@
 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/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
+-- 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
 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
@@ -42100,6 +6271,8 @@
 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
@@ -42180,6 +6353,10 @@
 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
@@ -42481,6 +6658,8 @@
 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
@@ -42535,6 +6714,8 @@
 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
@@ -42663,6 +6844,8 @@
 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
@@ -42679,8 +6862,12 @@
 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
@@ -42739,6 +6926,8 @@
 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
@@ -42948,6 +7137,8 @@
 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
@@ -42983,6 +7174,8 @@
 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
@@ -42993,6 +7186,8 @@
 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
@@ -43087,6 +7282,8 @@
 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
@@ -43327,6 +7524,8 @@
 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
@@ -43373,9 +7572,12 @@
 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
@@ -43567,10 +7769,14 @@
 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
@@ -43609,6 +7815,8 @@
 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
@@ -43685,6 +7893,30 @@
 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
@@ -43823,8 +8055,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -43834,8 +8066,6 @@
 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
@@ -43978,8 +8208,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44017,6 +8247,8 @@
 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
@@ -44047,8 +8279,6 @@
 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
@@ -44173,8 +8403,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44316,8 +8546,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44351,12 +8581,6 @@
 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
@@ -44409,8 +8633,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44420,6 +8644,8 @@
 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
@@ -44458,6 +8684,8 @@
 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
@@ -44590,8 +8818,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44727,8 +8955,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44789,8 +9017,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44902,8 +9130,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -44935,6 +9163,8 @@
 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
@@ -45030,8 +9260,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -45130,8 +9360,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -45243,8 +9473,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -45370,8 +9600,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: bin/llvm-tblgen is dirty
 ninja explain: include/llvm/IR/intrinsics_gen is dirty
+ninja explain: bin/llvm-tblgen 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
@@ -45414,119 +9644,6 @@
 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
@@ -45543,12 +9660,6 @@
 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
@@ -45558,6 +9669,13 @@
 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
@@ -45625,8 +9743,6 @@
 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
@@ -45675,11 +9791,6 @@
 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
@@ -45716,12 +9827,10 @@
 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/libLLVMWebAssemblyInfo.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/libLLVMTarget.a is dirty
@@ -45773,8 +9882,6 @@
 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
@@ -45823,11 +9930,6 @@
 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
@@ -45863,11 +9965,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
@@ -45876,14 +9978,12 @@
 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/libLLVMTransformUtils.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/libLLVMWebAssemblyInfo.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
@@ -45912,8 +10012,6 @@
 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
@@ -45962,11 +10060,6 @@
 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
@@ -46006,8 +10099,6 @@
 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
@@ -46017,10 +10108,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/libLLVMTransformUtils.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/libLLVMWebAssemblyInfo.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
@@ -46051,11 +10142,7 @@
 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
@@ -46107,10 +10194,14 @@
 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
@@ -46129,6 +10220,8 @@
 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
@@ -46261,8 +10354,10 @@
 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
@@ -46272,6 +10367,7 @@
 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
@@ -46338,18 +10434,11 @@
 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/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: 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/Attrs.inc.tmp is dirty
@@ -46359,11 +10448,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/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/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/AttrVisitor.inc.tmp is dirty
@@ -46380,13 +10469,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/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
-ninja explain: tools/clang/include/clang/AST/CommentNodes.inc is dirty
-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
@@ -46394,6 +10476,13 @@
 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
+ninja explain: tools/clang/include/clang/AST/CommentNodes.inc is dirty
+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/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
@@ -46408,13 +10497,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/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
-ninja explain: tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc is dirty
-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
@@ -46422,6 +10504,13 @@
 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
+ninja explain: tools/clang/include/clang/AST/CommentHTMLNamedCharacterReferences.inc is dirty
+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/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
@@ -46429,32 +10518,11 @@
 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/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
-ninja explain: tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc is dirty
-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/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
-ninja explain: tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc is dirty
-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
-ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.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/Basic/DiagnosticFrontendKinds.inc.tmp is dirty
@@ -46464,11 +10532,32 @@
 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
-ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticLex is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc is dirty
-ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc.tmp 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
+ninja explain: tools/clang/include/clang/Basic/DiagnosticAnalysisKinds.inc is dirty
+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
+ninja explain: tools/clang/include/clang/Basic/DiagnosticCommonKinds.inc is dirty
+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/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
+ninja explain: tools/clang/include/clang/Basic/DiagnosticDriverKinds.inc is dirty
+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
@@ -46478,6 +10567,13 @@
 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/DiagnosticLexKinds.inc.tmp is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc is dirty
+ninja explain: tools/clang/include/clang/Basic/CMakeFiles/ClangDiagnosticLex is dirty
+ninja explain: tools/clang/include/clang/Basic/DiagnosticLexKinds.inc is dirty
+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/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
@@ -46485,13 +10581,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/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
-ninja explain: tools/clang/include/clang/Basic/DiagnosticSerializationKinds.inc is dirty
-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
@@ -46499,6 +10588,13 @@
 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
+ninja explain: tools/clang/include/clang/Basic/DiagnosticSerializationKinds.inc is dirty
+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/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
@@ -46506,13 +10602,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/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
-ninja explain: tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc is dirty
-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
@@ -46520,6 +10609,13 @@
 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
+ninja explain: tools/clang/include/clang/Basic/AttrHasAttributeImpl.inc is dirty
+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/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
@@ -46582,6 +10678,13 @@
 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
@@ -47035,6 +11138,8 @@
 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
@@ -47425,48 +11530,6 @@
 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
@@ -47624,6 +11687,8 @@
 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
@@ -47658,6 +11723,7 @@
 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
@@ -47665,20 +11731,14 @@
 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
@@ -47706,8 +11766,6 @@
 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
@@ -47756,11 +11814,6 @@
 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
@@ -47810,13 +11863,11 @@
 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/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libclangCodeGen.a is dirty
 ninja explain: lib/libLLVMipo.a is dirty
@@ -47832,6 +11883,8 @@
 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
@@ -47839,7 +11892,6 @@
 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
@@ -47946,8 +11998,6 @@
 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
@@ -47996,11 +12046,6 @@
 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
@@ -48053,27 +12098,25 @@
 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/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/libLLVMTransformUtils.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/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
@@ -48090,15 +12133,14 @@
 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
@@ -48118,10 +12160,9 @@
 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
@@ -48165,8 +12206,6 @@
 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
@@ -48215,11 +12254,6 @@
 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
@@ -48262,10 +12296,9 @@
 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
@@ -48274,10 +12307,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/libLLVMTransformUtils.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/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.a is dirty
 ninja explain: lib/libLLVMMCDisassembler.a is dirty
 ninja explain: lib/libclangStaticAnalyzerCheckers.a is dirty
 ninja explain: lib/libclangStaticAnalyzerCore.a is dirty
@@ -48285,14 +12318,13 @@
 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/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/libLLVMProfileData.a is dirty
 ninja explain: lib/libclangASTMatchers.a is dirty
 ninja explain: lib/libclangFormat.a is dirty
 ninja explain: lib/libclangToolingCore.a is dirty
@@ -48348,12 +12380,458 @@
 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
@@ -48370,21 +12848,10 @@
 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
@@ -48425,8 +12892,6 @@
 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
@@ -48475,11 +12940,6 @@
 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
@@ -48519,187 +12979,29 @@
 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/libLLVMWebAssemblyInfo.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-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
@@ -48724,8 +13026,6 @@
 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
@@ -48774,11 +13074,6 @@
 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
@@ -48823,23 +13118,21 @@
 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/libLLVMMCParser.a is dirty
 ninja explain: lib/libLLVMDebugInfoCodeView.a is dirty
-ninja explain: lib/libLLVMWebAssemblyInfo.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/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
@@ -48847,8 +13140,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-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-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
@@ -48871,8 +13164,6 @@
 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
@@ -48921,24 +13212,22 @@
 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/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/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/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
@@ -48964,35 +13253,244 @@
 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/libLLVMWebAssemblyInfo.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/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/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/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/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-lto 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/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/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/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: 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
@@ -49061,237 +13559,8 @@
 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-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: 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
@@ -49314,8 +13583,6 @@
 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
@@ -49364,23 +13631,19 @@
 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/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/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
@@ -49406,29 +13669,126 @@
 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/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/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/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/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/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/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/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-cxxdump is dirty
+ninja explain: bin/sancov 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
@@ -49445,7 +13805,6 @@
 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
@@ -49468,7 +13827,6 @@
 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
@@ -49479,12 +13837,10 @@
 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
@@ -49494,7 +13850,6 @@
 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
@@ -49510,7 +13865,6 @@
 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
@@ -49532,72 +13886,23 @@
 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/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: 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/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/llvm-nm is dirty
+ninja explain: bin/obj2yaml 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
@@ -49634,8 +13939,6 @@
 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
@@ -49684,11 +13987,6 @@
 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
@@ -49735,26 +14033,24 @@
 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/libLLVMWebAssemblyInfo.a is dirty
+ninja explain: lib/libLLVMXCoreInfo.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
@@ -49763,59 +14059,19 @@
 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-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/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-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: 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/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/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-link is dirty
+ninja explain: bin/llvm-split 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
@@ -49835,52 +14091,192 @@
 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/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-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: 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/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: 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: 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-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: 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: 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-size is dirty
+ninja explain: bin/llvm-nm 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
@@ -49891,11 +14287,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
@@ -49904,311 +14300,6 @@
 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
@@ -50216,2787 +14307,2627 @@
 ninja explain: lib/libLLVMCore.a is dirty
 ninja explain: lib/libLLVMSupport.a is dirty
 ninja explain: bin/llvm-bcanalyzer 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/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
+[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
 Running ninja cr-install
-[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
+[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
 -- Install configuration: "Release"
 -- Install component: "chrome-tools"
-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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-bootstrap-install/bin/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
@@ -53009,7 +16940,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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -53130,683 +17061,693 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt
+-- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/compiler-rt
 Running ninja compiler-rt
-[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
+[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
 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-aarch64
+Copying files to: /b/build/slave/linux_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/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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/linux_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
@@ -53819,7 +17760,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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -53938,6 +17879,8 @@
 -- 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__
@@ -53956,126 +17899,127 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-aarch64
+-- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-aarch64
 Running ninja libclang_rt.asan-aarch64-android.so
-[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
+[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
 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-arm
+Copying files to: /b/build/slave/linux_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/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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/linux_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
@@ -54088,7 +18032,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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -54207,6 +18151,8 @@
 -- 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__
@@ -54225,126 +18171,127 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-arm
+-- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-arm
 Running ninja libclang_rt.asan-arm-android.so
-[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
+[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
 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-toolchain-i686
+Copying files to: /b/build/slave/linux_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/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
+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
 -- 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/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/bin/clang
+-- Found assembler: /b/build/slave/linux_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
@@ -54357,7 +18304,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.3") 
+-- Found PythonInterp: /usr/bin/python2.7 (found version "2.7.6") 
 -- Looking for unwind.h
 -- Looking for unwind.h - found
 -- Performing Test COMPILER_RT_HAS_FPIC_FLAG
@@ -54476,6 +18423,8 @@
 -- 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__
@@ -54494,439 +18443,446 @@
     LLVM_USE_CRT_RELEASE
 
 
--- Build files have been written to: /b/build/slave/build_and_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-i686
+-- Build files have been written to: /b/build/slave/linux_upload_clang/build/src/third_party/llvm-build/Release+Asserts/android-i686
 Running ninja 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
+[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
 Running ninja cr-check-all
-[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!
+[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...
 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!
-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 class_requires_trace_method_tmpl.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 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 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 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 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!
+Testing inner_class.cpp... passed!
 Testing trace_after_dispatch_impl.cpp... passed!
-Testing traceimpl_dependent_scope.cpp... passed!
-Testing pure_virtual_trace.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 register_weak_members_template.cpp... passed!
+Testing cycle_sub.cpp... passed!
+Testing class_requires_trace_method.cpp... passed!
+Testing ignore_class.cpp... passed!
 Testing persistent_field_in_gc_managed_class.cpp... passed!
 Testing left_most_gc_base.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 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_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 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 trace_if_needed.cpp... passed!
+Testing raw_ptr_to_gc_managed_class_error.cpp... passed!
+Testing destructor_in_nonfinalized_class.cpp... passed!
+Testing class_requires_finalization_mixin.cpp... passed!
 Testing trace_after_dispatch.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 garbage_collected_mixin.cpp... passed!
 Ran 54 tests: 54 succeeded, 0 failed
-[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
+[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
 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/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 --
+[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 --
 Testing: 0 .. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90.. 
-Testing Time: 163.38s
-  Expected Passes    : 25195
-  Expected Failures  : 150
-  Unsupported Tests  : 94
+Testing Time: 50.22s
+  Expected Passes    : 25704
+  Expected Failures  : 148
+  Unsupported Tests  : 157
 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 9fe3f71..ae7ff2f 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,54 +26,39 @@
 #error "This file is for CUDA compilation only."
 #endif
 
-// 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.
+// 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.
 
 #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);
@@ -85,9 +70,8 @@
 __DEVICE__ float frexp(float __arg, int *__exp) {
   return ::frexpf(__arg, __exp);
 }
-using ::frexp;
-using ::hypot;
-using ::ilogb;
+__DEVICE__ bool isinf(float __x) { return ::__isinff(__x); }
+__DEVICE__ bool isinf(double __x) { return ::__isinf(__x); }
 __DEVICE__ bool isfinite(float __x) { return ::__finitef(__x); }
 __DEVICE__ bool isfinite(double __x) { return ::__finite(__x); }
 __DEVICE__ bool isgreater(float __x, float __y) {
@@ -102,8 +86,6 @@
 __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);
 }
@@ -132,36 +114,18 @@
 __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);
 }
@@ -171,28 +135,13 @@
 __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
new file mode 100644
index 0000000..3f2834d
--- /dev/null
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/__clang_cuda_math_forward_declares.h
@@ -0,0 +1,263 @@
+/*===- __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 95d1f5f..4ad240f 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,6 +42,9 @@
 
 #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>
@@ -186,8 +189,21 @@
 // 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"
@@ -200,16 +216,6 @@
 #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 0508765..77bc928 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,21 +10268,41 @@
 
 #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);
@@ -10298,6 +10318,16 @@
   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);
@@ -10349,6 +10379,21 @@
 
 #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);
@@ -10374,6 +10419,11 @@
   __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) {
@@ -10391,6 +10441,25 @@
   __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);
@@ -10412,6 +10481,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);
+}
+
 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);
@@ -10433,21 +10517,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);
-}
-
 #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 4880fd7..8985bb4 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,9 +38,7 @@
 /// __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.
@@ -49,10 +47,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) \
@@ -64,20 +62,17 @@
 ///
 /// \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
@@ -86,9 +81,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>
 ///
@@ -97,9 +92,7 @@
 /// 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
@@ -113,14 +106,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), \
@@ -128,14 +121,12 @@
                                     (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
@@ -145,14 +136,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.
 
@@ -168,15 +159,12 @@
 ///
 /// \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)
 {
@@ -189,15 +177,12 @@
 ///
 /// \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 6b424d3..9a2eee4 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,27 +4360,6 @@
 #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);
@@ -4445,27 +4424,6 @@
 #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; \
@@ -33576,6 +33534,50 @@
 #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) {
@@ -40425,7 +40427,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x4_t 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);
+  __ret = vfmaq_f32(__p0, -__p1, __p2);
   return __ret;
 }
 #else
@@ -40434,21 +40436,16 @@
   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 = (float32x4_t) __builtin_neon_vfmsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 41);
+  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, __rev2);
   __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 = (float32x2_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 9);
+  __ret = vfma_f32(__p0, -__p1, __p2);
   return __ret;
 }
 #else
@@ -40457,15 +40454,10 @@
   float32x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float32x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
   float32x2_t __ret;
-  __ret = (float32x2_t) __builtin_neon_vfms_v((int8x8_t)__rev0, (int8x8_t)__rev1, (int8x8_t)__rev2, 9);
+  __ret = __noswap_vfma_f32(__rev0, -__rev1, __rev2);
   __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
@@ -47290,6 +47282,11 @@
   __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__
@@ -47709,7 +47706,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float64x2_t 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);
+  __ret = vfmaq_f64(__p0, -__p1, __p2);
   return __ret;
 }
 #else
@@ -47718,27 +47715,22 @@
   float64x2_t __rev1;  __rev1 = __builtin_shufflevector(__p1, __p1, 1, 0);
   float64x2_t __rev2;  __rev2 = __builtin_shufflevector(__p2, __p2, 1, 0);
   float64x2_t __ret;
-  __ret = (float64x2_t) __builtin_neon_vfmsq_v((int8x16_t)__rev0, (int8x16_t)__rev1, (int8x16_t)__rev2, 42);
+  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, __rev2);
   __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 = (float64x1_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  __ret = vfma_f64(__p0, -__p1, __p2);
   return __ret;
 }
 #else
 __ai float64x1_t vfms_f64(float64x1_t __p0, float64x1_t __p1, float64x1_t __p2) {
   float64x1_t __ret;
-  __ret = (float64x1_t) __builtin_neon_vfms_v((int8x8_t)__p0, (int8x8_t)__p1, (int8x8_t)__p2, 10);
+  __ret = __noswap_vfma_f64(__p0, -__p1, __p2);
   return __ret;
 }
 #endif
@@ -47749,7 +47741,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
@@ -47758,7 +47750,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
@@ -47769,7 +47761,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
@@ -47779,7 +47771,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
@@ -47790,7 +47782,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
@@ -47801,7 +47793,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; \
 })
@@ -47813,7 +47805,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
@@ -47825,7 +47817,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; \
 })
@@ -47837,7 +47829,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
@@ -47846,7 +47838,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
@@ -47857,7 +47849,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
@@ -47869,7 +47861,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; \
 })
@@ -47881,7 +47873,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
@@ -47891,7 +47883,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
@@ -47902,7 +47894,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
@@ -47912,7 +47904,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
@@ -47923,7 +47915,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
@@ -47935,7 +47927,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; \
 })
@@ -47947,7 +47939,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
@@ -47959,7 +47951,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; \
 })
@@ -47971,7 +47963,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
@@ -47981,7 +47973,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
@@ -47992,7 +47984,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
@@ -48004,7 +47996,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; \
 })
@@ -48013,7 +48005,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float64x2_t vfmsq_n_f64(float64x2_t __p0, float64x2_t __p1, float64_t __p2) {
   float64x2_t __ret;
-  __ret = vfmsq_f64(__p0, __p1, (float64x2_t) {__p2, __p2});
+  __ret = vfmaq_f64(__p0, -__p1, (float64x2_t) {__p2, __p2});
   return __ret;
 }
 #else
@@ -48021,7 +48013,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_vfmsq_f64(__rev0, __rev1, (float64x2_t) {__p2, __p2});
+  __ret = __noswap_vfmaq_f64(__rev0, -__rev1, (float64x2_t) {__p2, __p2});
   __ret = __builtin_shufflevector(__ret, __ret, 1, 0);
   return __ret;
 }
@@ -48030,7 +48022,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x4_t vfmsq_n_f32(float32x4_t __p0, float32x4_t __p1, float32_t __p2) {
   float32x4_t __ret;
-  __ret = vfmsq_f32(__p0, __p1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = vfmaq_f32(__p0, -__p1, (float32x4_t) {__p2, __p2, __p2, __p2});
   return __ret;
 }
 #else
@@ -48038,7 +48030,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_vfmsq_f32(__rev0, __rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
+  __ret = __noswap_vfmaq_f32(__rev0, -__rev1, (float32x4_t) {__p2, __p2, __p2, __p2});
   __ret = __builtin_shufflevector(__ret, __ret, 3, 2, 1, 0);
   return __ret;
 }
@@ -48047,7 +48039,7 @@
 #ifdef __LITTLE_ENDIAN__
 __ai float32x2_t vfms_n_f32(float32x2_t __p0, float32x2_t __p1, float32_t __p2) {
   float32x2_t __ret;
-  __ret = vfms_f32(__p0, __p1, (float32x2_t) {__p2, __p2});
+  __ret = vfma_f32(__p0, -__p1, (float32x2_t) {__p2, __p2});
   return __ret;
 }
 #else
@@ -48055,7 +48047,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_vfms_f32(__rev0, __rev1, (float32x2_t) {__p2, __p2});
+  __ret = __noswap_vfma_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 f641c71..11a867a 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,6 +1981,255 @@
                  _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 3894b29..23c4235 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,6 +126,19 @@
              (__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 afee490..ab970f1 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,6 +773,371 @@
   (__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 e1f81a0..6500bb5 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,6 +48,96 @@
 
 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)    */
@@ -95,6 +185,55 @@
 {
   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)
@@ -204,6 +343,31 @@
   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)
@@ -931,6 +1095,24 @@
              (__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)
 {
@@ -941,6 +1123,24 @@
               (__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)
 {
@@ -968,6 +1168,24 @@
                  (__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)
 {
@@ -978,6 +1196,24 @@
             (__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)
 {
@@ -2339,12 +2575,40 @@
                                          (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); })
+                                         (__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);\
+})
 
+#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__ ({                    \
@@ -3918,6 +4182,42 @@
                  (__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,\
@@ -3931,6 +4231,42 @@
                 (__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),\
@@ -3945,6 +4281,42 @@
               _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),\
@@ -3959,6 +4331,41 @@
               _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)
@@ -3974,6 +4381,3801 @@
 __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
new file mode 100644
index 0000000..54e94f1
--- /dev/null
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512pfintrin.h
@@ -0,0 +1,92 @@
+/*===------------- 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 7ac9fe7..a2c3b8f 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,6 +79,35 @@
                __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 04b7a47..5798969 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,6 +126,62 @@
                __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 bb69b1b..d8e67fc 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,9 +2847,6 @@
               (__mmask16)( __U));\
 })
 
-
-
-
 static __inline__ __m128i __DEFAULT_FN_ATTRS
 _mm_mask_mov_epi16 (__m128i __W, __mmask8 __U, __m128i __A)
 {
@@ -3020,6 +3017,441 @@
                  _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
new file mode 100644
index 0000000..b372da2
--- /dev/null
+++ b/third_party/llvm-build/Release+Asserts/lib/clang/3.9.0/include/avx512vlcdintrin.h
@@ -0,0 +1,159 @@
+/*===---- 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 dfd858e..3c28df8 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,6 +948,308 @@
   (__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 6080a6d..dc6e0ba 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,14 +5548,6 @@
              (__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
@@ -6368,6 +6360,3159 @@
               _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 cfc2c71..aba2438 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,108 +734,348 @@
   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),               \
@@ -859,66 +1099,217 @@
 #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(),         \
@@ -942,60 +1333,191 @@
 #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)
 {
@@ -1004,30 +1526,100 @@
   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)
 {
@@ -1035,6 +1627,23 @@
 }
 
 #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)
 {
@@ -1042,12 +1651,34 @@
   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)
 {
@@ -1055,24 +1686,63 @@
 }
 #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)
 {
@@ -1080,6 +1750,16 @@
 }
 
 #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)
 {
@@ -1087,6 +1767,17 @@
 }
 #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)
 {
@@ -1095,6 +1786,17 @@
 }
 
 #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)
 {
@@ -1102,12 +1804,32 @@
 }
 #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)
 {
@@ -1117,6 +1839,18 @@
   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)
 {
@@ -1126,66 +1860,270 @@
   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 ceaa103..a74dad8 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,6 +75,8 @@
 
 #include <avx512vlbwintrin.h>
 
+#include <avx512vlcdintrin.h>
+
 #include <avx512vldqintrin.h>
 
 #include <avx512erintrin.h>
@@ -87,6 +89,8 @@
 
 #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 afb3865..4b2cb85 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,3 +1,26 @@
+/*===---- 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
@@ -24,7 +47,19 @@
     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"
@@ -39,10 +74,6 @@
       header "mmintrin.h"
     }
 
-    explicit module f16c {
-      header "f16cintrin.h"
-    }
-
     explicit module sse {
       export mm_malloc
       export mmx
@@ -80,46 +111,6 @@
       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"
     }
@@ -128,11 +119,6 @@
       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 2b34260..43f9422 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__) && !__has_feature(modules)
+#if defined(__SSE2__) && !__building_module(_Builtin_intrinsics)
 #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 e79245b..c89e34c 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,6 +22,7 @@
   __interceptor___isoc99_vsscanf;
   __interceptor___libc_memalign;
   __interceptor___overflow;
+  __interceptor___strdup;
   __interceptor___tls_get_addr;
   __interceptor___uflow;
   __interceptor___underflow;
@@ -29,6 +30,7 @@
   __interceptor___wuflow;
   __interceptor___wunderflow;
   __interceptor___xpg_strerror_r;
+  __interceptor___xstat;
   __interceptor__exit;
   __interceptor__longjmp;
   __interceptor__obstack_begin;
@@ -1073,6 +1075,7 @@
   __sanitizer_unaligned_store64;
   __sanitizer_update_counter_bitset_and_clear_counters;
   __sanitizer_verify_contiguous_container;
+  __strdup;
   __tls_get_addr;
   __ubsan_*;
   __uflow;
@@ -1081,6 +1084,7 @@
   __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 33a1e7d..dca5734 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,7 +350,6 @@
   __interceptor_socketpair;
   __interceptor_sprintf;
   __interceptor_sscanf;
-  __interceptor_stat;
   __interceptor_stat64;
   __interceptor_statfs;
   __interceptor_statfs64;
@@ -1461,7 +1460,6 @@
   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 2b4c6a4..a931574 100644
--- a/third_party/llvm-build/cr_build_revision
+++ b/third_party/llvm-build/cr_build_revision
@@ -1 +1 @@
-264915-1
+268813-1
diff --git a/tools/BUILD.gn b/tools/BUILD.gn
new file mode 100644
index 0000000..4f97777
--- /dev/null
+++ b/tools/BUILD.gn
@@ -0,0 +1,59 @@
+# 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("../gni/isolate.gni")
+
+group("gn_all") {
+  testonly = true
+
+  if (v8_test_isolation_mode != "noop") {
+    deps = [
+      ":check-static-initializers_run",
+      ":jsfunfuzz_run",
+      ":run-deopt-fuzzer_run",
+      ":run-gcmole_run",
+      ":run-valgrind_run",
+    ]
+  }
+}
+
+v8_isolate_run("check-static-initializers") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "check-static-initializers.isolate"
+}
+
+v8_isolate_run("jsfunfuzz") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "jsfunfuzz/jsfunfuzz.isolate"
+}
+
+v8_isolate_run("run-deopt-fuzzer") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "run-deopt-fuzzer.isolate"
+}
+
+v8_isolate_run("run-gcmole") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "gcmole/run-gcmole.isolate"
+}
+
+v8_isolate_run("run-valgrind") {
+  deps = [
+    "..:d8_run",
+  ]
+
+  isolate = "run-valgrind.isolate"
+}
diff --git a/tools/blink_tests/TestExpectationsIgnition b/tools/blink_tests/TestExpectationsIgnition
deleted file mode 100644
index f2c912d..0000000
--- a/tools/blink_tests/TestExpectationsIgnition
+++ /dev/null
@@ -1,4 +0,0 @@
-# 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
index da85494..afce194 100644
--- a/tools/callstats.html
+++ b/tools/callstats.html
@@ -57,7 +57,7 @@
     #column {
       display: none;
     }
-    
+   
     .list {
       width: 100%;
     }
@@ -110,6 +110,15 @@
       background-color: #DDD;
     }
     
+    .codeSearch {
+      display: block-inline;
+      float: right;
+      border-radius: 5px;
+      background-color: #EEE;
+      width: 1em;
+      text-align: center;
+    }
+    
     .list .position {
       text-align: right;
       display: none;
@@ -207,6 +216,17 @@
     #popover .compare .version {
       padding-left: 10px;
     }
+    .graph,
+    .graph .content {
+      width: 100%;
+    }
+
+    .diff .hideDiff {
+      display: none;
+    }
+    .noDiff .hideNoDiff {
+      display: none;
+    }
   </style>
   <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
   <script type="text/javascript">
@@ -223,6 +243,7 @@
     }
 
     var versions;
+    var pages;
     var selectedPage;
     var baselineVersion;
     var selectedEntry;
@@ -257,7 +278,7 @@
           var optgroup = document.createElement("optgroup");
           optgroup.label = version.name;
           optgroup.version = version;
-          version.pages.forEach((page) => {
+          version.forEachPage((page) => {
             var option = document.createElement("option");
             option.textContent = page.name;
             option.page = page;
@@ -280,22 +301,45 @@
         option.version = version;
         select.appendChild(option);
       });
+      initializeToggleList(versions.versions, $('versionSelector'));
+      initializeToggleList(pages.values(), $('pageSelector'));
+      initializeToggleContentVisibility();
+    }
 
-      var versionSelectorList = $('results').querySelector('.versionSelector ul');
-      removeAllChildren(versionSelectorList);
-      versions.forEach((version) => {
+    function initializeToggleList(items, node) {
+      var list = node.querySelector('ul');
+      removeAllChildren(list);
+      items = Array.from(items);
+      items.sort(NameComparator);
+      items.forEach((item) => {
         var li = document.createElement('li');
         var checkbox = document.createElement('input');
         checkbox.type = 'checkbox';
-        checkbox.checked = version.enabled;
-        checkbox.version = version;
+        checkbox.checked = item.enabled;
+        checkbox.item = item;
         checkbox.addEventListener('click', handleToggleVersionEnable);
         li.appendChild(checkbox);
-        li.appendChild(document.createTextNode(version.name));
-        versionSelectorList.appendChild(li);
+        li.appendChild(document.createTextNode(item.name));
+        list.appendChild(li);
       });
       $('results').querySelectorAll('#results > .hidden').forEach((node) => {
         toggleCssClass(node, 'hidden', false);
+      })
+    }
+
+    function initializeToggleContentVisibility() {
+      var nodes = document.querySelectorAll('.toggleContentVisibility');
+      nodes.forEach((node) => {
+        var content = node.querySelector('.content');
+        var header = node.querySelector('h1,h2,h3');
+        if (content === undefined || header === undefined) return;
+        if (header.querySelector('input') != undefined) return;
+        var checkbox = document.createElement('input');
+        checkbox.type = 'checkbox';
+        checkbox.checked = content.className.indexOf('hidden') == -1;
+        checkbox.contentNode = content;
+        checkbox.addEventListener('click', handleToggleContentVisibility);
+        header.insertBefore(checkbox, header.childNodes[0]);
       });
     }
 
@@ -306,7 +350,7 @@
       selectedPage.sort();
       showPageInColumn(firstPage, 0);
       // Show the other versions of this page in the following columns.
-      var pageVersions = versions.pageVersions(firstPage.name);
+      var pageVersions = versions.getPageVersions(firstPage);
       var index = 1;
       pageVersions.forEach((page) => {
         if (page !== firstPage) {
@@ -385,7 +429,9 @@
           } else {
             td(tr, entry.position == 0 ? '' : entry.position, 'position');
           }
-          td(tr, entry.name, 'name ' + entry.cssClass());
+          addCodeSearchButton(entry,
+              td(tr, entry.name, 'name ' + entry.cssClass()));
+          
           diffStatus(
             td(tr, ms(entry.time), 'value time'),
             entry.time, referenceEntry.time);
@@ -398,18 +444,19 @@
         } else if (baselineVersion !== undefined && referenceEntry 
             && page.version !== baselineVersion) {
           // Show comparison of entry that does not exist on the current page.
-          tr.entry = referenceEntry;
+          tr.entry = new Entry(0, referenceEntry.name);
+          tr.entry.page = page;
           td(tr, '-', 'position');
           td(tr, referenceEntry.name, 'name');
           diffStatus(
-            td(tr, ms(referenceEntry.time), 'value time'),
-            referenceEntry.time, 0);
+            td(tr, ms(-referenceEntry.time), 'value time'),
+            -referenceEntry.time, 0);
           diffStatus(
-            td(tr, percent(referenceEntry.timePercent), 'value time'),
-            referenceEntry.timePercent, 0);
+            td(tr, percent(-referenceEntry.timePercent), 'value time'),
+            -referenceEntry.timePercent, 0);
           diffStatus(
-            td(tr, count(referenceEntry.count), 'value count'),
-            referenceEntry.count, 0);
+            td(tr, count(-referenceEntry.count), 'value count'),
+            -referenceEntry.count, 0);
         } else {
           // Display empty entry / baseline entry
           var showBaselineEntry = entry !== undefined;
@@ -444,7 +491,7 @@
       if (updateSelectedPage) {
         entry = selectedPage.version.getEntry(entry);
       }
-      var rowIndex;
+      var rowIndex = 0;
       var needsPageSwitch = updateSelectedPage && entry.page != selectedPage;
       // If clicked in the detail row change the first column to that page.
       if (needsPageSwitch) showPage(entry.page);
@@ -478,13 +525,20 @@
     }
 
     function showEntryDetail(entry) {
+      showVersionDetails(entry);
+      showPageDetails(entry);
+      showImpactList(entry.page);
+      showGraphs(entry.page);
+    }
+    
+    function showVersionDetails(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(
+          entry.name + ' in ' + entry.page.name;
+        entries = versions.getPageVersions(entry.page).map(
           (page) => {
             return page.get(entry.name)
           });
@@ -496,53 +550,59 @@
           var tr = document.createElement('tr');
           if (pageEntry == entry) tr.className += 'selected';
           tr.entry = pageEntry;
+          var isBaselineEntry = pageEntry.page.version == baselineVersion;
           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');
+          td(tr, ms(pageEntry.time, !isBaselineEntry), 'value time');
+          td(tr, percent(pageEntry.timePercent, !isBaselineEntry), 'value time');
+          td(tr, count(pageEntry.count, !isBaselineEntry), 'value count');
           tbody.appendChild(tr);
         });
       }
       table.replaceChild(tbody, table.querySelector('tbody'));
+    }
 
+    function showPageDetails(entry) {
+      var table, tbody, entries;
       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());
+      if (entry === undefined) {
+        table.replaceChild(tbody, table.querySelector('tbody'));
+        return;
       }
+      var version = entry.page.version;
+      var showDiff = version !== baselineVersion;
+      $('detailView').querySelector('.pageDetail h3 span').innerHTML =
+        version.name;
+      entries = version.pages.map((page) => {
+          if (!page.enabled) return;
+          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, ms(pageEntry.time, showDiff), 'value time');
+        td(tr, percent(pageEntry.timePercent, showDiff), 'value time');
+        td(tr, percent(pageEntry.timePercentPerEntry, showDiff),
+            'value time hideNoDiff');
+        td(tr, count(pageEntry.count, showDiff), 'value count');
+        tbody.appendChild(tr);
+      });
+      // show the total for all pages
+      var tds = table.querySelectorAll('tfoot td');
+      tds[1].innerHTML = ms(entry.getTimeImpact(), showDiff);
+      // Only show the percentage total if we are in diff mode:
+      tds[2].innerHTML = percent(entry.getTimePercentImpact(), showDiff);
+      tds[3].innerHTML = '';
+      tds[4].innerHTML = count(entry.getCountImpact(), showDiff);
       table.replaceChild(tbody, table.querySelector('tbody'));
-      showImpactList(entry.page);
-      showPageGraphs(entry.page);
     }
 
     function showImpactList(page) {
@@ -593,62 +653,192 @@
       table.replaceChild(tbody, table.querySelector('tbody'));
     }
     
-    var selectedGroup;
-    function showPageGraphs(page) {
-      var groups = page.groups.filter(each => each.name != page.total.name);
+    function showGraphs(page) {
+      var groups = page.groups.slice(); 
+      // Sort groups by the biggest impact
+      groups.sort((a, b) => {
+        return b.getTimeImpact() - a.getTimeImpact();
+      });
       if (selectedGroup == undefined) {
         selectedGroup = groups[0];
       } else {
         groups = groups.filter(each => each.name != selectedGroup.name);
         groups.unshift(selectedGroup);
       }
+      showPageGraph(groups, page);
+      showVersionGraph(groups, page);
+      showPageVersionGraph(groups, page);
+    }
+    
+    function getGraphDataTable(groups) {
       var dataTable = new google.visualization.DataTable();
       dataTable.addColumn('string', 'Name');
       groups.forEach(group => {
-        var column = dataTable.addColumn('number', group.name);
+        var column = dataTable.addColumn('number', group.name.substring(6));
         dataTable.setColumnProperty(column, 'group', group);
       });
+      return dataTable;
+    }
+
+    var selectedGroup;
+    function showPageGraph(groups, page) {
+      var isDiffView = baselineVersion !== undefined;
+      var dataTable = getGraphDataTable(groups);
       // Calculate the average row
       var row = ['Average'];
       groups.forEach((group) => {
-        row.push(group.getTimeImpact());
+        if (isDiffView) {
+          row.push(group.isTotal ? 0 : group.getAverageTimeImpact());
+        } else {
+          row.push(group.isTotal ? 0 : 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; 
-      });
+      var pages = page.version.pages.filter(page => page.enabled);
+      function sumDiff(page) {
+        var sum = 0;
+        groups.forEach(group => {
+          var value = group.getTimePercentImpact() -
+            page.getEntry(group).timePercent;
+          sum += value * value;
+        });
+        return sum;
+      }
+      if (isDiffView) {
+        pages.sort((a, b) => {
+          return b.getEntry(selectedGroup).time-
+            a.getEntry(selectedGroup).time; 
+        });
+      } else {
+        pages.sort((a, b) => {
+          return b.getEntry(selectedGroup).timePercent -
+            a.getEntry(selectedGroup).timePercent; 
+        });
+      }
+      // Sort by sum of squared distance to the average.
+      // pages.sort((a, b) => {
+      //   return a.distanceFromTotalPercent() - b.distanceFromTotalPercent(); 
+      // });
       // Calculate the entries for the pages
       pages.forEach((page) => { 
         row = [page.name];
         groups.forEach((group) => {
-          row.push(page.getEntry(group).time);
+          row.push(group.isTotal ? 0 : page.getEntry(group).time);
         });
-        dataTable.addRow(row);
+        var rowIndex = dataTable.addRow(row);
+        dataTable.setRowProperty(rowIndex, 'page', page);
       });
+      renderGraph('Pages for ' + page.version.name, groups, dataTable,
+          'pageGraph', isDiffView ? true : 'percent');
+    }
 
-      var height = 1000/27*page.version.pages.length;
+    function showVersionGraph(groups, page) {
+      var dataTable = getGraphDataTable(groups);
+      var row;
+      var vs = versions.versions.filter(version => version.enabled);
+      vs.sort((a, b) => {
+        return b.getEntry(selectedGroup).getTimeImpact() -
+          a.getEntry(selectedGroup).getTimeImpact(); 
+      });
+      // Calculate the entries for the versions 
+      vs.forEach((version) => { 
+        row = [version.name];
+        groups.forEach((group) => {
+          row.push(group.isTotal ? 0 : version.getEntry(group).getTimeImpact());
+        });
+        var rowIndex = dataTable.addRow(row);
+        dataTable.setRowProperty(rowIndex, 'page', page);
+      });
+      renderGraph('Versions Total Time over all Pages', groups, dataTable,
+          'versionGraph', true);
+    }
+
+    function showPageVersionGraph(groups, page) {
+      var dataTable = getGraphDataTable(groups);
+      var row;
+      var vs = versions.getPageVersions(page);
+      vs.sort((a, b) => {
+        return b.getEntry(selectedGroup).time - a.getEntry(selectedGroup).time; 
+      });
+      // Calculate the entries for the versions 
+      vs.forEach((page) => { 
+        row = [page.version.name];
+        groups.forEach((group) => {
+          row.push(group.isTotal ? 0 : page.getEntry(group).time);
+        });
+        var rowIndex = dataTable.addRow(row);
+        dataTable.setRowProperty(rowIndex, 'page', page);
+      });
+      renderGraph('Versions for ' + page.name, groups, dataTable,
+          'pageVersionGraph', true);
+    }
+
+    function renderGraph(title, groups, dataTable, id, isStacked) {
+      var isDiffView = baselineVersion !== undefined;
+      var formatter = new google.visualization.NumberFormat({
+        suffix: (isDiffView ? 'msΔ' : 'ms'), 
+        negativeColor: 'red', 
+        groupingSymbol: "'"
+      });
+      for (var i = 1; i < dataTable.getNumberOfColumns(); i++) {
+        formatter.format(dataTable, i);
+      }
+      var height = 85 + 28 * dataTable.getNumberOfRows();
       var options = {
-        title: 'Page Comparison for Version ' + page.version.name,
-        isStacked: 'percent',
-        height: height ,
+        isStacked: isStacked,
+        height: height,
         hAxis: {
-          title: '% Time',
           minValue: 0,
         },
+        animation:{
+          duration: 500,
+          easing: 'out',
+        },
         vAxis: {
-        }
+        },
+        explorer: {
+          actions: ['dragToZoom', 'rightClickToReset'],
+          maxZoomIn: 0.01
+        },
+        legend: {position:'top', textStyle:{fontSize: '16px'}},
+        chartArea: {left:200, top:50, width:'98%', height:'80%'},
+        colors: groups.map(each => each.color)
       };
-      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);
+      var parentNode = $(id);
+      parentNode.querySelector('h2>span, h3>span').innerHTML = title;
+      var graphNode = parentNode.querySelector('.content');
+
+      var chart = graphNode.chart;
+      if (chart === undefined) {
+        chart = graphNode.chart = new google.visualization.BarChart(graphNode);
+      } else {
+        google.visualization.events.removeAllListeners(chart);
       }
+      google.visualization.events.addListener(chart, 'select', selectHandler);
+      function getChartEntry(selection) {
+        if (!selection) return undefined;
+        var column = selection.column;
+        if (column == undefined) return undefined;
+        var selectedGroup = dataTable.getColumnProperty(column, 'group');
+        var row = selection.row;
+        if (row == null) return selectedGroup;
+        var page = dataTable.getRowProperty(row, 'page');
+        if (!page) return selectedGroup;
+        return page.getEntry(selectedGroup);
+      }
+      function selectHandler() {
+        selectedGroup = getChartEntry(chart.getSelection()[0])
+        if (!selectedGroup) return;
+        selectEntry(selectedGroup, true);
+      }
+
+      // Make our global tooltips work
+      google.visualization.events.addListener(chart, 'onmouseover', mouseOverHandler);
+      function mouseOverHandler(selection) {
+        graphNode.entry = getChartEntry(selection);
+      }
+      chart.draw(dataTable, options);
     }
 
     function showGroup(entry) {
@@ -684,6 +874,7 @@
         node('.time').innerHTML = '-';
         node('.timeVariance').innerHTML = '-';
         node('.percent').innerHTML = '-';
+        node('.percentPerEntry').innerHTML = '-';
         node('.percentVariance').innerHTML  = '-';
         node('.count').innerHTML =  '-';
         node('.countVariance').innerHTML = '-';
@@ -695,6 +886,8 @@
         node('.timeVariance').innerHTML
             = percent(entry.timeVariancePercent, false);
         node('.percent').innerHTML = percent(entry.timePercent, false);
+        node('.percentPerEntry').innerHTML
+            = percent(entry.timePercentPerEntry, false);
         node('.percentVariance').innerHTML 
             = percent(entry.timePercentVariancePercent, false);
         node('.count').innerHTML = count(entry._count, false);
@@ -706,8 +899,10 @@
             = percent(entry.getTimeImpactVariancePercent(false), false);
       }
     }
-
-    // ===========================================================================
+  </script>
+  <script type="text/javascript">
+  "use strict"
+    // =========================================================================
     // Helpers
     function $(id) {
       return document.getElementById(id)
@@ -729,6 +924,16 @@
       }
     }
 
+    function addCodeSearchButton(entry, node) {
+      if (entry.isGroup) return;
+      var button = document.createElement("div");
+      button.innerHTML = '?'
+      button.className = "codeSearch"
+      button.addEventListener('click', handleCodeSearch);
+      node.appendChild(button);
+      return node;
+    }
+
     function td(tr, content, className) {
       var td = document.createElement("td");
       td.innerHTML = content;
@@ -765,8 +970,15 @@
       node.className = classes.join(' ');
     }
 
+    function NameComparator(a, b) {
+      if (a.name > b.name) return 1;
+      if (a.name < b.name) return -1;
+      return 0
+    }
+
     function diffSign(value, digits, unit, showDiff) {
       if (showDiff === false || baselineVersion == undefined) {
+        if (value === undefined) return '';
         return value.toFixed(digits) + unit;
       }
       return (value >= 0 ? '+' : '') + value.toFixed(digits) + unit + 'Δ';
@@ -784,6 +996,9 @@
       return diffSign(value, 1, '%', showDiff);
     }
 
+  </script>
+  <script type="text/javascript">
+  "use strict"
     // =========================================================================
     // EventHandlers
     function handleBodyLoad() {
@@ -796,6 +1011,7 @@
       var reader = new FileReader();
 
       reader.onload = function(evt) {
+        pages = new Pages();
         versions = Versions.fromJSON(JSON.parse(this.result));
         initialize()
         showPage(versions.versions[0].pages[0]);
@@ -827,7 +1043,7 @@
       } else {
         var columnIndex = select.id.split('_')[1];
         var pageSelect = $('select_' + columnIndex);
-        var page = pageSelect.options[select.selectedIndex].page;
+        var page = pageSelect.options[pageSelect.selectedIndex].page;
         page = version.get(page.name);
         showPageInColumn(page, columnIndex);
       }
@@ -851,29 +1067,40 @@
 
     function handleSelectBaseline(select, event) {
       var option = select.options[select.selectedIndex];
-      baselineVersion = option.version
+      baselineVersion = option.version;
+      var showingDiff = baselineVersion !== undefined;
+      var body = $('body');
+      toggleCssClass(body, 'diff', showingDiff);
+      toggleCssClass(body, 'noDiff', !showingDiff);
       showPage(selectedPage);
       if (selectedEntry === undefined) return;
       selectEntry(selectedEntry, true);
     }
 
+    function findEntry(event) {
+      var target = event.target;
+      while (target.entry === undefined) {
+        target = target.parentNode;
+        if (!target) return undefined;
+      }
+      return target.entry;
+    }
+
     function handleUpdatePopover(event) {
       var popover = $('popover');
       popover.style.left = event.pageX + 'px';
       popover.style.top = event.pageY + 'px';
+      popover.style.display = 'none';
       popover.style.display = event.shiftKey ? 'block' : 'none';
-      var target = event.target;
-      while (target.entry === undefined) {
-        target = target.parentNode;
-        if (!target) return;
-      }
-      showPopover(target.entry);
+      var entry = findEntry(event);
+      if (entry === undefined) return;
+      showPopover(entry);
     }
 
     function handleToggleVersionEnable(event) {
-      var version = this.version;
-      if (version === undefined) return;
-      version.enabled = this.checked;
+      var item = this.item ;
+      if (item  === undefined) return;
+      item .enabled = this.checked;
       initialize();
       var page = selectedPage;
       if (page === undefined || !page.version.enabled) {
@@ -882,8 +1109,26 @@
       showPage(page);
     }
 
-    // ===========================================================================
+    function handleToggleContentVisibility(event) {
+      var content = event.target.contentNode;
+      toggleCssClass(content, 'hidden');
+    }
 
+    function handleCodeSearch(event) {
+      var entry = findEntry(event);
+      if (entry === undefined) return;
+      var url = "https://cs.chromium.org/search/?sq=package:chromium&type=cs&q=";
+      name = entry.name;
+      if (name.startsWith("API_")) {
+        name = name.substring(4);
+      }
+      url += encodeURIComponent(name) + "+file:src/v8/src";
+      window.open(url,'_blank');
+    }
+  </script>
+  <script type="text/javascript">
+  "use strict"
+    // =========================================================================
     class Versions {
       constructor() {
         this.versions = [];
@@ -891,12 +1136,12 @@
       add(version) {
         this.versions.push(version)
       }
-      pageVersions(name) {
+      getPageVersions(page) {
         var result = [];
         this.versions.forEach((version) => {
           if (!version.enabled) return;
-          var page = version.get(name);
-          if (page !== undefined) result.push(page);
+          var versionPage = version.get(page.name);
+          if (versionPage  !== undefined) result.push(versionPage);
         });
         return result;
       }
@@ -910,11 +1155,7 @@
         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
-        })
+        this.versions.sort(NameComparator);
       }
       getEnabledPage(name) {
         for (var i = 0; i < this.versions.length; i++) {
@@ -922,7 +1163,7 @@
           if (!version.enabled) continue;
           var page = version.get(name);
           if (page !== undefined) return page;
-          }
+        }
       }
     }
     Versions.fromJSON = function(json) {
@@ -964,10 +1205,16 @@
         return page.get(entry.name);
       }
       forEachEntry(fun) {
-        this.pages.forEach((page) => {
+        this.forEachPage((page) => {
           page.forEach(fun);
         });
       }
+      forEachPage(fun) {
+        this.pages.forEach((page) => {
+          if (!page.enabled) return;
+          fun(page);
+        })
+      }
       allEntries() {
         var map = new Map();
         this.forEachEntry((group, entry) => {
@@ -978,7 +1225,7 @@
       getTotalValue(name, property) {
         if (name === undefined) name = this.pages[0].total.name;
         var sum = 0;
-        this.pages.forEach((page) => {
+        this.forEachPage((page) => {
           var entry = page.get(name);
           if (entry !== undefined) sum += entry[property];
         });
@@ -988,19 +1235,20 @@
         return this.getTotalValue(name, showDiff === false ? '_time' : 'time');
       }
       getTotalTimePercent(name, showDiff) {
-        if (baselineVersion === undefined) {
+        if (baselineVersion === undefined || showDiff === false) {
           // 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;
+        var total = this.getTotalValue(name, '_time');
+        return (total / baselineValue - 1)  * 100;
       }
       getTotalTimeVariance(name, showDiff) {
         // Calculate the overall error for a given entry name
         var sum = 0;
-        this.pages.forEach((page) => {
+        this.forEachPage((page) => {
           var entry = page.get(name);
           if (entry === undefined) return;
           sum += entry.timeVariance * entry.timeVariance;
@@ -1014,6 +1262,9 @@
       getTotalCount(name, showDiff) {
         return this.getTotalValue(name, showDiff === false ? '_count' : 'count');
       }
+      getAverageTimeImpact(name, showDiff) {
+        return this.getTotalTime(name, showDiff) / this.pages.length;
+      }
       getPagesByPercentImpact(name) {
         var sortedPages =
           this.pages.filter((each) => {
@@ -1025,38 +1276,60 @@
         return sortedPages;
       }
       sort() {
-        this.pages.sort((a, b) => {
-          if (a.name > b.name) return 1;
-          if (a.name < b.name) return -1;
-          return 0
-        })
+        this.pages.sort(NameComparator)
       }
     }
     Version.fromJSON = function(name, data) {
       var version = new Version(name);
-      for (var page in data) {
-        version.add(Page.fromJSON(version, page, data[page]));
+      for (var pageName in data) {
+        version.add(PageVersion.fromJSON(version, pageName, data[pageName]));
       }
       version.sort();
       return version;
     }
-
+    
+    class Pages extends Map {
+      get(name) {
+        if (name.indexOf('www.') == 0) {
+          name = name.substring(4);
+        }
+        if (!this.has(name)) {
+          this.set(name, new Page(name));
+        }
+        return super.get(name);
+      }
+    }
 
     class Page {
-      constructor(version, name) {
+      constructor(name) {
         this.name = name;
-        this.total = new GroupedEntry('Total', /.*Total.*/);
-        this.unclassified = new UnclassifiedEntry(this)
+        this.enabled = true;
+        this.versions = [];
+      }
+      add(page) {
+        this.versions.push(page);
+      }
+    }
+
+    class PageVersion {
+      constructor(version, page) {
+        this.page = page;
+        this.page.add(this);
+        this.total = new GroupedEntry('Total', /.*Total.*/, '#BBB');
+        this.total.isTotal = true;
+        this.unclassified = new UnclassifiedEntry(this, "#000")
         this.groups = [
           this.total,
-          new GroupedEntry('IC', /.*IC.*/),
+          new GroupedEntry('IC', /.*IC.*/, "#3366CC"),
           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/),
+            /StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*/, "#DC3912"),
+          new GroupedEntry('Compile', /.*Compile.*/, "#FFAA00"),
+          new GroupedEntry('Parse', /.*Parse.*/, "#FF6600"),
+          new GroupedEntry('Callback', /.*Callback$/, "#109618"),
+          new GroupedEntry('API', /.*API.*/, "#990099"),
+          new GroupedEntry('GC', /GC|AllocateInTargetSpace/, "#0099C6"),
+          new GroupedEntry('JavaScript', /JS_Execution/, "#DD4477"),
+          new GroupedEntry('Runtime', /.*/, "#88BB00"),
           this.unclassified
         ];
         this.entryDict = new Map();
@@ -1086,8 +1359,11 @@
       get length() {
         return this.versions.length
       }
+      get name() { return this.page.name }
+      get enabled() { return this.page.enabled }
       forEachSorted(referencePage, func) {
-        // Iterate over all the entries in the order they appear on the reference page.
+        // 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);
@@ -1114,12 +1390,19 @@
           group.sort()
         });
       }
-    }
-    Page.fromJSON = function(version, name, data) {
-      if (name.indexOf('www.') == 0) {
-        name = name.substring(4);
+      distanceFromTotalPercent() {
+        var sum = 0;
+        this.groups.forEach(group => {
+          if (group == this.total) return;
+          var value = group.getTimePercentImpact() - 
+              this.getEntry(group).timePercent;
+          sum += value * value;
+        });
+        return sum;
       }
-      var page = new Page(version, name);
+    }
+    PageVersion.fromJSON = function(version, name, data) {
+      var page = new PageVersion(version, pages.get(name));
       for (var i = 0; i < data.length; i++) {
         page.add(Entry.fromJSON(i, data[data.length - i - 1]));
       }
@@ -1142,6 +1425,7 @@
         this.countVariancePercent = countVariancePercent;
         this.page = undefined;
         this.parent = undefined;
+        this.isTotal = false;
       }
       getCompareWithBaseline(value, property) {
         if (baselineVersion == undefined) return value;
@@ -1168,6 +1452,14 @@
         return (this._time - baselineEntry._time) / this.page.total._time *
           100;
       }
+      get timePercentPerEntry() {
+        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 - 1) * 100;
+      }
       get timePercentVariancePercent() {
         // Get the absolute values for the percentages
         return this.timeVariance / this.page.total._time * 100;
@@ -1184,6 +1476,9 @@
       getCountImpact(showDiff) {
         return this.page.version.getTotalCount(this.name, showDiff);
       }
+      getAverageTimeImpact(showDiff) {
+        return this.page.version.getAverageTimeImpact(this.name, showDiff);
+      }
       getPagesByPercentImpact() {
         return this.page.version.getPagesByPercentImpact(this.name);
       }
@@ -1203,9 +1498,10 @@
 
 
     class GroupedEntry extends Entry {
-      constructor(name, regexp) {
+      constructor(name, regexp, color) {
         super(0, 'Group-' + name, 0, 0, 0, 0, 0, 0);
         this.regexp = regexp;
+        this.color = color;
         this.entries = [];
       }
       add(entry) {
@@ -1222,8 +1518,8 @@
           this.entries.forEach(fun);
           return;
         }
-        // If we have a baslineVersion to compare against show also all entries from the
-        // other group.
+        // 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
@@ -1271,8 +1567,8 @@
     }
 
     class UnclassifiedEntry extends GroupedEntry {
-      constructor(page) {
-        super('Runtime');
+      constructor(page, color) {
+        super('Unclassified', undefined, color);
         this.page = page;
         this._time = undefined;
         this._count = undefined;
@@ -1311,7 +1607,7 @@
   </script>
 </head>
 
-<body onmousemove="handleUpdatePopover(event)" onload="handleBodyLoad()">
+<body id="body" onmousemove="handleUpdatePopover(event)" onload="handleBodyLoad()" class="noDiff">
   <h1>Runtime Stats Komparator</h1>
 
   <div id="results">
@@ -1331,71 +1627,97 @@
         <span style="color: #060">Green</span> the selected version above performs
         better on this measurement.
       </div>
-      <div class="versionSelector inline">
-        Select Versions:
+    </div>
+    
+    <div id="versionSelector" class="inline toggleContentVisibility">
+      <h2>Version Selector</h2>
+      <div class="content hidden">
         <ul></ul>
       </div>
     </div>
+    
+    <div id="pageSelector" class="inline toggleContentVisibility">
+      <h2>Page Selector</h2>
+      <div class="content hidden">
+        <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 class="versionDetail inline toggleContentVisibility">
+        <h3><span></span></h3>
+        <div class="content">
+          <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>
-      <div class="pageDetail inline">
+      <div class="pageDetail inline toggleContentVisibility">
         <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 class="content">
+          <table class="pageDetailTable" onclick="handleSelectDetailRow(this, event);">
+            <thead>
+              <tr>
+                <th class="page">Page&nbsp;</th>
+                <th class="value time">Time&nbsp;</th>
+                <th class="value time">Percent▾&nbsp;</th>
+                <th class="value time hideNoDiff">%/Entry&nbsp;</th>
+                <th class="value count">Count&nbsp;</th>
+              </tr>
+            </thead>
+            <tfoot>
+              <tr>
+                <td class="page">Total:</td>
+                <td class="value time"></td>
+                <td class="value time"></td>
+                <td class="value time hideNoDiff"></td>
+                <td class="value count"></td>
+              </tr>
+            </tfoot>
+            <tbody></tbody>
+          </table>
+        </div>
       </div>
-      <div class="impactView inline">
+      <div class="impactView inline toggleContentVisibility">
         <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 class="content">
+          <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>
-    <div id="pageGraphs" class="hidden">
+    <div id="pageVersionGraph" class="graph hidden toggleContentVisibility">
+      <h3><span></span></h3>
+      <div class="content"></div>
+    </div>
+    <div id="pageGraph" class="graph hidden toggleContentVisibility">
+      <h3><span></span></h3>
+      <div class="content"></div>
+    </div>
+    <div id="versionGraph" class="graph hidden toggleContentVisibility">
+      <h3><span></span></h3>
+      <div class="content"></div>
     </div>
 
     <div id="column" class="column">
@@ -1464,6 +1786,11 @@
         <td class="compare percent"></td><td class="compare"> ± </td><td class="compare percentVariance"></td>
       </tr>
       <tr>
+        <td>Percent per Entry:</td>
+        <td class="percentPerEntry"></td><td colspan=2></td>
+        <td class="compare percentPerEntry"></td><td colspan=2></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>
@@ -1475,7 +1802,5 @@
       </tr>
     </table>
   </div>
-
 </body>
-
 </html>
diff --git a/tools/callstats.py b/tools/callstats.py
index 9044618..28408bf 100755
--- a/tools/callstats.py
+++ b/tools/callstats.py
@@ -25,6 +25,7 @@
 import subprocess
 import sys
 import tempfile
+import operator
 
 import numpy
 import scipy
@@ -50,10 +51,12 @@
                                    mode='wt', delete=False) as f:
     injection = f.name
     generate_injection(f, sites, args.refresh)
+  http_port = 4080 + args.port_offset
+  https_port = 4443 + args.port_offset
   cmd_args = [
       args.replay_bin,
-      "--port=4080",
-      "--ssl_port=4443",
+      "--port=%s" % http_port,
+      "--ssl_port=%s" % https_port,
       "--no-dns_forwarding",
       "--use_closest_match",
       "--no-diff_unknown_requests",
@@ -78,38 +81,36 @@
 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;
+  var s = window.sessionStorage.getItem("refreshCounter");
+  var refreshTotal = """, refreshes, """;
+  var refreshCounter = s ? parseInt(s) : refreshTotal;
+  var 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 ('regexp' in item) { return url.match(item.regexp) !== null };
+    var 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) {
+  function onLoad(url) {
+    for (var item of sites) {
       if (!match(url, item)) continue;
-      let timeout = 'timeline' in item ? 2500 * item.timeline
+      var timeout = 'timeline' in item ? 2000 * 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;
+        var msg = "STATS: (" + refreshId + ") " + url;
         %GetAndResetRuntimeCallStats(1, msg);
         if (refreshCounter > 0) {
-          console.log("Refresh counter is " + refreshCounter + ", refreshing: " + url);
+          console.log(
+              "Refresh counter is " + refreshCounter + ", refreshing: " + url);
           window.location.reload();
         }
       }, timeout);
@@ -117,12 +118,9 @@
     }
     console.log("Ignoring: " + url);
   };
-
-  let sites =
+  var sites =
     """, json.dumps(sites), """;
-
-  console.log("Event listenner added for: " + window.location.href);
-  window.addEventListener("load", onLoad);
+  onLoad(window.location.href);
 })();"""
 
 
@@ -136,6 +134,7 @@
   if args.replay_wpr:
     timeout *= 1 + args.refresh
     timeout += 1
+  retries_since_good_run = 0
   while count == 0 or args.repeat is not None and count < args.repeat:
     count += 1
     result = result_template.format(domain=domain, count=count)
@@ -152,16 +151,20 @@
         if args.js_flags: js_flags += " " + args.js_flags
         chrome_flags = [
             "--no-default-browser-check",
+            "--no-sandbox",
             "--disable-translate",
             "--js-flags={}".format(js_flags),
             "--no-first-run",
             "--user-data-dir={}".format(user_data_dir),
         ]
         if args.replay_wpr:
+          http_port = 4080 + args.port_offset
+          https_port = 4443 + args.port_offset
           chrome_flags += [
-              "--host-resolver-rules=MAP *:80 localhost:4080, "  \
-                                    "MAP *:443 localhost:4443, " \
-                                    "EXCLUDE localhost",
+              "--host-resolver-rules=MAP *:80 localhost:%s, "  \
+                                    "MAP *:443 localhost:%s, " \
+                                    "EXCLUDE localhost" % (
+                                        http_port, https_port),
               "--ignore-certificate-errors",
               "--disable-seccomp-sandbox",
               "--disable-web-security",
@@ -182,7 +185,8 @@
         print_command(cmd_args)
         print "- " * 40
         with open(result, "wt") as f:
-          status = subprocess.call(cmd_args, stdout=f)
+          with open(args.log_stderr or os.devnull, 'at') as err:
+            status = subprocess.call(cmd_args, stdout=f, stderr=err)
         # 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.
@@ -195,9 +199,13 @@
             with open(result, "at") as f:
               print >> f
               print >> f, "URL: {}".format(site)
+          retries_since_good_run = 0
           break
-        if retries <= 6: timeout += 2 ** (retries-1)
-        print("EMPTY RESULT, REPEATING RUN");
+        if retries_since_good_run < 6:
+          timeout += 2 ** retries_since_good_run
+          retries_since_good_run += 1
+        print("EMPTY RESULT, REPEATING RUN ({})".format(
+            retries_since_good_run));
       finally:
         if not args.user_data_dir:
           shutil.rmtree(user_data_dir)
@@ -211,7 +219,7 @@
         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)
+            item['timeout'] = int(1.5 * item['timeline'] + 7)
           if item['timeout'] > args.timeout: item['timeout'] = args.timeout
           sites.append(item)
     except ValueError:
@@ -237,11 +245,17 @@
   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)
+    domain = None
+    if args.domain:
+      domain = args.domain
+    elif 'domain' in item:
+      domain = item['domain']
+    else:
+      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
@@ -296,10 +310,25 @@
            'stddev': stddev, 'min': low, 'max': high, 'ci': ci }
 
 
-def read_stats(path, S):
+def read_stats(path, domain, args):
+  groups = [];
+  if args.aggregate:
+    groups = [
+        ('Group-IC', re.compile(".*IC.*")),
+        ('Group-Optimize',
+         re.compile("StackGuard|.*Optimize.*|.*Deoptimize.*|Recompile.*")),
+        ('Group-Compile', re.compile(".*Compile.*")),
+        ('Group-Parse', re.compile(".*Parse.*")),
+        ('Group-Callback', re.compile(".*Callback.*")),
+        ('Group-API', re.compile(".*API.*")),
+        ('Group-GC', re.compile("GC|AllocateInTargetSpace")),
+        ('Group-JavaScript', re.compile("JS_Execution")),
+        ('Group-Runtime', re.compile(".*"))]
   with open(path, "rt") as f:
     # Process the whole file and sum repeating entries.
-    D = { 'Sum': {'time': 0, 'count': 0} }
+    entries = { 'Sum': {'time': 0, 'count': 0} }
+    for group_name, regexp in groups:
+      entries[group_name] = { 'time': 0, 'count': 0 }
     for line in f:
       line = line.strip()
       # Discard headers and footers.
@@ -314,18 +343,23 @@
       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
+      if key not in entries: entries[key] = { 'time': 0, 'count': 0 }
+      entries[key]['time'] += time
+      entries[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'])
+        entries['Sum']['time'] += time
+        entries['Sum']['count'] += count
+        for group_name, regexp in groups:
+          if not regexp.match(key): continue
+          entries[group_name]['time'] += time
+          entries[group_name]['count'] += count
+          break
+    # Append the sums as single entries to domain.
+    for key in entries :
+      if key not in domain: domain[key] = { 'time_list': [], 'count_list': [] }
+      domain[key]['time_list'].append(entries[key]['time'])
+      domain[key]['count_list'].append(entries[key]['count'])
 
 
 def print_stats(S, args):
@@ -364,7 +398,7 @@
   # 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 args.totals and args.limit != 0 and not args.aggregate:
       if i == low:
         partial = { 'time_list': [0] * len(L[i][1]['time_list']),
                     'count_list': [0] * len(L[i][1]['count_list']) }
@@ -377,7 +411,7 @@
   # Print totals, if necessary.
   if args.totals:
     print '-' * 80
-    if args.limit != 0:
+    if args.limit != 0 and not args.aggregate:
       partial['time_stat'] = statistics(partial['time_list'])
       partial['count_stat'] = statistics(partial['count_list'])
       print_entry("Partial", partial)
@@ -386,55 +420,86 @@
 
 
 def do_stats(args):
-  T = {}
+  domains = {}
   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 domain not in domains: domains[domain] = {}
+    read_stats(path, domains[domain], args)
+  if args.aggregate:
+    create_total_page_stats(domains, args)
+  for i, domain in enumerate(sorted(domains)):
+    if len(domains) > 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)
+    domain_stats = domains[domain]
+    for key in domain_stats:
+      domain_stats[key]['time_stat'] = \
+          statistics(domain_stats[key]['time_list'])
+      domain_stats[key]['count_stat'] = \
+          statistics(domain_stats[key]['count_list'])
+    print_stats(domain_stats, args)
+
+
+# Create a Total page with all entries summed up.
+def create_total_page_stats(domains, args):
+  total = {}
+  def sum_up(parent, key, other):
+    sums = parent[key]
+    for i, item in enumerate(other[key]):
+      if i >= len(sums):
+        sums.extend([0] * (i - len(sums) + 1))
+      if item is not None:
+        sums[i] += item
+  # Sum up all the entries/metrics from all domains
+  for domain, entries in domains.items():
+    for key, domain_stats in entries.items():
+      if key not in total:
+        total[key] = {}
+        total[key]['time_list'] = list(domain_stats['time_list'])
+        total[key]['count_list'] = list(domain_stats['count_list'])
+      else:
+        sum_up(total[key], 'time_list', domain_stats)
+        sum_up(total[key], 'count_list', domain_stats)
+  # Add a new "Total" page containing the summed up metrics.
+  domains['Total'] = total
 
 
 # Generate JSON file.
 
 def do_json(args):
-  J = {}
+  versions = {}
   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] = {}
+        if version not in versions: versions[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():
+            if domain not in versions[version]: versions[version][domain] = {}
+            read_stats(os.path.join(root, filename),
+                       versions[version][domain], args)
+  for version, domains in versions.items():
+    if args.aggregate:
+      create_total_page_stats(domains, args)
+    for domain, entries in domains.items():
+      stats = []
+      for name, value in entries.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])
+          s = statistics(entries[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=(',', ':'))
+        stats.append(entry)
+      domains[domain] = stats
+  print json.dumps(versions, separators=(',', ':'))
 
 
 # Help.
@@ -472,6 +537,9 @@
       "--js-flags", type=str, default="",
       help="specify additional V8 flags")
   subparsers["run"].add_argument(
+      "--domain", type=str, default="",
+      help="specify the output file domain name")
+  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(
@@ -497,6 +565,9 @@
       "-t", "--timeout", type=int, metavar="<seconds>", default=60,
       help="specify seconds before chrome is killed")
   subparsers["run"].add_argument(
+      "-p", "--port-offset", type=int, metavar="<offset>", default=0,
+      help="specify the offset for the replay server's default ports")
+  subparsers["run"].add_argument(
       "-u", "--user-data-dir", type=str, metavar="<path>",
       help="specify user data dir (default is temporary)")
   subparsers["run"].add_argument(
@@ -504,6 +575,9 @@
       default="/usr/bin/google-chrome",
       help="specify chrome executable to use")
   subparsers["run"].add_argument(
+      "-l", "--log-stderr", type=str, metavar="<path>",
+      help="specify where chrome's stderr should go (default: /dev/null)")
+  subparsers["run"].add_argument(
       "sites", type=str, metavar="<URL>", nargs="*",
       help="specify benchmark website")
   # Command: stats.
@@ -523,6 +597,10 @@
   subparsers["stats"].add_argument(
       "logfiles", type=str, metavar="<logfile>", nargs="*",
       help="specify log files to parse")
+  subparsers["stats"].add_argument(
+      "--aggregate", dest="aggregate", action="store_true", default=False,
+      help="Create aggregated entries. Adds Group-* entries at the toplevel. " +
+      "Additionally creates a Total page with all entries.")
   # Command: json.
   subparsers["json"] = subparser_adder.add_parser(
       "json", help="json --help")
@@ -531,6 +609,10 @@
   subparsers["json"].add_argument(
       "logdirs", type=str, metavar="<logdir>", nargs="*",
       help="specify directories with log files to parse")
+  subparsers["json"].add_argument(
+      "--aggregate", dest="aggregate", action="store_true", default=False,
+      help="Create aggregated entries. Adds Group-* entries at the toplevel. " +
+      "Additionally creates a Total page with all entries.")
   # Command: help.
   subparsers["help"] = subparser_adder.add_parser(
       "help", help="help information")
diff --git a/tools/detect-builtins.js b/tools/detect-builtins.js
index 2a476ba..90bdc08 100644
--- a/tools/detect-builtins.js
+++ b/tools/detect-builtins.js
@@ -24,6 +24,8 @@
       }
       // Avoid endless recursion.
       if (this_name === "prototype" && name === "constructor") continue;
+      // Avoid needless duplication.
+      if (this_name === "__PROTO__" && name === "constructor") continue;
       // Could get this from the parent, but having it locally is easier.
       var property = { "name": name };
       try {
@@ -39,9 +41,18 @@
         property.length = value.length;
         property.prototype = GetProperties("prototype", value.prototype);
       }
-      property.properties = GetProperties(name, value);
+      if (type === "string" || type === "number") {
+        property.value = value;
+      } else {
+        property.properties = GetProperties(name, value);
+      }
       result[name] = property;
     }
+    // Print the __proto__ if it's not the default Object prototype.
+    if (typeof object === "object" && object.__proto__ !== null &&
+        !object.__proto__.hasOwnProperty("__proto__")) {
+      result.__PROTO__ = GetProperties("__PROTO__", object.__proto__);
+    }
     return result;
   };
 
diff --git a/tools/dump-cpp.py b/tools/dump-cpp.py
index b7bb32e..5198eca 100644
--- a/tools/dump-cpp.py
+++ b/tools/dump-cpp.py
@@ -18,7 +18,7 @@
 if __name__ == '__main__':
   JS_FILES = ['splaytree.js', 'codemap.js', 'csvparser.js', 'consarray.js',
               'profile.js', 'logreader.js', 'tickprocessor.js', 'SourceMap.js',
-              'dumpcpp.js']
+              'dumpcpp.js', 'dumpcpp-driver.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]
diff --git a/tools/dumpcpp-driver.js b/tools/dumpcpp-driver.js
new file mode 100644
index 0000000..4452777
--- /dev/null
+++ b/tools/dumpcpp-driver.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.
+
+// 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);
+}
+
+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/dumpcpp.js b/tools/dumpcpp.js
index 28885e0..ca5ff67 100644
--- a/tools/dumpcpp.js
+++ b/tools/dumpcpp.js
@@ -2,45 +2,9 @@
 // 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],
+      'shared-library': { parsers: [null, parseInt, parseInt, parseInt],
           processor: this.processSharedLibrary }
   }, timedRange, pairwiseTimedRange);
 
@@ -73,10 +37,10 @@
 };
 
 CppProcessor.prototype.processSharedLibrary = function(
-    name, startAddr, endAddr) {
+    name, startAddr, endAddr, aslrSlide) {
   var self = this;
   var libFuncs = this.cppEntriesProvider_.parseVmSymbols(
-      name, startAddr, endAddr, function(fName, fStart, fEnd) {
+      name, startAddr, endAddr, aslrSlide, function(fName, fStart, fEnd) {
     var entry = new CodeMap.CodeEntry(fEnd - fStart, fName, 'CPP');
     self.codeMap_.addStaticCode(fStart, entry);
   });
@@ -92,9 +56,3 @@
     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/gcmole/gcmole.lua b/tools/gcmole/gcmole.lua
index f16ad8f..5c5e502 100644
--- a/tools/gcmole/gcmole.lua
+++ b/tools/gcmole/gcmole.lua
@@ -184,26 +184,26 @@
 -- GYP file parsing
 
 local function ParseGYPFile()
-   local 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')
-      gyp = gyp .. t
-      f:close()
-   end
-
    local result = {}
+   local gyp_files = {
+       { "src/v8.gyp",             "'([^']-%.cc)'",      "src/"         },
+       { "test/cctest/cctest.gyp", "'(test-[^']-%.cc)'", "test/cctest/" }
+   }
 
-   for condition, sources in
-      gyp:gmatch "'sources': %[.-### gcmole%((.-)%) ###(.-)%]" do
-      if result[condition] == nil then result[condition] = {} end
-      for file in sources:gmatch "'%.%./%.%./src/([^']-%.cc)'" do
-         table.insert(result[condition], "src/" .. file)
+   for i = 1, #gyp_files do
+      local filename = gyp_files[i][1]
+      local pattern = gyp_files[i][2]
+      local prefix = gyp_files[i][3]
+      local gyp_file = assert(io.open(filename), "failed to open GYP file")
+      local gyp = gyp_file:read('*a')
+      for condition, sources in
+         gyp:gmatch "'sources': %[.-### gcmole%((.-)%) ###(.-)%]" do
+         if result[condition] == nil then result[condition] = {} end
+         for file in sources:gmatch(pattern) do
+            table.insert(result[condition], prefix .. file)
+         end
       end
-      for file in sources:gmatch "'(test-[^']-%.cc)'" do
-         table.insert(result[condition], "test/cctest/" .. file)
-      end
+      gyp_file:close()
    end
 
    return result
diff --git a/tools/gen-postmortem-metadata.py b/tools/gen-postmortem-metadata.py
index 55f915d..a9e5b56 100644
--- a/tools/gen-postmortem-metadata.py
+++ b/tools/gen-postmortem-metadata.py
@@ -50,7 +50,8 @@
 import sys
 
 #
-# Miscellaneous constants, tags, and masks used for object identification.
+# Miscellaneous constants such as tags and masks used for object identification,
+# enumeration values used as indexes in internal tables, etc..
 #
 consts_misc = [
     { 'name': 'FirstNonstringType',     'value': 'FIRST_NONSTRING_TYPE' },
@@ -181,17 +182,46 @@
         'value': 'JSArrayBuffer::WasNeutered::kMask' },
     { 'name': 'jsarray_buffer_was_neutered_shift',
         'value': 'JSArrayBuffer::WasNeutered::kShift' },
+
+    { 'name': 'context_idx_closure',
+        'value': 'Context::CLOSURE_INDEX' },
+    { 'name': 'context_idx_native',
+        'value': 'Context::NATIVE_CONTEXT_INDEX' },
+    { 'name': 'context_idx_prev',
+        'value': 'Context::PREVIOUS_INDEX' },
+    { 'name': 'context_idx_ext',
+        'value': 'Context::EXTENSION_INDEX' },
+    { 'name': 'context_min_slots',
+        'value': 'Context::MIN_CONTEXT_SLOTS' },
+
+    { 'name': 'namedictionaryshape_prefix_size',
+        'value': 'NameDictionaryShape::kPrefixSize' },
+    { 'name': 'namedictionaryshape_entry_size',
+        'value': 'NameDictionaryShape::kEntrySize' },
+
+    { 'name': 'namedictionary_prefix_start_index',
+        'value': 'NameDictionary::kPrefixStartIndex' },
+
+    { 'name': 'seedednumberdictionaryshape_prefix_size',
+        'value': 'SeededNumberDictionaryShape::kPrefixSize' },
+
+    { 'name': 'unseedednumberdictionaryshape_prefix_size',
+        'value': 'UnseededNumberDictionaryShape::kPrefixSize' },
+
+    { 'name': 'numberdictionaryshape_entry_size',
+        'value': 'NumberDictionaryShape::kEntrySize' }
 ];
 
 #
 # The following useful fields are missing accessors, so we define fake ones.
+# Please note that extra accessors should _only_ be added to expose offsets that
+# can be used to access actual V8 objects' properties. They should not be added
+# for exposing other values. For instance, enumeration values or class'
+# constants should be exposed by adding an entry in the "consts_misc" table, not
+# in this "extras_accessors" table.
 #
 extras_accessors = [
     'JSFunction, context, Context, kContextOffset',
-    'Context, closure_index, int, CLOSURE_INDEX',
-    'Context, native_context_index, int, NATIVE_CONTEXT_INDEX',
-    'Context, previous_index, int, PREVIOUS_INDEX',
-    'Context, min_context_slots, int, MIN_CONTEXT_SLOTS',
     'HeapObject, map, Map, kMapOffset',
     'JSObject, elements, Object, kElementsOffset',
     'FixedArray, data, uintptr_t, kHeaderSize',
@@ -205,12 +235,6 @@
     'Map, bit_field2, char, kBitField2Offset',
     'Map, bit_field3, int, kBitField3Offset',
     'Map, prototype, Object, kPrototypeOffset',
-    'NameDictionaryShape, prefix_size, int, kPrefixSize',
-    'NameDictionaryShape, entry_size, int, kEntrySize',
-    'NameDictionary, prefix_start_index, int, kPrefixStartIndex',
-    'SeededNumberDictionaryShape, prefix_size, int, kPrefixSize',
-    'UnseededNumberDictionaryShape, prefix_size, int, kPrefixSize',
-    'NumberDictionaryShape, entry_size, int, kEntrySize',
     'Oddball, kind_offset, int, kKindOffset',
     'HeapNumber, value, double, kValueOffset',
     'ConsString, first, String, kFirstOffset',
@@ -254,6 +278,7 @@
 #include "src/v8.h"
 #include "src/frames.h"
 #include "src/frames-inl.h" /* for architecture-specific frame constants */
+#include "src/contexts.h"
 
 using namespace v8::internal;
 
diff --git a/tools/gyp_flag_compare.py b/tools/gyp_flag_compare.py
new file mode 100755
index 0000000..6e356cf
--- /dev/null
+++ b/tools/gyp_flag_compare.py
@@ -0,0 +1,273 @@
+#!/usr/bin/env python
+
+# Copyright 2016 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.
+
+"""Given the output of -t commands from a ninja build for a gyp and GN generated
+build, report on differences between the command lines."""
+
+
+import os
+import shlex
+import subprocess
+import sys
+
+
+# Must be in v8/.
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+os.chdir(BASE_DIR)
+
+
+g_total_differences = 0
+
+
+def FindAndRemoveArgWithValue(command_line, argname):
+  """Given a command line as a list, remove and return the value of an option
+  that takes a value as a separate entry.
+
+  Modifies |command_line| in place.
+  """
+  if argname not in command_line:
+    return ''
+  location = command_line.index(argname)
+  value = command_line[location + 1]
+  command_line[location:location + 2] = []
+  return value
+
+
+def MergeSpacedArgs(command_line, argname):
+  """Combine all arguments |argname| with their values, separated by a space."""
+  i = 0
+  result = []
+  while i < len(command_line):
+    arg = command_line[i]
+    if arg == argname:
+      result.append(arg + ' ' + command_line[i + 1])
+      i += 1
+    else:
+      result.append(arg)
+    i += 1
+  return result
+
+
+def NormalizeSymbolArguments(command_line):
+  """Normalize -g arguments.
+
+  If there's no -g args, it's equivalent to -g0. -g2 is equivalent to -g.
+  Modifies |command_line| in place.
+  """
+  # Strip -g0 if there's no symbols.
+  have_some_symbols = False
+  for x in command_line:
+    if x.startswith('-g') and x != '-g0':
+      have_some_symbols = True
+  if not have_some_symbols and '-g0' in command_line:
+    command_line.remove('-g0')
+
+  # Rename -g2 to -g.
+  if '-g2' in command_line:
+    command_line[command_line.index('-g2')] = '-g'
+
+
+def GetFlags(lines, build_dir):
+  """Turn a list of command lines into a semi-structured dict."""
+  is_win = sys.platform == 'win32'
+  flags_by_output = {}
+  for line in lines:
+    command_line = shlex.split(line.strip(), posix=not is_win)[1:]
+
+    output_name = FindAndRemoveArgWithValue(command_line, '-o')
+    dep_name = FindAndRemoveArgWithValue(command_line, '-MF')
+
+    NormalizeSymbolArguments(command_line)
+
+    command_line = MergeSpacedArgs(command_line, '-Xclang')
+
+    cc_file = [x for x in command_line if x.endswith('.cc') or
+                                          x.endswith('.c') or
+                                          x.endswith('.cpp')]
+    if len(cc_file) != 1:
+      print 'Skipping %s' % command_line
+      continue
+    assert len(cc_file) == 1
+
+    if is_win:
+      rsp_file = [x for x in command_line if x.endswith('.rsp')]
+      assert len(rsp_file) <= 1
+      if rsp_file:
+        rsp_file = os.path.join(build_dir, rsp_file[0][1:])
+        with open(rsp_file, "r") as open_rsp_file:
+          command_line = shlex.split(open_rsp_file, posix=False)
+
+    defines = [x for x in command_line if x.startswith('-D')]
+    include_dirs = [x for x in command_line if x.startswith('-I')]
+    dash_f = [x for x in command_line if x.startswith('-f')]
+    warnings = \
+        [x for x in command_line if x.startswith('/wd' if is_win else '-W')]
+    others = [x for x in command_line if x not in defines and \
+                                         x not in include_dirs and \
+                                         x not in dash_f and \
+                                         x not in warnings and \
+                                         x not in cc_file]
+
+    for index, value in enumerate(include_dirs):
+      if value == '-Igen':
+        continue
+      path = value[2:]
+      if not os.path.isabs(path):
+        path = os.path.join(build_dir, path)
+      include_dirs[index] = '-I' + os.path.normpath(path)
+
+    # GYP supports paths above the source root like <(DEPTH)/../foo while such
+    # paths are unsupported by gn. But gn allows to use system-absolute paths
+    # instead (paths that start with single '/'). Normalize all paths.
+    cc_file = [os.path.normpath(os.path.join(build_dir, cc_file[0]))]
+
+    # Filter for libFindBadConstructs.so having a relative path in one and
+    # absolute path in the other.
+    others_filtered = []
+    for x in others:
+      if x.startswith('-Xclang ') and x.endswith('libFindBadConstructs.so'):
+        others_filtered.append(
+            '-Xclang ' +
+            os.path.join(os.getcwd(),
+                         os.path.normpath(
+                             os.path.join('out/gn_flags', x.split(' ', 1)[1]))))
+      elif x.startswith('-B'):
+        others_filtered.append(
+            '-B' +
+            os.path.join(os.getcwd(),
+                         os.path.normpath(os.path.join('out/gn_flags', x[2:]))))
+      else:
+        others_filtered.append(x)
+    others = others_filtered
+
+    flags_by_output[cc_file[0]] = {
+      'output': output_name,
+      'depname': dep_name,
+      'defines': sorted(defines),
+      'include_dirs': sorted(include_dirs),  # TODO(scottmg): This is wrong.
+      'dash_f': sorted(dash_f),
+      'warnings': sorted(warnings),
+      'other': sorted(others),
+    }
+  return flags_by_output
+
+
+def CompareLists(gyp, gn, name, dont_care_gyp=None, dont_care_gn=None):
+  """Return a report of any differences between gyp and gn lists, ignoring
+  anything in |dont_care_{gyp|gn}| respectively."""
+  global g_total_differences
+  if not dont_care_gyp:
+    dont_care_gyp = []
+  if not dont_care_gn:
+    dont_care_gn = []
+  output = ''
+  if gyp[name] != gn[name]:
+    gyp_set = set(gyp[name])
+    gn_set = set(gn[name])
+    missing_in_gyp = gyp_set - gn_set
+    missing_in_gn = gn_set - gyp_set
+    missing_in_gyp -= set(dont_care_gyp)
+    missing_in_gn -= set(dont_care_gn)
+    if missing_in_gyp or missing_in_gn:
+      output += '  %s differ:\n' % name
+    if missing_in_gyp:
+      output += '    In gyp, but not in GN:\n      %s' % '\n      '.join(
+          sorted(missing_in_gyp)) + '\n'
+      g_total_differences += len(missing_in_gyp)
+    if missing_in_gn:
+      output += '    In GN, but not in gyp:\n      %s' % '\n      '.join(
+          sorted(missing_in_gn)) + '\n\n'
+      g_total_differences += len(missing_in_gn)
+  return output
+
+
+def Run(command_line):
+  """Run |command_line| as a subprocess and return stdout. Raises on error."""
+  return subprocess.check_output(command_line, shell=True)
+
+
+def main():
+  if len(sys.argv) < 4:
+    print ('usage: %s gn_outdir gyp_outdir gn_target '
+           '[gyp_target1, gyp_target2, ...]' % __file__)
+    return 1
+
+  if len(sys.argv) == 4:
+    sys.argv.append(sys.argv[3])
+  gn_out_dir = sys.argv[1]
+  print >> sys.stderr, 'Expecting gn outdir in %s...' % gn_out_dir
+  gn = Run('ninja -C %s -t commands %s' % (gn_out_dir, sys.argv[3]))
+  if sys.platform == 'win32':
+    # On Windows flags are stored in .rsp files which are created during build.
+    print >> sys.stderr, 'Building in %s...' % gn_out_dir
+    Run('ninja -C %s -d keeprsp %s' % (gn_out_dir, sys.argv[3]))
+
+  gyp_out_dir = sys.argv[2]
+  print >> sys.stderr, 'Expecting gyp outdir in %s...' % gyp_out_dir
+  gyp = Run('ninja -C %s -t commands %s' % (gyp_out_dir, " ".join(sys.argv[4:])))
+  if sys.platform == 'win32':
+    # On Windows flags are stored in .rsp files which are created during build.
+    print >> sys.stderr, 'Building in %s...' % gyp_out_dir
+    Run('ninja -C %s -d keeprsp %s' % (gyp_out_dir, " ".join(sys.argv[4:])))
+
+  all_gyp_flags = GetFlags(gyp.splitlines(),
+                           os.path.join(os.getcwd(), gyp_out_dir))
+  all_gn_flags = GetFlags(gn.splitlines(),
+                          os.path.join(os.getcwd(), gn_out_dir))
+  gyp_files = set(all_gyp_flags.keys())
+  gn_files = set(all_gn_flags.keys())
+  different_source_list = gyp_files != gn_files
+  if different_source_list:
+    print 'Different set of sources files:'
+    print '  In gyp, not in GN:\n    %s' % '\n    '.join(
+        sorted(gyp_files - gn_files))
+    print '  In GN, not in gyp:\n    %s' % '\n    '.join(
+        sorted(gn_files - gyp_files))
+    print '\nNote that flags will only be compared for files in both sets.\n'
+  file_list = gyp_files & gn_files
+  files_with_given_differences = {}
+  for filename in sorted(file_list):
+    gyp_flags = all_gyp_flags[filename]
+    gn_flags = all_gn_flags[filename]
+    differences = CompareLists(gyp_flags, gn_flags, 'dash_f')
+    differences += CompareLists(gyp_flags, gn_flags, 'defines')
+    differences += CompareLists(gyp_flags, gn_flags, 'include_dirs',
+                                ['-I%s' % os.path.dirname(BASE_DIR)])
+    differences += CompareLists(gyp_flags, gn_flags, 'warnings',
+        # More conservative warnings in GN we consider to be OK.
+        dont_care_gyp=[
+          '/wd4091',  # 'keyword' : ignored on left of 'type' when no variable
+                      # is declared.
+          '/wd4456',  # Declaration hides previous local declaration.
+          '/wd4457',  # Declaration hides function parameter.
+          '/wd4458',  # Declaration hides class member.
+          '/wd4459',  # Declaration hides global declaration.
+          '/wd4702',  # Unreachable code.
+          '/wd4800',  # Forcing value to bool 'true' or 'false'.
+          '/wd4838',  # Conversion from 'type' to 'type' requires a narrowing
+                      # conversion.
+        ] if sys.platform == 'win32' else None,
+        dont_care_gn=[
+          '-Wendif-labels',
+          '-Wextra',
+          '-Wsign-compare',
+        ] if not sys.platform == 'win32' else None)
+    differences += CompareLists(gyp_flags, gn_flags, 'other')
+    if differences:
+      files_with_given_differences.setdefault(differences, []).append(filename)
+
+  for diff, files in files_with_given_differences.iteritems():
+    print '\n'.join(sorted(files))
+    print diff
+
+  print 'Total differences:', g_total_differences
+  # TODO(scottmg): Return failure on difference once we're closer to identical.
+  return 0
+
+
+if __name__ == '__main__':
+  sys.exit(main())
diff --git a/tools/ic-explorer.html b/tools/ic-explorer.html
index ad1737a..42bbc20 100644
--- a/tools/ic-explorer.html
+++ b/tools/ic-explorer.html
@@ -51,6 +51,7 @@
         if (parts[1] === "patching") return;
         this.type = parts[0].substr(1);
         this.category = "Other";
+        this.map = undefined;
         if (this.type.indexOf("Store") !== -1) {
           this.category = "Store";
         } else if (this.type.indexOf("Load") !== -1) {
@@ -69,6 +70,13 @@
           var offset = this.parsePositionAndFile(parts, 2);
           if (offset == -1) return
           this.state = parts[++offset];
+          this.map = parts[offset + 1];
+          if (this.map !== undefined && this.map.startsWith("map=")) {
+            this.map = this.map.substring(4);
+            offset++;
+          } else {
+            this.map = undefined;
+          }
           if (this.type !== "CompareIC") {
             // if there is no address we have a smi key
             var address = parts[++offset];
@@ -135,7 +143,6 @@
           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);
@@ -152,7 +159,7 @@
 
 
     var properties = ['type', 'category', 'file', 'filePosition', 'state',
-      'key', 'isNative'
+      'key', 'isNative', 'map'
     ]
 
     class Group {
@@ -209,6 +216,15 @@
 
 
 
+    function escapeHtml(unsafe) {
+      if (!unsafe) return "";
+      return unsafe.toString()
+           .replace(/&/g, "&amp;")
+           .replace(/</g, "&lt;")
+           .replace(/>/g, "&gt;")
+           .replace(/"/g, "&quot;")
+           .replace(/'/g, "&#039;");
+    }
 
     function updateTable() {
       var select = document.getElementById("group-key");
@@ -248,7 +264,7 @@
         td(tr, '<span onclick="toggleDetails(this)">details</a>', 'details');
         td(tr, entry.percentage + "%", 'percentage');
         td(tr, entry.count, 'count');
-        td(tr, entry.key, 'key');
+        td(tr, escapeHtml(entry.key), 'key');
         fragment.appendChild(tr);
       }
       var omitted = entries.length - max;
@@ -282,7 +298,7 @@
       var group = entry.groups[key];
       var div = document.createElement("div")
       div.className = 'drilldown-group-title'
-      div.innerHTML = key + ' [top ' + max + ']';
+      div.innerHTML = key + ' [top ' + max + ' out of ' + group.length + ']';
       var table = document.createElement("table");
       display(group.slice(0, max), table, false)
       div.appendChild(table);
diff --git a/tools/isolate_driver.py b/tools/isolate_driver.py
index d1b39b0..1542353 100644
--- a/tools/isolate_driver.py
+++ b/tools/isolate_driver.py
@@ -30,6 +30,16 @@
       'version': 1,
     }, f, indent=2, sort_keys=True)
 
+def rebase_directories(args, abs_base):
+  """Rebases all paths to be relative to abs_base."""
+  def replace(index):
+    args[index] = os.path.relpath(os.path.abspath(args[index]), abs_base)
+  for i, arg in enumerate(args):
+    if arg in ['--isolate', '--isolated']:
+      replace(i + 1)
+    if arg == '--path-variable':
+      # Path variables have a triple form: --path-variable NAME <path>.
+      replace(i + 2)
 
 def main():
   logging.basicConfig(level=logging.ERROR, format='%(levelname)7s %(message)s')
@@ -49,6 +59,14 @@
     print >> sys.stderr, 'Internal failure'
     return 1
 
+  # Make sure all paths are relative to the isolate file. This is an
+  # expectation of the go binaries. In gn, this script is not called
+  # relative to the isolate file, but relative to the product dir.
+  new_base = os.path.abspath(os.path.dirname(args[isolate]))
+  rebase_directories(args, new_base)
+  assert args[isolate] == os.path.basename(args[isolate])
+  os.chdir(new_base)
+
   # In 'prepare' mode just collect all required information for postponed
   # isolated.py invocation later, store it in *.isolated.gen.json file.
   if mode == 'prepare':
diff --git a/tools/parser-shell.cc b/tools/parser-shell.cc
index ad687c9..810c5b9 100644
--- a/tools/parser-shell.cc
+++ b/tools/parser-shell.cc
@@ -142,7 +142,7 @@
 
 int main(int argc, char* argv[]) {
   v8::V8::SetFlagsFromCommandLine(&argc, argv, true);
-  v8::V8::InitializeICU();
+  v8::V8::InitializeICUDefaultLocation(argv[0]);
   v8::Platform* platform = v8::platform::CreateDefaultPlatform();
   v8::V8::InitializePlatform(platform);
   v8::V8::Initialize();
diff --git a/tools/plot-timer-events b/tools/plot-timer-events
index 15f28ac..da2e823 100755
--- a/tools/plot-timer-events
+++ b/tools/plot-timer-events
@@ -70,10 +70,9 @@
   rm $calibration_log
 
   # Overhead in picoseconds.
-  options=--distortion=
-  options+=`echo "1000*(($t_1_end - $t_1_start) - ($t_2_end - $t_2_start)) \
+  distortion=`echo "1000*(($t_1_end - $t_1_start) - ($t_2_end - $t_2_start)) \
               / ($n_1 - $n_2)" | bc`
-  echo $options
+  options="--distortion=$distortion"
 fi
 
 cat $log_file |
diff --git a/tools/release/check_clusterfuzz.py b/tools/release/check_clusterfuzz.py
index cd73051..0fdffd9 100755
--- a/tools/release/check_clusterfuzz.py
+++ b/tools/release/check_clusterfuzz.py
@@ -89,6 +89,15 @@
   },
   {
     "args": {
+      "job_type": "linux_asan_d8_ignition_v8_arm_dbg",
+      "reproducible": "True",
+      "open": "True",
+      "bug_information": "",
+    },
+    "crash_state": ANY_RE,
+  },
+  {
+    "args": {
       "job_type": "linux_asan_d8_v8_arm64_dbg",
       "reproducible": "True",
       "open": "True",
diff --git a/tools/run_perf.py b/tools/run_perf.py
index 1dd03bd..2db71d4 100755
--- a/tools/run_perf.py
+++ b/tools/run_perf.py
@@ -856,8 +856,10 @@
     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)
+        r = map(int, indexes.split("-"))
+        if len(r) == 1:
+          return range(r[0], r[0] + 1)
+        return range(r[0], r[1] + 1)
     except Exception as e:
       print "Failed to retrieve number of CPUs."
       raise e
diff --git a/tools/testrunner/server/main.py b/tools/testrunner/server/main.py
index 1000713..c237e1a 100644
--- a/tools/testrunner/server/main.py
+++ b/tools/testrunner/server/main.py
@@ -221,7 +221,7 @@
     if not self.IsTrusted(signer):
       return
     if self.IsTrusted(fingerprint):
-      return  # Already trust this guy.
+      return  # Already trusted.
     filename = self._PubkeyFilename(fingerprint)
     signer_pubkeyfile = self._PubkeyFilename(signer)
     if not signatures.VerifySignature(filename, pubkey, signature,
diff --git a/tools/tickprocessor-driver.js b/tools/tickprocessor-driver.js
index 3f2321f..be374c9 100644
--- a/tools/tickprocessor-driver.js
+++ b/tools/tickprocessor-driver.js
@@ -72,6 +72,7 @@
   sourceMap,
   params.timedRange,
   params.pairwiseTimedRange,
-  params.onlySummary);
+  params.onlySummary,
+  params.runtimeTimerFilter);
 tickProcessor.processLogFile(params.logFileName);
 tickProcessor.printStatistics();
diff --git a/tools/tickprocessor.js b/tools/tickprocessor.js
index 5534355..ec56d49 100644
--- a/tools/tickprocessor.js
+++ b/tools/tickprocessor.js
@@ -81,7 +81,8 @@
     sourceMap,
     timedRange,
     pairwiseTimedRange,
-    onlySummary) {
+    onlySummary,
+    runtimeTimerFilter) {
   LogReader.call(this, {
       'shared-library': { parsers: [null, parseInt, parseInt, parseInt],
           processor: this.processSharedLibrary },
@@ -94,6 +95,9 @@
           processor: this.processCodeDelete },
       'sfi-move': { parsers: [parseInt, parseInt],
           processor: this.processFunctionMove },
+      'active-runtime-timer': {
+        parsers: [null],
+        processor: this.processRuntimeTimerEvent },
       'tick': {
           parsers: [parseInt, parseInt, parseInt,
                     parseInt, parseInt, 'var-args'],
@@ -124,6 +128,7 @@
   this.callGraphSize_ = callGraphSize;
   this.ignoreUnknown_ = ignoreUnknown;
   this.stateFilter_ = stateFilter;
+  this.runtimeTimerFilter_ = runtimeTimerFilter;
   this.sourceMap = sourceMap;
   this.deserializedEntriesNames_ = [];
   var ticks = this.ticks_ =
@@ -284,9 +289,18 @@
 
 
 TickProcessor.prototype.includeTick = function(vmState) {
-  return this.stateFilter_ == null || this.stateFilter_ == vmState;
+  if (this.stateFilter_ !== null) {
+    return this.stateFilter_ == vmState;
+  } else if (this.runtimeTimerFilter_ !== null) {
+    return this.currentRuntimeTimer == this.runtimeTimerFilter_;
+  }
+  return true;
 };
 
+TickProcessor.prototype.processRuntimeTimerEvent = function(name) {
+  this.currentRuntimeTimer = name;
+}
+
 TickProcessor.prototype.processTick = function(pc,
                                                ns_since_start,
                                                is_external_callback,
@@ -781,6 +795,8 @@
         'Show only ticks from OTHER VM state'],
     '-e': ['stateFilter', TickProcessor.VmStates.EXTERNAL,
         'Show only ticks from EXTERNAL VM state'],
+    '--filter-runtime-timer': ['runtimeTimerFilter', null,
+            'Show only ticks matching the given runtime timer scope'],
     '--call-graph-size': ['callGraphSize', TickProcessor.CALL_GRAPH_SIZE,
         'Set the call graph size'],
     '--ignore-unknown': ['ignoreUnknown', true,
@@ -832,7 +848,8 @@
   distortion: 0,
   timedRange: false,
   pairwiseTimedRange: false,
-  onlySummary: false
+  onlySummary: false,
+  runtimeTimerFilter: null,
 };
 
 
diff --git a/tools/try_perf.py b/tools/try_perf.py
index 5565b80..e022ab4 100755
--- a/tools/try_perf.py
+++ b/tools/try_perf.py
@@ -33,17 +33,22 @@
   'emscripten',
   'compile',
   'jetstream',
+  'jetstream-ignition',
   'jsbench',
   'jstests',
   'kraken_orig',
+  'kraken_orig-ignition',
   'massive',
   'memory',
   'octane',
+  'octane-noopt',
+  'octane-ignition',
   'octane-pr',
   'octane-tf',
   'octane-tf-pr',
   'simdjs',
   'sunspider',
+  'sunspider-ignition',
   'wasm',
 ]
 
diff --git a/tools/turbolizer/OWNERS b/tools/turbolizer/OWNERS
new file mode 100644
index 0000000..fc52961
--- /dev/null
+++ b/tools/turbolizer/OWNERS
@@ -0,0 +1 @@
+danno@chromium.org
diff --git a/tools/turbolizer/README b/tools/turbolizer/README
new file mode 100644
index 0000000..99548b0
--- /dev/null
+++ b/tools/turbolizer/README
@@ -0,0 +1,20 @@
+Turbolizer is a HTML-based tool that visualizes optimized code along the various
+phases of Turbofan's optimization pipeline, allowing easy navigation between
+source code, Turbofan IR graphs, scheduled IR nodes and generated assembly code.
+
+Turbolizer consumes .json files that are generated per-function by d8 by passing
+the '--trace-turbo' command-line flag.
+
+Host the turbolizer locally by starting a web server that serves the contents of
+the turbolizer directory, e.g.:
+
+cd src/tools/turbolizer
+python -m SimpleHTTPServer 8000
+
+Graph visualization and manipulation based on Mike Bostock's sample code for an
+interactive tool for creating directed graphs. Original source is at
+https://github.com/metacademy/directed-graph-creator and released under the
+MIT/X license.
+
+Icons dervied from the "White Olive Collection" created by Breezi released under
+the Creative Commons BY license.
diff --git a/tools/turbolizer/code-view.js b/tools/turbolizer/code-view.js
new file mode 100644
index 0000000..aa106d3
--- /dev/null
+++ b/tools/turbolizer/code-view.js
@@ -0,0 +1,177 @@
+// 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.
+
+var CodeView = function(divID, PR, sourceText, sourcePosition, broker) {
+  "use strict";
+  var view = this;
+
+  view.divElement = document.getElementById(divID);
+  view.broker = broker;
+  view.codeSelection = null;
+  view.allSpans = [];
+
+  var selectionHandler = {
+    clear: function() {
+      broker.clear(selectionHandler);
+    },
+    select: function(items, selected) {
+      var handler = this;
+      var divElement = view.divElement;
+      var broker = view.broker;
+      for (let span of items) {
+        if (selected) {
+          span.classList.add("selected");
+        } else {
+          span.classList.remove("selected");
+        }
+      }
+      var ranges = [];
+      for (var span of items) {
+        ranges.push([span.start, span.end, null]);
+      }
+      broker.select(selectionHandler, ranges, selected);
+    },
+    selectionDifference: function(span1, inclusive1, span2, inclusive2) {
+      var pos1 = span1.start;
+      var pos2 = span2.start;
+      var result = [];
+      var lineListDiv = view.divElement.firstChild.firstChild.childNodes;
+      for (var i=0; i < lineListDiv.length; i++) {
+        var currentLineElement = lineListDiv[i];
+        var spans = currentLineElement.childNodes;
+        for (var j=0; j < spans.length; ++j) {
+          var currentSpan = spans[j];
+          if (currentSpan.start > pos1 || (inclusive1 && currentSpan.start == pos1)) {
+            if (currentSpan.start < pos2 || (inclusive2 && currentSpan.start == pos2)) {
+              result.push(currentSpan);
+            }
+          }
+        }
+      }
+      return result;
+    },
+    brokeredSelect: function(ranges, selected) {
+      var firstSelect = view.codeSelection.isEmpty();
+      for (var range of ranges) {
+        var start = range[0];
+        var end = range[1];
+        var lower = 0;
+        var upper = view.allSpans.length;
+        if (upper > 0) {
+          while ((upper - lower) > 1) {
+            var middle = Math.floor((upper + lower) / 2);
+            var lineStart = view.allSpans[middle].start;
+            if (lineStart < start) {
+              lower = middle;
+            } else if (lineStart > start) {
+              upper = middle;
+            } else {
+              lower = middle;
+              break;
+            }
+          }
+          var currentSpan = view.allSpans[lower];
+          var currentLineElement = currentSpan.parentNode;
+          if ((currentSpan.start <= start && start < currentSpan.end) ||
+              (currentSpan.start <= end && end < currentSpan.end)) {
+            if (firstSelect) {
+              makeContainerPosVisible(view.divElement, currentLineElement.offsetTop);
+              firstSelect = false;
+            }
+            view.codeSelection.select(currentSpan, selected);
+          }
+        }
+      }
+    },
+    brokeredClear: function() {
+      view.codeSelection.clear();
+    },
+  };
+
+  view.codeSelection = new Selection(selectionHandler);
+  broker.addSelectionHandler(selectionHandler);
+
+  var mouseDown = false;
+
+  this.handleSpanMouseDown = function(e) {
+    e.stopPropagation();
+    if (!e.shiftKey) {
+      view.codeSelection.clear();
+    }
+    view.codeSelection.select(this, true);
+    mouseDown = true;
+  }
+
+  this.handleSpanMouseMove = function(e) {
+    if (mouseDown) {
+      view.codeSelection.extendTo(this);
+    }
+  }
+
+  this.handleCodeMouseDown = function(e) {
+    view.codeSelection.clear();
+  }
+
+  document.addEventListener('mouseup', function(e){
+    mouseDown = false;
+  }, false);
+
+  this.initializeCode(sourceText, sourcePosition);
+}
+
+CodeView.prototype.initializeCode = function(sourceText, sourcePosition) {
+  var view = this;
+  if (sourceText == "") {
+    var newHtml = "<pre class=\"prettyprint\"</pre>";
+    view.divElement.innerHTML = newHtml;
+  } else {
+    var newHtml = "<pre class=\"prettyprint linenums\">"
+      + sourceText + "</pre>";
+    view.divElement.innerHTML = newHtml;
+    try {
+      // Wrap in try to work when offline.
+      PR.prettyPrint();
+    } catch (e) {
+    }
+
+    view.divElement.onmousedown = this.handleCodeMouseDown;
+
+    var base = sourcePosition;
+    var current = 0;
+    var lineListDiv = view.divElement.firstChild.firstChild.childNodes;
+    for (i=0; i < lineListDiv.length; i++) {
+      var currentLineElement = lineListDiv[i];
+      currentLineElement.id = "li" + i;
+      var pos = base + current;
+      currentLineElement.pos = pos;
+      var spans = currentLineElement.childNodes;
+      for (j=0; j < spans.length; ++j) {
+        var currentSpan = spans[j];
+        if (currentSpan.nodeType == 1) {
+          currentSpan.start = pos;
+          currentSpan.end = pos + currentSpan.textContent.length;
+          currentSpan.onmousedown = this.handleSpanMouseDown;
+          currentSpan.onmousemove = this.handleSpanMouseMove;
+          view.allSpans.push(currentSpan);
+        }
+        current += currentSpan.textContent.length;
+        pos = base + current;
+      }
+      while ((current < sourceText.length) && (
+        sourceText[current] == '\n' ||
+          sourceText[current] == '\r')) {
+        ++current;
+      }
+    }
+  }
+
+  this.resizeToParent();
+}
+
+CodeView.prototype.resizeToParent = function() {
+  var view = this;
+  var documentElement = document.documentElement;
+  var y = view.divElement.parentNode.clientHeight || documentElement.clientHeight;
+  view.divElement.style.height = y + "px";
+}
diff --git a/tools/turbolizer/constants.js b/tools/turbolizer/constants.js
new file mode 100644
index 0000000..f380431
--- /dev/null
+++ b/tools/turbolizer/constants.js
@@ -0,0 +1,22 @@
+// 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.
+
+var MAX_RANK_SENTINEL = 0;
+var GRAPH_MARGIN = 250;
+var WIDTH = 'width';
+var HEIGHT = 'height';
+var VISIBILITY = 'visibility';
+var SOURCE_PANE_ID = 'left';
+var SOURCE_COLLAPSE_ID = 'source-shrink';
+var SOURCE_EXPAND_ID = 'source-expand';
+var INTERMEDIATE_PANE_ID = 'middle';
+var EMPTY_PANE_ID = 'empty';
+var GRAPH_PANE_ID = 'graph';
+var SCHEDULE_PANE_ID = 'schedule';
+var GENERATED_PANE_ID = 'right';
+var DISASSEMBLY_PANE_ID = 'disassembly';
+var DISASSEMBLY_COLLAPSE_ID = 'disassembly-shrink';
+var DISASSEMBLY_EXPAND_ID = 'disassembly-expand';
+var COLLAPSE_PANE_BUTTON_VISIBLE = 'button-input';
+var COLLAPSE_PANE_BUTTON_INVISIBLE = 'button-input-invisible';
diff --git a/tools/turbolizer/disassembly-view.js b/tools/turbolizer/disassembly-view.js
new file mode 100644
index 0000000..94150ec
--- /dev/null
+++ b/tools/turbolizer/disassembly-view.js
@@ -0,0 +1,106 @@
+// 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.
+
+"use strict";
+
+class DisassemblyView extends TextView {
+  constructor(id, broker, sortedPositionList) {
+    super(id, broker, null, false);
+    this.pos_start = -1;
+    let view = this;
+    let ADDRESS_STYLE = {
+      css: 'tag',
+      location: function(text) {
+        ADDRESS_STYLE.last_address = text;
+        return undefined;
+      }
+    };
+    let ADDRESS_LINK_STYLE = {
+      css: 'tag',
+      link: function(text) {
+        view.select(function(location) { return location.address == text; }, true, true);
+      }
+    };
+    let UNCLASSIFIED_STYLE = {
+      css: 'com'
+    };
+    let NUMBER_STYLE = {
+      css: 'lit'
+    };
+    let COMMENT_STYLE = {
+      css: 'com'
+    };
+    let POSITION_STYLE = {
+      css: 'com',
+      location: function(text) {
+        view.pos_start = Number(text);
+      }
+    };
+    let OPCODE_STYLE = {
+      css: 'kwd',
+      location: function(text) {
+        return {
+          address: ADDRESS_STYLE.last_address
+        };
+      }
+    };
+    let patterns = [
+      [
+        [/^0x[0-9a-f]{8,16}/, ADDRESS_STYLE, 1],
+        [/^.*/, UNCLASSIFIED_STYLE, -1]
+      ],
+      [
+        [/^\s+\d+\s+[0-9a-f]+\s+/, NUMBER_STYLE, 2],
+        [/^.*/, null, -1]
+      ],
+      [
+        [/^\S+\s+/, OPCODE_STYLE, 3],
+        [/^\S+$/, OPCODE_STYLE, -1],
+        [/^.*/, null, -1]
+      ],
+      [
+        [/^\s+/, null],
+        [/^[^\(;]+$/, null, -1],
+        [/^[^\(;]+/, null],
+        [/^\(/, null, 4],
+        [/^;/, COMMENT_STYLE, 5]
+      ],
+      [
+        [/^0x[0-9a-f]{8,16}/, ADDRESS_LINK_STYLE],
+        [/^[^\)]/, null],
+        [/^\)$/, null, -1],
+        [/^\)/, null, 3]
+      ],
+      [
+        [/^; debug\: position /, COMMENT_STYLE, 6],
+        [/^.+$/, COMMENT_STYLE, -1]
+      ],
+      [
+        [/^\d+$/, POSITION_STYLE, -1],
+      ]
+    ];
+    view.setPatterns(patterns);
+  }
+
+  lineLocation(li) {
+    let view = this;
+    let result = undefined;
+    for (let i = 0; i < li.children.length; ++i) {
+      let fragment = li.children[i];
+      let location = fragment.location;
+      if (location != null) {
+        if (location.address != undefined) {
+          if (result === undefined) result = {};
+          result.address = location.address;
+        }
+        if (view.pos_start != -1) {
+          if (result === undefined) result = {};
+          result.pos_start = view.pos_start;
+          result.pos_end = result.pos_start + 1;
+        }
+      }
+    }
+    return result;
+  }
+}
diff --git a/tools/turbolizer/edge.js b/tools/turbolizer/edge.js
new file mode 100644
index 0000000..7e46391
--- /dev/null
+++ b/tools/turbolizer/edge.js
@@ -0,0 +1,77 @@
+// 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.
+
+var MINIMUM_EDGE_SEPARATION = 20;
+
+function isEdgeInitiallyVisible(target, index, source, type) {
+  return type == "control" && (target.cfg || source.cfg);
+}
+
+var Edge = function(target, index, source, type) {
+  this.target = target;
+  this.source = source;
+  this.index = index;
+  this.type = type;
+  this.backEdgeNumber = 0;
+  this.visible = isEdgeInitiallyVisible(target, index, source, type);
+};
+
+Edge.prototype.stringID = function() {
+  return this.source.id + "," + this.index +  "," + this.target.id;
+};
+
+Edge.prototype.isVisible = function() {
+  return this.visible && this.source.visible && this.target.visible;
+};
+
+Edge.prototype.getInputHorizontalPosition = function(graph) {
+  if (this.backEdgeNumber > 0) {
+    return graph.maxGraphNodeX + this.backEdgeNumber * MINIMUM_EDGE_SEPARATION;
+  }
+  var source = this.source;
+  var target = this.target;
+  var index = this.index;
+  var input_x = target.x + target.getInputX(index);
+  var inputApproach = target.getInputApproach(this.index);
+  var outputApproach = source.getOutputApproach(graph);
+  if (inputApproach > outputApproach) {
+    return input_x;
+  } else {
+    var inputOffset = MINIMUM_EDGE_SEPARATION * (index + 1);
+    return (target.x < source.x)
+      ? (target.x + target.getTotalNodeWidth() + inputOffset)
+      : (target.x - inputOffset)
+  }
+}
+
+Edge.prototype.generatePath = function(graph) {
+  var target = this.target;
+  var source = this.source;
+  var input_x = target.x + target.getInputX(this.index);
+  var output_x = source.x + source.getOutputX();
+  var output_y = source.y + DEFAULT_NODE_HEIGHT + DEFAULT_NODE_BUBBLE_RADIUS;
+  var inputApproach = target.getInputApproach(this.index);
+  var outputApproach = source.getOutputApproach(graph);
+  var horizontalPos = this.getInputHorizontalPosition(graph);
+
+  var result = "M" + output_x + "," + output_y +
+    "L" + output_x + "," + outputApproach +
+    "L" + horizontalPos + "," + outputApproach;
+
+  if (horizontalPos != input_x) {
+    result += "L" + horizontalPos + "," + inputApproach;
+  } else {
+    if (inputApproach < outputApproach) {
+      inputApproach = outputApproach;
+    }
+  }
+
+  result += "L" + input_x + "," + inputApproach +
+    "L" + input_x + "," + (target.y - DEFAULT_NODE_BUBBLE_RADIUS - 12);
+  return result;
+}
+
+Edge.prototype.isBackEdge = function() {
+  return this.target.hasBackEdges() && (this.target.rank < this.source.rank);
+}
diff --git a/tools/turbolizer/empty-view.js b/tools/turbolizer/empty-view.js
new file mode 100644
index 0000000..66caf59
--- /dev/null
+++ b/tools/turbolizer/empty-view.js
@@ -0,0 +1,19 @@
+// 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.
+
+"use strict";
+
+class EmptyView extends View {
+  constructor(id, broker) {
+    super(id, broker);
+    this.svg = this.divElement.append("svg").attr('version','1.1').attr("width", "100%");
+  }
+
+  initializeContent(data, rememberedSelection) {
+    this.svg.attr("height", document.documentElement.clientHeight + "px");
+  }
+
+  deleteContent() {
+  }
+}
diff --git a/tools/turbolizer/expand-all.jpg b/tools/turbolizer/expand-all.jpg
new file mode 100644
index 0000000..df64a2c
--- /dev/null
+++ b/tools/turbolizer/expand-all.jpg
Binary files differ
diff --git a/tools/turbolizer/graph-layout.js b/tools/turbolizer/graph-layout.js
new file mode 100644
index 0000000..8e411b7
--- /dev/null
+++ b/tools/turbolizer/graph-layout.js
@@ -0,0 +1,474 @@
+// 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.
+
+var DEFAULT_NODE_ROW_SEPARATION = 130
+
+var traceLayout = false;
+
+function newGraphOccupation(graph){
+  var isSlotFilled = [];
+  var maxSlot = 0;
+  var minSlot = 0;
+  var nodeOccupation = [];
+
+  function slotToIndex(slot) {
+    if (slot >= 0) {
+      return slot * 2;
+    } else {
+      return slot * 2 + 1;
+    }
+  }
+
+  function indexToSlot(index) {
+    if ((index % 0) == 0) {
+      return index / 2;
+    } else {
+      return -((index - 1) / 2);
+    }
+  }
+
+  function positionToSlot(pos) {
+    return Math.floor(pos / NODE_INPUT_WIDTH);
+  }
+
+  function slotToLeftPosition(slot) {
+    return slot * NODE_INPUT_WIDTH
+  }
+
+  function slotToRightPosition(slot) {
+    return (slot + 1) * NODE_INPUT_WIDTH
+  }
+
+  function findSpace(pos, width, direction) {
+    var widthSlots = Math.floor((width + NODE_INPUT_WIDTH - 1) /
+                                NODE_INPUT_WIDTH);
+    var currentSlot = positionToSlot(pos + width / 2);
+    var currentScanSlot = currentSlot;
+    var widthSlotsRemainingLeft = widthSlots;
+    var widthSlotsRemainingRight = widthSlots;
+    var slotsChecked = 0;
+    while (true) {
+      var mod = slotsChecked++ % 2;
+      currentScanSlot = currentSlot + (mod ? -1 : 1) * (slotsChecked >> 1);
+      if (!isSlotFilled[slotToIndex(currentScanSlot)]) {
+        if (mod) {
+          if (direction <= 0) --widthSlotsRemainingLeft
+        } else {
+          if (direction >= 0) --widthSlotsRemainingRight
+        }
+        if (widthSlotsRemainingLeft == 0 ||
+            widthSlotsRemainingRight == 0 ||
+            (widthSlotsRemainingLeft + widthSlotsRemainingRight) == widthSlots &&
+            (widthSlots == slotsChecked)) {
+          if (mod) {
+            return [currentScanSlot, widthSlots];
+          } else {
+            return [currentScanSlot - widthSlots + 1, widthSlots];
+          }
+        }
+      } else {
+        if (mod) {
+          widthSlotsRemainingLeft = widthSlots;
+        } else {
+          widthSlotsRemainingRight = widthSlots;
+        }
+      }
+    }
+  }
+
+  function setIndexRange(from, to, value) {
+    if (to < from) {
+      throw("illegal slot range");
+    }
+    while (from <= to) {
+      if (from > maxSlot) {
+        maxSlot = from;
+      }
+      if (from < minSlot) {
+        minSlot = from;
+      }
+      isSlotFilled[slotToIndex(from++)] = value;
+    }
+  }
+
+  function occupySlotRange(from, to) {
+    if (traceLayout) {
+      console.log("Occupied [" + slotToLeftPosition(from) + "  " + slotToLeftPosition(to + 1) + ")");
+    }
+    setIndexRange(from, to, true);
+  }
+
+  function clearSlotRange(from, to) {
+    if (traceLayout) {
+      console.log("Cleared [" + slotToLeftPosition(from) + "  " + slotToLeftPosition(to + 1) + ")");
+    }
+    setIndexRange(from, to, false);
+  }
+
+  function occupyPositionRange(from, to) {
+    occupySlotRange(positionToSlot(from), positionToSlot(to - 1));
+  }
+
+  function clearPositionRange(from, to) {
+    clearSlotRange(positionToSlot(from), positionToSlot(to - 1));
+  }
+
+  function occupyPositionRangeWithMargin(from, to, margin) {
+    var fromMargin = from - Math.floor(margin);
+    var toMargin = to + Math.floor(margin);
+    occupyPositionRange(fromMargin, toMargin);
+  }
+
+  function clearPositionRangeWithMargin(from, to, margin) {
+    var fromMargin = from - Math.floor(margin);
+    var toMargin = to + Math.floor(margin);
+    clearPositionRange(fromMargin, toMargin);
+  }
+
+  var occupation = {
+    occupyNodeInputs: function(node) {
+      for (var i = 0; i < node.inputs.length; ++i) {
+        if (node.inputs[i].isVisible()) {
+          var edge = node.inputs[i];
+          if (!edge.isBackEdge()) {
+            var source = edge.source;
+            var horizontalPos = edge.getInputHorizontalPosition(graph);
+            if (traceLayout) {
+              console.log("Occupying input " + i + " of " + node.id + " at " + horizontalPos);
+            }
+            occupyPositionRangeWithMargin(horizontalPos,
+                                          horizontalPos,
+                                          NODE_INPUT_WIDTH / 2);
+          }
+        }
+      }
+    },
+    occupyNode: function(node) {
+      var getPlacementHint = function(n) {
+        var pos = 0;
+        var direction = -1;
+        var outputEdges = 0;
+        var inputEdges = 0;
+        for (var k = 0; k < n.outputs.length; ++k) {
+          var outputEdge = n.outputs[k];
+          if (outputEdge.isVisible()) {
+            var output = n.outputs[k].target;
+            for (var l = 0; l < output.inputs.length; ++l) {
+              if (output.rank > n.rank) {
+                var inputEdge = output.inputs[l];
+                if (inputEdge.isVisible()) {
+                  ++inputEdges;
+                }
+                if (output.inputs[l].source == n) {
+                  pos += output.x + output.getInputX(l) + NODE_INPUT_WIDTH / 2;
+                  outputEdges++;
+                  if (l >= (output.inputs.length / 2)) {
+                    direction = 1;
+                  }
+                }
+              }
+            }
+          }
+        }
+        if (outputEdges != 0) {
+          pos = pos / outputEdges;
+        }
+        if (outputEdges > 1 || inputEdges == 1) {
+          direction = 0;
+        }
+        return [direction, pos];
+      }
+      var width = node.getTotalNodeWidth();
+      var margin = MINIMUM_EDGE_SEPARATION;
+      var paddedWidth = width + 2 * margin;
+      var placementHint = getPlacementHint(node);
+      var x = placementHint[1] - paddedWidth + margin;
+      if (traceLayout) {
+        console.log("Node " + node.id + " placement hint [" + x + ", " + (x + paddedWidth) + ")");
+      }
+      var placement = findSpace(x, paddedWidth, placementHint[0]);
+      var firstSlot = placement[0];
+      var slotWidth = placement[1];
+      var endSlotExclusive = firstSlot + slotWidth - 1;
+      occupySlotRange(firstSlot, endSlotExclusive);
+      nodeOccupation.push([firstSlot, endSlotExclusive]);
+      if (placementHint[0] < 0) {
+        return slotToLeftPosition(firstSlot + slotWidth) - width - margin;
+      } else if (placementHint[0] > 0) {
+        return slotToLeftPosition(firstSlot) + margin;
+      } else {
+        return slotToLeftPosition(firstSlot + slotWidth / 2) - (width / 2);
+      }
+    },
+    clearOccupiedNodes: function() {
+      nodeOccupation.forEach(function(o) {
+        clearSlotRange(o[0], o[1]);
+      });
+      nodeOccupation = [];
+    },
+    clearNodeOutputs: function(source) {
+      source.outputs.forEach(function(edge) {
+        if (edge.isVisible()) {
+          var target = edge.target;
+          for (var i = 0; i < target.inputs.length; ++i) {
+            if (target.inputs[i].source === source) {
+              var horizontalPos = edge.getInputHorizontalPosition(graph);
+              clearPositionRangeWithMargin(horizontalPos,
+                                           horizontalPos,
+                                           NODE_INPUT_WIDTH / 2);
+            }
+          }
+        }
+      });
+    },
+    print: function() {
+      var s = "";
+      for (var currentSlot = -40; currentSlot < 40; ++currentSlot) {
+        if (currentSlot != 0) {
+          s += " ";
+        } else {
+          s += "|";
+        }
+      }
+      console.log(s);
+      s = "";
+      for (var currentSlot2 = -40; currentSlot2 < 40; ++currentSlot2) {
+        if (isSlotFilled[slotToIndex(currentSlot2)]) {
+          s += "*";
+        } else {
+          s += " ";
+        }
+      }
+      console.log(s);
+    }
+  }
+  return occupation;
+}
+
+function layoutNodeGraph(graph) {
+  graph.minGraphX = 0;
+  graph.maxGraphNodeX = 1;
+  graph.maxGraphX = 1;
+  graph.minGraphY = 0;
+  graph.maxGraphY = 1;
+
+  // First determine the set of nodes that have no outputs. Those are the
+  // basis for bottom-up DFS to determine rank and node placement.
+  var endNodesHasNoOutputs = [];
+  var startNodesHasNoInputs = [];
+  graph.nodes.forEach(function(n, i){
+    endNodesHasNoOutputs[n.id] = true;
+    startNodesHasNoInputs[n.id] = true;
+  });
+  graph.edges.forEach(function(e, i){
+    endNodesHasNoOutputs[e.source.id] = false;
+    startNodesHasNoInputs[e.target.id] = false;
+  });
+
+  // Finialize the list of start and end nodes.
+  var endNodes = [];
+  var startNodes = [];
+  var visited = [];
+  var rank = [];
+  graph.nodes.forEach(function(n, i){
+    if (endNodesHasNoOutputs[n.id]) {
+      endNodes.push(n);
+    }
+    if (startNodesHasNoInputs[n.id]) {
+      startNodes.push(n);
+    }
+    visited[n.id] = false;
+    rank[n.id] = -1;
+    n.rank = 0;
+    n.visitOrderWithinRank = 0;
+    n.outputApproach = MINIMUM_NODE_OUTPUT_APPROACH;
+  });
+
+
+  var maxRank = 0;
+  var visited = [];
+  var dfsStack = [];
+  var visitOrderWithinRank = 0;
+
+  var worklist = startNodes.slice();
+  while (worklist.length != 0) {
+    var n = worklist.pop();
+    var changed = false;
+    if (n.rank == MAX_RANK_SENTINEL) {
+      n.rank = 1;
+      changed = true;
+    }
+    var begin = 0;
+    var end = n.inputs.length;
+    if (n.opcode == 'Phi' || n.opcode == 'EffectPhi') {
+      // Keep with merge or loop node
+      begin = n.inputs.length - 1;
+    } else if (n.hasBackEdges()) {
+      end = 1;
+    }
+    for (var l = begin; l < end; ++l) {
+      var input = n.inputs[l].source;
+      if (input.visible && input.rank >= n.rank) {
+        n.rank = input.rank + 1;
+        changed = true;
+      }
+    }
+    if (changed) {
+      var hasBackEdges = n.hasBackEdges();
+      for (var l = n.outputs.length - 1; l >= 0; --l) {
+        if (hasBackEdges && (l != 0)) {
+          worklist.unshift(n.outputs[l].target);
+        } else {
+          worklist.push(n.outputs[l].target);
+        }
+      }
+    }
+    if (n.rank > maxRank) {
+      maxRank = n.rank;
+    }
+  }
+
+   visited = [];
+  function dfsFindRankLate(n) {
+    if (visited[n.id]) return;
+    visited[n.id] = true;
+    var originalRank = n.rank;
+    var newRank = n.rank;
+    var firstInput = true;
+    for (var l = 0; l < n.outputs.length; ++l) {
+      var output = n.outputs[l].target;
+      dfsFindRankLate(output);
+      var outputRank = output.rank;
+      if (output.visible && (firstInput || outputRank <= newRank) &&
+          (outputRank > originalRank)) {
+        newRank = outputRank - 1;
+      }
+      firstInput = false;
+    }
+    if (n.opcode != "Start" && n.opcode != "Phi" && n.opcode != "EffectPhi") {
+      n.rank = newRank;
+    }
+  }
+
+  startNodes.forEach(dfsFindRankLate);
+
+  visited = [];
+  function dfsRankOrder(n) {
+    if (visited[n.id]) return;
+    visited[n.id] = true;
+    for (var l = 0; l < n.outputs.length; ++l) {
+      var edge = n.outputs[l];
+      if (edge.isVisible()) {
+        var output = edge.target;
+        dfsRankOrder(output);
+      }
+    }
+    if (n.visitOrderWithinRank == 0) {
+      n.visitOrderWithinRank = ++visitOrderWithinRank;
+    }
+  }
+  startNodes.forEach(dfsRankOrder);
+
+  endNodes.forEach(function(n) {
+    n.rank = maxRank + 1;
+  });
+
+  var rankSets = [];
+  // Collect sets for each rank.
+  graph.nodes.forEach(function(n, i){
+    n.y = n.rank * (DEFAULT_NODE_ROW_SEPARATION + graph.getNodeHeight() +
+                    2 * DEFAULT_NODE_BUBBLE_RADIUS);
+    if (n.visible) {
+      if (rankSets[n.rank] === undefined) {
+        rankSets[n.rank] = [n];
+      } else {
+        rankSets[n.rank].push(n);
+      }
+    }
+  });
+
+  // Iterate backwards from highest to lowest rank, placing nodes so that they
+  // spread out from the "center" as much as possible while still being
+  // compact and not overlapping live input lines.
+  var occupation = newGraphOccupation(graph);
+  var rankCount = 0;
+
+  rankSets.reverse().forEach(function(rankSet) {
+
+    for (var i = 0; i < rankSet.length; ++i) {
+      occupation.clearNodeOutputs(rankSet[i]);
+    }
+
+    if (traceLayout) {
+      console.log("After clearing outputs");
+      occupation.print();
+    }
+
+    var placedCount = 0;
+    rankSet = rankSet.sort(function(a,b) {
+      return a.visitOrderWithinRank < b.visitOrderWithinRank;
+    });
+    for (var i = 0; i < rankSet.length; ++i) {
+      var nodeToPlace = rankSet[i];
+      if (nodeToPlace.visible) {
+        nodeToPlace.x = occupation.occupyNode(nodeToPlace);
+        if (traceLayout) {
+          console.log("Node " + nodeToPlace.id + " is placed between [" + nodeToPlace.x + ", " + (nodeToPlace.x + nodeToPlace.getTotalNodeWidth()) + ")");
+        }
+        var staggeredFlooredI = Math.floor(placedCount++ % 3);
+        var delta = MINIMUM_EDGE_SEPARATION * staggeredFlooredI
+        nodeToPlace.outputApproach += delta;
+      } else {
+        nodeToPlace.x = 0;
+      }
+
+      if (nodeToPlace.x < graph.minGraphX) {
+        graph.minGraphX = nodeToPlace.x;
+      }
+      if ((nodeToPlace.y - 50) < graph.minGraphY) {
+        graph.minGraphY = nodeToPlace.y - 50;
+      }
+      if ((nodeToPlace.x + nodeToPlace.getTotalNodeWidth()) > graph.maxGraphNodeX) {
+        graph.maxGraphNodeX = nodeToPlace.x + nodeToPlace.getTotalNodeWidth();
+      }
+      if ((nodeToPlace.y + graph.getNodeHeight() + 50) > graph.maxGraphY) {
+        graph.maxGraphY = nodeToPlace.y + graph.getNodeHeight() + 50;
+      }
+    }
+
+    if (traceLayout) {
+      console.log("Before clearing nodes");
+      occupation.print();
+    }
+
+    occupation.clearOccupiedNodes();
+
+    if (traceLayout) {
+      console.log("After clearing nodes");
+      occupation.print();
+    }
+
+    for (var i = 0; i < rankSet.length; ++i) {
+      var node = rankSet[i];
+      occupation.occupyNodeInputs(node);
+    }
+
+    if (traceLayout) {
+      console.log("After occupying inputs");
+      occupation.print();
+    }
+  });
+
+  var backEdgeNumber = 0;
+  graph.visibleEdges.each(function (e) {
+    if (e.isBackEdge()) {
+      e.backEdgeNumber = ++backEdgeNumber;
+    } else {
+      e.backEdgeNumber = 0;
+    }
+  });
+
+  graph.maxGraphX = graph.maxGraphNodeX +
+    backEdgeNumber * MINIMUM_EDGE_SEPARATION;
+}
diff --git a/tools/turbolizer/graph-view.js b/tools/turbolizer/graph-view.js
new file mode 100644
index 0000000..41d35d8
--- /dev/null
+++ b/tools/turbolizer/graph-view.js
@@ -0,0 +1,987 @@
+// 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.
+
+"use strict";
+
+class GraphView extends View {
+  constructor (d3, id, nodes, edges, broker) {
+    super(id, broker);
+    var graph = this;
+
+    var svg = this.divElement.append("svg").attr('version','1.1').attr("width", "100%");
+    graph.svg = svg;
+
+    graph.nodes = nodes || [];
+    graph.edges = edges || [];
+
+    graph.minGraphX = 0;
+    graph.maxGraphX = 1;
+    graph.minGraphY = 0;
+    graph.maxGraphY = 1;
+
+    graph.state = {
+      selection: null,
+      mouseDownNode: null,
+      justDragged: false,
+      justScaleTransGraph: false,
+      lastKeyDown: -1,
+      showTypes: false
+    };
+
+    var selectionHandler = {
+      clear: function() {
+        broker.clear(selectionHandler);
+      },
+      select: function(items, selected) {
+        var ranges = [];
+        for (var d of items) {
+          if (selected) {
+            d.classList.add("selected");
+          } else {
+            d.classList.remove("selected");
+          }
+          var data = d.__data__;
+          ranges.push([data.pos, data.pos + 1, data.id]);
+        }
+        broker.select(selectionHandler, ranges, selected);
+      },
+      selectionDifference: function(span1, inclusive1, span2, inclusive2) {
+        // Should not be called
+      },
+      brokeredSelect: function(ranges, selected) {
+        var test = [].entries().next();
+        var selection = graph.nodes
+          .filter(function(n) {
+            var pos = n.pos;
+            for (var range of ranges) {
+              var start = range[0];
+              var end = range[1];
+              var id = range[2];
+              if (end != undefined) {
+                if (pos >= start && pos < end) {
+                  return true;
+                }
+              } else if (start != undefined) {
+                if (pos === start) {
+                  return true;
+                }
+              } else {
+                if (n.id === id) {
+                  return true;
+                }
+              }
+            }
+            return false;
+          });
+        var newlySelected = new Set();
+        selection.forEach(function(n) {
+          newlySelected.add(n);
+          if (!n.visible) {
+            n.visible = true;
+          }
+        });
+        graph.updateGraphVisibility();
+        graph.visibleNodes.each(function(n) {
+          if (newlySelected.has(n)) {
+            graph.state.selection.select(this, selected);
+          }
+        });
+        graph.updateGraphVisibility();
+        graph.viewSelection();
+      },
+      brokeredClear: function() {
+        graph.state.selection.clear();
+      }
+    };
+    broker.addSelectionHandler(selectionHandler);
+
+    graph.state.selection = new Selection(selectionHandler);
+
+    var defs = svg.append('svg:defs');
+    defs.append('svg:marker')
+      .attr('id', 'end-arrow')
+      .attr('viewBox', '0 -4 8 8')
+      .attr('refX', 2)
+      .attr('markerWidth', 2.5)
+      .attr('markerHeight', 2.5)
+      .attr('orient', 'auto')
+      .append('svg:path')
+      .attr('d', 'M0,-4L8,0L0,4');
+
+    this.graphElement = svg.append("g");
+    graph.visibleEdges = this.graphElement.append("g").selectAll("g");
+    graph.visibleNodes = this.graphElement.append("g").selectAll("g");
+
+    graph.drag = d3.behavior.drag()
+      .origin(function(d){
+        return {x: d.x, y: d.y};
+      })
+      .on("drag", function(args){
+        graph.state.justDragged = true;
+        graph.dragmove.call(graph, args);
+      })
+
+    d3.select("#upload").on("click", function(){
+      document.getElementById("hidden-file-upload").click();
+    });
+
+    d3.select("#layout").on("click", function(){
+      graph.updateGraphVisibility();
+      graph.layoutGraph();
+      graph.updateGraphVisibility();
+      graph.viewWholeGraph();
+    });
+
+    d3.select("#show-all").on("click", function(){
+      graph.nodes.filter(function(n) { n.visible = true; })
+      graph.edges.filter(function(e) { e.visible = true; })
+      graph.updateGraphVisibility();
+      graph.viewWholeGraph();
+    });
+
+    d3.select("#hide-unselected").on("click", function() {
+      var unselected = graph.visibleNodes.filter(function(n) {
+        return !this.classList.contains("selected");
+      });
+      unselected.each(function(n) {
+        n.visible = false;
+      });
+      graph.updateGraphVisibility();
+    });
+
+    d3.select("#hide-selected").on("click", function() {
+      var selected = graph.visibleNodes.filter(function(n) {
+        return this.classList.contains("selected");
+      });
+      selected.each(function(n) {
+        n.visible = false;
+      });
+      graph.state.selection.clear();
+      graph.updateGraphVisibility();
+    });
+
+    d3.select("#zoom-selection").on("click", function() {
+      graph.viewSelection();
+    });
+
+    d3.select("#toggle-types").on("click", function() {
+      graph.toggleTypes();
+    });
+
+    d3.select("#search-input").on("keydown", function() {
+      if (d3.event.keyCode == 13) {
+        graph.state.selection.clear();
+        var reg = new RegExp(this.value);
+        var filterFunction = function(n) {
+          return (reg.exec(n.getDisplayLabel()) != null ||
+                  (graph.state.showTypes && reg.exec(n.getDisplayType())) ||
+                  reg.exec(n.opcode) != null);
+        };
+        if (d3.event.ctrlKey) {
+          graph.nodes.forEach(function(n, i) {
+            if (filterFunction(n)) {
+              n.visible = true;
+            }
+          });
+          graph.updateGraphVisibility();
+        }
+        var selected = graph.visibleNodes.each(function(n) {
+          if (filterFunction(n)) {
+            graph.state.selection.select(this, true);
+          }
+        });
+        graph.connectVisibleSelectedNodes();
+        graph.updateGraphVisibility();
+        this.blur();
+        graph.viewSelection();
+      }
+      d3.event.stopPropagation();
+    });
+
+    // listen for key events
+    d3.select(window).on("keydown", function(e){
+      graph.svgKeyDown.call(graph);
+    })
+      .on("keyup", function(){
+        graph.svgKeyUp.call(graph);
+      });
+    svg.on("mousedown", function(d){graph.svgMouseDown.call(graph, d);});
+    svg.on("mouseup", function(d){graph.svgMouseUp.call(graph, d);});
+
+    graph.dragSvg = d3.behavior.zoom()
+      .on("zoom", function(){
+        if (d3.event.sourceEvent.shiftKey){
+          return false;
+        } else{
+          graph.zoomed.call(graph);
+        }
+        return true;
+      })
+      .on("zoomstart", function(){
+        if (!d3.event.sourceEvent.shiftKey) d3.select('body').style("cursor", "move");
+      })
+      .on("zoomend", function(){
+        d3.select('body').style("cursor", "auto");
+      });
+
+    svg.call(graph.dragSvg).on("dblclick.zoom", null);
+  }
+
+  static get selectedClass() {
+    return "selected";
+  }
+  static get rectClass() {
+    return "nodeStyle";
+  }
+  static get activeEditId() {
+    return "active-editing";
+  }
+  static get nodeRadius() {
+    return 50;
+  }
+
+  getNodeHeight(graph) {
+    if (this.state.showTypes) {
+      return DEFAULT_NODE_HEIGHT + TYPE_HEIGHT;
+    } else {
+      return DEFAULT_NODE_HEIGHT;
+    }
+  }
+
+  getEdgeFrontier(nodes, inEdges, edgeFilter) {
+    let frontier = new Set();
+    nodes.forEach(function(element) {
+      var edges = inEdges ? element.__data__.inputs : element.__data__.outputs;
+      var edgeNumber = 0;
+      edges.forEach(function(edge) {
+        if (edgeFilter == undefined || edgeFilter(edge, edgeNumber)) {
+          frontier.add(edge);
+        }
+        ++edgeNumber;
+      });
+    });
+    return frontier;
+  }
+
+  getNodeFrontier(nodes, inEdges, edgeFilter) {
+    let graph = this;
+    var frontier = new Set();
+    var newState = true;
+    var edgeFrontier = graph.getEdgeFrontier(nodes, inEdges, edgeFilter);
+    // Control key toggles edges rather than just turning them on
+    if (d3.event.ctrlKey) {
+      edgeFrontier.forEach(function(edge) {
+        if (edge.visible) {
+          newState = false;
+        }
+      });
+    }
+    edgeFrontier.forEach(function(edge) {
+      edge.visible = newState;
+      if (newState) {
+        var node = inEdges ? edge.source : edge.target;
+        node.visible = true;
+        frontier.add(node);
+      }
+    });
+    graph.updateGraphVisibility();
+    if (newState) {
+      return graph.visibleNodes.filter(function(n) {
+        return frontier.has(n);
+      });
+    } else {
+      return undefined;
+    }
+  }
+
+  dragmove(d) {
+    var graph = this;
+    d.x += d3.event.dx;
+    d.y += d3.event.dy;
+    graph.updateGraphVisibility();
+  }
+
+  initializeContent(data, rememberedSelection) {
+    this.createGraph(data, rememberedSelection);
+    if (rememberedSelection != null) {
+      this.attachSelection(rememberedSelection);
+      this.connectVisibleSelectedNodes();
+    }
+    this.updateGraphVisibility();
+  }
+
+  deleteContent() {
+    if (this.visibleNodes) {
+      this.nodes = [];
+      this.edges = [];
+      this.nodeMap = [];
+      this.updateGraphVisibility();
+    }
+  };
+
+  createGraph(data, initiallyVisibileIds) {
+    var g = this;
+    g.nodes = data.nodes;
+    g.nodeMap = [];
+    var textMeasure = document.getElementById('text-measure');
+    g.nodes.forEach(function(n, i){
+      n.__proto__ = Node;
+      n.visible = false;
+      n.x = 0;
+      n.y = 0;
+      n.rank = MAX_RANK_SENTINEL;
+      n.inputs = [];
+      n.outputs = [];
+      n.rpo = -1;
+      n.outputApproach = MINIMUM_NODE_OUTPUT_APPROACH;
+      n.cfg = n.control;
+      g.nodeMap[n.id] = n;
+      n.displayLabel = n.getDisplayLabel();
+      textMeasure.textContent = n.getDisplayLabel();
+      var width = textMeasure.getComputedTextLength();
+      textMeasure.textContent = n.getDisplayType();
+      width = Math.max(width, textMeasure.getComputedTextLength());
+      n.width = Math.alignUp(width + NODE_INPUT_WIDTH * 2,
+                             NODE_INPUT_WIDTH);
+    });
+    g.edges = [];
+    data.edges.forEach(function(e, i){
+      var t = g.nodeMap[e.target];
+      var s = g.nodeMap[e.source];
+      var newEdge = new Edge(t, e.index, s, e.type);
+      t.inputs.push(newEdge);
+      s.outputs.push(newEdge);
+      g.edges.push(newEdge);
+      if (e.type == 'control') {
+        s.cfg = true;
+      }
+    });
+    g.nodes.forEach(function(n, i) {
+      n.visible = isNodeInitiallyVisible(n);
+      if (initiallyVisibileIds != undefined) {
+        if (initiallyVisibileIds.has(n.id)) {
+          n.visible = true;
+        }
+      }
+    });
+    g.fitGraphViewToWindow();
+    g.updateGraphVisibility();
+    g.layoutGraph();
+    g.updateGraphVisibility();
+    g.viewWholeGraph();
+  }
+
+  connectVisibleSelectedNodes() {
+    var graph = this;
+    graph.state.selection.selection.forEach(function(element) {
+      var edgeNumber = 0;
+      element.__data__.inputs.forEach(function(edge) {
+        if (edge.source.visible && edge.target.visible) {
+          edge.visible = true;
+        }
+      });
+      element.__data__.outputs.forEach(function(edge) {
+        if (edge.source.visible && edge.target.visible) {
+          edge.visible = true;
+        }
+      });
+    });
+  }
+
+  updateInputAndOutputBubbles() {
+    var g = this;
+    var s = g.visibleBubbles;
+    s.classed("filledBubbleStyle", function(c) {
+      var components = this.id.split(',');
+      if (components[0] == "ib") {
+        var edge = g.nodeMap[components[3]].inputs[components[2]];
+        return edge.isVisible();
+      } else {
+        return g.nodeMap[components[1]].areAnyOutputsVisible() == 2;
+      }
+    }).classed("halfFilledBubbleStyle", function(c) {
+      var components = this.id.split(',');
+      if (components[0] == "ib") {
+        var edge = g.nodeMap[components[3]].inputs[components[2]];
+        return false;
+      } else {
+        return g.nodeMap[components[1]].areAnyOutputsVisible() == 1;
+      }
+    }).classed("bubbleStyle", function(c) {
+      var components = this.id.split(',');
+      if (components[0] == "ib") {
+        var edge = g.nodeMap[components[3]].inputs[components[2]];
+        return !edge.isVisible();
+      } else {
+        return g.nodeMap[components[1]].areAnyOutputsVisible() == 0;
+      }
+    });
+    s.each(function(c) {
+      var components = this.id.split(',');
+      if (components[0] == "ob") {
+        var from = g.nodeMap[components[1]];
+        var x = from.getOutputX();
+        var y = g.getNodeHeight() + DEFAULT_NODE_BUBBLE_RADIUS / 2 + 4;
+        var transform = "translate(" + x + "," + y + ")";
+        this.setAttribute('transform', transform);
+      }
+    });
+  }
+
+  attachSelection(s) {
+    var graph = this;
+    if (s.size != 0) {
+      this.visibleNodes.each(function(n) {
+        if (s.has(this.__data__.id)) {
+          graph.state.selection.select(this, true);
+        }
+      });
+    }
+  }
+
+  detachSelection() {
+    var selection = this.state.selection.detachSelection();
+    var s = new Set();
+    for (var i of selection) {
+      s.add(i.__data__.id);
+    };
+    return s;
+  }
+
+  pathMouseDown(path, d) {
+    d3.event.stopPropagation();
+    this.state.selection.clear();
+    this.state.selection.add(path);
+  };
+
+  nodeMouseDown(node, d) {
+    d3.event.stopPropagation();
+    this.state.mouseDownNode = d;
+  }
+
+  nodeMouseUp(d3node, d) {
+    var graph = this,
+    state = graph.state,
+    consts = graph.consts;
+
+    var mouseDownNode = state.mouseDownNode;
+
+    if (!mouseDownNode) return;
+
+    if (mouseDownNode !== d){
+      // we're in a different node: create new edge for mousedown edge and add to graph
+      var newEdge = {source: mouseDownNode, target: d};
+      var filtRes = graph.visibleEdges.filter(function(d){
+        if (d.source === newEdge.target && d.target === newEdge.source){
+          graph.edges.splice(graph.edges.indexOf(d), 1);
+        }
+        return d.source === newEdge.source && d.target === newEdge.target;
+      });
+      if (!filtRes[0].length){
+        graph.edges.push(newEdge);
+        graph.updateGraphVisibility();
+      }
+    } else{
+      // we're in the same node
+      if (state.justDragged) {
+        // dragged, not clicked
+        state.justDragged = false;
+      } else{
+        // clicked, not dragged
+        var extend = d3.event.shiftKey;
+        var selection = graph.state.selection;
+        if (!extend) {
+          selection.clear();
+        }
+        selection.select(d3node[0][0], true);
+      }
+    }
+  }
+
+  selectSourcePositions(start, end, selected) {
+    var graph = this;
+    var map = [];
+    var sel = graph.nodes.filter(function(n) {
+      var pos = (n.pos === undefined)
+        ? -1
+        : n.getFunctionRelativeSourcePosition(graph);
+      if (pos >= start && pos < end) {
+        map[n.id] = true;
+        n.visible = true;
+      }
+    });
+    graph.updateGraphVisibility();
+    graph.visibleNodes.filter(function(n) { return map[n.id]; })
+      .each(function(n) {
+        var selection = graph.state.selection;
+        selection.select(d3.select(this), selected);
+      });
+  }
+
+  selectAllNodes(inEdges, filter) {
+    var graph = this;
+    if (!d3.event.shiftKey) {
+      graph.state.selection.clear();
+    }
+    graph.state.selection.select(graph.visibleNodes[0], true);
+    graph.updateGraphVisibility();
+  }
+
+  svgMouseDown() {
+    this.state.graphMouseDown = true;
+  }
+
+  svgMouseUp() {
+    var graph = this,
+    state = graph.state;
+    if (state.justScaleTransGraph) {
+      // Dragged
+      state.justScaleTransGraph = false;
+    } else {
+      // Clicked
+      if (state.mouseDownNode == null) {
+        graph.state.selection.clear();
+      }
+    }
+    state.mouseDownNode = null;
+    state.graphMouseDown = false;
+  }
+
+  svgKeyDown() {
+    var state = this.state;
+    var graph = this;
+
+    // Don't handle key press repetition
+    if(state.lastKeyDown !== -1) return;
+
+    var showSelectionFrontierNodes = function(inEdges, filter, select) {
+      var frontier = graph.getNodeFrontier(state.selection.selection, inEdges, filter);
+      if (frontier != undefined) {
+        if (select) {
+          if (!d3.event.shiftKey) {
+            state.selection.clear();
+          }
+          state.selection.select(frontier[0], true);
+        }
+        graph.updateGraphVisibility();
+      }
+      allowRepetition = false;
+    }
+
+    var allowRepetition = true;
+    var eventHandled = true; // unless the below switch defaults
+    switch(d3.event.keyCode) {
+    case 49:
+    case 50:
+    case 51:
+    case 52:
+    case 53:
+    case 54:
+    case 55:
+    case 56:
+    case 57:
+      // '1'-'9'
+      showSelectionFrontierNodes(true,
+          (edge, index) => { return index == (d3.event.keyCode - 49); },
+          false);
+      break;
+    case 67:
+      // 'c'
+      showSelectionFrontierNodes(true,
+          (edge, index) => { return edge.type == 'control'; },
+          false);
+      break;
+    case 69:
+      // 'e'
+      showSelectionFrontierNodes(true,
+          (edge, index) => { return edge.type == 'effect'; },
+          false);
+      break;
+    case 79:
+      // 'o'
+      showSelectionFrontierNodes(false, undefined, false);
+      break;
+    case 73:
+      // 'i'
+      showSelectionFrontierNodes(true, undefined, false);
+      break;
+    case 65:
+      // 'a'
+      graph.selectAllNodes();
+      allowRepetition = false;
+      break;
+    case 38:
+    case 40: {
+      showSelectionFrontierNodes(d3.event.keyCode == 38, undefined, true);
+      break;
+    }
+    default:
+      eventHandled = false;
+      break;
+    }
+    if (eventHandled) {
+      d3.event.preventDefault();
+    }
+    if (!allowRepetition) {
+      state.lastKeyDown = d3.event.keyCode;
+    }
+  }
+
+  svgKeyUp() {
+    this.state.lastKeyDown = -1
+  };
+
+  layoutEdges() {
+    var graph = this;
+    graph.maxGraphX = graph.maxGraphNodeX;
+    this.visibleEdges.attr("d", function(edge){
+      return edge.generatePath(graph);
+    });
+  }
+
+  layoutGraph() {
+    layoutNodeGraph(this);
+  }
+
+  // call to propagate changes to graph
+  updateGraphVisibility() {
+
+    var graph = this,
+    state = graph.state;
+
+    var filteredEdges = graph.edges.filter(function(e) { return e.isVisible(); });
+    var visibleEdges = graph.visibleEdges.data(filteredEdges, function(edge) {
+      return edge.stringID();
+    });
+
+    // add new paths
+    visibleEdges.enter()
+      .append('path')
+      .style('marker-end','url(#end-arrow)')
+      .classed('hidden', function(e) {
+        return !e.isVisible();
+      })
+      .attr("id", function(edge){ return "e," + edge.stringID(); })
+      .on("mousedown", function(d){
+        graph.pathMouseDown.call(graph, d3.select(this), d);
+      })
+
+    // Set the correct styles on all of the paths
+    visibleEdges.classed('value', function(e) {
+      return e.type == 'value' || e.type == 'context';
+    }).classed('control', function(e) {
+      return e.type == 'control';
+    }).classed('effect', function(e) {
+      return e.type == 'effect';
+    }).classed('frame-state', function(e) {
+      return e.type == 'frame-state';
+    }).attr('stroke-dasharray', function(e) {
+      if (e.type == 'frame-state') return "10,10";
+      return (e.type == 'effect') ? "5,5" : "";
+    });
+
+    // remove old links
+    visibleEdges.exit().remove();
+
+    graph.visibleEdges = visibleEdges;
+
+    // update existing nodes
+    var filteredNodes = graph.nodes.filter(function(n) { return n.visible; });
+    graph.visibleNodes = graph.visibleNodes.data(filteredNodes, function(d) {
+      return d.id;
+    });
+    graph.visibleNodes.attr("transform", function(n){
+      return "translate(" + n.x + "," + n.y + ")";
+    }).select('rect').
+      attr(HEIGHT, function(d) { return graph.getNodeHeight(); });
+
+    // add new nodes
+    var newGs = graph.visibleNodes.enter()
+      .append("g");
+
+    newGs.classed("control", function(n) { return n.isControl(); })
+      .classed("javascript", function(n) { return n.isJavaScript(); })
+      .classed("input", function(n) { return n.isInput(); })
+      .classed("simplified", function(n) { return n.isSimplified(); })
+      .classed("machine", function(n) { return n.isMachine(); })
+      .attr("transform", function(d){ return "translate(" + d.x + "," + d.y + ")";})
+      .on("mousedown", function(d){
+        graph.nodeMouseDown.call(graph, d3.select(this), d);
+      })
+      .on("mouseup", function(d){
+        graph.nodeMouseUp.call(graph, d3.select(this), d);
+      })
+      .call(graph.drag);
+
+    newGs.append("rect")
+      .attr("rx", 10)
+      .attr("ry", 10)
+      .attr(WIDTH, function(d) { return d.getTotalNodeWidth(); })
+      .attr(HEIGHT, function(d) { return graph.getNodeHeight(); })
+
+    function appendInputAndOutputBubbles(g, d) {
+      for (var i = 0; i < d.inputs.length; ++i) {
+        var x = d.getInputX(i);
+        var y = -DEFAULT_NODE_BUBBLE_RADIUS / 2 - 4;
+        var s = g.append('circle')
+          .classed("filledBubbleStyle", function(c) {
+            return d.inputs[i].isVisible();
+          } )
+          .classed("bubbleStyle", function(c) {
+            return !d.inputs[i].isVisible();
+          } )
+          .attr("id", "ib," + d.inputs[i].stringID())
+          .attr("r", DEFAULT_NODE_BUBBLE_RADIUS)
+          .attr("transform", function(d) {
+            return "translate(" + x + "," + y + ")";
+          })
+          .on("mousedown", function(d){
+            var components = this.id.split(',');
+            var node = graph.nodeMap[components[3]];
+            var edge = node.inputs[components[2]];
+            var visible = !edge.isVisible();
+            node.setInputVisibility(components[2], visible);
+            d3.event.stopPropagation();
+            graph.updateGraphVisibility();
+          });
+      }
+      if (d.outputs.length != 0) {
+        var x = d.getOutputX();
+        var y = graph.getNodeHeight() + DEFAULT_NODE_BUBBLE_RADIUS / 2 + 4;
+        var s = g.append('circle')
+          .classed("filledBubbleStyle", function(c) {
+            return d.areAnyOutputsVisible() == 2;
+          } )
+          .classed("halFilledBubbleStyle", function(c) {
+            return d.areAnyOutputsVisible() == 1;
+          } )
+          .classed("bubbleStyle", function(c) {
+            return d.areAnyOutputsVisible() == 0;
+          } )
+          .attr("id", "ob," + d.id)
+          .attr("r", DEFAULT_NODE_BUBBLE_RADIUS)
+          .attr("transform", function(d) {
+            return "translate(" + x + "," + y + ")";
+          })
+          .on("mousedown", function(d) {
+            d.setOutputVisibility(d.areAnyOutputsVisible() == 0);
+            d3.event.stopPropagation();
+            graph.updateGraphVisibility();
+          });
+      }
+    }
+
+    newGs.each(function(d){
+      appendInputAndOutputBubbles(d3.select(this), d);
+    });
+
+    newGs.each(function(d){
+      d3.select(this).append("text")
+        .classed("label", true)
+        .attr("text-anchor","right")
+        .attr("dx", "5")
+        .attr("dy", DEFAULT_NODE_HEIGHT / 2 + 5)
+        .append('tspan')
+        .text(function(l) {
+          return d.getDisplayLabel();
+        })
+        .append("title")
+        .text(function(l) {
+          return d.getLabel();
+        })
+      if (d.type != undefined) {
+        d3.select(this).append("text")
+          .classed("label", true)
+          .classed("type", true)
+          .attr("text-anchor","right")
+          .attr("dx", "5")
+          .attr("dy", DEFAULT_NODE_HEIGHT / 2 + TYPE_HEIGHT + 5)
+          .append('tspan')
+          .text(function(l) {
+            return d.getDisplayType();
+          })
+          .append("title")
+          .text(function(l) {
+            return d.getType();
+          })
+      }
+    });
+
+    graph.visibleNodes.select('.type').each(function (d) {
+      this.setAttribute('visibility', graph.state.showTypes ? 'visible' : 'hidden');
+    });
+
+    // remove old nodes
+    graph.visibleNodes.exit().remove();
+
+    graph.visibleBubbles = d3.selectAll('circle');
+
+    graph.updateInputAndOutputBubbles();
+
+    graph.layoutEdges();
+
+    graph.svg.style.height = '100%';
+  }
+
+  getVisibleTranslation(translate, scale) {
+    var graph = this;
+    var height = (graph.maxGraphY - graph.minGraphY + 2 * GRAPH_MARGIN) * scale;
+    var width = (graph.maxGraphX - graph.minGraphX + 2 * GRAPH_MARGIN) * scale;
+
+    var dimensions = this.getSvgViewDimensions();
+
+    var baseY = translate[1];
+    var minY = (graph.minGraphY - GRAPH_MARGIN) * scale;
+    var maxY = (graph.maxGraphY + GRAPH_MARGIN) * scale;
+
+    var adjustY = 0;
+    var adjustYCandidate = 0;
+    if ((maxY + baseY) < dimensions[1]) {
+      adjustYCandidate = dimensions[1] - (maxY + baseY);
+      if ((minY + baseY + adjustYCandidate) > 0) {
+        adjustY = (dimensions[1] / 2) - (maxY - (height / 2)) - baseY;
+      } else {
+        adjustY = adjustYCandidate;
+      }
+    } else if (-baseY < minY) {
+      adjustYCandidate = -(baseY + minY);
+      if ((maxY + baseY + adjustYCandidate) < dimensions[1]) {
+        adjustY = (dimensions[1] / 2) - (maxY - (height / 2)) - baseY;
+      } else {
+        adjustY = adjustYCandidate;
+      }
+    }
+    translate[1] += adjustY;
+
+    var baseX = translate[0];
+    var minX = (graph.minGraphX - GRAPH_MARGIN) * scale;
+    var maxX = (graph.maxGraphX + GRAPH_MARGIN) * scale;
+
+    var adjustX = 0;
+    var adjustXCandidate = 0;
+    if ((maxX + baseX) < dimensions[0]) {
+      adjustXCandidate = dimensions[0] - (maxX + baseX);
+      if ((minX + baseX + adjustXCandidate) > 0) {
+        adjustX = (dimensions[0] / 2) - (maxX - (width / 2)) - baseX;
+      } else {
+        adjustX = adjustXCandidate;
+      }
+    } else if (-baseX < minX) {
+      adjustXCandidate = -(baseX + minX);
+      if ((maxX + baseX + adjustXCandidate) < dimensions[0]) {
+        adjustX = (dimensions[0] / 2) - (maxX - (width / 2)) - baseX;
+      } else {
+        adjustX = adjustXCandidate;
+      }
+    }
+    translate[0] += adjustX;
+    return translate;
+  }
+
+  translateClipped(translate, scale, transition) {
+    var graph = this;
+    var graphNode = this.graphElement[0][0];
+    var translate = this.getVisibleTranslation(translate, scale);
+    if (transition) {
+      graphNode.classList.add('visible-transition');
+      clearTimeout(graph.transitionTimout);
+      graph.transitionTimout = setTimeout(function(){
+        graphNode.classList.remove('visible-transition');
+      }, 1000);
+    }
+    var translateString = "translate(" + translate[0] + "px," + translate[1] + "px) scale(" + scale + ")";
+    graphNode.style.transform = translateString;
+    graph.dragSvg.translate(translate);
+    graph.dragSvg.scale(scale);
+  }
+
+  zoomed(){
+    this.state.justScaleTransGraph = true;
+    var scale =  this.dragSvg.scale();
+    this.translateClipped(d3.event.translate, scale);
+  }
+
+
+  getSvgViewDimensions() {
+    var canvasWidth = this.parentNode.clientWidth;
+    var documentElement = document.documentElement;
+    var canvasHeight = documentElement.clientHeight;
+    return [canvasWidth, canvasHeight];
+  }
+
+
+  minScale() {
+    var graph = this;
+    var dimensions = this.getSvgViewDimensions();
+    var width = graph.maxGraphX - graph.minGraphX;
+    var height = graph.maxGraphY - graph.minGraphY;
+    var minScale = dimensions[0] / (width + GRAPH_MARGIN * 2);
+    var minScaleYCandidate = dimensions[1] / (height + GRAPH_MARGIN * 2);
+    if (minScaleYCandidate < minScale) {
+      minScale = minScaleYCandidate;
+    }
+    this.dragSvg.scaleExtent([minScale, 1.5]);
+    return minScale;
+  }
+
+  fitGraphViewToWindow() {
+    this.svg.attr("height", document.documentElement.clientHeight + "px");
+    this.translateClipped(this.dragSvg.translate(), this.dragSvg.scale());
+  }
+
+  toggleTypes() {
+    var graph = this;
+    graph.state.showTypes = !graph.state.showTypes;
+    var element = document.getElementById('toggle-types');
+    if (graph.state.showTypes) {
+      element.classList.add('button-input-toggled');
+    } else {
+      element.classList.remove('button-input-toggled');
+    }
+    graph.updateGraphVisibility();
+  }
+
+  viewSelection() {
+    var graph = this;
+    var minX, maxX, minY, maxY;
+    var hasSelection = false;
+    graph.visibleNodes.each(function(n) {
+      if (this.classList.contains("selected")) {
+        hasSelection = true;
+        minX = minX ? Math.min(minX, n.x) : n.x;
+        maxX = maxX ? Math.max(maxX, n.x + n.getTotalNodeWidth()) :
+          n.x + n.getTotalNodeWidth();
+        minY = minY ? Math.min(minY, n.y) : n.y;
+        maxY = maxY ? Math.max(maxY, n.y + DEFAULT_NODE_HEIGHT) :
+          n.y + DEFAULT_NODE_HEIGHT;
+      }
+    });
+    if (hasSelection) {
+      graph.viewGraphRegion(minX - NODE_INPUT_WIDTH, minY - 60,
+                            maxX + NODE_INPUT_WIDTH, maxY + 60,
+                            true);
+    }
+  }
+
+  viewGraphRegion(minX, minY, maxX, maxY, transition) {
+    var graph = this;
+    var dimensions = this.getSvgViewDimensions();
+    var width = maxX - minX;
+    var height = maxY - minY;
+    var scale = Math.min(dimensions[0] / width, dimensions[1] / height);
+    scale = Math.min(1.5, scale);
+    scale = Math.max(graph.minScale(), scale);
+    var translation = [-minX*scale, -minY*scale];
+    translation = graph.getVisibleTranslation(translation, scale);
+    graph.translateClipped(translation, scale, transition);
+  }
+
+  viewWholeGraph() {
+    var graph = this;
+    var minScale = graph.minScale();
+    var translation = [0, 0];
+    translation = graph.getVisibleTranslation(translation, minScale);
+    graph.translateClipped(translation, minScale);
+  }
+}
diff --git a/tools/turbolizer/hide-selected.png b/tools/turbolizer/hide-selected.png
new file mode 100644
index 0000000..207cdbb
--- /dev/null
+++ b/tools/turbolizer/hide-selected.png
Binary files differ
diff --git a/tools/turbolizer/hide-unselected.png b/tools/turbolizer/hide-unselected.png
new file mode 100644
index 0000000..15617b0
--- /dev/null
+++ b/tools/turbolizer/hide-unselected.png
Binary files differ
diff --git a/tools/turbolizer/index.html b/tools/turbolizer/index.html
new file mode 100644
index 0000000..6991d92
--- /dev/null
+++ b/tools/turbolizer/index.html
@@ -0,0 +1,89 @@
+<!DOCTYPE HTML>
+<html>
+  <head>
+    <link rel="stylesheet" href="turbo-visualizer.css" />
+  </head>
+  <body width="100%">
+    <div id="left">
+      <div id='source-text'>
+        <pre id='source-text-pre'\>
+      </div>
+    </div>
+    <div id="middle">
+      <span id="graph-toolbox">
+        <input id="layout" type="image" title="layout graph" src="layout-icon.png"
+               alt="layout graph" class="button-input">
+        <input id="show-all" type="image" title="show all nodes" src="expand-all.jpg"
+               alt="show all nodes" class="button-input">
+        <input id="hide-unselected" type="image" title="hide unselected nodes"
+               src="hide-unselected.png" alt="hide unselected nodes" class="button-input">
+        <input id="hide-selected" type="image" title="hide selected nodes"
+               src="hide-selected.png" alt="hide selected nodes" class="button-input">
+        <input id="zoom-selection" type="image" title="zoom to selection"
+               src="search.png" alt="zoom to selection" class="button-input">
+        <input id="toggle-types" type="image" title="show/hide types"
+               src="types.png" alt="show/hide types" class="button-input">
+        <input id="search-input" type="text" title="search nodes for regex"
+               alt="search node for regex" class="search-input"
+               placeholder="find with regexp&hellip;">
+        <select id="display-selector"></select>
+      </span>
+      <div id="load-file">
+        <input type="file" id="hidden-file-upload">
+        <input id="upload" type="image" title="load graph" class="button-input"
+               src="upload-icon.png" alt="upload graph">
+      </div>
+      <div id="empty" width="100%" height="100%"></div>
+      <div id="graph" width="100%" height="100%"></div>
+      <div id="schedule" width="100%">
+        <pre id="schedule-text-pre" class='prettyprint prettyprinted'>
+          <ul id="schedule-list" class='nolinenums noindent'>
+          </ul>
+        </pre>        
+      </div>
+      <div id='text-placeholder' width="0px" height="0px" style="position: absolute; top:100000px;" ><svg><text text-anchor="right">
+          <tspan white-space="inherit" id="text-measure"/>
+      </text></svg></div>
+    </div>
+    <div id="right">
+      <div id='disassembly'>
+        <pre id='disassembly-text-pre' class='prettyprint prettyprinted'>
+          <ul id='disassembly-list' class='nolinenums noindent'>            
+          </ul>
+        </pre>
+      </div>
+    </div>
+    <div id="source-collapse" class="collapse-pane">
+      <input id="source-expand" type="image" title="show source"
+             src="right-arrow.png" class="button-input-invisible">
+      <input id="source-shrink" type="image" title="hide source"
+             src="left-arrow.png" class="button-input">
+    </div>
+    <div id="disassembly-collapse" class="collapse-pane">
+      <input id="disassembly-expand" type="image" title="show disassembly"
+             src="left-arrow.png" class="button-input">
+      <input id="disassembly-shrink" type="image" title="hide disassembly" 
+             src="right-arrow.png" class="button-input-invisible">
+    </div>
+    <script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js"></script>
+    <script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
+    <script src="https://cdn.jsdelivr.net/filesaver.js/0.1/FileSaver.min.js"></script>
+    <script src="monkey.js"></script>
+    <script src="util.js"></script>
+    <script src="lang-disassembly.js"></script>
+    <script src="node.js"></script>
+    <script src="edge.js"></script>
+    <script src="selection.js"></script>
+    <script src="selection-broker.js"></script>
+    <script src="constants.js"></script>
+    <script src="view.js"></script>
+    <script src="text-view.js"></script>
+    <script src="empty-view.js"></script>
+    <script src="code-view.js"></script>
+    <script src="graph-layout.js"></script>
+    <script src="graph-view.js"></script>
+    <script src="schedule-view.js"></script>
+    <script src="disassembly-view.js"></script>
+    <script src="turbo-visualizer.js"></script>
+  </body>
+</html>
diff --git a/tools/turbolizer/lang-disassembly.js b/tools/turbolizer/lang-disassembly.js
new file mode 100644
index 0000000..590f9fd
--- /dev/null
+++ b/tools/turbolizer/lang-disassembly.js
@@ -0,0 +1,14 @@
+// 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.
+
+PR.registerLangHandler(
+    PR.createSimpleLexer(
+      [
+        [PR.PR_STRING,        /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$))/, null, '\''],
+        [PR.PR_PLAIN,         /^\s+/, null, ' \r\n\t\xA0']
+      ],
+      [ // fallthroughStylePatterns
+        [PR.PR_COMMENT,       /;; debug: position \d+/, null],
+      ]),
+    ['disassembly']);
diff --git a/tools/turbolizer/layout-icon.png b/tools/turbolizer/layout-icon.png
new file mode 100644
index 0000000..95a517a
--- /dev/null
+++ b/tools/turbolizer/layout-icon.png
Binary files differ
diff --git a/tools/turbolizer/left-arrow.png b/tools/turbolizer/left-arrow.png
new file mode 100644
index 0000000..fc0603e
--- /dev/null
+++ b/tools/turbolizer/left-arrow.png
Binary files differ
diff --git a/tools/turbolizer/monkey.js b/tools/turbolizer/monkey.js
new file mode 100644
index 0000000..129f8b3
--- /dev/null
+++ b/tools/turbolizer/monkey.js
@@ -0,0 +1,26 @@
+// 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.
+
+Array.prototype.getStaggeredFromMiddle = function(i) {
+  if (i >= this.length) {
+    throw("getStaggeredFromMiddle: OOB");
+  }
+  var middle = Math.floor(this.length / 2);
+  var index = middle + (((i % 2) == 0) ? (i / 2) : (((1 - i) / 2) - 1));
+  return this[index];
+}
+
+Array.prototype.contains = function(obj) {
+  var i = this.length;
+  while (i--) {
+    if (this[i] === obj) {
+      return true;
+    }
+  }
+  return false;
+}
+
+Math.alignUp = function(raw, multiple) {
+  return Math.floor((raw + multiple - 1) / multiple) * multiple;
+}
diff --git a/tools/turbolizer/node.js b/tools/turbolizer/node.js
new file mode 100644
index 0000000..18ce0e7
--- /dev/null
+++ b/tools/turbolizer/node.js
@@ -0,0 +1,138 @@
+// 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.
+
+var DEFAULT_NODE_WIDTH = 240;
+var DEFAULT_NODE_HEIGHT = 40;
+var TYPE_HEIGHT = 25;
+var DEFAULT_NODE_BUBBLE_RADIUS = 4;
+var NODE_INPUT_WIDTH = 20;
+var MINIMUM_NODE_INPUT_APPROACH = 20;
+var MINIMUM_NODE_OUTPUT_APPROACH = 15;
+
+function isNodeInitiallyVisible(node) {
+  return node.cfg;
+}
+
+var Node = {
+  isControl: function() {
+    return this.control;
+  },
+  isInput: function() {
+    return this.opcode == 'Parameter' || this.opcode.endsWith('Constant');
+  },
+  isJavaScript: function() {
+    return this.opcode.startsWith('JS');
+  },
+  isSimplified: function() {
+    if (this.isJavaScript) return false;
+    return this.opcode.endsWith('Phi') ||
+      this.opcode.startsWith('Boolean') ||
+      this.opcode.startsWith('Number') ||
+      this.opcode.startsWith('String') ||
+      this.opcode.startsWith('Change') ||
+      this.opcode.startsWith('Object') ||
+      this.opcode.startsWith('Reference') ||
+      this.opcode.startsWith('Any') ||
+      this.opcode.endsWith('ToNumber') ||
+      (this.opcode == 'AnyToBoolean') ||
+      (this.opcode.startsWith('Load') && this.opcode.length > 4) ||
+      (this.opcode.startsWith('Store') && this.opcode.length > 5);
+  },
+  isMachine: function() {
+    return !(this.isControl() || this.isInput() ||
+             this.isJavaScript() || this.isSimplified());
+  },
+  getTotalNodeWidth: function() {
+    var inputWidth = this.inputs.length * NODE_INPUT_WIDTH;
+    return Math.max(inputWidth, this.width);
+  },
+  getLabel: function() {
+    return this.label;
+  },
+  getDisplayLabel: function() {
+    var result = this.id + ":" + this.label;
+    if (result.length > 30) {
+      return this.id + ":" + this.opcode;
+    } else  {
+      return result;
+    }
+  },
+  getType: function() {
+    return this.type;
+  },
+  getDisplayType: function() {
+    var type_string = this.type;
+    if (type_string == undefined) return "";
+    if (type_string.length > 24) {
+      type_string = type_string.substr(0, 25) + "...";
+    }
+    return type_string;
+  },
+  deepestInputRank: function() {
+    var deepestRank = 0;
+    this.inputs.forEach(function(e) {
+      if (e.isVisible() && !e.isBackEdge()) {
+        if (e.source.rank > deepestRank) {
+          deepestRank = e.source.rank;
+        }
+      }
+    });
+    return deepestRank;
+  },
+  areAnyOutputsVisible: function() {
+    var visibleCount = 0;
+    this.outputs.forEach(function(e) { if (e.isVisible()) ++visibleCount; });
+    if (this.outputs.length == visibleCount) return 2;
+    if (visibleCount != 0) return 1;
+    return 0;
+  },
+  setOutputVisibility: function(v) {
+    var result = false;
+    this.outputs.forEach(function(e) {
+      e.visible = v;
+      if (v) {
+        if (!e.target.visible) {
+          e.target.visible = true;
+          result = true;
+        }
+      }
+    });
+    return result;
+  },
+  setInputVisibility: function(i, v) {
+    var edge = this.inputs[i];
+    edge.visible = v;
+    if (v) {
+      if (!edge.source.visible) {
+        edge.source.visible = true;
+        return true;
+      }
+    }
+    return false;
+  },
+  getInputApproach: function(index) {
+    return this.y - MINIMUM_NODE_INPUT_APPROACH -
+      (index % 4) * MINIMUM_EDGE_SEPARATION - DEFAULT_NODE_BUBBLE_RADIUS
+  },
+  getOutputApproach: function(graph, index) {
+    return this.y + this.outputApproach + graph.getNodeHeight() +
+      + DEFAULT_NODE_BUBBLE_RADIUS;
+  },
+  getInputX: function(index) {
+    var result = this.getTotalNodeWidth() - (NODE_INPUT_WIDTH / 2) +
+        (index - this.inputs.length + 1) * NODE_INPUT_WIDTH;
+    return result;
+  },
+  getOutputX: function() {
+    return this.getTotalNodeWidth() - (NODE_INPUT_WIDTH / 2);
+  },
+  getFunctionRelativeSourcePosition: function(graph) {
+    return this.pos - graph.sourcePosition;
+  },
+  hasBackEdges: function() {
+    return (this.opcode == "Loop") ||
+      ((this.opcode == "Phi" || this.opcode == "EffectPhi") &&
+       this.inputs[this.inputs.length - 1].source.opcode == "Loop");
+  }
+};
diff --git a/tools/turbolizer/right-arrow.png b/tools/turbolizer/right-arrow.png
new file mode 100644
index 0000000..ef39643
--- /dev/null
+++ b/tools/turbolizer/right-arrow.png
Binary files differ
diff --git a/tools/turbolizer/schedule-view.js b/tools/turbolizer/schedule-view.js
new file mode 100644
index 0000000..00ce205
--- /dev/null
+++ b/tools/turbolizer/schedule-view.js
@@ -0,0 +1,127 @@
+// 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.
+
+"use strict";
+
+class ScheduleView extends TextView {
+  constructor(id, broker, nodePositionMap) {
+    super(id, broker, null, false);
+    let view = this;
+    let BLOCK_STYLE = {
+      css: 'tag'
+    };
+    const BLOCK_HEADER_STYLE = {
+      css: 'com',
+      block_id: -1,
+      location: function(text) {
+        let matches = /\d+/.exec(text);
+        if (!matches) return undefined;
+        BLOCK_HEADER_STYLE.block_id = Number(matches[0]);
+        return {
+          block_id: BLOCK_HEADER_STYLE.block_id
+        };
+      },
+    };
+    const BLOCK_LINK_STYLE = {
+      css: 'tag',
+      link: function(text) {
+        let id = Number(text.substr(1));
+        view.select(function(location) { return location.block_id == id; }, true, true);
+      }
+    };
+    const ID_STYLE = {
+      css: 'tag',
+      location: function(text) {
+        let matches = /\d+/.exec(text);
+        return {
+          node_id: Number(matches[0]),
+          block_id: BLOCK_HEADER_STYLE.block_id
+        };
+      },
+    };
+    const ID_LINK_STYLE = {
+      css: 'tag',
+      link: function(text) {
+        let id = Number(text);
+        view.select(function(location) { return location.node_id == id; }, true, true);
+      }
+    };
+    const NODE_STYLE = { css: 'kwd' };
+    const GOTO_STYLE = { css: 'kwd',
+      goto_id: -2,
+      location: function(text) {
+        return {
+          node_id: GOTO_STYLE.goto_id--,
+          block_id: BLOCK_HEADER_STYLE.block_id
+        };
+      }
+    }
+    const ARROW_STYLE = { css: 'kwd' };
+    let patterns = [
+      [
+        [/^--- BLOCK B\d+/, BLOCK_HEADER_STYLE, 1],
+        [/^\s+\d+: /, ID_STYLE, 2],
+        [/^\s+Goto/, GOTO_STYLE, 6],
+        [/^.*/, null, -1]
+      ],
+      [
+        [/^ +/, null],
+        [/^\(deferred\)/, BLOCK_HEADER_STYLE],
+        [/^B\d+/, BLOCK_LINK_STYLE],
+        [/^<-/, ARROW_STYLE],
+        [/^->/, ARROW_STYLE],
+        [/^,/, null],
+        [/^---/, BLOCK_HEADER_STYLE, -1]
+      ],
+      // Parse opcode including []
+      [
+        [/^[A-Za-z0-9_]+(\[.*\])?$/, NODE_STYLE, -1],
+        [/^[A-Za-z0-9_]+(\[.*\])?/, NODE_STYLE, 3]
+      ],
+      // Parse optional parameters
+      [
+        [/^ /, null, 4],
+        [/^\(/, null],
+        [/^\d+/, ID_LINK_STYLE],
+        [/^, /, null],
+        [/^\)$/, null, -1],
+        [/^\)/, null, 4],
+      ],
+      [
+        [/^ -> /, ARROW_STYLE, 5],
+        [/^.*/, null, -1]
+      ],
+      [
+        [/^B\d+$/, BLOCK_LINK_STYLE, -1],
+        [/^B\d+/, BLOCK_LINK_STYLE],
+        [/^, /, null]
+      ],
+      [
+        [/^ -> /, ARROW_STYLE],
+        [/^B\d+$/, BLOCK_LINK_STYLE, -1]
+      ]
+    ];
+    this.setPatterns(patterns);
+    this.setNodePositionMap(nodePositionMap);
+  }
+
+  initializeContent(data, rememberedSelection) {
+    super.initializeContent(data, rememberedSelection);
+    var graph = this;
+    var locations = [];
+    for (var id of rememberedSelection) {
+      locations.push({ node_id : id });
+    }
+    this.selectLocations(locations, true, false);
+  }
+
+  detachSelection() {
+    var selection = this.selection.detachSelection();
+    var s = new Set();
+    for (var i of selection) {
+      s.add(i.location.node_id);
+    };
+    return s;
+  }
+}
diff --git a/tools/turbolizer/search.png b/tools/turbolizer/search.png
new file mode 100644
index 0000000..12dc3e3
--- /dev/null
+++ b/tools/turbolizer/search.png
Binary files differ
diff --git a/tools/turbolizer/search2.png b/tools/turbolizer/search2.png
new file mode 100644
index 0000000..88dd193
--- /dev/null
+++ b/tools/turbolizer/search2.png
Binary files differ
diff --git a/tools/turbolizer/selection-broker.js b/tools/turbolizer/selection-broker.js
new file mode 100644
index 0000000..3a223d8
--- /dev/null
+++ b/tools/turbolizer/selection-broker.js
@@ -0,0 +1,46 @@
+// 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.
+
+var SelectionBroker = function() {
+  this.brokers = [];
+  this.dispatching = false;
+  this.lastDispatchingHandler = null;
+};
+
+SelectionBroker.prototype.addSelectionHandler = function(handler) {
+  this.brokers.push(handler);
+}
+
+SelectionBroker.prototype.select = function(from, ranges, selected) {
+  if (!this.dispatching) {
+    this.lastDispatchingHandler = from;
+    try {
+      this.dispatching = true;
+      for (var b of this.brokers) {
+        if (b != from) {
+          b.brokeredSelect(ranges, selected);
+        }
+      }
+    }
+    finally {
+      this.dispatching = false;
+    }
+  }
+}
+
+SelectionBroker.prototype.clear = function(from) {
+  this.lastDispatchingHandler = null;
+  if (!this.dispatching) {
+    try {
+      this.dispatching = true;
+      this.brokers.forEach(function(b) {
+        if (b != from) {
+          b.brokeredClear();
+        }
+      });
+    } finally {
+      this.dispatching = false;
+    }
+  }
+}
diff --git a/tools/turbolizer/selection.js b/tools/turbolizer/selection.js
new file mode 100644
index 0000000..e9c02dd
--- /dev/null
+++ b/tools/turbolizer/selection.js
@@ -0,0 +1,107 @@
+// 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.
+
+var Selection = function(handler) {
+  this.handler = handler;
+  this.selectionBase = null;
+  this.lastSelection = null;
+  this.selection = new Set();
+}
+
+
+Selection.prototype.isEmpty = function() {
+  return this.selection.size == 0;
+}
+
+
+Selection.prototype.clear = function() {
+  var handler = this.handler;
+  this.selectionBase = null;
+  this.lastSelection = null;
+  handler.select(this.selection, false);
+  handler.clear();
+  this.selection = new Set();
+}
+
+
+count = 0;
+
+Selection.prototype.select = function(s, isSelected) {
+  var handler = this.handler;
+  if (!(Symbol.iterator in Object(s))) { s = [s]; }
+  if (isSelected) {
+    let first = true;
+    for (let i of s) {
+      if (first) {
+        this.selectionBase = i;
+        this.lastSelection = i;
+        first = false;
+      }
+      this.selection.add(i);
+    }
+  } else {
+    let unselectSet = new Set();
+    for (let i of s) {
+      if (this.selection.has(i)) {
+        unselectSet.add(i);
+        this.selection.delete(i);
+      }
+    }
+  }
+  handler.select(this.selection, isSelected);
+}
+
+
+Selection.prototype.extendTo = function(pos) {
+  if (pos == this.lastSelection || this.lastSelection === null) return;
+
+  var handler = this.handler;
+  var pos_diff = handler.selectionDifference(pos, true, this.lastSelection, false);
+  var unselect_diff = [];
+  if (pos_diff.length == 0) {
+    pos_diff = handler.selectionDifference(this.selectionBase, false, pos, true);
+    if (pos_diff.length != 0) {
+      unselect_diff = handler.selectionDifference(this.lastSelection, true, this.selectionBase, false);
+      this.selection = new Set();
+      this.selection.add(this.selectionBase);
+      for (var d of pos_diff) {
+        this.selection.add(d);
+      }
+    } else {
+      unselect_diff = handler.selectionDifference(this.lastSelection, true, pos, false);
+      for (var d of unselect_diff) {
+        this.selection.delete(d);
+      }
+    }
+  } else {
+    unselect_diff = handler.selectionDifference(this.selectionBase, false, this.lastSelection, true);
+    if (unselect_diff != 0) {
+      pos_diff = handler.selectionDifference(pos, true, this.selectionBase, false);
+      if (pos_diff.length == 0) {
+        unselect_diff = handler.selectionDifference(pos, false, this.lastSelection, true);
+      }
+      for (var d of unselect_diff) {
+        this.selection.delete(d);
+      }
+    }
+    if (pos_diff.length != 0) {
+      for (var d of pos_diff) {
+        this.selection.add(d);
+      }
+    }
+  }
+  handler.select(unselect_diff, false);
+  handler.select(pos_diff, true);
+  this.lastSelection = pos;
+}
+
+
+Selection.prototype.detachSelection = function() {
+  var result = new Set();
+  for (var i of this.selection) {
+    result.add(i);
+  }
+  this.clear();
+  return result;
+}
diff --git a/tools/turbolizer/text-view.js b/tools/turbolizer/text-view.js
new file mode 100644
index 0000000..c41c25b
--- /dev/null
+++ b/tools/turbolizer/text-view.js
@@ -0,0 +1,394 @@
+// 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.
+
+"use strict";
+
+class TextView extends View {
+  constructor(id, broker, patterns, allowSpanSelection) {
+    super(id, broker);
+    let view = this;
+    view.sortedPositionList = [];
+    view.nodePositionMap = [];
+    view.positionNodeMap = [];
+    view.textListNode = view.divNode.getElementsByTagName('ul')[0];
+    view.fillerSvgElement = view.divElement.append("svg").attr('version','1.1').attr("width", "0");
+    view.patterns = patterns;
+    view.allowSpanSelection = allowSpanSelection;
+    view.nodeToLineMap = [];
+    var selectionHandler = {
+      clear: function() {
+        broker.clear(selectionHandler);
+      },
+      select: function(items, selected) {
+        for (let i of items) {
+          if (selected) {
+            i.classList.add("selected");
+          } else {
+            i.classList.remove("selected");
+          }
+        }
+        broker.select(selectionHandler, view.getRanges(items), selected);
+      },
+      selectionDifference: function(span1, inclusive1, span2, inclusive2) {
+        return null;
+      },
+      brokeredSelect: function(ranges, selected) {
+        let locations = view.rangesToLocations(ranges);
+        view.selectLocations(locations, selected, true);
+      },
+      brokeredClear: function() {
+        view.selection.clear();
+      }
+    };
+    view.selection = new Selection(selectionHandler);
+    broker.addSelectionHandler(selectionHandler);
+  }
+
+  setPatterns(patterns) {
+    let view = this;
+    view.patterns = patterns;
+  }
+
+  clearText() {
+    let view = this;
+    while (view.textListNode.firstChild) {
+      view.textListNode.removeChild(view.textListNode.firstChild);
+    }
+  }
+
+  rangeToLocation(range) {
+    return range;
+  }
+
+  rangesToLocations(ranges) {
+    let view = this;
+    let nodes = new Set();
+    let result = [];
+    for (let range of ranges) {
+      let start = range[0];
+      let end = range[1];
+      let location = { pos_start: start, pos_end: end };
+      if (range[2] !== null && range[2] != -1) {
+        location.node_id = range[2];
+        if (range[0] == -1 && range[1] == -1) {
+          location.pos_start = view.nodePositionMap[location.node_id];
+          location.pos_end = location.pos_start + 1;
+        }
+      } else {
+        if (range[0] != undefined) {
+          location.pos_start = range[0];
+          location.pos_end = range[1];
+        }
+      }
+      result.push(location);
+    }
+    return result;
+  }
+
+  sameLocation(l1, l2) {
+    let view = this;
+    if (l1.block_id != undefined && l2.block_id != undefined &&
+      l1.block_id == l2.block_id && l1.node_id === undefined) {
+      return true;
+    }
+
+    if (l1.address != undefined && l1.address == l2.address) {
+      return true;
+    }
+
+    let node1 = l1.node_id;
+    let node2 = l2.node_id;
+
+    if (node1 === undefined && node2 == undefined) {
+      if (l1.pos_start === undefined || l2.pos_start == undefined) {
+        return false;
+      }
+      if (l1.pos_start == -1 || l2.pos_start == -1) {
+        return false;
+      }
+      if (l1.pos_start < l2.pos_start) {
+        return l1.pos_end > l2.pos_start;
+      } {
+        return l1.pos_start < l2.pos_end;
+      }
+    }
+
+    if (node1 === undefined) {
+      let lower = lowerBound(view.positionNodeMap, l1.pos_start, undefined, function(a, b) {
+        var node = a[b];
+        return view.nodePositionMap[node];
+      } );
+      while (++lower < view.positionNodeMap.length &&
+             view.nodePositionMap[view.positionNodeMap[lower]] < l1.pos_end) {
+        if (view.positionNodeMap[lower] == node2) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    if (node2 === undefined) {
+      let lower = lowerBound(view.positionNodeMap, l2.pos_start, undefined, function(a, b) {
+        var node = a[b];
+        return view.nodePositionMap[node];
+      } );
+      while (++lower < view.positionNodeMap.length &&
+             view.nodePositionMap[view.positionNodeMap[lower]] < l2.pos_end) {
+        if (view.positionNodeMap[lower] == node1) {
+          return true;
+        }
+      }
+      return false;
+    }
+
+    return l1.node_id == l2.node_id;
+  }
+
+  setNodePositionMap(map) {
+    let view = this;
+    view.nodePositionMap = map;
+    view.positionNodeMap = [];
+    view.sortedPositionList = [];
+    let next = 0;
+    for (let i in view.nodePositionMap) {
+      view.sortedPositionList[next] = Number(view.nodePositionMap[i]);
+      view.positionNodeMap[next++] = i;
+    }
+    view.sortedPositionList = sortUnique(view.sortedPositionList,
+                                         function(a,b) { return a - b; });
+    this.positionNodeMap.sort(function(a,b) {
+      let result = view.nodePositionMap[a] - view.nodePositionMap[b];
+      if (result != 0) return result;
+      return a - b;
+    });
+  }
+
+  selectLocations(locations, selected, makeVisible) {
+    let view = this;
+    for (let l of locations) {
+      for (let i = 0; i < view.textListNode.children.length; ++i) {
+        let child = view.textListNode.children[i];
+        if (child.location != undefined && view.sameLocation(l, child.location)) {
+          view.selectCommon(child, selected, makeVisible);
+        }
+      }
+    }
+  }
+
+  getRanges(items) {
+    let result = [];
+    let lastObject = null;
+    for (let i of items) {
+      if (i.location) {
+        let location = i.location;
+        let start = -1;
+        let end = -1;
+        let node_id = -1;
+        if (location.node_id !== undefined) {
+          node_id = location.node_id;
+        }
+        if (location.pos_start !== undefined) {
+          start = location.pos_start;
+          end = location.pos_end;
+        } else {
+          if (this.nodePositionMap && this.nodePositionMap[node_id]) {
+            start = this.nodePositionMap[node_id];
+            end = start + 1;
+          }
+        }
+        if (lastObject == null ||
+            (lastObject[2] != node_id ||
+             lastObject[0] != start ||
+             lastObject[1] != end)) {
+          lastObject = [start, end, node_id];
+          result.push(lastObject);
+        }
+      }
+    }
+    return result;
+  }
+
+  createFragment(text, style) {
+    let view = this;
+    let span = document.createElement("SPAN");
+    span.onmousedown = function(e) {
+      view.mouseDownSpan(span, e);
+    }
+    if (style != undefined) {
+      span.classList.add(style);
+    }
+    span.innerText = text;
+    return span;
+  }
+
+  appendFragment(li, fragment) {
+    li.appendChild(fragment);
+  }
+
+  processLine(line) {
+    let view = this;
+    let result = [];
+    let patternSet = 0;
+    while (true) {
+      let beforeLine = line;
+      for (let pattern of view.patterns[patternSet]) {
+        let matches = line.match(pattern[0]);
+        if (matches != null) {
+          if (matches[0] != '') {
+            let style = pattern[1] != null ? pattern[1] : {};
+            let text = matches[0];
+            if (text != '') {
+              let fragment = view.createFragment(matches[0], style.css);
+              if (style.link) {
+                fragment.classList.add('linkable-text');
+                fragment.link = style.link;
+              }
+              result.push(fragment);
+              if (style.location != undefined) {
+                let location = style.location(text);
+                if (location != undefined) {
+                  fragment.location = location;
+                }
+              }
+            }
+            line = line.substr(matches[0].length);
+          }
+          let nextPatternSet = patternSet;
+          if (pattern.length > 2) {
+            nextPatternSet = pattern[2];
+          }
+          if (line == "") {
+            if (nextPatternSet != -1) {
+              throw("illegal parsing state in text-view in patternSet" + patternSet);
+            }
+            return result;
+          }
+          patternSet = nextPatternSet;
+          break;
+        }
+      }
+      if (beforeLine == line) {
+        throw("input not consumed in text-view in patternSet" + patternSet);
+      }
+    }
+  }
+
+  select(s, selected, makeVisible) {
+    let view = this;
+    view.selection.clear();
+    view.selectCommon(s, selected, makeVisible);
+  }
+
+  selectCommon(s, selected, makeVisible) {
+    let view = this;
+    let firstSelect = makeVisible && view.selection.isEmpty();
+    if ((typeof s) === 'function') {
+      for (let i = 0; i < view.textListNode.children.length; ++i) {
+        let child = view.textListNode.children[i];
+        if (child.location && s(child.location)) {
+          if (firstSelect) {
+            makeContainerPosVisible(view.parentNode, child.offsetTop);
+            firstSelect = false;
+          }
+          view.selection.select(child, selected);
+        }
+      }
+    } else if (s.length) {
+      for (let i of s) {
+        if (firstSelect) {
+          makeContainerPosVisible(view.parentNode, i.offsetTop);
+          firstSelect = false;
+        }
+        view.selection.select(i, selected);
+      }
+    } else {
+      if (firstSelect) {
+        makeContainerPosVisible(view.parentNode, s.offsetTop);
+        firstSelect = false;
+      }
+      view.selection.select(s, selected);
+    }
+  }
+
+  mouseDownLine(li, e) {
+    let view = this;
+    e.stopPropagation();
+    if (!e.shiftKey) {
+      view.selection.clear();
+    }
+    if (li.location != undefined) {
+      view.selectLocations([li.location], true, false);
+    }
+  }
+
+  mouseDownSpan(span, e) {
+    let view = this;
+    if (view.allowSpanSelection) {
+      e.stopPropagation();
+      if (!e.shiftKey) {
+        view.selection.clear();
+      }
+      select(li, true);
+    } else if (span.link) {
+      span.link(span.textContent);
+      e.stopPropagation();
+    }
+  }
+
+  processText(text) {
+    let view = this;
+    let textLines = text.split(/[\n]/);
+    let lineNo = 0;
+    for (let line of textLines) {
+      let li = document.createElement("LI");
+      li.onmousedown = function(e) {
+        view.mouseDownLine(li, e);
+      }
+      li.className = "nolinenums";
+      li.lineNo = lineNo++;
+      let fragments = view.processLine(line);
+      for (let fragment of fragments) {
+        view.appendFragment(li, fragment);
+      }
+      let lineLocation = view.lineLocation(li);
+      if (lineLocation != undefined) {
+        li.location = lineLocation;
+      }
+      view.textListNode.appendChild(li);
+    }
+  }
+
+  initializeContent(data, rememberedSelection) {
+    let view = this;
+    view.clearText();
+    view.processText(data);
+    var fillerSize = document.documentElement.clientHeight -
+        view.textListNode.clientHeight;
+    if (fillerSize < 0) {
+      fillerSize = 0;
+    }
+    view.fillerSvgElement.attr("height", fillerSize);
+  }
+
+  deleteContent() {
+  }
+
+  isScrollable() {
+    return true;
+  }
+
+  detachSelection() {
+    return null;
+  }
+
+  lineLocation(li) {
+    let view = this;
+    for (let i = 0; i < li.children.length; ++i) {
+      let fragment = li.children[i];
+      if (fragment.location != undefined && !view.allowSpanSelection) {
+        return fragment.location;
+      }
+    }
+  }
+}
diff --git a/tools/turbolizer/turbo-visualizer.css b/tools/turbolizer/turbo-visualizer.css
new file mode 100644
index 0000000..3c5c9d6
--- /dev/null
+++ b/tools/turbolizer/turbo-visualizer.css
@@ -0,0 +1,327 @@
+.visible-transition {
+    transition-delay: 0s;
+    transition-duration: 1s;
+    transition-property: all;
+    transition-timing-function: ease;
+}
+
+.collapse-pane {
+    background: #A0A0A0;
+    bottom: 0;
+    position: absolute;
+    margin-bottom: 0.5em;
+    margin-right: 0.5em;
+    margin-left: 0.5em;
+    border-radius: 5px;
+    padding: 0.5em;
+    z-index: 5;
+    opacity: 0.7;
+    cursor: pointer;
+}
+
+.search-input {
+    vertical-align: middle;
+    width: 145px;
+    opacity: 1;
+}
+
+.button-input {
+    vertical-align: middle;
+    width: 24px;
+    opacity: 0.4;
+    cursor: pointer;
+}
+
+.button-input-toggled {
+    border-radius: 5px;
+    background-color: #505050;
+}
+
+.button-input:focus {
+    outline: none;
+}
+
+.button-input-invisible {
+    vertical-align: middle;
+    width: 0px;
+    visibility: hidden;
+}
+
+
+.selected {
+    background-color: #FFFF33;
+}
+
+.prettyprint ol.linenums > li {
+    list-style-type: decimal;
+    !important
+}
+
+body {
+    margin: 0;
+    padding: 0;
+    overflow:hidden;
+    -webkit-touch-callout: none;
+    -webkit-user-select: none;
+    -khtml-user-select: none;
+    -moz-user-select: none;
+    -ms-user-select: none;
+    user-select: none;
+}
+
+p { 
+    text-align: center; 
+    overflow: overlay;
+    position: relative;
+}
+
+marker {
+    fill: #080808;
+}
+
+g rect {
+    fill: #F0F0F0;
+    stroke: #080808;
+    stroke-width: 2px;
+}
+
+g.unsorted rect {
+    opacity: 0.5;
+}
+
+div.scrollable {
+    overflow-y: _croll; overflow-x: hidden;
+}
+
+g.control rect { 
+    fill: #EFCC00;
+    stroke: #080808;
+    stroke-width: 5px;
+}
+
+g.javascript rect { 
+    fill: #DD7E6B;
+}
+
+g.simplified rect { 
+    fill: #3C78D8;
+}
+
+g.machine rect { 
+    fill: #6AA84F;
+}
+
+g.input rect {
+    fill: #CFE2F3;
+}
+
+g.selected rect {
+    fill: #FFFF33;
+}
+
+circle.bubbleStyle {
+    fill: #080808;
+    fill-opacity: 0.0;
+    stroke: #080808;
+    stroke-width: 2px;
+}
+
+circle.bubbleStyle:hover {
+    stroke-width: 3px;
+}
+
+circle.filledBubbleStyle {
+    fill: #080808;
+    stroke: #080808;
+    stroke-width: 2px;
+}
+
+circle.filledBubbleStyle:hover {
+    fill: #080808;
+    stroke-width: 3px;
+}
+
+circle.halfFilledBubbleStyle {
+    fill: #808080;
+    stroke: #101010;
+    stroke-width: 2px;
+}
+
+circle.halfFilledBubbleStyle:hover {
+    fill: #808080;
+    stroke-width: 3px;
+}
+
+path.effect {
+    fill: none;
+    stroke: #080808;
+    stroke-width: 4px;
+    cursor: default;
+}
+
+path.effect:hover {
+    stroke-width: 6px;
+}
+
+path.control {
+    fill: none;
+    stroke: #080808;
+    stroke-width: 4px;
+    cursor: default;
+}
+
+path.control:hover {
+    stroke-width: 6px;
+}
+
+path.value {
+    fill: none;
+    stroke: #888888;
+    stroke-width: 4px;
+    cursor: default;
+}
+
+path.value:hover {
+    stroke-width: 6px;
+}
+
+path.frame-state {
+    fill: none;
+    stroke: #080808;
+    stroke-width: 4px;
+    cursor: default;
+}
+
+path.frame-state:hover{
+    stroke-width: 6px;
+}
+
+path.hidden {
+    fill: none;
+    stroke-width: 0;
+}
+
+path.link.selected {
+    stroke: #FFFF33;
+}
+
+pre.prettyprint {
+  border: none !important;
+  padding: 0px;
+}
+
+li.L1,
+li.L3,
+li.L5,
+li.L7,
+li.L9 {
+    background: none !important
+}
+
+li.nolinenums {
+  list-style-type:none;
+}
+
+ul.noindent {
+  -webkit-padding-start: 0px;
+  -webkit-margin-before: 0px;
+  -webkit-margin-after: 0px;
+}
+
+input:hover, .collapse-pane:hover input {
+    opacity: 1;
+    cursor: pointer;
+}
+
+span.linkable-text {
+    text-decoration: underline;
+}
+
+span.linkable-text:hover {
+    cursor: pointer;
+    font-weight: bold;
+}
+
+#left {
+    float: left; height: 100%; background-color: #FFFFFF;
+    -webkit-transition: all 1s ease-in-out;
+    -moz-transition: all 1s ease-in-out;
+    -o-transition: all 1s ease-in-out;
+    transition: all 1s ease-in-out;
+    transition-property: width;
+    transition-duration: 1s, 1s;
+}
+
+#middle {
+    float:left; height: 100%; background-color: #F8F8F8; 
+    -webkit-transition: all 1s ease-in-out;
+    -moz-transition: all 1s ease-in-out;
+    -o-transition: all 1s ease-in-out;
+    transition: all 1s ease-in-out;
+    transition-property: width;
+    transition-duration: 1s, 1s;
+}
+
+#right {
+    float: right; background-color: #FFFFFF; 
+    -webkit-transition: all 1s ease-in-out;
+    -moz-transition: all 1s ease-in-out;
+    -o-transition: all 1s ease-in-out;
+    transition: all 1s ease-in-out;
+    transition-property: width;
+    transition-duration: 1s, 1s;
+}
+
+#disassembly-collapse {
+    right: 0;
+}
+
+#source-collapse {
+    left: 0;
+}
+
+#graph-toolbox {
+    position: relative;
+    top: 1em;
+    left: 0.7em;
+    border: 2px solid #eee8d5;
+    border-radius: 5px;
+    padding: 0.7em;
+    z-index: 5;
+}
+
+#disassembly-collapse {
+    right: 0;
+}
+
+#source-collapse {
+    left: 0;
+}
+
+#graph-toolbox {
+    position: relative;
+    top: 1em;
+    left: 0.7em;
+    border: 2px solid #eee8d5;
+    border-radius: 5px;
+    padding: 0.7em;
+    z-index: 5;
+}
+
+#load-file {
+    background: #A0A0A0;
+    position: absolute;
+    top: 0;
+    right: 0;
+    margin-top: 0.5em;
+    margin-right: 0.5em;
+    border-radius: 5px;
+    padding: 0.5em;
+    z-index: 5;
+    opacity: 0.7;
+}
+
+#hidden-file-upload{
+    display: none;
+}
+
diff --git a/tools/turbolizer/turbo-visualizer.js b/tools/turbolizer/turbo-visualizer.js
new file mode 100644
index 0000000..d85be6b
--- /dev/null
+++ b/tools/turbolizer/turbo-visualizer.js
@@ -0,0 +1,211 @@
+// 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.
+
+document.onload = (function(d3){
+  "use strict";
+  var jsonObj;
+  var sourceExpandClassList = document.getElementById(SOURCE_EXPAND_ID).classList;
+  var sourceCollapseClassList = document.getElementById(SOURCE_COLLAPSE_ID).classList;
+  var sourceExpanded = sourceCollapseClassList.contains(COLLAPSE_PANE_BUTTON_VISIBLE);
+  var disassemblyExpandClassList = document.getElementById(DISASSEMBLY_EXPAND_ID).classList;
+  var disassemblyCollapseClassList = document.getElementById(DISASSEMBLY_COLLAPSE_ID).classList;
+  var disassemblyExpanded = disassemblyCollapseClassList.contains(COLLAPSE_PANE_BUTTON_VISIBLE);
+  var svg  = null;
+  var graph = null;
+  var schedule = null;
+  var empty = null;
+  var currentPhaseView = null;
+  var disassemblyView = null;
+  var sourceView = null;
+  var selectionBroker = null;
+
+  function updatePanes() {
+    if (sourceExpanded) {
+      if (disassemblyExpanded) {
+        d3.select("#" + SOURCE_PANE_ID).style(WIDTH, "30%");
+        d3.select("#" + INTERMEDIATE_PANE_ID).style(WIDTH, "40%");
+        d3.select("#" + GENERATED_PANE_ID).style(WIDTH, "30%");
+      } else {
+        d3.select("#" + SOURCE_PANE_ID).style(WIDTH, "50%");
+        d3.select("#" + INTERMEDIATE_PANE_ID).style(WIDTH, "50%");
+        d3.select("#" + GENERATED_PANE_ID).style(WIDTH, "0%");
+      }
+    } else {
+      if (disassemblyExpanded) {
+        d3.select("#" + SOURCE_PANE_ID).style(WIDTH, "0%");
+        d3.select("#" + INTERMEDIATE_PANE_ID).style(WIDTH, "50%");
+        d3.select("#" + GENERATED_PANE_ID).style(WIDTH, "50%");
+      } else {
+        d3.select("#" + SOURCE_PANE_ID).style(WIDTH, "0%");
+        d3.select("#" + INTERMEDIATE_PANE_ID).style(WIDTH, "100%");
+        d3.select("#" + GENERATED_PANE_ID).style(WIDTH, "0%");
+      }
+    }
+  }
+
+  function toggleSourceExpanded() {
+    setSourceExpanded(!sourceExpanded);
+  }
+
+  function setSourceExpanded(newState) {
+    sourceExpanded = newState;
+    updatePanes();
+    if (newState) {
+      sourceCollapseClassList.add(COLLAPSE_PANE_BUTTON_VISIBLE);
+      sourceCollapseClassList.remove(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      sourceExpandClassList.add(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      sourceExpandClassList.remove(COLLAPSE_PANE_BUTTON_VISIBLE);
+    } else {
+      sourceCollapseClassList.add(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      sourceCollapseClassList.remove(COLLAPSE_PANE_BUTTON_VISIBLE);
+      sourceExpandClassList.add(COLLAPSE_PANE_BUTTON_VISIBLE);
+      sourceExpandClassList.remove(COLLAPSE_PANE_BUTTON_INVISIBLE);
+    }
+  }
+
+  function toggleDisassemblyExpanded() {
+    setDisassemblyExpanded(!disassemblyExpanded);
+  }
+
+  function setDisassemblyExpanded(newState) {
+    disassemblyExpanded = newState;
+    updatePanes();
+    if (newState) {
+      disassemblyCollapseClassList.add(COLLAPSE_PANE_BUTTON_VISIBLE);
+      disassemblyCollapseClassList.remove(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      disassemblyExpandClassList.add(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      disassemblyExpandClassList.remove(COLLAPSE_PANE_BUTTON_VISIBLE);
+    } else {
+      disassemblyCollapseClassList.add(COLLAPSE_PANE_BUTTON_INVISIBLE);
+      disassemblyCollapseClassList.remove(COLLAPSE_PANE_BUTTON_VISIBLE);
+      disassemblyExpandClassList.add(COLLAPSE_PANE_BUTTON_VISIBLE);
+      disassemblyExpandClassList.remove(COLLAPSE_PANE_BUTTON_INVISIBLE);
+    }
+  }
+
+  function hideCurrentPhase() {
+    var rememberedSelection = null;
+    if (currentPhaseView != null) {
+      rememberedSelection = currentPhaseView.detachSelection();
+      currentPhaseView.hide();
+      currentPhaseView = null;
+    }
+    return rememberedSelection;
+  }
+
+  function displayPhaseView(view, data) {
+    var rememberedSelection = hideCurrentPhase();
+    view.show(data, rememberedSelection);
+    d3.select("#middle").classed("scrollable", view.isScrollable());
+    currentPhaseView = view;
+  }
+
+  function displayPhase(phase) {
+    if (phase.type == 'graph') {
+      displayPhaseView(graph, phase.data);
+    } else if (phase.type == 'schedule') {
+      displayPhaseView(schedule, phase.data);
+    } else {
+      displayPhaseView(empty, null);
+    }
+  }
+
+  function fitPanesToParents() {
+    d3.select("#left").classed("scrollable", false)
+    d3.select("#right").classed("scrollable", false);
+
+    graph.fitGraphViewToWindow();
+    disassemblyView.resizeToParent();
+    sourceView.resizeToParent();
+
+    d3.select("#left").classed("scrollable", true);
+    d3.select("#right").classed("scrollable", true);
+  }
+
+  selectionBroker = new SelectionBroker();
+
+  function initializeHandlers(g) {
+    d3.select("#source-collapse").on("click", function(){
+      toggleSourceExpanded(true);
+      setTimeout(function(){
+        g.fitGraphViewToWindow();
+      }, 1000);
+    });
+    d3.select("#disassembly-collapse").on("click", function(){
+      toggleDisassemblyExpanded();
+      setTimeout(function(){
+        g.fitGraphViewToWindow();
+      }, 1000);
+    });
+    window.onresize = function(){
+      fitPanesToParents();
+    };
+    d3.select("#hidden-file-upload").on("change", function() {
+      if (window.File && window.FileReader && window.FileList) {
+        var uploadFile = this.files[0];
+        var filereader = new window.FileReader();
+        var consts = Node.consts;
+        filereader.onload = function(){
+          var txtRes = filereader.result;
+          // If the JSON isn't properly terminated, assume compiler crashed and
+          // add best-guess empty termination
+          if (txtRes[txtRes.length-2] == ',') {
+            txtRes += '{"name":"disassembly","type":"disassembly","data":""}]}';
+          }
+          try{
+            jsonObj = JSON.parse(txtRes);
+
+            sourceView.initializeCode(jsonObj.source, jsonObj.sourcePosition);
+            schedule.setNodePositionMap(jsonObj.nodePositions);
+
+            var selectMenu = document.getElementById('display-selector');
+            var disassemblyPhase = null;
+            selectMenu.innerHTML = '';
+            for (var i = 0; i < jsonObj.phases.length; ++i) {
+              var optionElement = document.createElement("option");
+              optionElement.text = jsonObj.phases[i].name;
+              if (optionElement.text == 'disassembly') {
+                disassemblyPhase = jsonObj.phases[i];
+              } else {
+                selectMenu.add(optionElement, null);
+              }
+            }
+            disassemblyView.setNodePositionMap(jsonObj.nodePositions);
+            disassemblyView.show(disassemblyPhase.data, null);
+
+            displayPhase(jsonObj.phases[0]);
+
+            selectMenu.onchange = function(item) {
+              displayPhase(jsonObj.phases[selectMenu.selectedIndex]);
+            }
+
+            fitPanesToParents();
+          }
+          catch(err) {
+            window.alert("Invalid TurboFan JSON file\n" +
+                         "error: " + err.message);
+            return;
+          }
+        };
+        filereader.readAsText(uploadFile);
+      } else {
+        alert("Can't load graph");
+      }
+    });
+  }
+
+  sourceView = new CodeView(SOURCE_PANE_ID, PR, "", 0, selectionBroker);
+  disassemblyView = new DisassemblyView(DISASSEMBLY_PANE_ID, selectionBroker);
+  graph = new GraphView(d3, GRAPH_PANE_ID, [], [], selectionBroker);
+  schedule = new ScheduleView(SCHEDULE_PANE_ID, selectionBroker);
+  empty = new EmptyView(EMPTY_PANE_ID, selectionBroker);
+
+  initializeHandlers(graph);
+
+  setSourceExpanded(true);
+  setDisassemblyExpanded(false);
+
+  displayPhaseView(empty, null);
+  fitPanesToParents();
+})(window.d3);
diff --git a/tools/turbolizer/types.png b/tools/turbolizer/types.png
new file mode 100644
index 0000000..8fead8f
--- /dev/null
+++ b/tools/turbolizer/types.png
Binary files differ
diff --git a/tools/turbolizer/upload-icon.png b/tools/turbolizer/upload-icon.png
new file mode 100644
index 0000000..c1a289b
--- /dev/null
+++ b/tools/turbolizer/upload-icon.png
Binary files differ
diff --git a/tools/turbolizer/util.js b/tools/turbolizer/util.js
new file mode 100644
index 0000000..09a7473
--- /dev/null
+++ b/tools/turbolizer/util.js
@@ -0,0 +1,71 @@
+// 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.
+
+"use strict";
+
+function makeContainerPosVisible(container, pos) {
+  var height = container.offsetHeight;
+  var margin = Math.floor(height / 4);
+  if (pos < container.scrollTop + margin) {
+    pos -= margin;
+    if (pos < 0) pos = 0;
+    container.scrollTop = pos;
+    return;
+  }
+  if (pos > (container.scrollTop + 3 * margin)) {
+    pos = pos - 3 * margin;
+    if (pos < 0) pos = 0;
+    container.scrollTop = pos;
+  }
+}
+
+
+function lowerBound(a, value, compare, lookup) {
+  let first = 0;
+  let count = a.length;
+  while (count > 0) {
+    let step = Math.floor(count / 2);
+    let middle = first + step;
+    let middle_value = (lookup === undefined) ? a[middle] : lookup(a, middle);
+    let result = (compare === undefined) ? (middle_value < value) : compare(middle_value, value);
+    if (result) {
+      first = middle + 1;
+      count -= step + 1;
+    } else {
+      count = step;
+    }
+  }
+  return first;
+}
+
+
+function upperBound(a, value, compare, lookup) {
+  let first = 0;
+  let count = a.length;
+  while (count > 0) {
+    let step = Math.floor(count / 2);
+    let middle = first + step;
+    let middle_value = (lookup === undefined) ? a[middle] : lookup(a, middle);
+    let result = (compare === undefined) ? (value < middle_value) : compare(value, middle_value);
+    if (!result) {
+      first = middle + 1;
+      count -= step + 1;
+    } else {
+      count = step;
+    }
+  }
+  return first;
+}
+
+
+function sortUnique(arr, f) {
+  arr = arr.sort(f);
+  let ret = [arr[0]];
+  for (var i = 1; i < arr.length; i++) {
+    if (arr[i-1] !== arr[i]) {
+      ret.push(arr[i]);
+    }
+  }
+  return ret;
+}
diff --git a/tools/turbolizer/view.js b/tools/turbolizer/view.js
new file mode 100644
index 0000000..2c90c6d
--- /dev/null
+++ b/tools/turbolizer/view.js
@@ -0,0 +1,42 @@
+// 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.
+
+"use strict";
+
+class View {
+  constructor(id, broker) {
+    this.divElement = d3.select("#" + id);
+    this.divNode = this.divElement[0][0];
+    this.parentNode = this.divNode.parentNode;
+    this.hide();
+  }
+
+  isScrollable() {
+    return false;
+  }
+
+  show(data, rememberedSelection) {
+    this.parentNode.appendChild(this.divElement[0][0]);
+    this.initializeContent(data, rememberedSelection);
+    this.resizeToParent();
+    this.divElement.attr(VISIBILITY, 'visible');
+  }
+
+  resizeToParent() {
+    var view = this;
+    var documentElement = document.documentElement;
+    var y = this.parentNode.clientHeight || documentElement.clientHeight;
+    this.parentNode.style.height = y + 'px';
+  }
+
+  hide() {
+    this.divElement.attr(VISIBILITY, 'hidden');
+    this.deleteContent();
+    this.parentNode.removeChild(this.divNode);
+  }
+
+  detachSelection() {
+    return null;
+  }
+}
diff --git a/tools/whitespace.txt b/tools/whitespace.txt
index c571b76..687be11 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 NaN..
+The Smi looked at them when a crazy v8-autoroll account showed up.....